shithub: pokecrystal

Download patch

ref: 5e37b9a97fc2b2054d35ce36575dd0fd204bb2bf
parent: 2fe10a6682299f03415c9d1ecceb11007a032691
author: Bryan Bishop <[email protected]>
date: Sun May 27 20:16:38 EDT 2012

insert all map connections

--- a/extras/crystal.py
+++ b/extras/crystal.py
@@ -4952,8 +4952,10 @@
             if ((connection_options[id] & self.connection_byte.byte) != 0):
                 dir_results.append(each)
         output += "db " + " | ".join(dir_results)
+        if len(dir_results) == 0:
+            output += "0"
 
-        if self.connection_byte == 0:
+        if self.connection_byte.byte == 0 or len(dir_results) == 0:
             return output
         else:
             output += "\n\n"
@@ -5449,7 +5451,7 @@
             elif ((p + (connected_map_height - connection_strip_length) * connected_map_width)%0x4000)+0x4000 == strip_pointer:
                 p += (connected_map_height - connection_strip_length) * connected_map_width
                 method = "east2"
-                this_part = "((" + map_constant_label + "_HEIGHT - " + connection_strip_length + ") * " + map_constant_label + "_WIDTH)"
+                this_part = "((" + map_constant_label + "_HEIGHT - " + str(connection_strip_length) + ") * " + map_constant_label + "_WIDTH)"
                 output += "(" + get_label_for(connected_second_map_header.blockdata.address) + " + " + this_part +  ")"
             elif ((p + 100 - 4 * connected_map_width)%0x4000) + 0x4000 == strip_pointer:
                 method = "east3"
@@ -7139,7 +7141,8 @@
         try:
             start = eval(start)
         except Exception, e:
-            raise Exception, "problem with evaluating interval range"
+            print "start is: " + str(start)
+            raise Exception, "problem with evaluating interval range: " + str(e)
 
         start_hex = hex(start).replace("0x", "$")
 
--- a/main.asm
+++ b/main.asm
@@ -51380,7 +51380,7 @@
 	db $5
 
 	; height, width
-	db 9, 10
+	db NEW_BARK_TOWN_HEIGHT, NEW_BARK_TOWN_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(NewBarkTown_BlockData), NewBarkTown_BlockData
@@ -51392,17 +51392,31 @@
 	dw NewBarkTown_MapEventHeader
 
 	; connections
-	db 3
-; 0x94de4
+	db WEST | EAST
 
-INCBIN "baserom.gbc",$94de4,$94dfc - $94de4
+	; WEST to Route 29
+	db GROUP_ROUTE_29, MAP_ROUTE_29 ; connected map (group, id)
+	dw (Route29_BlockData + ROUTE_29_WIDTH - 3) ; strip pointer
+	dw $c830 ; strip destination
+	db 9, ROUTE_29_WIDTH ; (connection strip length, connected map width)
+	db 0, ((ROUTE_29_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 59) ; window
 
+	; EAST to Route 27
+	db GROUP_ROUTE_27, MAP_ROUTE_27 ; connected map (group, id)
+	dw (Route27_BlockData) ; strip pointer
+	dw $c83d ; strip destination
+	db 9, ROUTE_27_WIDTH ; (connection strip length, connected map width)
+	db 0, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_27_WIDTH) ; window
+; 0x94dfc
+
 CherrygroveCity_SecondMapHeader: ; 0x94dfc
 	; border block
 	db $35
 
 	; height, width
-	db 9, 20
+	db CHERRYGROVE_CITY_HEIGHT, CHERRYGROVE_CITY_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(CherrygroveCity_BlockData), CherrygroveCity_BlockData
@@ -51414,17 +51428,31 @@
 	dw CherrygroveCity_MapEventHeader
 
 	; connections
-	db 9
-; 0x94e08
+	db NORTH | EAST
 
-INCBIN "baserom.gbc",$94e08,$18
+	; NORTH to Route 30
+	db GROUP_ROUTE_30, MAP_ROUTE_30 ; connected map (group, id)
+	dw (Route30_BlockData + (ROUTE_30_HEIGHT * ROUTE_30_WIDTH) - (ROUTE_30_WIDTH * 3)) ; strip pointer
+	dw ($C703 + 261) ; strip destination
+	db 10, ROUTE_30_WIDTH ; (connection strip length, connected map width)
+	db ((ROUTE_30_HEIGHT * 2) - 1), 246 ; yoffset, xoffset
+	dw ($C801 + ((ROUTE_30_HEIGHT * 6) + (ROUTE_30_HEIGHT * ROUTE_30_WIDTH))) ; window
 
+	; EAST to Route 29
+	db GROUP_ROUTE_29, MAP_ROUTE_29 ; connected map (group, id)
+	dw (Route29_BlockData) ; strip pointer
+	dw $c865 ; strip destination
+	db 9, ROUTE_29_WIDTH ; (connection strip length, connected map width)
+	db 0, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_29_WIDTH) ; window
+; 0x94e20
+
 VioletCity_SecondMapHeader: ; 0x94e20
 	; border block
 	db $5
 
 	; height, width
-	db 18, 20
+	db VIOLET_CITY_HEIGHT, VIOLET_CITY_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(VioletCity_BlockData), VioletCity_BlockData
@@ -51436,17 +51464,39 @@
 	dw VioletCity_MapEventHeader
 
 	; connections
-	db 7
-; 0x94e2c
+	db SOUTH | WEST | EAST
 
-INCBIN "baserom.gbc",$94e2c,$24
+	; SOUTH to Route 32
+	db GROUP_ROUTE_32, MAP_ROUTE_32 ; connected map (group, id)
+	dw (Route32_BlockData) ; strip pointer
+	dw ($C703 + 256 + ((VIOLET_CITY_HEIGHT + 3) * (VIOLET_CITY_WIDTH + 6))) ; strip destination
+	db 10, ROUTE_32_WIDTH ; (connection strip length, connected map width)
+	db 0, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_32_WIDTH) ; window
 
+	; WEST to Route 36
+	db GROUP_ROUTE_36, MAP_ROUTE_36 ; connected map (group, id)
+	dw (Route36_BlockData + ROUTE_36_WIDTH - 3) ; strip pointer
+	dw $c84e ; strip destination
+	db 9, ROUTE_36_WIDTH ; (connection strip length, connected map width)
+	db 0, ((ROUTE_36_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 59) ; window
+
+	; EAST to Route 31
+	db GROUP_ROUTE_31, MAP_ROUTE_31 ; connected map (group, id)
+	dw (Route31_BlockData) ; strip pointer
+	dw $c94f ; strip destination
+	db 9, ROUTE_31_WIDTH ; (connection strip length, connected map width)
+	db 238, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_31_WIDTH) ; window
+; 0x94e50
+
 AzaleaTown_SecondMapHeader: ; 0x94e50
 	; border block
 	db $5
 
 	; height, width
-	db 9, 20
+	db AZALEA_TOWN_HEIGHT, AZALEA_TOWN_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(AzaleaTown_BlockData), AzaleaTown_BlockData
@@ -51458,17 +51508,31 @@
 	dw AzaleaTown_MapEventHeader
 
 	; connections
-	db 3
-; 0x94e5c
+	db WEST | EAST
 
-INCBIN "baserom.gbc",$94e5c,$94e74 - $94e5c
+	; WEST to Route 34
+	db GROUP_ROUTE_34, MAP_ROUTE_34 ; connected map (group, id)
+	dw (Route34_BlockData + (((ROUTE_34_HEIGHT - AZALEA_TOWN_HEIGHT) * ROUTE_34_WIDTH) - (ROUTE_34_WIDTH * 3) + (ROUTE_34_WIDTH - 1) - 2)) ; strip pointer
+	dw $c800 ; strip destination
+	db 12, ROUTE_34_WIDTH ; (connection strip length, connected map width)
+	db 36, ((ROUTE_34_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 19) ; window
 
+	; EAST to Route 33
+	db GROUP_ROUTE_33, MAP_ROUTE_33 ; connected map (group, id)
+	dw (Route33_BlockData) ; strip pointer
+	dw $c865 ; strip destination
+	db 9, ROUTE_33_WIDTH ; (connection strip length, connected map width)
+	db 0, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_33_WIDTH) ; window
+; 0x94e74
+
 CianwoodCity_SecondMapHeader: ; 0x94e74
 	; border block
 	db $35
 
 	; height, width
-	db 27, 15
+	db CIANWOOD_CITY_HEIGHT, CIANWOOD_CITY_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(CianwoodCity_BlockData), CianwoodCity_BlockData
@@ -51480,10 +51544,16 @@
 	dw CianwoodCity_MapEventHeader
 
 	; connections
-	db 1
-; 0x94e80
+	db EAST
 
-INCBIN "baserom.gbc",$94e80,$0c
+	; EAST to Route 41
+	db GROUP_ROUTE_41, MAP_ROUTE_41 ; connected map (group, id)
+	dw (Route41_BlockData) ; strip pointer
+	dw $c851 ; strip destination
+	db 27, ROUTE_41_WIDTH ; (connection strip length, connected map width)
+	db 0, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_41_WIDTH) ; window
+; 0x94e8c
 
 GoldenrodCity_SecondMapHeader: ; 0x94e8c
 	; border block
@@ -51490,7 +51560,7 @@
 	db $35
 
 	; height, width
-	db 18, 20
+	db GOLDENROD_CITY_HEIGHT, GOLDENROD_CITY_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(GoldenrodCity_BlockData), GoldenrodCity_BlockData
@@ -51502,17 +51572,31 @@
 	dw GoldenrodCity_MapEventHeader
 
 	; connections
-	db 12
-; 0x94e98
+	db NORTH | SOUTH
 
-INCBIN "baserom.gbc",$94e98,$18
+	; NORTH to Route 35
+	db GROUP_ROUTE_35, MAP_ROUTE_35 ; connected map (group, id)
+	dw (Route35_BlockData + (ROUTE_35_HEIGHT * ROUTE_35_WIDTH) - (ROUTE_35_WIDTH * 3)) ; strip pointer
+	dw ($C703 + 261) ; strip destination
+	db 10, ROUTE_35_WIDTH ; (connection strip length, connected map width)
+	db ((ROUTE_35_HEIGHT * 2) - 1), 246 ; yoffset, xoffset
+	dw ($C801 + ((ROUTE_35_HEIGHT * 6) + (ROUTE_35_HEIGHT * ROUTE_35_WIDTH))) ; window
 
+	; SOUTH to Route 34
+	db GROUP_ROUTE_34, MAP_ROUTE_34 ; connected map (group, id)
+	dw (Route34_BlockData) ; strip pointer
+	dw ($C703 + 261 + ((GOLDENROD_CITY_HEIGHT + 3) * (GOLDENROD_CITY_WIDTH + 6))) ; strip destination
+	db 10, ROUTE_34_WIDTH ; (connection strip length, connected map width)
+	db 0, 246 ; yoffset, xoffset
+	dw ($C807 + ROUTE_34_WIDTH) ; window
+; 0x94eb0
+
 OlivineCity_SecondMapHeader: ; 0x94eb0
 	; border block
 	db $35
 
 	; height, width
-	db 18, 20
+	db OLIVINE_CITY_HEIGHT, OLIVINE_CITY_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineCity_BlockData), OlivineCity_BlockData
@@ -51524,17 +51608,31 @@
 	dw OlivineCity_MapEventHeader
 
 	; connections
-	db 10
-; 0x94ebc
+	db NORTH | WEST
 
-INCBIN "baserom.gbc",$94ebc,$94ed4 - $94ebc
+	; NORTH to Route 39
+	db GROUP_ROUTE_39, MAP_ROUTE_39 ; connected map (group, id)
+	dw (Route39_BlockData + (ROUTE_39_HEIGHT * ROUTE_39_WIDTH) - (ROUTE_39_WIDTH * 3)) ; strip pointer
+	dw ($C703 + 261) ; strip destination
+	db 10, ROUTE_39_WIDTH ; (connection strip length, connected map width)
+	db ((ROUTE_39_HEIGHT * 2) - 1), 246 ; yoffset, xoffset
+	dw ($C801 + ((ROUTE_39_HEIGHT * 6) + (ROUTE_39_HEIGHT * ROUTE_39_WIDTH))) ; window
 
+	; WEST to Route 40
+	db GROUP_ROUTE_40, MAP_ROUTE_40 ; connected map (group, id)
+	dw (Route40_BlockData + ROUTE_40_WIDTH - 3) ; strip pointer
+	dw $c938 ; strip destination
+	db 12, ROUTE_40_WIDTH ; (connection strip length, connected map width)
+	db 238, ((ROUTE_40_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 19) ; window
+; 0x94ed4
+
 EcruteakCity_SecondMapHeader: ; 0x94ed4
 	; border block
 	db $5
 
 	; height, width
-	db 18, 20
+	db ECRUTEAK_CITY_HEIGHT, ECRUTEAK_CITY_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(EcruteakCity_BlockData), EcruteakCity_BlockData
@@ -51546,17 +51644,39 @@
 	dw EcruteakCity_MapEventHeader
 
 	; connections
-	db 7
-; 0x94ee0
+	db SOUTH | WEST | EAST
 
-INCBIN "baserom.gbc",$94ee0,$24
+	; SOUTH to Route 37
+	db GROUP_ROUTE_37, MAP_ROUTE_37 ; connected map (group, id)
+	dw (Route37_BlockData) ; strip pointer
+	dw ($C703 + 261 + ((ECRUTEAK_CITY_HEIGHT + 3) * (ECRUTEAK_CITY_WIDTH + 6))) ; strip destination
+	db 10, ROUTE_37_WIDTH ; (connection strip length, connected map width)
+	db 0, 246 ; yoffset, xoffset
+	dw ($C807 + ROUTE_37_WIDTH) ; window
 
+	; WEST to Route 38
+	db GROUP_ROUTE_38, MAP_ROUTE_38 ; connected map (group, id)
+	dw (Route38_BlockData + ROUTE_38_WIDTH - 3) ; strip pointer
+	dw $c8d0 ; strip destination
+	db 9, ROUTE_38_WIDTH ; (connection strip length, connected map width)
+	db 246, ((ROUTE_38_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 39) ; window
+
+	; EAST to Route 42
+	db GROUP_ROUTE_42, MAP_ROUTE_42 ; connected map (group, id)
+	dw (Route42_BlockData) ; strip pointer
+	dw $c94f ; strip destination
+	db 9, ROUTE_42_WIDTH ; (connection strip length, connected map width)
+	db 238, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_42_WIDTH) ; window
+; 0x94f04
+
 MahoganyTown_SecondMapHeader: ; 0x94f04
 	; border block
 	db $71
 
 	; height, width
-	db 9, 10
+	db MAHOGANY_TOWN_HEIGHT, MAHOGANY_TOWN_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(MahoganyTown_BlockData), MahoganyTown_BlockData
@@ -51568,17 +51688,39 @@
 	dw MahoganyTown_MapEventHeader
 
 	; connections
-	db 11
-; 0x94f10
+	db NORTH | WEST | EAST
 
-INCBIN "baserom.gbc",$94f10,$94f34 - $94f10
+	; NORTH to Route 43
+	db GROUP_ROUTE_43, MAP_ROUTE_43 ; connected map (group, id)
+	dw (Route43_BlockData + (ROUTE_43_HEIGHT * ROUTE_43_WIDTH) - (ROUTE_43_WIDTH * 3)) ; strip pointer
+	dw ($C703 + 256) ; strip destination
+	db 10, ROUTE_43_WIDTH ; (connection strip length, connected map width)
+	db ((ROUTE_43_HEIGHT * 2) - 1), 0 ; yoffset, xoffset
+	dw ($C801 + ((ROUTE_43_HEIGHT * 6) + (ROUTE_43_HEIGHT * ROUTE_43_WIDTH))) ; window
 
+	; WEST to Route 42
+	db GROUP_ROUTE_42, MAP_ROUTE_42 ; connected map (group, id)
+	dw (Route42_BlockData + ROUTE_42_WIDTH - 3) ; strip pointer
+	dw $c830 ; strip destination
+	db 9, ROUTE_42_WIDTH ; (connection strip length, connected map width)
+	db 0, ((ROUTE_42_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 59) ; window
+
+	; EAST to Route 44
+	db GROUP_ROUTE_44, MAP_ROUTE_44 ; connected map (group, id)
+	dw (Route44_BlockData) ; strip pointer
+	dw $c83d ; strip destination
+	db 9, ROUTE_44_WIDTH ; (connection strip length, connected map width)
+	db 0, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_44_WIDTH) ; window
+; 0x94f34
+
 LakeofRage_SecondMapHeader: ; 0x94f34
 	; border block
 	db $5
 
 	; height, width
-	db 18, 20
+	db LAKE_OF_RAGE_HEIGHT, LAKE_OF_RAGE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(LakeofRage_BlockData), LakeofRage_BlockData
@@ -51590,10 +51732,16 @@
 	dw LakeofRage_MapEventHeader
 
 	; connections
-	db 4
-; 0x94f40
+	db SOUTH
 
-INCBIN "baserom.gbc",$94f40,$0c
+	; SOUTH to Route 43
+	db GROUP_ROUTE_43, MAP_ROUTE_43 ; connected map (group, id)
+	dw (Route43_BlockData) ; strip pointer
+	dw ($C703 + 261 + ((LAKE_OF_RAGE_HEIGHT + 3) * (LAKE_OF_RAGE_WIDTH + 6))) ; strip destination
+	db 10, ROUTE_43_WIDTH ; (connection strip length, connected map width)
+	db 0, 246 ; yoffset, xoffset
+	dw ($C807 + ROUTE_43_WIDTH) ; window
+; 0x94f4c
 
 BlackthornCity_SecondMapHeader: ; 0x94f4c
 	; border block
@@ -51600,7 +51748,7 @@
 	db $71
 
 	; height, width
-	db 18, 20
+	db BLACKTHORN_CITY_HEIGHT, BLACKTHORN_CITY_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(BlackthornCity_BlockData), BlackthornCity_BlockData
@@ -51612,17 +51760,31 @@
 	dw BlackthornCity_MapEventHeader
 
 	; connections
-	db 6
-; 0x94f58
+	db SOUTH | WEST
 
-INCBIN "baserom.gbc",$94f58,$94f70 - $94f58
+	; SOUTH to Route 45
+	db GROUP_ROUTE_45, MAP_ROUTE_45 ; connected map (group, id)
+	dw (Route45_BlockData) ; strip pointer
+	dw ($C703 + 256 + ((BLACKTHORN_CITY_HEIGHT + 3) * (BLACKTHORN_CITY_WIDTH + 6))) ; strip destination
+	db 10, ROUTE_45_WIDTH ; (connection strip length, connected map width)
+	db 0, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_45_WIDTH) ; window
 
+	; WEST to Route 44
+	db GROUP_ROUTE_44, MAP_ROUTE_44 ; connected map (group, id)
+	dw (Route44_BlockData + ROUTE_44_WIDTH - 3) ; strip pointer
+	dw $c938 ; strip destination
+	db 9, ROUTE_44_WIDTH ; (connection strip length, connected map width)
+	db 238, ((ROUTE_44_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 59) ; window
+; 0x94f70
+
 SilverCaveOutside_SecondMapHeader: ; 0x94f70
 	; border block
 	db $2c
 
 	; height, width
-	db 18, 20
+	db SILVER_CAVE_OUTSIDE_HEIGHT, SILVER_CAVE_OUTSIDE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SilverCaveOutside_BlockData), SilverCaveOutside_BlockData
@@ -51634,10 +51796,16 @@
 	dw SilverCaveOutside_MapEventHeader
 
 	; connections
-	db 1
-; 0x94f7c
+	db EAST
 
-INCBIN "baserom.gbc",$94f7c,$94f88 - $94f7c
+	; EAST to Route 28
+	db GROUP_ROUTE_28, MAP_ROUTE_28 ; connected map (group, id)
+	dw (Route28_BlockData) ; strip pointer
+	dw $c94f ; strip destination
+	db 9, ROUTE_28_WIDTH ; (connection strip length, connected map width)
+	db 238, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_28_WIDTH) ; window
+; 0x94f88
 
 Route26_SecondMapHeader: ; 0x94f88
 	; border block
@@ -51644,7 +51812,7 @@
 	db $5
 
 	; height, width
-	db 54, 10
+	db ROUTE_26_HEIGHT, ROUTE_26_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route26_BlockData), Route26_BlockData
@@ -51656,10 +51824,16 @@
 	dw Route26_MapEventHeader
 
 	; connections
-	db 2
-; 0x94f94
+	db WEST
 
-INCBIN "baserom.gbc",$94f94,$94fa0 - $94f94
+	; WEST to Route 27
+	db GROUP_ROUTE_27, MAP_ROUTE_27 ; connected map (group, id)
+	dw (Route27_BlockData + ROUTE_27_WIDTH - 3) ; strip pointer
+	dw $cb00 ; strip destination
+	db 9, ROUTE_27_WIDTH ; (connection strip length, connected map width)
+	db 166, ((ROUTE_27_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 79) ; window
+; 0x94fa0
 
 Route27_SecondMapHeader: ; 0x94fa0
 	; border block
@@ -51666,7 +51840,7 @@
 	db $35
 
 	; height, width
-	db 9, 40
+	db ROUTE_27_HEIGHT, ROUTE_27_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route27_BlockData), Route27_BlockData
@@ -51678,17 +51852,31 @@
 	dw Route27_MapEventHeader
 
 	; connections
-	db 3
-; 0x94fac
+	db WEST | EAST
 
-INCBIN "baserom.gbc",$94fac,$18
+	; WEST to New Bark Town
+	db GROUP_NEW_BARK_TOWN, MAP_NEW_BARK_TOWN ; connected map (group, id)
+	dw (NewBarkTown_BlockData + NEW_BARK_TOWN_WIDTH - 3) ; strip pointer
+	dw $c88a ; strip destination
+	db 9, NEW_BARK_TOWN_WIDTH ; (connection strip length, connected map width)
+	db 0, ((NEW_BARK_TOWN_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 19) ; window
 
+	; EAST to Route 26
+	db GROUP_ROUTE_26, MAP_ROUTE_26 ; connected map (group, id)
+	dw (Route26_BlockData + ((ROUTE_26_HEIGHT - 12) * ROUTE_26_WIDTH)) ; strip pointer
+	dw $c82b ; strip destination
+	db 12, ROUTE_26_WIDTH ; (connection strip length, connected map width)
+	db 90, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_26_WIDTH) ; window
+; 0x94fc4
+
 Route28_SecondMapHeader: ; 0x94fc4
 	; border block
 	db $2c
 
 	; height, width
-	db 9, 20
+	db ROUTE_28_HEIGHT, ROUTE_28_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route28_BlockData), Route28_BlockData
@@ -51700,10 +51888,16 @@
 	dw Route28_MapEventHeader
 
 	; connections
-	db 2
-; 0x94fd0
+	db WEST
 
-INCBIN "baserom.gbc",$94fd0,$94fdc - $94fd0
+	; WEST to Silver Cave Outside
+	db GROUP_SILVER_CAVE_OUTSIDE, MAP_SILVER_CAVE_OUTSIDE ; connected map (group, id)
+	dw (SilverCaveOutside_BlockData + (((SILVER_CAVE_OUTSIDE_HEIGHT - ROUTE_28_HEIGHT) * SILVER_CAVE_OUTSIDE_WIDTH) - (SILVER_CAVE_OUTSIDE_WIDTH * 3) + (SILVER_CAVE_OUTSIDE_WIDTH - 1) - 2)) ; strip pointer
+	dw $c800 ; strip destination
+	db 12, SILVER_CAVE_OUTSIDE_WIDTH ; (connection strip length, connected map width)
+	db 18, ((SILVER_CAVE_OUTSIDE_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 39) ; window
+; 0x94fdc
 
 Route29_SecondMapHeader: ; 0x94fdc
 	; border block
@@ -51710,7 +51904,7 @@
 	db $5
 
 	; height, width
-	db 9, 30
+	db ROUTE_29_HEIGHT, ROUTE_29_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route29_BlockData), Route29_BlockData
@@ -51722,17 +51916,39 @@
 	dw Route29_MapEventHeader
 
 	; connections
-	db 11
-; 0x94fe8
+	db NORTH | WEST | EAST
 
-INCBIN "baserom.gbc",$94fe8,$9500c - $94fe8
+	; NORTH to Route 46
+	db GROUP_ROUTE_46, MAP_ROUTE_46 ; connected map (group, id)
+	dw (Route46_BlockData + (ROUTE_46_HEIGHT * ROUTE_46_WIDTH) - (ROUTE_46_WIDTH * 3)) ; strip pointer
+	dw ($C703 + 266) ; strip destination
+	db 10, ROUTE_46_WIDTH ; (connection strip length, connected map width)
+	db ((ROUTE_46_HEIGHT * 2) - 1), 236 ; yoffset, xoffset
+	dw ($C801 + ((ROUTE_46_HEIGHT * 6) + (ROUTE_46_HEIGHT * ROUTE_46_WIDTH))) ; window
 
+	; WEST to Cherrygrove City
+	db GROUP_CHERRYGROVE_CITY, MAP_CHERRYGROVE_CITY ; connected map (group, id)
+	dw (CherrygroveCity_BlockData + CHERRYGROVE_CITY_WIDTH - 3) ; strip pointer
+	dw $c86c ; strip destination
+	db 9, CHERRYGROVE_CITY_WIDTH ; (connection strip length, connected map width)
+	db 0, ((CHERRYGROVE_CITY_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 39) ; window
+
+	; EAST to New Bark Town
+	db GROUP_NEW_BARK_TOWN, MAP_NEW_BARK_TOWN ; connected map (group, id)
+	dw (NewBarkTown_BlockData) ; strip pointer
+	dw $c88d ; strip destination
+	db 9, NEW_BARK_TOWN_WIDTH ; (connection strip length, connected map width)
+	db 0, 0 ; yoffset, xoffset
+	dw ($C807 + NEW_BARK_TOWN_WIDTH) ; window
+; 0x9500c
+
 Route30_SecondMapHeader: ; 0x9500c
 	; border block
 	db $5
 
 	; height, width
-	db 27, 10
+	db ROUTE_30_HEIGHT, ROUTE_30_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route30_BlockData), Route30_BlockData
@@ -51744,17 +51960,31 @@
 	dw Route30_MapEventHeader
 
 	; connections
-	db 12
-; 0x95018
+	db NORTH | SOUTH
 
-INCBIN "baserom.gbc",$95018,$95030 - $95018
+	; NORTH to Route 31
+	db GROUP_ROUTE_31, MAP_ROUTE_31 ; connected map (group, id)
+	dw $7288 ; strip pointer
+	dw ($C703 + 253) ; strip destination
+	db 13, ROUTE_31_WIDTH ; (connection strip length, connected map width)
+	db ((ROUTE_31_HEIGHT * 2) - 1), 20 ; yoffset, xoffset
+	dw ($C801 + ((ROUTE_31_HEIGHT * 6) + (ROUTE_31_HEIGHT * ROUTE_31_WIDTH))) ; window
 
+	; SOUTH to Cherrygrove City
+	db GROUP_CHERRYGROVE_CITY, MAP_CHERRYGROVE_CITY ; connected map (group, id)
+	dw (CherrygroveCity_BlockData + ((10 - 16 + ROUTE_30_WIDTH) / 2)) ; strip pointer
+	dw ($C703 + 253 + ((ROUTE_30_HEIGHT + 3) * (ROUTE_30_WIDTH + 6))) ; strip destination
+	db 16, CHERRYGROVE_CITY_WIDTH ; (connection strip length, connected map width)
+	db 0, 10 ; yoffset, xoffset
+	dw ($C807 + CHERRYGROVE_CITY_WIDTH) ; window
+; 0x95030
+
 Route31_SecondMapHeader: ; 0x95030
 	; border block
 	db $5
 
 	; height, width
-	db 9, 20
+	db ROUTE_31_HEIGHT, ROUTE_31_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route31_BlockData), Route31_BlockData
@@ -51766,17 +51996,31 @@
 	dw Route31_MapEventHeader
 
 	; connections
-	db 6
-; 0x9503c
+	db SOUTH | WEST
 
-INCBIN "baserom.gbc",$9503c,$18
+	; SOUTH to Route 30
+	db GROUP_ROUTE_30, MAP_ROUTE_30 ; connected map (group, id)
+	dw (Route30_BlockData) ; strip pointer
+	dw ($C703 + 266 + ((ROUTE_31_HEIGHT + 3) * (ROUTE_31_WIDTH + 6))) ; strip destination
+	db 10, ROUTE_30_WIDTH ; (connection strip length, connected map width)
+	db 0, 236 ; yoffset, xoffset
+	dw ($C807 + ROUTE_30_WIDTH) ; window
 
+	; WEST to Violet City
+	db GROUP_VIOLET_CITY, MAP_VIOLET_CITY ; connected map (group, id)
+	dw (VioletCity_BlockData + (((VIOLET_CITY_HEIGHT - ROUTE_31_HEIGHT) * VIOLET_CITY_WIDTH) - (VIOLET_CITY_WIDTH * 3) + (VIOLET_CITY_WIDTH - 1) - 2)) ; strip pointer
+	dw $c800 ; strip destination
+	db 12, VIOLET_CITY_WIDTH ; (connection strip length, connected map width)
+	db 18, ((VIOLET_CITY_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 39) ; window
+; 0x95054
+
 Route32_SecondMapHeader: ; 0x95054
 	; border block
 	db $5
 
 	; height, width
-	db 45, 10
+	db ROUTE_32_HEIGHT, ROUTE_32_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route32_BlockData), Route32_BlockData
@@ -51788,17 +52032,31 @@
 	dw Route32_MapEventHeader
 
 	; connections
-	db 12
-; 0x95060
+	db NORTH | SOUTH
 
-INCBIN "baserom.gbc",$95060,$18
+	; NORTH to Violet City
+	db GROUP_VIOLET_CITY, MAP_VIOLET_CITY ; connected map (group, id)
+	dw (VioletCity_BlockData + (VIOLET_CITY_HEIGHT * VIOLET_CITY_WIDTH) - (VIOLET_CITY_WIDTH * 3)) ; strip pointer
+	dw ($C703 + 256) ; strip destination
+	db 13, VIOLET_CITY_WIDTH ; (connection strip length, connected map width)
+	db ((VIOLET_CITY_HEIGHT * 2) - 1), 0 ; yoffset, xoffset
+	dw ($C801 + ((VIOLET_CITY_HEIGHT * 6) + (VIOLET_CITY_HEIGHT * VIOLET_CITY_WIDTH))) ; window
 
+	; SOUTH to Route 33
+	db GROUP_ROUTE_33, MAP_ROUTE_33 ; connected map (group, id)
+	dw (Route33_BlockData) ; strip pointer
+	dw ($C703 + 256 + ((ROUTE_32_HEIGHT + 3) * (ROUTE_32_WIDTH + 6))) ; strip destination
+	db 10, ROUTE_33_WIDTH ; (connection strip length, connected map width)
+	db 0, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_33_WIDTH) ; window
+; 0x95078
+
 Route33_SecondMapHeader: ; 0x95078
 	; border block
 	db $5
 
 	; height, width
-	db 9, 10
+	db ROUTE_33_HEIGHT, ROUTE_33_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route33_BlockData), Route33_BlockData
@@ -51810,17 +52068,31 @@
 	dw Route33_MapEventHeader
 
 	; connections
-	db 10
-; 0x95084
+	db NORTH | WEST
 
-INCBIN "baserom.gbc",$95084,$9509c - $95084
+	; NORTH to Route 32
+	db GROUP_ROUTE_32, MAP_ROUTE_32 ; connected map (group, id)
+	dw (Route32_BlockData + (ROUTE_32_HEIGHT * ROUTE_32_WIDTH) - (ROUTE_32_WIDTH * 3)) ; strip pointer
+	dw ($C703 + 256) ; strip destination
+	db 10, ROUTE_32_WIDTH ; (connection strip length, connected map width)
+	db ((ROUTE_32_HEIGHT * 2) - 1), 0 ; yoffset, xoffset
+	dw ($C801 + ((ROUTE_32_HEIGHT * 6) + (ROUTE_32_HEIGHT * ROUTE_32_WIDTH))) ; window
 
+	; WEST to Azalea Town
+	db GROUP_AZALEA_TOWN, MAP_AZALEA_TOWN ; connected map (group, id)
+	dw (AzaleaTown_BlockData + AZALEA_TOWN_WIDTH - 3) ; strip pointer
+	dw $c830 ; strip destination
+	db 9, AZALEA_TOWN_WIDTH ; (connection strip length, connected map width)
+	db 0, ((AZALEA_TOWN_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 39) ; window
+; 0x9509c
+
 Route34_SecondMapHeader: ; 0x9509c
 	; border block
 	db $5
 
 	; height, width
-	db 27, 10
+	db ROUTE_34_HEIGHT, ROUTE_34_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route34_BlockData), Route34_BlockData
@@ -51832,17 +52104,31 @@
 	dw Route34_MapEventHeader
 
 	; connections
-	db 9
-; 0x950a8
+	db NORTH | EAST
 
-INCBIN "baserom.gbc",$950a8,$18
+	; NORTH to Goldenrod City
+	db GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY ; connected map (group, id)
+	dw (GoldenrodCity_BlockData + GOLDENROD_CITY_WIDTH + 10 + (16 * GOLDENROD_CITY_HEIGHT) - 16) ; strip pointer
+	dw ($C703 + 253) ; strip destination
+	db 16, GOLDENROD_CITY_WIDTH ; (connection strip length, connected map width)
+	db ((GOLDENROD_CITY_HEIGHT * 2) - 1), 10 ; yoffset, xoffset
+	dw ($C801 + ((GOLDENROD_CITY_HEIGHT * 6) + (GOLDENROD_CITY_HEIGHT * GOLDENROD_CITY_WIDTH))) ; window
 
+	; EAST to Azalea Town
+	db GROUP_AZALEA_TOWN, MAP_AZALEA_TOWN ; connected map (group, id)
+	dw (AzaleaTown_BlockData) ; strip pointer
+	dw $c95d ; strip destination
+	db 9, AZALEA_TOWN_WIDTH ; (connection strip length, connected map width)
+	db 220, 0 ; yoffset, xoffset
+	dw ($C807 + AZALEA_TOWN_WIDTH) ; window
+; 0x950c0
+
 Route35_SecondMapHeader: ; 0x950c0
 	; border block
 	db $5
 
 	; height, width
-	db 18, 10
+	db ROUTE_35_HEIGHT, ROUTE_35_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route35_BlockData), Route35_BlockData
@@ -51854,17 +52140,31 @@
 	dw Route35_MapEventHeader
 
 	; connections
-	db 12
-; 0x950cc
+	db NORTH | SOUTH
 
-INCBIN "baserom.gbc",$950cc,$950e4 - $950cc
+	; NORTH to Route 36
+	db GROUP_ROUTE_36, MAP_ROUTE_36 ; connected map (group, id)
+	dw (Route36_BlockData + (ROUTE_36_HEIGHT * ROUTE_36_WIDTH) - (ROUTE_36_WIDTH * 3)) ; strip pointer
+	dw ($C703 + 256) ; strip destination
+	db 13, ROUTE_36_WIDTH ; (connection strip length, connected map width)
+	db ((ROUTE_36_HEIGHT * 2) - 1), 0 ; yoffset, xoffset
+	dw ($C801 + ((ROUTE_36_HEIGHT * 6) + (ROUTE_36_HEIGHT * ROUTE_36_WIDTH))) ; window
 
+	; SOUTH to Goldenrod City
+	db GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY ; connected map (group, id)
+	dw (GoldenrodCity_BlockData + ((10 - 16 + ROUTE_35_WIDTH) / 2)) ; strip pointer
+	dw ($C703 + 253 + ((ROUTE_35_HEIGHT + 3) * (ROUTE_35_WIDTH + 6))) ; strip destination
+	db 16, GOLDENROD_CITY_WIDTH ; (connection strip length, connected map width)
+	db 0, 10 ; yoffset, xoffset
+	dw ($C807 + GOLDENROD_CITY_WIDTH) ; window
+; 0x950e4
+
 Route36_SecondMapHeader: ; 0x950e4
 	; border block
 	db $5
 
 	; height, width
-	db 9, 30
+	db ROUTE_36_HEIGHT, ROUTE_36_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route36_BlockData), Route36_BlockData
@@ -51876,17 +52176,39 @@
 	dw Route36_MapEventHeader
 
 	; connections
-	db 13
-; 0x950f0
+	db NORTH | SOUTH | EAST
 
-INCBIN "baserom.gbc",$950f0,$95114 - $950f0
+	; NORTH to Route 37
+	db GROUP_ROUTE_37, MAP_ROUTE_37 ; connected map (group, id)
+	dw (Route37_BlockData + (ROUTE_37_HEIGHT * ROUTE_37_WIDTH) - (ROUTE_37_WIDTH * 3)) ; strip pointer
+	dw ($C703 + 266) ; strip destination
+	db 10, ROUTE_37_WIDTH ; (connection strip length, connected map width)
+	db ((ROUTE_37_HEIGHT * 2) - 1), 236 ; yoffset, xoffset
+	dw ($C801 + ((ROUTE_37_HEIGHT * 6) + (ROUTE_37_HEIGHT * ROUTE_37_WIDTH))) ; window
 
+	; SOUTH to Route 35
+	db GROUP_ROUTE_35, MAP_ROUTE_35 ; connected map (group, id)
+	dw (Route35_BlockData) ; strip pointer
+	dw ($C703 + 256 + ((ROUTE_36_HEIGHT + 3) * (ROUTE_36_WIDTH + 6))) ; strip destination
+	db 10, ROUTE_35_WIDTH ; (connection strip length, connected map width)
+	db 0, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_35_WIDTH) ; window
+
+	; EAST to Violet City
+	db GROUP_VIOLET_CITY, MAP_VIOLET_CITY ; connected map (group, id)
+	dw (VioletCity_BlockData) ; strip pointer
+	dw $c88d ; strip destination
+	db 12, VIOLET_CITY_WIDTH ; (connection strip length, connected map width)
+	db 0, 0 ; yoffset, xoffset
+	dw ($C807 + VIOLET_CITY_WIDTH) ; window
+; 0x95114
+
 Route37_SecondMapHeader: ; 0x95114
 	; border block
 	db $5
 
 	; height, width
-	db 9, 10
+	db ROUTE_37_HEIGHT, ROUTE_37_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route37_BlockData), Route37_BlockData
@@ -51898,17 +52220,31 @@
 	dw Route37_MapEventHeader
 
 	; connections
-	db 12
-; 0x95120
+	db NORTH | SOUTH
 
-INCBIN "baserom.gbc",$95120,$18
+	; NORTH to Ecruteak City
+	db GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY ; connected map (group, id)
+	dw (EcruteakCity_BlockData + ECRUTEAK_CITY_WIDTH + 10 + (16 * ECRUTEAK_CITY_HEIGHT) - 16) ; strip pointer
+	dw ($C703 + 253) ; strip destination
+	db 16, ECRUTEAK_CITY_WIDTH ; (connection strip length, connected map width)
+	db ((ECRUTEAK_CITY_HEIGHT * 2) - 1), 10 ; yoffset, xoffset
+	dw ($C801 + ((ECRUTEAK_CITY_HEIGHT * 6) + (ECRUTEAK_CITY_HEIGHT * ECRUTEAK_CITY_WIDTH))) ; window
 
+	; SOUTH to Route 36
+	db GROUP_ROUTE_36, MAP_ROUTE_36 ; connected map (group, id)
+	dw (Route36_BlockData + ((20 - 16 + ROUTE_37_WIDTH) / 2)) ; strip pointer
+	dw ($C703 + 253 + ((ROUTE_37_HEIGHT + 3) * (ROUTE_37_WIDTH + 6))) ; strip destination
+	db 16, ROUTE_36_WIDTH ; (connection strip length, connected map width)
+	db 0, 20 ; yoffset, xoffset
+	dw ($C807 + ROUTE_36_WIDTH) ; window
+; 0x95138
+
 Route38_SecondMapHeader: ; 0x95138
 	; border block
 	db $5
 
 	; height, width
-	db 9, 20
+	db ROUTE_38_HEIGHT, ROUTE_38_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route38_BlockData), Route38_BlockData
@@ -51920,17 +52256,31 @@
 	dw Route38_MapEventHeader
 
 	; connections
-	db 3
-; 0x95144
+	db WEST | EAST
 
-INCBIN "baserom.gbc",$95144,$9515c - $95144
+	; WEST to Route 39
+	db GROUP_ROUTE_39, MAP_ROUTE_39 ; connected map (group, id)
+	dw (Route39_BlockData + ROUTE_39_WIDTH - 3) ; strip pointer
+	dw $c84e ; strip destination
+	db 12, ROUTE_39_WIDTH ; (connection strip length, connected map width)
+	db 0, ((ROUTE_39_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 19) ; window
 
+	; EAST to Ecruteak City
+	db GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY ; connected map (group, id)
+	dw (EcruteakCity_BlockData + ((100 - (ECRUTEAK_CITY_WIDTH * 4)) * 2)) ; strip pointer
+	dw $c817 ; strip destination
+	db 15, ECRUTEAK_CITY_WIDTH ; (connection strip length, connected map width)
+	db 10, 0 ; yoffset, xoffset
+	dw ($C807 + ECRUTEAK_CITY_WIDTH) ; window
+; 0x9515c
+
 Route39_SecondMapHeader: ; 0x9515c
 	; border block
 	db $5
 
 	; height, width
-	db 18, 10
+	db ROUTE_39_HEIGHT, ROUTE_39_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route39_BlockData), Route39_BlockData
@@ -51942,17 +52292,31 @@
 	dw Route39_MapEventHeader
 
 	; connections
-	db 5
-; 0x95168
+	db SOUTH | EAST
 
-INCBIN "baserom.gbc",$95168,$95180 - $95168
+	; SOUTH to Olivine City
+	db GROUP_OLIVINE_CITY, MAP_OLIVINE_CITY ; connected map (group, id)
+	dw (OlivineCity_BlockData + ((10 - 16 + ROUTE_39_WIDTH) / 2)) ; strip pointer
+	dw ($C703 + 253 + ((ROUTE_39_HEIGHT + 3) * (ROUTE_39_WIDTH + 6))) ; strip destination
+	db 16, OLIVINE_CITY_WIDTH ; (connection strip length, connected map width)
+	db 0, 10 ; yoffset, xoffset
+	dw ($C807 + OLIVINE_CITY_WIDTH) ; window
 
+	; EAST to Route 38
+	db GROUP_ROUTE_38, MAP_ROUTE_38 ; connected map (group, id)
+	dw (Route38_BlockData) ; strip pointer
+	dw $c83d ; strip destination
+	db 9, ROUTE_38_WIDTH ; (connection strip length, connected map width)
+	db 0, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_38_WIDTH) ; window
+; 0x95180
+
 Route40_SecondMapHeader: ; 0x95180
 	; border block
 	db $35
 
 	; height, width
-	db 18, 10
+	db ROUTE_40_HEIGHT, ROUTE_40_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route40_BlockData), Route40_BlockData
@@ -51964,17 +52328,31 @@
 	dw Route40_MapEventHeader
 
 	; connections
-	db 5
-; 0x9518c
+	db SOUTH | EAST
 
-INCBIN "baserom.gbc",$9518c,$951a4 - $9518c
+	; SOUTH to Route 41
+	db GROUP_ROUTE_41, MAP_ROUTE_41 ; connected map (group, id)
+	dw (Route41_BlockData + (((30 - 13 + ROUTE_40_WIDTH) / 2) - 1)) ; strip pointer
+	dw ($C703 + 253 + ((ROUTE_40_HEIGHT + 3) * (ROUTE_40_WIDTH + 6))) ; strip destination
+	db 13, ROUTE_41_WIDTH ; (connection strip length, connected map width)
+	db 0, 30 ; yoffset, xoffset
+	dw ($C807 + ROUTE_41_WIDTH) ; window
 
+	; EAST to Olivine City
+	db GROUP_OLIVINE_CITY, MAP_OLIVINE_CITY ; connected map (group, id)
+	dw (OlivineCity_BlockData + ((OLIVINE_CITY_HEIGHT - 12) * OLIVINE_CITY_WIDTH)) ; strip pointer
+	dw $c80d ; strip destination
+	db 12, OLIVINE_CITY_WIDTH ; (connection strip length, connected map width)
+	db 18, 0 ; yoffset, xoffset
+	dw ($C807 + OLIVINE_CITY_WIDTH) ; window
+; 0x951a4
+
 Route41_SecondMapHeader: ; 0x951a4
 	; border block
 	db $35
 
 	; height, width
-	db 27, 25
+	db ROUTE_41_HEIGHT, ROUTE_41_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route41_BlockData), Route41_BlockData
@@ -51986,17 +52364,31 @@
 	dw Route41_MapEventHeader
 
 	; connections
-	db 10
-; 0x951b0
+	db NORTH | WEST
 
-INCBIN "baserom.gbc",$951b0,$18
+	; NORTH to Route 40
+	db GROUP_ROUTE_40, MAP_ROUTE_40 ; connected map (group, id)
+	dw (Route40_BlockData + (ROUTE_40_HEIGHT * ROUTE_40_WIDTH) - (ROUTE_40_WIDTH * 3)) ; strip pointer
+	dw ($C703 + 271) ; strip destination
+	db 10, ROUTE_40_WIDTH ; (connection strip length, connected map width)
+	db ((ROUTE_40_HEIGHT * 2) - 1), 226 ; yoffset, xoffset
+	dw ($C801 + ((ROUTE_40_HEIGHT * 6) + (ROUTE_40_HEIGHT * ROUTE_40_WIDTH))) ; window
 
+	; WEST to Cianwood City
+	db GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY ; connected map (group, id)
+	dw (CianwoodCity_BlockData + CIANWOOD_CITY_WIDTH - 3) ; strip pointer
+	dw $c85d ; strip destination
+	db 27, CIANWOOD_CITY_WIDTH ; (connection strip length, connected map width)
+	db 0, ((CIANWOOD_CITY_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 29) ; window
+; 0x951c8
+
 Route42_SecondMapHeader: ; 0x951c8
 	; border block
 	db $5
 
 	; height, width
-	db 9, 30
+	db ROUTE_42_HEIGHT, ROUTE_42_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route42_BlockData), Route42_BlockData
@@ -52008,17 +52400,31 @@
 	dw Route42_MapEventHeader
 
 	; connections
-	db 3
-; 0x951d4
+	db WEST | EAST
 
-INCBIN "baserom.gbc",$951d4,$951ec - $951d4
+	; WEST to Ecruteak City
+	db GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY ; connected map (group, id)
+	dw (EcruteakCity_BlockData + (((ECRUTEAK_CITY_HEIGHT - ROUTE_42_HEIGHT) * ECRUTEAK_CITY_WIDTH) - (ECRUTEAK_CITY_WIDTH * 3) + (ECRUTEAK_CITY_WIDTH - 1) - 2)) ; strip pointer
+	dw $c800 ; strip destination
+	db 12, ECRUTEAK_CITY_WIDTH ; (connection strip length, connected map width)
+	db 18, ((ECRUTEAK_CITY_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 39) ; window
 
+	; EAST to Mahogany Town
+	db GROUP_MAHOGANY_TOWN, MAP_MAHOGANY_TOWN ; connected map (group, id)
+	dw (MahoganyTown_BlockData) ; strip pointer
+	dw $c88d ; strip destination
+	db 9, MAHOGANY_TOWN_WIDTH ; (connection strip length, connected map width)
+	db 0, 0 ; yoffset, xoffset
+	dw ($C807 + MAHOGANY_TOWN_WIDTH) ; window
+; 0x951ec
+
 Route43_SecondMapHeader: ; 0x951ec
 	; border block
 	db $5
 
 	; height, width
-	db 27, 10
+	db ROUTE_43_HEIGHT, ROUTE_43_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route43_BlockData), Route43_BlockData
@@ -52030,17 +52436,31 @@
 	dw Route43_MapEventHeader
 
 	; connections
-	db 12
-; 0x951f8
+	db NORTH | SOUTH
 
-INCBIN "baserom.gbc",$951f8,$18
+	; NORTH to Lake of Rage
+	db GROUP_LAKE_OF_RAGE, MAP_LAKE_OF_RAGE ; connected map (group, id)
+	dw (LakeofRage_BlockData + LAKE_OF_RAGE_WIDTH + 10 + (16 * LAKE_OF_RAGE_HEIGHT) - 16) ; strip pointer
+	dw ($C703 + 253) ; strip destination
+	db 16, LAKE_OF_RAGE_WIDTH ; (connection strip length, connected map width)
+	db ((LAKE_OF_RAGE_HEIGHT * 2) - 1), 10 ; yoffset, xoffset
+	dw ($C801 + ((LAKE_OF_RAGE_HEIGHT * 6) + (LAKE_OF_RAGE_HEIGHT * LAKE_OF_RAGE_WIDTH))) ; window
 
+	; SOUTH to Mahogany Town
+	db GROUP_MAHOGANY_TOWN, MAP_MAHOGANY_TOWN ; connected map (group, id)
+	dw (MahoganyTown_BlockData) ; strip pointer
+	dw ($C703 + 256 + ((ROUTE_43_HEIGHT + 3) * (ROUTE_43_WIDTH + 6))) ; strip destination
+	db 10, MAHOGANY_TOWN_WIDTH ; (connection strip length, connected map width)
+	db 0, 0 ; yoffset, xoffset
+	dw ($C807 + MAHOGANY_TOWN_WIDTH) ; window
+; 0x95210
+
 Route44_SecondMapHeader: ; 0x95210
 	; border block
 	db $71
 
 	; height, width
-	db 9, 30
+	db ROUTE_44_HEIGHT, ROUTE_44_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route44_BlockData), Route44_BlockData
@@ -52052,17 +52472,31 @@
 	dw Route44_MapEventHeader
 
 	; connections
-	db 3
-; 0x9521c
+	db WEST | EAST
 
-INCBIN "baserom.gbc",$9521c,$95234 - $9521c
+	; WEST to Mahogany Town
+	db GROUP_MAHOGANY_TOWN, MAP_MAHOGANY_TOWN ; connected map (group, id)
+	dw (MahoganyTown_BlockData + MAHOGANY_TOWN_WIDTH - 3) ; strip pointer
+	dw $c86c ; strip destination
+	db 9, MAHOGANY_TOWN_WIDTH ; (connection strip length, connected map width)
+	db 0, ((MAHOGANY_TOWN_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 19) ; window
 
+	; EAST to Blackthorn City
+	db GROUP_BLACKTHORN_CITY, MAP_BLACKTHORN_CITY ; connected map (group, id)
+	dw (BlackthornCity_BlockData + ((BLACKTHORN_CITY_HEIGHT - 12) * BLACKTHORN_CITY_WIDTH)) ; strip pointer
+	dw $c821 ; strip destination
+	db 12, BLACKTHORN_CITY_WIDTH ; (connection strip length, connected map width)
+	db 18, 0 ; yoffset, xoffset
+	dw ($C807 + BLACKTHORN_CITY_WIDTH) ; window
+; 0x95234
+
 Route45_SecondMapHeader: ; 0x95234
 	; border block
 	db $71
 
 	; height, width
-	db 45, 10
+	db ROUTE_45_HEIGHT, ROUTE_45_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route45_BlockData), Route45_BlockData
@@ -52074,17 +52508,31 @@
 	dw Route45_MapEventHeader
 
 	; connections
-	db 10
-; 0x95240
+	db NORTH | WEST
 
-INCBIN "baserom.gbc",$95240,$95258 - $95240
+	; NORTH to Blackthorn City
+	db GROUP_BLACKTHORN_CITY, MAP_BLACKTHORN_CITY ; connected map (group, id)
+	dw (BlackthornCity_BlockData + (BLACKTHORN_CITY_HEIGHT * BLACKTHORN_CITY_WIDTH) - (BLACKTHORN_CITY_WIDTH * 3)) ; strip pointer
+	dw ($C703 + 256) ; strip destination
+	db 13, BLACKTHORN_CITY_WIDTH ; (connection strip length, connected map width)
+	db ((BLACKTHORN_CITY_HEIGHT * 2) - 1), 0 ; yoffset, xoffset
+	dw ($C801 + ((BLACKTHORN_CITY_HEIGHT * 6) + (BLACKTHORN_CITY_HEIGHT * BLACKTHORN_CITY_WIDTH))) ; window
 
+	; WEST to Route 46
+	db GROUP_ROUTE_46, MAP_ROUTE_46 ; connected map (group, id)
+	dw (Route46_BlockData + ROUTE_46_WIDTH - 3) ; strip pointer
+	dw $ca70 ; strip destination
+	db 12, ROUTE_46_WIDTH ; (connection strip length, connected map width)
+	db 184, ((ROUTE_46_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 19) ; window
+; 0x95258
+
 Route46_SecondMapHeader: ; 0x95258
 	; border block
 	db $5
 
 	; height, width
-	db 18, 10
+	db ROUTE_46_HEIGHT, ROUTE_46_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route46_BlockData), Route46_BlockData
@@ -52096,17 +52544,31 @@
 	dw Route46_MapEventHeader
 
 	; connections
-	db 5
-; 0x95264
+	db SOUTH | EAST
 
-INCBIN "baserom.gbc",$95264,$9527c - $95264
+	; SOUTH to Route 29
+	db GROUP_ROUTE_29, MAP_ROUTE_29 ; connected map (group, id)
+	dw (Route29_BlockData + ((20 - 16 + ROUTE_46_WIDTH) / 2)) ; strip pointer
+	dw ($C703 + 253 + ((ROUTE_46_HEIGHT + 3) * (ROUTE_46_WIDTH + 6))) ; strip destination
+	db 16, ROUTE_29_WIDTH ; (connection strip length, connected map width)
+	db 0, 20 ; yoffset, xoffset
+	dw ($C807 + ROUTE_29_WIDTH) ; window
 
+	; EAST to Route 45
+	db GROUP_ROUTE_45, MAP_ROUTE_45 ; connected map (group, id)
+	dw (Route45_BlockData + ((ROUTE_45_HEIGHT - 12) * ROUTE_45_WIDTH)) ; strip pointer
+	dw $c80d ; strip destination
+	db 12, ROUTE_45_WIDTH ; (connection strip length, connected map width)
+	db 72, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_45_WIDTH) ; window
+; 0x9527c
+
 PewterCity_SecondMapHeader: ; 0x9527c
 	; border block
 	db $f
 
 	; height, width
-	db 18, 20
+	db PEWTER_CITY_HEIGHT, PEWTER_CITY_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(PewterCity_BlockData), PewterCity_BlockData
@@ -52118,17 +52580,31 @@
 	dw PewterCity_MapEventHeader
 
 	; connections
-	db 5
-; 0x95288
+	db SOUTH | EAST
 
-INCBIN "baserom.gbc",$95288,$952a0 - $95288
+	; SOUTH to Route 2
+	db GROUP_ROUTE_2, MAP_ROUTE_2 ; connected map (group, id)
+	dw (Route2_BlockData) ; strip pointer
+	dw ($C703 + 261 + ((PEWTER_CITY_HEIGHT + 3) * (PEWTER_CITY_WIDTH + 6))) ; strip destination
+	db 10, ROUTE_2_WIDTH ; (connection strip length, connected map width)
+	db 0, 246 ; yoffset, xoffset
+	dw ($C807 + ROUTE_2_WIDTH) ; window
 
+	; EAST to Route 3
+	db GROUP_ROUTE_3, MAP_ROUTE_3 ; connected map (group, id)
+	dw (Route3_BlockData) ; strip pointer
+	dw $c8e7 ; strip destination
+	db 9, ROUTE_3_WIDTH ; (connection strip length, connected map width)
+	db 246, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_3_WIDTH) ; window
+; 0x952a0
+
 Route2_SecondMapHeader: ; 0x952a0
 	; border block
 	db $f
 
 	; height, width
-	db 27, 10
+	db ROUTE_2_HEIGHT, ROUTE_2_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route2_BlockData), Route2_BlockData
@@ -52140,17 +52616,31 @@
 	dw Route2_MapEventHeader
 
 	; connections
-	db 12
-; 0x952ac
+	db NORTH | SOUTH
 
-INCBIN "baserom.gbc",$952ac,$952c4 - $952ac
+	; NORTH to Pewter City
+	db GROUP_PEWTER_CITY, MAP_PEWTER_CITY ; connected map (group, id)
+	dw (PewterCity_BlockData + PEWTER_CITY_WIDTH + 10 + (16 * PEWTER_CITY_HEIGHT) - 16) ; strip pointer
+	dw ($C703 + 253) ; strip destination
+	db 16, PEWTER_CITY_WIDTH ; (connection strip length, connected map width)
+	db ((PEWTER_CITY_HEIGHT * 2) - 1), 10 ; yoffset, xoffset
+	dw ($C801 + ((PEWTER_CITY_HEIGHT * 6) + (PEWTER_CITY_HEIGHT * PEWTER_CITY_WIDTH))) ; window
 
+	; SOUTH to Viridian City
+	db GROUP_VIRIDIAN_CITY, MAP_VIRIDIAN_CITY ; connected map (group, id)
+	dw (ViridianCity_BlockData + ((10 - 16 + ROUTE_2_WIDTH) / 2)) ; strip pointer
+	dw ($C703 + 253 + ((ROUTE_2_HEIGHT + 3) * (ROUTE_2_WIDTH + 6))) ; strip destination
+	db 16, VIRIDIAN_CITY_WIDTH ; (connection strip length, connected map width)
+	db 0, 10 ; yoffset, xoffset
+	dw ($C807 + VIRIDIAN_CITY_WIDTH) ; window
+; 0x952c4
+
 ViridianCity_SecondMapHeader: ; 0x952c4
 	; border block
 	db $f
 
 	; height, width
-	db 18, 20
+	db VIRIDIAN_CITY_HEIGHT, VIRIDIAN_CITY_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(ViridianCity_BlockData), ViridianCity_BlockData
@@ -52162,17 +52652,39 @@
 	dw ViridianCity_MapEventHeader
 
 	; connections
-	db 14
-; 0x952d0
+	db NORTH | SOUTH | WEST
 
-INCBIN "baserom.gbc",$952d0,$24
+	; NORTH to Route 2
+	db GROUP_ROUTE_2, MAP_ROUTE_2 ; connected map (group, id)
+	dw (Route2_BlockData + (ROUTE_2_HEIGHT * ROUTE_2_WIDTH) - (ROUTE_2_WIDTH * 3)) ; strip pointer
+	dw ($C703 + 261) ; strip destination
+	db 10, ROUTE_2_WIDTH ; (connection strip length, connected map width)
+	db ((ROUTE_2_HEIGHT * 2) - 1), 246 ; yoffset, xoffset
+	dw ($C801 + ((ROUTE_2_HEIGHT * 6) + (ROUTE_2_HEIGHT * ROUTE_2_WIDTH))) ; window
 
+	; SOUTH to Route 1
+	db GROUP_ROUTE_1, MAP_ROUTE_1 ; connected map (group, id)
+	dw (Route1_BlockData) ; strip pointer
+	dw ($C703 + 266 + ((VIRIDIAN_CITY_HEIGHT + 3) * (VIRIDIAN_CITY_WIDTH + 6))) ; strip destination
+	db 10, ROUTE_1_WIDTH ; (connection strip length, connected map width)
+	db 0, 236 ; yoffset, xoffset
+	dw ($C807 + ROUTE_1_WIDTH) ; window
+
+	; WEST to Route 22
+	db GROUP_ROUTE_22, MAP_ROUTE_22 ; connected map (group, id)
+	dw (Route22_BlockData + ROUTE_22_WIDTH - 3) ; strip pointer
+	dw $c8b6 ; strip destination
+	db 9, ROUTE_22_WIDTH ; (connection strip length, connected map width)
+	db 248, ((ROUTE_22_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 39) ; window
+; 0x952f4
+
 Route22_SecondMapHeader: ; 0x952f4
 	; border block
 	db $2c
 
 	; height, width
-	db 9, 20
+	db ROUTE_22_HEIGHT, ROUTE_22_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route22_BlockData), Route22_BlockData
@@ -52184,10 +52696,16 @@
 	dw Route22_MapEventHeader
 
 	; connections
-	db 1
-; 0x95300
+	db EAST
 
-INCBIN "baserom.gbc",$95300,$0c
+	; EAST to Viridian City
+	db GROUP_VIRIDIAN_CITY, MAP_VIRIDIAN_CITY ; connected map (group, id)
+	dw (ViridianCity_BlockData + 100 - (VIRIDIAN_CITY_WIDTH * 4)) ; strip pointer
+	dw $c817 ; strip destination
+	db 15, VIRIDIAN_CITY_WIDTH ; (connection strip length, connected map width)
+	db 8, 0 ; yoffset, xoffset
+	dw ($C807 + VIRIDIAN_CITY_WIDTH) ; window
+; 0x9530c
 
 Route1_SecondMapHeader: ; 0x9530c
 	; border block
@@ -52194,7 +52712,7 @@
 	db $f
 
 	; height, width
-	db 18, 10
+	db ROUTE_1_HEIGHT, ROUTE_1_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route1_BlockData), Route1_BlockData
@@ -52206,17 +52724,31 @@
 	dw Route1_MapEventHeader
 
 	; connections
-	db 12
-; 0x95318
+	db NORTH | SOUTH
 
-INCBIN "baserom.gbc",$95318,$95330 - $95318
+	; NORTH to Viridian City
+	db GROUP_VIRIDIAN_CITY, MAP_VIRIDIAN_CITY ; connected map (group, id)
+	dw $6d9c ; strip pointer
+	dw ($C703 + 253) ; strip destination
+	db 13, VIRIDIAN_CITY_WIDTH ; (connection strip length, connected map width)
+	db ((VIRIDIAN_CITY_HEIGHT * 2) - 1), 20 ; yoffset, xoffset
+	dw ($C801 + ((VIRIDIAN_CITY_HEIGHT * 6) + (VIRIDIAN_CITY_HEIGHT * VIRIDIAN_CITY_WIDTH))) ; window
 
+	; SOUTH to Pallet Town
+	db GROUP_PALLET_TOWN, MAP_PALLET_TOWN ; connected map (group, id)
+	dw (PalletTown_BlockData) ; strip pointer
+	dw ($C703 + 256 + ((ROUTE_1_HEIGHT + 3) * (ROUTE_1_WIDTH + 6))) ; strip destination
+	db 10, PALLET_TOWN_WIDTH ; (connection strip length, connected map width)
+	db 0, 0 ; yoffset, xoffset
+	dw ($C807 + PALLET_TOWN_WIDTH) ; window
+; 0x95330
+
 PalletTown_SecondMapHeader: ; 0x95330
 	; border block
 	db $f
 
 	; height, width
-	db 9, 10
+	db PALLET_TOWN_HEIGHT, PALLET_TOWN_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(PalletTown_BlockData), PalletTown_BlockData
@@ -52228,17 +52760,31 @@
 	dw PalletTown_MapEventHeader
 
 	; connections
-	db 12
-; 0x9533c
+	db NORTH | SOUTH
 
-INCBIN "baserom.gbc",$9533c,$18
+	; NORTH to Route 1
+	db GROUP_ROUTE_1, MAP_ROUTE_1 ; connected map (group, id)
+	dw (Route1_BlockData + (ROUTE_1_HEIGHT * ROUTE_1_WIDTH) - (ROUTE_1_WIDTH * 3)) ; strip pointer
+	dw ($C703 + 256) ; strip destination
+	db 10, ROUTE_1_WIDTH ; (connection strip length, connected map width)
+	db ((ROUTE_1_HEIGHT * 2) - 1), 0 ; yoffset, xoffset
+	dw ($C801 + ((ROUTE_1_HEIGHT * 6) + (ROUTE_1_HEIGHT * ROUTE_1_WIDTH))) ; window
 
+	; SOUTH to Route 21
+	db GROUP_ROUTE_21, MAP_ROUTE_21 ; connected map (group, id)
+	dw (Route21_BlockData) ; strip pointer
+	dw ($C703 + 256 + ((PALLET_TOWN_HEIGHT + 3) * (PALLET_TOWN_WIDTH + 6))) ; strip destination
+	db 10, ROUTE_21_WIDTH ; (connection strip length, connected map width)
+	db 0, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_21_WIDTH) ; window
+; 0x95354
+
 Route21_SecondMapHeader: ; 0x95354
 	; border block
 	db $43
 
 	; height, width
-	db 18, 10
+	db ROUTE_21_HEIGHT, ROUTE_21_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route21_BlockData), Route21_BlockData
@@ -52250,17 +52796,31 @@
 	dw Route21_MapEventHeader
 
 	; connections
-	db 12
-; 0x95360
+	db NORTH | SOUTH
 
-INCBIN "baserom.gbc",$95360,$95378 - $95360
+	; NORTH to Pallet Town
+	db GROUP_PALLET_TOWN, MAP_PALLET_TOWN ; connected map (group, id)
+	dw (PalletTown_BlockData + (PALLET_TOWN_HEIGHT * PALLET_TOWN_WIDTH) - (PALLET_TOWN_WIDTH * 3)) ; strip pointer
+	dw ($C703 + 256) ; strip destination
+	db 10, PALLET_TOWN_WIDTH ; (connection strip length, connected map width)
+	db ((PALLET_TOWN_HEIGHT * 2) - 1), 0 ; yoffset, xoffset
+	dw ($C801 + ((PALLET_TOWN_HEIGHT * 6) + (PALLET_TOWN_HEIGHT * PALLET_TOWN_WIDTH))) ; window
 
+	; SOUTH to Cinnabar Island
+	db GROUP_CINNABAR_ISLAND, MAP_CINNABAR_ISLAND ; connected map (group, id)
+	dw (CinnabarIsland_BlockData) ; strip pointer
+	dw ($C703 + 256 + ((ROUTE_21_HEIGHT + 3) * (ROUTE_21_WIDTH + 6))) ; strip destination
+	db 10, CINNABAR_ISLAND_WIDTH ; (connection strip length, connected map width)
+	db 0, 0 ; yoffset, xoffset
+	dw ($C807 + CINNABAR_ISLAND_WIDTH) ; window
+; 0x95378
+
 CinnabarIsland_SecondMapHeader: ; 0x95378
 	; border block
 	db $43
 
 	; height, width
-	db 9, 10
+	db CINNABAR_ISLAND_HEIGHT, CINNABAR_ISLAND_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(CinnabarIsland_BlockData), CinnabarIsland_BlockData
@@ -52272,17 +52832,31 @@
 	dw CinnabarIsland_MapEventHeader
 
 	; connections
-	db 9
-; 0x95384
+	db NORTH | EAST
 
-INCBIN "baserom.gbc",$95384,$18
+	; NORTH to Route 21
+	db GROUP_ROUTE_21, MAP_ROUTE_21 ; connected map (group, id)
+	dw (Route21_BlockData + (ROUTE_21_HEIGHT * ROUTE_21_WIDTH) - (ROUTE_21_WIDTH * 3)) ; strip pointer
+	dw ($C703 + 256) ; strip destination
+	db 10, ROUTE_21_WIDTH ; (connection strip length, connected map width)
+	db ((ROUTE_21_HEIGHT * 2) - 1), 0 ; yoffset, xoffset
+	dw ($C801 + ((ROUTE_21_HEIGHT * 6) + (ROUTE_21_HEIGHT * ROUTE_21_WIDTH))) ; window
 
+	; EAST to Route 20
+	db GROUP_ROUTE_20, MAP_ROUTE_20 ; connected map (group, id)
+	dw (Route20_BlockData) ; strip pointer
+	dw $c83d ; strip destination
+	db 9, ROUTE_20_WIDTH ; (connection strip length, connected map width)
+	db 0, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_20_WIDTH) ; window
+; 0x9539c
+
 Route20_SecondMapHeader: ; 0x9539c
 	; border block
 	db $43
 
 	; height, width
-	db 9, 30
+	db ROUTE_20_HEIGHT, ROUTE_20_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route20_BlockData), Route20_BlockData
@@ -52294,17 +52868,31 @@
 	dw Route20_MapEventHeader
 
 	; connections
-	db 3
-; 0x953a8
+	db WEST | EAST
 
-INCBIN "baserom.gbc",$953a8,$18
+	; WEST to Cinnabar Island
+	db GROUP_CINNABAR_ISLAND, MAP_CINNABAR_ISLAND ; connected map (group, id)
+	dw (CinnabarIsland_BlockData + CINNABAR_ISLAND_WIDTH - 3) ; strip pointer
+	dw $c86c ; strip destination
+	db 9, CINNABAR_ISLAND_WIDTH ; (connection strip length, connected map width)
+	db 0, ((CINNABAR_ISLAND_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 19) ; window
 
+	; EAST to Route 19
+	db GROUP_ROUTE_19, MAP_ROUTE_19 ; connected map (group, id)
+	dw (Route19_BlockData + ((ROUTE_19_HEIGHT - 12) * ROUTE_19_WIDTH)) ; strip pointer
+	dw $c821 ; strip destination
+	db 12, ROUTE_19_WIDTH ; (connection strip length, connected map width)
+	db 18, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_19_WIDTH) ; window
+; 0x953c0
+
 Route19_SecondMapHeader: ; 0x953c0
 	; border block
 	db $43
 
 	; height, width
-	db 18, 10
+	db ROUTE_19_HEIGHT, ROUTE_19_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route19_BlockData), Route19_BlockData
@@ -52316,17 +52904,31 @@
 	dw Route19_MapEventHeader
 
 	; connections
-	db 10
-; 0x953cc
+	db NORTH | WEST
 
-INCBIN "baserom.gbc",$953cc,$953e4 - $953cc
+	; NORTH to Fuchsia City
+	db GROUP_FUCHSIA_CITY, MAP_FUCHSIA_CITY ; connected map (group, id)
+	dw (FuchsiaCity_BlockData + (FUCHSIA_CITY_HEIGHT * FUCHSIA_CITY_WIDTH) - (FUCHSIA_CITY_WIDTH * 3)) ; strip pointer
+	dw ($C703 + 256) ; strip destination
+	db 13, FUCHSIA_CITY_WIDTH ; (connection strip length, connected map width)
+	db ((FUCHSIA_CITY_HEIGHT * 2) - 1), 0 ; yoffset, xoffset
+	dw ($C801 + ((FUCHSIA_CITY_HEIGHT * 6) + (FUCHSIA_CITY_HEIGHT * FUCHSIA_CITY_WIDTH))) ; window
 
+	; WEST to Route 20
+	db GROUP_ROUTE_20, MAP_ROUTE_20 ; connected map (group, id)
+	dw (Route20_BlockData + ROUTE_20_WIDTH - 3) ; strip pointer
+	dw $c8c0 ; strip destination
+	db 9, ROUTE_20_WIDTH ; (connection strip length, connected map width)
+	db 238, ((ROUTE_20_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 59) ; window
+; 0x953e4
+
 FuchsiaCity_SecondMapHeader: ; 0x953e4
 	; border block
 	db $f
 
 	; height, width
-	db 18, 20
+	db FUCHSIA_CITY_HEIGHT, FUCHSIA_CITY_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(FuchsiaCity_BlockData), FuchsiaCity_BlockData
@@ -52338,17 +52940,39 @@
 	dw FuchsiaCity_MapEventHeader
 
 	; connections
-	db 7
-; 0x953f0
+	db SOUTH | WEST | EAST
 
-INCBIN "baserom.gbc",$953f0,$24
+	; SOUTH to Route 19
+	db GROUP_ROUTE_19, MAP_ROUTE_19 ; connected map (group, id)
+	dw (Route19_BlockData) ; strip pointer
+	dw ($C703 + 256 + ((FUCHSIA_CITY_HEIGHT + 3) * (FUCHSIA_CITY_WIDTH + 6))) ; strip destination
+	db 10, ROUTE_19_WIDTH ; (connection strip length, connected map width)
+	db 0, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_19_WIDTH) ; window
 
+	; WEST to Route 18
+	db GROUP_ROUTE_18, MAP_ROUTE_18 ; connected map (group, id)
+	dw (Route18_BlockData + ROUTE_18_WIDTH - 3) ; strip pointer
+	dw $c904 ; strip destination
+	db 9, ROUTE_18_WIDTH ; (connection strip length, connected map width)
+	db 242, ((ROUTE_18_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 19) ; window
+
+	; EAST to Route 15
+	db GROUP_ROUTE_15, MAP_ROUTE_15 ; connected map (group, id)
+	dw (Route15_BlockData) ; strip pointer
+	dw $c94f ; strip destination
+	db 9, ROUTE_15_WIDTH ; (connection strip length, connected map width)
+	db 238, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_15_WIDTH) ; window
+; 0x95414
+
 Route18_SecondMapHeader: ; 0x95414
 	; border block
 	db $43
 
 	; height, width
-	db 9, 10
+	db ROUTE_18_HEIGHT, ROUTE_18_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route18_BlockData), Route18_BlockData
@@ -52360,17 +52984,31 @@
 	dw Route18_MapEventHeader
 
 	; connections
-	db 3
-; 0x95420
+	db WEST | EAST
 
-INCBIN "baserom.gbc",$95420,$95438 - $95420
+	; WEST to Route 17
+	db GROUP_ROUTE_17, MAP_ROUTE_17 ; connected map (group, id)
+	dw $7152 ; strip pointer
+	dw $c800 ; strip destination
+	db 10, ROUTE_17_WIDTH ; (connection strip length, connected map width)
+	db 76, ((ROUTE_17_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 19) ; window
 
+	; EAST to Fuchsia City
+	db GROUP_FUCHSIA_CITY, MAP_FUCHSIA_CITY ; connected map (group, id)
+	dw (FuchsiaCity_BlockData + ((FUCHSIA_CITY_HEIGHT - 14) * FUCHSIA_CITY_WIDTH)) ; strip pointer
+	dw $c80d ; strip destination
+	db 14, FUCHSIA_CITY_WIDTH ; (connection strip length, connected map width)
+	db 14, 0 ; yoffset, xoffset
+	dw ($C807 + FUCHSIA_CITY_WIDTH) ; window
+; 0x95438
+
 Route17_SecondMapHeader: ; 0x95438
 	; border block
 	db $43
 
 	; height, width
-	db 45, 10
+	db ROUTE_17_HEIGHT, ROUTE_17_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route17_BlockData), Route17_BlockData
@@ -52382,17 +53020,31 @@
 	dw Route17_MapEventHeader
 
 	; connections
-	db 9
-; 0x95444
+	db NORTH | EAST
 
-INCBIN "baserom.gbc",$95444,$18
+	; NORTH to Route 16
+	db GROUP_ROUTE_16, MAP_ROUTE_16 ; connected map (group, id)
+	dw (Route16_BlockData + (ROUTE_16_HEIGHT * ROUTE_16_WIDTH) - (ROUTE_16_WIDTH * 3)) ; strip pointer
+	dw ($C703 + 256) ; strip destination
+	db 10, ROUTE_16_WIDTH ; (connection strip length, connected map width)
+	db ((ROUTE_16_HEIGHT * 2) - 1), 0 ; yoffset, xoffset
+	dw ($C801 + ((ROUTE_16_HEIGHT * 6) + (ROUTE_16_HEIGHT * ROUTE_16_WIDTH))) ; window
 
+	; EAST to Route 18
+	db GROUP_ROUTE_18, MAP_ROUTE_18 ; connected map (group, id)
+	dw (Route18_BlockData) ; strip pointer
+	dw $ca9d ; strip destination
+	db 9, ROUTE_18_WIDTH ; (connection strip length, connected map width)
+	db 180, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_18_WIDTH) ; window
+; 0x9545c
+
 Route16_SecondMapHeader: ; 0x9545c
 	; border block
 	db $f
 
 	; height, width
-	db 9, 10
+	db ROUTE_16_HEIGHT, ROUTE_16_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route16_BlockData), Route16_BlockData
@@ -52404,17 +53056,31 @@
 	dw Route16_MapEventHeader
 
 	; connections
-	db 5
-; 0x95468
+	db SOUTH | EAST
 
-INCBIN "baserom.gbc",$95468,$95480 - $95468
+	; SOUTH to Route 17
+	db GROUP_ROUTE_17, MAP_ROUTE_17 ; connected map (group, id)
+	dw (Route17_BlockData) ; strip pointer
+	dw ($C703 + 256 + ((ROUTE_16_HEIGHT + 3) * (ROUTE_16_WIDTH + 6))) ; strip destination
+	db 10, ROUTE_17_WIDTH ; (connection strip length, connected map width)
+	db 0, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_17_WIDTH) ; window
 
+	; EAST to Celadon City
+	db GROUP_CELADON_CITY, MAP_CELADON_CITY ; connected map (group, id)
+	dw (CeladonCity_BlockData + ((CELADON_CITY_HEIGHT - 12) * CELADON_CITY_WIDTH)) ; strip pointer
+	dw $c80d ; strip destination
+	db 12, CELADON_CITY_WIDTH ; (connection strip length, connected map width)
+	db 18, 0 ; yoffset, xoffset
+	dw ($C807 + CELADON_CITY_WIDTH) ; window
+; 0x95480
+
 CeladonCity_SecondMapHeader: ; 0x95480
 	; border block
 	db $f
 
 	; height, width
-	db 18, 20
+	db CELADON_CITY_HEIGHT, CELADON_CITY_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(CeladonCity_BlockData), CeladonCity_BlockData
@@ -52426,17 +53092,31 @@
 	dw CeladonCity_MapEventHeader
 
 	; connections
-	db 3
-; 0x9548c
+	db WEST | EAST
 
-INCBIN "baserom.gbc",$9548c,$18
+	; WEST to Route 16
+	db GROUP_ROUTE_16, MAP_ROUTE_16 ; connected map (group, id)
+	dw (Route16_BlockData + ROUTE_16_WIDTH - 3) ; strip pointer
+	dw $c938 ; strip destination
+	db 9, ROUTE_16_WIDTH ; (connection strip length, connected map width)
+	db 238, ((ROUTE_16_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 19) ; window
 
+	; EAST to Route 7
+	db GROUP_ROUTE_7, MAP_ROUTE_7 ; connected map (group, id)
+	dw (Route7_BlockData) ; strip pointer
+	dw $c8e7 ; strip destination
+	db 9, ROUTE_7_WIDTH ; (connection strip length, connected map width)
+	db 246, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_7_WIDTH) ; window
+; 0x954a4
+
 Route7_SecondMapHeader: ; 0x954a4
 	; border block
 	db $f
 
 	; height, width
-	db 9, 10
+	db ROUTE_7_HEIGHT, ROUTE_7_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route7_BlockData), Route7_BlockData
@@ -52448,17 +53128,31 @@
 	dw Route7_MapEventHeader
 
 	; connections
-	db 3
-; 0x954b0
+	db WEST | EAST
 
-INCBIN "baserom.gbc",$954b0,$18
+	; WEST to Celadon City
+	db GROUP_CELADON_CITY, MAP_CELADON_CITY ; connected map (group, id)
+	dw (CeladonCity_BlockData + 21 + (CELADON_CITY_HEIGHT * 2)) ; strip pointer
+	dw $c800 ; strip destination
+	db 15, CELADON_CITY_WIDTH ; (connection strip length, connected map width)
+	db 10, ((CELADON_CITY_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 39) ; window
 
+	; EAST to Saffron City
+	db GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY ; connected map (group, id)
+	dw (SaffronCity_BlockData + ((SAFFRON_CITY_HEIGHT - 12) * SAFFRON_CITY_WIDTH)) ; strip pointer
+	dw $c80d ; strip destination
+	db 12, SAFFRON_CITY_WIDTH ; (connection strip length, connected map width)
+	db 18, 0 ; yoffset, xoffset
+	dw ($C807 + SAFFRON_CITY_WIDTH) ; window
+; 0x954c8
+
 Route15_SecondMapHeader: ; 0x954c8
 	; border block
 	db $f
 
 	; height, width
-	db 9, 20
+	db ROUTE_15_HEIGHT, ROUTE_15_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route15_BlockData), Route15_BlockData
@@ -52470,17 +53164,31 @@
 	dw Route15_MapEventHeader
 
 	; connections
-	db 3
-; 0x954d4
+	db WEST | EAST
 
-INCBIN "baserom.gbc",$954d4,$18
+	; WEST to Fuchsia City
+	db GROUP_FUCHSIA_CITY, MAP_FUCHSIA_CITY ; connected map (group, id)
+	dw (FuchsiaCity_BlockData + (((FUCHSIA_CITY_HEIGHT - ROUTE_15_HEIGHT) * FUCHSIA_CITY_WIDTH) - (FUCHSIA_CITY_WIDTH * 3) + (FUCHSIA_CITY_WIDTH - 1) - 2)) ; strip pointer
+	dw $c800 ; strip destination
+	db 12, FUCHSIA_CITY_WIDTH ; (connection strip length, connected map width)
+	db 18, ((FUCHSIA_CITY_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 39) ; window
 
+	; EAST to Route 14
+	db GROUP_ROUTE_14, MAP_ROUTE_14 ; connected map (group, id)
+	dw (Route14_BlockData + ((ROUTE_14_HEIGHT - 12) * ROUTE_14_WIDTH)) ; strip pointer
+	dw $c817 ; strip destination
+	db 12, ROUTE_14_WIDTH ; (connection strip length, connected map width)
+	db 18, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_14_WIDTH) ; window
+; 0x954ec
+
 Route14_SecondMapHeader: ; 0x954ec
 	; border block
 	db $43
 
 	; height, width
-	db 18, 10
+	db ROUTE_14_HEIGHT, ROUTE_14_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route14_BlockData), Route14_BlockData
@@ -52492,17 +53200,31 @@
 	dw Route14_MapEventHeader
 
 	; connections
-	db 10
-; 0x954f8
+	db NORTH | WEST
 
-INCBIN "baserom.gbc",$954f8,$18
+	; NORTH to Route 13
+	db GROUP_ROUTE_13, MAP_ROUTE_13 ; connected map (group, id)
+	dw (Route13_BlockData + (ROUTE_13_HEIGHT * ROUTE_13_WIDTH) - (ROUTE_13_WIDTH * 3)) ; strip pointer
+	dw ($C703 + 256) ; strip destination
+	db 13, ROUTE_13_WIDTH ; (connection strip length, connected map width)
+	db ((ROUTE_13_HEIGHT * 2) - 1), 0 ; yoffset, xoffset
+	dw ($C801 + ((ROUTE_13_HEIGHT * 6) + (ROUTE_13_HEIGHT * ROUTE_13_WIDTH))) ; window
 
+	; WEST to Route 15
+	db GROUP_ROUTE_15, MAP_ROUTE_15 ; connected map (group, id)
+	dw (Route15_BlockData + ROUTE_15_WIDTH - 3) ; strip pointer
+	dw $c8c0 ; strip destination
+	db 9, ROUTE_15_WIDTH ; (connection strip length, connected map width)
+	db 238, ((ROUTE_15_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 39) ; window
+; 0x95510
+
 Route13_SecondMapHeader: ; 0x95510
 	; border block
 	db $43
 
 	; height, width
-	db 9, 30
+	db ROUTE_13_HEIGHT, ROUTE_13_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route13_BlockData), Route13_BlockData
@@ -52514,17 +53236,31 @@
 	dw Route13_MapEventHeader
 
 	; connections
-	db 12
-; 0x9551c
+	db NORTH | SOUTH
 
-INCBIN "baserom.gbc",$9551c,$95534 - $9551c
+	; NORTH to Route 12
+	db GROUP_ROUTE_12, MAP_ROUTE_12 ; connected map (group, id)
+	dw (Route12_BlockData + (ROUTE_12_HEIGHT * ROUTE_12_WIDTH) - (ROUTE_12_WIDTH * 3)) ; strip pointer
+	dw ($C703 + 276) ; strip destination
+	db 10, ROUTE_12_WIDTH ; (connection strip length, connected map width)
+	db ((ROUTE_12_HEIGHT * 2) - 1), 216 ; yoffset, xoffset
+	dw ($C801 + ((ROUTE_12_HEIGHT * 6) + (ROUTE_12_HEIGHT * ROUTE_12_WIDTH))) ; window
 
+	; SOUTH to Route 14
+	db GROUP_ROUTE_14, MAP_ROUTE_14 ; connected map (group, id)
+	dw (Route14_BlockData) ; strip pointer
+	dw ($C703 + 256 + ((ROUTE_13_HEIGHT + 3) * (ROUTE_13_WIDTH + 6))) ; strip destination
+	db 10, ROUTE_14_WIDTH ; (connection strip length, connected map width)
+	db 0, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_14_WIDTH) ; window
+; 0x95534
+
 Route12_SecondMapHeader: ; 0x95534
 	; border block
 	db $43
 
 	; height, width
-	db 27, 10
+	db ROUTE_12_HEIGHT, ROUTE_12_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route12_BlockData), Route12_BlockData
@@ -52536,17 +53272,39 @@
 	dw Route12_MapEventHeader
 
 	; connections
-	db 14
-; 0x95540
+	db NORTH | SOUTH | WEST
 
-INCBIN "baserom.gbc",$95540,$24
+	; NORTH to Lavender Town
+	db GROUP_LAVENDER_TOWN, MAP_LAVENDER_TOWN ; connected map (group, id)
+	dw (LavenderTown_BlockData + (LAVENDER_TOWN_HEIGHT * LAVENDER_TOWN_WIDTH) - (LAVENDER_TOWN_WIDTH * 3)) ; strip pointer
+	dw ($C703 + 256) ; strip destination
+	db 10, LAVENDER_TOWN_WIDTH ; (connection strip length, connected map width)
+	db ((LAVENDER_TOWN_HEIGHT * 2) - 1), 0 ; yoffset, xoffset
+	dw ($C801 + ((LAVENDER_TOWN_HEIGHT * 6) + (LAVENDER_TOWN_HEIGHT * LAVENDER_TOWN_WIDTH))) ; window
 
+	; SOUTH to Route 13
+	db GROUP_ROUTE_13, MAP_ROUTE_13 ; connected map (group, id)
+	dw (Route13_BlockData + (((40 - 13 + ROUTE_12_WIDTH) / 2) - 1)) ; strip pointer
+	dw ($C703 + 253 + ((ROUTE_12_HEIGHT + 3) * (ROUTE_12_WIDTH + 6))) ; strip destination
+	db 13, ROUTE_13_WIDTH ; (connection strip length, connected map width)
+	db 0, 40 ; yoffset, xoffset
+	dw ($C807 + ROUTE_13_WIDTH) ; window
+
+	; WEST to Route 11
+	db GROUP_ROUTE_11, MAP_ROUTE_11 ; connected map (group, id)
+	dw (Route11_BlockData + ROUTE_11_WIDTH - 3) ; strip pointer
+	dw $c8c0 ; strip destination
+	db 9, ROUTE_11_WIDTH ; (connection strip length, connected map width)
+	db 238, ((ROUTE_11_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 39) ; window
+; 0x95564
+
 Route11_SecondMapHeader: ; 0x95564
 	; border block
 	db $f
 
 	; height, width
-	db 9, 20
+	db ROUTE_11_HEIGHT, ROUTE_11_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route11_BlockData), Route11_BlockData
@@ -52558,17 +53316,31 @@
 	dw Route11_MapEventHeader
 
 	; connections
-	db 3
-; 0x95570
+	db WEST | EAST
 
-INCBIN "baserom.gbc",$95570,$95588 - $95570
+	; WEST to Vermilion City
+	db GROUP_VERMILION_CITY, MAP_VERMILION_CITY ; connected map (group, id)
+	dw (VermilionCity_BlockData + VERMILION_CITY_WIDTH - 3) ; strip pointer
+	dw $c84e ; strip destination
+	db 12, VERMILION_CITY_WIDTH ; (connection strip length, connected map width)
+	db 0, ((VERMILION_CITY_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 39) ; window
 
+	; EAST to Route 12
+	db GROUP_ROUTE_12, MAP_ROUTE_12 ; connected map (group, id)
+	dw (Route12_BlockData + 100 - (ROUTE_12_WIDTH * 4)) ; strip pointer
+	dw $c817 ; strip destination
+	db 15, ROUTE_12_WIDTH ; (connection strip length, connected map width)
+	db 18, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_12_WIDTH) ; window
+; 0x95588
+
 LavenderTown_SecondMapHeader: ; 0x95588
 	; border block
 	db $2c
 
 	; height, width
-	db 9, 10
+	db LAVENDER_TOWN_HEIGHT, LAVENDER_TOWN_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(LavenderTown_BlockData), LavenderTown_BlockData
@@ -52580,17 +53352,39 @@
 	dw LavenderTown_MapEventHeader
 
 	; connections
-	db 14
-; 0x95594
+	db NORTH | SOUTH | WEST
 
-INCBIN "baserom.gbc",$95594,$24
+	; NORTH to Route 10 South
+	db GROUP_ROUTE_10_SOUTH, MAP_ROUTE_10_SOUTH ; connected map (group, id)
+	dw (Route10South_BlockData + (ROUTE_10_SOUTH_HEIGHT * ROUTE_10_SOUTH_WIDTH) - (ROUTE_10_SOUTH_WIDTH * 3)) ; strip pointer
+	dw ($C703 + 256) ; strip destination
+	db 10, ROUTE_10_SOUTH_WIDTH ; (connection strip length, connected map width)
+	db ((ROUTE_10_SOUTH_HEIGHT * 2) - 1), 0 ; yoffset, xoffset
+	dw ($C801 + ((ROUTE_10_SOUTH_HEIGHT * 6) + (ROUTE_10_SOUTH_HEIGHT * ROUTE_10_SOUTH_WIDTH))) ; window
 
+	; SOUTH to Route 12
+	db GROUP_ROUTE_12, MAP_ROUTE_12 ; connected map (group, id)
+	dw (Route12_BlockData) ; strip pointer
+	dw ($C703 + 256 + ((LAVENDER_TOWN_HEIGHT + 3) * (LAVENDER_TOWN_WIDTH + 6))) ; strip destination
+	db 10, ROUTE_12_WIDTH ; (connection strip length, connected map width)
+	db 0, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_12_WIDTH) ; window
+
+	; WEST to Route 8
+	db GROUP_ROUTE_8, MAP_ROUTE_8 ; connected map (group, id)
+	dw (Route8_BlockData + ROUTE_8_WIDTH - 3) ; strip pointer
+	dw $c830 ; strip destination
+	db 9, ROUTE_8_WIDTH ; (connection strip length, connected map width)
+	db 0, ((ROUTE_8_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 39) ; window
+; 0x955b8
+
 VermilionCity_SecondMapHeader: ; 0x955b8
 	; border block
 	db $43
 
 	; height, width
-	db 18, 20
+	db VERMILION_CITY_HEIGHT, VERMILION_CITY_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(VermilionCity_BlockData), VermilionCity_BlockData
@@ -52602,17 +53396,31 @@
 	dw VermilionCity_MapEventHeader
 
 	; connections
-	db 9
-; 0x955c4
+	db NORTH | EAST
 
-INCBIN "baserom.gbc",$955c4,$18
+	; NORTH to Route 6
+	db GROUP_ROUTE_6, MAP_ROUTE_6 ; connected map (group, id)
+	dw (Route6_BlockData + (ROUTE_6_HEIGHT * ROUTE_6_WIDTH) - (ROUTE_6_WIDTH * 3)) ; strip pointer
+	dw ($C703 + 261) ; strip destination
+	db 10, ROUTE_6_WIDTH ; (connection strip length, connected map width)
+	db ((ROUTE_6_HEIGHT * 2) - 1), 246 ; yoffset, xoffset
+	dw ($C801 + ((ROUTE_6_HEIGHT * 6) + (ROUTE_6_HEIGHT * ROUTE_6_WIDTH))) ; window
 
+	; EAST to Route 11
+	db GROUP_ROUTE_11, MAP_ROUTE_11 ; connected map (group, id)
+	dw (Route11_BlockData) ; strip pointer
+	dw $c865 ; strip destination
+	db 9, ROUTE_11_WIDTH ; (connection strip length, connected map width)
+	db 0, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_11_WIDTH) ; window
+; 0x955dc
+
 Route6_SecondMapHeader: ; 0x955dc
 	; border block
 	db $f
 
 	; height, width
-	db 9, 10
+	db ROUTE_6_HEIGHT, ROUTE_6_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route6_BlockData), Route6_BlockData
@@ -52624,17 +53432,31 @@
 	dw Route6_MapEventHeader
 
 	; connections
-	db 12
-; 0x955e8
+	db NORTH | SOUTH
 
-INCBIN "baserom.gbc",$955e8,$95600 - $955e8
+	; NORTH to Saffron City
+	db GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY ; connected map (group, id)
+	dw (SaffronCity_BlockData + SAFFRON_CITY_WIDTH + 10 + (16 * SAFFRON_CITY_HEIGHT) - 16) ; strip pointer
+	dw ($C703 + 253) ; strip destination
+	db 16, SAFFRON_CITY_WIDTH ; (connection strip length, connected map width)
+	db ((SAFFRON_CITY_HEIGHT * 2) - 1), 10 ; yoffset, xoffset
+	dw ($C801 + ((SAFFRON_CITY_HEIGHT * 6) + (SAFFRON_CITY_HEIGHT * SAFFRON_CITY_WIDTH))) ; window
 
+	; SOUTH to Vermilion City
+	db GROUP_VERMILION_CITY, MAP_VERMILION_CITY ; connected map (group, id)
+	dw (VermilionCity_BlockData + ((10 - 16 + ROUTE_6_WIDTH) / 2)) ; strip pointer
+	dw ($C703 + 253 + ((ROUTE_6_HEIGHT + 3) * (ROUTE_6_WIDTH + 6))) ; strip destination
+	db 16, VERMILION_CITY_WIDTH ; (connection strip length, connected map width)
+	db 0, 10 ; yoffset, xoffset
+	dw ($C807 + VERMILION_CITY_WIDTH) ; window
+; 0x95600
+
 SaffronCity_SecondMapHeader: ; 0x95600
 	; border block
 	db $f
 
 	; height, width
-	db 18, 20
+	db SAFFRON_CITY_HEIGHT, SAFFRON_CITY_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SaffronCity_BlockData), SaffronCity_BlockData
@@ -52646,17 +53468,47 @@
 	dw SaffronCity_MapEventHeader
 
 	; connections
-	db 15
-; 0x9560c
+	db NORTH | SOUTH | WEST | EAST
 
-INCBIN "baserom.gbc",$9560c,$30
+	; NORTH to Route 5
+	db GROUP_ROUTE_5, MAP_ROUTE_5 ; connected map (group, id)
+	dw (Route5_BlockData + (ROUTE_5_HEIGHT * ROUTE_5_WIDTH) - (ROUTE_5_WIDTH * 3)) ; strip pointer
+	dw ($C703 + 261) ; strip destination
+	db 10, ROUTE_5_WIDTH ; (connection strip length, connected map width)
+	db ((ROUTE_5_HEIGHT * 2) - 1), 246 ; yoffset, xoffset
+	dw ($C801 + ((ROUTE_5_HEIGHT * 6) + (ROUTE_5_HEIGHT * ROUTE_5_WIDTH))) ; window
 
+	; SOUTH to Route 6
+	db GROUP_ROUTE_6, MAP_ROUTE_6 ; connected map (group, id)
+	dw (Route6_BlockData) ; strip pointer
+	dw ($C703 + 261 + ((SAFFRON_CITY_HEIGHT + 3) * (SAFFRON_CITY_WIDTH + 6))) ; strip destination
+	db 10, ROUTE_6_WIDTH ; (connection strip length, connected map width)
+	db 0, 246 ; yoffset, xoffset
+	dw ($C807 + ROUTE_6_WIDTH) ; window
+
+	; WEST to Route 7
+	db GROUP_ROUTE_7, MAP_ROUTE_7 ; connected map (group, id)
+	dw (Route7_BlockData + ROUTE_7_WIDTH - 3) ; strip pointer
+	dw $c938 ; strip destination
+	db 9, ROUTE_7_WIDTH ; (connection strip length, connected map width)
+	db 238, ((ROUTE_7_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 19) ; window
+
+	; EAST to Route 8
+	db GROUP_ROUTE_8, MAP_ROUTE_8 ; connected map (group, id)
+	dw (Route8_BlockData) ; strip pointer
+	dw $c94f ; strip destination
+	db 9, ROUTE_8_WIDTH ; (connection strip length, connected map width)
+	db 238, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_8_WIDTH) ; window
+; 0x9563c
+
 Route5_SecondMapHeader: ; 0x9563c
 	; border block
 	db $f
 
 	; height, width
-	db 9, 10
+	db ROUTE_5_HEIGHT, ROUTE_5_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route5_BlockData), Route5_BlockData
@@ -52668,17 +53520,31 @@
 	dw Route5_MapEventHeader
 
 	; connections
-	db 12
-; 0x95648
+	db NORTH | SOUTH
 
-INCBIN "baserom.gbc",$95648,$18
+	; NORTH to Cerulean City
+	db GROUP_CERULEAN_CITY, MAP_CERULEAN_CITY ; connected map (group, id)
+	dw (CeruleanCity_BlockData + CERULEAN_CITY_WIDTH + 10 + (16 * CERULEAN_CITY_HEIGHT) - 16) ; strip pointer
+	dw ($C703 + 253) ; strip destination
+	db 16, CERULEAN_CITY_WIDTH ; (connection strip length, connected map width)
+	db ((CERULEAN_CITY_HEIGHT * 2) - 1), 10 ; yoffset, xoffset
+	dw ($C801 + ((CERULEAN_CITY_HEIGHT * 6) + (CERULEAN_CITY_HEIGHT * CERULEAN_CITY_WIDTH))) ; window
 
+	; SOUTH to Saffron City
+	db GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY ; connected map (group, id)
+	dw (SaffronCity_BlockData + ((10 - 16 + ROUTE_5_WIDTH) / 2)) ; strip pointer
+	dw ($C703 + 253 + ((ROUTE_5_HEIGHT + 3) * (ROUTE_5_WIDTH + 6))) ; strip destination
+	db 16, SAFFRON_CITY_WIDTH ; (connection strip length, connected map width)
+	db 0, 10 ; yoffset, xoffset
+	dw ($C807 + SAFFRON_CITY_WIDTH) ; window
+; 0x95660
+
 CeruleanCity_SecondMapHeader: ; 0x95660
 	; border block
 	db $f
 
 	; height, width
-	db 18, 20
+	db CERULEAN_CITY_HEIGHT, CERULEAN_CITY_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(CeruleanCity_BlockData), CeruleanCity_BlockData
@@ -52690,17 +53556,47 @@
 	dw CeruleanCity_MapEventHeader
 
 	; connections
-	db 15
-; 0x9566c
+	db NORTH | SOUTH | WEST | EAST
 
-INCBIN "baserom.gbc",$9566c,$30
+	; NORTH to Route 24
+	db GROUP_ROUTE_24, MAP_ROUTE_24 ; connected map (group, id)
+	dw (Route24_BlockData + (ROUTE_24_HEIGHT * ROUTE_24_WIDTH) - (ROUTE_24_WIDTH * 3)) ; strip pointer
+	dw ($C703 + 262) ; strip destination
+	db 10, ROUTE_24_WIDTH ; (connection strip length, connected map width)
+	db ((ROUTE_24_HEIGHT * 2) - 1), 244 ; yoffset, xoffset
+	dw ($C801 + ((ROUTE_24_HEIGHT * 6) + (ROUTE_24_HEIGHT * ROUTE_24_WIDTH))) ; window
 
+	; SOUTH to Route 5
+	db GROUP_ROUTE_5, MAP_ROUTE_5 ; connected map (group, id)
+	dw (Route5_BlockData) ; strip pointer
+	dw ($C703 + 261 + ((CERULEAN_CITY_HEIGHT + 3) * (CERULEAN_CITY_WIDTH + 6))) ; strip destination
+	db 10, ROUTE_5_WIDTH ; (connection strip length, connected map width)
+	db 0, 246 ; yoffset, xoffset
+	dw ($C807 + ROUTE_5_WIDTH) ; window
+
+	; WEST to Route 4
+	db GROUP_ROUTE_4, MAP_ROUTE_4 ; connected map (group, id)
+	dw (Route4_BlockData + ROUTE_4_WIDTH - 3) ; strip pointer
+	dw $c8d0 ; strip destination
+	db 9, ROUTE_4_WIDTH ; (connection strip length, connected map width)
+	db 246, ((ROUTE_4_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 39) ; window
+
+	; EAST to Route 9
+	db GROUP_ROUTE_9, MAP_ROUTE_9 ; connected map (group, id)
+	dw (Route9_BlockData) ; strip pointer
+	dw $c94f ; strip destination
+	db 9, ROUTE_9_WIDTH ; (connection strip length, connected map width)
+	db 238, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_9_WIDTH) ; window
+; 0x9569c
+
 Route9_SecondMapHeader: ; 0x9569c
 	; border block
 	db $2c
 
 	; height, width
-	db 9, 30
+	db ROUTE_9_HEIGHT, ROUTE_9_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route9_BlockData), Route9_BlockData
@@ -52712,17 +53608,31 @@
 	dw Route9_MapEventHeader
 
 	; connections
-	db 6
-; 0x956a8
+	db SOUTH | WEST
 
-INCBIN "baserom.gbc",$956a8,$956c0 - $956a8
+	; SOUTH to Route 10 North
+	db GROUP_ROUTE_10_NORTH, MAP_ROUTE_10_NORTH ; connected map (group, id)
+	dw (Route10North_BlockData) ; strip pointer
+	dw ($C703 + 276 + ((ROUTE_9_HEIGHT + 3) * (ROUTE_9_WIDTH + 6))) ; strip destination
+	db 10, ROUTE_10_NORTH_WIDTH ; (connection strip length, connected map width)
+	db 0, 216 ; yoffset, xoffset
+	dw ($C807 + ROUTE_10_NORTH_WIDTH) ; window
 
+	; WEST to Cerulean City
+	db GROUP_CERULEAN_CITY, MAP_CERULEAN_CITY ; connected map (group, id)
+	dw (CeruleanCity_BlockData + (((CERULEAN_CITY_HEIGHT - ROUTE_9_HEIGHT) * CERULEAN_CITY_WIDTH) - (CERULEAN_CITY_WIDTH * 3) + (CERULEAN_CITY_WIDTH - 1) - 2)) ; strip pointer
+	dw $c800 ; strip destination
+	db 12, CERULEAN_CITY_WIDTH ; (connection strip length, connected map width)
+	db 18, ((CERULEAN_CITY_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 39) ; window
+; 0x956c0
+
 Route24_SecondMapHeader: ; 0x956c0
 	; border block
 	db $2c
 
 	; height, width
-	db 9, 10
+	db ROUTE_24_HEIGHT, ROUTE_24_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route24_BlockData), Route24_BlockData
@@ -52734,17 +53644,31 @@
 	dw Route24_MapEventHeader
 
 	; connections
-	db 12
-; 0x956cc
+	db NORTH | SOUTH
 
-INCBIN "baserom.gbc",$956cc,$956e4 - $956cc
+	; NORTH to Route 25
+	db GROUP_ROUTE_25, MAP_ROUTE_25 ; connected map (group, id)
+	dw (Route25_BlockData + (ROUTE_25_HEIGHT * ROUTE_25_WIDTH) - (ROUTE_25_WIDTH * 3)) ; strip pointer
+	dw ($C703 + 256) ; strip destination
+	db 13, ROUTE_25_WIDTH ; (connection strip length, connected map width)
+	db ((ROUTE_25_HEIGHT * 2) - 1), 0 ; yoffset, xoffset
+	dw ($C801 + ((ROUTE_25_HEIGHT * 6) + (ROUTE_25_HEIGHT * ROUTE_25_WIDTH))) ; window
 
+	; SOUTH to Cerulean City
+	db GROUP_CERULEAN_CITY, MAP_CERULEAN_CITY ; connected map (group, id)
+	dw (CeruleanCity_BlockData + ((12 - 16 + ROUTE_24_WIDTH) / 2)) ; strip pointer
+	dw ($C703 + 253 + ((ROUTE_24_HEIGHT + 3) * (ROUTE_24_WIDTH + 6))) ; strip destination
+	db 16, CERULEAN_CITY_WIDTH ; (connection strip length, connected map width)
+	db 0, 12 ; yoffset, xoffset
+	dw ($C807 + CERULEAN_CITY_WIDTH) ; window
+; 0x956e4
+
 Route25_SecondMapHeader: ; 0x956e4
 	; border block
 	db $2c
 
 	; height, width
-	db 9, 30
+	db ROUTE_25_HEIGHT, ROUTE_25_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route25_BlockData), Route25_BlockData
@@ -52756,10 +53680,16 @@
 	dw Route25_MapEventHeader
 
 	; connections
-	db 4
-; 0x956f0
+	db SOUTH
 
-INCBIN "baserom.gbc",$956f0,$956fc - $956f0
+	; SOUTH to Route 24
+	db GROUP_ROUTE_24, MAP_ROUTE_24 ; connected map (group, id)
+	dw (Route24_BlockData) ; strip pointer
+	dw ($C703 + 256 + ((ROUTE_25_HEIGHT + 3) * (ROUTE_25_WIDTH + 6))) ; strip destination
+	db 10, ROUTE_24_WIDTH ; (connection strip length, connected map width)
+	db 0, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_24_WIDTH) ; window
+; 0x956fc
 
 Route3_SecondMapHeader: ; 0x956fc
 	; border block
@@ -52766,7 +53696,7 @@
 	db $2c
 
 	; height, width
-	db 9, 30
+	db ROUTE_3_HEIGHT, ROUTE_3_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route3_BlockData), Route3_BlockData
@@ -52778,17 +53708,31 @@
 	dw Route3_MapEventHeader
 
 	; connections
-	db 3
-; 0x95708
+	db WEST | EAST
 
-INCBIN "baserom.gbc",$95708,$18
+	; WEST to Pewter City
+	db GROUP_PEWTER_CITY, MAP_PEWTER_CITY ; connected map (group, id)
+	dw (PewterCity_BlockData + 21 + (PEWTER_CITY_HEIGHT * 2)) ; strip pointer
+	dw $c800 ; strip destination
+	db 15, PEWTER_CITY_WIDTH ; (connection strip length, connected map width)
+	db 10, ((PEWTER_CITY_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 39) ; window
 
+	; EAST to Route 4
+	db GROUP_ROUTE_4, MAP_ROUTE_4 ; connected map (group, id)
+	dw (Route4_BlockData) ; strip pointer
+	dw $c88d ; strip destination
+	db 9, ROUTE_4_WIDTH ; (connection strip length, connected map width)
+	db 0, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_4_WIDTH) ; window
+; 0x95720
+
 Route4_SecondMapHeader: ; 0x95720
 	; border block
 	db $2c
 
 	; height, width
-	db 9, 20
+	db ROUTE_4_HEIGHT, ROUTE_4_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route4_BlockData), Route4_BlockData
@@ -52800,17 +53744,31 @@
 	dw Route4_MapEventHeader
 
 	; connections
-	db 3
-; 0x9572c
+	db WEST | EAST
 
-INCBIN "baserom.gbc",$9572c,$95744 - $9572c
+	; WEST to Route 3
+	db GROUP_ROUTE_3, MAP_ROUTE_3 ; connected map (group, id)
+	dw (Route3_BlockData + ROUTE_3_WIDTH - 3) ; strip pointer
+	dw $c84e ; strip destination
+	db 9, ROUTE_3_WIDTH ; (connection strip length, connected map width)
+	db 0, ((ROUTE_3_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 59) ; window
 
+	; EAST to Cerulean City
+	db GROUP_CERULEAN_CITY, MAP_CERULEAN_CITY ; connected map (group, id)
+	dw (CeruleanCity_BlockData + ((100 - (CERULEAN_CITY_WIDTH * 4)) * 2)) ; strip pointer
+	dw $c817 ; strip destination
+	db 15, CERULEAN_CITY_WIDTH ; (connection strip length, connected map width)
+	db 10, 0 ; yoffset, xoffset
+	dw ($C807 + CERULEAN_CITY_WIDTH) ; window
+; 0x95744
+
 Route8_SecondMapHeader: ; 0x95744
 	; border block
 	db $2c
 
 	; height, width
-	db 9, 20
+	db ROUTE_8_HEIGHT, ROUTE_8_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route8_BlockData), Route8_BlockData
@@ -52822,17 +53780,31 @@
 	dw Route8_MapEventHeader
 
 	; connections
-	db 3
-; 0x95750
+	db WEST | EAST
 
-INCBIN "baserom.gbc",$95750,$18
+	; WEST to Saffron City
+	db GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY ; connected map (group, id)
+	dw (SaffronCity_BlockData + (((SAFFRON_CITY_HEIGHT - ROUTE_8_HEIGHT) * SAFFRON_CITY_WIDTH) - (SAFFRON_CITY_WIDTH * 3) + (SAFFRON_CITY_WIDTH - 1) - 2)) ; strip pointer
+	dw $c800 ; strip destination
+	db 12, SAFFRON_CITY_WIDTH ; (connection strip length, connected map width)
+	db 18, ((SAFFRON_CITY_WIDTH * 2) - 1) ; yoffset, xoffset
+	dw ($C807 + 39) ; window
 
+	; EAST to Lavender Town
+	db GROUP_LAVENDER_TOWN, MAP_LAVENDER_TOWN ; connected map (group, id)
+	dw (LavenderTown_BlockData) ; strip pointer
+	dw $c865 ; strip destination
+	db 9, LAVENDER_TOWN_WIDTH ; (connection strip length, connected map width)
+	db 0, 0 ; yoffset, xoffset
+	dw ($C807 + LAVENDER_TOWN_WIDTH) ; window
+; 0x95768
+
 Route10North_SecondMapHeader: ; 0x95768
 	; border block
 	db $2c
 
 	; height, width
-	db 9, 10
+	db ROUTE_10_NORTH_HEIGHT, ROUTE_10_NORTH_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route10North_BlockData), Route10North_BlockData
@@ -52844,17 +53816,31 @@
 	dw Route10North_MapEventHeader
 
 	; connections
-	db 12
-; 0x95774
+	db NORTH | SOUTH
 
-INCBIN "baserom.gbc",$95774,$9578c - $95774
+	; NORTH to Route 9
+	db GROUP_ROUTE_9, MAP_ROUTE_9 ; connected map (group, id)
+	dw $7eae ; strip pointer
+	dw ($C703 + 253) ; strip destination
+	db 13, ROUTE_9_WIDTH ; (connection strip length, connected map width)
+	db ((ROUTE_9_HEIGHT * 2) - 1), 40 ; yoffset, xoffset
+	dw ($C801 + ((ROUTE_9_HEIGHT * 6) + (ROUTE_9_HEIGHT * ROUTE_9_WIDTH))) ; window
 
+	; SOUTH to Route 10 South
+	db GROUP_ROUTE_10_SOUTH, MAP_ROUTE_10_SOUTH ; connected map (group, id)
+	dw (Route10South_BlockData) ; strip pointer
+	dw ($C703 + 256 + ((ROUTE_10_NORTH_HEIGHT + 3) * (ROUTE_10_NORTH_WIDTH + 6))) ; strip destination
+	db 10, ROUTE_10_SOUTH_WIDTH ; (connection strip length, connected map width)
+	db 0, 0 ; yoffset, xoffset
+	dw ($C807 + ROUTE_10_SOUTH_WIDTH) ; window
+; 0x9578c
+
 Route10South_SecondMapHeader: ; 0x9578c
 	; border block
 	db $2c
 
 	; height, width
-	db 9, 10
+	db ROUTE_10_SOUTH_HEIGHT, ROUTE_10_SOUTH_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route10South_BlockData), Route10South_BlockData
@@ -52866,17 +53852,31 @@
 	dw Route10South_MapEventHeader
 
 	; connections
-	db 12
-; 0x95798
+	db NORTH | SOUTH
 
-INCBIN "baserom.gbc",$95798,$18
+	; NORTH to Route 10 North
+	db GROUP_ROUTE_10_NORTH, MAP_ROUTE_10_NORTH ; connected map (group, id)
+	dw (Route10North_BlockData + (ROUTE_10_NORTH_HEIGHT * ROUTE_10_NORTH_WIDTH) - (ROUTE_10_NORTH_WIDTH * 3)) ; strip pointer
+	dw ($C703 + 256) ; strip destination
+	db 10, ROUTE_10_NORTH_WIDTH ; (connection strip length, connected map width)
+	db ((ROUTE_10_NORTH_HEIGHT * 2) - 1), 0 ; yoffset, xoffset
+	dw ($C801 + ((ROUTE_10_NORTH_HEIGHT * 6) + (ROUTE_10_NORTH_HEIGHT * ROUTE_10_NORTH_WIDTH))) ; window
 
+	; SOUTH to Lavender Town
+	db GROUP_LAVENDER_TOWN, MAP_LAVENDER_TOWN ; connected map (group, id)
+	dw (LavenderTown_BlockData) ; strip pointer
+	dw ($C703 + 256 + ((ROUTE_10_SOUTH_HEIGHT + 3) * (ROUTE_10_SOUTH_WIDTH + 6))) ; strip destination
+	db 10, LAVENDER_TOWN_WIDTH ; (connection strip length, connected map width)
+	db 0, 0 ; yoffset, xoffset
+	dw ($C807 + LAVENDER_TOWN_WIDTH) ; window
+; 0x957b0
+
 Route23_SecondMapHeader: ; 0x957b0
 	; border block
 	db $f
 
 	; height, width
-	db 9, 10
+	db ROUTE_23_HEIGHT, ROUTE_23_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route23_BlockData), Route23_BlockData
@@ -52896,7 +53896,7 @@
 	db $0
 
 	; height, width
-	db 8, 10
+	db SPROUT_TOWER_1F_HEIGHT, SPROUT_TOWER_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SproutTower1F_BlockData), SproutTower1F_BlockData
@@ -52916,7 +53916,7 @@
 	db $0
 
 	; height, width
-	db 8, 10
+	db SPROUT_TOWER_2F_HEIGHT, SPROUT_TOWER_2F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SproutTower2F_BlockData), SproutTower2F_BlockData
@@ -52936,7 +53936,7 @@
 	db $0
 
 	; height, width
-	db 8, 10
+	db SPROUT_TOWER_3F_HEIGHT, SPROUT_TOWER_3F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SproutTower3F_BlockData), SproutTower3F_BlockData
@@ -52956,7 +53956,7 @@
 	db $0
 
 	; height, width
-	db 9, 10
+	db TIN_TOWER_1F_HEIGHT, TIN_TOWER_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(TinTower1F_BlockData), TinTower1F_BlockData
@@ -52976,7 +53976,7 @@
 	db $0
 
 	; height, width
-	db 9, 10
+	db TIN_TOWER_2F_HEIGHT, TIN_TOWER_2F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(TinTower2F_BlockData), TinTower2F_BlockData
@@ -52996,7 +53996,7 @@
 	db $0
 
 	; height, width
-	db 9, 10
+	db TIN_TOWER_3F_HEIGHT, TIN_TOWER_3F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(TinTower3F_BlockData), TinTower3F_BlockData
@@ -53016,7 +54016,7 @@
 	db $0
 
 	; height, width
-	db 9, 10
+	db TIN_TOWER_4F_HEIGHT, TIN_TOWER_4F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(TinTower4F_BlockData), TinTower4F_BlockData
@@ -53036,7 +54036,7 @@
 	db $0
 
 	; height, width
-	db 9, 10
+	db TIN_TOWER_5F_HEIGHT, TIN_TOWER_5F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(TinTower5F_BlockData), TinTower5F_BlockData
@@ -53056,7 +54056,7 @@
 	db $0
 
 	; height, width
-	db 9, 10
+	db TIN_TOWER_6F_HEIGHT, TIN_TOWER_6F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(TinTower6F_BlockData), TinTower6F_BlockData
@@ -53076,7 +54076,7 @@
 	db $0
 
 	; height, width
-	db 9, 10
+	db TIN_TOWER_7F_HEIGHT, TIN_TOWER_7F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(TinTower7F_BlockData), TinTower7F_BlockData
@@ -53096,7 +54096,7 @@
 	db $0
 
 	; height, width
-	db 9, 10
+	db TIN_TOWER_8F_HEIGHT, TIN_TOWER_8F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(TinTower8F_BlockData), TinTower8F_BlockData
@@ -53116,7 +54116,7 @@
 	db $0
 
 	; height, width
-	db 9, 10
+	db TIN_TOWER_9F_HEIGHT, TIN_TOWER_9F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(TinTower9F_BlockData), TinTower9F_BlockData
@@ -53136,7 +54136,7 @@
 	db $0
 
 	; height, width
-	db 9, 10
+	db BURNED_TOWER_1F_HEIGHT, BURNED_TOWER_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(BurnedTower1F_BlockData), BurnedTower1F_BlockData
@@ -53156,7 +54156,7 @@
 	db $9
 
 	; height, width
-	db 9, 10
+	db BURNED_TOWER_B1F_HEIGHT, BURNED_TOWER_B1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(BurnedTowerB1F_BlockData), BurnedTowerB1F_BlockData
@@ -53176,7 +54176,7 @@
 	db $0
 
 	; height, width
-	db 27, 20
+	db NATIONAL_PARK_HEIGHT, NATIONAL_PARK_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(NationalPark_BlockData), NationalPark_BlockData
@@ -53196,7 +54196,7 @@
 	db $0
 
 	; height, width
-	db 27, 20
+	db NATIONAL_PARK_BUG_CONTEST_HEIGHT, NATIONAL_PARK_BUG_CONTEST_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(NationalPark_BlockData), NationalPark_BlockData
@@ -53216,7 +54216,7 @@
 	db $0
 
 	; height, width
-	db 4, 9
+	db RADIO_TOWER_1F_HEIGHT, RADIO_TOWER_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(RadioTower1F_BlockData), RadioTower1F_BlockData
@@ -53236,7 +54236,7 @@
 	db $0
 
 	; height, width
-	db 4, 9
+	db RADIO_TOWER_2F_HEIGHT, RADIO_TOWER_2F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(RadioTower2F_BlockData), RadioTower2F_BlockData
@@ -53256,7 +54256,7 @@
 	db $0
 
 	; height, width
-	db 4, 9
+	db RADIO_TOWER_3F_HEIGHT, RADIO_TOWER_3F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(RadioTower3F_BlockData), RadioTower3F_BlockData
@@ -53276,7 +54276,7 @@
 	db $0
 
 	; height, width
-	db 4, 9
+	db RADIO_TOWER_4F_HEIGHT, RADIO_TOWER_4F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(RadioTower4F_BlockData), RadioTower4F_BlockData
@@ -53296,7 +54296,7 @@
 	db $0
 
 	; height, width
-	db 4, 9
+	db RADIO_TOWER_5F_HEIGHT, RADIO_TOWER_5F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(RadioTower5F_BlockData), RadioTower5F_BlockData
@@ -53316,7 +54316,7 @@
 	db $5
 
 	; height, width
-	db 18, 10
+	db RUINS_OF_ALPH_OUTSIDE_HEIGHT, RUINS_OF_ALPH_OUTSIDE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(RuinsofAlphOutside_BlockData), RuinsofAlphOutside_BlockData
@@ -53336,7 +54336,7 @@
 	db $0
 
 	; height, width
-	db 5, 4
+	db RUINS_OF_ALPH_HO_OH_CHAMBER_HEIGHT, RUINS_OF_ALPH_HO_OH_CHAMBER_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(RuinsofAlphHoOhChamber_BlockData), RuinsofAlphHoOhChamber_BlockData
@@ -53356,7 +54356,7 @@
 	db $0
 
 	; height, width
-	db 5, 4
+	db RUINS_OF_ALPH_KABUTO_CHAMBER_HEIGHT, RUINS_OF_ALPH_KABUTO_CHAMBER_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(RuinsofAlphHoOhChamber_BlockData), RuinsofAlphHoOhChamber_BlockData
@@ -53376,7 +54376,7 @@
 	db $0
 
 	; height, width
-	db 5, 4
+	db RUINS_OF_ALPH_OMANYTE_CHAMBER_HEIGHT, RUINS_OF_ALPH_OMANYTE_CHAMBER_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(RuinsofAlphHoOhChamber_BlockData), RuinsofAlphHoOhChamber_BlockData
@@ -53396,7 +54396,7 @@
 	db $0
 
 	; height, width
-	db 5, 4
+	db RUINS_OF_ALPH_AERODACTYL_CHAMBER_HEIGHT, RUINS_OF_ALPH_AERODACTYL_CHAMBER_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(RuinsofAlphHoOhChamber_BlockData), RuinsofAlphHoOhChamber_BlockData
@@ -53416,7 +54416,7 @@
 	db $0
 
 	; height, width
-	db 14, 10
+	db RUINS_OF_ALPH_INNER_CHAMBER_HEIGHT, RUINS_OF_ALPH_INNER_CHAMBER_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(RuinsofAlphInnerChamber_BlockData), RuinsofAlphInnerChamber_BlockData
@@ -53436,7 +54436,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db RUINS_OF_ALPH_RESEARCH_CENTER_HEIGHT, RUINS_OF_ALPH_RESEARCH_CENTER_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(RuinsofAlphResearchCenter_BlockData), RuinsofAlphResearchCenter_BlockData
@@ -53456,7 +54456,7 @@
 	db $0
 
 	; height, width
-	db 5, 4
+	db RUINS_OF_ALPH_HO_OH_ITEM_ROOM_HEIGHT, RUINS_OF_ALPH_HO_OH_ITEM_ROOM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(RuinsofAlphHoOhItemRoom_BlockData), RuinsofAlphHoOhItemRoom_BlockData
@@ -53476,7 +54476,7 @@
 	db $0
 
 	; height, width
-	db 5, 4
+	db RUINS_OF_ALPH_KABUTO_ITEM_ROOM_HEIGHT, RUINS_OF_ALPH_KABUTO_ITEM_ROOM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(RuinsofAlphHoOhItemRoom_BlockData), RuinsofAlphHoOhItemRoom_BlockData
@@ -53496,7 +54496,7 @@
 	db $0
 
 	; height, width
-	db 5, 4
+	db RUINS_OF_ALPH_OMANYTE_ITEM_ROOM_HEIGHT, RUINS_OF_ALPH_OMANYTE_ITEM_ROOM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(RuinsofAlphHoOhItemRoom_BlockData), RuinsofAlphHoOhItemRoom_BlockData
@@ -53516,7 +54516,7 @@
 	db $0
 
 	; height, width
-	db 5, 4
+	db RUINS_OF_ALPH_AERODACTYL_ITEM_ROOM_HEIGHT, RUINS_OF_ALPH_AERODACTYL_ITEM_ROOM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(RuinsofAlphHoOhItemRoom_BlockData), RuinsofAlphHoOhItemRoom_BlockData
@@ -53536,7 +54536,7 @@
 	db $0
 
 	; height, width
-	db 12, 10
+	db RUINS_OF_ALPH_HO_OH_WORD_ROOM_HEIGHT, RUINS_OF_ALPH_HO_OH_WORD_ROOM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(RuinsofAlphHoOhWordRoom_BlockData), RuinsofAlphHoOhWordRoom_BlockData
@@ -53556,7 +54556,7 @@
 	db $0
 
 	; height, width
-	db 7, 10
+	db RUINS_OF_ALPH_KABUTO_WORD_ROOM_HEIGHT, RUINS_OF_ALPH_KABUTO_WORD_ROOM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(RuinsofAlphKabutoWordRoom_BlockData), RuinsofAlphKabutoWordRoom_BlockData
@@ -53576,7 +54576,7 @@
 	db $0
 
 	; height, width
-	db 8, 10
+	db RUINS_OF_ALPH_OMANYTE_WORD_ROOM_HEIGHT, RUINS_OF_ALPH_OMANYTE_WORD_ROOM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(RuinsofAlphOmanyteWordRoom_BlockData), RuinsofAlphOmanyteWordRoom_BlockData
@@ -53596,7 +54596,7 @@
 	db $0
 
 	; height, width
-	db 7, 10
+	db RUINS_OF_ALPH_AERODACTYL_WORD_ROOM_HEIGHT, RUINS_OF_ALPH_AERODACTYL_WORD_ROOM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(RuinsofAlphAerodactylWordRoom_BlockData), RuinsofAlphAerodactylWordRoom_BlockData
@@ -53616,7 +54616,7 @@
 	db $9
 
 	; height, width
-	db 18, 10
+	db UNION_CAVE_1F_HEIGHT, UNION_CAVE_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(UnionCave1F_BlockData), UnionCave1F_BlockData
@@ -53636,7 +54636,7 @@
 	db $9
 
 	; height, width
-	db 18, 10
+	db UNION_CAVE_B1F_HEIGHT, UNION_CAVE_B1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(UnionCaveB1F_BlockData), UnionCaveB1F_BlockData
@@ -53656,7 +54656,7 @@
 	db $9
 
 	; height, width
-	db 18, 10
+	db UNION_CAVE_B2F_HEIGHT, UNION_CAVE_B2F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(UnionCaveB2F_BlockData), UnionCaveB2F_BlockData
@@ -53676,7 +54676,7 @@
 	db $9
 
 	; height, width
-	db 9, 10
+	db SLOWPOKE_WELL_B1F_HEIGHT, SLOWPOKE_WELL_B1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SlowpokeWellB1F_BlockData), SlowpokeWellB1F_BlockData
@@ -53696,7 +54696,7 @@
 	db $9
 
 	; height, width
-	db 9, 10
+	db SLOWPOKE_WELL_B2F_HEIGHT, SLOWPOKE_WELL_B2F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SlowpokeWellB2F_BlockData), SlowpokeWellB2F_BlockData
@@ -53716,7 +54716,7 @@
 	db $0
 
 	; height, width
-	db 9, 10
+	db OLIVINE_LIGHTHOUSE_1F_HEIGHT, OLIVINE_LIGHTHOUSE_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineLighthouse1F_BlockData), OlivineLighthouse1F_BlockData
@@ -53736,7 +54736,7 @@
 	db $0
 
 	; height, width
-	db 9, 10
+	db OLIVINE_LIGHTHOUSE_2F_HEIGHT, OLIVINE_LIGHTHOUSE_2F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineLighthouse2F_BlockData), OlivineLighthouse2F_BlockData
@@ -53756,7 +54756,7 @@
 	db $0
 
 	; height, width
-	db 9, 10
+	db OLIVINE_LIGHTHOUSE_3F_HEIGHT, OLIVINE_LIGHTHOUSE_3F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineLighthouse3F_BlockData), OlivineLighthouse3F_BlockData
@@ -53776,7 +54776,7 @@
 	db $0
 
 	; height, width
-	db 9, 10
+	db OLIVINE_LIGHTHOUSE_4F_HEIGHT, OLIVINE_LIGHTHOUSE_4F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineLighthouse4F_BlockData), OlivineLighthouse4F_BlockData
@@ -53796,7 +54796,7 @@
 	db $0
 
 	; height, width
-	db 9, 10
+	db OLIVINE_LIGHTHOUSE_5F_HEIGHT, OLIVINE_LIGHTHOUSE_5F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineLighthouse5F_BlockData), OlivineLighthouse5F_BlockData
@@ -53816,7 +54816,7 @@
 	db $0
 
 	; height, width
-	db 9, 10
+	db OLIVINE_LIGHTHOUSE_6F_HEIGHT, OLIVINE_LIGHTHOUSE_6F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineLighthouse6F_BlockData), OlivineLighthouse6F_BlockData
@@ -53836,7 +54836,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db MAHOGANY_MART_1F_HEIGHT, MAHOGANY_MART_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(MahoganyMart1F_BlockData), MahoganyMart1F_BlockData
@@ -53856,7 +54856,7 @@
 	db $0
 
 	; height, width
-	db 9, 15
+	db TEAM_ROCKET_BASE_B1F_HEIGHT, TEAM_ROCKET_BASE_B1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(TeamRocketBaseB1F_BlockData), TeamRocketBaseB1F_BlockData
@@ -53876,7 +54876,7 @@
 	db $0
 
 	; height, width
-	db 9, 15
+	db TEAM_ROCKET_BASE_B2F_HEIGHT, TEAM_ROCKET_BASE_B2F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(TeamRocketBaseB2F_BlockData), TeamRocketBaseB2F_BlockData
@@ -53896,7 +54896,7 @@
 	db $0
 
 	; height, width
-	db 9, 15
+	db TEAM_ROCKET_BASE_B3F_HEIGHT, TEAM_ROCKET_BASE_B3F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(TeamRocketBaseB3F_BlockData), TeamRocketBaseB3F_BlockData
@@ -53916,7 +54916,7 @@
 	db $5
 
 	; height, width
-	db 27, 15
+	db ILEX_FOREST_HEIGHT, ILEX_FOREST_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(IlexForest_BlockData), IlexForest_BlockData
@@ -53936,7 +54936,7 @@
 	db $0
 
 	; height, width
-	db 18, 15
+	db WAREHOUSE_ENTRANCE_HEIGHT, WAREHOUSE_ENTRANCE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(WarehouseEntrance_BlockData), WarehouseEntrance_BlockData
@@ -53956,7 +54956,7 @@
 	db $0
 
 	; height, width
-	db 18, 15
+	db UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_HEIGHT, UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(UndergroundPathSwitchRoomEntrances_BlockData), UndergroundPathSwitchRoomEntrances_BlockData
@@ -53976,7 +54976,7 @@
 	db $0
 
 	; height, width
-	db 9, 10
+	db GOLDENROD_DEPT_STORE_B1F_HEIGHT, GOLDENROD_DEPT_STORE_B1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(GoldenrodDeptStoreB1F_BlockData), GoldenrodDeptStoreB1F_BlockData
@@ -53996,7 +54996,7 @@
 	db $0
 
 	; height, width
-	db 9, 10
+	db UNDERGROUND_WAREHOUSE_HEIGHT, UNDERGROUND_WAREHOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(UndergroundWarehouse_BlockData), UndergroundWarehouse_BlockData
@@ -54016,7 +55016,7 @@
 	db $9
 
 	; height, width
-	db 18, 20
+	db MOUNT_MORTAR_1F_OUTSIDE_HEIGHT, MOUNT_MORTAR_1F_OUTSIDE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(MountMortar1FOutside_BlockData), MountMortar1FOutside_BlockData
@@ -54036,7 +55036,7 @@
 	db $9
 
 	; height, width
-	db 27, 20
+	db MOUNT_MORTAR_1F_INSIDE_HEIGHT, MOUNT_MORTAR_1F_INSIDE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(MountMortar1FInside_BlockData), MountMortar1FInside_BlockData
@@ -54056,7 +55056,7 @@
 	db $9
 
 	; height, width
-	db 18, 20
+	db MOUNT_MORTAR_2F_INSIDE_HEIGHT, MOUNT_MORTAR_2F_INSIDE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(MountMortar2FInside_BlockData), MountMortar2FInside_BlockData
@@ -54076,7 +55076,7 @@
 	db $9
 
 	; height, width
-	db 18, 20
+	db MOUNT_MORTAR_B1F_HEIGHT, MOUNT_MORTAR_B1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(MountMortarB1F_BlockData), MountMortarB1F_BlockData
@@ -54096,7 +55096,7 @@
 	db $9
 
 	; height, width
-	db 18, 20
+	db ICE_PATH_1F_HEIGHT, ICE_PATH_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(IcePath1F_BlockData), IcePath1F_BlockData
@@ -54116,7 +55116,7 @@
 	db $19
 
 	; height, width
-	db 18, 10
+	db ICE_PATH_B1F_HEIGHT, ICE_PATH_B1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(IcePathB1F_BlockData), IcePathB1F_BlockData
@@ -54136,7 +55136,7 @@
 	db $19
 
 	; height, width
-	db 9, 10
+	db ICE_PATH_B2F_MAHOGANY_SIDE_HEIGHT, ICE_PATH_B2F_MAHOGANY_SIDE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(IcePathB2FMahoganySide_BlockData), IcePathB2FMahoganySide_BlockData
@@ -54156,7 +55156,7 @@
 	db $19
 
 	; height, width
-	db 9, 5
+	db ICE_PATH_B2F_BLACKTHORN_SIDE_HEIGHT, ICE_PATH_B2F_BLACKTHORN_SIDE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(IcePathB2FBlackthornSide_BlockData), IcePathB2FBlackthornSide_BlockData
@@ -54176,7 +55176,7 @@
 	db $19
 
 	; height, width
-	db 9, 10
+	db ICE_PATH_B3F_HEIGHT, ICE_PATH_B3F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(IcePathB3F_BlockData), IcePathB3F_BlockData
@@ -54196,7 +55196,7 @@
 	db $9
 
 	; height, width
-	db 9, 5
+	db WHIRL_ISLAND_NW_HEIGHT, WHIRL_ISLAND_NW_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(WhirlIslandNW_BlockData), WhirlIslandNW_BlockData
@@ -54216,7 +55216,7 @@
 	db $9
 
 	; height, width
-	db 9, 10
+	db WHIRL_ISLAND_NE_HEIGHT, WHIRL_ISLAND_NE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(WhirlIslandNE_BlockData), WhirlIslandNE_BlockData
@@ -54236,7 +55236,7 @@
 	db $9
 
 	; height, width
-	db 9, 10
+	db WHIRL_ISLAND_SW_HEIGHT, WHIRL_ISLAND_SW_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(WhirlIslandSW_BlockData), WhirlIslandSW_BlockData
@@ -54256,7 +55256,7 @@
 	db $9
 
 	; height, width
-	db 9, 5
+	db WHIRL_ISLAND_CAVE_HEIGHT, WHIRL_ISLAND_CAVE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(WhirlIslandCave_BlockData), WhirlIslandCave_BlockData
@@ -54276,7 +55276,7 @@
 	db $f
 
 	; height, width
-	db 9, 5
+	db WHIRL_ISLAND_SE_HEIGHT, WHIRL_ISLAND_SE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(WhirlIslandSE_BlockData), WhirlIslandSE_BlockData
@@ -54296,7 +55296,7 @@
 	db $9
 
 	; height, width
-	db 18, 20
+	db WHIRL_ISLAND_B1F_HEIGHT, WHIRL_ISLAND_B1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(WhirlIslandB1F_BlockData), WhirlIslandB1F_BlockData
@@ -54316,7 +55316,7 @@
 	db $2e
 
 	; height, width
-	db 18, 10
+	db WHIRL_ISLAND_B2F_HEIGHT, WHIRL_ISLAND_B2F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(WhirlIslandB2F_BlockData), WhirlIslandB2F_BlockData
@@ -54336,7 +55336,7 @@
 	db $f
 
 	; height, width
-	db 9, 10
+	db WHIRL_ISLAND_LUGIA_CHAMBER_HEIGHT, WHIRL_ISLAND_LUGIA_CHAMBER_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(WhirlIslandLugiaChamber_BlockData), WhirlIslandLugiaChamber_BlockData
@@ -54356,7 +55356,7 @@
 	db $9
 
 	; height, width
-	db 18, 10
+	db SILVER_CAVE_ROOM_1_HEIGHT, SILVER_CAVE_ROOM_1_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SilverCaveRoom1_BlockData), SilverCaveRoom1_BlockData
@@ -54376,7 +55376,7 @@
 	db $9
 
 	; height, width
-	db 18, 15
+	db SILVER_CAVE_ROOM_2_HEIGHT, SILVER_CAVE_ROOM_2_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SilverCaveRoom2_BlockData), SilverCaveRoom2_BlockData
@@ -54396,7 +55396,7 @@
 	db $9
 
 	; height, width
-	db 18, 10
+	db SILVER_CAVE_ROOM_3_HEIGHT, SILVER_CAVE_ROOM_3_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SilverCaveRoom3_BlockData), SilverCaveRoom3_BlockData
@@ -54416,7 +55416,7 @@
 	db $9
 
 	; height, width
-	db 9, 10
+	db SILVER_CAVE_ITEM_ROOMS_HEIGHT, SILVER_CAVE_ITEM_ROOMS_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SilverCaveItemRooms_BlockData), SilverCaveItemRooms_BlockData
@@ -54436,7 +55436,7 @@
 	db $9
 
 	; height, width
-	db 18, 20
+	db DARK_CAVE_VIOLET_ENTRANCE_HEIGHT, DARK_CAVE_VIOLET_ENTRANCE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(DarkCaveVioletEntrance_BlockData), DarkCaveVioletEntrance_BlockData
@@ -54456,7 +55456,7 @@
 	db $9
 
 	; height, width
-	db 18, 15
+	db DARK_CAVE_BLACKTHORN_ENTRANCE_HEIGHT, DARK_CAVE_BLACKTHORN_ENTRANCE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(DarkCaveBlackthornEntrance_BlockData), DarkCaveBlackthornEntrance_BlockData
@@ -54476,7 +55476,7 @@
 	db $9
 
 	; height, width
-	db 9, 5
+	db DRAGONS_DEN_1F_HEIGHT, DRAGONS_DEN_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(DragonsDen1F_BlockData), DragonsDen1F_BlockData
@@ -54496,7 +55496,7 @@
 	db $71
 
 	; height, width
-	db 18, 20
+	db DRAGONS_DEN_B1F_HEIGHT, DRAGONS_DEN_B1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(DragonsDenB1F_BlockData), DragonsDenB1F_BlockData
@@ -54516,7 +55516,7 @@
 	db $0
 
 	; height, width
-	db 5, 5
+	db DRAGON_SHRINE_HEIGHT, DRAGON_SHRINE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(DragonShrine_BlockData), DragonShrine_BlockData
@@ -54536,7 +55536,7 @@
 	db $9
 
 	; height, width
-	db 9, 15
+	db TOHJO_FALLS_HEIGHT, TOHJO_FALLS_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(TohjoFalls_BlockData), TohjoFalls_BlockData
@@ -54556,7 +55556,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db OLIVINE_POKECENTER_1F_HEIGHT, OLIVINE_POKECENTER_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivinePokeCenter1F_BlockData), OlivinePokeCenter1F_BlockData
@@ -54576,7 +55576,7 @@
 	db $0
 
 	; height, width
-	db 8, 5
+	db OLIVINE_GYM_HEIGHT, OLIVINE_GYM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineGym_BlockData), OlivineGym_BlockData
@@ -54596,7 +55596,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db OLIVINE_VOLTORB_HOUSE_HEIGHT, OLIVINE_VOLTORB_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -54616,7 +55616,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db OLIVINE_HOUSE_BETA_HEIGHT, OLIVINE_HOUSE_BETA_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -54636,7 +55636,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db OLIVINE_PUNISHMENT_SPEECH_HOUSE_HEIGHT, OLIVINE_PUNISHMENT_SPEECH_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -54656,7 +55656,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db OLIVINE_GOOD_ROD_HOUSE_HEIGHT, OLIVINE_GOOD_ROD_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -54676,7 +55676,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db OLIVINE_CAFE_HEIGHT, OLIVINE_CAFE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineCafe_BlockData), OlivineCafe_BlockData
@@ -54696,7 +55696,7 @@
 	db $0
 
 	; height, width
-	db 4, 6
+	db OLIVINE_MART_HEIGHT, OLIVINE_MART_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineMart_BlockData), OlivineMart_BlockData
@@ -54716,7 +55716,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db ROUTE_38_ECRUTEAK_GATE_HEIGHT, ROUTE_38_ECRUTEAK_GATE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route38EcruteakGate_BlockData), Route38EcruteakGate_BlockData
@@ -54736,7 +55736,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db ROUTE_39_BARN_HEIGHT, ROUTE_39_BARN_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route39Barn_BlockData), Route39Barn_BlockData
@@ -54756,7 +55756,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db ROUTE_39_FARMHOUSE_HEIGHT, ROUTE_39_FARMHOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -54776,7 +55776,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db MAHOGANY_RED_GYARADOS_SPEECH_HOUSE_HEIGHT, MAHOGANY_RED_GYARADOS_SPEECH_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -54796,7 +55796,7 @@
 	db $0
 
 	; height, width
-	db 9, 5
+	db MAHOGANY_GYM_HEIGHT, MAHOGANY_GYM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(MahoganyGym_BlockData), MahoganyGym_BlockData
@@ -54816,7 +55816,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db MAHOGANY_POKECENTER_1F_HEIGHT, MAHOGANY_POKECENTER_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivinePokeCenter1F_BlockData), OlivinePokeCenter1F_BlockData
@@ -54836,7 +55836,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db ROUTE_42_ECRUTEAK_GATE_HEIGHT, ROUTE_42_ECRUTEAK_GATE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route38EcruteakGate_BlockData), Route38EcruteakGate_BlockData
@@ -54856,7 +55856,7 @@
 	db $9
 
 	; height, width
-	db 18, 10
+	db DIGLETTS_CAVE_HEIGHT, DIGLETTS_CAVE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(DiglettsCave_BlockData), DiglettsCave_BlockData
@@ -54876,7 +55876,7 @@
 	db $9
 
 	; height, width
-	db 9, 15
+	db MOUNT_MOON_HEIGHT, MOUNT_MOON_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(MountMoon_BlockData), MountMoon_BlockData
@@ -54896,7 +55896,7 @@
 	db $0
 
 	; height, width
-	db 14, 3
+	db UNDERGROUND_HEIGHT, UNDERGROUND_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Underground_BlockData), Underground_BlockData
@@ -54916,7 +55916,7 @@
 	db $9
 
 	; height, width
-	db 18, 15
+	db ROCK_TUNNEL_1F_HEIGHT, ROCK_TUNNEL_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(RockTunnel1F_BlockData), RockTunnel1F_BlockData
@@ -54936,7 +55936,7 @@
 	db $9
 
 	; height, width
-	db 18, 15
+	db ROCK_TUNNEL_B1F_HEIGHT, ROCK_TUNNEL_B1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(RockTunnelB1F_BlockData), RockTunnelB1F_BlockData
@@ -54956,7 +55956,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db SAFARI_ZONE_FUCHSIA_GATE_BETA_HEIGHT, SAFARI_ZONE_FUCHSIA_GATE_BETA_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SafariZoneFuchsiaGateBeta_BlockData), SafariZoneFuchsiaGateBeta_BlockData
@@ -54976,7 +55976,7 @@
 	db $13
 
 	; height, width
-	db 18, 10
+	db SAFARI_ZONE_BETA_HEIGHT, SAFARI_ZONE_BETA_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SafariZoneBeta_BlockData), SafariZoneBeta_BlockData
@@ -54996,7 +55996,7 @@
 	db $1d
 
 	; height, width
-	db 36, 10
+	db VICTORY_ROAD_HEIGHT, VICTORY_ROAD_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(VictoryRoad_BlockData), VictoryRoad_BlockData
@@ -55016,7 +56016,7 @@
 	db $0
 
 	; height, width
-	db 9, 10
+	db ECRUTEAK_HOUSE_HEIGHT, ECRUTEAK_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(EcruteakHouse_BlockData), EcruteakHouse_BlockData
@@ -55036,7 +56036,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db WISE_TRIOS_ROOM_HEIGHT, WISE_TRIOS_ROOM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(WiseTriosRoom_BlockData), WiseTriosRoom_BlockData
@@ -55056,7 +56056,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db ECRUTEAK_POKECENTER_1F_HEIGHT, ECRUTEAK_POKECENTER_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivinePokeCenter1F_BlockData), OlivinePokeCenter1F_BlockData
@@ -55076,7 +56076,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db ECRUTEAK_LUGIA_SPEECH_HOUSE_HEIGHT, ECRUTEAK_LUGIA_SPEECH_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(EcruteakLugiaSpeechHouse_BlockData), EcruteakLugiaSpeechHouse_BlockData
@@ -55096,7 +56096,7 @@
 	db $0
 
 	; height, width
-	db 7, 6
+	db DANCE_THEATRE_HEIGHT, DANCE_THEATRE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(DanceTheatre_BlockData), DanceTheatre_BlockData
@@ -55116,7 +56116,7 @@
 	db $0
 
 	; height, width
-	db 4, 6
+	db ECRUTEAK_MART_HEIGHT, ECRUTEAK_MART_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineMart_BlockData), OlivineMart_BlockData
@@ -55136,7 +56136,7 @@
 	db $0
 
 	; height, width
-	db 9, 5
+	db ECRUTEAK_GYM_HEIGHT, ECRUTEAK_GYM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(EcruteakGym_BlockData), EcruteakGym_BlockData
@@ -55156,7 +56156,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db ECRUTEAK_ITEMFINDER_HOUSE_HEIGHT, ECRUTEAK_ITEMFINDER_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(EcruteakLugiaSpeechHouse_BlockData), EcruteakLugiaSpeechHouse_BlockData
@@ -55176,7 +56176,7 @@
 	db $0
 
 	; height, width
-	db 9, 5
+	db BLACKTHORN_GYM_1F_HEIGHT, BLACKTHORN_GYM_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(BlackthornGym1F_BlockData), BlackthornGym1F_BlockData
@@ -55196,7 +56196,7 @@
 	db $0
 
 	; height, width
-	db 9, 5
+	db BLACKTHORN_GYM_2F_HEIGHT, BLACKTHORN_GYM_2F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(BlackthornGym2F_BlockData), BlackthornGym2F_BlockData
@@ -55216,7 +56216,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db BLACKTHORN_DRAGON_SPEECH_HOUSE_HEIGHT, BLACKTHORN_DRAGON_SPEECH_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -55236,7 +56236,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db BLACKTHORN_DODRIO_TRADE_HOUSE_HEIGHT, BLACKTHORN_DODRIO_TRADE_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -55256,7 +56256,7 @@
 	db $0
 
 	; height, width
-	db 4, 6
+	db BLACKTHORN_MART_HEIGHT, BLACKTHORN_MART_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineMart_BlockData), OlivineMart_BlockData
@@ -55276,7 +56276,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db BLACKTHORN_POKECENTER_1F_HEIGHT, BLACKTHORN_POKECENTER_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivinePokeCenter1F_BlockData), OlivinePokeCenter1F_BlockData
@@ -55296,7 +56296,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db MOVE_DELETERS_HOUSE_HEIGHT, MOVE_DELETERS_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -55316,7 +56316,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db CINNABAR_POKECENTER_1F_HEIGHT, CINNABAR_POKECENTER_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivinePokeCenter1F_BlockData), OlivinePokeCenter1F_BlockData
@@ -55336,7 +56336,7 @@
 	db $0
 
 	; height, width
-	db 4, 8
+	db CINNABAR_POKECENTER_2F_BETA_HEIGHT, CINNABAR_POKECENTER_2F_BETA_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(CinnabarPokeCenter2FBeta_BlockData), CinnabarPokeCenter2FBeta_BlockData
@@ -55356,7 +56356,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db ROUTE_19___FUCHSIA_GATE_HEIGHT, ROUTE_19___FUCHSIA_GATE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SafariZoneFuchsiaGateBeta_BlockData), SafariZoneFuchsiaGateBeta_BlockData
@@ -55376,7 +56376,7 @@
 	db $9
 
 	; height, width
-	db 4, 5
+	db SEAFOAM_GYM_HEIGHT, SEAFOAM_GYM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SeafoamGym_BlockData), SeafoamGym_BlockData
@@ -55396,7 +56396,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db CERULEAN_GYM_BADGE_SPEECH_HOUSE_HEIGHT, CERULEAN_GYM_BADGE_SPEECH_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -55416,7 +56416,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db CERULEAN_POLICE_STATION_HEIGHT, CERULEAN_POLICE_STATION_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -55436,7 +56436,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db CERULEAN_TRADE_SPEECH_HOUSE_HEIGHT, CERULEAN_TRADE_SPEECH_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -55456,7 +56456,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db CERULEAN_POKECENTER_1F_HEIGHT, CERULEAN_POKECENTER_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivinePokeCenter1F_BlockData), OlivinePokeCenter1F_BlockData
@@ -55476,7 +56476,7 @@
 	db $0
 
 	; height, width
-	db 4, 8
+	db CERULEAN_POKECENTER_2F_BETA_HEIGHT, CERULEAN_POKECENTER_2F_BETA_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(CinnabarPokeCenter2FBeta_BlockData), CinnabarPokeCenter2FBeta_BlockData
@@ -55496,7 +56496,7 @@
 	db $0
 
 	; height, width
-	db 8, 5
+	db CERULEAN_GYM_HEIGHT, CERULEAN_GYM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(CeruleanGym_BlockData), CeruleanGym_BlockData
@@ -55516,7 +56516,7 @@
 	db $0
 
 	; height, width
-	db 4, 6
+	db CERULEAN_MART_HEIGHT, CERULEAN_MART_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineMart_BlockData), OlivineMart_BlockData
@@ -55536,7 +56536,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db ROUTE_10_POKECENTER_1F_HEIGHT, ROUTE_10_POKECENTER_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivinePokeCenter1F_BlockData), OlivinePokeCenter1F_BlockData
@@ -55556,7 +56556,7 @@
 	db $0
 
 	; height, width
-	db 4, 8
+	db ROUTE_10_POKECENTER_2F_BETA_HEIGHT, ROUTE_10_POKECENTER_2F_BETA_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(CinnabarPokeCenter2FBeta_BlockData), CinnabarPokeCenter2FBeta_BlockData
@@ -55576,7 +56576,7 @@
 	db $0
 
 	; height, width
-	db 9, 10
+	db POWER_PLANT_HEIGHT, POWER_PLANT_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(PowerPlant_BlockData), PowerPlant_BlockData
@@ -55596,7 +56596,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db BILLS_HOUSE_HEIGHT, BILLS_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -55616,7 +56616,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db AZALEA_POKECENTER_1F_HEIGHT, AZALEA_POKECENTER_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivinePokeCenter1F_BlockData), OlivinePokeCenter1F_BlockData
@@ -55636,7 +56636,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db CHARCOAL_KILN_HEIGHT, CHARCOAL_KILN_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -55656,7 +56656,7 @@
 	db $0
 
 	; height, width
-	db 4, 6
+	db AZALEA_MART_HEIGHT, AZALEA_MART_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineMart_BlockData), OlivineMart_BlockData
@@ -55676,7 +56676,7 @@
 	db $0
 
 	; height, width
-	db 4, 8
+	db KURTS_HOUSE_HEIGHT, KURTS_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(KurtsHouse_BlockData), KurtsHouse_BlockData
@@ -55696,7 +56696,7 @@
 	db $0
 
 	; height, width
-	db 8, 5
+	db AZALEA_GYM_HEIGHT, AZALEA_GYM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(AzaleaGym_BlockData), AzaleaGym_BlockData
@@ -55716,7 +56716,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db LAKE_OF_RAGE_HIDDEN_POWER_HOUSE_HEIGHT, LAKE_OF_RAGE_HIDDEN_POWER_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -55736,7 +56736,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db LAKE_OF_RAGE_MAGIKARP_HOUSE_HEIGHT, LAKE_OF_RAGE_MAGIKARP_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -55756,7 +56756,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db ROUTE_43_MAHOGANY_GATE_HEIGHT, ROUTE_43_MAHOGANY_GATE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SafariZoneFuchsiaGateBeta_BlockData), SafariZoneFuchsiaGateBeta_BlockData
@@ -55776,7 +56776,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db ROUTE_43_GATE_HEIGHT, ROUTE_43_GATE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SafariZoneFuchsiaGateBeta_BlockData), SafariZoneFuchsiaGateBeta_BlockData
@@ -55796,7 +56796,7 @@
 	db $0
 
 	; height, width
-	db 4, 6
+	db VIOLET_MART_HEIGHT, VIOLET_MART_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineMart_BlockData), OlivineMart_BlockData
@@ -55816,7 +56816,7 @@
 	db $0
 
 	; height, width
-	db 8, 5
+	db VIOLET_GYM_HEIGHT, VIOLET_GYM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(VioletGym_BlockData), VioletGym_BlockData
@@ -55836,7 +56836,7 @@
 	db $0
 
 	; height, width
-	db 8, 4
+	db EARLS_POKEMON_ACADEMY_HEIGHT, EARLS_POKEMON_ACADEMY_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(EarlsPokemonAcademy_BlockData), EarlsPokemonAcademy_BlockData
@@ -55856,7 +56856,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db VIOLET_NICKNAME_SPEECH_HOUSE_HEIGHT, VIOLET_NICKNAME_SPEECH_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(EcruteakLugiaSpeechHouse_BlockData), EcruteakLugiaSpeechHouse_BlockData
@@ -55876,7 +56876,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db VIOLET_POKECENTER_1F_HEIGHT, VIOLET_POKECENTER_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivinePokeCenter1F_BlockData), OlivinePokeCenter1F_BlockData
@@ -55896,7 +56896,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db VIOLET_ONIX_TRADE_HOUSE_HEIGHT, VIOLET_ONIX_TRADE_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(EcruteakLugiaSpeechHouse_BlockData), EcruteakLugiaSpeechHouse_BlockData
@@ -55916,7 +56916,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db ROUTE_32_RUINS_OF_ALPH_GATE_HEIGHT, ROUTE_32_RUINS_OF_ALPH_GATE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route38EcruteakGate_BlockData), Route38EcruteakGate_BlockData
@@ -55936,7 +56936,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db ROUTE_32_POKECENTER_1F_HEIGHT, ROUTE_32_POKECENTER_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivinePokeCenter1F_BlockData), OlivinePokeCenter1F_BlockData
@@ -55956,7 +56956,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db ROUTE_35_GOLDENROD_GATE_HEIGHT, ROUTE_35_GOLDENROD_GATE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SafariZoneFuchsiaGateBeta_BlockData), SafariZoneFuchsiaGateBeta_BlockData
@@ -55976,7 +56976,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db ROUTE_35_NATIONAL_PARK_GATE_HEIGHT, ROUTE_35_NATIONAL_PARK_GATE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route35NationalParkgate_BlockData), Route35NationalParkgate_BlockData
@@ -55996,7 +56996,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db ROUTE_36_RUINS_OF_ALPH_GATE_HEIGHT, ROUTE_36_RUINS_OF_ALPH_GATE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SafariZoneFuchsiaGateBeta_BlockData), SafariZoneFuchsiaGateBeta_BlockData
@@ -56016,7 +57016,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db ROUTE_36_NATIONAL_PARK_GATE_HEIGHT, ROUTE_36_NATIONAL_PARK_GATE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route36NationalParkgate_BlockData), Route36NationalParkgate_BlockData
@@ -56036,7 +57036,7 @@
 	db $0
 
 	; height, width
-	db 9, 10
+	db GOLDENROD_GYM_HEIGHT, GOLDENROD_GYM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(GoldenrodGym_BlockData), GoldenrodGym_BlockData
@@ -56056,7 +57056,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db GOLDENROD_BIKE_SHOP_HEIGHT, GOLDENROD_BIKE_SHOP_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(GoldenrodBikeShop_BlockData), GoldenrodBikeShop_BlockData
@@ -56076,7 +57076,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db GOLDENROD_HAPPINESS_RATER_HEIGHT, GOLDENROD_HAPPINESS_RATER_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -56096,7 +57096,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db GOLDENROD_BILLS_HOUSE_HEIGHT, GOLDENROD_BILLS_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -56116,7 +57116,7 @@
 	db $0
 
 	; height, width
-	db 9, 10
+	db GOLDENROD_MAGNET_TRAIN_STATION_HEIGHT, GOLDENROD_MAGNET_TRAIN_STATION_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(GoldenrodMagnetTrainStation_BlockData), GoldenrodMagnetTrainStation_BlockData
@@ -56136,7 +57136,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db GOLDENROD_FLOWER_SHOP_HEIGHT, GOLDENROD_FLOWER_SHOP_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(GoldenrodFlowerShop_BlockData), GoldenrodFlowerShop_BlockData
@@ -56156,7 +57156,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db GOLDENROD_PP_SPEECH_HOUSE_HEIGHT, GOLDENROD_PP_SPEECH_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -56176,7 +57176,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db GOLDENROD_NAME_RATERS_HOUSE_HEIGHT, GOLDENROD_NAME_RATERS_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -56196,7 +57196,7 @@
 	db $0
 
 	; height, width
-	db 4, 8
+	db GOLDENROD_DEPT_STORE_1F_HEIGHT, GOLDENROD_DEPT_STORE_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(GoldenrodDeptStore1F_BlockData), GoldenrodDeptStore1F_BlockData
@@ -56216,7 +57216,7 @@
 	db $0
 
 	; height, width
-	db 4, 8
+	db GOLDENROD_DEPT_STORE_2F_HEIGHT, GOLDENROD_DEPT_STORE_2F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(GoldenrodDeptStore2F_BlockData), GoldenrodDeptStore2F_BlockData
@@ -56236,7 +57236,7 @@
 	db $0
 
 	; height, width
-	db 4, 8
+	db GOLDENROD_DEPT_STORE_3F_HEIGHT, GOLDENROD_DEPT_STORE_3F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(GoldenrodDeptStore3F_BlockData), GoldenrodDeptStore3F_BlockData
@@ -56256,7 +57256,7 @@
 	db $0
 
 	; height, width
-	db 4, 8
+	db GOLDENROD_DEPT_STORE_4F_HEIGHT, GOLDENROD_DEPT_STORE_4F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(GoldenrodDeptStore4F_BlockData), GoldenrodDeptStore4F_BlockData
@@ -56276,7 +57276,7 @@
 	db $0
 
 	; height, width
-	db 4, 8
+	db GOLDENROD_DEPT_STORE_5F_HEIGHT, GOLDENROD_DEPT_STORE_5F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(GoldenrodDeptStore5F_BlockData), GoldenrodDeptStore5F_BlockData
@@ -56296,7 +57296,7 @@
 	db $0
 
 	; height, width
-	db 4, 8
+	db GOLDENROD_DEPT_STORE_6F_HEIGHT, GOLDENROD_DEPT_STORE_6F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(GoldenrodDeptStore6F_BlockData), GoldenrodDeptStore6F_BlockData
@@ -56316,7 +57316,7 @@
 	db $0
 
 	; height, width
-	db 2, 2
+	db GOLDENROD_DEPT_STORE_ELEVATOR_HEIGHT, GOLDENROD_DEPT_STORE_ELEVATOR_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(GoldenrodDeptStoreElevator_BlockData), GoldenrodDeptStoreElevator_BlockData
@@ -56336,7 +57336,7 @@
 	db $24
 
 	; height, width
-	db 4, 8
+	db GOLDENROD_DEPT_STORE_ROOF_HEIGHT, GOLDENROD_DEPT_STORE_ROOF_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(GoldenrodDeptStoreRoof_BlockData), GoldenrodDeptStoreRoof_BlockData
@@ -56356,7 +57356,7 @@
 	db $0
 
 	; height, width
-	db 7, 10
+	db GOLDENROD_GAME_CORNER_HEIGHT, GOLDENROD_GAME_CORNER_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(GoldenrodGameCorner_BlockData), GoldenrodGameCorner_BlockData
@@ -56376,7 +57376,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db GOLDENROD_POKECENTER_1F_HEIGHT, GOLDENROD_POKECENTER_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivinePokeCenter1F_BlockData), OlivinePokeCenter1F_BlockData
@@ -56396,7 +57396,7 @@
 	db $0
 
 	; height, width
-	db 16, 16
+	db GOLDENROD_POKECOM_CENTER_2F_MOBILE_HEIGHT, GOLDENROD_POKECOM_CENTER_2F_MOBILE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(GoldenrodPokeComCenter2FMobile_BlockData), GoldenrodPokeComCenter2FMobile_BlockData
@@ -56416,7 +57416,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db ILEX_FOREST_AZALEA_GATE_HEIGHT, ILEX_FOREST_AZALEA_GATE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route38EcruteakGate_BlockData), Route38EcruteakGate_BlockData
@@ -56436,7 +57436,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db ROUTE_34_ILEX_FOREST_GATE_HEIGHT, ROUTE_34_ILEX_FOREST_GATE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SafariZoneFuchsiaGateBeta_BlockData), SafariZoneFuchsiaGateBeta_BlockData
@@ -56456,7 +57456,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db DAY_CARE_HEIGHT, DAY_CARE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(DayCare_BlockData), DayCare_BlockData
@@ -56476,7 +57476,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db VERMILION_HOUSE_FISHING_SPEECH_HOUSE_HEIGHT, VERMILION_HOUSE_FISHING_SPEECH_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -56496,7 +57496,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db VERMILION_POKECENTER_1F_HEIGHT, VERMILION_POKECENTER_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivinePokeCenter1F_BlockData), OlivinePokeCenter1F_BlockData
@@ -56516,7 +57516,7 @@
 	db $0
 
 	; height, width
-	db 4, 8
+	db VERMILION_POKECENTER_2F_BETA_HEIGHT, VERMILION_POKECENTER_2F_BETA_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(CinnabarPokeCenter2FBeta_BlockData), CinnabarPokeCenter2FBeta_BlockData
@@ -56536,7 +57536,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db POKEMON_FAN_CLUB_HEIGHT, POKEMON_FAN_CLUB_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(PokemonFanClub_BlockData), PokemonFanClub_BlockData
@@ -56556,7 +57556,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db VERMILION_MAGNET_TRAIN_SPEECH_HOUSE_HEIGHT, VERMILION_MAGNET_TRAIN_SPEECH_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -56576,7 +57576,7 @@
 	db $0
 
 	; height, width
-	db 4, 6
+	db VERMILION_MART_HEIGHT, VERMILION_MART_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineMart_BlockData), OlivineMart_BlockData
@@ -56596,7 +57596,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db VERMILION_HOUSE_DIGLETTS_CAVE_SPEECH_HOUSE_HEIGHT, VERMILION_HOUSE_DIGLETTS_CAVE_SPEECH_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -56616,7 +57616,7 @@
 	db $0
 
 	; height, width
-	db 9, 5
+	db VERMILION_GYM_HEIGHT, VERMILION_GYM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(VermilionGym_BlockData), VermilionGym_BlockData
@@ -56636,7 +57636,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db ROUTE_6_SAFFRON_GATE_HEIGHT, ROUTE_6_SAFFRON_GATE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SafariZoneFuchsiaGateBeta_BlockData), SafariZoneFuchsiaGateBeta_BlockData
@@ -56656,7 +57656,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db ROUTE_6_UNDERGROUND_ENTRANCE_HEIGHT, ROUTE_6_UNDERGROUND_ENTRANCE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route6UndergroundEntrance_BlockData), Route6UndergroundEntrance_BlockData
@@ -56676,7 +57676,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db REDS_HOUSE_1F_HEIGHT, REDS_HOUSE_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(RedsHouse1F_BlockData), RedsHouse1F_BlockData
@@ -56696,7 +57696,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db REDS_HOUSE_2F_HEIGHT, REDS_HOUSE_2F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(RedsHouse2F_BlockData), RedsHouse2F_BlockData
@@ -56716,7 +57716,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db BLUES_HOUSE_HEIGHT, BLUES_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -56736,7 +57736,7 @@
 	db $0
 
 	; height, width
-	db 6, 5
+	db OAKS_LAB_HEIGHT, OAKS_LAB_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OaksLab_BlockData), OaksLab_BlockData
@@ -56756,7 +57756,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db PEWTER_NIDORAN_SPEECH_HOUSE_HEIGHT, PEWTER_NIDORAN_SPEECH_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -56776,7 +57776,7 @@
 	db $0
 
 	; height, width
-	db 7, 5
+	db PEWTER_GYM_HEIGHT, PEWTER_GYM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(PewterGym_BlockData), PewterGym_BlockData
@@ -56796,7 +57796,7 @@
 	db $0
 
 	; height, width
-	db 4, 6
+	db PEWTER_MART_HEIGHT, PEWTER_MART_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineMart_BlockData), OlivineMart_BlockData
@@ -56816,7 +57816,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db PEWTER_POKECENTER_1F_HEIGHT, PEWTER_POKECENTER_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivinePokeCenter1F_BlockData), OlivinePokeCenter1F_BlockData
@@ -56836,7 +57836,7 @@
 	db $0
 
 	; height, width
-	db 4, 8
+	db PEWTER_POKECENTER_2F_BETA_HEIGHT, PEWTER_POKECENTER_2F_BETA_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(CinnabarPokeCenter2FBeta_BlockData), CinnabarPokeCenter2FBeta_BlockData
@@ -56856,7 +57856,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db PEWTER_SNOOZE_SPEECH_HOUSE_HEIGHT, PEWTER_SNOOZE_SPEECH_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -56876,7 +57876,7 @@
 	db $a
 
 	; height, width
-	db 18, 10
+	db OLIVINE_PORT_HEIGHT, OLIVINE_PORT_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivinePort_BlockData), OlivinePort_BlockData
@@ -56896,7 +57896,7 @@
 	db $a
 
 	; height, width
-	db 18, 10
+	db VERMILION_PORT_HEIGHT, VERMILION_PORT_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(VermilionPort_BlockData), VermilionPort_BlockData
@@ -56916,7 +57916,7 @@
 	db $0
 
 	; height, width
-	db 9, 16
+	db FAST_SHIP_1F_HEIGHT, FAST_SHIP_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(FastShip1F_BlockData), FastShip1F_BlockData
@@ -56936,7 +57936,7 @@
 	db $0
 
 	; height, width
-	db 16, 4
+	db FAST_SHIP_CABINS_NNW_NNE_NE_HEIGHT, FAST_SHIP_CABINS_NNW_NNE_NE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(FastShipCabins_NNW_NNE_NE_BlockData), FastShipCabins_NNW_NNE_NE_BlockData
@@ -56956,7 +57956,7 @@
 	db $0
 
 	; height, width
-	db 16, 4
+	db FAST_SHIP_CABINS_SW_SSW_NW_HEIGHT, FAST_SHIP_CABINS_SW_SSW_NW_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(FastShipCabins_SW_SSW_NW_BlockData), FastShipCabins_SW_SSW_NW_BlockData
@@ -56976,7 +57976,7 @@
 	db $0
 
 	; height, width
-	db 17, 5
+	db FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_HEIGHT, FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(FastShipCabins_SE_SSE_CaptainsCabin_BlockData), FastShipCabins_SE_SSE_CaptainsCabin_BlockData
@@ -56996,7 +57996,7 @@
 	db $0
 
 	; height, width
-	db 8, 16
+	db FAST_SHIP_B1F_HEIGHT, FAST_SHIP_B1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(FastShipB1F_BlockData), FastShipB1F_BlockData
@@ -57016,7 +58016,7 @@
 	db $0
 
 	; height, width
-	db 9, 10
+	db OLIVINE_PORT_PASSAGE_HEIGHT, OLIVINE_PORT_PASSAGE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivinePortPassage_BlockData), OlivinePortPassage_BlockData
@@ -57036,7 +58036,7 @@
 	db $0
 
 	; height, width
-	db 9, 10
+	db VERMILION_PORT_PASSAGE_HEIGHT, VERMILION_PORT_PASSAGE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivinePortPassage_BlockData), OlivinePortPassage_BlockData
@@ -57056,7 +58056,7 @@
 	db $2d
 
 	; height, width
-	db 9, 15
+	db MOUNT_MOON_SQUARE_HEIGHT, MOUNT_MOON_SQUARE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(MountMoonSquare_BlockData), MountMoonSquare_BlockData
@@ -57076,7 +58076,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db MOUNT_MOON_GIFT_SHOP_HEIGHT, MOUNT_MOON_GIFT_SHOP_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(MahoganyMart1F_BlockData), MahoganyMart1F_BlockData
@@ -57096,7 +58096,7 @@
 	db $0
 
 	; height, width
-	db 9, 10
+	db TIN_TOWER_ROOF_HEIGHT, TIN_TOWER_ROOF_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(TinTowerRoof_BlockData), TinTowerRoof_BlockData
@@ -57116,7 +58116,7 @@
 	db $0
 
 	; height, width
-	db 7, 9
+	db INDIGO_PLATEAU_POKECENTER_1F_HEIGHT, INDIGO_PLATEAU_POKECENTER_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(IndigoPlateauPokeCenter1F_BlockData), IndigoPlateauPokeCenter1F_BlockData
@@ -57136,7 +58136,7 @@
 	db $0
 
 	; height, width
-	db 9, 5
+	db WILLS_ROOM_HEIGHT, WILLS_ROOM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(WillsRoom_BlockData), WillsRoom_BlockData
@@ -57156,7 +58156,7 @@
 	db $0
 
 	; height, width
-	db 9, 5
+	db KOGAS_ROOM_HEIGHT, KOGAS_ROOM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(KogasRoom_BlockData), KogasRoom_BlockData
@@ -57176,7 +58176,7 @@
 	db $0
 
 	; height, width
-	db 9, 5
+	db BRUNOS_ROOM_HEIGHT, BRUNOS_ROOM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(BrunosRoom_BlockData), BrunosRoom_BlockData
@@ -57196,7 +58196,7 @@
 	db $0
 
 	; height, width
-	db 9, 5
+	db KARENS_ROOM_HEIGHT, KARENS_ROOM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(KarensRoom_BlockData), KarensRoom_BlockData
@@ -57216,7 +58216,7 @@
 	db $0
 
 	; height, width
-	db 12, 5
+	db LANCES_ROOM_HEIGHT, LANCES_ROOM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(LancesRoom_BlockData), LancesRoom_BlockData
@@ -57236,7 +58236,7 @@
 	db $0
 
 	; height, width
-	db 7, 5
+	db HALL_OF_FAME_HEIGHT, HALL_OF_FAME_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(HallOfFame_BlockData), HallOfFame_BlockData
@@ -57256,7 +58256,7 @@
 	db $0
 
 	; height, width
-	db 4, 6
+	db FUCHSIA_MART_HEIGHT, FUCHSIA_MART_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineMart_BlockData), OlivineMart_BlockData
@@ -57276,7 +58276,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db SAFARI_ZONE_MAIN_OFFICE_HEIGHT, SAFARI_ZONE_MAIN_OFFICE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineCafe_BlockData), OlivineCafe_BlockData
@@ -57296,7 +58296,7 @@
 	db $0
 
 	; height, width
-	db 9, 5
+	db FUCHSIA_GYM_HEIGHT, FUCHSIA_GYM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(FuchsiaGym_BlockData), FuchsiaGym_BlockData
@@ -57316,7 +58316,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db FUCHSIA_BILL_SPEECH_HOUSE_HEIGHT, FUCHSIA_BILL_SPEECH_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -57336,7 +58336,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db FUCHSIA_POKECENTER_1F_HEIGHT, FUCHSIA_POKECENTER_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivinePokeCenter1F_BlockData), OlivinePokeCenter1F_BlockData
@@ -57356,7 +58356,7 @@
 	db $0
 
 	; height, width
-	db 4, 8
+	db FUCHSIA_POKECENTER_2F_BETA_HEIGHT, FUCHSIA_POKECENTER_2F_BETA_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(CinnabarPokeCenter2FBeta_BlockData), CinnabarPokeCenter2FBeta_BlockData
@@ -57376,7 +58376,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db SAFARI_ZONE_WARDENS_HOME_HEIGHT, SAFARI_ZONE_WARDENS_HOME_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(PokemonFanClub_BlockData), PokemonFanClub_BlockData
@@ -57396,7 +58396,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db ROUTE_15_FUCHSIA_GATE_HEIGHT, ROUTE_15_FUCHSIA_GATE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route38EcruteakGate_BlockData), Route38EcruteakGate_BlockData
@@ -57416,7 +58416,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db LAVENDER_POKECENTER_1F_HEIGHT, LAVENDER_POKECENTER_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivinePokeCenter1F_BlockData), OlivinePokeCenter1F_BlockData
@@ -57436,7 +58436,7 @@
 	db $0
 
 	; height, width
-	db 4, 8
+	db LAVENDER_POKECENTER_2F_BETA_HEIGHT, LAVENDER_POKECENTER_2F_BETA_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(CinnabarPokeCenter2FBeta_BlockData), CinnabarPokeCenter2FBeta_BlockData
@@ -57456,7 +58456,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db MR_FUJIS_HOUSE_HEIGHT, MR_FUJIS_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(MrFujisHouse_BlockData), MrFujisHouse_BlockData
@@ -57476,7 +58476,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db LAVENDER_TOWN_SPEECH_HOUSE_HEIGHT, LAVENDER_TOWN_SPEECH_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -57496,7 +58496,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db LAVENDER_NAME_RATER_HEIGHT, LAVENDER_NAME_RATER_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -57516,7 +58516,7 @@
 	db $0
 
 	; height, width
-	db 4, 6
+	db LAVENDER_MART_HEIGHT, LAVENDER_MART_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineMart_BlockData), OlivineMart_BlockData
@@ -57536,7 +58536,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db SOUL_HOUSE_HEIGHT, SOUL_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SoulHouse_BlockData), SoulHouse_BlockData
@@ -57556,7 +58556,7 @@
 	db $0
 
 	; height, width
-	db 4, 10
+	db LAV_RADIO_TOWER_1F_HEIGHT, LAV_RADIO_TOWER_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(LavRadioTower1F_BlockData), LavRadioTower1F_BlockData
@@ -57576,7 +58576,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db ROUTE_8_SAFFRON_GATE_HEIGHT, ROUTE_8_SAFFRON_GATE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route38EcruteakGate_BlockData), Route38EcruteakGate_BlockData
@@ -57596,7 +58596,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db ROUTE_12_SUPER_ROD_HOUSE_HEIGHT, ROUTE_12_SUPER_ROD_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -57616,7 +58616,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db SILVER_CAVE_POKECENTER_1F_HEIGHT, SILVER_CAVE_POKECENTER_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivinePokeCenter1F_BlockData), OlivinePokeCenter1F_BlockData
@@ -57636,7 +58636,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db ROUTE_28_FAMOUS_SPEECH_HOUSE_HEIGHT, ROUTE_28_FAMOUS_SPEECH_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -57656,7 +58656,7 @@
 	db $0
 
 	; height, width
-	db 4, 8
+	db POKECENTER_2F_HEIGHT, POKECENTER_2F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(CinnabarPokeCenter2FBeta_BlockData), CinnabarPokeCenter2FBeta_BlockData
@@ -57676,7 +58676,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db TRADE_CENTER_HEIGHT, TRADE_CENTER_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(TradeCenter_BlockData), TradeCenter_BlockData
@@ -57696,7 +58696,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db COLOSSEUM_HEIGHT, COLOSSEUM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Colosseum_BlockData), Colosseum_BlockData
@@ -57716,7 +58716,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db TIME_CAPSULE_HEIGHT, TIME_CAPSULE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(TradeCenter_BlockData), TradeCenter_BlockData
@@ -57736,7 +58736,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db MOBILE_TRADE_ROOM_MOBILE_HEIGHT, MOBILE_TRADE_ROOM_MOBILE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(MobileTradeRoomMobile_BlockData), MobileTradeRoomMobile_BlockData
@@ -57756,7 +58756,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db MOBILE_BATTLE_ROOM_HEIGHT, MOBILE_BATTLE_ROOM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(MobileBattleRoom_BlockData), MobileBattleRoom_BlockData
@@ -57776,7 +58776,7 @@
 	db $0
 
 	; height, width
-	db 4, 8
+	db CELADON_DEPT_STORE_1F_HEIGHT, CELADON_DEPT_STORE_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(GoldenrodDeptStore1F_BlockData), GoldenrodDeptStore1F_BlockData
@@ -57796,7 +58796,7 @@
 	db $0
 
 	; height, width
-	db 4, 8
+	db CELADON_DEPT_STORE_2F_HEIGHT, CELADON_DEPT_STORE_2F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(GoldenrodDeptStore2F_BlockData), GoldenrodDeptStore2F_BlockData
@@ -57816,7 +58816,7 @@
 	db $0
 
 	; height, width
-	db 4, 8
+	db CELADON_DEPT_STORE_3F_HEIGHT, CELADON_DEPT_STORE_3F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(GoldenrodDeptStore3F_BlockData), GoldenrodDeptStore3F_BlockData
@@ -57836,7 +58836,7 @@
 	db $0
 
 	; height, width
-	db 4, 8
+	db CELADON_DEPT_STORE_4F_HEIGHT, CELADON_DEPT_STORE_4F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(GoldenrodDeptStore4F_BlockData), GoldenrodDeptStore4F_BlockData
@@ -57856,7 +58856,7 @@
 	db $0
 
 	; height, width
-	db 4, 8
+	db CELADON_DEPT_STORE_5F_HEIGHT, CELADON_DEPT_STORE_5F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(GoldenrodDeptStore5F_BlockData), GoldenrodDeptStore5F_BlockData
@@ -57876,7 +58876,7 @@
 	db $0
 
 	; height, width
-	db 4, 8
+	db CELADON_DEPT_STORE_6F_HEIGHT, CELADON_DEPT_STORE_6F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(GoldenrodDeptStore6F_BlockData), GoldenrodDeptStore6F_BlockData
@@ -57896,7 +58896,7 @@
 	db $0
 
 	; height, width
-	db 2, 2
+	db CELADON_DEPT_STORE_ELEVATOR_HEIGHT, CELADON_DEPT_STORE_ELEVATOR_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(GoldenrodDeptStoreElevator_BlockData), GoldenrodDeptStoreElevator_BlockData
@@ -57916,7 +58916,7 @@
 	db $0
 
 	; height, width
-	db 5, 4
+	db CELADON_MANSION_1F_HEIGHT, CELADON_MANSION_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(CeladonMansion1F_BlockData), CeladonMansion1F_BlockData
@@ -57936,7 +58936,7 @@
 	db $0
 
 	; height, width
-	db 5, 4
+	db CELADON_MANSION_2F_HEIGHT, CELADON_MANSION_2F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(CeladonMansion2F_BlockData), CeladonMansion2F_BlockData
@@ -57956,7 +58956,7 @@
 	db $0
 
 	; height, width
-	db 5, 4
+	db CELADON_MANSION_3F_HEIGHT, CELADON_MANSION_3F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(CeladonMansion3F_BlockData), CeladonMansion3F_BlockData
@@ -57976,7 +58976,7 @@
 	db $1
 
 	; height, width
-	db 5, 4
+	db CELADON_MANSION_ROOF_HEIGHT, CELADON_MANSION_ROOF_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(CeladonMansionRoof_BlockData), CeladonMansionRoof_BlockData
@@ -57996,7 +58996,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db CELADON_MANSION_ROOF_HOUSE_HEIGHT, CELADON_MANSION_ROOF_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -58016,7 +59016,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db CELADON_POKECENTER_1F_HEIGHT, CELADON_POKECENTER_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivinePokeCenter1F_BlockData), OlivinePokeCenter1F_BlockData
@@ -58036,7 +59036,7 @@
 	db $0
 
 	; height, width
-	db 4, 8
+	db CELADON_POKECENTER_2F_BETA_HEIGHT, CELADON_POKECENTER_2F_BETA_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(CinnabarPokeCenter2FBeta_BlockData), CinnabarPokeCenter2FBeta_BlockData
@@ -58056,7 +59056,7 @@
 	db $0
 
 	; height, width
-	db 7, 10
+	db CELADON_GAME_CORNER_HEIGHT, CELADON_GAME_CORNER_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(CeladonGameCorner_BlockData), CeladonGameCorner_BlockData
@@ -58076,7 +59076,7 @@
 	db $0
 
 	; height, width
-	db 3, 3
+	db CELADON_GAME_CORNER_PRIZE_ROOM_HEIGHT, CELADON_GAME_CORNER_PRIZE_ROOM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(CeladonGameCornerPrizeRoom_BlockData), CeladonGameCornerPrizeRoom_BlockData
@@ -58096,7 +59096,7 @@
 	db $0
 
 	; height, width
-	db 9, 5
+	db CELADON_GYM_HEIGHT, CELADON_GYM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(CeladonGym_BlockData), CeladonGym_BlockData
@@ -58116,7 +59116,7 @@
 	db $0
 
 	; height, width
-	db 4, 6
+	db CELADON_CAFE_HEIGHT, CELADON_CAFE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(CeladonCafe_BlockData), CeladonCafe_BlockData
@@ -58136,7 +59136,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db ROUTE_16_FUCHSIA_SPEECH_HOUSE_HEIGHT, ROUTE_16_FUCHSIA_SPEECH_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -58156,7 +59156,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db ROUTE_16_GATE_HEIGHT, ROUTE_16_GATE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route38EcruteakGate_BlockData), Route38EcruteakGate_BlockData
@@ -58176,7 +59176,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db ROUTE_7_SAFFRON_GATE_HEIGHT, ROUTE_7_SAFFRON_GATE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route38EcruteakGate_BlockData), Route38EcruteakGate_BlockData
@@ -58196,7 +59196,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db ROUTE_17_18_GATE_HEIGHT, ROUTE_17_18_GATE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route38EcruteakGate_BlockData), Route38EcruteakGate_BlockData
@@ -58216,7 +59216,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db MANIAS_HOUSE_HEIGHT, MANIAS_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -58236,7 +59236,7 @@
 	db $0
 
 	; height, width
-	db 9, 5
+	db CIANWOOD_GYM_HEIGHT, CIANWOOD_GYM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(CianwoodGym_BlockData), CianwoodGym_BlockData
@@ -58256,7 +59256,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db CIANWOOD_POKECENTER_1F_HEIGHT, CIANWOOD_POKECENTER_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivinePokeCenter1F_BlockData), OlivinePokeCenter1F_BlockData
@@ -58276,7 +59276,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db CIANWOOD_PHARMACY_HEIGHT, CIANWOOD_PHARMACY_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -58296,7 +59296,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db CIANWOOD_CITY_PHOTO_STUDIO_HEIGHT, CIANWOOD_CITY_PHOTO_STUDIO_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -58316,7 +59316,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db CIANWOOD_LUGIA_SPEECH_HOUSE_HEIGHT, CIANWOOD_LUGIA_SPEECH_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -58336,7 +59336,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db POKE_SEERS_HOUSE_HEIGHT, POKE_SEERS_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -58356,7 +59356,7 @@
 	db $0
 
 	; height, width
-	db 5, 8
+	db BATTLE_TOWER_1F_HEIGHT, BATTLE_TOWER_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(BattleTower1F_BlockData), BattleTower1F_BlockData
@@ -58376,7 +59376,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db BATTLE_TOWER_BATTLE_ROOM_HEIGHT, BATTLE_TOWER_BATTLE_ROOM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(BattleTowerBattleRoom_BlockData), BattleTowerBattleRoom_BlockData
@@ -58396,7 +59396,7 @@
 	db $0
 
 	; height, width
-	db 2, 2
+	db BATTLE_TOWER_ELEVATOR_HEIGHT, BATTLE_TOWER_ELEVATOR_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(BattleTowerElevator_BlockData), BattleTowerElevator_BlockData
@@ -58416,7 +59416,7 @@
 	db $0
 
 	; height, width
-	db 2, 11
+	db BATTLE_TOWER_HALLWAY_HEIGHT, BATTLE_TOWER_HALLWAY_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(BattleTowerHallway_BlockData), BattleTowerHallway_BlockData
@@ -58436,7 +59436,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db ROUTE_40_BATTLE_TOWER_GATE_HEIGHT, ROUTE_40_BATTLE_TOWER_GATE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SafariZoneFuchsiaGateBeta_BlockData), SafariZoneFuchsiaGateBeta_BlockData
@@ -58456,7 +59456,7 @@
 	db $5
 
 	; height, width
-	db 14, 10
+	db BATTLE_TOWER_OUTSIDE_HEIGHT, BATTLE_TOWER_OUTSIDE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(BattleTowerOutside_BlockData), BattleTowerOutside_BlockData
@@ -58476,7 +59476,7 @@
 	db $0
 
 	; height, width
-	db 9, 5
+	db VIRIDIAN_GYM_HEIGHT, VIRIDIAN_GYM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(ViridianGym_BlockData), ViridianGym_BlockData
@@ -58496,7 +59496,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db VIRIDIAN_NICKNAME_SPEECH_HOUSE_HEIGHT, VIRIDIAN_NICKNAME_SPEECH_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -58516,7 +59516,7 @@
 	db $0
 
 	; height, width
-	db 7, 5
+	db TRAINER_HOUSE_1F_HEIGHT, TRAINER_HOUSE_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(TrainerHouse1F_BlockData), TrainerHouse1F_BlockData
@@ -58536,7 +59536,7 @@
 	db $0
 
 	; height, width
-	db 8, 5
+	db TRAINER_HOUSE_B1F_HEIGHT, TRAINER_HOUSE_B1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(TrainerHouseB1F_BlockData), TrainerHouseB1F_BlockData
@@ -58556,7 +59556,7 @@
 	db $0
 
 	; height, width
-	db 4, 6
+	db VIRIDIAN_MART_HEIGHT, VIRIDIAN_MART_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineMart_BlockData), OlivineMart_BlockData
@@ -58576,7 +59576,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db VIRIDIAN_POKECENTER_1F_HEIGHT, VIRIDIAN_POKECENTER_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivinePokeCenter1F_BlockData), OlivinePokeCenter1F_BlockData
@@ -58596,7 +59596,7 @@
 	db $0
 
 	; height, width
-	db 4, 8
+	db VIRIDIAN_POKECENTER_2F_BETA_HEIGHT, VIRIDIAN_POKECENTER_2F_BETA_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(CinnabarPokeCenter2FBeta_BlockData), CinnabarPokeCenter2FBeta_BlockData
@@ -58616,7 +59616,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db ROUTE_2_NUGGET_SPEECH_HOUSE_HEIGHT, ROUTE_2_NUGGET_SPEECH_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -58636,7 +59636,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db ROUTE_2_GATE_HEIGHT, ROUTE_2_GATE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SafariZoneFuchsiaGateBeta_BlockData), SafariZoneFuchsiaGateBeta_BlockData
@@ -58656,7 +59656,7 @@
 	db $0
 
 	; height, width
-	db 9, 10
+	db VICTORY_ROAD_GATE_HEIGHT, VICTORY_ROAD_GATE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(VictoryRoadGate_BlockData), VictoryRoadGate_BlockData
@@ -58676,7 +59676,7 @@
 	db $0
 
 	; height, width
-	db 6, 5
+	db ELMS_LAB_HEIGHT, ELMS_LAB_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(ElmsLab_BlockData), ElmsLab_BlockData
@@ -58696,7 +59696,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db KRISS_HOUSE_1F_HEIGHT, KRISS_HOUSE_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(KrissHouse1F_BlockData), KrissHouse1F_BlockData
@@ -58716,7 +59716,7 @@
 	db $0
 
 	; height, width
-	db 3, 4
+	db KRISS_HOUSE_2F_HEIGHT, KRISS_HOUSE_2F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(KrissHouse2F_BlockData), KrissHouse2F_BlockData
@@ -58736,7 +59736,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db KRISS_NEIGHBORS_HOUSE_HEIGHT, KRISS_NEIGHBORS_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -58756,7 +59756,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db ELMS_HOUSE_HEIGHT, ELMS_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(ElmsHouse_BlockData), ElmsHouse_BlockData
@@ -58776,7 +59776,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db ROUTE_26_HEAL_SPEECH_HOUSE_HEIGHT, ROUTE_26_HEAL_SPEECH_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -58796,7 +59796,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db ROUTE_26_DAY_OF_WEEK_SIBLINGS_HOUSE_HEIGHT, ROUTE_26_DAY_OF_WEEK_SIBLINGS_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -58816,7 +59816,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db ROUTE_27_SANDSTORM_HOUSE_HEIGHT, ROUTE_27_SANDSTORM_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -58836,7 +59836,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db ROUTE_29_46_GATE_HEIGHT, ROUTE_29_46_GATE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SafariZoneFuchsiaGateBeta_BlockData), SafariZoneFuchsiaGateBeta_BlockData
@@ -58856,7 +59856,7 @@
 	db $0
 
 	; height, width
-	db 6, 5
+	db FIGHTING_DOJO_HEIGHT, FIGHTING_DOJO_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(FightingDojo_BlockData), FightingDojo_BlockData
@@ -58876,7 +59876,7 @@
 	db $0
 
 	; height, width
-	db 9, 10
+	db SAFFRON_GYM_HEIGHT, SAFFRON_GYM_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SaffronGym_BlockData), SaffronGym_BlockData
@@ -58896,7 +59896,7 @@
 	db $0
 
 	; height, width
-	db 4, 6
+	db SAFFRON_MART_HEIGHT, SAFFRON_MART_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineMart_BlockData), OlivineMart_BlockData
@@ -58916,7 +59916,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db SAFFRON_POKECENTER_1F_HEIGHT, SAFFRON_POKECENTER_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivinePokeCenter1F_BlockData), OlivinePokeCenter1F_BlockData
@@ -58936,7 +59936,7 @@
 	db $0
 
 	; height, width
-	db 4, 8
+	db SAFFRON_POKECENTER_2F_BETA_HEIGHT, SAFFRON_POKECENTER_2F_BETA_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(CinnabarPokeCenter2FBeta_BlockData), CinnabarPokeCenter2FBeta_BlockData
@@ -58956,7 +59956,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db MR_PSYCHICS_HOUSE_HEIGHT, MR_PSYCHICS_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -58976,7 +59976,7 @@
 	db $0
 
 	; height, width
-	db 9, 10
+	db SAFFRON_TRAIN_STATION_HEIGHT, SAFFRON_TRAIN_STATION_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SaffronTrainStation_BlockData), SaffronTrainStation_BlockData
@@ -58996,7 +59996,7 @@
 	db $0
 
 	; height, width
-	db 4, 8
+	db SILPH_CO_1F_HEIGHT, SILPH_CO_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SilphCo1F_BlockData), SilphCo1F_BlockData
@@ -59016,7 +60016,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db COPYCATS_HOUSE_1F_HEIGHT, COPYCATS_HOUSE_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(CopycatsHouse1F_BlockData), CopycatsHouse1F_BlockData
@@ -59036,7 +60036,7 @@
 	db $0
 
 	; height, width
-	db 3, 5
+	db COPYCATS_HOUSE_2F_HEIGHT, COPYCATS_HOUSE_2F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(CopycatsHouse2F_BlockData), CopycatsHouse2F_BlockData
@@ -59056,7 +60056,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db ROUTE_5_UNDERGROUND_ENTRANCE_HEIGHT, ROUTE_5_UNDERGROUND_ENTRANCE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route6UndergroundEntrance_BlockData), Route6UndergroundEntrance_BlockData
@@ -59076,7 +60076,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db ROUTE_5_SAFFRON_CITY_GATE_HEIGHT, ROUTE_5_SAFFRON_CITY_GATE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(SafariZoneFuchsiaGateBeta_BlockData), SafariZoneFuchsiaGateBeta_BlockData
@@ -59096,7 +60096,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db ROUTE_5_CLEANSE_TAG_SPEECH_HOUSE_HEIGHT, ROUTE_5_CLEANSE_TAG_SPEECH_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -59116,7 +60116,7 @@
 	db $0
 
 	; height, width
-	db 4, 6
+	db CHERRYGROVE_MART_HEIGHT, CHERRYGROVE_MART_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineMart_BlockData), OlivineMart_BlockData
@@ -59136,7 +60136,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db CHERRYGROVE_POKECENTER_1F_HEIGHT, CHERRYGROVE_POKECENTER_1F_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivinePokeCenter1F_BlockData), OlivinePokeCenter1F_BlockData
@@ -59156,7 +60156,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db CHERRYGROVE_GYM_SPEECH_HOUSE_HEIGHT, CHERRYGROVE_GYM_SPEECH_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -59176,7 +60176,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db GUIDE_GENTS_HOUSE_HEIGHT, GUIDE_GENTS_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -59196,7 +60196,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db CHERRYGROVE_EVOLUTION_SPEECH_HOUSE_HEIGHT, CHERRYGROVE_EVOLUTION_SPEECH_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -59216,7 +60216,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db ROUTE_30_BERRY_SPEECH_HOUSE_HEIGHT, ROUTE_30_BERRY_SPEECH_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(OlivineVoltorbHouse_BlockData), OlivineVoltorbHouse_BlockData
@@ -59236,7 +60236,7 @@
 	db $0
 
 	; height, width
-	db 4, 4
+	db MR_POKEMONS_HOUSE_HEIGHT, MR_POKEMONS_HOUSE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(MrPokemonsHouse_BlockData), MrPokemonsHouse_BlockData
@@ -59256,7 +60256,7 @@
 	db $0
 
 	; height, width
-	db 4, 5
+	db ROUTE_31_VIOLET_GATE_HEIGHT, ROUTE_31_VIOLET_GATE_WIDTH
 
 	; blockdata (bank-then-pointer)
 	dbw BANK(Route38EcruteakGate_BlockData), Route38EcruteakGate_BlockData