diff --git a/data/json/mapgen/city_blocks/city_block_2.json b/data/json/mapgen/city_blocks/city_block_2.json
new file mode 100644
index 0000000000000..fdfb627b61eb6
--- /dev/null
+++ b/data/json/mapgen/city_blocks/city_block_2.json
@@ -0,0 +1,315 @@
+[
+  {
+    "type": "mapgen",
+    "method": "json",
+    "om_terrain": [ [ "city_block2_1", "city_block2_2", "city_block2_3", "city_block2_4" ] ],
+    "weight": 250,
+    "object": {
+      "fill_ter": "t_floor",
+      "rows": [
+        "..MMMsssMMMss|ooooo|+||~~$M|o+o|...sss...|o+o|M.M.X.s|oo|+|oo|s.X.M$~~$ss|ooooooooo|MMMsssMMMsss",
+        ".|ooo|+|ooo|s|y  JE  F|~~|||   |o|<sss<|o|y y|o|MGGGs|y  <  y|sGGGM|~~~ss+  JA FFFy|ooo|+|ooo|ss",
+        ".|1        |<|  A?   F|~~|y      |||||||      y|ooo|+|||||||||+|ooo|~~<|o|  JJ     |1        |ss",
+        ".|         ||| JJJ   F|~~|2       B | B2       |1        |1        |~~||5          |         |ss",
+        ".|         |6         |~~|        %%|%%        |         |         |~~p|           |         |<s",
+        ".|         |          |~~|        B | B        |         |         |~~p|           |         |||",
+        ".|         |          |~~|        %%|%%        |         |         |~~~|           |         |j|",
+        ".|         |          |~~|        B | B        |         |         |~~~|           |         * |",
+        ".|         |          |~~|        %%|%%        |         |         |~~p|           |         |t|",
+        ".|         |          |~~|y       B | B        |         |         |~~~|           |         |||",
+        ".|         |          |~~|        |||||        |         |         |~~~|           |         |t|",
+        ".|| ||||||||          |~~|4       vU|4         |         |         |~~~|           || |||||| * |",
+        ".|3    |t j|          |~~|         U|          || ||||||||| ||||||||~|||           |3    |U| |j|",
+        ".|     ||*||          |~~|         P|          |3    |t j|3    |t j|~|V|           |     |*|*|||",
+        ".|         |          |~~|         y|          |     ||*||     ||*||~|~|           |     |   |V.",
+        ".|         |||||||||x||~~|||||||||x||||||||||x||         |         |~~~|           |         |s.",
+        ".|         |Vsppssssss#~~#sppssssssV#Vspppsssss|         |         |~~~|           |     |   |s.",
+        ".||||||||x||psssssssss#~~#ssssssssss#ssssssssss|         |         |~~~|||||||||x||||||||||x||s.",
+        ".#ssssppsss#ssssssssss#~~#ssssssssss#ssssssssss||||||||x|||||||||x||~~~#ssppssssssssssppsssss#s.",
+        ".#sssssssss#ssssssssss#~~#ssssssssss#ssssssssss#sppssssssVssssppssss~~~#sssssssssssssssssssss#s.",
+        ".###u##########u#######~~##u###############u####ssssssssssssssssssss~~~######u##########u#####s.",
+        "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~",
+        "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~",
+        "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
+      ],
+      "palettes": [ "city_block_foundation_palette" ],
+      "terrain": { "G": "t_grass", "X": "t_grass" },
+      "nested": {
+        "1": {
+          "chunks": [
+            [ "city_block_2_candy_shop", 20 ],
+            [ "city_block_2_beauty_shop", 20 ],
+            [ "city_block_2_vitamin_shop", 20 ],
+            [ "city_block_2_cellphone_shop", 20 ],
+            [ "city_block_2_music_shop", 20 ],
+            [ "city_block_2_electronics_shop", 20 ],
+            [ "city_block_2_pizza_shop", 20 ]
+          ]
+        },
+        "2": {
+          "chunks": [
+            [ "city_block_2_clothing_shop", 25 ],
+            [ "city_block_2_formal_clothing_shop", 25 ],
+            [ "city_block_2_leather_clothing_shop", 25 ],
+            [ "city_block_2_fur_clothing_shop", 25 ]
+          ]
+        },
+        "3": { "chunks": [ [ "city_block_5x5_backroom_shop", 100 ] ] },
+        "4": { "chunks": [ [ "city_block_4x4_backroom_shop", 100 ] ] },
+        "5": { "chunks": [ [ "city_block_14x14_restaurant", 100 ] ] },
+        "6": { "chunks": [ [ "city_block_11x11_bar", 100 ] ] }
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "om_terrain": [ [ "city_block2_flr2_1", "city_block2_flr2_2", "city_block2_flr2_3", "city_block2_flr2_4" ] ],
+    "weight": 250,
+    "object": {
+      "fill_ter": "t_floor",
+      "rows": [
+        "-------------|o|ooo|o||----|ooo|-,,,,,,,-|ooo|-||oo||oo||,||oo||oo||--sss||oo|||oo||------------",
+        "-||oo|||oo||,|4    5  |--|o|y y|o|>sss>|o| yH|o|2      R|>|R  2    |--sssoRHy 2    |ooo|||ooo|--",
+        "-|2     3  |>|        |--|4      ||!|!||  4    |       R|!|R       |-->|o|y        |2     yHR|s-",
+        "-|         |!|        |--|       9  |9         |        ! !        |--s!           |         !ss",
+        "-|         | |        |--|          |          |      %%| |%%      |--s|E          |        R|>s",
+        "-|         ! !      AA|--|          |          |      %t|||t%      |---|K          |        R|||",
+        "-|        y|||%%Q YJJJ|--@ DLD R%%%%|%%%%R  DD |      * j|j *      |---|K JA %%%%%%|          l|",
+        "-| A AA   Y|Ttj%Q    n@--@ DLD R%tjT|Tjt%R  LL |    RR%TT|TT%RR    @---|n J  *7    | DLD    J K@",
+        "-|JJJJJJ  Q|T  *     i|--|      *  T|T  *   DD |    %%%%%|%%%%%    |---|i JA %     | DLD   AJ n@",
+        "-|Q       Q|%%%%*% KKl|--@y   %%%%%%|%%%%%%   y|    *7   |6   *    |---|K    %     | DLD   AJ i@",
+        "-|lKinKK  Q|1    %*%%%|--|Y   *8    |1    *   Y|LD  %    |    %  AL|---|% %% %     |y       J K@",
+        "-|%%%%%%  R|     %7   |--|Q  l%     |     %l  Q|LD  %    |    %  AL@---|Q Q% %%%%%%|%%%%%%    Q|",
+        "-|1    *  R|     %    |--|Q  K%     |     %K  Q|LD  %    |    %y AL|-;;|QQQ% *8    |1    *  QQQ|",
+        "-|     %%*%|     %    @--|Q  K%     |     %K  Q|    %%%%%|%%%%%    |-;S|%%%% %     |     %%*%|||",
+        "-@     %j t|     %    |--|KinK%     |     %KinK|Q   *7   |6   *   Y|-;;|jYt% %     |     %j t|S-",
+        "-|     %   ||@|@|||@|||--||@@||||@|||||@|||||@||Q  K%    |    %Q  K|--;@   * %     |     %  y@;-",
+        "-|     %TTy|S;;;;----------------;;S;S;;-------@Y  K%    |    %Q  K@--;|TTy% %     |     %YTT|;-",
+        "-||@|@|||@||;;--------------------;;;;;--------|lniK%    |    %linK|--;|||||||||@|||||@|||||||;-",
+        "--------;;;;;;---------------------------------||@|||||@|||@@||||@||----------------------------",
+        "----------------------------------------------------;;;;;S;;;-----------------------------------",
+        "------------------------------------------------------------------------------------------------",
+        "------------------------------------------------------------------------------------------------",
+        "------------------------------------------------------------------------------------------------",
+        "------------------------------------------------------------------------------------------------"
+      ],
+      "palettes": [ "city_block_foundation_palette" ],
+      "terrain": { "%": "t_wall_w" },
+      "nested": {
+        "1": {
+          "chunks": [
+            [ "bedroom_5x5_adult_N_1", 20 ],
+            [ "bedroom_5x5_adult_S_1", 20 ],
+            [ "bedroom_5x5_adult_W_1", 20 ],
+            [ "bedroom_5x5_adult_N_2", 20 ],
+            [ "bedroom_5x5_adult_E_2", 20 ],
+            [ "bedroom_5x5_adult_N_2", 20 ],
+            [ "bedroom_5x5_adult_N_2", 20 ],
+            [ "bedroom_5x5_adult_S_2", 20 ]
+          ]
+        },
+        "2": { "chunks": [ [ "livingroom_5x5_E_1", 20 ], [ "livingroom_5x5_W_1", 20 ], [ "livingroom_5x5_E_2", 20 ] ] },
+        "3": { "chunks": [ [ "bonus_room_3x3_4", 20 ], [ "bonus_room_3x3_N_6", 20 ], [ "bonus_room_3x3_N_8", 20 ] ] },
+        "4": {
+          "chunks": [
+            [ "livingroom_5x5_E_1", 20 ],
+            [ "livingroom_5x5_E_2", 20 ],
+            [ "bonus_room_3x3_5", 20 ],
+            [ "bonus_room_3x3_E_5", 20 ],
+            [ "bonus_room_2x2_1", 20 ]
+          ]
+        },
+        "5": {
+          "chunks": [
+            [ "bonus_room_3x3_E_5", 20 ],
+            [ "bonus_room_3x3_N_6", 20 ],
+            [ "bonus_room_3x3_S_6", 20 ],
+            [ "bonus_room_3x3_W_6", 20 ],
+            [ "bonus_room_3x3_N_8", 20 ],
+            [ "bonus_room_3x3_E_8", 20 ],
+            [ "bonus_room_3x3_E_6", 20 ]
+          ]
+        },
+        "6": {
+          "chunks": [
+            [ "bedroom_4x4_adult_1_W", 20 ],
+            [ "bedroom_4x4_adult_1_S", 20 ],
+            [ "bedroom_4x4_adult_2_N", 20 ],
+            [ "bedroom_4x4_adult_2_W", 20 ],
+            [ "bedroom_4x4_adult_2_E", 20 ],
+            [ "bedroom_4x4_adult_2_S", 20 ],
+            [ "bedroom_4x4_adult_3_S", 20 ],
+            [ "bedroom_4x4_adult_3_N", 20 ],
+            [ "bedroom_4x4_adult_3_E", 20 ],
+            [ "bedroom_4x4_adult_3_W", 20 ]
+          ]
+        },
+        "7": {
+          "chunks": [
+            [ "bedroom_4x4_adult_1_S", 20 ],
+            [ "bedroom_4x4_adult_3_S", 20 ],
+            [ "bedroom_4x4_adult_3_N", 20 ],
+            [ "bedroom_4x4_adult_3_E", 20 ],
+            [ "bedroom_4x4_adult_3_W", 20 ]
+          ]
+        },
+        "8": {
+          "chunks": [
+            [ "bedroom_5x5_adult_N_1", 20 ],
+            [ "bedroom_5x5_adult_S_1", 20 ],
+            [ "bedroom_5x5_adult_E_1", 20 ],
+            [ "bedroom_5x5_adult_N_2", 20 ],
+            [ "bedroom_5x5_adult_S_2", 20 ],
+            [ "bedroom_5x5_adult_E_2", 20 ],
+            [ "bedroom_5x5_adult_W_2", 20 ]
+          ]
+        },
+        "9": { "chunks": [ [ "bonus_room_3x3_S_6", 20 ], [ "bonus_room_3x3_S_8", 20 ] ] }
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "combines candy shop front & back 9x9 front, 3x3 back crates.",
+    "nested_mapgen_id": "city_block_2_candy_shop",
+    "object": {
+      "mapgensize": [ 15, 15 ],
+      "place_nested": [
+        { "chunks": [ "city_block_9x9_candy_shop_front" ], "x": 0, "y": 0 },
+        { "chunks": [ "city_block_3x3_backroom_crates_candy" ], "x": 6, "y": 12 }
+      ]
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "combines beauty shop front & back 9x9 front, 3x3 back crates.",
+    "nested_mapgen_id": "city_block_2_beauty_shop",
+    "object": {
+      "mapgensize": [ 15, 15 ],
+      "place_nested": [
+        { "chunks": [ "city_block_9x9_beauty_shop_front" ], "x": 0, "y": 0 },
+        { "chunks": [ "city_block_3x3_backroom_crates_beauty" ], "x": 6, "y": 12 }
+      ]
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "combines beauty shop front & back 9x9 front, 3x3 back crates.",
+    "nested_mapgen_id": "city_block_2_vitamin_shop",
+    "object": {
+      "mapgensize": [ 15, 15 ],
+      "place_nested": [
+        { "chunks": [ "city_block_9x9_vitamin_shop_front" ], "x": 0, "y": 0 },
+        { "chunks": [ "city_block_3x3_backroom_crates_vitamin" ], "x": 6, "y": 12 }
+      ]
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "combines cellphone shop front & back 9x9 front, 3x3 back crates.",
+    "nested_mapgen_id": "city_block_2_cellphone_shop",
+    "object": {
+      "mapgensize": [ 15, 15 ],
+      "place_nested": [
+        { "chunks": [ "city_block_9x9_cellphone_shop_front" ], "x": 0, "y": 0 },
+        { "chunks": [ "city_block_3x3_backroom_crates_cellphone" ], "x": 6, "y": 12 }
+      ]
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "combines music shop front & back 9x9 front, 3x3 back crates.",
+    "nested_mapgen_id": "city_block_2_music_shop",
+    "object": {
+      "mapgensize": [ 15, 15 ],
+      "place_nested": [
+        { "chunks": [ "city_block_9x9_music_shop_front" ], "x": 0, "y": 0 },
+        { "chunks": [ "city_block_3x3_backroom_crates_music" ], "x": 6, "y": 12 }
+      ]
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "combines electronics shop front & back 9x9 front, 3x3 back crates.",
+    "nested_mapgen_id": "city_block_2_electronics_shop",
+    "object": {
+      "mapgensize": [ 15, 15 ],
+      "place_nested": [
+        { "chunks": [ "city_block_9x9_electronics_shop_front" ], "x": 0, "y": 0 },
+        { "chunks": [ "city_block_3x3_backroom_crates_electronics" ], "x": 6, "y": 12 }
+      ]
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "combines pizza shop front & back 9x9 front, 3x3 back crates.",
+    "nested_mapgen_id": "city_block_2_pizza_shop",
+    "object": {
+      "mapgensize": [ 15, 15 ],
+      "place_nested": [
+        { "chunks": [ "city_block_9x9_pizza_shop_front" ], "x": 0, "y": 0 },
+        { "chunks": [ "city_block_3x3_backroom_crates_pizza" ], "x": 6, "y": 12 }
+      ]
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "combines general shop front & back 8x8 front, 4x4 back room.",
+    "nested_mapgen_id": "city_block_2_clothing_shop",
+    "object": {
+      "mapgensize": [ 12, 12 ],
+      "place_nested": [
+        { "chunks": [ "city_block_8x8_clothing_shop_front" ], "x": 0, "y": 0 },
+        { "chunks": [ "city_block_4x4_backroom_clothing" ], "x": 4, "y": 8 }
+      ]
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "combines formal clothing shop front & back 8x8 front, 4x4 back room.",
+    "nested_mapgen_id": "city_block_2_formal_clothing_shop",
+    "object": {
+      "mapgensize": [ 12, 12 ],
+      "place_nested": [
+        { "chunks": [ "city_block_8x8_formal_clothing_shop_front" ], "x": 0, "y": 0 },
+        { "chunks": [ "city_block_4x4_backroom_clothing_formal" ], "x": 4, "y": 8 }
+      ]
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "combines leather clothing shop front & back 8x8 front, 4x4 back room.",
+    "nested_mapgen_id": "city_block_2_leather_clothing_shop",
+    "object": {
+      "mapgensize": [ 12, 12 ],
+      "place_nested": [
+        { "chunks": [ "city_block_8x8_leather_clothing_shop_front" ], "x": 0, "y": 0 },
+        { "chunks": [ "city_block_4x4_backroom_clothing_leather" ], "x": 4, "y": 8 }
+      ]
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "combines fur clothing shop front & back 8x8 front, 4x4 back room.",
+    "nested_mapgen_id": "city_block_2_fur_clothing_shop",
+    "object": {
+      "mapgensize": [ 12, 12 ],
+      "place_nested": [
+        { "chunks": [ "city_block_8x8_fur_clothing_shop_front" ], "x": 0, "y": 0 },
+        { "chunks": [ "city_block_4x4_backroom_clothing_fur" ], "x": 4, "y": 8 }
+      ]
+    }
+  }
+]
diff --git a/data/json/mapgen/nested/retail_nested.json b/data/json/mapgen/nested/retail_nested.json
new file mode 100644
index 0000000000000..ee87fcfdf9425
--- /dev/null
+++ b/data/json/mapgen/nested/retail_nested.json
@@ -0,0 +1,1369 @@
+[
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for spaces 9x9.",
+    "nested_mapgen_id": "city_block_9x9_candy_shop_front",
+    "object": {
+      "mapgensize": [ 9, 9 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "LHL   LHL",
+        "         ",
+        "w L L L w",
+        "w L L L w",
+        "w L L L w",
+        "y        ",
+        "MMM?MM  Y",
+        "  A      ",
+        "  VVV    "
+      ],
+      "terrain": { " ": "t_floor", "?": "t_console_broken" },
+      "furniture": {
+        "L": "f_table",
+        "H": "f_table",
+        "G": "f_table",
+        "M": "f_displaycase",
+        "w": "f_rack_wood",
+        "V": "f_glass_cabinet",
+        "Y": "f_trashcan",
+        "A": "f_stool",
+        "y": [ "f_indoor_plant", "f_indoor_plant_y" ]
+      },
+      "items": {
+        "H": [ { "item": "toy_store", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "Y": [ { "item": "trash", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "L": [ { "item": "candy_chocolate", "chance": 30, "repeat": [ 0, 4 ] } ],
+        "w": [ { "item": "candy_chocolate", "chance": 30, "repeat": [ 0, 4 ] } ],
+        "M": [
+          { "item": "candy_chocolate", "chance": 30, "repeat": [ 0, 4 ] },
+          { "item": "toy_store", "chance": 30, "repeat": [ 1, 2 ] }
+        ],
+        "V": [
+          { "item": "candy_chocolate", "chance": 30, "repeat": [ 0, 4 ] },
+          { "item": "toy_store", "chance": 30, "repeat": [ 1, 2 ] }
+        ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 3x3 candy shop crates.",
+    "nested_mapgen_id": "city_block_3x3_backroom_crates_candy",
+    "object": {
+      "mapgensize": [ 3, 3 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "z z",
+        "  z",
+        "z z"
+      ],
+      "terrain": { "z": "t_floor" },
+      "furniture": { "z": [ [ "f_cardboard_box", 5 ], "f_crate_c" ] },
+      "items": {
+        "z": [
+          { "item": "candy_chocolate", "chance": 30, "repeat": [ 1, 6 ] },
+          { "item": "toy_store", "chance": 30, "repeat": [ 1, 6 ] }
+        ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for spaces 9x9.  Beauty and cosmetics shop.",
+    "nested_mapgen_id": "city_block_9x9_beauty_shop_front",
+    "object": {
+      "mapgensize": [ 9, 9 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "HHH   HHH",
+        " ....... ",
+        "w.L.L.L.w",
+        "w.L.L.L.w",
+        "w.L.L.L.w",
+        "y....... ",
+        "MMM?MM  Y",
+        "  A      ",
+        "  VVV    "
+      ],
+      "terrain": { " ": "t_floor", "L": "t_carpet_yellow", ".": "t_carpet_yellow", "?": "t_console_broken" },
+      "furniture": {
+        "L": "f_table",
+        "H": "f_table",
+        "G": "f_table",
+        "M": "f_displaycase",
+        "w": "f_rack",
+        "V": "f_glass_cabinet",
+        "Y": "f_trashcan",
+        "A": "f_stool",
+        "y": [ "f_indoor_plant", "f_indoor_plant_y" ]
+      },
+      "items": {
+        "H": [ { "item": "beauty", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "Y": [ { "item": "beauty", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "L": [ { "item": "beauty", "chance": 30, "repeat": [ 0, 4 ] } ],
+        "w": [ { "item": "beauty", "chance": 30, "repeat": [ 0, 4 ] } ],
+        "M": [ { "item": "beauty", "chance": 30, "repeat": [ 0, 4 ] } ],
+        "V": [ { "item": "beauty", "chance": 30, "repeat": [ 0, 4 ] } ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 3x3 beauty shop crates.",
+    "nested_mapgen_id": "city_block_3x3_backroom_crates_beauty",
+    "object": {
+      "mapgensize": [ 3, 3 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "z z",
+        "  z",
+        "z z"
+      ],
+      "terrain": { "z": "t_floor" },
+      "furniture": { "z": [ [ "f_cardboard_box", 5 ], "f_crate_c" ] },
+      "items": { "z": [ { "item": "beauty", "chance": 30, "repeat": [ 1, 6 ] } ] }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 9x9 vitamin shop.",
+    "nested_mapgen_id": "city_block_9x9_vitamin_shop_front",
+    "object": {
+      "mapgensize": [ 9, 9 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "LHL   LHL",
+        "         ",
+        "V V V V V",
+        "V V V V V",
+        "V V V V V",
+        "y        ",
+        "MMM?MM  Y",
+        "  A      ",
+        "y VVV    "
+      ],
+      "terrain": {
+        " ": "t_linoleum_white",
+        "L": "t_linoleum_white",
+        "H": "t_linoleum_white",
+        "V": "t_linoleum_white",
+        "M": "t_linoleum_white",
+        "A": "t_linoleum_white",
+        "y": "t_linoleum_white",
+        "Y": "t_linoleum_white",
+        "?": "t_console_broken"
+      },
+      "furniture": {
+        "L": "f_table",
+        "H": "f_table",
+        "G": "f_table",
+        "M": "f_counter",
+        "V": "f_rack",
+        "Y": "f_trashcan",
+        "A": "f_stool",
+        "y": [ "f_indoor_plant", "f_indoor_plant_y" ]
+      },
+      "items": {
+        "H": [ { "item": "vitamin_shop", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "Y": [ { "item": "trash", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "L": [ { "item": "vitamin_shop", "chance": 30, "repeat": [ 0, 4 ] } ],
+        "M": [ { "item": "office", "chance": 30, "repeat": [ 0, 4 ] } ],
+        "V": [ { "item": "vitamin_shop", "chance": 30, "repeat": [ 0, 4 ] } ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 3x3 vitamin shop crates.",
+    "nested_mapgen_id": "city_block_3x3_backroom_crates_vitamin",
+    "object": {
+      "mapgensize": [ 3, 3 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "z z",
+        "  z",
+        "z z"
+      ],
+      "terrain": { "z": "t_floor" },
+      "furniture": { "z": [ [ "f_cardboard_box", 5 ], "f_crate_c" ] },
+      "items": { "z": [ { "item": "vitamin_shop", "chance": 30, "repeat": [ 1, 6 ] } ] }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 9x9 cellphone shop.",
+    "nested_mapgen_id": "city_block_9x9_cellphone_shop_front",
+    "object": {
+      "mapgensize": [ 9, 9 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "GGy   yGG",
+        " ....... ",
+        "V.LL.HH.V",
+        "V.LL.HH.V",
+        "V.LL.HH.V",
+        " ....... ",
+        "M?MM?M  Y",
+        "  A A    ",
+        "y MMMM  y"
+      ],
+      "terrain": {
+        " ": "t_linoleum_white",
+        "G": "t_linoleum_white",
+        "V": "t_linoleum_white",
+        "M": "t_linoleum_white",
+        "A": "t_linoleum_white",
+        "y": "t_linoleum_white",
+        "Y": "t_linoleum_white",
+        "H": "t_carpet_green",
+        "L": "t_carpet_green",
+        ".": "t_carpet_green",
+        "?": "t_console_broken"
+      },
+      "furniture": {
+        "L": "f_table",
+        "H": "f_table",
+        "G": "f_displaycase",
+        "M": "f_counter",
+        "V": "f_rack",
+        "Y": "f_trashcan",
+        "A": "f_stool",
+        "y": [ "f_indoor_plant", "f_indoor_plant_y" ]
+      },
+      "items": {
+        "H": [ { "item": "elecsto_pcs", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "G": [ { "item": "elecsto_persele", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "Y": [ { "item": "trash", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "L": [ { "item": "cell_shop", "chance": 30, "repeat": [ 0, 4 ] } ],
+        "M": [ { "item": "cell_shop", "chance": 30, "repeat": [ 0, 1 ] } ],
+        "V": [ { "item": "cell_shop", "chance": 30, "repeat": [ 0, 4 ] } ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 3x3 cellphone shop crates.",
+    "nested_mapgen_id": "city_block_3x3_backroom_crates_cellphone",
+    "object": {
+      "mapgensize": [ 3, 3 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "z z",
+        "  z",
+        "z z"
+      ],
+      "terrain": { "z": "t_floor" },
+      "furniture": { "z": [ [ "f_cardboard_box", 5 ], "f_crate_c" ] },
+      "items": {
+        "z": [
+          { "item": "cell_shop", "chance": 30, "repeat": [ 1, 6 ] },
+          { "item": "elecsto_pcs", "chance": 30, "repeat": [ 1, 6 ] },
+          { "item": "elecsto_persele", "chance": 30, "repeat": [ 1, 6 ] }
+        ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 9x9 music shop.",
+    "nested_mapgen_id": "city_block_9x9_music_shop_front",
+    "object": {
+      "mapgensize": [ 9, 9 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "HHHy yHHH",
+        " ....... ",
+        "V.LL.GG.V",
+        "V.LL.GG.V",
+        "V.LL.GG.V",
+        " .......V",
+        "MMMM?M  V",
+        "    A    ",
+        "y MMMM  Y"
+      ],
+      "terrain": { " ": "t_floor", "G": "t_carpet_red", "L": "t_carpet_red", ".": "t_carpet_red", "?": "t_console_broken" },
+      "furniture": {
+        "L": "f_table",
+        "H": "f_table",
+        "G": "f_displaycase",
+        "M": "f_counter",
+        "V": "f_bookcase",
+        "Y": "f_trashcan",
+        "A": "f_stool",
+        "y": [ "f_indoor_plant", "f_indoor_plant_y" ]
+      },
+      "items": {
+        "H": [ { "item": "musicstore_showpiece", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "G": [ { "item": "mussto_windinst", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "Y": [ { "item": "trash", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "L": [ { "item": "mussto_stringinst", "chance": 30, "repeat": [ 0, 4 ] } ],
+        "M": [ { "item": "office", "chance": 30, "repeat": [ 0, 1 ] } ],
+        "V": [ { "item": "musicstore_showpiece", "chance": 30, "repeat": [ 0, 4 ] } ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 3x3 music shop crates.",
+    "nested_mapgen_id": "city_block_3x3_backroom_crates_music",
+    "object": {
+      "mapgensize": [ 3, 3 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "z z",
+        "  z",
+        "z z"
+      ],
+      "terrain": { "z": "t_floor" },
+      "furniture": { "z": [ [ "f_cardboard_box", 5 ], "f_crate_c" ] },
+      "items": {
+        "z": [
+          { "item": "musicstore_showpiece", "chance": 30, "repeat": [ 0, 2 ] },
+          { "item": "mussto_windinst", "chance": 30, "repeat": [ 0, 2 ] },
+          { "item": "mussto_stringinst", "chance": 30, "repeat": [ 0, 2 ] }
+        ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 9x9 electronics shop.",
+    "nested_mapgen_id": "city_block_9x9_electronics_shop_front",
+    "object": {
+      "mapgensize": [ 9, 9 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "HHHy yHHH",
+        " ....... ",
+        "V.LL.LL.V",
+        "V.GG.GG.V",
+        "V.BB.BB.V",
+        " .......V",
+        "MMMM?M  y",
+        "    A    ",
+        "y MMMM  Y"
+      ],
+      "terrain": {
+        " ": "t_floor",
+        "G": "t_carpet_yellow",
+        "L": "t_carpet_yellow",
+        "B": "t_carpet_yellow",
+        ".": "t_carpet_yellow",
+        "?": "t_console_broken"
+      },
+      "furniture": {
+        "L": "f_table",
+        "B": "f_table",
+        "H": "f_displaycase",
+        "G": "f_displaycase",
+        "M": "f_counter",
+        "V": "f_rack",
+        "Y": "f_trashcan",
+        "A": "f_stool",
+        "y": [ "f_indoor_plant", "f_indoor_plant_y" ]
+      },
+      "items": {
+        "H": [ { "item": "elecsto_pcs", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "G": [ { "item": "elecsto_cameras", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "Y": [ { "item": "trash", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "L": [ { "item": "elecsto_entapl", "chance": 30, "repeat": [ 0, 4 ] } ],
+        "B": [ { "item": "elecsto_homapl", "chance": 30, "repeat": [ 0, 4 ] } ],
+        "M": [ { "item": "office", "chance": 30, "repeat": [ 0, 1 ] } ],
+        "V": [
+          { "item": "elecsto_lights", "chance": 30, "repeat": [ 0, 4 ] },
+          { "item": "elecsto_diy", "chance": 30, "repeat": [ 0, 4 ] }
+        ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 3x3 electronics shop crates.",
+    "nested_mapgen_id": "city_block_3x3_backroom_crates_electronics",
+    "object": {
+      "mapgensize": [ 3, 3 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "z z",
+        "  z",
+        "z z"
+      ],
+      "terrain": { "z": "t_floor" },
+      "furniture": { "z": [ [ "f_cardboard_box", 5 ], "f_crate_c" ] },
+      "items": {
+        "z": [
+          { "item": "elecsto_pcs", "chance": 30, "repeat": [ 0, 2 ] },
+          { "item": "elecsto_cameras", "chance": 30, "repeat": [ 0, 2 ] },
+          { "item": "elecsto_entapl", "chance": 30, "repeat": [ 0, 2 ] },
+          { "item": "elecsto_homapl", "chance": 30, "repeat": [ 0, 2 ] },
+          { "item": "elecsto_lights", "chance": 30, "repeat": [ 0, 2 ] }
+        ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 9x9 pizza shop.",
+    "nested_mapgen_id": "city_block_9x9_pizza_shop_front",
+    "object": {
+      "mapgensize": [ 9, 9 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "AAAY YMMM",
+        "MMM   AAA",
+        "V ?      ",
+        "B M  R RR",
+        "i G  L LL",
+        "B G  R RR",
+        "s M      ",
+        "F M  R RR",
+        "Q   RLyLL"
+      ],
+      "terrain": {
+        " ": "t_linoleum_gray",
+        "L": "t_linoleum_gray",
+        "R": "t_linoleum_gray",
+        "B": "t_linoleum_gray",
+        "G": "t_linoleum_gray",
+        "M": "t_linoleum_gray",
+        "F": "t_linoleum_gray",
+        "V": "t_linoleum_gray",
+        "Q": "t_linoleum_gray",
+        "Y": "t_linoleum_gray",
+        "y": "t_linoleum_gray",
+        "A": "t_linoleum_gray",
+        "s": "t_linoleum_gray",
+        "i": "t_linoleum_gray",
+        "?": "t_console_broken"
+      },
+      "furniture": {
+        "L": "f_table",
+        "i": "f_oven",
+        "s": "f_sink",
+        "R": "f_bench",
+        "B": "f_counter",
+        "G": "f_displaycase",
+        "M": "f_counter",
+        "F": "f_glass_fridge",
+        "V": "f_rack",
+        "Q": "f_rack",
+        "Y": "f_trashcan",
+        "A": "f_stool",
+        "y": [ "f_indoor_plant", "f_indoor_plant_y" ]
+      },
+      "items": {
+        "B": [ { "item": "pizza_kitchen", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "G": [ { "item": "pizza_display", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "L": [ { "item": "pizza_table", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "Y": [ { "item": "trash", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "F": [ { "item": "pizza_fridge", "chance": 30, "repeat": [ 0, 4 ] } ],
+        "V": [ { "item": "pizza_display", "chance": 30, "repeat": [ 0, 4 ] } ],
+        "Q": [ { "item": "pizza_kitchen", "chance": 30, "repeat": [ 0, 1 ] } ],
+        "M": [
+          { "item": "pizza_table", "chance": 30, "repeat": [ 0, 4 ] },
+          { "item": "pizza_display", "chance": 30, "repeat": [ 0, 1 ] }
+        ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 3x3 pizza shop crates.",
+    "nested_mapgen_id": "city_block_3x3_backroom_crates_pizza",
+    "object": {
+      "mapgensize": [ 3, 3 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "z z",
+        "  z",
+        "z z"
+      ],
+      "terrain": { "z": "t_floor" },
+      "furniture": { "z": [ [ "f_cardboard_box", 5 ], "f_crate_c" ] },
+      "items": {
+        "z": [
+          { "item": "pizza_kitchen", "chance": 30, "repeat": [ 0, 2 ] },
+          { "item": "pizza_table", "chance": 30, "repeat": [ 0, 2 ] }
+        ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 8x8 clothing shop.",
+    "nested_mapgen_id": "city_block_8x8_clothing_shop_front",
+    "object": {
+      "mapgensize": [ 8, 8 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "   BBB  ",
+        " C GA  b",
+        " C G?G  ",
+        " d     R",
+        "   LdL  ",
+        " C     R",
+        " C QQVV ",
+        "|| |||||"
+      ],
+      "terrain": { " ": "t_floor", "?": "t_console_broken", "|": "t_brick_wall" },
+      "furniture": {
+        "A": "f_stool",
+        "B": "f_counter",
+        "C": "f_table",
+        "G": "f_displaycase",
+        "b": "f_bigmirror",
+        "d": "f_mannequin",
+        "L": "f_table",
+        "Q": "f_rack_wood",
+        "R": "f_armchair",
+        "V": "f_rack_wood",
+        "y": [ "f_indoor_plant", "f_indoor_plant_y" ]
+      },
+      "items": {
+        "d": [
+          { "item": "jackets", "chance": 40 },
+          { "item": "pants", "chance": 100 },
+          { "item": "shirts", "chance": 100 },
+          { "item": "hatstore_accessories", "chance": 100 },
+          { "item": "shoestore_shoes", "chance": 100 }
+        ],
+        "C": [ { "item": "shirts", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "L": [ { "item": "pants", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "Q": [ { "item": "bags", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "V": [ { "item": "shoestore_shoes", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "G": [
+          { "item": "hatstore_accessories", "chance": 30, "repeat": [ 0, 4 ] },
+          { "item": "jewelry_front", "chance": 30, "repeat": [ 0, 1 ] }
+        ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 4x4 general clothing shop crates.",
+    "nested_mapgen_id": "city_block_4x4_backroom_clothing",
+    "object": {
+      "mapgensize": [ 4, 4 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "z zz",
+        " z z",
+        "z z ",
+        "z  z"
+      ],
+      "terrain": { "z": "t_floor" },
+      "furniture": { "z": [ [ "f_cardboard_box", 5 ], "f_crate_c" ] },
+      "items": {
+        "z": [
+          { "item": "shirts", "chance": 30, "repeat": [ 1, 6 ] },
+          { "item": "pants", "chance": 30, "repeat": [ 1, 6 ] },
+          { "item": "jackets", "chance": 30, "repeat": [ 1, 6 ] },
+          { "item": "hatstore_accessories", "chance": 30, "repeat": [ 1, 6 ] },
+          { "item": "shoestore_shoes", "chance": 30, "repeat": [ 1, 6 ] }
+        ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 4x4 general clothing backroom.",
+    "nested_mapgen_id": "city_block_4x4_backroom_clothing",
+    "object": {
+      "mapgensize": [ 4, 4 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "CCCC",
+        "    ",
+        "    ",
+        "CC C"
+      ],
+      "terrain": { " ": "t_floor" },
+      "furniture": { "C": "f_rack" },
+      "items": {
+        "C": [
+          { "item": "shirts", "chance": 30, "repeat": [ 1, 6 ] },
+          { "item": "pants", "chance": 30, "repeat": [ 1, 6 ] },
+          { "item": "jackets", "chance": 30, "repeat": [ 1, 6 ] }
+        ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 8x8 formal clothing shop.",
+    "nested_mapgen_id": "city_block_8x8_formal_clothing_shop_front",
+    "object": {
+      "mapgensize": [ 8, 8 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "   GGG  ",
+        " e  A  b",
+        " C B?B  ",
+        " d     b",
+        "   RCR  ",
+        "       b",
+        " b LLL  ",
+        "|| |||||"
+      ],
+      "terrain": { " ": "t_floor", "?": "t_console_broken", "|": "t_brick_wall" },
+      "furniture": {
+        "A": "f_stool",
+        "B": "f_counter",
+        "C": "f_table",
+        "G": "f_displaycase",
+        "b": "f_bigmirror",
+        "d": "f_mannequin",
+        "e": "f_mannequin",
+        "L": "f_wardrobe",
+        "R": "f_armchair"
+      },
+      "items": {
+        "d": [
+          { "item": "wedding_suits", "chance": 100 },
+          { "item": "hatstore_accessories", "chance": 100 },
+          { "item": "dress_shoes", "chance": 100 }
+        ],
+        "e": [
+          { "item": "wedding_suits", "chance": 100 },
+          { "item": "hatstore_accessories", "chance": 100 },
+          { "item": "dress_shoes", "chance": 100 }
+        ],
+        "C": [ { "item": "dress_shoes", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "L": [ { "item": "wedding_suits", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "V": [ { "item": "shoestore_shoes", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "G": [
+          { "item": "neckties", "chance": 30, "repeat": [ 0, 4 ] },
+          { "item": "accesories_personal_unisex", "chance": 30, "repeat": [ 0, 1 ] }
+        ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 4x4 formal clothing shop crates.",
+    "nested_mapgen_id": "city_block_4x4_backroom_clothing_formal",
+    "object": {
+      "mapgensize": [ 4, 4 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "z zz",
+        " z z",
+        "z z ",
+        "z  z"
+      ],
+      "terrain": { "z": "t_floor" },
+      "furniture": { "z": [ [ "f_cardboard_box", 5 ], "f_crate_c" ] },
+      "items": {
+        "z": [
+          { "item": "wedding_suits", "chance": 30, "repeat": [ 0, 6 ] },
+          { "item": "hatstore_accessories", "chance": 30, "repeat": [ 0, 6 ] },
+          { "item": "dress_shoes", "chance": 30, "repeat": [ 0, 6 ] },
+          { "item": "neckties", "chance": 30, "repeat": [ 0, 6 ] },
+          { "item": "accesories_personal_unisex", "chance": 30, "repeat": [ 0, 6 ] }
+        ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 4x4 formal clothing backroom.",
+    "nested_mapgen_id": "city_block_4x4_backroom_clothing_formal",
+    "object": {
+      "mapgensize": [ 4, 4 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "CCCC",
+        "    ",
+        "    ",
+        "CC C"
+      ],
+      "terrain": { " ": "t_floor" },
+      "furniture": { "C": "f_rack" },
+      "items": {
+        "C": [
+          { "item": "wedding_suits", "chance": 30, "repeat": [ 0, 6 ] },
+          { "item": "dress_shoes", "chance": 30, "repeat": [ 0, 6 ] }
+        ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 4x4 formal clothing backroom.",
+    "nested_mapgen_id": "city_block_4x4_backroom_clothing_formal",
+    "object": {
+      "mapgensize": [ 4, 4 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "CBBB",
+        "e Ad",
+        "    ",
+        "bb C"
+      ],
+      "terrain": { " ": "t_floor", "?": "t_console_broken" },
+      "furniture": { "A": "f_stool", "B": "f_workbench", "C": "f_rack_wood", "d": "f_mannequin", "e": "f_mannequin", "b": "f_bench" },
+      "items": {
+        "C": [ { "item": "SUS_tailoring_materials", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "d": [ { "item": "SUS_mannequin_formal_mens", "chance": 30 } ],
+        "e": [ { "item": "SUS_mannequin_dresses", "chance": 30 } ],
+        "B": [
+          { "item": "SUS_tailoring_tool_drawer", "chance": 30, "repeat": [ 0, 1 ] },
+          { "item": "SUS_tailoring_fasteners", "chance": 30, "repeat": [ 2, 6 ] }
+        ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 8x8 leather clothing shop.",
+    "nested_mapgen_id": "city_block_8x8_leather_clothing_shop_front",
+    "object": {
+      "mapgensize": [ 8, 8 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        " d B?B  ",
+        " Q  AB b",
+        " Q      ",
+        " Q C G b",
+        " d C G  ",
+        "       b",
+        " b LLL  ",
+        "|| |||||"
+      ],
+      "terrain": { " ": "t_floor", "?": "t_console_broken", "|": "t_brick_wall" },
+      "furniture": {
+        "A": "f_stool",
+        "B": "f_counter",
+        "C": "f_table",
+        "G": "f_displaycase",
+        "b": "f_bigmirror",
+        "Q": "f_rack_wood",
+        "d": "f_mannequin",
+        "L": "f_wardrobe"
+      },
+      "items": {
+        "d": [
+          { "item": "leather_shop", "chance": 100 },
+          { "item": "pants", "chance": 50 },
+          { "item": "shirts", "chance": 50 },
+          { "item": "leather_shop_accessories", "chance": 100 }
+        ],
+        "C": [ { "item": "leather_shop", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "L": [ { "item": "leather_shop", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "Q": [ { "item": "leather_shop", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "G": [
+          { "item": "leather_shop_accessories", "chance": 30, "repeat": [ 0, 4 ] },
+          { "item": "accesories_personal_unisex", "chance": 30, "repeat": [ 0, 1 ] }
+        ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 4x4 leather clothing shop crates.",
+    "nested_mapgen_id": "city_block_4x4_backroom_clothing_leather",
+    "object": {
+      "mapgensize": [ 4, 4 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "z zz",
+        " z z",
+        "z z ",
+        "z  z"
+      ],
+      "terrain": { "z": "t_floor" },
+      "furniture": { "z": [ [ "f_cardboard_box", 5 ], "f_crate_c" ] },
+      "items": {
+        "z": [
+          { "item": "leather_shop", "chance": 30, "repeat": [ 1, 6 ] },
+          { "item": "leather_shop_accessories", "chance": 30, "repeat": [ 1, 6 ] },
+          { "item": "accesories_personal_unisex", "chance": 30, "repeat": [ 1, 6 ] }
+        ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 4x4 leather clothing backroom.",
+    "nested_mapgen_id": "city_block_4x4_backroom_clothing_leather",
+    "object": {
+      "mapgensize": [ 4, 4 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "CCCC",
+        "    ",
+        "    ",
+        "CC C"
+      ],
+      "terrain": { " ": "t_floor" },
+      "furniture": { "C": "f_rack" },
+      "items": {
+        "C": [
+          { "item": "leather_shop", "chance": 30, "repeat": [ 0, 6 ] },
+          { "item": "leather_shop_accessories", "chance": 30, "repeat": [ 0, 6 ] }
+        ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 4x4 leather clothing backroom.",
+    "nested_mapgen_id": "city_block_4x4_backroom_clothing_leather",
+    "object": {
+      "mapgensize": [ 4, 4 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "CBBB",
+        "  Ad",
+        "A   ",
+        "BB C"
+      ],
+      "terrain": { " ": "t_floor", "?": "t_console_broken" },
+      "furniture": { "A": "f_stool", "B": "f_workbench", "C": "f_rack_wood", "d": "f_mannequin", "e": "f_mannequin", "b": "f_bench" },
+      "items": {
+        "C": [
+          { "item": "SUS_tailoring_materials", "chance": 10, "repeat": [ 1, 2 ] },
+          { "item": "leather_shop_repair", "chance": 30, "repeat": [ 2, 6 ] }
+        ],
+        "d": [
+          { "item": "leather_shop", "chance": 100 },
+          { "item": "pants", "chance": 50 },
+          { "item": "shirts", "chance": 50 },
+          { "item": "leather_shop_accessories", "chance": 100 }
+        ]
+      },
+      "B": [
+        { "item": "SUS_tailoring_tool_drawer", "chance": 30, "repeat": [ 0, 1 ] },
+        { "item": "SUS_tailoring_fasteners", "chance": 30, "repeat": [ 2, 6 ] }
+      ]
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 8x8 fur clothing shop.",
+    "nested_mapgen_id": "city_block_8x8_fur_clothing_shop_front",
+    "object": {
+      "mapgensize": [ 8, 8 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        " d B?B  ",
+        " L  AB b",
+        " L      ",
+        " L C G b",
+        " d C G  ",
+        "       b",
+        " b QQQ  ",
+        "|| |||||"
+      ],
+      "terrain": { " ": "t_floor", "?": "t_console_broken", "|": "t_brick_wall" },
+      "furniture": {
+        "A": "f_stool",
+        "B": "f_counter",
+        "C": "f_table",
+        "G": "f_displaycase",
+        "b": "f_bigmirror",
+        "Q": "f_rack_wood",
+        "d": "f_mannequin",
+        "L": "f_wardrobe"
+      },
+      "items": {
+        "d": [
+          { "item": "fancyfurs", "chance": 100 },
+          { "item": "pants", "chance": 50 },
+          { "item": "shirts", "chance": 50 },
+          { "item": "dress_shoes", "chance": 100 }
+        ],
+        "C": [ { "item": "fancyfurs", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "L": [ { "item": "fancyfurs", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "Q": [ { "item": "fancyfurs", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "G": [
+          { "item": "neckties", "chance": 30, "repeat": [ 0, 4 ] },
+          { "item": "jewelry_front", "chance": 30, "repeat": [ 0, 1 ] }
+        ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 4x4 fur clothing shop crates.",
+    "nested_mapgen_id": "city_block_4x4_backroom_clothing_fur",
+    "object": {
+      "mapgensize": [ 4, 4 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "z  z",
+        " z  ",
+        "z z ",
+        "z  z"
+      ],
+      "terrain": { "z": "t_floor" },
+      "furniture": { "z": [ [ "f_cardboard_box", 5 ], "f_crate_c" ] },
+      "items": {
+        "z": [
+          { "item": "fancyfurs", "chance": 30, "repeat": [ 1, 6 ] },
+          { "item": "neckties", "chance": 30, "repeat": [ 1, 6 ] },
+          { "item": "accesories_personal_unisex", "chance": 30, "repeat": [ 1, 6 ] }
+        ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 4x4 fur clothing backroom.",
+    "nested_mapgen_id": "city_block_4x4_backroom_clothing_fur",
+    "object": {
+      "mapgensize": [ 4, 4 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "CCCC",
+        "    ",
+        "    ",
+        "CC C"
+      ],
+      "terrain": { " ": "t_floor" },
+      "furniture": { "C": "f_rack" },
+      "items": { "C": [ { "item": "fancyfurs", "chance": 30, "repeat": [ 0, 6 ] } ] }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 4x4 fur clothing backroom.",
+    "nested_mapgen_id": "city_block_4x4_backroom_clothing_fur",
+    "object": {
+      "mapgensize": [ 4, 4 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "CBBB",
+        "  Ad",
+        "A   ",
+        "BB C"
+      ],
+      "terrain": { " ": "t_floor", "?": "t_console_broken" },
+      "furniture": { "A": "f_stool", "B": "f_workbench", "C": "f_rack_wood", "d": "f_mannequin", "e": "f_mannequin", "b": "f_bench" },
+      "items": {
+        "C": [
+          { "item": "SUS_tailoring_materials", "chance": 10, "repeat": [ 1, 2 ] },
+          { "item": "SUS_fur_tailoring_materials", "chance": 30, "repeat": [ 2, 6 ] }
+        ],
+        "d": [ { "item": "SUS_mannequin_fur", "chance": 100 } ],
+        "B": [
+          { "item": "SUS_tailoring_tool_drawer", "chance": 30, "repeat": [ 0, 1 ] },
+          { "item": "SUS_tailoring_fasteners", "chance": 30, "repeat": [ 2, 6 ] }
+        ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 5x5 shop backroom.",
+    "nested_mapgen_id": "city_block_5x5_backroom_shop",
+    "object": {
+      "mapgensize": [ 5, 5 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "d   G",
+        "L   G",
+        "BA   ",
+        "B  zz",
+        "Cyz  "
+      ],
+      "terrain": { " ": "t_floor", "?": "t_console_broken" },
+      "furniture": {
+        "A": "f_chair",
+        "B": "f_desk",
+        "C": "f_rack",
+        "G": "f_locker",
+        "b": "f_bench",
+        "d": "f_filing_cabinet",
+        "L": "f_shredder",
+        "y": [ "f_indoor_plant", "f_indoor_plant_y" ],
+        "z": [ [ "f_cardboard_box", 5 ], "f_crate_c" ]
+      },
+      "items": {
+        "d": [ { "item": "office_paper", "chance": 25 } ],
+        "C": [ { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "B": [ { "item": "office", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "G": [ { "item": "jackets", "chance": 30, "repeat": [ 0, 1 ] }, { "item": "bags", "chance": 30, "repeat": [ 0, 1 ] } ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 5x5 shop backroom.",
+    "nested_mapgen_id": "city_block_5x5_backroom_shop",
+    "object": {
+      "mapgensize": [ 5, 5 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "y  GG",
+        "b   G",
+        "b z  ",
+        "   zz",
+        "CDF  "
+      ],
+      "terrain": { " ": "t_floor", "?": "t_console_broken" },
+      "furniture": {
+        "A": "f_chair",
+        "B": "f_desk",
+        "C": "f_rack",
+        "G": "f_locker",
+        "b": "f_bench",
+        "d": "f_filing_cabinet",
+        "L": "f_shredder",
+        "D": "f_vending_c",
+        "F": "f_vending_c",
+        "y": [ "f_indoor_plant", "f_indoor_plant_y" ],
+        "z": [ [ "f_cardboard_box", 5 ], "f_crate_c" ]
+      },
+      "vendingmachines": { "D": { "item_group": "vending_drink" }, "F": { "item_group": "vending_food" } },
+      "items": {
+        "C": [ { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "G": [ { "item": "jackets", "chance": 30, "repeat": [ 0, 1 ] }, { "item": "bags", "chance": 30, "repeat": [ 0, 1 ] } ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 4x4 shop backroom.",
+    "nested_mapgen_id": "city_block_4x4_backroom_shop",
+    "object": {
+      "mapgensize": [ 4, 4 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "FD d",
+        "G   ",
+        "G   ",
+        "ybb "
+      ],
+      "terrain": { " ": "t_floor", "?": "t_console_broken" },
+      "furniture": {
+        "G": "f_locker",
+        "b": "f_bench",
+        "d": "f_filing_cabinet",
+        "D": "f_vending_c",
+        "F": "f_vending_c",
+        "y": [ "f_indoor_plant", "f_indoor_plant_y" ]
+      },
+      "vendingmachines": { "D": { "item_group": "vending_drink" }, "F": { "item_group": "vending_food" } },
+      "items": {
+        "G": [ { "item": "jackets", "chance": 30, "repeat": [ 0, 1 ] }, { "item": "bags", "chance": 30, "repeat": [ 0, 1 ] } ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 4x4 shop backroom.",
+    "nested_mapgen_id": "city_block_4x4_backroom_shop",
+    "object": {
+      "mapgensize": [ 4, 4 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "FD d",
+        "G   ",
+        "G   ",
+        "y C "
+      ],
+      "terrain": { " ": "t_floor", "?": "t_console_broken" },
+      "furniture": {
+        "C": "f_rack",
+        "G": "f_sofa",
+        "d": "f_filing_cabinet",
+        "D": "f_vending_c",
+        "F": "f_vending_c",
+        "y": [ "f_indoor_plant", "f_indoor_plant_y" ]
+      },
+      "vendingmachines": { "D": { "item_group": "vending_drink" }, "F": { "item_group": "vending_food" } },
+      "items": {
+        "C": [ { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "G": [ { "item": "jackets", "chance": 30, "repeat": [ 0, 1 ] }, { "item": "bags", "chance": 30, "repeat": [ 0, 1 ] } ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 4x4 shop backroom.",
+    "nested_mapgen_id": "city_block_4x4_backroom_shop",
+    "object": {
+      "mapgensize": [ 4, 4 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "d  L",
+        "B   ",
+        "BA  ",
+        "y GC"
+      ],
+      "terrain": { " ": "t_floor", "?": "t_console_broken" },
+      "furniture": {
+        "A": "f_chair",
+        "B": "f_desk",
+        "C": "f_rack",
+        "G": "f_locker",
+        "d": "f_filing_cabinet",
+        "L": "f_shredder",
+        "y": [ "f_indoor_plant", "f_indoor_plant_y" ]
+      },
+      "items": {
+        "C": [ { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "B": [ { "item": "office", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "G": [ { "item": "jackets", "chance": 30, "repeat": [ 0, 1 ] }, { "item": "bags", "chance": 30, "repeat": [ 0, 1 ] } ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 5x5 shop backroom.",
+    "nested_mapgen_id": "city_block_5x5_backroom_shop",
+    "object": {
+      "mapgensize": [ 5, 5 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "d  FD",
+        "G b  ",
+        "G b z",
+        "G b  ",
+        "yz CC"
+      ],
+      "terrain": { " ": "t_floor", "?": "t_console_broken" },
+      "furniture": {
+        "A": "f_chair",
+        "B": "f_desk",
+        "C": "f_rack",
+        "G": "f_locker",
+        "b": "f_bench",
+        "d": "f_filing_cabinet",
+        "L": "f_shredder",
+        "D": "f_vending_c",
+        "F": "f_vending_c",
+        "y": [ "f_indoor_plant", "f_indoor_plant_y" ],
+        "z": [ [ "f_cardboard_box", 5 ], "f_crate_c" ]
+      },
+      "vendingmachines": { "D": { "item_group": "vending_drink" }, "F": { "item_group": "vending_food" } },
+      "items": {
+        "C": [ { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "G": [ { "item": "jackets", "chance": 30, "repeat": [ 0, 1 ] }, { "item": "bags", "chance": 30, "repeat": [ 0, 1 ] } ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 5x5 shop backroom.",
+    "nested_mapgen_id": "city_block_5x5_backroom_shop",
+    "object": {
+      "mapgensize": [ 5, 5 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "d  FD",
+        "G    ",
+        "G   z",
+        "C    ",
+        "yAAA "
+      ],
+      "terrain": { " ": "t_floor" },
+      "furniture": {
+        "A": "f_sofa",
+        "C": "f_rack",
+        "G": "f_locker",
+        "d": "f_filing_cabinet",
+        "D": "f_vending_c",
+        "F": "f_vending_c",
+        "y": [ "f_indoor_plant", "f_indoor_plant_y" ],
+        "z": [ [ "f_cardboard_box", 5 ], "f_crate_c" ]
+      },
+      "vendingmachines": { "D": { "item_group": "vending_drink" }, "F": { "item_group": "vending_food" } },
+      "items": {
+        "C": [ { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "G": [ { "item": "jackets", "chance": 30, "repeat": [ 0, 1 ] }, { "item": "bags", "chance": 30, "repeat": [ 0, 1 ] } ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for 3x3 candy shop crates.",
+    "nested_mapgen_id": "city_block_3x3_backroom_crates_candy",
+    "object": {
+      "mapgensize": [ 3, 3 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "z z",
+        "  z",
+        "z z"
+      ],
+      "terrain": { "z": "t_floor" },
+      "furniture": { "z": [ [ "f_cardboard_box", 5 ], "f_crate_c" ] },
+      "items": {
+        "z": [
+          { "item": "candy_chocolate", "chance": 30, "repeat": [ 1, 6 ] },
+          { "item": "toy_store", "chance": 30, "repeat": [ 1, 6 ] }
+        ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for restaurant spaces 14x14.",
+    "nested_mapgen_id": "city_block_14x14_restaurant",
+    "object": {
+      "mapgensize": [ 14, 14 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "              ",
+        "              ",
+        "HLH HLH  GG   ",
+        "HLH HLH  LL   ",
+        "         GG   ",
+        "HLH HLH   y   ",
+        "HLH HLH  GG   ",
+        "         LL   ",
+        "|||||||| GG   ",
+        "JJiRiJJ| ||   ",
+        "F     n| |t   ",
+        "F RRR l| *    ",
+        "F      * |    ",
+        "YPPQQSY| |j   "
+      ],
+      "terrain": { "?": "t_console_broken", "|": "t_brick_wall", "*": "t_door_c" },
+      "furniture": {
+        "L": "f_table",
+        "H": "f_chair",
+        "G": "f_sofa",
+        "t": "f_toilet",
+        "j": "f_sink",
+        "P": "f_rack",
+        "S": "f_rack",
+        "Q": "f_rack",
+        "Y": "f_trashcan",
+        "A": "f_stool",
+        "i": "f_oven",
+        "F": "f_fridge",
+        "n": "f_sink",
+        "l": "f_dishwasher",
+        "J": "f_counter",
+        "R": "f_counter",
+        "y": [ "f_indoor_plant", "f_indoor_plant_y" ]
+      },
+      "items": {
+        "Y": [ { "item": "trash", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "l": [ { "item": "restaur_sink", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "n": [ { "item": "restaur_sink", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "j": [ { "item": "restaur_bath", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "i": [ { "item": "SUS_oven", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "L": [ { "item": "restaur_table", "chance": 30, "repeat": [ 0, 4 ] } ],
+        "J": [
+          { "item": "SUS_knife_drawer", "chance": 30, "repeat": [ 0, 4 ] },
+          { "item": "restaur_kitchen", "chance": 30, "repeat": [ 1, 2 ] }
+        ],
+        "R": [
+          { "item": "restaur_kitchen", "chance": 30, "repeat": [ 0, 4 ] },
+          { "item": "diner_food", "chance": 30, "repeat": [ 1, 2 ] }
+        ],
+        "P": [
+          { "item": "restaur_kitchen", "chance": 30, "repeat": [ 0, 4 ] },
+          { "item": "restaur_rack", "chance": 30, "repeat": [ 1, 2 ] }
+        ],
+        "Q": [
+          { "item": "restaur_kitchen", "chance": 30, "repeat": [ 0, 4 ] },
+          { "item": "restaur_kitchen", "chance": 30, "repeat": [ 1, 2 ] }
+        ],
+        "S": [
+          { "item": "groce_bread", "chance": 30, "repeat": [ 0, 4 ] },
+          { "item": "restaur_kitchen", "chance": 30, "repeat": [ 1, 2 ] }
+        ]
+      }
+    }
+  },
+  {
+    "type": "mapgen",
+    "method": "json",
+    "//": "designed for bar spaces 11x11.",
+    "nested_mapgen_id": "city_block_11x11_bar",
+    "object": {
+      "mapgensize": [ 11, 11 ],
+      "rotation": [ 0, 3 ],
+      "rows": [
+        "y  A   xx  ",
+        "F RRA  xx  ",
+        "n  RA  xx  ",
+        "J  RA      ",
+        "J ARA   LG ",
+        "F  RA  LLG ",
+        "F     yGGG ",
+        "|| ||||||| ",
+        "t| |FFFllK ",
+        " * *     K ",
+        "j|K|YnJK   "
+      ],
+      "terrain": { " ": "t_null", "|": "t_brick_wall", "*": "t_door_c" },
+      "furniture": {
+        "L": "f_table",
+        "x": "f_pool_table",
+        "G": "f_sofa",
+        "t": "f_toilet",
+        "j": "f_sink",
+        "Y": "f_trashcan",
+        "A": "f_stool",
+        "F": "f_glass_fridge",
+        "n": "f_sink",
+        "l": "f_dishwasher",
+        "J": "f_counter",
+        "R": "f_counter",
+        "y": [ "f_indoor_plant", "f_indoor_plant_y" ]
+      },
+      "items": {
+        "K": { "item": "keg_beer", "chance": 50 },
+        "Y": [ { "item": "trash", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "x": [ { "item": "pool_table", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "l": [ { "item": "restaur_sink", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "n": [ { "item": "restaur_sink", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "j": [ { "item": "restaur_bath", "chance": 30, "repeat": [ 1, 2 ] } ],
+        "L": [ { "item": "bar_table", "chance": 30, "repeat": [ 0, 4 ] } ],
+        "J": [
+          { "item": "liqstore_brew", "chance": 30, "repeat": [ 0, 4 ] },
+          { "item": "bar_alcohol", "chance": 30, "repeat": [ 1, 2 ] }
+        ],
+        "R": [ { "item": "bar_table", "chance": 30, "repeat": [ 0, 4 ] } ],
+        "F": [
+          { "item": "bar_alcohol", "chance": 30, "repeat": [ 0, 4 ] },
+          { "item": "bar_fridge", "chance": 30, "repeat": [ 1, 2 ] }
+        ]
+      }
+    }
+  }
+]
diff --git a/data/json/mapgen_palettes/city_block_palette.json b/data/json/mapgen_palettes/city_block_palette.json
new file mode 100644
index 0000000000000..11ff96b47b26a
--- /dev/null
+++ b/data/json/mapgen_palettes/city_block_palette.json
@@ -0,0 +1,122 @@
+[
+  {
+    "type": "palette",
+    "id": "city_block_foundation_palette",
+    "furniture": {
+      "A": "f_stool",
+      "B": "f_beaded_door",
+      "D": "f_chair",
+      "E": "f_rack_coat",
+      "F": "f_bench",
+      "G": "f_bench",
+      "H": "f_armchair",
+      "I": "f_desk",
+      "J": "f_counter",
+      "K": "f_cupboard",
+      "L": "f_table",
+      "N": "f_workbench",
+      "O": "f_wardrobe",
+      "P": "f_locker",
+      "Q": "f_rack",
+      "R": "f_bookcase",
+      "T": "f_bathtub",
+      "U": "f_utility_shelf",
+      "W": "f_washer",
+      "X": "f_birdbath",
+      "Y": "f_trashcan",
+      "Z": "f_dryer",
+      "d": "f_shower",
+      "g": "f_water_heater",
+      "h": "f_fireplace",
+      "i": "f_oven",
+      "j": "f_sink",
+      "n": "f_sink",
+      "k": "f_woodstove",
+      "l": "f_fridge",
+      "m": "f_glass_fridge",
+      "p": [ "f_dumpster", "f_recycle_bin" ],
+      "r": "f_wood_keg",
+      "v": "f_safe_l",
+      "w": "f_rack_wood",
+      "y": [ "f_indoor_plant", "f_indoor_plant_y" ],
+      "z": "f_metal_butcher_rack"
+    },
+    "terrain": {
+      ".": [ [ "t_region_groundcover_urban", 10 ], "t_region_shrub_decorative" ],
+      "-": "t_open_air",
+      "p": "t_concrete",
+      "X": "t_region_groundcover_urban",
+      " ": "t_floor",
+      "|": "t_brick_wall",
+      "%": "t_wall_w",
+      "<": "t_stairs_up",
+      ">": "t_stairs_down",
+      "o": "t_laminated_glass",
+      "+": "t_laminated_door_glass_c",
+      "@": "t_window_domestic",
+      "*": [ [ "t_door_c", 10 ], [ "t_door_o", 5 ], [ "t_door_locked_interior", 3 ] ],
+      "!": [ [ "t_door_locked_peep", 2 ], "t_door_locked_alarm", [ "t_door_locked", 10 ], "t_door_c" ],
+      "s": "t_concrete",
+      "~": "t_pavement",
+      "#": "t_chainfence",
+      "u": "t_chaingate_l",
+      "x": [ [ "t_door_metal_pickable", 20 ], [ "t_door_metal_c", 5 ], [ "t_door_metal_c_peep", 3 ] ],
+      "C": "t_column",
+      "^": "t_gutter_downspout",
+      ",": "t_glass_railing",
+      ";": "t_grate",
+      "M": "t_region_shrub_decorative",
+      "S": "t_ladder_down",
+      "V": "t_ladder_up",
+      "?": "t_console_broken",
+      "$": [ [ "t_region_tree_fruit", 2 ], [ "t_region_tree_nut", 2 ], "t_region_tree_shade" ]
+    },
+    "toilets": { "t": {  } },
+    "liquids": { "g": { "liquid": "water_clean", "amount": [ 0, 100 ] } },
+    "items": {
+      "O": [ { "item": "wardrobe_mens", "chance": 50 }, { "item": "wardrobe_womens", "chance": 50, "repeat": [ 1, 2 ] } ],
+      "Q": [
+        { "item": "preserved_food", "chance": 20, "repeat": [ 1, 2 ] },
+        { "item": "dry_goods", "chance": 30, "repeat": [ 1, 2 ] },
+        { "item": "pet_food", "chance": 30, "repeat": [ 1, 2 ] },
+        { "item": "condiments", "chance": 30, "repeat": [ 1, 2 ] },
+        { "item": "pantry_liquids", "chance": 10 }
+      ],
+      "K": [
+        { "item": "dishes_utility", "chance": 30 },
+        { "item": "condiments", "chance": 40, "repeat": [ 1, 2 ] },
+        { "item": "SUS_knife_drawer", "chance": 20, "repeat": [ 1, 2 ] },
+        { "item": "SUS_junk_drawer", "chance": 10, "repeat": [ 1, 2 ] },
+        { "item": "SUS_cookware", "chance": 20 }
+      ],
+      "w": [
+        { "item": "shower", "chance": 20 },
+        { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] },
+        { "item": "bed", "chance": 30, "repeat": [ 1, 2 ] }
+      ],
+      "v": [
+        { "item": "art", "chance": 5 },
+        { "item": "gemstones", "chance": 10, "repeat": [ 3, 6 ] },
+        { "item": "jewelry_front", "chance": 5, "repeat": [ 1, 4 ] },
+        { "item": "drugdealer", "chance": 10, "repeat": [ 1, 2 ] },
+        { "item": "maps", "chance": 2 }
+      ],
+      "U": [
+        { "item": "home_hw", "chance": 20, "repeat": [ 1, 2 ] },
+        { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] },
+        { "item": "mechanics", "chance": 10, "repeat": [ 1, 2 ] }
+      ],
+      "j": [
+        { "item": "softdrugs", "chance": 45, "repeat": [ 1, 3 ] },
+        { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] },
+        { "item": "harddrugs", "chance": 5 }
+      ],
+      "T": { "item": "shower", "chance": 30, "repeat": [ 1, 2 ] },
+      "n": { "item": "SUS_kitchen_sink", "chance": 10, "repeat": [ 1, 2 ] },
+      "i": { "item": "SUS_oven", "chance": 25, "repeat": [ 1, 2 ] },
+      "l": { "item": "SUS_fridge", "chance": 30, "repeat": [ 1, 2 ] },
+      "Y": { "item": "trash", "chance": 30, "repeat": [ 1, 2 ] },
+      "R": { "item": "homebooks", "chance": 30, "repeat": [ 1, 2 ] }
+    }
+  }
+]
diff --git a/data/json/overmap/multitile_city_buildings.json b/data/json/overmap/multitile_city_buildings.json
index d39f219c916f1..6acd7d0a7817e 100644
--- a/data/json/overmap/multitile_city_buildings.json
+++ b/data/json/overmap/multitile_city_buildings.json
@@ -2399,6 +2399,21 @@
       { "point": [ 0, 1, 3 ], "overmap": "homeless_1_0_roof_north" }
     ]
   },
+  {
+    "type": "city_building",
+    "id": "city_block_2",
+    "locations": [ "land" ],
+    "overmaps": [
+      { "point": [ 0, 0, 0 ], "overmap": "city_block2_1_north" },
+      { "point": [ 0, 0, 1 ], "overmap": "city_block2_flr2_1_north" },
+      { "point": [ 1, 0, 0 ], "overmap": "city_block2_2_north" },
+      { "point": [ 1, 0, 1 ], "overmap": "city_block2_flr2_2_north" },
+      { "point": [ 2, 0, 0 ], "overmap": "city_block2_3_north" },
+      { "point": [ 2, 0, 1 ], "overmap": "city_block2_flr2_3_north" },
+      { "point": [ 3, 0, 0 ], "overmap": "city_block2_4_north" },
+      { "point": [ 3, 0, 1 ], "overmap": "city_block2_flr2_4_north" }
+    ]
+  },
   {
     "type": "city_building",
     "id": "craft_shop",
diff --git a/data/json/overmap/overmap_terrain/overmap_terrain_commercial.json b/data/json/overmap/overmap_terrain/overmap_terrain_commercial.json
index a2419b1db3a94..c3a56648cab83 100644
--- a/data/json/overmap/overmap_terrain/overmap_terrain_commercial.json
+++ b/data/json/overmap/overmap_terrain/overmap_terrain_commercial.json
@@ -3188,5 +3188,61 @@
     "name": "hunting supply store roof",
     "sym": "H",
     "color": "brown"
+  },
+  {
+    "type": "overmap_terrain",
+    "id": "city_block2_1",
+    "name": "urban city block",
+    "copy-from": "generic_city_building",
+    "color": "light_blue"
+  },
+  {
+    "type": "overmap_terrain",
+    "id": "city_block2_2",
+    "name": "urban city block",
+    "copy-from": "generic_city_building",
+    "color": "light_blue"
+  },
+  {
+    "type": "overmap_terrain",
+    "id": "city_block2_3",
+    "name": "urban city block",
+    "copy-from": "generic_city_building",
+    "color": "light_blue"
+  },
+  {
+    "type": "overmap_terrain",
+    "id": "city_block2_4",
+    "name": "urban city block",
+    "copy-from": "generic_city_building",
+    "color": "light_blue"
+  },
+  {
+    "type": "overmap_terrain",
+    "id": "city_block2_flr2_1",
+    "name": "urban city block",
+    "copy-from": "generic_city_building",
+    "color": "light_blue"
+  },
+  {
+    "type": "overmap_terrain",
+    "id": "city_block2_flr2_2",
+    "name": "urban city block",
+    "copy-from": "generic_city_building",
+    "color": "light_blue"
+  },
+  {
+    "type": "overmap_terrain",
+    "id": "city_block2_flr2_3",
+    "name": "urban city block",
+    "copy-from": "generic_city_building",
+    "color": "light_blue"
+  },
+  {
+    "type": "overmap_terrain",
+    "id": "city_block2_flr2_4",
+    "name": "urban city block",
+    "copy-from": "generic_city_building",
+    "color": "light_blue"
   }
 ]
diff --git a/data/json/regional_map_settings.json b/data/json/regional_map_settings.json
index 1f8cb793d1ab8..2d60437c536ee 100644
--- a/data/json/regional_map_settings.json
+++ b/data/json/regional_map_settings.json
@@ -591,6 +591,7 @@
       },
       "shops": {
         "bus_station": 200,
+        "city_block_2": 300,
         "town_hall": 150,
         "craft_shop": 200,
         "craft_shop_1": 200,