diff --git a/data/json/mapgen/lab/lab_modular/lab_1x1_security.json b/data/json/mapgen/lab/lab_modular/lab_1x1_security.json
index 0da9e29815e62..e8de67d2b35b3 100644
--- a/data/json/mapgen/lab/lab_modular/lab_1x1_security.json
+++ b/data/json/mapgen/lab/lab_modular/lab_1x1_security.json
@@ -42,9 +42,9 @@
         "6": "t_card_science_transport_1"
       },
       "place_monsters": [
-        { "monster": "GROUP_LAB_MAINTENANCE", "x": [ 5, 20 ], "y": [ 5, 14 ], "density": 0.2 },
-        { "monster": "GROUP_LAB_BASIC_SECURITY", "x": [ 5, 12 ], "y": 20, "density": 0.1 },
-        { "monster": "GROUP_LAB_MAINTENANCE", "x": 20, "y": 20, "density": 0.1 }
+        { "monster": "GROUP_LAB_MAINTENANCE", "x": [ 5, 20 ], "y": [ 5, 14 ], "density": 0.15 },
+        { "monster": "GROUP_LAB_BASIC_SECURITY", "x": [ 5, 12 ], "y": 20, "density": 0.05 },
+        { "monster": "GROUP_LAB_MAINTENANCE", "x": [ 11, 21 ], "y": [ 19, 21 ], "density": 0.1 }
       ],
       "place_nested": [ { "chunks": [ [ "lab_security_6x6_open", 50 ], [ "lab_generic_6x6_open", 50 ] ], "x": 3, "y": 18 } ],
       "place_vehicles": [ { "vehicle": "semi_truck", "x": 16, "y": 10, "chance": 20, "rotation": 180 } ]
@@ -91,23 +91,29 @@
         "ƶ": "t_card_science_security_yellow",
         "i": "t_thconc_floor"
       },
+      "place_loot": [
+        { "item": "id_science_security_yellow", "x": 13, "y": 21, "chance": 10 },
+        { "item": "id_science_security_yellow", "x": 13, "y": 2, "chance": 10 },
+        { "item": "id_science_security_yellow", "x": 22, "y": 4, "chance": 100 },
+        { "item": "id_science_maintenance_green", "x": 16, "y": 12, "chance": 100 }
+      ],
       "place_monsters": [ { "monster": "GROUP_LAB_BASIC_SECURITY", "x": [ 19, 23 ], "y": [ 5, 18 ], "density": 0.2 } ],
       "place_nested": [
         { "chunks": [ [ "lab_security_3x3_EW", 50 ], [ "lab_generic_3x3_EW_open", 50 ] ], "x": 15, "y": 7 },
         { "chunks": [ [ "lab_security_3x3_EW", 50 ], [ "lab_generic_3x3_EW_open", 50 ] ], "x": 15, "y": 14 }
       ],
       "place_monster": [
-        { "monster": "mon_skitterbot", "x": 9, "y": 8, "chance": 100 },
-        { "monster": "mon_skitterbot", "x": 9, "y": 9, "chance": 100 },
-        { "monster": "mon_secubot", "x": 9, "y": 14, "chance": 100 },
-        { "monster": "mon_secubot", "x": 9, "y": 15, "chance": 100 }
+        { "monster": "mon_flashbang_hack", "x": 9, "y": 8, "chance": 100 },
+        { "monster": "mon_gasbomb_hack", "x": 9, "y": 9, "chance": 100 },
+        { "monster": "mon_skitterbot", "x": 9, "y": 14, "chance": 100 },
+        { "monster": "mon_manhack", "x": 9, "y": 15, "chance": 100 }
       ],
       "computers": {
         "6": {
           "name": "Security Public Relations Zone",
           "security": 3,
-          "options": [ { "name": "UNLOCK ENTRANCE", "action": "unlock_disarm", "security": 6 } ],
-          "failures": [ { "action": "damage" }, { "action": "shutdown" }, { "action": "manhacks" } ]
+          "options": [ { "name": "UNLOCK ENTRANCE", "action": "unlock_disarm", "security": 3 } ],
+          "failures": [ { "action": "damage" }, { "action": "manhacks" } ]
         }
       }
     }
@@ -180,14 +186,14 @@
         "|,,,,,,|;;;;;;;;;;;;;;;|",
         "|,,,,,,|;;;;;;;;;;;;;;;|",
         "||||-X||||||||ƶ=||||||||",
-        "|,|,,,,,,¥,iii,,,,Y|;;;|",
-        "|,|,,,,,,=,,,,,ê,,,+;;;|",
+        "|j,,,,,,,¥,iii,,,,Y|;;;|",
+        "|j,,,,,,,=,,,,,ê,,,+;;;|",
         "|||||,,||||JJJJ,h|||;;;|",
         "|<,,|,,122|P,hJ,,+<|||||",
         "|>,,-,,-22|P,,J,,+<|||||",
         "|||||,,||||J,JJ,h|||;;;|",
-        "|,|,,,,,,=,,,,,ê,,,+;;;|",
-        "|,|,,,,,,¥,iii,,,,Y|;;;|",
+        "|j,,,,,,,=,,,,,ê,,,+;;;|",
+        "|j,,,,,,,¥,iii,,,,Y|;;;|",
         "||||-X||||||||ƶ=||||||||",
         "|,,,,,,|;;;;;;;;;;;;;;;|",
         "|,,,,,,|;;;;;;;;;;;;;;;|",
@@ -198,7 +204,16 @@
         "||||||||||||||||||||||||"
       ],
       "palettes": [ "lab_common_palette", "lab_security_palette" ],
+      "place_monsters": [ { "monster": "GROUP_LAB_BASIC_SECURITY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 } ],
       "terrain": { "¥": "t_card_science_security_yellow", "ƶ": "t_card_science_security_magenta" },
+      "place_loot": [
+        { "item": "id_science_maintenance_yellow", "x": 11, "y": 11, "chance": 30 },
+        { "item": "id_science_mutagen_green", "x": 11, "y": 11, "chance": 30 },
+        { "item": "id_science_medical_red", "x": 11, "y": 11, "chance": 30 },
+        { "item": "id_science_maintenance_yellow", "x": 11, "y": 12, "chance": 30 },
+        { "item": "id_science_mutagen_green", "x": 11, "y": 12, "chance": 30 },
+        { "item": "id_science_medical_red", "x": 11, "y": 12, "chance": 30 }
+      ],
       "place_signs": [
         { "snippet": "lab_security_signage", "x": [ 10, 13 ], "y": 7 },
         { "snippet": "lab_security_signage", "x": [ 17, 18 ], "y": 7 },
@@ -251,6 +266,7 @@
         "|,,,,,,,,,ƶ,,,,,|⁴⁴⁴⁴⁴⁴⁴"
       ],
       "palettes": [ "lab_common_palette", "lab_security_palette" ],
+      "place_monsters": [ { "monster": "GROUP_LAB_BASIC_SECURITY", "x": [ 1, 8 ], "y": [ 1, 22 ], "density": 0.1 } ],
       "terrain": { "ƶ": "t_card_science_security_magenta" },
       "place_nested": [
         { "chunks": [ [ "lab_security_10x10_S", 100 ], [ "null", 0 ] ], "x": 1, "y": 0 },
@@ -274,14 +290,14 @@
         "|,,,,,,,|3,.,|```|;;££;;",
         "|,,,,,,,],.,.|||||;££;;;",
         "||||-|]]|.,.,|;;;;££;;;;",
-        "|;;|.,.,.,.,.|;;;££;;;;;",
-        "|;;+,.,.,.,.,X;;££;;;;;;",
+        "|U;|.,.,.,.,.|;;;££;;;;;",
+        "|U;+,.,.,.,.,X;;££;;;;;;",
         "|||||,.||||,.X;;££££££££",
         "|<,.|.,122|.,-;;££``````",
         "|,.,),.)22|,.-;;££``````",
         "|||||.,||||.,X;;££££££££",
-        "|;;+.,.,.,.,.X;;££;;;;;;",
-        "|;;|,.,.,.,.,|;;;££;;;;;",
+        "|U;+.,.,.,.,.X;;££;;;;;;",
+        "|U;|,.,.,.,.,|;;;££;;;;;",
         "||||-|]]|,.,.|;;;;££;;;;",
         "|,,,,,,,].,.,|||||;££;;;",
         "|,,,,,,,|4.,.|```|;;££;;",
@@ -292,7 +308,13 @@
         "|,,,,,,,|;|;;;;;;;;;;|;|"
       ],
       "palettes": [ "lab_common_palette", "lab_security_palette" ],
+      "place_loot": [ { "item": "id_science_maintenance_green", "x": 1, "y": 8, "chance": 100 } ],
       "terrain": { "¥": "t_card_science_security_yellow", "ƶ": "t_card_science_security_magenta" },
+      "place_signs": [
+        { "signage": "<color_white_red>Badges Mandatory Beyond This Point.</color>", "x": 13, "y": 10 },
+        { "signage": "<color_white_red>Badges Mandatory Beyond This Point.</color>", "x": 13, "y": 13 }
+      ],
+      "place_monsters": [ { "monster": "GROUP_LAB_BASIC_SECURITY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ],
       "place_monster": [
         { "monster": "mon_flashbang_hack", "x": 22, "y": 0, "chance": 100 },
         { "monster": "mon_gasbomb_hack", "x": 22, "y": 1, "chance": 100 },
@@ -348,7 +370,8 @@
         "||||||||||||||||||||||||"
       ],
       "palettes": [ "lab_common_palette", "lab_security_palette" ],
-      "terrain": { "¥": "t_card_science_security_magenta", "ƶ": "t_card_science_maintenance_blue" },
+      "terrain": { "¥": "t_card_science_security_magenta", "ƶ": "t_card_science_security_black" },
+      "place_monsters": [ { "monster": "GROUP_LAB_MILITARY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 } ],
       "place_nested": [
         { "chunks": [ [ "lab_security_10x10_S", 100 ], [ "null", 0 ] ], "x": 1, "y": 1 },
         { "chunks": [ [ "lab_security_10x10_N", 100 ], [ "null", 0 ] ], "x": 1, "y": 13 },
@@ -365,42 +388,58 @@
   {
     "method": "json",
     "om_terrain": "lab_security_z-5",
-    "//": "TODO: add nested rooms to right side.",
     "type": "mapgen",
     "weight": 200,
     "object": {
       "fill_ter": "t_metal_floor",
       "rows": [
         "||||||||||||||||||||||||",
-        "|,,,,,,,,,|`````¥``````ɜ",
-        "|,,,,,,,,,|`````=```````",
-        "|,,,,,,,,,|``|##|```````",
-        "|,,,,,,,,,|``|><|`ɜ`````",
-        "|,,,,,,,,,|``|||||||||||",
-        "|,,,,,,,,,|``|||||||||||",
-        "|,,,,,,,,,|``|||||||||||",
-        "|,,,,,,,,,|``|||||||||||",
-        "|,,,,,,,,,|``||,,,,,,|||",
-        "|,,,,,,,,,|``||,,,,,,|||",
-        "|||||,,,,,=``=,,,,,,,|||",
-        "|||||,,,,,=``=,,,,,,,|||",
-        "|,,,,,,,,,|``ƶ|,,,,,,|||",
-        "|,,,,,,,,,|``||,,,,,,|||",
-        "|,,,,,,,,,|``|||||||||||",
-        "|,,,,,,,,,|``|||||||||||",
-        "|,,,,,,,,,|``|||||||||||",
-        "|,,,,,,,,,|``|||||||||||",
-        "|,,,,,,,,,|``|><|`ɜ`````",
-        "|,,,,,,,,,|``|##|```````",
-        "|,,,,,,,,,|`````=```````",
-        "|,,,,,,,,,|`````¥``````ɜ",
+        "|,,,,,,,,,,,,|``````````",
+        "|,,,,,,,,,,,,|``````````",
+        "|,,,,,,,,,,,,|##||||||||",
+        "|,,,,,,,,,,,,|><|``||``|",
+        "|,,,,,,,,,,,,|||||||||||",
+        "|,,,,,,,,,,,,|||||||||||",
+        "|,,,,,,,,,,,,|||||||||||",
+        "|,,,,,,,,,,,,|||||||||||",
+        "|,,,,,,,,,,,,||≠LLLL≠|||",
+        "|,,,,,,,,,,,,||``````|||",
+        "|,,,,,,,,,,,,```j``j````",
+        "|,,,,,,,,,,,,```j``j````",
+        "|,,,,,,,,,,,,||``````|||",
+        "|,,,,,,,,,,,,||≠LLLL≠|||",
+        "|,,,,,,,,,,,,|||||||||||",
+        "|,,,,,,,,,,,,|||||||||||",
+        "|,,,,,,,,,,,,|||||||||||",
+        "|,,,,,,,,,,,,|||||||||||",
+        "|,,,,,,,,,,,,|><|``||``|",
+        "|,,,,,,,,,,,,|##||||||||",
+        "|,,,,,,,,,,,,|``````````",
+        "|,,,,,,,,,,,,|``````````",
         "||||||||||||||||||||||||"
       ],
       "palettes": [ "lab_common_palette", "lab_security_palette" ],
-      "terrain": { "¥": "t_card_science_security_black", "ƶ": "t_card_science_security_magenta" },
+      "place_monsters": [ { "monster": "GROUP_LAB_MILITARY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ],
+      "items": {
+        "L": { "item": "guns_milspec", "chance": 50 },
+        "≠": [
+          { "item": "ammo_milspec", "chance": 70, "repeat": [ 1, 2 ] },
+          { "item": "mags_milspec", "chance": 70, "repeat": [ 1, 2 ] }
+        ]
+      },
+      "place_monster": [
+        { "monster": "mon_flashbang_hack", "x": 17, "y": 4, "chance": 100 },
+        { "monster": "mon_gasbomb_hack", "x": 18, "y": 4, "chance": 100 },
+        { "monster": "mon_skitterbot", "x": 21, "y": 4, "chance": 100 },
+        { "monster": "mon_tazer_hack", "x": 22, "y": 4, "chance": 100 },
+        { "monster": "mon_gasbomb_hack", "x": 17, "y": 19, "chance": 100 },
+        { "monster": "mon_manhack", "x": 18, "y": 19, "chance": 100 },
+        { "monster": "mon_tazer_hack", "x": 21, "y": 19, "chance": 100 },
+        { "monster": "mon_skitterbot", "x": 22, "y": 19, "chance": 100 }
+      ],
       "place_nested": [
-        { "chunks": [ [ "lab_security_10x10_S", 100 ], [ "null", 0 ] ], "x": 1, "y": 1 },
-        { "chunks": [ [ "lab_security_10x10_N", 100 ], [ "null", 0 ] ], "x": 1, "y": 13 }
+        { "chunks": [ [ "12x12_obstacle_course_N", 100 ] ], "x": 1, "y": 1 },
+        { "chunks": [ [ "12x12_obstacle_course_S", 100 ] ], "x": 1, "y": 11 }
       ]
     }
   },
@@ -440,11 +479,16 @@
       ],
       "palettes": [ "lab_common_palette", "lab_security_palette" ],
       "terrain": { "ɜ": "t_metal_floor", "¥": "t_card_science_security_black", "ƶ": "t_card_science_security_magenta" },
-      "place_loot": [ { "item": "huge_atomic_battery_cell", "x": 21, "y": [ 15, 16 ], "chance": 50 } ],
-      "place_monster": [ { "monster": [ "mon_mech_recon", "mon_mech_combat" ], "x": 15, "y": [ 15, 16 ], "chance": 30 } ],
+      "place_monsters": [
+        { "monster": "GROUP_LAB_MILITARY", "x": [ 1, 12 ], "y": [ 1, 22 ], "chance": 100, "repeat": [ 3, 8 ] },
+        { "monster": "GROUP_LAB_MILITARY", "x": [ 16, 20 ], "y": [ 8, 12 ], "chance": 100, "repeat": [ 1, 3 ] }
+      ],
+      "place_loot": [ { "item": "huge_atomic_battery_cell", "x": 21, "y": [ 15, 16 ], "chance": 85 } ],
+      "place_monster": [ { "monster": [ "mon_mech_recon", "mon_mech_combat" ], "x": 15, "y": [ 15, 16 ], "chance": 85 } ],
       "items": {
         "q": { "item": "guns_milspec", "chance": 40, "repeat": [ 1, 2 ] },
         "r": { "item": "tools_gunsmith", "chance": 10 },
+        "N": [ { "item": "tools_gunsmith", "chance": 100 }, { "item": "mechanics", "chance": 50 } ],
         "≠": [
           { "item": "ammo_milspec", "chance": 70, "repeat": [ 1, 2 ] },
           { "item": "mags_milspec", "chance": 40, "repeat": [ 1, 2 ] }
@@ -454,7 +498,7 @@
         "6": {
           "name": "Magazine Entrance",
           "security": 6,
-          "options": [ { "name": "UNLOCK ENTRANCE", "action": "unlock", "security": 7 } ],
+          "options": [ { "name": "UNLOCK ENTRANCE", "action": "unlock", "security": 6 } ],
           "failures": [ { "action": "damage" }, { "action": "shutdown" } ]
         }
       }
diff --git a/data/json/mapgen/lab/lab_modular/lab_1x1x2_RES_8.json b/data/json/mapgen/lab/lab_modular/lab_1x1x2_RES_8.json
index 7cef9e9b85911..75d609e6d74b2 100644
--- a/data/json/mapgen/lab/lab_modular/lab_1x1x2_RES_8.json
+++ b/data/json/mapgen/lab/lab_modular/lab_1x1x2_RES_8.json
@@ -33,6 +33,17 @@
         "|||||||||||±||||||||||||"
       ],
       "palettes": [ "lab_common_palette", "lab_residential_palette", "standard_domestic_lino_bathroom" ],
+      "place_loot": [ { "item": "id_science_maintenance_blue", "x": 22, "y": 17, "chance": 50 } ],
+      "place_monsters": [ { "monster": "GROUP_LAB_MAINTENANCE", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 } ],
+      "place_monster": [
+        {
+          "monster": [ "mon_feral_human_pipe", "mon_feral_human_crowbar" ],
+          "x": 19,
+          "y": 19,
+          "chance": 100,
+          "pack_size": [ 3, 5 ]
+        }
+      ],
       "terrain": { "!": "t_open_air_rooved", "U": "t_linoleum_gray" }
     }
   },
@@ -69,6 +80,17 @@
         "|9|9|8S|;;|UU|;;|IIy|S9|",
         "|||||||||||±||||||||||||"
       ],
+      "place_monsters": [ { "monster": "GROUP_LAB_BASIC_SECURITY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 } ],
+      "place_loot": [ { "item": "id_science_security_magenta", "x": 22, "y": 17, "chance": 100 } ],
+      "place_monster": [
+        {
+          "monster": [ "mon_feral_labsecurity_flashlight", "mon_feral_labsecurity_9mm" ],
+          "x": 19,
+          "y": 19,
+          "chance": 100,
+          "pack_size": [ 3, 5 ]
+        }
+      ],
       "palettes": [ "lab_common_palette", "lab_security_palette", "standard_domestic_lino_bathroom" ],
       "terrain": { "!": "t_open_air_rooved", "U": "t_linoleum_gray" },
       "items": {
@@ -86,7 +108,7 @@
   },
   {
     "method": "json",
-    "om_terrain": "lab_1x1_RES_8_commons",
+    "om_terrain": [ "lab_1x1_RES_8_commons_SEC" ],
     "type": "mapgen",
     "weight": 200,
     "object": {
@@ -107,13 +129,145 @@
         "|2_________!!___||||||||",
         "|157F3____!!!!__|ÿÿÿÿÿÿ|",
         "||||||_||_!!!!__|ÿÿÿÿÿÿ|",
-        "|6______+_!!!!__|ÿÿÿÿÿÿ|",
-        "|66JJJ66|_!!!!__+ÿÿÿÿÿÿ|",
+        "|_|6____+_!!!!__|ÿÿÿÿÿÿ|",
+        "|_|JJJ66|_!!!!__+ÿÿÿÿÿÿ|",
         "|||||||||__!!___|ÿÿÿÿÿÿ|",
         "|_________|<<|__|ÿÿÿÿÿÿ|",
         "|_____||+|||||__||||||||",
+        "|_____|___|UU+__+YS,,+t|",
+        "|_____|___|,,||||,,,,|||",
         "|_____|___|UU|__|YS,,+t|",
-        "|_____|___|,,+__+,,,,|||",
+        "|||||||||||±||||||||||||"
+      ],
+      "parameters": {
+        "carpet_type": {
+          "type": "ter_str_id",
+          "default": {
+            "distribution": [
+              [ "t_carpet_concrete_yellow", 2 ],
+              [ "t_carpet_concrete_green", 2 ],
+              [ "t_carpet_concrete_purple", 1 ],
+              [ "t_carpet_concrete_red", 1 ],
+              [ "t_thconc_floor", 2 ]
+            ]
+          }
+        },
+        "floor_type": {
+          "type": "ter_str_id",
+          "default": {
+            "distribution": [
+              [ "t_carpet_concrete_yellow", 2 ],
+              [ "t_carpet_concrete_green", 2 ],
+              [ "t_carpet_concrete_purple", 1 ],
+              [ "t_carpet_concrete_red", 1 ],
+              [ "t_floor", 1 ],
+              [ "t_thconc_floor", 2 ]
+            ]
+          }
+        }
+      },
+      "palettes": [ "lab_common_palette", "lab_residential_palette", "standard_domestic_lino_bathroom" ],
+      "terrain": {
+        "U": "t_linoleum_gray",
+        "Y": "t_linoleum_gray",
+        "!": { "param": "carpet_type", "fallback": "t_carpet_concrete_yellow" },
+        "ÿ": { "param": "floor_type", "fallback": "t_thconc_floor" }
+      },
+      "place_monsters": [ { "monster": "GROUP_LAB_BASIC_SECURITY", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 } ],
+      "place_monster": [
+        { "monster": "mon_flashbang_hack", "x": 1, "y": 15, "chance": 100 },
+        { "monster": "mon_manhack", "x": 1, "y": 16, "chance": 100 },
+        { "monster": "mon_flashbang_hack", "x": 14, "y": 22, "chance": 100 },
+        { "monster": "mon_gasbomb_hack", "x": 15, "y": 22, "chance": 100 }
+      ],
+      "place_nested": [
+        {
+          "chunks": [
+            [ "diningroom_6x6_E_W_1", 20 ],
+            [ "diningroom_6x6_E_W_2", 20 ],
+            [ "diningroom_6x6_N_S_2", 20 ],
+            [ "diningroom_6x6_N_S_1B", 20 ],
+            [ "diningroom_6x6_N_S_1A", 20 ]
+          ],
+          "x": 2,
+          "y": 1
+        },
+        {
+          "chunks": [
+            [ "bonus_room_3x3_1", 20 ],
+            [ "bonus_room_3x3_3", 20 ],
+            [ "bonus_room_3x3_E_5", 20 ],
+            [ "bonus_room_3x3_E_6", 20 ],
+            [ "bonus_room_3x3_W_6", 20 ],
+            [ "bonus_room_3x3_E_8", 20 ],
+            [ "bonus_room_3x3_S_8", 20 ],
+            [ "bonus_room_3x3_W_8", 20 ],
+            [ "bonus_room_3x3_S_6", 20 ]
+          ],
+          "x": 7,
+          "y": 20
+        },
+        { "chunks": [ [ "lab_residential_6x6_W", 100 ] ], "x": 17, "y": 6 },
+        { "chunks": [ [ "lab_residential_6x6_W", 100 ] ], "x": 17, "y": 13 },
+        {
+          "chunks": [
+            [ "livingroom_5x5_N_2", 30 ],
+            [ "livingroom_5x5_S_2", 20 ],
+            [ "livingroom_5x5_W_2", 30 ],
+            [ "5x5_pool", 10 ],
+            [ "5x5_gym_S", 20 ],
+            [ "5x5_dojo", 20 ],
+            [ "5x5_gym_W", 20 ]
+          ],
+          "x": 1,
+          "y": 18
+        },
+        {
+          "chunks": [
+            [ "livingroom_5x5_N_1", 10 ],
+            [ "livingroom_5x5_S_1", 10 ],
+            [ "livingroom_5x5_W_1", 10 ],
+            [ "livingroom_5x5_N_2", 10 ],
+            [ "livingroom_5x5_S_2", 10 ],
+            [ "livingroom_5x5_E_2", 10 ],
+            [ "livingroom_5x5_W_2", 10 ]
+          ],
+          "x": 18,
+          "y": 1
+        }
+      ]
+    }
+  },
+  {
+    "method": "json",
+    "om_terrain": [ "lab_1x1_RES_8_commons_MAINT" ],
+    "type": "mapgen",
+    "weight": 200,
+    "object": {
+      "fill_ter": "t_thconc_floor",
+      "rows": [
+        "|||||||||||++|||||||||||",
+        "|_ÿÿÿÿÿÿ___!!____!!!!!!|",
+        "|_ÿÿÿÿÿÿ___!!____!!!!!!|",
+        "|_ÿÿÿÿÿÿ___!!____!!!!!!|",
+        "|_ÿÿÿÿÿÿ___!!____!!!!!!|",
+        "|_ÿÿÿÿÿÿ___!!____!!!!!!|",
+        "|_ÿÿÿÿÿÿ___!!____!!!!!!|",
+        "||||JJJ____!!____!!!!!!|",
+        "|y____JA___!!____!!!!!!|",
+        "|3____J_A__!!____!!!!!!|",
+        "|4____JA___!!____!!!!!!|",
+        "|O____J_A__!!____!!!!!!|",
+        "|2_________!!___||||||||",
+        "|157F3____!!!!__|ÿÿÿÿÿÿ|",
+        "||||||_||_!!!!__|ÿÿÿÿÿÿ|",
+        "|_|6____+_!!!!__|ÿÿÿÿÿÿ|",
+        "|_|JJJ66|_!!!!__+ÿÿÿÿÿÿ|",
+        "|||||||||__!!___|ÿÿÿÿÿÿ|",
+        "|_________|<<|__|ÿÿÿÿÿÿ|",
+        "|_____||+|||||__||||||||",
+        "|_____|___|UU+__+YS,,+t|",
+        "|_____|___|,,||||,,,,|||",
         "|_____|___|UU|__|YS,,+t|",
         "|||||||||||±||||||||||||"
       ],
@@ -149,8 +303,15 @@
         "U": "t_linoleum_gray",
         "Y": "t_linoleum_gray",
         "!": { "param": "carpet_type", "fallback": "t_carpet_concrete_yellow" },
-        "ÿ": { "param": "floor_type", "fallback": "t_floor" }
+        "ÿ": { "param": "floor_type", "fallback": "t_thconc_floor" }
       },
+      "place_monsters": [ { "monster": "GROUP_LAB_MAINTENANCE", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 } ],
+      "place_monster": [
+        { "monster": "mon_flashbang_hack", "x": 1, "y": 15, "chance": 100 },
+        { "monster": "mon_manhack", "x": 1, "y": 16, "chance": 100 },
+        { "monster": "mon_flashbang_hack", "x": 14, "y": 22, "chance": 100 },
+        { "monster": "mon_gasbomb_hack", "x": 15, "y": 22, "chance": 100 }
+      ],
       "place_nested": [
         {
           "chunks": [
diff --git a/data/json/mapgen/lab/lab_modular/lab_1x1x2_RES_8_apartments.json b/data/json/mapgen/lab/lab_modular/lab_1x1x2_RES_8_apartments.json
index af87a6c5339d1..91173bcc162c9 100644
--- a/data/json/mapgen/lab/lab_modular/lab_1x1x2_RES_8_apartments.json
+++ b/data/json/mapgen/lab/lab_modular/lab_1x1x2_RES_8_apartments.json
@@ -33,6 +33,7 @@
         "|||||||||||±||||||||||||"
       ],
       "palettes": [ "lab_common_palette", "lab_residential_palette", "standard_domestic_lino_bathroom" ],
+      "place_monsters": [ { "monster": "GROUP_LAB_HOSPTIAL", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ],
       "terrain": { ":": "t_window_domestic", "Y": "t_linoleum_gray" }
     }
   },
@@ -70,6 +71,7 @@
         "|||||||||||±||||||||||||"
       ],
       "palettes": [ "lab_common_palette", "lab_residential_palette", "standard_domestic_lino_bathroom" ],
+      "place_monsters": [ { "monster": "GROUP_LAB_HOSPTIAL", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ],
       "terrain": { ":": "t_window_domestic", "Y": "t_linoleum_gray" }
     }
   }
diff --git a/data/json/mapgen/lab/lab_modular/lab_2x2_MUT_Tier_1.json b/data/json/mapgen/lab/lab_modular/lab_2x2_MUT_Tier_1.json
index 1f87839295114..45522bce65e58 100644
--- a/data/json/mapgen/lab/lab_modular/lab_2x2_MUT_Tier_1.json
+++ b/data/json/mapgen/lab/lab_modular/lab_2x2_MUT_Tier_1.json
@@ -33,10 +33,7 @@
         "|......|;;;|.......X,..."
       ],
       "palettes": [ "lab_common_palette", "lab_mutagen_palette" ],
-      "place_traps": [
-        { "trap": "tr_light_on_res_8_NW", "x": [ 8, 10 ], "y": [ 1, 23 ], "repeat": [ 1, 2 ] },
-        { "trap": "tr_concrete_wall_door_lab_res_8_NW", "x": [ 8, 10 ], "y": [ 1, 23 ], "repeat": [ 2, 3 ] }
-      ],
+      "place_traps": [ { "trap": "tr_light_on_res_8_NW", "x": [ 8, 10 ], "y": [ 1, 23 ], "repeat": [ 1, 2 ] } ],
       "place_monsters": [
         { "monster": "GROUP_LAB_RESEARCHERS", "x": [ 13, 22 ], "y": [ 7, 22 ], "density": 0.1 },
         { "monster": "GROUP_LAB_RESEARCHERS", "x": [ 1, 4 ], "y": [ 2, 22 ], "density": 0.1 }
@@ -89,8 +86,8 @@
         "...,........|;;;X......|",
         ",,,,........|;;;-......|",
         "-XXX|||¢ȣ¢|||;;;-......|",
-        ".,.,->|...|;|;;;X......|",
-        ",.,.|>|...|;|;;;|......|",
+        ".,.,=>|...|;|;;;X......|",
+        ",.,.¥>|...|;|;;;|......|",
         "-XXX|||¢ȣ¢|||;;;||||||||",
         ",,,,X.......|;;;|......|",
         "...,X.......|;;;|......|",
@@ -100,6 +97,7 @@
         "...,X.......|;;;|......|"
       ],
       "palettes": [ "lab_common_palette", "lab_mutagen_palette" ],
+      "terrain": { "¥": "t_card_science_mutagen_cyan" },
       "place_nested": [
         { "chunks": [ [ "lab_common_9x9_W", 50 ], [ "lab_mutagen_9x9_W", 50 ] ], "x": 14, "y": 1 },
         { "chunks": [ [ "lab_medium_animal_1x1", 30 ] ], "x": 8, "y": 15 },
@@ -119,10 +117,7 @@
           "y": 17
         }
       ],
-      "place_traps": [
-        { "trap": "tr_light_on_res_8_NE", "x": [ 13, 15 ], "y": [ 1, 23 ], "repeat": [ 2, 3 ] },
-        { "trap": "tr_concrete_wall_door_lab_res_8_NE", "x": [ 13, 15 ], "y": [ 1, 23 ], "repeat": [ 1, 2 ] }
-      ],
+      "place_traps": [ { "trap": "tr_light_on_res_8_NE", "x": [ 13, 15 ], "y": [ 1, 23 ], "repeat": [ 2, 3 ] } ],
       "place_monsters": [
         { "monster": "GROUP_LAB_RESEARCHERS", "x": [ 1, 8 ], "y": [ 7, 22 ], "density": 0.1 },
         { "monster": "GROUP_LAB_RESEARCHERS", "x": [ 19, 21 ], "y": [ 2, 22 ], "density": 0.1 }
@@ -168,10 +163,7 @@
       ],
       "palettes": [ "lab_common_palette", "lab_mutagen_palette" ],
       "terrain": { "J": "t_linoleum_gray" },
-      "place_traps": [
-        { "trap": "tr_light_on_res_8_SW_2", "x": [ 7, 10 ], "y": [ 1, 5 ], "repeat": [ 1, 2 ] },
-        { "trap": "tr_concrete_wall_door_lab_MUT_SW", "x": [ 7, 10 ], "y": [ 1, 5 ] }
-      ],
+      "place_traps": [ { "trap": "tr_light_on_res_8_SW_2", "x": [ 7, 10 ], "y": [ 1, 5 ], "repeat": [ 1, 2 ] } ],
       "place_monsters": [
         { "monster": "GROUP_LAB_RESEARCHERS", "x": [ 1, 4 ], "y": [ 1, 3 ], "density": 0.05 },
         { "monster": "GROUP_LAB_RESEARCHERS", "x": [ 14, 22 ], "y": [ 0, 10 ], "density": 0.1 }
@@ -239,11 +231,9 @@
         "||||||||||||||||||||||||"
       ],
       "palettes": [ "lab_common_palette", "lab_mutagen_palette" ],
+      "place_loot": [ { "item": "id_science_mutagen_cyan", "x": 1, "y": 12, "chance": 100 } ],
       "terrain": { "J": "t_linoleum_gray" },
-      "place_traps": [
-        { "trap": "tr_light_on_MUT_SE_2", "x": [ 13, 16 ], "y": [ 1, 5 ], "repeat": [ 1, 2 ] },
-        { "trap": "tr_concrete_wall_door_lab_MUT_SE", "x": [ 13, 16 ], "y": [ 1, 5 ] }
-      ],
+      "place_traps": [ { "trap": "tr_light_on_MUT_SE_2", "x": [ 13, 16 ], "y": [ 1, 5 ], "repeat": [ 1, 2 ] } ],
       "place_nested": [
         {
           "chunks": [ [ "lab_common_3x3_EW_open", 20 ], [ "lab_generic_3x3_EW_open", 20 ], [ "lab_mutagen_3x3_EW_open", 60 ] ],
@@ -272,6 +262,7 @@
         { "monster": "GROUP_LAB_RESEARCHERS", "x": [ 0, 8 ], "y": [ 0, 10 ], "density": 0.1 }
       ],
       "place_monster": [
+        { "monster": "mon_mutant_experimental", "x": 1, "y": 7, "chance": 100, "repeat": [ 1, 3 ] },
         { "monster": "mon_skitterbot", "x": 11, "y": 3, "chance": 100 },
         { "monster": "mon_skitterbot", "x": 11, "y": 4, "chance": 100 },
         { "monster": "mon_skitterbot", "x": 11, "y": 5, "chance": 100 }
diff --git a/data/json/mapgen/lab/lab_modular/lab_2x2_MUT_Tier_2.json b/data/json/mapgen/lab/lab_modular/lab_2x2_MUT_Tier_2.json
index c974c4e9ea640..fc837e22ce5d4 100644
--- a/data/json/mapgen/lab/lab_modular/lab_2x2_MUT_Tier_2.json
+++ b/data/json/mapgen/lab/lab_modular/lab_2x2_MUT_Tier_2.json
@@ -34,28 +34,17 @@
         "|......|;;;|.......X;£;;"
       ],
       "palettes": [ "lab_common_palette", "lab_mutagen_palette" ],
-      "terrain": { "¥": "t_card_science_maintenance_blue" },
+      "terrain": { "¥": "t_card_science_mutagen_cyan" },
       "place_monsters": [
         { "monster": "GROUP_LAB_RESEARCHERS", "x": [ 13, 22 ], "y": [ 7, 22 ], "density": 0.1 },
         { "monster": "GROUP_LAB_RESEARCHERS", "x": [ 1, 4 ], "y": [ 2, 22 ], "density": 0.1 }
       ],
-      "place_traps": [
-        { "trap": "tr_light_on_res_8_NW", "x": [ 8, 10 ], "y": [ 1, 23 ], "repeat": [ 1, 2 ] },
-        { "trap": "tr_concrete_wall_door_lab_res_8_NW", "x": [ 8, 10 ], "y": [ 1, 23 ], "repeat": [ 2, 3 ] }
-      ],
-      "computers": {
-        "6": {
-          "name": "Tier 3 Access",
-          "security": 4,
-          "options": [ { "name": "UNLOCK ENTRANCE", "action": "unlock", "security": 4 } ],
-          "failures": [ { "action": "damage" }, { "action": "shutdown" }, { "action": "secubots" } ]
-        }
-      },
+      "place_traps": [ { "trap": "tr_light_on_res_8_NW", "x": [ 8, 10 ], "y": [ 1, 23 ], "repeat": [ 1, 2 ] } ],
       "place_nested": [
         { "chunks": [ [ "lab_common_9x9_E", 30 ], [ "lab_mutagen_9x9_E", 70 ] ], "x": 1, "y": 1 },
-        { "chunks": [ [ "lab_medium_animal_1x1", 30 ] ], "x": 15, "y": 15 },
-        { "chunks": [ [ "lab_medium_animal_1x1", 30 ] ], "x": 15, "y": 16 },
-        { "chunks": [ [ "lab_mutagen_8x8_west", 70 ], [ "lab_mutagen_8x8_vault_west", 30 ] ], "x": 12, "y": 6 },
+        { "chunks": [ [ "lab_medium_animal_1x1_MUTANT", 30 ] ], "x": 15, "y": 15 },
+        { "chunks": [ [ "lab_medium_animal_1x1_MUTANT", 30 ] ], "x": 15, "y": 16 },
+        { "chunks": [ [ "lab_mutagen_8x8_vault_west", 100 ] ], "x": 12, "y": 6 },
         { "chunks": [ [ "lab_mutagen_8x8_west", 100 ] ], "x": 12, "y": 18 },
         { "chunks": [ [ "lab_common_6x6", 100 ] ], "x": 1, "y": 11 },
         { "chunks": [ [ "lab_common_6x6", 100 ] ], "x": 1, "y": 18 },
@@ -75,9 +64,7 @@
         { "monster": "mon_skitterbot", "x": 12, "y": 16, "chance": 100 },
         { "monster": "mon_skitterbot", "x": 18, "y": 15, "chance": 100 },
         { "monster": "mon_skitterbot", "x": 18, "y": 16, "chance": 100 }
-      ],
-      "traps": { "(": "tr_rollmat" },
-      "furniture": { "!": "f_exercise", "}": [ "f_ergometer", "f_ergometer_mechanical" ], "{": "f_punching_bag" }
+      ]
     }
   },
   {
@@ -114,10 +101,7 @@
         ";;£;X.......|;;;|......|"
       ],
       "palettes": [ "lab_common_palette", "lab_mutagen_palette" ],
-      "place_traps": [
-        { "trap": "tr_light_on_res_8_NE", "x": [ 13, 15 ], "y": [ 1, 23 ], "repeat": [ 2, 3 ] },
-        { "trap": "tr_concrete_wall_door_lab_res_8_NE", "x": [ 13, 15 ], "y": [ 1, 23 ], "repeat": [ 1, 2 ] }
-      ],
+      "place_traps": [ { "trap": "tr_light_on_res_8_NE", "x": [ 13, 15 ], "y": [ 1, 23 ], "repeat": [ 2, 3 ] } ],
       "place_vehicles": [
         { "vehicle": "cart_animal_compartment", "x": 0, "y": 10, "chance": 30, "status": 0, "rotation": 270 },
         { "vehicle": "cart_livestock_stall", "x": 0, "y": 5, "chance": 30, "status": 0, "rotation": 270 }
@@ -128,8 +112,8 @@
       ],
       "place_nested": [
         { "chunks": [ [ "lab_common_9x9_W", 30 ], [ "lab_mutagen_9x9_W", 70 ] ], "x": 14, "y": 1 },
-        { "chunks": [ [ "lab_medium_animal_1x1", 30 ] ], "x": 8, "y": 15 },
-        { "chunks": [ [ "lab_medium_animal_1x1", 30 ] ], "x": 9, "y": 16 },
+        { "chunks": [ [ "lab_medium_animal_1x1_MUTANT", 30 ] ], "x": 8, "y": 15 },
+        { "chunks": [ [ "lab_medium_animal_1x1_MUTANT", 30 ] ], "x": 9, "y": 16 },
         { "chunks": [ [ "lab_mutagen_8x8_east", 95 ], [ "lab_mutagen_8x8_vault_east", 5 ] ], "x": 4, "y": 6 },
         { "chunks": [ [ "lab_mutagen_8x8_east", 100 ] ], "x": 4, "y": 18 },
         { "chunks": [ [ "lab_common_6x6", 100 ] ], "x": 17, "y": 11 },
@@ -186,10 +170,7 @@
       ],
       "palettes": [ "lab_common_palette", "lab_mutagen_palette" ],
       "terrain": { "~": "t_region_groundcover_urban" },
-      "place_traps": [
-        { "trap": "tr_light_on_res_8_SW_2", "x": [ 7, 10 ], "y": [ 1, 5 ], "repeat": [ 1, 2 ] },
-        { "trap": "tr_concrete_wall_door_lab_MUT_SW", "x": [ 7, 10 ], "y": [ 1, 5 ] }
-      ],
+      "place_traps": [ { "trap": "tr_light_on_res_8_SW_2", "x": [ 7, 10 ], "y": [ 1, 5 ], "repeat": [ 1, 2 ] } ],
       "place_nested": [
         { "chunks": [ [ "lab_mutagen_16x16_animal_pen", 100 ] ], "x": 1, "y": 7 },
         {
@@ -224,31 +205,6 @@
       ]
     }
   },
-  {
-    "type": "trap",
-    "id": "tr_concrete_wall_door_lab_MUT_SW",
-    "name": "door",
-    "color": "light_gray",
-    "symbol": "+",
-    "visibility": 99,
-    "avoidance": 99,
-    "difficulty": 99,
-    "action": "map_regen",
-    "map_regen": "concrete_wall_o_lab_MUT_SW",
-    "benign": false
-  },
-  {
-    "type": "mapgen",
-    "update_mapgen_id": "concrete_wall_o_lab_MUT_SW",
-    "method": "json",
-    "object": {
-      "place_terrain": [
-        { "ter": "t_strconc_floor", "x": 11, "y": 3 },
-        { "ter": "t_strconc_floor", "x": 11, "y": 4 },
-        { "ter": "t_strconc_floor", "x": 11, "y": 5 }
-      ]
-    }
-  },
   {
     "type": "trap",
     "id": "tr_light_on_res_8_SW_2",
@@ -303,10 +259,7 @@
       ],
       "palettes": [ "lab_common_palette", "lab_mutagen_palette" ],
       "terrain": { "~": "t_region_groundcover_urban" },
-      "place_traps": [
-        { "trap": "tr_light_on_MUT_SE_2", "x": [ 13, 16 ], "y": [ 1, 5 ], "repeat": [ 1, 2 ] },
-        { "trap": "tr_concrete_wall_door_lab_MUT_SE", "x": [ 13, 16 ], "y": [ 1, 5 ] }
-      ],
+      "place_traps": [ { "trap": "tr_light_on_MUT_SE_2", "x": [ 13, 16 ], "y": [ 1, 5 ], "repeat": [ 1, 2 ] } ],
       "place_nested": [
         {
           "chunks": [
@@ -341,31 +294,6 @@
       ]
     }
   },
-  {
-    "type": "trap",
-    "id": "tr_concrete_wall_door_lab_MUT_SE",
-    "name": "door",
-    "color": "light_gray",
-    "symbol": "+",
-    "visibility": 99,
-    "avoidance": 99,
-    "difficulty": 99,
-    "action": "map_regen",
-    "map_regen": "concrete_wall_o_lab_MUT_SE",
-    "benign": false
-  },
-  {
-    "type": "mapgen",
-    "update_mapgen_id": "concrete_wall_o_lab_MUT_SE",
-    "method": "json",
-    "object": {
-      "place_terrain": [
-        { "ter": "t_strconc_floor", "x": 12, "y": 3 },
-        { "ter": "t_strconc_floor", "x": 12, "y": 4 },
-        { "ter": "t_strconc_floor", "x": 12, "y": 5 }
-      ]
-    }
-  },
   {
     "type": "trap",
     "id": "tr_light_on_MUT_SE_2",
diff --git a/data/json/mapgen/lab/lab_modular/lab_2x2_cargo_depot.json b/data/json/mapgen/lab/lab_modular/lab_2x2_cargo_depot.json
index 38b2679b0a889..dd73479039d8e 100644
--- a/data/json/mapgen/lab/lab_modular/lab_2x2_cargo_depot.json
+++ b/data/json/mapgen/lab/lab_modular/lab_2x2_cargo_depot.json
@@ -59,6 +59,10 @@
         { "chunks": [ [ "lab_wall_chain_5x5", 50 ], [ "lab_wall_door_5x5", 50 ], [ "null", 50 ] ], "x": 1, "y": 12 },
         { "chunks": [ [ "lab_wall_chain_5x5", 50 ], [ "lab_wall_door_5x5", 50 ], [ "null", 50 ] ], "x": 1, "y": 18 }
       ],
+      "place_monsters": [
+        { "monster": "GROUP_LAB_RESEARCHERS", "x": [ 13, 22 ], "y": [ 2, 22 ], "density": 0.08 },
+        { "monster": "GROUP_LAB_MAINTENANCE", "x": [ 1, 4 ], "y": [ 2, 22 ], "density": 0.2 }
+      ],
       "place_monster": [
         { "monster": "mon_skitterbot", "x": 12, "y": 15, "chance": 100 },
         { "monster": "mon_skitterbot", "x": 12, "y": 16, "chance": 100 }
@@ -111,6 +115,10 @@
         { "chunks": [ [ "lab_wall_chain_5x5", 50 ], [ "lab_wall_door_5x5", 50 ], [ "null", 50 ] ], "x": 18, "y": 12 },
         { "chunks": [ [ "lab_wall_chain_5x5", 50 ], [ "lab_wall_door_5x5", 50 ], [ "null", 50 ] ], "x": 18, "y": 18 }
       ],
+      "place_monsters": [
+        { "monster": "GROUP_LAB_RESEARCHERS", "x": [ 1, 8 ], "y": [ 2, 22 ], "density": 0.05 },
+        { "monster": "GROUP_LAB_MAINTENANCE", "x": [ 19, 21 ], "y": [ 2, 22 ], "density": 0.2 }
+      ],
       "place_monster": [
         { "monster": "mon_skitterbot", "x": 11, "y": 15, "chance": 100 },
         { "monster": "mon_skitterbot", "x": 11, "y": 16, "chance": 100 }
@@ -158,7 +166,10 @@
         { "chunks": [ [ "lab_wall_chain_5x5", 50 ], [ "lab_wall_door_5x5", 50 ], [ "null", 50 ] ], "x": 1, "y": 0 },
         { "chunks": [ [ "lab_wall_chain_5x5", 50 ], [ "lab_wall_door_5x5", 50 ], [ "null", 50 ] ], "x": 1, "y": 6 }
       ],
-      "place_monster": [ { "monster": "mon_skitterbot", "x": 7, "y": 12, "chance": 100 } ]
+      "place_monsters": [
+        { "monster": "GROUP_LAB_MAINTENANCE", "x": [ 15, 20 ], "y": [ 4, 11 ], "density": 0.1 },
+        { "monster": "GROUP_LAB_MAINTENANCE", "x": [ 1, 4 ], "y": [ 1, 4 ], "density": 0.1 }
+      ]
     }
   },
   {
@@ -201,7 +212,10 @@
         { "chunks": [ [ "lab_wall_chain_5x5", 50 ], [ "lab_wall_door_5x5", 50 ], [ "null", 50 ] ], "x": 18, "y": 0 },
         { "chunks": [ [ "lab_wall_chain_5x5", 50 ], [ "lab_wall_door_5x5", 50 ], [ "null", 50 ] ], "x": 18, "y": 6 }
       ],
-      "place_monster": [ { "monster": "mon_skitterbot", "x": 11, "y": 12, "chance": 30 } ]
+      "place_monsters": [
+        { "monster": "GROUP_LAB_MAINTENANCE", "x": [ 0, 8 ], "y": [ 4, 11 ], "density": 0.1 },
+        { "monster": "GROUP_LAB_MAINTENANCE", "x": [ 19, 21 ], "y": [ 1, 4 ], "density": 0.1 }
+      ]
     }
   }
 ]
diff --git a/data/json/mapgen/lab/lab_modular/lab_2x2x2_RES_8_bedrooms.json b/data/json/mapgen/lab/lab_modular/lab_2x2x2_RES_8_bedrooms.json
index 4e068479e97a1..7fb850614ab9a 100644
--- a/data/json/mapgen/lab/lab_modular/lab_2x2x2_RES_8_bedrooms.json
+++ b/data/json/mapgen/lab/lab_modular/lab_2x2x2_RES_8_bedrooms.json
@@ -38,6 +38,12 @@
         { "trap": "tr_light_on_res_8_NW", "x": [ 8, 10 ], "y": [ 1, 23 ], "repeat": [ 1, 2 ] },
         { "trap": "tr_concrete_wall_door_lab_res_8_NW", "x": [ 8, 10 ], "y": [ 1, 23 ], "repeat": [ 2, 3 ] }
       ],
+      "place_loot": [
+        { "item": "id_science_mutagen_pink", "x": 14, "y": 9, "chance": 25 },
+        { "item": "id_science_mutagen_pink", "x": 14, "y": 11, "chance": 25 },
+        { "item": "id_science_mutagen_pink", "x": 14, "y": 20, "chance": 25 },
+        { "item": "id_science_mutagen_pink", "x": 14, "y": 22, "chance": 25 }
+      ],
       "place_nested": [
         { "chunks": [ [ "lab_cargo_5x5", 100 ] ], "x": 1, "y": 18 },
         { "chunks": [ [ "lab_6x6_shop_backroom", 100 ] ], "x": 1, "y": 11 },
@@ -97,6 +103,12 @@
         { "chunks": [ [ "lab_6x6_shop_backroom", 100 ] ], "x": 17, "y": 11 },
         { "chunks": [ [ "lab_maintenance_9x9_W", 100 ] ], "x": 14, "y": 1 }
       ],
+      "place_loot": [
+        { "item": "id_science_mutagen_pink", "x": 9, "y": 9, "chance": 25 },
+        { "item": "id_science_mutagen_pink", "x": 9, "y": 11, "chance": 25 },
+        { "item": "id_science_mutagen_pink", "x": 9, "y": 20, "chance": 25 },
+        { "item": "id_science_mutagen_pink", "x": 9, "y": 22, "chance": 25 }
+      ],
       "place_monsters": [
         { "monster": "GROUP_LAB_RESEARCHERS", "x": [ 1, 8 ], "y": [ 8, 22 ], "density": 0.05 },
         { "monster": "GROUP_LAB_MAINTENANCE", "x": [ 19, 21 ], "y": [ 2, 22 ], "density": 0.1 }
@@ -146,7 +158,7 @@
         "U": "t_thconc_floor",
         "Q": "t_thconc_floor",
         "Г": "t_ladder_down",
-        "¥": "t_card_science_maintenance_yellow"
+        "¥": "t_card_science_maintenance_green"
       },
       "place_nested": [
         { "chunks": [ [ "lab_cargo_5x5", 100 ] ], "x": 1, "y": 1 },
diff --git a/data/json/mapgen/lab/lab_modular/lab_2x2x2_RES_8_commons.json b/data/json/mapgen/lab/lab_modular/lab_2x2x2_RES_8_commons.json
index a78eb0dbeccbf..26dc3337038f2 100644
--- a/data/json/mapgen/lab/lab_modular/lab_2x2x2_RES_8_commons.json
+++ b/data/json/mapgen/lab/lab_modular/lab_2x2x2_RES_8_commons.json
@@ -216,8 +216,8 @@
         "h..........E|;;;|......|",
         "....yRY....T|;;;|......|",
         "....|||;a;|||;;;|......|",
-        "....=>|||||;|;;;|......|",
-        "....ƶ>|||||;|;;;|......|",
+        "....->|||||;|;;;|......|",
+        "....X>|||||;|;;;|......|",
         "....|||PPP|||;;;||||||||",
         ".....:.....R|;;;|;;;;;;|",
         "եե...:.ErE.R|;;;|;;;;;;|",
diff --git a/data/json/mapgen/lab/lab_modular/lab_cargo_surface.json b/data/json/mapgen/lab/lab_modular/lab_cargo_surface.json
index 3af469ed8a7f9..6feaeaeac8250 100644
--- a/data/json/mapgen/lab/lab_modular/lab_cargo_surface.json
+++ b/data/json/mapgen/lab/lab_modular/lab_cargo_surface.json
@@ -284,6 +284,8 @@
         "q": [ { "item": "mechanics", "chance": 30 } ]
       },
       "place_loot": [
+        { "item": "id_science_maintenance_yellow", "x": 6, "y": 7, "chance": 100 },
+        { "item": "id_science_maintenance_yellow", "x": 6, "y": 16, "chance": 100 },
         { "item": "hd_tow_cable", "x": 22, "y": [ 7, 8 ], "chance": 10 },
         { "item": "jumper_cable", "x": 22, "y": [ 7, 8 ], "chance": 10 },
         { "item": "jumper_cable_heavy", "x": 22, "y": [ 7, 8 ], "chance": 7 },
diff --git a/data/json/mapgen/lab/lab_modular/lab_central_hallway.json b/data/json/mapgen/lab/lab_modular/lab_central_hallway.json
index 375ae3f30b664..bd9a7c5bb7198 100644
--- a/data/json/mapgen/lab/lab_modular/lab_central_hallway.json
+++ b/data/json/mapgen/lab/lab_modular/lab_central_hallway.json
@@ -91,11 +91,11 @@
         { "chunks": [ [ "null", 10 ], [ "lab_recreational_3x3_open", 90 ] ], "x": 5, "y": 15 }
       ],
       "place_monster": [
-        { "monster": "mon_skitterbot", "x": 17, "y": 3, "chance": 100 },
-        { "monster": "mon_skitterbot", "x": 16, "y": 3, "chance": 100 },
+        { "monster": "mon_flashbang_hack", "x": 17, "y": 3, "chance": 100 },
+        { "monster": "mon_gasbomb_hack", "x": 16, "y": 3, "chance": 100 },
         { "monster": "mon_skitterbot", "x": 17, "y": 4, "chance": 100 },
-        { "monster": "mon_skitterbot", "x": 17, "y": 19, "chance": 100 },
-        { "monster": "mon_skitterbot", "x": 16, "y": 20, "chance": 100 },
+        { "monster": "mon_flashbang_hack", "x": 17, "y": 19, "chance": 100 },
+        { "monster": "mon_gasbomb_hack", "x": 16, "y": 20, "chance": 100 },
         { "monster": "mon_skitterbot", "x": 17, "y": 20, "chance": 100 }
       ]
     }
@@ -306,22 +306,22 @@
         "|``````|;£♠♠♠♠£;|``````|",
         "|````|||;£;;;;£;|||````|",
         "|ßßßß|||;£;;;;£;|||ßßßß|",
-        "|````|||;£;;;;£;|||````|",
+        "|ɜ```|||;£;;;;£;|||```ɜ|",
         "|````|||;£;;;;£;|||````|",
         "|````|||;££££££;|||````|",
-        "|`î```||||||||||||```î`|",
-        "|`````||||||||||||`````|",
-        "|`````||||||||||||`````|"
+        "||=¥||||||||||||||||=¥||",
+        "|``````````````````````|",
+        "|``````````````````````|"
       ],
       "palettes": [ "lab_common_palette", "lab_security_palette" ],
-      "terrain": { "ɜ": "t_metal_floor" },
+      "terrain": { "ɜ": "t_metal_floor", "¥": "t_card_science_security_black", "ƶ": "t_card_science_security_magenta" },
       "place_traps": [
         { "trap": "tr_lab_security_corridor_a", "x": [ 19, 22 ], "y": [ 3, 21 ], "repeat": [ 2, 5 ] },
         { "trap": "tr_lab_security_corridor_b", "x": [ 1, 4 ], "y": [ 3, 21 ], "repeat": [ 2, 5 ] }
       ],
       "place_nested": [
-        { "chunks": [ [ "null", 5 ], [ "lab_security_14x14_corridor_1", 95 ] ], "x": 17, "y": 3 },
-        { "chunks": [ [ "null", 5 ], [ "lab_security_14x14_corridor_2", 95 ] ], "x": 1, "y": 3 }
+        { "chunks": [ [ "lab_security_14x14_corridor_1", 100 ] ], "x": 17, "y": 3 },
+        { "chunks": [ [ "lab_security_14x14_corridor_2", 100 ] ], "x": 1, "y": 3 }
       ]
     }
   },
@@ -436,37 +436,30 @@
         ";;;;;;;;;;;;;;;;;;;;;;;;",
         "££££££££££;;;;££££££££££",
         "|$|||;;;;£;;;;£;;;;|||$|",
-        "|=|||;;;;£;;;;£;;;;|||=|",
-        "6```|;;;;£;;;;£;;;;|```6",
-        "````|;;;;££££££;;;;|````",
+        "|=¥||;;;;£;;;;£;;;;||¥=|",
         "````|;;;;£;;;;£;;;;|````",
-        "`î``|;;;;£;;;;£;;;;|``î`",
+        "^``^|;;;;££££££;;;;|^``^",
         "````|;;;;£;;;;£;;;;|````",
+        "`î``|;;;;£;;;;£;;;;|``î`",
         "````|;;;;£;;;;£;;;;|````",
         "````|;;;;£;;;;£;;;;|````",
+        "^``^|;;;;£;;;;£;;;;|^``^",
         "````|;;;;£;;;;£;;;;|````",
         "````|;;;;£;;;;£;;;;|````",
         "`î``|;;;;£;;;;£;;;;|``î`",
         "````|;;;;£♣♣♣♣£;;;;|````",
         "````|;;;;£♦♦♦♦£;;;;|````",
-        "````|;;;;£;;;;£;;;;|````",
+        "^``^|;;;;£;;;;£;;;;|^``^",
         "````|;;;;£;;;;£;;;;|````",
         "````|;;;;£;;;;£;;;;|````",
         "`î``|;;;;£;;;;£;;;;|``î`",
         "````|;;;;££££££;;;;|````",
-        "````|;;;;£;;;;£;;;;|````",
+        "^``^|;;;;£;;;;£;;;;|^``^",
         "````|;;;;££££££;;;;|````",
         "|```||||||||||||||||```|"
       ],
       "palettes": [ "lab_common_palette", "lab_security_palette" ],
-      "computers": {
-        "6": {
-          "name": "Emergency Containment Entrance",
-          "security": 8,
-          "options": [ { "name": "UNLOCK ENTRANCE", "action": "unlock", "security": 6 } ],
-          "failures": [ { "action": "damage" }, { "action": "shutdown" }, { "action": "secubots" } ]
-        }
-      }
+      "terrain": { "¥": "t_card_science_security_black" }
     }
   },
   {
diff --git a/data/json/mapgen/lab/lab_modular/lab_maintenance_areas.json b/data/json/mapgen/lab/lab_modular/lab_maintenance_areas.json
index 4affba76537eb..7c1ecc4a27730 100644
--- a/data/json/mapgen/lab/lab_modular/lab_maintenance_areas.json
+++ b/data/json/mapgen/lab/lab_modular/lab_maintenance_areas.json
@@ -34,6 +34,7 @@
         "|||||||?????????????????"
       ],
       "palettes": [ "lab_common_palette", "lab_maintenance_palette" ],
+      "place_loot": [ { "item": "id_science_maintenance_blue", "x": 21, "y": [ 7, 20 ], "chance": 100 } ],
       "place_signs": [
         { "snippet": "lab_maintenance_signage", "x": 6, "y": [ 5, 9 ] },
         { "snippet": "lab_maintenance_signage", "x": [ 0, 6 ], "y": 18 },
@@ -87,6 +88,7 @@
         "||||||||||||||||||||||||"
       ],
       "palettes": [ "lab_common_palette", "lab_maintenance_palette" ],
+      "place_loot": [ { "item": "id_science_maintenance_blue", "x": 22, "y": [ 4, 15 ], "chance": 100 } ],
       "place_signs": [
         { "snippet": "lab_maintenance_signage", "x": [ 9, 11 ], "y": 8 },
         { "snippet": "lab_maintenance_signage", "x": 7, "y": 17 },
@@ -142,6 +144,7 @@
         "|||||||||||||||||????|||"
       ],
       "palettes": [ "lab_common_palette", "lab_maintenance_palette" ],
+      "place_loot": [ { "item": "id_science_maintenance_blue", "x": 22, "y": [ 8, 19 ], "chance": 100 } ],
       "place_monster": [ { "monster": "mon_manhack", "x": 20, "y": 5, "chance": 90 } ],
       "place_nested": [
         { "chunks": [ [ "lab_maintenance_3x3_NS_open", 90 ], [ "null", 10 ] ], "x": 1, "y": 7 },
diff --git a/data/json/mapgen/lab/lab_modular/lab_nests_modular/lab_effect_on_condition.json b/data/json/mapgen/lab/lab_modular/lab_nests_modular/lab_effect_on_condition.json
new file mode 100644
index 0000000000000..42d6b097cb2ea
--- /dev/null
+++ b/data/json/mapgen/lab/lab_modular/lab_nests_modular/lab_effect_on_condition.json
@@ -0,0 +1,415 @@
+[
+  {
+    "type": "effect_on_condition",
+    "id": "lab_security_check",
+    "recurrence_min": 1,
+    "recurrence_max": 1,
+    "condition": {
+      "and": [ { "u_at_om_location": "lab_1x1x2_RES_8_apartments_lower" }, { "not": { "u_has_item": "id_science_medical_red" } } ]
+    },
+    "effect": { "mapgen_update": "release_the_bots", "om_terrain": "lab_health_z-3_A" }
+  },
+  {
+    "//": "Opens bot release if you lack a red science ID card.",
+    "type": "mapgen",
+    "update_mapgen_id": "release_the_bots",
+    "method": "json",
+    "object": { "place_terrain": [ { "ter": "t_thconc_r", "x": 5, "y": 0 } ] }
+  },
+  {
+    "type": "effect_on_condition",
+    "id": "lab_security_check_surface_1",
+    "recurrence_min": 1,
+    "recurrence_max": 1,
+    "condition": {
+      "and": [ { "u_at_om_location": "lab_res_8_SWU_ground" }, { "not": { "u_has_item": "id_science_maintenance_green" } } ]
+    },
+    "effect": { "mapgen_update": "release_the_bots_2", "om_terrain": "lab_res_8_SEU_ground" }
+  },
+  {
+    "type": "effect_on_condition",
+    "id": "lab_security_check_surface_2",
+    "recurrence_min": 1,
+    "recurrence_max": 1,
+    "condition": {
+      "and": [ { "u_at_om_location": "lab_res_8_SWD_ground" }, { "not": { "u_has_item": "id_science_maintenance_green" } } ]
+    },
+    "effect": { "mapgen_update": "release_the_bots_2", "om_terrain": "lab_res_8_SED_ground" }
+  },
+  {
+    "//": "Opens bot release if you lack a green maintenance ID card.",
+    "type": "mapgen",
+    "update_mapgen_id": "release_the_bots_2",
+    "method": "json",
+    "object": {
+      "place_terrain": [
+        { "ter": "t_thconc_r", "x": 7, "y": 0 },
+        { "ter": "t_thconc_r", "x": 11, "y": 0 },
+        { "ter": "t_thconc_r", "x": 15, "y": 0 },
+        { "ter": "t_thconc_r", "x": 19, "y": 0 }
+      ]
+    }
+  },
+  {
+    "type": "effect_on_condition",
+    "id": "lab_security_check_surface_1",
+    "recurrence_min": 1,
+    "recurrence_max": 1,
+    "condition": {
+      "and": [ { "u_at_om_location": "lab_CORE_2x1_WC_ground" }, { "not": { "u_has_item": "id_science_maintenance_green" } } ]
+    },
+    "effect": [
+      { "mapgen_update": "release_bots_garage", "om_terrain": "lab_security_z0" },
+      { "mapgen_update": "open_walls_garage", "om_terrain": "lab_CORE_2x1_WC_ground" }
+    ]
+  },
+  {
+    "//": "Opens bot release if you lack a green maintenance ID card.",
+    "type": "mapgen",
+    "update_mapgen_id": "release_bots_garage",
+    "method": "json",
+    "object": {
+      "place_terrain": [
+        { "ter": "t_thconc_r", "x": 10, "y": 8 },
+        { "ter": "t_thconc_r", "x": 10, "y": 9 },
+        { "ter": "t_thconc_r", "x": 10, "y": 14 },
+        { "ter": "t_thconc_r", "x": 10, "y": 15 }
+      ]
+    }
+  },
+  {
+    "//": "Opens walls for bot pathing if you lack a green maintenance ID card.",
+    "type": "mapgen",
+    "update_mapgen_id": "open_walls_garage",
+    "method": "json",
+    "object": {
+      "place_terrain": [
+        { "ter": "t_thconc_r", "x": 0, "y": 1 },
+        { "ter": "t_thconc_r", "x": 0, "y": 2 },
+        { "ter": "t_thconc_r", "x": 0, "y": 21 },
+        { "ter": "t_thconc_r", "x": 0, "y": 22 }
+      ]
+    }
+  },
+  {
+    "type": "effect_on_condition",
+    "id": "lab_check_magenta_security_drop",
+    "recurrence_min": 3,
+    "recurrence_max": 5,
+    "condition": {
+      "and": [
+        { "u_at_om_location": "lab_security_z-1" },
+        { "u_has_item": "id_science_security_yellow" },
+        {
+          "not": { "u_has_var": "valid_security_employee", "type": "check", "context": "trap trigger", "value": "yes" }
+        }
+      ]
+    },
+    "effect": [
+      { "mapgen_update": "magenta_security_card_spawn", "om_terrain": "lab_security_z-1" },
+      { "u_add_var": "valid_security_employee", "type": "check", "context": "trap trigger", "value": "yes" }
+    ]
+  },
+  {
+    "//": "Spawns a special monster fight and ID badge spwan if you have the yellow security badge.",
+    "type": "mapgen",
+    "update_mapgen_id": "magenta_security_card_spawn",
+    "method": "json",
+    "object": {
+      "place_loot": [ { "item": "id_science_security_magenta", "x": 21, "y": 14, "chance": 100 } ],
+      "place_monster": [ { "monster": [ "mon_zombie_brute", "mon_zombie_bio_op" ], "x": 21, "y": 14, "chance": 100 } ]
+    }
+  },
+  {
+    "type": "effect_on_condition",
+    "id": "lab_1x1x2_RES_8_check_SEC",
+    "recurrence_min": 5,
+    "recurrence_max": 10,
+    "condition": {
+      "and": [ { "u_at_om_location": "lab_1x1_RES_8_commons_SEC" }, { "not": { "u_has_item": "id_science_security_yellow" } } ]
+    },
+    "effect": [ { "mapgen_update": "release_bots_3", "om_terrain": "lab_1x1_RES_8_commons_SEC" } ]
+  },
+  {
+    "//": "Opens bot release if you lack a yellow security ID card.",
+    "type": "mapgen",
+    "update_mapgen_id": "release_bots_3",
+    "method": "json",
+    "object": {
+      "place_terrain": [
+        { "ter": "t_thconc_r", "x": 1, "y": 17 },
+        { "ter": "t_thconc_r", "x": 14, "y": 21 },
+        { "ter": "t_thconc_r", "x": 15, "y": 21 }
+      ]
+    }
+  },
+  {
+    "type": "effect_on_condition",
+    "id": "lab_1x1x2_RES_8_check_MAINT",
+    "recurrence_min": 5,
+    "recurrence_max": 10,
+    "condition": {
+      "and": [ { "u_at_om_location": "lab_1x1_RES_8_commons_MAINT" }, { "not": { "u_has_item": "id_science_maintenance_yellow" } } ]
+    },
+    "effect": [ { "mapgen_update": "release_bots_3", "om_terrain": "lab_1x1_RES_8_commons_MAINT" } ]
+  },
+  {
+    "//": "Opens bot release if you lack a yellow security ID card.",
+    "type": "mapgen",
+    "update_mapgen_id": "release_bots_3",
+    "method": "json",
+    "object": {
+      "place_terrain": [
+        { "ter": "t_thconc_r", "x": 1, "y": 17 },
+        { "ter": "t_thconc_r", "x": 14, "y": 21 },
+        { "ter": "t_thconc_r", "x": 15, "y": 21 }
+      ]
+    }
+  },
+  {
+    "type": "effect_on_condition",
+    "id": "lab_concourse_bot_release",
+    "recurrence_min": 5,
+    "recurrence_max": 10,
+    "condition": {
+      "and": [
+        { "u_at_om_location": "lab_CORE_2x1_1DN" },
+        {
+          "not": {
+            "or": [
+              { "u_has_item": "id_science_maintenance_yellow" },
+              { "u_has_item": "id_science_transport_1" },
+              { "u_has_item": "id_science_visitor_1" },
+              { "u_has_item": "id_science_maintenance_green" },
+              { "u_has_item": "id_science_maintenance_blue" },
+              { "u_has_item": "id_science_security_yellow" },
+              { "u_has_item": "id_science_security_magenta" },
+              { "u_has_item": "id_science_security_black" },
+              { "u_has_item": "id_science_mutagen_green" },
+              { "u_has_item": "id_science_mutagen_pink" },
+              { "u_has_item": "id_science_mutagen_cyan" },
+              { "u_has_item": "id_science_medical_red" }
+            ]
+          }
+        }
+      ]
+    },
+    "effect": [ { "mapgen_update": "release_bots_concourse", "om_terrain": "lab_CORE_2x1_1DN" } ]
+  },
+  {
+    "//": "Opens bot release if you have no ID badges.",
+    "type": "mapgen",
+    "update_mapgen_id": "release_bots_concourse",
+    "method": "json",
+    "object": {
+      "place_terrain": [
+        { "ter": "t_thconc_r", "x": 15, "y": 3 },
+        { "ter": "t_thconc_r", "x": 15, "y": 4 },
+        { "ter": "t_thconc_r", "x": 16, "y": 4 },
+        { "ter": "t_thconc_r", "x": 16, "y": 5 },
+        { "ter": "t_thconc_r", "x": 17, "y": 5 },
+        { "ter": "t_thconc_r", "x": 17, "y": 6 },
+        { "ter": "t_thconc_r", "x": 15, "y": 20 },
+        { "ter": "t_thconc_r", "x": 15, "y": 19 },
+        { "ter": "t_thconc_r", "x": 16, "y": 19 },
+        { "ter": "t_thconc_r", "x": 16, "y": 18 },
+        { "ter": "t_thconc_r", "x": 17, "y": 18 },
+        { "ter": "t_thconc_r", "x": 17, "y": 17 }
+      ]
+    }
+  },
+  {
+    "type": "effect_on_condition",
+    "id": "lab_concourse_bot_release_2",
+    "recurrence_min": 5,
+    "recurrence_max": 10,
+    "condition": {
+      "and": [
+        { "u_at_om_location": "lab_CORE_2x1_2DN" },
+        {
+          "not": {
+            "or": [
+              { "u_has_item": "id_science_transport_1" },
+              { "u_has_item": "id_science_visitor_1" },
+              { "u_has_item": "id_science_maintenance_yellow" },
+              { "u_has_item": "id_science_maintenance_green" },
+              { "u_has_item": "id_science_maintenance_blue" },
+              { "u_has_item": "id_science_security_yellow" },
+              { "u_has_item": "id_science_security_magenta" },
+              { "u_has_item": "id_science_security_black" },
+              { "u_has_item": "id_science_mutagen_green" },
+              { "u_has_item": "id_science_mutagen_pink" },
+              { "u_has_item": "id_science_mutagen_cyan" },
+              { "u_has_item": "id_science_medical_red" }
+            ]
+          }
+        }
+      ]
+    },
+    "effect": [ { "mapgen_update": "release_bots_concourse_2", "om_terrain": "lab_CORE_2x1_2DN" } ]
+  },
+  {
+    "//": "Opens bot release if you have no ID badges.",
+    "type": "mapgen",
+    "update_mapgen_id": "release_bots_concourse_2",
+    "method": "json",
+    "object": {
+      "place_terrain": [
+        { "ter": "t_thconc_r", "x": 8, "y": 3 },
+        { "ter": "t_thconc_r", "x": 8, "y": 4 },
+        { "ter": "t_thconc_r", "x": 7, "y": 4 },
+        { "ter": "t_thconc_r", "x": 6, "y": 5 },
+        { "ter": "t_thconc_r", "x": 7, "y": 5 },
+        { "ter": "t_thconc_r", "x": 6, "y": 6 },
+        { "ter": "t_thconc_r", "x": 8, "y": 20 },
+        { "ter": "t_thconc_r", "x": 8, "y": 19 },
+        { "ter": "t_thconc_r", "x": 7, "y": 19 },
+        { "ter": "t_thconc_r", "x": 6, "y": 18 },
+        { "ter": "t_thconc_r", "x": 7, "y": 18 },
+        { "ter": "t_thconc_r", "x": 6, "y": 17 }
+      ]
+    }
+  },
+  {
+    "type": "effect_on_condition",
+    "id": "lab_magenta_security_check",
+    "recurrence_min": 15,
+    "recurrence_max": 30,
+    "condition": { "and": [ { "u_at_om_location": "lab_security_z-5" }, { "not": { "u_has_item": "id_science_security_magenta" } } ] },
+    "effect": [ { "mapgen_update": "release_bots_4", "om_terrain": "lab_security_z-5" } ]
+  },
+  {
+    "//": "Opens bot release if you lack a magenta security ID card.",
+    "type": "mapgen",
+    "update_mapgen_id": "release_bots_4",
+    "method": "json",
+    "object": {
+      "set": [
+        { "line": "terrain", "id": "t_thconc_r", "x": 17, "y": 3, "x2": 23, "y2": 3 },
+        { "line": "terrain", "id": "t_thconc_r", "x": 17, "y": 20, "x2": 23, "y2": 20 }
+      ]
+    }
+  },
+  {
+    "type": "effect_on_condition",
+    "id": "lab_cyan_mutagen_check",
+    "recurrence_min": 15,
+    "recurrence_max": 30,
+    "condition": { "and": [ { "u_at_om_location": "lab_2x2_MUT_tier_2_NE" }, { "not": { "u_has_item": "id_science_mutagen_cyan" } } ] },
+    "effect": [ { "mapgen_update": "release_bots_5", "om_terrain": "lab_2x2_MUT_tier_2_NE" } ]
+  },
+  {
+    "//": "Opens bot release if you lack a mutagen security ID card.",
+    "type": "mapgen",
+    "update_mapgen_id": "release_bots_5",
+    "method": "json",
+    "object": { "set": [ { "line": "terrain", "id": "t_thconc_r", "x": 12, "y": 15, "x2": 12, "y2": 16 } ] }
+  },
+  {
+    "type": "effect_on_condition",
+    "id": "lab_cyan_mutagen_check_2",
+    "recurrence_min": 15,
+    "recurrence_max": 30,
+    "condition": {
+      "and": [ { "u_at_om_location": "lab_2x2_MUT_tier_2_NW_final_flr" }, { "not": { "u_has_item": "id_science_mutagen_cyan" } } ]
+    },
+    "effect": [ { "mapgen_update": "release_bots_6", "om_terrain": "lab_2x2_MUT_tier_2_NW_final_flr" } ]
+  },
+  {
+    "//": "Opens bot release if you lack a mutagen security ID card.",
+    "type": "mapgen",
+    "update_mapgen_id": "release_bots_6",
+    "method": "json",
+    "object": { "set": [ { "line": "terrain", "id": "t_thconc_r", "x": 11, "y": 15, "x2": 11, "y2": 16 } ] }
+  },
+  {
+    "type": "effect_on_condition",
+    "id": "lab_cyan_mutagen_check_3",
+    "recurrence_min": 15,
+    "recurrence_max": 30,
+    "condition": { "and": [ { "u_at_om_location": "lab_2x2_MUT_tier_2_SW" }, { "not": { "u_has_item": "id_science_mutagen_cyan" } } ] },
+    "effect": [ { "mapgen_update": "release_bots_7", "om_terrain": "lab_2x2_MUT_tier_2_SW" } ]
+  },
+  {
+    "//": "Opens bot release if you lack a mutagen security ID card.",
+    "type": "mapgen",
+    "update_mapgen_id": "release_bots_7",
+    "method": "json",
+    "object": { "set": [ { "line": "terrain", "id": "t_thconc_r", "x": 11, "y": 3, "x2": 11, "y2": 5 } ] }
+  },
+  {
+    "type": "effect_on_condition",
+    "id": "lab_cyan_mutagen_check_4",
+    "recurrence_min": 15,
+    "recurrence_max": 30,
+    "condition": { "and": [ { "u_at_om_location": "lab_2x2_MUT_tier_2_SE" }, { "not": { "u_has_item": "id_science_mutagen_cyan" } } ] },
+    "effect": [ { "mapgen_update": "release_bots_8", "om_terrain": "lab_2x2_MUT_tier_2_SE" } ]
+  },
+  {
+    "//": "Opens bot release if you lack a mutagen ID card.",
+    "type": "mapgen",
+    "update_mapgen_id": "release_bots_8",
+    "method": "json",
+    "object": { "set": [ { "line": "terrain", "id": "t_thconc_r", "x": 12, "y": 3, "x2": 12, "y2": 5 } ] }
+  },
+  {
+    "type": "effect_on_condition",
+    "id": "lab_pink_mutagen_check",
+    "recurrence_min": 15,
+    "recurrence_max": 30,
+    "condition": { "and": [ { "u_at_om_location": "lab_2x2_MUT_tier_1_NE" }, { "not": { "u_has_item": "id_science_mutagen_pink" } } ] },
+    "effect": [ { "mapgen_update": "release_bots_5", "om_terrain": "lab_2x2_MUT_tier_1_NE" } ]
+  },
+  {
+    "type": "effect_on_condition",
+    "id": "lab_pink_mutagen_check_2",
+    "recurrence_min": 15,
+    "recurrence_max": 30,
+    "condition": { "and": [ { "u_at_om_location": "lab_2x2_MUT_tier_1_NW" }, { "not": { "u_has_item": "id_science_mutagen_pink" } } ] },
+    "effect": [ { "mapgen_update": "release_bots_6", "om_terrain": "lab_2x2_MUT_tier_1_NW" } ]
+  },
+  {
+    "type": "effect_on_condition",
+    "id": "lab_pink_mutagen_check_3",
+    "recurrence_min": 15,
+    "recurrence_max": 30,
+    "condition": { "and": [ { "u_at_om_location": "lab_2x2_MUT_tier_1_SW" }, { "not": { "u_has_item": "id_science_mutagen_pink" } } ] },
+    "effect": [ { "mapgen_update": "release_bots_7", "om_terrain": "lab_2x2_MUT_tier_1_SW" } ]
+  },
+  {
+    "type": "effect_on_condition",
+    "id": "lab_pink_mutagen_check_4",
+    "recurrence_min": 15,
+    "recurrence_max": 30,
+    "condition": { "and": [ { "u_at_om_location": "lab_2x2_MUT_tier_1_SE" }, { "not": { "u_has_item": "id_science_mutagen_pink" } } ] },
+    "effect": [ { "mapgen_update": "release_bots_8", "om_terrain": "lab_2x2_MUT_tier_1_SE" } ]
+  },
+  {
+    "type": "effect_on_condition",
+    "id": "lab_black_secuirty_corridor",
+    "recurrence_min": 2,
+    "recurrence_max": 5,
+    "condition": {
+      "and": [ { "u_at_om_location": "underground_lab_central_-6W" }, { "not": { "u_has_item": "id_science_security_black" } } ]
+    },
+    "effect": [ { "mapgen_update": "fire_gas_corridor", "om_terrain": "underground_lab_central_-6W" } ]
+  },
+  {
+    "//": "Releases if you lack a black security ID card.",
+    "type": "mapgen",
+    "update_mapgen_id": "fire_gas_corridor",
+    "method": "json",
+    "object": {
+      "place_fields": [
+        { "field": "fd_toxic_gas", "x": 0, "y": 10, "intensity": 2, "age": 20 },
+        { "field": "fd_shock_vent", "x": 0, "y": 16, "intensity": 2, "age": 20 },
+        { "field": "fd_shock_vent", "x": 3, "y": 10, "intensity": 2, "age": 20 },
+        { "field": "fd_toxic_gas", "x": 3, "y": 16, "intensity": 2, "age": 20 },
+        { "field": "fd_toxic_gas", "x": 20, "y": 10, "intensity": 2, "age": 20 },
+        { "field": "fd_shock_vent", "x": 20, "y": 16, "intensity": 2, "age": 20 },
+        { "field": "fd_shock_vent", "x": 23, "y": 10, "intensity": 2, "age": 20 },
+        { "field": "fd_toxic_gas", "x": 23, "y": 16, "intensity": 2, "age": 20 }
+      ]
+    }
+  }
+]
diff --git a/data/json/mapgen/lab/lab_modular/lab_nests_modular/lab_nested_mutagen.json b/data/json/mapgen/lab/lab_modular/lab_nests_modular/lab_nested_mutagen.json
index f4ee8f04a371c..972688d9fe14e 100644
--- a/data/json/mapgen/lab/lab_modular/lab_nests_modular/lab_nested_mutagen.json
+++ b/data/json/mapgen/lab/lab_modular/lab_nests_modular/lab_nested_mutagen.json
@@ -353,6 +353,17 @@
       "place_monster": [ { "monster": "mon_dog", "x": 0, "y": 0, "chance": 100 } ]
     }
   },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "A nested map for mutagen research areas.  Dogs for cages.",
+    "nested_mapgen_id": "lab_dog_1x1_MUTANT",
+    "object": {
+      "mapgensize": [ 1, 1 ],
+      "rotation": [ 0, 3 ],
+      "place_monster": [ { "monster": "mon_dog_mutant_mongrel", "x": 0, "y": 0, "chance": 100 } ]
+    }
+  },
   {
     "type": "mapgen",
     "method": "json",
@@ -364,6 +375,17 @@
       "place_monster": [ { "monster": "mon_cat", "x": 0, "y": 0, "chance": 100 } ]
     }
   },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "A nested map for mutagen research areas.  Mutant cats for cages.",
+    "nested_mapgen_id": "lab_cats_1x1_MUTANT",
+    "object": {
+      "mapgensize": [ 1, 1 ],
+      "rotation": [ 0, 3 ],
+      "place_monster": [ { "monster": "mon_cat_mutant_prism", "x": 0, "y": 0, "chance": 100 } ]
+    }
+  },
   {
     "type": "mapgen",
     "method": "json",
@@ -422,6 +444,17 @@
       "place_nested": [ { "chunks": [ [ "lab_cats_1x1", 50 ], [ "lab_dog_1x1", 50 ] ], "x": 0, "y": 0 } ]
     }
   },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "A nested map for mutagen research areas.  mid size animals.",
+    "nested_mapgen_id": "lab_medium_animal_1x1_MUTANT",
+    "object": {
+      "mapgensize": [ 1, 1 ],
+      "rotation": [ 0, 3 ],
+      "place_nested": [ { "chunks": [ [ "lab_cats_1x1_MUTANT", 50 ], [ "lab_dog_1x1_MUTANT", 50 ] ], "x": 0, "y": 0 } ]
+    }
+  },
   {
     "type": "mapgen",
     "method": "json",
diff --git a/data/json/mapgen/lab/lab_modular/lab_nests_modular/lab_nested_security.json b/data/json/mapgen/lab/lab_modular/lab_nests_modular/lab_nested_security.json
index bbd3df0f72bb9..c4746ecae5a8d 100644
--- a/data/json/mapgen/lab/lab_modular/lab_nests_modular/lab_nested_security.json
+++ b/data/json/mapgen/lab/lab_modular/lab_nests_modular/lab_nested_security.json
@@ -1039,5 +1039,123 @@
         }
       ]
     }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "nested_mapgen_id": "12x12_obstacle_course_N",
+    "object": {
+      "mapgensize": [ 12, 12 ],
+      "rows": [
+        "            ",
+        "       !!!  ",
+        "       $ $  ",
+        "      i$ $ i",
+        "      i!!! i",
+        "      i$ $ i",
+        "       $ $  ",
+        "       ===  ",
+        "   &   =%=  ",
+        " &&&   ===  ",
+        "            ",
+        "            "
+      ],
+      "palettes": [ "standard_domestic_palette" ],
+      "terrain": { "=": "t_linoleum_white", "%": "t_linoleum_white" },
+      "furniture": { "&": "f_barricade_road", "%": "f_floor_canvas", "!": "f_sandbag_wall", "$": "f_sandbag_half" },
+      "place_loot": [
+        { "item": "towel", "x": 5, "y": [ 3, 5 ], "chance": 100, "repeat": [ 1, 2 ] },
+        { "item": "wheel_wide", "x": 1, "y": 1, "chance": 100 },
+        { "item": "wheel_wide", "x": 2, "y": 2, "chance": 100 },
+        { "item": "wheel_wide", "x": 1, "y": 3, "chance": 100 },
+        { "item": "wheel_wide", "x": 2, "y": 4, "chance": 100 },
+        { "item": "wheel_wide", "x": 1, "y": 5, "chance": 100 },
+        { "item": "wheel_wide", "x": 2, "y": 6, "chance": 100 },
+        { "item": "wheel_wide", "x": 1, "y": 7, "chance": 100 }
+      ]
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "nested_mapgen_id": "12x12_obstacle_course_N",
+    "object": {
+      "mapgensize": [ 12, 12 ],
+      "rows": [
+        "    ĉĉĉ     ",
+        "  ććĉ!ĉćććć ",
+        "  ć ĉĉĉ ć   ",
+        "  ć    ććć j",
+        " ƨƨƨ   ććć j",
+        " ƨƨƨ   ććć j",
+        " ƨƨƨ     ć  ",
+        " ƨƨƨ   ććć  ",
+        " ƨƨƨ   ć    ",
+        "       ć    ",
+        "            ",
+        "            "
+      ],
+      "palettes": [ "lab_common_palette", "lab_security_palette" ],
+      "terrain": { "ĉ": "t_sandbox", "!": "t_sandbox", "ć": "t_monkey_bars" },
+      "furniture": { "!": "f_dancing_pole" }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "nested_mapgen_id": "12x12_obstacle_course_S",
+    "object": {
+      "mapgensize": [ 12, 12 ],
+      "rows": [
+        "            ",
+        " ƨƨƨƨ       ",
+        " ƨƨƨƨ  ĉĉĉĉ ",
+        " ƨƨƨƨ  ĉĉĉĉ ",
+        " ƨƨƨƨ  ĉĉĉĉ ",
+        "       ĉĉĉĉ ",
+        " ʋʋʋʋ  ĉĉĉĉ ",
+        "    ʉ  ĉĉĉĉ ",
+        "    ʉ  ĉĉĉĉ ",
+        "  ʋ ʉ  ĉĉĉĉ ",
+        "  ʋ    ĉĉĉĉ ",
+        " 5ʋ5ʉ       "
+      ],
+      "palettes": [ "lab_common_palette", "lab_security_palette" ],
+      "terrain": { "ĉ": "t_sandbox" },
+      "furniture": { "!": "f_barricade_road", "A": "f_floor_canvas" },
+      "place_loot": [
+        { "item": "towel", "x": 5, "y": [ 3, 5 ], "chance": 100, "repeat": [ 1, 2 ] },
+        { "item": "wheel_wide", "x": 9, "y": 9, "chance": 100 },
+        { "item": "wheel_wide", "x": 8, "y": 8, "chance": 100 },
+        { "item": "wheel_wide", "x": 9, "y": 7, "chance": 100 },
+        { "item": "wheel_wide", "x": 8, "y": 6, "chance": 100 },
+        { "item": "wheel_wide", "x": 9, "y": 5, "chance": 100 },
+        { "item": "wheel_wide", "x": 8, "y": 4, "chance": 100 },
+        { "item": "wheel_wide", "x": 9, "y": 3, "chance": 100 }
+      ]
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "nested_mapgen_id": "12x12_obstacle_course_S",
+    "object": {
+      "mapgensize": [ 12, 12 ],
+      "rows": [
+        "            ",
+        "            ",
+        " ʉʉʉʉʉʉʉʉʉʉ ",
+        " ʉ5         ",
+        " ʉ ʉʉʉʉʉʉʉʉʉ",
+        " ʉ         5",
+        " ʉʉʉʉ ʉʉʉ ʉ ",
+        "5   ʉ ʉ   ʉ ",
+        "ʉʉʉ ʉ ʉ ʉʉʉ ",
+        " 5ʉ ʉ5ʉ  5ʉ ",
+        " ʉʉ ʉʉʉʉʉ ʉ ",
+        "5         ʉ5"
+      ],
+      "palettes": [ "lab_common_palette", "lab_security_palette" ]
+    }
   }
 ]
diff --git a/data/json/mapgen/lab/lab_modular/lab_nests_modular/lab_shared_traps.json b/data/json/mapgen/lab/lab_modular/lab_nests_modular/lab_shared_traps.json
index 9774faf389a84..9245b7f9e9986 100644
--- a/data/json/mapgen/lab/lab_modular/lab_nests_modular/lab_shared_traps.json
+++ b/data/json/mapgen/lab/lab_modular/lab_nests_modular/lab_shared_traps.json
@@ -16,7 +16,7 @@
     "type": "mapgen",
     "update_mapgen_id": "concrete_wall_o_lab_res_8_NW",
     "method": "json",
-    "object": { "place_terrain": [ { "ter": "t_thconc_floor", "x": 11, "y": 15 }, { "ter": "t_thconc_floor", "x": 11, "y": 16 } ] }
+    "object": { "place_terrain": [ { "ter": "t_thconc_r", "x": 11, "y": 15 }, { "ter": "t_thconc_r", "x": 11, "y": 16 } ] }
   },
   {
     "type": "trap",
@@ -35,7 +35,7 @@
     "type": "mapgen",
     "update_mapgen_id": "concrete_wall_o_lab_res_8_NE",
     "method": "json",
-    "object": { "place_terrain": [ { "ter": "t_thconc_floor", "x": 12, "y": 15 }, { "ter": "t_thconc_floor", "x": 12, "y": 16 } ] }
+    "object": { "place_terrain": [ { "ter": "t_thconc_r", "x": 12, "y": 15 }, { "ter": "t_thconc_r", "x": 12, "y": 16 } ] }
   },
   {
     "type": "trap",
diff --git a/data/json/overmap/overmap_special/lab_modular/lab_mini_specials.json b/data/json/overmap/overmap_special/lab_modular/lab_mini_specials.json
index 496b51892964a..0eafc5e7d03c8 100644
--- a/data/json/overmap/overmap_special/lab_modular/lab_mini_specials.json
+++ b/data/json/overmap/overmap_special/lab_modular/lab_mini_specials.json
@@ -127,7 +127,7 @@
     "id": "Lab_RES_1x1x2_maintenance",
     "overmaps": [
       { "point": [ 2, 1, -2 ], "overmap": "lab_1x1_RES_8_bedrooms_maintenance_north" },
-      { "point": [ 2, 1, -3 ], "overmap": "lab_1x1_RES_8_commons_north" }
+      { "point": [ 2, 1, -3 ], "overmap": "lab_1x1_RES_8_commons_MAINT_north" }
     ],
     "locations": [ "land" ],
     "city_distance": [ 3, -1 ],
@@ -140,7 +140,7 @@
     "id": "Lab_RES_1x1x2_security",
     "overmaps": [
       { "point": [ 2, 1, -2 ], "overmap": "lab_1x1_RES_8_bedrooms_security_north" },
-      { "point": [ 2, 1, -3 ], "overmap": "lab_1x1_RES_8_commons_north" }
+      { "point": [ 2, 1, -3 ], "overmap": "lab_1x1_RES_8_commons_SEC_north" }
     ],
     "locations": [ "land" ],
     "city_distance": [ 3, -1 ],
diff --git a/data/json/overmap/overmap_special/lab_modular/lab_mutagen_6_floor.json b/data/json/overmap/overmap_special/lab_modular/lab_mutagen_6_floor.json
index 7261053bd8350..3dd616df53e15 100644
--- a/data/json/overmap/overmap_special/lab_modular/lab_mutagen_6_floor.json
+++ b/data/json/overmap/overmap_special/lab_modular/lab_mutagen_6_floor.json
@@ -84,9 +84,9 @@
       { "point": [ -1, -2, -3 ], "overmap": "lab_maintenance_z-2&3_B_south" },
       { "point": [ -1, -2, -2 ], "overmap": "lab_maintenance_z-2&3_B_south" },
       { "point": [ -1, -1, -2 ], "overmap": "lab_1x1_RES_8_bedrooms_security_south" },
-      { "point": [ -1, 1, -3 ], "overmap": "lab_1x1_RES_8_commons_north" },
+      { "point": [ -1, 1, -3 ], "overmap": "lab_1x1_RES_8_commons_SEC_north" },
       { "point": [ -1, 0, -3 ], "overmap": "lab_security_z-3_north" },
-      { "point": [ -1, -1, -3 ], "overmap": "lab_1x1_RES_8_commons_south" },
+      { "point": [ -1, -1, -3 ], "overmap": "lab_1x1_RES_8_commons_SEC_south" },
       { "point": [ -1, 0, -4 ], "overmap": "lab_security_z-4_north" },
       { "point": [ -1, 0, -5 ], "overmap": "lab_security_z-5_north" },
       { "point": [ -1, 0, -6 ], "overmap": "lab_security_z-6_final_flr_north" },
@@ -95,7 +95,7 @@
       { "point": [ 2, -2, -2 ], "overmap": "lab_maintenance_z-2&3_A_south" },
       { "point": [ 2, -1, -3 ], "overmap": "lab_1x1x2_RES_8_apartments_lower_south" },
       { "point": [ 2, 0, -3 ], "overmap": "lab_health_z-3_A_north" },
-      { "point": [ 2, 1, -3 ], "overmap": "lab_1x1_RES_8_commons_north" },
+      { "point": [ 2, 1, -3 ], "overmap": "lab_1x1_RES_8_commons_MAINT_north" },
       { "point": [ 3, 0, -3 ], "overmap": "lab_health_z-3_B_north" },
       { "point": [ 0, 1, -2 ], "overmap": "lab_res_8_NW_north" },
       { "point": [ 1, 1, -2 ], "overmap": "lab_res_8_NE_north" },
diff --git a/data/json/overmap/overmap_terrain/overmap_terrain_lab.json b/data/json/overmap/overmap_terrain/overmap_terrain_lab.json
index e4fb0248c6697..5727432ef2f08 100644
--- a/data/json/overmap/overmap_terrain/overmap_terrain_lab.json
+++ b/data/json/overmap/overmap_terrain/overmap_terrain_lab.json
@@ -588,7 +588,8 @@
     "id": [
       "lab_1x1_RES_8_bedrooms_maintenance",
       "lab_1x1_RES_8_bedrooms_security",
-      "lab_1x1_RES_8_commons",
+      "lab_1x1_RES_8_commons_MAINT",
+      "lab_1x1_RES_8_commons_SEC",
       "lab_res_8_NW",
       "lab_res_8_NE",
       "lab_res_8_SW",