shithub: pokered

Download patch

ref: e2c99f19103856426966e30cf1910d07995bb936
parent: 2fe1505babaf02b995cc0d9c3a827b798935b19a
author: Rangi <remy.oukaour+rangi42@gmail.com>
date: Mon Aug 17 12:54:59 EDT 2020

Use def_* macros for automatic map event counts

--- a/data/maps/objects/AgathasRoom.asm
+++ b/data/maps/objects/AgathasRoom.asm
@@ -1,15 +1,15 @@
 AgathasRoom_Object:
 	db $0 ; border block
 
-	db 4 ; warps
+	def_warps
 	warp 4, 11, 2, BRUNOS_ROOM
 	warp 5, 11, 3, BRUNOS_ROOM
 	warp 4, 0, 0, LANCES_ROOM
 	warp 5, 0, 0, LANCES_ROOM
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_AGATHA, 5, 2, STAY, DOWN, 1, OPP_AGATHA, 1
 
 	; warp-to
--- a/data/maps/objects/BikeShop.asm
+++ b/data/maps/objects/BikeShop.asm
@@ -1,13 +1,13 @@
 BikeShop_Object:
 	db $e ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 4, LAST_MAP
 	warp 3, 7, 4, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_BIKE_SHOP_CLERK, 6, 2, STAY, NONE, 1 ; person
 	object SPRITE_MIDDLE_AGED_WOMAN, 5, 6, WALK, UP_DOWN, 2 ; person
 	object SPRITE_YOUNGSTER, 1, 3, STAY, UP, 3 ; person
--- a/data/maps/objects/BillsHouse.asm
+++ b/data/maps/objects/BillsHouse.asm
@@ -1,13 +1,13 @@
 BillsHouse_Object:
 	db $d ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 0, LAST_MAP
 	warp 3, 7, 0, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_MONSTER, 6, 5, STAY, NONE, 1 ; person
 	object SPRITE_SUPER_NERD, 4, 4, STAY, NONE, 2 ; person
 	object SPRITE_SUPER_NERD, 6, 5, STAY, NONE, 3 ; person
--- a/data/maps/objects/BluesHouse.asm
+++ b/data/maps/objects/BluesHouse.asm
@@ -1,13 +1,13 @@
 BluesHouse_Object:
 	db $a ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 1, LAST_MAP
 	warp 3, 7, 1, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_DAISY, 2, 3, STAY, RIGHT, 1 ; Daisy, sitting by map
 	object SPRITE_DAISY, 6, 4, WALK, UP_DOWN, 2, 0 ; Daisy, walking around
 	object SPRITE_POKEDEX, 3, 3, STAY, NONE, 3, 0 ; map on table
--- a/data/maps/objects/BrunosRoom.asm
+++ b/data/maps/objects/BrunosRoom.asm
@@ -1,15 +1,15 @@
 BrunosRoom_Object:
 	db $3 ; border block
 
-	db 4 ; warps
+	def_warps
 	warp 4, 11, 2, LORELEIS_ROOM
 	warp 5, 11, 3, LORELEIS_ROOM
 	warp 4, 0, 0, AGATHAS_ROOM
 	warp 5, 0, 1, AGATHAS_ROOM
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_BRUNO, 5, 2, STAY, DOWN, 1, OPP_BRUNO, 1
 
 	; warp-to
--- a/data/maps/objects/CeladonChiefHouse.asm
+++ b/data/maps/objects/CeladonChiefHouse.asm
@@ -1,13 +1,13 @@
 CeladonChiefHouse_Object:
 	db $f ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 11, LAST_MAP
 	warp 3, 7, 11, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_GRAMPS, 4, 2, STAY, DOWN, 1 ; person
 	object SPRITE_ROCKET, 1, 4, WALK, ANY_DIR, 2 ; person
 	object SPRITE_SAILOR, 5, 6, STAY, LEFT, 3 ; person
--- a/data/maps/objects/CeladonCity.asm
+++ b/data/maps/objects/CeladonCity.asm
@@ -1,7 +1,7 @@
 CeladonCity_Object:
 	db $f ; border block
 
-	db 13 ; warps
+	def_warps
 	warp 8, 13, 0, CELADON_MART_1F
 	warp 10, 13, 2, CELADON_MART_1F
 	warp 24, 9, 0, CELADON_MANSION_1F
@@ -16,7 +16,7 @@
 	warp 35, 27, 0, CELADON_CHIEF_HOUSE
 	warp 43, 27, 0, CELADON_HOTEL
 
-	db 9 ; signs
+	def_signs
 	sign 27, 15, 10 ; CeladonCityText10
 	sign 19, 15, 11 ; CeladonCityText11
 	sign 42, 9, 12 ; PokeCenterSignText
@@ -27,7 +27,7 @@
 	sign 33, 21, 17 ; CeladonCityText17
 	sign 27, 21, 18 ; CeladonCityText18
 
-	db 9 ; objects
+	def_objects
 	object SPRITE_LITTLE_GIRL, 8, 17, WALK, ANY_DIR, 1 ; person
 	object SPRITE_GRAMPS, 11, 28, STAY, UP, 2 ; person
 	object SPRITE_GIRL, 14, 19, WALK, UP_DOWN, 3 ; person
--- a/data/maps/objects/CeladonDiner.asm
+++ b/data/maps/objects/CeladonDiner.asm
@@ -1,13 +1,13 @@
 CeladonDiner_Object:
 	db $f ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 3, 7, 10, LAST_MAP
 	warp 4, 7, 10, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 5 ; objects
+	def_objects
 	object SPRITE_COOK, 8, 5, WALK, LEFT_RIGHT, 1 ; person
 	object SPRITE_MIDDLE_AGED_WOMAN, 7, 2, STAY, NONE, 2 ; person
 	object SPRITE_MIDDLE_AGED_MAN, 1, 4, STAY, DOWN, 3 ; person
--- a/data/maps/objects/CeladonGym.asm
+++ b/data/maps/objects/CeladonGym.asm
@@ -1,13 +1,13 @@
 CeladonGym_Object:
 	db $3 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 4, 17, 6, LAST_MAP
 	warp 5, 17, 6, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 8 ; objects
+	def_objects
 	object SPRITE_ERIKA, 4, 3, STAY, DOWN, 1, OPP_ERIKA, 1
 	object SPRITE_COOLTRAINER_F, 2, 11, STAY, RIGHT, 2, OPP_LASS, 17
 	object SPRITE_BEAUTY, 7, 10, STAY, LEFT, 3, OPP_BEAUTY, 1
--- a/data/maps/objects/CeladonHotel.asm
+++ b/data/maps/objects/CeladonHotel.asm
@@ -1,13 +1,13 @@
 CeladonHotel_Object:
 	db $0 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 3, 7, 12, LAST_MAP
 	warp 4, 7, 12, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_GRANNY, 3, 1, STAY, DOWN, 1 ; person
 	object SPRITE_BEAUTY, 2, 4, STAY, NONE, 2 ; person
 	object SPRITE_SUPER_NERD, 8, 4, WALK, LEFT_RIGHT, 3 ; person
--- a/data/maps/objects/CeladonMansion1F.asm
+++ b/data/maps/objects/CeladonMansion1F.asm
@@ -1,7 +1,7 @@
 CeladonMansion1F_Object:
 	db $f ; border block
 
-	db 5 ; warps
+	def_warps
 	warp 4, 11, 2, LAST_MAP
 	warp 5, 11, 2, LAST_MAP
 	warp 4, 0, 4, LAST_MAP
@@ -8,10 +8,10 @@
 	warp 7, 1, 1, CELADON_MANSION_2F
 	warp 2, 1, 2, CELADON_MANSION_2F
 
-	db 1 ; signs
+	def_signs
 	sign 4, 9, 5 ; CeladonMansion1Text5
 
-	db 4 ; objects
+	def_objects
 	object SPRITE_MONSTER, 0, 5, STAY, RIGHT, 1 ; person
 	object SPRITE_GRANNY, 1, 5, STAY, DOWN, 2 ; person
 	object SPRITE_FAIRY, 1, 8, WALK, LEFT_RIGHT, 3 ; person
--- a/data/maps/objects/CeladonMansion2F.asm
+++ b/data/maps/objects/CeladonMansion2F.asm
@@ -1,16 +1,16 @@
 CeladonMansion2F_Object:
 	db $f ; border block
 
-	db 4 ; warps
+	def_warps
 	warp 6, 1, 0, CELADON_MANSION_3F
 	warp 7, 1, 3, CELADON_MANSION_1F
 	warp 2, 1, 4, CELADON_MANSION_1F
 	warp 4, 1, 3, CELADON_MANSION_3F
 
-	db 1 ; signs
+	def_signs
 	sign 4, 9, 1 ; CeladonMansion2Text1
 
-	db 0 ; objects
+	def_objects
 
 	; warp-to
 	warp_to 6, 1, CELADON_MANSION_2F_WIDTH ; CELADON_MANSION_3F
--- a/data/maps/objects/CeladonMansion3F.asm
+++ b/data/maps/objects/CeladonMansion3F.asm
@@ -1,19 +1,19 @@
 CeladonMansion3F_Object:
 	db $f ; border block
 
-	db 4 ; warps
+	def_warps
 	warp 6, 1, 0, CELADON_MANSION_2F
 	warp 7, 1, 0, CELADON_MANSION_ROOF
 	warp 2, 1, 1, CELADON_MANSION_ROOF
 	warp 4, 1, 3, CELADON_MANSION_2F
 
-	db 4 ; signs
+	def_signs
 	sign 1, 3, 5 ; CeladonMansion3Text5
 	sign 4, 3, 6 ; CeladonMansion3Text6
 	sign 1, 6, 7 ; CeladonMansion3Text7
 	sign 4, 9, 8 ; CeladonMansion3Text8
 
-	db 4 ; objects
+	def_objects
 	object SPRITE_BIKE_SHOP_CLERK, 0, 4, STAY, UP, 1 ; person
 	object SPRITE_CLERK, 3, 4, STAY, UP, 2 ; person
 	object SPRITE_SUPER_NERD, 0, 7, STAY, UP, 3 ; person
--- a/data/maps/objects/CeladonMansionRoof.asm
+++ b/data/maps/objects/CeladonMansionRoof.asm
@@ -1,15 +1,15 @@
 CeladonMansionRoof_Object:
 	db $9 ; border block
 
-	db 3 ; warps
+	def_warps
 	warp 6, 1, 1, CELADON_MANSION_3F
 	warp 2, 1, 2, CELADON_MANSION_3F
 	warp 2, 7, 0, CELADON_MANSION_ROOF_HOUSE
 
-	db 1 ; signs
+	def_signs
 	sign 3, 7, 1 ; CeladonMansion4Text1
 
-	db 0 ; objects
+	def_objects
 
 	; warp-to
 	warp_to 6, 1, CELADON_MANSION_ROOF_WIDTH ; CELADON_MANSION_3F
--- a/data/maps/objects/CeladonMansionRoofHouse.asm
+++ b/data/maps/objects/CeladonMansionRoofHouse.asm
@@ -1,13 +1,13 @@
 CeladonMansionRoofHouse_Object:
 	db $a ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 2, CELADON_MANSION_ROOF
 	warp 3, 7, 2, CELADON_MANSION_ROOF
 
-	db 0 ; signs
+	def_signs
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_HIKER, 2, 2, STAY, DOWN, 1 ; person
 	object SPRITE_POKE_BALL, 4, 3, STAY, NONE, 2 ; person
 
--- a/data/maps/objects/CeladonMart1F.asm
+++ b/data/maps/objects/CeladonMart1F.asm
@@ -1,7 +1,7 @@
 CeladonMart1F_Object:
 	db $f ; border block
 
-	db 6 ; warps
+	def_warps
 	warp 2, 7, 0, LAST_MAP
 	warp 3, 7, 0, LAST_MAP
 	warp 16, 7, 1, LAST_MAP
@@ -9,11 +9,11 @@
 	warp 12, 1, 0, CELADON_MART_2F
 	warp 1, 1, 0, CELADON_MART_ELEVATOR
 
-	db 2 ; signs
+	def_signs
 	sign 11, 4, 2 ; CeladonMart1Text2
 	sign 14, 1, 3 ; CeladonMart1Text3
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_LINK_RECEPTIONIST, 8, 3, STAY, DOWN, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/CeladonMart2F.asm
+++ b/data/maps/objects/CeladonMart2F.asm
@@ -1,15 +1,15 @@
 CeladonMart2F_Object:
 	db $f ; border block
 
-	db 3 ; warps
+	def_warps
 	warp 12, 1, 4, CELADON_MART_1F
 	warp 16, 1, 1, CELADON_MART_3F
 	warp 1, 1, 0, CELADON_MART_ELEVATOR
 
-	db 1 ; signs
+	def_signs
 	sign 14, 1, 5 ; CeladonMart2Text5
 
-	db 4 ; objects
+	def_objects
 	object SPRITE_CLERK, 5, 3, STAY, DOWN, 1 ; person
 	object SPRITE_CLERK, 6, 3, STAY, DOWN, 2 ; person
 	object SPRITE_MIDDLE_AGED_MAN, 19, 5, STAY, NONE, 3 ; person
--- a/data/maps/objects/CeladonMart3F.asm
+++ b/data/maps/objects/CeladonMart3F.asm
@@ -1,12 +1,12 @@
 CeladonMart3F_Object:
 	db $f ; border block
 
-	db 3 ; warps
+	def_warps
 	warp 12, 1, 0, CELADON_MART_4F
 	warp 16, 1, 1, CELADON_MART_2F
 	warp 1, 1, 0, CELADON_MART_ELEVATOR
 
-	db 12 ; signs
+	def_signs
 	sign 2, 4, 6 ; CeladonMart3Text6
 	sign 3, 4, 7 ; CeladonMart3Text7
 	sign 5, 4, 8 ; CeladonMart3Text8
@@ -20,7 +20,7 @@
 	sign 6, 1, 16 ; CeladonMart3Text16
 	sign 10, 1, 17 ; CeladonMart3Text17
 
-	db 5 ; objects
+	def_objects
 	object SPRITE_CLERK, 16, 5, STAY, NONE, 1 ; person
 	object SPRITE_GAMEBOY_KID, 11, 6, STAY, RIGHT, 2 ; person
 	object SPRITE_GAMEBOY_KID, 7, 2, STAY, DOWN, 3 ; person
--- a/data/maps/objects/CeladonMart4F.asm
+++ b/data/maps/objects/CeladonMart4F.asm
@@ -1,15 +1,15 @@
 CeladonMart4F_Object:
 	db $f ; border block
 
-	db 3 ; warps
+	def_warps
 	warp 12, 1, 0, CELADON_MART_3F
 	warp 16, 1, 1, CELADON_MART_5F
 	warp 1, 1, 0, CELADON_MART_ELEVATOR
 
-	db 1 ; signs
+	def_signs
 	sign 14, 1, 4 ; CeladonMart4Text4
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_CLERK, 5, 7, STAY, NONE, 1 ; person
 	object SPRITE_SUPER_NERD, 15, 5, WALK, LEFT_RIGHT, 2 ; person
 	object SPRITE_YOUNGSTER, 5, 2, WALK, LEFT_RIGHT, 3 ; person
--- a/data/maps/objects/CeladonMart5F.asm
+++ b/data/maps/objects/CeladonMart5F.asm
@@ -1,15 +1,15 @@
 CeladonMart5F_Object:
 	db $f ; border block
 
-	db 3 ; warps
+	def_warps
 	warp 12, 1, 0, CELADON_MART_ROOF
 	warp 16, 1, 1, CELADON_MART_4F
 	warp 1, 1, 0, CELADON_MART_ELEVATOR
 
-	db 1 ; signs
+	def_signs
 	sign 14, 1, 5 ; CeladonMart5Text5
 
-	db 4 ; objects
+	def_objects
 	object SPRITE_GENTLEMAN, 14, 5, WALK, UP_DOWN, 1 ; person
 	object SPRITE_SAILOR, 2, 6, STAY, NONE, 2 ; person
 	object SPRITE_CLERK, 5, 3, STAY, DOWN, 3 ; person
--- a/data/maps/objects/CeladonMartElevator.asm
+++ b/data/maps/objects/CeladonMartElevator.asm
@@ -1,14 +1,14 @@
 CeladonMartElevator_Object:
 	db $f ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 1, 3, 5, CELADON_MART_1F
 	warp 2, 3, 5, CELADON_MART_1F
 
-	db 1 ; signs
+	def_signs
 	sign 3, 0, 1 ; CeladonMartElevatorText1
 
-	db 0 ; objects
+	def_objects
 
 	; warp-to
 	warp_to 1, 3, CELADON_MART_ELEVATOR_WIDTH ; CELADON_MART_1F
--- a/data/maps/objects/CeladonMartRoof.asm
+++ b/data/maps/objects/CeladonMartRoof.asm
@@ -1,16 +1,16 @@
 CeladonMartRoof_Object:
 	db $42 ; border block
 
-	db 1 ; warps
+	def_warps
 	warp 15, 2, 0, CELADON_MART_5F
 
-	db 4 ; signs
+	def_signs
 	sign 10, 1, 3 ; CeladonMartRoofText3
 	sign 11, 1, 4 ; CeladonMartRoofText4
 	sign 12, 2, 5 ; CeladonMartRoofText5
 	sign 13, 2, 6 ; CeladonMartRoofText6
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_SUPER_NERD, 10, 4, STAY, LEFT, 1 ; person
 	object SPRITE_LITTLE_GIRL, 5, 5, WALK, ANY_DIR, 2 ; person
 
--- a/data/maps/objects/CeladonPokecenter.asm
+++ b/data/maps/objects/CeladonPokecenter.asm
@@ -1,13 +1,13 @@
 CeladonPokecenter_Object:
 	db $0 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 3, 7, 5, LAST_MAP
 	warp 4, 7, 5, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 4 ; objects
+	def_objects
 	object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person
 	object SPRITE_GENTLEMAN, 7, 3, WALK, LEFT_RIGHT, 2 ; person
 	object SPRITE_BEAUTY, 10, 5, WALK, ANY_DIR, 3 ; person
--- a/data/maps/objects/CeruleanBadgeHouse.asm
+++ b/data/maps/objects/CeruleanBadgeHouse.asm
@@ -1,14 +1,14 @@
 CeruleanBadgeHouse_Object:
 	db $c ; border block
 
-	db 3 ; warps
+	def_warps
 	warp 2, 0, 9, LAST_MAP
 	warp 2, 7, 8, LAST_MAP
 	warp 3, 7, 8, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_MIDDLE_AGED_MAN, 5, 3, STAY, RIGHT, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/CeruleanCave1F.asm
+++ b/data/maps/objects/CeruleanCave1F.asm
@@ -1,7 +1,7 @@
 CeruleanCave1F_Object:
 	db $7d ; border block
 
-	db 9 ; warps
+	def_warps
 	warp 24, 17, 6, LAST_MAP
 	warp 25, 17, 6, LAST_MAP
 	warp 27, 1, 0, CERULEAN_CAVE_2F
@@ -12,9 +12,9 @@
 	warp 3, 11, 5, CERULEAN_CAVE_2F
 	warp 0, 6, 0, CERULEAN_CAVE_B1F
 
-	db 0 ; signs
+	def_signs
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_POKE_BALL, 7, 13, STAY, NONE, 1, FULL_RESTORE
 	object SPRITE_POKE_BALL, 19, 3, STAY, NONE, 2, MAX_ELIXER
 	object SPRITE_POKE_BALL, 5, 0, STAY, NONE, 3, NUGGET
--- a/data/maps/objects/CeruleanCave2F.asm
+++ b/data/maps/objects/CeruleanCave2F.asm
@@ -1,7 +1,7 @@
 CeruleanCave2F_Object:
 	db $7d ; border block
 
-	db 6 ; warps
+	def_warps
 	warp 29, 1, 2, CERULEAN_CAVE_1F
 	warp 22, 6, 3, CERULEAN_CAVE_1F
 	warp 19, 7, 4, CERULEAN_CAVE_1F
@@ -9,9 +9,9 @@
 	warp 1, 3, 6, CERULEAN_CAVE_1F
 	warp 3, 11, 7, CERULEAN_CAVE_1F
 
-	db 0 ; signs
+	def_signs
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_POKE_BALL, 29, 9, STAY, NONE, 1, PP_UP
 	object SPRITE_POKE_BALL, 4, 15, STAY, NONE, 2, ULTRA_BALL
 	object SPRITE_POKE_BALL, 13, 6, STAY, NONE, 3, FULL_RESTORE
--- a/data/maps/objects/CeruleanCaveB1F.asm
+++ b/data/maps/objects/CeruleanCaveB1F.asm
@@ -1,12 +1,12 @@
 CeruleanCaveB1F_Object:
 	db $7d ; border block
 
-	db 1 ; warps
+	def_warps
 	warp 3, 6, 8, CERULEAN_CAVE_1F
 
-	db 0 ; signs
+	def_signs
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_MONSTER, 27, 13, STAY, DOWN, 1, MEWTWO, 70
 	object SPRITE_POKE_BALL, 16, 9, STAY, NONE, 2, ULTRA_BALL
 	object SPRITE_POKE_BALL, 18, 1, STAY, NONE, 3, MAX_REVIVE
--- a/data/maps/objects/CeruleanCity.asm
+++ b/data/maps/objects/CeruleanCity.asm
@@ -1,7 +1,7 @@
 CeruleanCity_Object:
 	db $f ; border block
 
-	db 10 ; warps
+	def_warps
 	warp 27, 11, 0, CERULEAN_TRASHED_HOUSE
 	warp 13, 15, 0, CERULEAN_TRADE_HOUSE
 	warp 19, 17, 0, CERULEAN_POKECENTER
@@ -13,7 +13,7 @@
 	warp 9, 11, 1, CERULEAN_BADGE_HOUSE
 	warp 9, 9, 0, CERULEAN_BADGE_HOUSE
 
-	db 6 ; signs
+	def_signs
 	sign 23, 19, 12 ; CeruleanCityText12
 	sign 17, 29, 13 ; CeruleanCityText13
 	sign 26, 25, 14 ; MartSignText
@@ -21,7 +21,7 @@
 	sign 11, 25, 16 ; CeruleanCityText16
 	sign 27, 21, 17 ; CeruleanCityText17
 
-	db 11 ; objects
+	def_objects
 	object SPRITE_BLUE, 20, 2, STAY, DOWN, 1 ; person
 	object SPRITE_ROCKET, 30, 8, STAY, NONE, 2, OPP_ROCKET, 5
 	object SPRITE_COOLTRAINER_M, 31, 20, STAY, DOWN, 3 ; person
--- a/data/maps/objects/CeruleanGym.asm
+++ b/data/maps/objects/CeruleanGym.asm
@@ -1,13 +1,13 @@
 CeruleanGym_Object:
 	db $3 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 4, 13, 3, LAST_MAP
 	warp 5, 13, 3, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 4 ; objects
+	def_objects
 	object SPRITE_BRUNETTE_GIRL, 4, 2, STAY, DOWN, 1, OPP_MISTY, 1
 	object SPRITE_COOLTRAINER_F, 2, 3, STAY, RIGHT, 2, OPP_JR_TRAINER_F, 1
 	object SPRITE_SWIMMER, 8, 7, STAY, LEFT, 3, OPP_SWIMMER, 1
--- a/data/maps/objects/CeruleanMart.asm
+++ b/data/maps/objects/CeruleanMart.asm
@@ -1,13 +1,13 @@
 CeruleanMart_Object:
 	db $0 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 3, 7, 5, LAST_MAP
 	warp 4, 7, 5, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_CLERK, 0, 5, STAY, RIGHT, 1 ; person
 	object SPRITE_COOLTRAINER_M, 3, 4, WALK, UP_DOWN, 2 ; person
 	object SPRITE_COOLTRAINER_F, 6, 2, WALK, LEFT_RIGHT, 3 ; person
--- a/data/maps/objects/CeruleanPokecenter.asm
+++ b/data/maps/objects/CeruleanPokecenter.asm
@@ -1,13 +1,13 @@
 CeruleanPokecenter_Object:
 	db $0 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 3, 7, 2, LAST_MAP
 	warp 4, 7, 2, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 4 ; objects
+	def_objects
 	object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person
 	object SPRITE_SUPER_NERD, 10, 5, WALK, ANY_DIR, 2 ; person
 	object SPRITE_GENTLEMAN, 4, 3, STAY, DOWN, 3 ; person
--- a/data/maps/objects/CeruleanTradeHouse.asm
+++ b/data/maps/objects/CeruleanTradeHouse.asm
@@ -1,13 +1,13 @@
 CeruleanTradeHouse_Object:
 	db $a ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 1, LAST_MAP
 	warp 3, 7, 1, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_GRANNY, 5, 4, STAY, LEFT, 1 ; person
 	object SPRITE_GAMBLER, 1, 2, STAY, NONE, 2 ; person
 
--- a/data/maps/objects/CeruleanTrashedHouse.asm
+++ b/data/maps/objects/CeruleanTrashedHouse.asm
@@ -1,15 +1,15 @@
 CeruleanTrashedHouse_Object:
 	db $a ; border block
 
-	db 3 ; warps
+	def_warps
 	warp 2, 7, 0, LAST_MAP
 	warp 3, 7, 0, LAST_MAP
 	warp 3, 0, 7, LAST_MAP
 
-	db 1 ; signs
+	def_signs
 	sign 3, 0, 3 ; CeruleanHouseTrashedText3
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_FISHING_GURU, 2, 1, STAY, DOWN, 1 ; person
 	object SPRITE_GIRL, 5, 6, WALK, LEFT_RIGHT, 2 ; person
 
--- a/data/maps/objects/ChampionsRoom.asm
+++ b/data/maps/objects/ChampionsRoom.asm
@@ -1,15 +1,15 @@
 ChampionsRoom_Object:
 	db $3 ; border block
 
-	db 4 ; warps
+	def_warps
 	warp 3, 7, 1, LANCES_ROOM
 	warp 4, 7, 2, LANCES_ROOM
 	warp 3, 0, 0, HALL_OF_FAME
 	warp 4, 0, 0, HALL_OF_FAME
 
-	db 0 ; signs
+	def_signs
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_BLUE, 4, 2, STAY, DOWN, 1 ; person
 	object SPRITE_OAK, 3, 7, STAY, UP, 2 ; person
 
--- a/data/maps/objects/CinnabarGym.asm
+++ b/data/maps/objects/CinnabarGym.asm
@@ -1,13 +1,13 @@
 CinnabarGym_Object:
 	db $2e ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 16, 17, 1, LAST_MAP
 	warp 17, 17, 1, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 9 ; objects
+	def_objects
 	object SPRITE_MIDDLE_AGED_MAN, 3, 3, STAY, DOWN, 1, OPP_BLAINE, 1
 	object SPRITE_SUPER_NERD, 17, 2, STAY, DOWN, 2, OPP_SUPER_NERD, 9
 	object SPRITE_SUPER_NERD, 17, 8, STAY, DOWN, 3, OPP_BURGLAR, 4
--- a/data/maps/objects/CinnabarIsland.asm
+++ b/data/maps/objects/CinnabarIsland.asm
@@ -1,7 +1,7 @@
 CinnabarIsland_Object:
 	db $43 ; border block
 
-	db 5 ; warps
+	def_warps
 	warp 6, 3, 1, POKEMON_MANSION_1F
 	warp 18, 3, 0, CINNABAR_GYM
 	warp 6, 9, 0, CINNABAR_LAB
@@ -8,7 +8,7 @@
 	warp 11, 11, 0, CINNABAR_POKECENTER
 	warp 15, 11, 0, CINNABAR_MART
 
-	db 5 ; signs
+	def_signs
 	sign 9, 5, 3 ; CinnabarIslandText3
 	sign 16, 11, 4 ; MartSignText
 	sign 12, 11, 5 ; PokeCenterSignText
@@ -15,7 +15,7 @@
 	sign 9, 11, 6 ; CinnabarIslandText6
 	sign 13, 3, 7 ; CinnabarIslandText7
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_GIRL, 12, 5, WALK, LEFT_RIGHT, 1 ; person
 	object SPRITE_GAMBLER, 14, 6, STAY, NONE, 2 ; person
 
--- a/data/maps/objects/CinnabarLab.asm
+++ b/data/maps/objects/CinnabarLab.asm
@@ -1,7 +1,7 @@
 CinnabarLab_Object:
 	db $17 ; border block
 
-	db 5 ; warps
+	def_warps
 	warp 2, 7, 2, LAST_MAP
 	warp 3, 7, 2, LAST_MAP
 	warp 8, 4, 0, CINNABAR_LAB_TRADE_ROOM
@@ -8,13 +8,13 @@
 	warp 12, 4, 0, CINNABAR_LAB_METRONOME_ROOM
 	warp 16, 4, 0, CINNABAR_LAB_FOSSIL_ROOM
 
-	db 4 ; signs
+	def_signs
 	sign 3, 2, 2 ; Lab1Text2
 	sign 9, 4, 3 ; Lab1Text3
 	sign 13, 4, 4 ; Lab1Text4
 	sign 17, 4, 5 ; Lab1Text5
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_FISHING_GURU, 1, 3, STAY, NONE, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/CinnabarLabFossilRoom.asm
+++ b/data/maps/objects/CinnabarLabFossilRoom.asm
@@ -1,13 +1,13 @@
 CinnabarLabFossilRoom_Object:
 	db $17 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 4, CINNABAR_LAB
 	warp 3, 7, 4, CINNABAR_LAB
 
-	db 0 ; signs
+	def_signs
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_SCIENTIST, 5, 2, WALK, LEFT_RIGHT, 1 ; person
 	object SPRITE_SCIENTIST, 7, 6, STAY, UP, 2 ; person
 
--- a/data/maps/objects/CinnabarLabMetronomeRoom.asm
+++ b/data/maps/objects/CinnabarLabMetronomeRoom.asm
@@ -1,16 +1,16 @@
 CinnabarLabMetronomeRoom_Object:
 	db $17 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 3, CINNABAR_LAB
 	warp 3, 7, 3, CINNABAR_LAB
 
-	db 3 ; signs
+	def_signs
 	sign 0, 4, 3 ; Lab3Text3
 	sign 1, 4, 4 ; Lab3Text4
 	sign 2, 1, 5 ; Lab3Text5
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_SCIENTIST, 7, 2, STAY, DOWN, 1 ; person
 	object SPRITE_SCIENTIST, 2, 3, WALK, LEFT_RIGHT, 2 ; person
 
--- a/data/maps/objects/CinnabarLabTradeRoom.asm
+++ b/data/maps/objects/CinnabarLabTradeRoom.asm
@@ -1,13 +1,13 @@
 CinnabarLabTradeRoom_Object:
 	db $17 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 2, CINNABAR_LAB
 	warp 3, 7, 2, CINNABAR_LAB
 
-	db 0 ; signs
+	def_signs
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_SUPER_NERD, 3, 2, STAY, DOWN, 1 ; person
 	object SPRITE_GRAMPS, 1, 4, STAY, NONE, 2 ; person
 	object SPRITE_BEAUTY, 5, 5, STAY, UP, 3 ; person
--- a/data/maps/objects/CinnabarMart.asm
+++ b/data/maps/objects/CinnabarMart.asm
@@ -1,13 +1,13 @@
 CinnabarMart_Object:
 	db $0 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 3, 7, 4, LAST_MAP
 	warp 4, 7, 4, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_CLERK, 0, 5, STAY, RIGHT, 1 ; person
 	object SPRITE_ERIKA, 6, 2, STAY, NONE, 2 ; person
 	object SPRITE_SCIENTIST, 3, 4, STAY, NONE, 3 ; person
--- a/data/maps/objects/CinnabarPokecenter.asm
+++ b/data/maps/objects/CinnabarPokecenter.asm
@@ -1,13 +1,13 @@
 CinnabarPokecenter_Object:
 	db $0 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 3, 7, 3, LAST_MAP
 	warp 4, 7, 3, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 4 ; objects
+	def_objects
 	object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person
 	object SPRITE_COOLTRAINER_F, 9, 4, WALK, ANY_DIR, 2 ; person
 	object SPRITE_GENTLEMAN, 2, 6, STAY, NONE, 3 ; person
--- a/data/maps/objects/Colosseum.asm
+++ b/data/maps/objects/Colosseum.asm
@@ -1,9 +1,9 @@
 Colosseum_Object:
 	db $e ; border block
 
-	db 0 ; warps
+	def_warps
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_RED, 2, 2, STAY, 0, 1 ; person
--- a/data/maps/objects/CopycatsHouse1F.asm
+++ b/data/maps/objects/CopycatsHouse1F.asm
@@ -1,14 +1,14 @@
 CopycatsHouse1F_Object:
 	db $a ; border block
 
-	db 3 ; warps
+	def_warps
 	warp 2, 7, 0, LAST_MAP
 	warp 3, 7, 0, LAST_MAP
 	warp 7, 1, 0, COPYCATS_HOUSE_2F
 
-	db 0 ; signs
+	def_signs
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_MIDDLE_AGED_WOMAN, 2, 2, STAY, DOWN, 1 ; person
 	object SPRITE_MIDDLE_AGED_MAN, 5, 4, STAY, LEFT, 2 ; person
 	object SPRITE_FAIRY, 1, 4, WALK, UP_DOWN, 3 ; person
--- a/data/maps/objects/CopycatsHouse2F.asm
+++ b/data/maps/objects/CopycatsHouse2F.asm
@@ -1,14 +1,14 @@
 CopycatsHouse2F_Object:
 	db $a ; border block
 
-	db 1 ; warps
+	def_warps
 	warp 7, 1, 2, COPYCATS_HOUSE_1F
 
-	db 2 ; signs
+	def_signs
 	sign 3, 5, 6 ; CopycatsHouse2FText6
 	sign 0, 1, 7 ; CopycatsHouse2FText7
 
-	db 5 ; objects
+	def_objects
 	object SPRITE_BRUNETTE_GIRL, 4, 3, WALK, ANY_DIR, 1 ; person
 	object SPRITE_BIRD, 4, 6, WALK, LEFT_RIGHT, 2 ; person
 	object SPRITE_MONSTER, 5, 1, STAY, DOWN, 3 ; person
--- a/data/maps/objects/Daycare.asm
+++ b/data/maps/objects/Daycare.asm
@@ -1,13 +1,13 @@
 Daycare_Object:
 	db $a ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 4, LAST_MAP
 	warp 3, 7, 4, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_GENTLEMAN, 2, 3, STAY, RIGHT, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/DiglettsCave.asm
+++ b/data/maps/objects/DiglettsCave.asm
@@ -1,13 +1,13 @@
 DiglettsCave_Object:
 	db $19 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 5, 5, 2, DIGLETTS_CAVE_ROUTE_2
 	warp 37, 31, 2, DIGLETTS_CAVE_ROUTE_11
 
-	db 0 ; signs
+	def_signs
 
-	db 0 ; objects
+	def_objects
 
 	; warp-to
 	warp_to 5, 5, DIGLETTS_CAVE_WIDTH ; DIGLETTS_CAVE_ROUTE_2
--- a/data/maps/objects/DiglettsCaveRoute11.asm
+++ b/data/maps/objects/DiglettsCaveRoute11.asm
@@ -1,14 +1,14 @@
 DiglettsCaveRoute11_Object:
 	db $7d ; border block
 
-	db 3 ; warps
+	def_warps
 	warp 2, 7, 4, LAST_MAP
 	warp 3, 7, 4, LAST_MAP
 	warp 4, 4, 1, DIGLETTS_CAVE
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_GAMBLER, 2, 3, STAY, NONE, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/DiglettsCaveRoute2.asm
+++ b/data/maps/objects/DiglettsCaveRoute2.asm
@@ -1,14 +1,14 @@
 DiglettsCaveRoute2_Object:
 	db $7d ; border block
 
-	db 3 ; warps
+	def_warps
 	warp 2, 7, 0, LAST_MAP
 	warp 3, 7, 0, LAST_MAP
 	warp 4, 4, 0, DIGLETTS_CAVE
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_FISHING_GURU, 3, 3, STAY, NONE, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/FightingDojo.asm
+++ b/data/maps/objects/FightingDojo.asm
@@ -1,13 +1,13 @@
 FightingDojo_Object:
 	db $3 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 4, 11, 1, LAST_MAP
 	warp 5, 11, 1, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 7 ; objects
+	def_objects
 	object SPRITE_HIKER, 5, 3, STAY, DOWN, 1, OPP_BLACKBELT, 1
 	object SPRITE_HIKER, 3, 4, STAY, RIGHT, 2, OPP_BLACKBELT, 2
 	object SPRITE_HIKER, 3, 6, STAY, RIGHT, 3, OPP_BLACKBELT, 3
--- a/data/maps/objects/FuchsiaBillsGrandpasHouse.asm
+++ b/data/maps/objects/FuchsiaBillsGrandpasHouse.asm
@@ -1,13 +1,13 @@
 FuchsiaBillsGrandpasHouse_Object:
 	db $a ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 1, LAST_MAP
 	warp 3, 7, 1, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_MIDDLE_AGED_WOMAN, 2, 3, STAY, RIGHT, 1 ; person
 	object SPRITE_GAMBLER, 7, 2, STAY, UP, 2 ; person
 	object SPRITE_YOUNGSTER, 5, 5, STAY, NONE, 3 ; person
--- a/data/maps/objects/FuchsiaCity.asm
+++ b/data/maps/objects/FuchsiaCity.asm
@@ -1,7 +1,7 @@
 FuchsiaCity_Object:
 	db $f ; border block
 
-	db 9 ; warps
+	def_warps
 	warp 5, 13, 0, FUCHSIA_MART
 	warp 11, 27, 0, FUCHSIA_BILLS_GRANDPAS_HOUSE
 	warp 19, 27, 0, FUCHSIA_POKECENTER
@@ -12,7 +12,7 @@
 	warp 31, 27, 1, FUCHSIA_GOOD_ROD_HOUSE
 	warp 31, 24, 0, FUCHSIA_GOOD_ROD_HOUSE
 
-	db 14 ; signs
+	def_signs
 	sign 15, 23, 11 ; FuchsiaCityText11
 	sign 25, 15, 12 ; FuchsiaCityText12
 	sign 17, 5, 13 ; FuchsiaCityText13
@@ -28,7 +28,7 @@
 	sign 13, 15, 23 ; FuchsiaCityText23
 	sign 7, 7, 24 ; FuchsiaCityText24
 
-	db 10 ; objects
+	def_objects
 	object SPRITE_YOUNGSTER, 10, 12, WALK, LEFT_RIGHT, 1 ; person
 	object SPRITE_GAMBLER, 28, 17, WALK, LEFT_RIGHT, 2 ; person
 	object SPRITE_FISHER, 30, 14, STAY, DOWN, 3 ; person
--- a/data/maps/objects/FuchsiaGoodRodHouse.asm
+++ b/data/maps/objects/FuchsiaGoodRodHouse.asm
@@ -1,14 +1,14 @@
 FuchsiaGoodRodHouse_Object:
 	db $c ; border block
 
-	db 3 ; warps
+	def_warps
 	warp 2, 0, 8, LAST_MAP
 	warp 2, 7, 7, LAST_MAP
 	warp 3, 7, 7, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_FISHING_GURU, 5, 3, STAY, RIGHT, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/FuchsiaGym.asm
+++ b/data/maps/objects/FuchsiaGym.asm
@@ -1,13 +1,13 @@
 FuchsiaGym_Object:
 	db $3 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 4, 17, 5, LAST_MAP
 	warp 5, 17, 5, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 8 ; objects
+	def_objects
 	object SPRITE_KOGA, 4, 10, STAY, DOWN, 1, OPP_KOGA, 1
 	object SPRITE_ROCKER, 8, 13, STAY, DOWN, 2, OPP_JUGGLER, 7
 	object SPRITE_ROCKER, 7, 8, STAY, RIGHT, 3, OPP_JUGGLER, 3
--- a/data/maps/objects/FuchsiaMart.asm
+++ b/data/maps/objects/FuchsiaMart.asm
@@ -1,13 +1,13 @@
 FuchsiaMart_Object:
 	db $0 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 3, 7, 0, LAST_MAP
 	warp 4, 7, 0, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_CLERK, 0, 5, STAY, RIGHT, 1 ; person
 	object SPRITE_MIDDLE_AGED_MAN, 4, 2, STAY, NONE, 2 ; person
 	object SPRITE_COOLTRAINER_F, 6, 5, WALK, UP_DOWN, 3 ; person
--- a/data/maps/objects/FuchsiaMeetingRoom.asm
+++ b/data/maps/objects/FuchsiaMeetingRoom.asm
@@ -1,13 +1,13 @@
 FuchsiaMeetingRoom_Object:
 	db $17 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 4, 7, 6, LAST_MAP
 	warp 5, 7, 6, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_SAFARI_ZONE_WORKER, 4, 1, STAY, DOWN, 1 ; person
 	object SPRITE_SAFARI_ZONE_WORKER, 0, 2, STAY, UP, 2 ; person
 	object SPRITE_SAFARI_ZONE_WORKER, 10, 1, STAY, DOWN, 3 ; person
--- a/data/maps/objects/FuchsiaPokecenter.asm
+++ b/data/maps/objects/FuchsiaPokecenter.asm
@@ -1,13 +1,13 @@
 FuchsiaPokecenter_Object:
 	db $0 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 3, 7, 2, LAST_MAP
 	warp 4, 7, 2, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 4 ; objects
+	def_objects
 	object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person
 	object SPRITE_ROCKER, 2, 3, STAY, NONE, 2 ; person
 	object SPRITE_COOLTRAINER_F, 6, 5, WALK, LEFT_RIGHT, 3 ; person
--- a/data/maps/objects/GameCorner.asm
+++ b/data/maps/objects/GameCorner.asm
@@ -1,15 +1,15 @@
 GameCorner_Object:
 	db $f ; border block
 
-	db 3 ; warps
+	def_warps
 	warp 15, 17, 7, LAST_MAP
 	warp 16, 17, 7, LAST_MAP
 	warp 17, 4, 1, ROCKET_HIDEOUT_B1F
 
-	db 1 ; signs
+	def_signs
 	sign 9, 4, 12 ; CeladonGameCornerText12
 
-	db 11 ; objects
+	def_objects
 	object SPRITE_BEAUTY, 2, 6, STAY, DOWN, 1 ; person
 	object SPRITE_CLERK, 5, 6, STAY, DOWN, 2 ; person
 	object SPRITE_MIDDLE_AGED_MAN, 2, 10, STAY, LEFT, 3 ; person
--- a/data/maps/objects/GameCornerPrizeRoom.asm
+++ b/data/maps/objects/GameCornerPrizeRoom.asm
@@ -1,16 +1,16 @@
 GameCornerPrizeRoom_Object:
 	db $f ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 4, 7, 9, LAST_MAP
 	warp 5, 7, 9, LAST_MAP
 
-	db 3 ; signs
+	def_signs
 	sign 2, 2, 3 ; CeladonPrizeRoomText3
 	sign 4, 2, 4 ; CeladonPrizeRoomText4
 	sign 6, 2, 5 ; CeladonPrizeRoomText5
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_BALDING_GUY, 1, 4, STAY, NONE, 1 ; person
 	object SPRITE_GAMBLER, 7, 3, WALK, LEFT_RIGHT, 2 ; person
 
--- a/data/maps/objects/HallOfFame.asm
+++ b/data/maps/objects/HallOfFame.asm
@@ -1,13 +1,13 @@
 HallOfFame_Object:
 	db $3 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 4, 7, 2, CHAMPIONS_ROOM
 	warp 5, 7, 3, CHAMPIONS_ROOM
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_OAK, 5, 2, STAY, DOWN, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/IndigoPlateau.asm
+++ b/data/maps/objects/IndigoPlateau.asm
@@ -1,13 +1,13 @@
 IndigoPlateau_Object:
 	db $e ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 9, 5, 0, INDIGO_PLATEAU_LOBBY
 	warp 10, 5, 0, INDIGO_PLATEAU_LOBBY
 
-	db 0 ; signs
+	def_signs
 
-	db 0 ; objects
+	def_objects
 
 	; warp-to
 	warp_to 9, 5, INDIGO_PLATEAU_WIDTH ; INDIGO_PLATEAU_LOBBY
--- a/data/maps/objects/IndigoPlateauLobby.asm
+++ b/data/maps/objects/IndigoPlateauLobby.asm
@@ -1,14 +1,14 @@
 IndigoPlateauLobby_Object:
 	db $0 ; border block
 
-	db 3 ; warps
+	def_warps
 	warp 7, 11, 0, LAST_MAP
 	warp 8, 11, 1, LAST_MAP
 	warp 8, 0, 0, LORELEIS_ROOM
 
-	db 0 ; signs
+	def_signs
 
-	db 5 ; objects
+	def_objects
 	object SPRITE_NURSE, 7, 5, STAY, DOWN, 1 ; person
 	object SPRITE_GYM_GUIDE, 4, 9, STAY, RIGHT, 2 ; person
 	object SPRITE_COOLTRAINER_F, 5, 1, STAY, DOWN, 3 ; person
--- a/data/maps/objects/LancesRoom.asm
+++ b/data/maps/objects/LancesRoom.asm
@@ -1,14 +1,14 @@
 LancesRoom_Object:
 	db $3 ; border block
 
-	db 3 ; warps
+	def_warps
 	warp 24, 16, 2, AGATHAS_ROOM
 	warp 5, 0, 0, CHAMPIONS_ROOM
 	warp 6, 0, 0, CHAMPIONS_ROOM
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_LANCE, 6, 1, STAY, DOWN, 1, OPP_LANCE, 1
 
 	; warp-to
--- a/data/maps/objects/LavenderCuboneHouse.asm
+++ b/data/maps/objects/LavenderCuboneHouse.asm
@@ -1,13 +1,13 @@
 LavenderCuboneHouse_Object:
 	db $a ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 4, LAST_MAP
 	warp 3, 7, 4, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_MONSTER, 3, 5, STAY, UP, 1 ; person
 	object SPRITE_BRUNETTE_GIRL, 2, 4, STAY, RIGHT, 2 ; person
 
--- a/data/maps/objects/LavenderMart.asm
+++ b/data/maps/objects/LavenderMart.asm
@@ -1,13 +1,13 @@
 LavenderMart_Object:
 	db $0 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 3, 7, 3, LAST_MAP
 	warp 4, 7, 3, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_CLERK, 0, 5, STAY, RIGHT, 1 ; person
 	object SPRITE_BALDING_GUY, 3, 4, STAY, NONE, 2 ; person
 	object SPRITE_COOLTRAINER_M, 7, 2, STAY, NONE, 3 ; person
--- a/data/maps/objects/LavenderPokecenter.asm
+++ b/data/maps/objects/LavenderPokecenter.asm
@@ -1,13 +1,13 @@
 LavenderPokecenter_Object:
 	db $0 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 3, 7, 0, LAST_MAP
 	warp 4, 7, 0, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 4 ; objects
+	def_objects
 	object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person
 	object SPRITE_GENTLEMAN, 5, 3, STAY, NONE, 2 ; person
 	object SPRITE_LITTLE_GIRL, 2, 6, WALK, UP_DOWN, 3 ; person
--- a/data/maps/objects/LavenderTown.asm
+++ b/data/maps/objects/LavenderTown.asm
@@ -1,7 +1,7 @@
 LavenderTown_Object:
 	db $2c ; border block
 
-	db 6 ; warps
+	def_warps
 	warp 3, 5, 0, LAVENDER_POKECENTER
 	warp 14, 5, 0, POKEMON_TOWER_1F
 	warp 7, 9, 0, MR_FUJIS_HOUSE
@@ -9,7 +9,7 @@
 	warp 3, 13, 0, LAVENDER_CUBONE_HOUSE
 	warp 7, 13, 0, NAME_RATERS_HOUSE
 
-	db 6 ; signs
+	def_signs
 	sign 11, 9, 4 ; LavenderTownText4
 	sign 9, 3, 5 ; LavenderTownText5
 	sign 16, 13, 6 ; MartSignText
@@ -17,7 +17,7 @@
 	sign 5, 9, 8 ; LavenderTownText8
 	sign 17, 7, 9 ; LavenderTownText9
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_LITTLE_GIRL, 15, 9, WALK, ANY_DIR, 1 ; person
 	object SPRITE_COOLTRAINER_M, 9, 10, STAY, NONE, 2 ; person
 	object SPRITE_SUPER_NERD, 8, 7, WALK, LEFT_RIGHT, 3 ; person
--- a/data/maps/objects/LoreleisRoom.asm
+++ b/data/maps/objects/LoreleisRoom.asm
@@ -1,15 +1,15 @@
 LoreleisRoom_Object:
 	db $3 ; border block
 
-	db 4 ; warps
+	def_warps
 	warp 4, 11, 2, INDIGO_PLATEAU_LOBBY
 	warp 5, 11, 2, INDIGO_PLATEAU_LOBBY
 	warp 4, 0, 0, BRUNOS_ROOM
 	warp 5, 0, 1, BRUNOS_ROOM
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_LORELEI, 5, 2, STAY, DOWN, 1, OPP_LORELEI, 1
 
 	; warp-to
--- a/data/maps/objects/MrFujisHouse.asm
+++ b/data/maps/objects/MrFujisHouse.asm
@@ -1,13 +1,13 @@
 MrFujisHouse_Object:
 	db $a ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 2, LAST_MAP
 	warp 3, 7, 2, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 6 ; objects
+	def_objects
 	object SPRITE_SUPER_NERD, 3, 5, STAY, NONE, 1 ; person
 	object SPRITE_LITTLE_GIRL, 6, 3, STAY, DOWN, 2 ; person
 	object SPRITE_MONSTER, 6, 4, STAY, UP, 3 ; person
--- a/data/maps/objects/MrPsychicsHouse.asm
+++ b/data/maps/objects/MrPsychicsHouse.asm
@@ -1,13 +1,13 @@
 MrPsychicsHouse_Object:
 	db $a ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 7, LAST_MAP
 	warp 3, 7, 7, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_FISHING_GURU, 5, 3, STAY, LEFT, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/MtMoon1F.asm
+++ b/data/maps/objects/MtMoon1F.asm
@@ -1,7 +1,7 @@
 MtMoon1F_Object:
 	db $3 ; border block
 
-	db 5 ; warps
+	def_warps
 	warp 14, 35, 1, LAST_MAP
 	warp 15, 35, 1, LAST_MAP
 	warp 5, 5, 0, MT_MOON_B1F
@@ -8,10 +8,10 @@
 	warp 17, 11, 2, MT_MOON_B1F
 	warp 25, 15, 3, MT_MOON_B1F
 
-	db 1 ; signs
+	def_signs
 	sign 15, 23, 14 ; MtMoon1Text14
 
-	db 13 ; objects
+	def_objects
 	object SPRITE_HIKER, 5, 6, STAY, DOWN, 1, OPP_HIKER, 1
 	object SPRITE_YOUNGSTER, 12, 16, STAY, RIGHT, 2, OPP_YOUNGSTER, 3
 	object SPRITE_COOLTRAINER_F, 30, 4, STAY, DOWN, 3, OPP_LASS, 5
--- a/data/maps/objects/MtMoonB1F.asm
+++ b/data/maps/objects/MtMoonB1F.asm
@@ -1,7 +1,7 @@
 MtMoonB1F_Object:
 	db $3 ; border block
 
-	db 8 ; warps
+	def_warps
 	warp 5, 5, 2, MT_MOON_1F
 	warp 17, 11, 0, MT_MOON_B2F
 	warp 25, 9, 3, MT_MOON_1F
@@ -11,9 +11,9 @@
 	warp 23, 3, 3, MT_MOON_B2F
 	warp 27, 3, 2, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 0 ; objects
+	def_objects
 
 	; warp-to
 	warp_to 5, 5, MT_MOON_B1F_WIDTH ; MT_MOON_1F
--- a/data/maps/objects/MtMoonB2F.asm
+++ b/data/maps/objects/MtMoonB2F.asm
@@ -1,15 +1,15 @@
 MtMoonB2F_Object:
 	db $3 ; border block
 
-	db 4 ; warps
+	def_warps
 	warp 25, 9, 1, MT_MOON_B1F
 	warp 21, 17, 4, MT_MOON_B1F
 	warp 15, 27, 5, MT_MOON_B1F
 	warp 5, 7, 6, MT_MOON_B1F
 
-	db 0 ; signs
+	def_signs
 
-	db 9 ; objects
+	def_objects
 	object SPRITE_SUPER_NERD, 12, 8, STAY, RIGHT, 1, OPP_SUPER_NERD, 2
 	object SPRITE_ROCKET, 11, 16, STAY, DOWN, 2, OPP_ROCKET, 1
 	object SPRITE_ROCKET, 15, 22, STAY, DOWN, 3, OPP_ROCKET, 2
--- a/data/maps/objects/MtMoonPokecenter.asm
+++ b/data/maps/objects/MtMoonPokecenter.asm
@@ -1,13 +1,13 @@
 MtMoonPokecenter_Object:
 	db $0 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 3, 7, 0, LAST_MAP
 	warp 4, 7, 0, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 6 ; objects
+	def_objects
 	object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person
 	object SPRITE_YOUNGSTER, 4, 3, STAY, UP, 2 ; person
 	object SPRITE_GENTLEMAN, 7, 3, STAY, UP, 3 ; person
--- a/data/maps/objects/Museum1F.asm
+++ b/data/maps/objects/Museum1F.asm
@@ -1,7 +1,7 @@
 Museum1F_Object:
 	db $a ; border block
 
-	db 5 ; warps
+	def_warps
 	warp 10, 7, 0, LAST_MAP
 	warp 11, 7, 0, LAST_MAP
 	warp 16, 7, 1, LAST_MAP
@@ -8,9 +8,9 @@
 	warp 17, 7, 1, LAST_MAP
 	warp 7, 7, 0, MUSEUM_2F
 
-	db 0 ; signs
+	def_signs
 
-	db 5 ; objects
+	def_objects
 	object SPRITE_SCIENTIST, 12, 4, STAY, LEFT, 1 ; person
 	object SPRITE_GAMBLER, 1, 4, STAY, NONE, 2 ; person
 	object SPRITE_SCIENTIST, 15, 2, STAY, DOWN, 3 ; person
--- a/data/maps/objects/Museum2F.asm
+++ b/data/maps/objects/Museum2F.asm
@@ -1,14 +1,14 @@
 Museum2F_Object:
 	db $a ; border block
 
-	db 1 ; warps
+	def_warps
 	warp 7, 7, 4, MUSEUM_1F
 
-	db 2 ; signs
+	def_signs
 	sign 11, 2, 6 ; Museum2FText6
 	sign 2, 5, 7 ; Museum2FText7
 
-	db 5 ; objects
+	def_objects
 	object SPRITE_YOUNGSTER, 1, 7, WALK, LEFT_RIGHT, 1 ; person
 	object SPRITE_GRAMPS, 0, 5, STAY, DOWN, 2 ; person
 	object SPRITE_SCIENTIST, 7, 5, STAY, DOWN, 3 ; person
--- a/data/maps/objects/NameRatersHouse.asm
+++ b/data/maps/objects/NameRatersHouse.asm
@@ -1,13 +1,13 @@
 NameRatersHouse_Object:
 	db $a ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 5, LAST_MAP
 	warp 3, 7, 5, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_SILPH_PRESIDENT, 5, 3, STAY, LEFT, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/OaksLab.asm
+++ b/data/maps/objects/OaksLab.asm
@@ -1,13 +1,13 @@
 OaksLab_Object:
 	db $3 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 4, 11, 2, LAST_MAP
 	warp 5, 11, 2, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 11 ; objects
+	def_objects
 	object SPRITE_BLUE, 4, 3, STAY, NONE, 1, OPP_RIVAL1, 1
 	object SPRITE_POKE_BALL, 6, 3, STAY, NONE, 2 ; person
 	object SPRITE_POKE_BALL, 7, 3, STAY, NONE, 3 ; person
--- a/data/maps/objects/PalletTown.asm
+++ b/data/maps/objects/PalletTown.asm
@@ -1,18 +1,18 @@
 PalletTown_Object:
 	db $b ; border block
 
-	db 3 ; warps
+	def_warps
 	warp 5, 5, 0, REDS_HOUSE_1F
 	warp 13, 5, 0, BLUES_HOUSE
 	warp 12, 11, 1, OAKS_LAB
 
-	db 4 ; signs
+	def_signs
 	sign 13, 13, 4 ; PalletTownText4
 	sign 7, 9, 5 ; PalletTownText5
 	sign 3, 5, 6 ; PalletTownText6
 	sign 11, 5, 7 ; PalletTownText7
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_OAK, 8, 5, STAY, NONE, 1 ; person
 	object SPRITE_GIRL, 3, 8, WALK, ANY_DIR, 2 ; person
 	object SPRITE_FISHER, 11, 14, WALK, ANY_DIR, 3 ; person
--- a/data/maps/objects/PewterCity.asm
+++ b/data/maps/objects/PewterCity.asm
@@ -1,7 +1,7 @@
 PewterCity_Object:
 	db $a ; border block
 
-	db 7 ; warps
+	def_warps
 	warp 14, 7, 0, MUSEUM_1F
 	warp 19, 5, 2, MUSEUM_1F
 	warp 16, 17, 0, PEWTER_GYM
@@ -10,7 +10,7 @@
 	warp 7, 29, 0, PEWTER_SPEECH_HOUSE
 	warp 13, 25, 0, PEWTER_POKECENTER
 
-	db 7 ; signs
+	def_signs
 	sign 19, 29, 6 ; PewterCityText6
 	sign 33, 19, 7 ; PewterCityText7
 	sign 24, 17, 8 ; MartSignText
@@ -19,7 +19,7 @@
 	sign 11, 17, 11 ; PewterCityText11
 	sign 25, 23, 12 ; PewterCityText12
 
-	db 5 ; objects
+	def_objects
 	object SPRITE_COOLTRAINER_F, 8, 15, STAY, NONE, 1 ; person
 	object SPRITE_COOLTRAINER_M, 17, 25, STAY, NONE, 2 ; person
 	object SPRITE_SUPER_NERD, 27, 17, STAY, NONE, 3 ; person
--- a/data/maps/objects/PewterGym.asm
+++ b/data/maps/objects/PewterGym.asm
@@ -1,13 +1,13 @@
 PewterGym_Object:
 	db $3 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 4, 13, 2, LAST_MAP
 	warp 5, 13, 2, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_SUPER_NERD, 4, 1, STAY, DOWN, 1, OPP_BROCK, 1
 	object SPRITE_COOLTRAINER_M, 3, 6, STAY, RIGHT, 2, OPP_JR_TRAINER_M, 1
 	object SPRITE_GYM_GUIDE, 7, 10, STAY, DOWN, 3 ; person
--- a/data/maps/objects/PewterMart.asm
+++ b/data/maps/objects/PewterMart.asm
@@ -1,13 +1,13 @@
 PewterMart_Object:
 	db $0 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 3, 7, 4, LAST_MAP
 	warp 4, 7, 4, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_CLERK, 0, 5, STAY, RIGHT, 1 ; person
 	object SPRITE_YOUNGSTER, 3, 3, WALK, UP_DOWN, 2 ; person
 	object SPRITE_SUPER_NERD, 5, 5, STAY, NONE, 3 ; person
--- a/data/maps/objects/PewterNidoranHouse.asm
+++ b/data/maps/objects/PewterNidoranHouse.asm
@@ -1,13 +1,13 @@
 PewterNidoranHouse_Object:
 	db $a ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 3, LAST_MAP
 	warp 3, 7, 3, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_MONSTER, 4, 5, STAY, LEFT, 1 ; person
 	object SPRITE_LITTLE_BOY, 3, 5, STAY, RIGHT, 2 ; person
 	object SPRITE_MIDDLE_AGED_MAN, 1, 2, STAY, NONE, 3 ; person
--- a/data/maps/objects/PewterPokecenter.asm
+++ b/data/maps/objects/PewterPokecenter.asm
@@ -1,13 +1,13 @@
 PewterPokecenter_Object:
 	db $0 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 3, 7, 6, LAST_MAP
 	warp 4, 7, 6, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 4 ; objects
+	def_objects
 	object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person
 	object SPRITE_GENTLEMAN, 11, 7, STAY, LEFT, 2 ; person
 	object SPRITE_FAIRY, 1, 3, STAY, DOWN, 3 ; person
--- a/data/maps/objects/PewterSpeechHouse.asm
+++ b/data/maps/objects/PewterSpeechHouse.asm
@@ -1,13 +1,13 @@
 PewterSpeechHouse_Object:
 	db $a ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 5, LAST_MAP
 	warp 3, 7, 5, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_GAMBLER, 2, 3, STAY, RIGHT, 1 ; person
 	object SPRITE_YOUNGSTER, 4, 5, STAY, NONE, 2 ; person
 
--- a/data/maps/objects/PokemonFanClub.asm
+++ b/data/maps/objects/PokemonFanClub.asm
@@ -1,15 +1,15 @@
 PokemonFanClub_Object:
 	db $d ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 1, LAST_MAP
 	warp 3, 7, 1, LAST_MAP
 
-	db 2 ; signs
+	def_signs
 	sign 1, 0, 7 ; FanClubText7
 	sign 6, 0, 8 ; FanClubText8
 
-	db 6 ; objects
+	def_objects
 	object SPRITE_FISHER, 6, 3, STAY, LEFT, 1 ; person
 	object SPRITE_GIRL, 1, 3, STAY, RIGHT, 2 ; person
 	object SPRITE_FAIRY, 6, 4, STAY, LEFT, 3 ; person
--- a/data/maps/objects/PokemonMansion1F.asm
+++ b/data/maps/objects/PokemonMansion1F.asm
@@ -1,7 +1,7 @@
 PokemonMansion1F_Object:
 	db $2e ; border block
 
-	db 8 ; warps
+	def_warps
 	warp 4, 27, 0, LAST_MAP
 	warp 5, 27, 0, LAST_MAP
 	warp 6, 27, 0, LAST_MAP
@@ -11,9 +11,9 @@
 	warp 26, 27, 0, LAST_MAP
 	warp 27, 27, 0, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_SCIENTIST, 17, 17, STAY, LEFT, 1, OPP_SCIENTIST, 4
 	object SPRITE_POKE_BALL, 14, 3, STAY, NONE, 2, ESCAPE_ROPE
 	object SPRITE_POKE_BALL, 18, 21, STAY, NONE, 3, CARBOS
--- a/data/maps/objects/PokemonMansion2F.asm
+++ b/data/maps/objects/PokemonMansion2F.asm
@@ -1,15 +1,15 @@
 PokemonMansion2F_Object:
 	db $1 ; border block
 
-	db 4 ; warps
+	def_warps
 	warp 5, 10, 4, POKEMON_MANSION_1F
 	warp 7, 10, 0, POKEMON_MANSION_3F
 	warp 25, 14, 2, POKEMON_MANSION_3F
 	warp 6, 1, 1, POKEMON_MANSION_3F
 
-	db 0 ; signs
+	def_signs
 
-	db 4 ; objects
+	def_objects
 	object SPRITE_SUPER_NERD, 3, 17, WALK, LEFT_RIGHT, 1, OPP_BURGLAR, 7
 	object SPRITE_POKE_BALL, 28, 7, STAY, NONE, 2, CALCIUM
 	object SPRITE_POKEDEX, 18, 2, STAY, NONE, 3 ; person
--- a/data/maps/objects/PokemonMansion3F.asm
+++ b/data/maps/objects/PokemonMansion3F.asm
@@ -1,14 +1,14 @@
 PokemonMansion3F_Object:
 	db $1 ; border block
 
-	db 3 ; warps
+	def_warps
 	warp 7, 10, 1, POKEMON_MANSION_2F
 	warp 6, 1, 3, POKEMON_MANSION_2F
 	warp 25, 14, 2, POKEMON_MANSION_2F
 
-	db 0 ; signs
+	def_signs
 
-	db 5 ; objects
+	def_objects
 	object SPRITE_SUPER_NERD, 5, 11, WALK, LEFT_RIGHT, 1, OPP_BURGLAR, 8
 	object SPRITE_SCIENTIST, 20, 11, STAY, LEFT, 2, OPP_SCIENTIST, 12
 	object SPRITE_POKE_BALL, 1, 16, STAY, NONE, 3, MAX_POTION
--- a/data/maps/objects/PokemonMansionB1F.asm
+++ b/data/maps/objects/PokemonMansionB1F.asm
@@ -1,12 +1,12 @@
 PokemonMansionB1F_Object:
 	db $1 ; border block
 
-	db 1 ; warps
+	def_warps
 	warp 23, 22, 5, POKEMON_MANSION_1F
 
-	db 0 ; signs
+	def_signs
 
-	db 8 ; objects
+	def_objects
 	object SPRITE_SUPER_NERD, 16, 23, STAY, NONE, 1, OPP_BURGLAR, 9
 	object SPRITE_SCIENTIST, 27, 11, STAY, DOWN, 2, OPP_SCIENTIST, 13
 	object SPRITE_POKE_BALL, 10, 2, STAY, NONE, 3, RARE_CANDY
--- a/data/maps/objects/PokemonTower1F.asm
+++ b/data/maps/objects/PokemonTower1F.asm
@@ -1,14 +1,14 @@
 PokemonTower1F_Object:
 	db $1 ; border block
 
-	db 3 ; warps
+	def_warps
 	warp 10, 17, 1, LAST_MAP
 	warp 11, 17, 1, LAST_MAP
 	warp 18, 9, 1, POKEMON_TOWER_2F
 
-	db 0 ; signs
+	def_signs
 
-	db 5 ; objects
+	def_objects
 	object SPRITE_LINK_RECEPTIONIST, 15, 13, STAY, UP, 1 ; person
 	object SPRITE_MIDDLE_AGED_WOMAN, 6, 8, STAY, NONE, 2 ; person
 	object SPRITE_BALDING_GUY, 8, 12, STAY, NONE, 3 ; person
--- a/data/maps/objects/PokemonTower2F.asm
+++ b/data/maps/objects/PokemonTower2F.asm
@@ -1,13 +1,13 @@
 PokemonTower2F_Object:
 	db $1 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 3, 9, 0, POKEMON_TOWER_3F
 	warp 18, 9, 2, POKEMON_TOWER_1F
 
-	db 0 ; signs
+	def_signs
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_BLUE, 14, 5, STAY, NONE, 1 ; person
 	object SPRITE_CHANNELER, 3, 7, STAY, RIGHT, 2 ; person
 
--- a/data/maps/objects/PokemonTower3F.asm
+++ b/data/maps/objects/PokemonTower3F.asm
@@ -1,13 +1,13 @@
 PokemonTower3F_Object:
 	db $1 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 3, 9, 0, POKEMON_TOWER_2F
 	warp 18, 9, 1, POKEMON_TOWER_4F
 
-	db 0 ; signs
+	def_signs
 
-	db 4 ; objects
+	def_objects
 	object SPRITE_CHANNELER, 12, 3, STAY, LEFT, 1, OPP_CHANNELER, 5
 	object SPRITE_CHANNELER, 9, 8, STAY, DOWN, 2, OPP_CHANNELER, 6
 	object SPRITE_CHANNELER, 10, 13, STAY, DOWN, 3, OPP_CHANNELER, 8
--- a/data/maps/objects/PokemonTower4F.asm
+++ b/data/maps/objects/PokemonTower4F.asm
@@ -1,13 +1,13 @@
 PokemonTower4F_Object:
 	db $1 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 3, 9, 0, POKEMON_TOWER_5F
 	warp 18, 9, 1, POKEMON_TOWER_3F
 
-	db 0 ; signs
+	def_signs
 
-	db 6 ; objects
+	def_objects
 	object SPRITE_CHANNELER, 5, 10, STAY, RIGHT, 1, OPP_CHANNELER, 9
 	object SPRITE_CHANNELER, 15, 7, STAY, DOWN, 2, OPP_CHANNELER, 10
 	object SPRITE_CHANNELER, 14, 12, STAY, LEFT, 3, OPP_CHANNELER, 12
--- a/data/maps/objects/PokemonTower5F.asm
+++ b/data/maps/objects/PokemonTower5F.asm
@@ -1,13 +1,13 @@
 PokemonTower5F_Object:
 	db $1 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 3, 9, 0, POKEMON_TOWER_4F
 	warp 18, 9, 0, POKEMON_TOWER_6F
 
-	db 0 ; signs
+	def_signs
 
-	db 6 ; objects
+	def_objects
 	object SPRITE_CHANNELER, 12, 8, STAY, NONE, 1 ; person
 	object SPRITE_CHANNELER, 17, 7, STAY, LEFT, 2, OPP_CHANNELER, 14
 	object SPRITE_CHANNELER, 14, 3, STAY, LEFT, 3, OPP_CHANNELER, 16
--- a/data/maps/objects/PokemonTower6F.asm
+++ b/data/maps/objects/PokemonTower6F.asm
@@ -1,13 +1,13 @@
 PokemonTower6F_Object:
 	db $1 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 18, 9, 1, POKEMON_TOWER_5F
 	warp 9, 16, 0, POKEMON_TOWER_7F
 
-	db 0 ; signs
+	def_signs
 
-	db 5 ; objects
+	def_objects
 	object SPRITE_CHANNELER, 12, 10, STAY, RIGHT, 1, OPP_CHANNELER, 19
 	object SPRITE_CHANNELER, 9, 5, STAY, DOWN, 2, OPP_CHANNELER, 20
 	object SPRITE_CHANNELER, 16, 5, STAY, LEFT, 3, OPP_CHANNELER, 21
--- a/data/maps/objects/PokemonTower7F.asm
+++ b/data/maps/objects/PokemonTower7F.asm
@@ -1,12 +1,12 @@
 PokemonTower7F_Object:
 	db $1 ; border block
 
-	db 1 ; warps
+	def_warps
 	warp 9, 16, 1, POKEMON_TOWER_6F
 
-	db 0 ; signs
+	def_signs
 
-	db 4 ; objects
+	def_objects
 	object SPRITE_ROCKET, 9, 11, STAY, RIGHT, 1, OPP_ROCKET, 19
 	object SPRITE_ROCKET, 12, 9, STAY, LEFT, 2, OPP_ROCKET, 20
 	object SPRITE_ROCKET, 9, 7, STAY, RIGHT, 3, OPP_ROCKET, 21
--- a/data/maps/objects/PowerPlant.asm
+++ b/data/maps/objects/PowerPlant.asm
@@ -1,14 +1,14 @@
 PowerPlant_Object:
 	db $2e ; border block
 
-	db 3 ; warps
+	def_warps
 	warp 4, 35, 3, LAST_MAP
 	warp 5, 35, 3, LAST_MAP
 	warp 0, 11, 3, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 14 ; objects
+	def_objects
 	object SPRITE_POKE_BALL, 9, 20, STAY, NONE, 1, VOLTORB, 40
 	object SPRITE_POKE_BALL, 32, 18, STAY, NONE, 2, VOLTORB, 40
 	object SPRITE_POKE_BALL, 21, 25, STAY, NONE, 3, VOLTORB, 40
--- a/data/maps/objects/RedsHouse1F.asm
+++ b/data/maps/objects/RedsHouse1F.asm
@@ -1,15 +1,15 @@
 RedsHouse1F_Object:
 	db $a ; border block
 
-	db 3 ; warps
+	def_warps
 	warp 2, 7, 0, LAST_MAP ; exit1
 	warp 3, 7, 0, LAST_MAP ; exit2
 	warp 7, 1, 0, REDS_HOUSE_2F ; staircase
 
-	db 1 ; signs
+	def_signs
 	sign 3, 1, 2 ; TV
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_MOM, 5, 4, STAY, LEFT, 1 ; Mom
 
 	; warp-to
--- a/data/maps/objects/RedsHouse2F.asm
+++ b/data/maps/objects/RedsHouse2F.asm
@@ -1,12 +1,12 @@
 RedsHouse2F_Object:
 	db $a ; border block
 
-	db 1 ; warps
+	def_warps
 	warp 7, 1, 2, REDS_HOUSE_1F
 
-	db 0 ; signs
+	def_signs
 
-	db 0 ; objects
+	def_objects
 
 	; warp-to
 	warp_to 7, 1, REDS_HOUSE_2F_WIDTH
--- a/data/maps/objects/RockTunnel1F.asm
+++ b/data/maps/objects/RockTunnel1F.asm
@@ -1,7 +1,7 @@
 RockTunnel1F_Object:
 	db $3 ; border block
 
-	db 8 ; warps
+	def_warps
 	warp 15, 3, 1, LAST_MAP
 	warp 15, 0, 1, LAST_MAP
 	warp 15, 33, 2, LAST_MAP
@@ -11,10 +11,10 @@
 	warp 17, 11, 2, ROCK_TUNNEL_B1F
 	warp 37, 17, 3, ROCK_TUNNEL_B1F
 
-	db 1 ; signs
+	def_signs
 	sign 11, 29, 8 ; RockTunnel1Text8
 
-	db 7 ; objects
+	def_objects
 	object SPRITE_HIKER, 7, 5, STAY, DOWN, 1, OPP_HIKER, 12
 	object SPRITE_HIKER, 5, 16, STAY, DOWN, 2, OPP_HIKER, 13
 	object SPRITE_HIKER, 17, 15, STAY, LEFT, 3, OPP_HIKER, 14
--- a/data/maps/objects/RockTunnelB1F.asm
+++ b/data/maps/objects/RockTunnelB1F.asm
@@ -1,15 +1,15 @@
 RockTunnelB1F_Object:
 	db $3 ; border block
 
-	db 4 ; warps
+	def_warps
 	warp 33, 25, 4, ROCK_TUNNEL_1F
 	warp 27, 3, 5, ROCK_TUNNEL_1F
 	warp 23, 11, 6, ROCK_TUNNEL_1F
 	warp 3, 3, 7, ROCK_TUNNEL_1F
 
-	db 0 ; signs
+	def_signs
 
-	db 8 ; objects
+	def_objects
 	object SPRITE_COOLTRAINER_F, 11, 13, STAY, DOWN, 1, OPP_JR_TRAINER_F, 9
 	object SPRITE_HIKER, 6, 10, STAY, DOWN, 2, OPP_HIKER, 9
 	object SPRITE_SUPER_NERD, 3, 5, STAY, DOWN, 3, OPP_POKEMANIAC, 3
--- a/data/maps/objects/RockTunnelPokecenter.asm
+++ b/data/maps/objects/RockTunnelPokecenter.asm
@@ -1,13 +1,13 @@
 RockTunnelPokecenter_Object:
 	db $0 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 3, 7, 0, LAST_MAP
 	warp 4, 7, 0, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 4 ; objects
+	def_objects
 	object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person
 	object SPRITE_GENTLEMAN, 7, 3, WALK, LEFT_RIGHT, 2 ; person
 	object SPRITE_FISHER, 2, 5, STAY, NONE, 3 ; person
--- a/data/maps/objects/RocketHideoutB1F.asm
+++ b/data/maps/objects/RocketHideoutB1F.asm
@@ -1,7 +1,7 @@
 RocketHideoutB1F_Object:
 	db $2e ; border block
 
-	db 5 ; warps
+	def_warps
 	warp 23, 2, 0, ROCKET_HIDEOUT_B2F
 	warp 21, 2, 2, GAME_CORNER
 	warp 24, 19, 0, ROCKET_HIDEOUT_ELEVATOR
@@ -8,9 +8,9 @@
 	warp 21, 24, 3, ROCKET_HIDEOUT_B2F
 	warp 25, 19, 1, ROCKET_HIDEOUT_ELEVATOR
 
-	db 0 ; signs
+	def_signs
 
-	db 7 ; objects
+	def_objects
 	object SPRITE_ROCKET, 26, 8, STAY, LEFT, 1, OPP_ROCKET, 8
 	object SPRITE_ROCKET, 12, 6, STAY, RIGHT, 2, OPP_ROCKET, 9
 	object SPRITE_ROCKET, 18, 17, STAY, DOWN, 3, OPP_ROCKET, 10
--- a/data/maps/objects/RocketHideoutB2F.asm
+++ b/data/maps/objects/RocketHideoutB2F.asm
@@ -1,7 +1,7 @@
 RocketHideoutB2F_Object:
 	db $2e ; border block
 
-	db 5 ; warps
+	def_warps
 	warp 27, 8, 0, ROCKET_HIDEOUT_B1F
 	warp 21, 8, 0, ROCKET_HIDEOUT_B3F
 	warp 24, 19, 0, ROCKET_HIDEOUT_ELEVATOR
@@ -8,9 +8,9 @@
 	warp 21, 22, 3, ROCKET_HIDEOUT_B1F
 	warp 25, 19, 1, ROCKET_HIDEOUT_ELEVATOR
 
-	db 0 ; signs
+	def_signs
 
-	db 5 ; objects
+	def_objects
 	object SPRITE_ROCKET, 20, 12, STAY, DOWN, 1, OPP_ROCKET, 13
 	object SPRITE_POKE_BALL, 1, 11, STAY, NONE, 2, MOON_STONE
 	object SPRITE_POKE_BALL, 16, 8, STAY, NONE, 3, NUGGET
--- a/data/maps/objects/RocketHideoutB3F.asm
+++ b/data/maps/objects/RocketHideoutB3F.asm
@@ -1,13 +1,13 @@
 RocketHideoutB3F_Object:
 	db $2e ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 25, 6, 1, ROCKET_HIDEOUT_B2F
 	warp 19, 18, 0, ROCKET_HIDEOUT_B4F
 
-	db 0 ; signs
+	def_signs
 
-	db 4 ; objects
+	def_objects
 	object SPRITE_ROCKET, 10, 22, STAY, RIGHT, 1, OPP_ROCKET, 14
 	object SPRITE_ROCKET, 26, 12, STAY, UP, 2, OPP_ROCKET, 15
 	object SPRITE_POKE_BALL, 26, 17, STAY, NONE, 3, TM_DOUBLE_EDGE
--- a/data/maps/objects/RocketHideoutB4F.asm
+++ b/data/maps/objects/RocketHideoutB4F.asm
@@ -1,14 +1,14 @@
 RocketHideoutB4F_Object:
 	db $2e ; border block
 
-	db 3 ; warps
+	def_warps
 	warp 19, 10, 1, ROCKET_HIDEOUT_B3F
 	warp 24, 15, 0, ROCKET_HIDEOUT_ELEVATOR
 	warp 25, 15, 1, ROCKET_HIDEOUT_ELEVATOR
 
-	db 0 ; signs
+	def_signs
 
-	db 9 ; objects
+	def_objects
 	object SPRITE_GIOVANNI, 25, 3, STAY, DOWN, 1, OPP_GIOVANNI, 1
 	object SPRITE_ROCKET, 23, 12, STAY, DOWN, 2, OPP_ROCKET, 16
 	object SPRITE_ROCKET, 26, 12, STAY, DOWN, 3, OPP_ROCKET, 17
--- a/data/maps/objects/RocketHideoutElevator.asm
+++ b/data/maps/objects/RocketHideoutElevator.asm
@@ -1,14 +1,14 @@
 RocketHideoutElevator_Object:
 	db $f ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 1, 2, ROCKET_HIDEOUT_B1F
 	warp 3, 1, 4, ROCKET_HIDEOUT_B1F
 
-	db 1 ; signs
+	def_signs
 	sign 1, 1, 1 ; RocketHideoutElevatorText1
 
-	db 0 ; objects
+	def_objects
 
 	; warp-to
 	warp_to 2, 1, ROCKET_HIDEOUT_ELEVATOR_WIDTH ; ROCKET_HIDEOUT_B1F
--- a/data/maps/objects/Route1.asm
+++ b/data/maps/objects/Route1.asm
@@ -1,12 +1,12 @@
 Route1_Object:
 	db $b ; border block
 
-	db 0 ; warps
+	def_warps
 
-	db 1 ; signs
+	def_signs
 	sign 9, 27, 3 ; Route1Text3
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_YOUNGSTER, 5, 24, WALK, UP_DOWN, 1 ; person
 	object SPRITE_YOUNGSTER, 15, 13, WALK, LEFT_RIGHT, 2 ; person
 
--- a/data/maps/objects/Route10.asm
+++ b/data/maps/objects/Route10.asm
@@ -1,19 +1,19 @@
 Route10_Object:
 	db $2c ; border block
 
-	db 4 ; warps
+	def_warps
 	warp 11, 19, 0, ROCK_TUNNEL_POKECENTER
 	warp 8, 17, 0, ROCK_TUNNEL_1F
 	warp 8, 53, 2, ROCK_TUNNEL_1F
 	warp 6, 39, 0, POWER_PLANT
 
-	db 4 ; signs
+	def_signs
 	sign 7, 19, 7 ; Route10Text7
 	sign 12, 19, 8 ; PokeCenterSignText
 	sign 9, 55, 9 ; Route10Text9
 	sign 5, 41, 10 ; Route10Text10
 
-	db 6 ; objects
+	def_objects
 	object SPRITE_SUPER_NERD, 10, 44, STAY, LEFT, 1, OPP_POKEMANIAC, 1
 	object SPRITE_HIKER, 3, 57, STAY, UP, 2, OPP_HIKER, 7
 	object SPRITE_SUPER_NERD, 14, 64, STAY, LEFT, 3, OPP_POKEMANIAC, 2
--- a/data/maps/objects/Route11.asm
+++ b/data/maps/objects/Route11.asm
@@ -1,7 +1,7 @@
 Route11_Object:
 	db $f ; border block
 
-	db 5 ; warps
+	def_warps
 	warp 49, 8, 0, ROUTE_11_GATE_1F
 	warp 49, 9, 1, ROUTE_11_GATE_1F
 	warp 58, 8, 2, ROUTE_11_GATE_1F
@@ -8,10 +8,10 @@
 	warp 58, 9, 3, ROUTE_11_GATE_1F
 	warp 4, 5, 0, DIGLETTS_CAVE_ROUTE_11
 
-	db 1 ; signs
+	def_signs
 	sign 1, 5, 11 ; Route11Text11
 
-	db 10 ; objects
+	def_objects
 	object SPRITE_GAMBLER, 10, 14, STAY, DOWN, 1, OPP_GAMBLER, 1
 	object SPRITE_GAMBLER, 26, 9, STAY, DOWN, 2, OPP_GAMBLER, 2
 	object SPRITE_YOUNGSTER, 13, 5, STAY, LEFT, 3, OPP_YOUNGSTER, 9
--- a/data/maps/objects/Route11Gate1F.asm
+++ b/data/maps/objects/Route11Gate1F.asm
@@ -1,7 +1,7 @@
 Route11Gate1F_Object:
 	db $a ; border block
 
-	db 5 ; warps
+	def_warps
 	warp 0, 4, 0, LAST_MAP
 	warp 0, 5, 1, LAST_MAP
 	warp 7, 4, 2, LAST_MAP
@@ -8,9 +8,9 @@
 	warp 7, 5, 3, LAST_MAP
 	warp 6, 8, 0, ROUTE_11_GATE_2F
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_GUARD, 4, 1, STAY, NONE, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/Route11Gate2F.asm
+++ b/data/maps/objects/Route11Gate2F.asm
@@ -1,14 +1,14 @@
 Route11Gate2F_Object:
 	db $a ; border block
 
-	db 1 ; warps
+	def_warps
 	warp 7, 7, 4, ROUTE_11_GATE_1F
 
-	db 2 ; signs
+	def_signs
 	sign 1, 2, 3 ; Route11GateUpstairsText3
 	sign 6, 2, 4 ; Route11GateUpstairsText4
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_YOUNGSTER, 4, 2, WALK, LEFT_RIGHT, 1 ; person
 	object SPRITE_SCIENTIST, 2, 6, STAY, NONE, 2 ; person
 
--- a/data/maps/objects/Route12.asm
+++ b/data/maps/objects/Route12.asm
@@ -1,17 +1,17 @@
 Route12_Object:
 	db $43 ; border block
 
-	db 4 ; warps
+	def_warps
 	warp 10, 15, 0, ROUTE_12_GATE_1F
 	warp 11, 15, 1, ROUTE_12_GATE_1F
 	warp 10, 21, 2, ROUTE_12_GATE_1F
 	warp 11, 77, 0, ROUTE_12_SUPER_ROD_HOUSE
 
-	db 2 ; signs
+	def_signs
 	sign 13, 13, 11 ; Route12Text11
 	sign 11, 63, 12 ; Route12Text12
 
-	db 10 ; objects
+	def_objects
 	object SPRITE_SNORLAX, 10, 62, STAY, DOWN, 1 ; person
 	object SPRITE_FISHER, 14, 31, STAY, LEFT, 2, OPP_FISHER, 3
 	object SPRITE_FISHER, 5, 39, STAY, UP, 3, OPP_FISHER, 4
--- a/data/maps/objects/Route12Gate1F.asm
+++ b/data/maps/objects/Route12Gate1F.asm
@@ -1,7 +1,7 @@
 Route12Gate1F_Object:
 	db $a ; border block
 
-	db 5 ; warps
+	def_warps
 	warp 4, 0, 0, LAST_MAP
 	warp 5, 0, 1, LAST_MAP
 	warp 4, 7, 2, LAST_MAP
@@ -8,9 +8,9 @@
 	warp 5, 7, 2, LAST_MAP
 	warp 8, 6, 0, ROUTE_12_GATE_2F
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_GUARD, 1, 3, STAY, NONE, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/Route12Gate2F.asm
+++ b/data/maps/objects/Route12Gate2F.asm
@@ -1,14 +1,14 @@
 Route12Gate2F_Object:
 	db $a ; border block
 
-	db 1 ; warps
+	def_warps
 	warp 7, 7, 4, ROUTE_12_GATE_1F
 
-	db 2 ; signs
+	def_signs
 	sign 1, 2, 2 ; Route12GateUpstairsText2
 	sign 6, 2, 3 ; Route12GateUpstairsText3
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_BRUNETTE_GIRL, 3, 4, WALK, UP_DOWN, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/Route12SuperRodHouse.asm
+++ b/data/maps/objects/Route12SuperRodHouse.asm
@@ -1,13 +1,13 @@
 Route12SuperRodHouse_Object:
 	db $a ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 3, LAST_MAP
 	warp 3, 7, 3, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_FISHING_GURU, 2, 4, STAY, RIGHT, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/Route13.asm
+++ b/data/maps/objects/Route13.asm
@@ -1,14 +1,14 @@
 Route13_Object:
 	db $43 ; border block
 
-	db 0 ; warps
+	def_warps
 
-	db 3 ; signs
+	def_signs
 	sign 15, 13, 11 ; Route13Text11
 	sign 33, 5, 12 ; Route13Text12
 	sign 31, 11, 13 ; Route13Text13
 
-	db 10 ; objects
+	def_objects
 	object SPRITE_COOLTRAINER_M, 49, 10, STAY, RIGHT, 1, OPP_BIRD_KEEPER, 1
 	object SPRITE_COOLTRAINER_F, 48, 10, STAY, DOWN, 2, OPP_JR_TRAINER_F, 12
 	object SPRITE_COOLTRAINER_F, 27, 9, STAY, DOWN, 3, OPP_JR_TRAINER_F, 13
--- a/data/maps/objects/Route14.asm
+++ b/data/maps/objects/Route14.asm
@@ -1,12 +1,12 @@
 Route14_Object:
 	db $43 ; border block
 
-	db 0 ; warps
+	def_warps
 
-	db 1 ; signs
+	def_signs
 	sign 17, 13, 11 ; Route14Text11
 
-	db 10 ; objects
+	def_objects
 	object SPRITE_COOLTRAINER_M, 4, 4, STAY, DOWN, 1, OPP_BIRD_KEEPER, 14
 	object SPRITE_COOLTRAINER_M, 15, 6, STAY, DOWN, 2, OPP_BIRD_KEEPER, 15
 	object SPRITE_COOLTRAINER_M, 12, 11, STAY, DOWN, 3, OPP_BIRD_KEEPER, 16
--- a/data/maps/objects/Route15.asm
+++ b/data/maps/objects/Route15.asm
@@ -1,16 +1,16 @@
 Route15_Object:
 	db $43 ; border block
 
-	db 4 ; warps
+	def_warps
 	warp 7, 8, 0, ROUTE_15_GATE_1F
 	warp 7, 9, 1, ROUTE_15_GATE_1F
 	warp 14, 8, 2, ROUTE_15_GATE_1F
 	warp 14, 9, 3, ROUTE_15_GATE_1F
 
-	db 1 ; signs
+	def_signs
 	sign 39, 9, 12 ; Route15Text12
 
-	db 11 ; objects
+	def_objects
 	object SPRITE_COOLTRAINER_F, 41, 11, STAY, DOWN, 1, OPP_JR_TRAINER_F, 20
 	object SPRITE_COOLTRAINER_F, 53, 10, STAY, LEFT, 2, OPP_JR_TRAINER_F, 21
 	object SPRITE_COOLTRAINER_M, 31, 13, STAY, UP, 3, OPP_BIRD_KEEPER, 6
--- a/data/maps/objects/Route15Gate1F.asm
+++ b/data/maps/objects/Route15Gate1F.asm
@@ -1,7 +1,7 @@
 Route15Gate1F_Object:
 	db $a ; border block
 
-	db 5 ; warps
+	def_warps
 	warp 0, 4, 0, LAST_MAP
 	warp 0, 5, 1, LAST_MAP
 	warp 7, 4, 2, LAST_MAP
@@ -8,9 +8,9 @@
 	warp 7, 5, 3, LAST_MAP
 	warp 6, 8, 0, ROUTE_15_GATE_2F
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_GUARD, 4, 1, STAY, NONE, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/Route15Gate2F.asm
+++ b/data/maps/objects/Route15Gate2F.asm
@@ -1,13 +1,13 @@
 Route15Gate2F_Object:
 	db $a ; border block
 
-	db 1 ; warps
+	def_warps
 	warp 7, 7, 4, ROUTE_15_GATE_1F
 
-	db 1 ; signs
+	def_signs
 	sign 6, 2, 2 ; Route15GateUpstairsText2
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_SCIENTIST, 4, 2, STAY, DOWN, 1
 
 	; warp-to
--- a/data/maps/objects/Route16.asm
+++ b/data/maps/objects/Route16.asm
@@ -1,7 +1,7 @@
 Route16_Object:
 	db $f ; border block
 
-	db 9 ; warps
+	def_warps
 	warp 17, 10, 0, ROUTE_16_GATE_1F
 	warp 17, 11, 1, ROUTE_16_GATE_1F
 	warp 24, 10, 2, ROUTE_16_GATE_1F
@@ -12,11 +12,11 @@
 	warp 24, 5, 7, ROUTE_16_GATE_1F
 	warp 7, 5, 0, ROUTE_16_FLY_HOUSE
 
-	db 2 ; signs
+	def_signs
 	sign 27, 11, 8 ; Route16Text8
 	sign 5, 17, 9 ; Route16Text9
 
-	db 7 ; objects
+	def_objects
 	object SPRITE_BIKER, 17, 12, STAY, LEFT, 1, OPP_BIKER, 5
 	object SPRITE_BIKER, 14, 13, STAY, RIGHT, 2, OPP_CUE_BALL, 1
 	object SPRITE_BIKER, 11, 12, STAY, UP, 3, OPP_CUE_BALL, 2
--- a/data/maps/objects/Route16FlyHouse.asm
+++ b/data/maps/objects/Route16FlyHouse.asm
@@ -1,13 +1,13 @@
 Route16FlyHouse_Object:
 	db $a ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 8, LAST_MAP
 	warp 3, 7, 8, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_BRUNETTE_GIRL, 2, 3, STAY, RIGHT, 1 ; person
 	object SPRITE_BIRD, 6, 4, WALK, ANY_DIR, 2 ; person
 
--- a/data/maps/objects/Route16Gate1F.asm
+++ b/data/maps/objects/Route16Gate1F.asm
@@ -1,7 +1,7 @@
 Route16Gate1F_Object:
 	db $a ; border block
 
-	db 9 ; warps
+	def_warps
 	warp 0, 8, 0, LAST_MAP
 	warp 0, 9, 1, LAST_MAP
 	warp 7, 8, 2, LAST_MAP
@@ -12,9 +12,9 @@
 	warp 7, 3, 7, LAST_MAP
 	warp 6, 12, 0, ROUTE_16_GATE_2F
 
-	db 0 ; signs
+	def_signs
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_GUARD, 4, 5, STAY, DOWN, 1 ; person
 	object SPRITE_GAMBLER, 4, 3, STAY, NONE, 2 ; person
 
--- a/data/maps/objects/Route16Gate2F.asm
+++ b/data/maps/objects/Route16Gate2F.asm
@@ -1,14 +1,14 @@
 Route16Gate2F_Object:
 	db $a ; border block
 
-	db 1 ; warps
+	def_warps
 	warp 7, 7, 8, ROUTE_16_GATE_1F
 
-	db 2 ; signs
+	def_signs
 	sign 1, 2, 3 ; Route16GateUpstairsText3
 	sign 6, 2, 4 ; Route16GateUpstairsText4
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_LITTLE_BOY, 4, 2, STAY, NONE, 1 ; person
 	object SPRITE_LITTLE_GIRL, 2, 5, WALK, LEFT_RIGHT, 2 ; person
 
--- a/data/maps/objects/Route17.asm
+++ b/data/maps/objects/Route17.asm
@@ -1,9 +1,9 @@
 Route17_Object:
 	db $43 ; border block
 
-	db 0 ; warps
+	def_warps
 
-	db 6 ; signs
+	def_signs
 	sign 9, 51, 11 ; Route17Text11
 	sign 9, 63, 12 ; Route17Text12
 	sign 9, 75, 13 ; Route17Text13
@@ -11,7 +11,7 @@
 	sign 9, 111, 15 ; Route17Text15
 	sign 9, 141, 16 ; Route17Text16
 
-	db 10 ; objects
+	def_objects
 	object SPRITE_BIKER, 12, 19, STAY, LEFT, 1, OPP_CUE_BALL, 4
 	object SPRITE_BIKER, 11, 16, STAY, RIGHT, 2, OPP_CUE_BALL, 5
 	object SPRITE_BIKER, 4, 18, STAY, UP, 3, OPP_BIKER, 8
--- a/data/maps/objects/Route18.asm
+++ b/data/maps/objects/Route18.asm
@@ -1,17 +1,17 @@
 Route18_Object:
 	db $43 ; border block
 
-	db 4 ; warps
+	def_warps
 	warp 33, 8, 0, ROUTE_18_GATE_1F
 	warp 33, 9, 1, ROUTE_18_GATE_1F
 	warp 40, 8, 2, ROUTE_18_GATE_1F
 	warp 40, 9, 3, ROUTE_18_GATE_1F
 
-	db 2 ; signs
+	def_signs
 	sign 43, 7, 4 ; Route18Text4
 	sign 33, 5, 5 ; Route18Text5
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_COOLTRAINER_M, 36, 11, STAY, RIGHT, 1, OPP_BIRD_KEEPER, 8
 	object SPRITE_COOLTRAINER_M, 40, 15, STAY, LEFT, 2, OPP_BIRD_KEEPER, 9
 	object SPRITE_COOLTRAINER_M, 42, 13, STAY, LEFT, 3, OPP_BIRD_KEEPER, 10
--- a/data/maps/objects/Route18Gate1F.asm
+++ b/data/maps/objects/Route18Gate1F.asm
@@ -1,7 +1,7 @@
 Route18Gate1F_Object:
 	db $a ; border block
 
-	db 5 ; warps
+	def_warps
 	warp 0, 4, 0, LAST_MAP
 	warp 0, 5, 1, LAST_MAP
 	warp 7, 4, 2, LAST_MAP
@@ -8,9 +8,9 @@
 	warp 7, 5, 3, LAST_MAP
 	warp 6, 8, 0, ROUTE_18_GATE_2F
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_GUARD, 4, 1, STAY, DOWN, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/Route18Gate2F.asm
+++ b/data/maps/objects/Route18Gate2F.asm
@@ -1,14 +1,14 @@
 Route18Gate2F_Object:
 	db $a ; border block
 
-	db 1 ; warps
+	def_warps
 	warp 7, 7, 4, ROUTE_18_GATE_1F
 
-	db 2 ; signs
+	def_signs
 	sign 1, 2, 2 ; Route18GateUpstairsText2
 	sign 6, 2, 3 ; Route18GateUpstairsText3
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_YOUNGSTER, 4, 2, WALK, LEFT_RIGHT, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/Route19.asm
+++ b/data/maps/objects/Route19.asm
@@ -1,12 +1,12 @@
 Route19_Object:
 	db $43 ; border block
 
-	db 0 ; warps
+	def_warps
 
-	db 1 ; signs
+	def_signs
 	sign 11, 9, 11 ; Route19Text11
 
-	db 10 ; objects
+	def_objects
 	object SPRITE_COOLTRAINER_M, 8, 7, STAY, LEFT, 1, OPP_SWIMMER, 2
 	object SPRITE_COOLTRAINER_M, 13, 7, STAY, LEFT, 2, OPP_SWIMMER, 3
 	object SPRITE_SWIMMER, 13, 25, STAY, LEFT, 3, OPP_SWIMMER, 4
--- a/data/maps/objects/Route2.asm
+++ b/data/maps/objects/Route2.asm
@@ -1,7 +1,7 @@
 Route2_Object:
 	db $f ; border block
 
-	db 6 ; warps
+	def_warps
 	warp 12, 9, 0, DIGLETTS_CAVE_ROUTE_2
 	warp 3, 11, 1, VIRIDIAN_FOREST_NORTH_GATE
 	warp 15, 19, 0, ROUTE_2_TRADE_HOUSE
@@ -9,11 +9,11 @@
 	warp 15, 39, 2, ROUTE_2_GATE
 	warp 3, 43, 2, VIRIDIAN_FOREST_SOUTH_GATE
 
-	db 2 ; signs
+	def_signs
 	sign 5, 65, 3 ; Route2Text3
 	sign 11, 11, 4 ; Route2Text4
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_POKE_BALL, 13, 54, STAY, NONE, 1, MOON_STONE
 	object SPRITE_POKE_BALL, 13, 45, STAY, NONE, 2, HP_UP
 
--- a/data/maps/objects/Route20.asm
+++ b/data/maps/objects/Route20.asm
@@ -1,15 +1,15 @@
 Route20_Object:
 	db $43 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 48, 5, 0, SEAFOAM_ISLANDS_1F
 	warp 58, 9, 2, SEAFOAM_ISLANDS_1F
 
-	db 2 ; signs
+	def_signs
 	sign 51, 7, 11 ; Route20Text11
 	sign 57, 11, 12 ; Route20Text12
 
-	db 10 ; objects
+	def_objects
 	object SPRITE_SWIMMER, 87, 8, STAY, UP, 1, OPP_SWIMMER, 9
 	object SPRITE_SWIMMER, 68, 11, STAY, UP, 2, OPP_BEAUTY, 15
 	object SPRITE_SWIMMER, 45, 10, STAY, DOWN, 3, OPP_BEAUTY, 6
--- a/data/maps/objects/Route21.asm
+++ b/data/maps/objects/Route21.asm
@@ -1,11 +1,11 @@
 Route21_Object:
 	db $43 ; border block
 
-	db 0 ; warps
+	def_warps
 
-	db 0 ; signs
+	def_signs
 
-	db 9 ; objects
+	def_objects
 	object SPRITE_FISHER, 4, 24, STAY, LEFT, 1, OPP_FISHER, 7
 	object SPRITE_FISHER, 6, 25, STAY, DOWN, 2, OPP_FISHER, 9
 	object SPRITE_SWIMMER, 10, 31, STAY, UP, 3, OPP_SWIMMER, 12
--- a/data/maps/objects/Route22.asm
+++ b/data/maps/objects/Route22.asm
@@ -1,13 +1,13 @@
 Route22_Object:
 	db $2c ; border block
 
-	db 1 ; warps
+	def_warps
 	warp 8, 5, 0, ROUTE_22_GATE
 
-	db 1 ; signs
+	def_signs
 	sign 7, 11, 3 ; Route22FrontGateText
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_BLUE, 25, 5, STAY, NONE, 1 ; person
 	object SPRITE_BLUE, 25, 5, STAY, NONE, 2 ; person
 
--- a/data/maps/objects/Route22Gate.asm
+++ b/data/maps/objects/Route22Gate.asm
@@ -1,15 +1,15 @@
 Route22Gate_Object:
 	db $a ; border block
 
-	db 4 ; warps
+	def_warps
 	warp 4, 7, 0, LAST_MAP
 	warp 5, 7, 0, LAST_MAP
 	warp 4, 0, 0, LAST_MAP
 	warp 5, 0, 1, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_GUARD, 6, 2, STAY, LEFT, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/Route23.asm
+++ b/data/maps/objects/Route23.asm
@@ -1,16 +1,16 @@
 Route23_Object:
 	db $f ; border block
 
-	db 4 ; warps
+	def_warps
 	warp 7, 139, 2, ROUTE_22_GATE
 	warp 8, 139, 3, ROUTE_22_GATE
 	warp 4, 31, 0, VICTORY_ROAD_1F
 	warp 14, 31, 1, VICTORY_ROAD_2F
 
-	db 1 ; signs
+	def_signs
 	sign 3, 33, 8 ; Route23Text8
 
-	db 7 ; objects
+	def_objects
 	object SPRITE_GUARD, 4, 35, STAY, DOWN, 1 ; person
 	object SPRITE_GUARD, 10, 56, STAY, DOWN, 2 ; person
 	object SPRITE_SWIMMER, 8, 85, STAY, DOWN, 3 ; person
--- a/data/maps/objects/Route24.asm
+++ b/data/maps/objects/Route24.asm
@@ -1,11 +1,11 @@
 Route24_Object:
 	db $2c ; border block
 
-	db 0 ; warps
+	def_warps
 
-	db 0 ; signs
+	def_signs
 
-	db 8 ; objects
+	def_objects
 	object SPRITE_COOLTRAINER_M, 11, 15, STAY, LEFT, 1, OPP_ROCKET, 6
 	object SPRITE_COOLTRAINER_M, 5, 20, STAY, UP, 2, OPP_JR_TRAINER_M, 2
 	object SPRITE_COOLTRAINER_M, 11, 19, STAY, LEFT, 3, OPP_JR_TRAINER_M, 3
--- a/data/maps/objects/Route25.asm
+++ b/data/maps/objects/Route25.asm
@@ -1,13 +1,13 @@
 Route25_Object:
 	db $2c ; border block
 
-	db 1 ; warps
+	def_warps
 	warp 45, 3, 0, BILLS_HOUSE
 
-	db 1 ; signs
+	def_signs
 	sign 43, 3, 11 ; Route25Text11
 
-	db 10 ; objects
+	def_objects
 	object SPRITE_YOUNGSTER, 14, 2, STAY, DOWN, 1, OPP_YOUNGSTER, 5
 	object SPRITE_YOUNGSTER, 18, 5, STAY, UP, 2, OPP_YOUNGSTER, 6
 	object SPRITE_COOLTRAINER_M, 24, 4, STAY, DOWN, 3, OPP_JR_TRAINER_M, 2
--- a/data/maps/objects/Route2Gate.asm
+++ b/data/maps/objects/Route2Gate.asm
@@ -1,15 +1,15 @@
 Route2Gate_Object:
 	db $a ; border block
 
-	db 4 ; warps
+	def_warps
 	warp 4, 0, 3, LAST_MAP
 	warp 5, 0, 3, LAST_MAP
 	warp 4, 7, 4, LAST_MAP
 	warp 5, 7, 4, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_SCIENTIST, 1, 4, STAY, LEFT, 1 ; person
 	object SPRITE_YOUNGSTER, 5, 4, WALK, LEFT_RIGHT, 2 ; person
 
--- a/data/maps/objects/Route2TradeHouse.asm
+++ b/data/maps/objects/Route2TradeHouse.asm
@@ -1,13 +1,13 @@
 Route2TradeHouse_Object:
 	db $a ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 2, LAST_MAP
 	warp 3, 7, 2, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_SCIENTIST, 2, 4, STAY, RIGHT, 1 ; person
 	object SPRITE_GAMEBOY_KID, 4, 1, STAY, DOWN, 2 ; person
 
--- a/data/maps/objects/Route3.asm
+++ b/data/maps/objects/Route3.asm
@@ -1,12 +1,12 @@
 Route3_Object:
 	db $2c ; border block
 
-	db 0 ; warps
+	def_warps
 
-	db 1 ; signs
+	def_signs
 	sign 59, 9, 10 ; Route3Text10
 
-	db 9 ; objects
+	def_objects
 	object SPRITE_SUPER_NERD, 57, 11, STAY, NONE, 1 ; person
 	object SPRITE_YOUNGSTER, 10, 6, STAY, RIGHT, 2, OPP_BUG_CATCHER, 4
 	object SPRITE_YOUNGSTER, 14, 4, STAY, DOWN, 3, OPP_YOUNGSTER, 1
--- a/data/maps/objects/Route4.asm
+++ b/data/maps/objects/Route4.asm
@@ -1,17 +1,17 @@
 Route4_Object:
 	db $2c ; border block
 
-	db 3 ; warps
+	def_warps
 	warp 11, 5, 0, MT_MOON_POKECENTER
 	warp 18, 5, 0, MT_MOON_1F
 	warp 24, 5, 7, MT_MOON_B1F
 
-	db 3 ; signs
+	def_signs
 	sign 12, 5, 4 ; PokeCenterSignText
 	sign 17, 7, 5 ; Route4Text5
 	sign 27, 7, 6 ; Route4Text6
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_COOLTRAINER_F, 9, 8, WALK, ANY_DIR, 1 ; person
 	object SPRITE_COOLTRAINER_F, 63, 3, STAY, RIGHT, 2, OPP_LASS, 4
 	object SPRITE_POKE_BALL, 57, 3, STAY, NONE, 3, TM_WHIRLWIND
--- a/data/maps/objects/Route5.asm
+++ b/data/maps/objects/Route5.asm
@@ -1,7 +1,7 @@
 Route5_Object:
 	db $a ; border block
 
-	db 5 ; warps
+	def_warps
 	warp 10, 29, 3, ROUTE_5_GATE
 	warp 9, 29, 2, ROUTE_5_GATE
 	warp 10, 33, 0, ROUTE_5_GATE
@@ -8,10 +8,10 @@
 	warp 17, 27, 0, UNDERGROUND_PATH_ROUTE_5
 	warp 10, 21, 0, DAYCARE
 
-	db 1 ; signs
+	def_signs
 	sign 17, 29, 1 ; Route5Text1
 
-	db 0 ; objects
+	def_objects
 
 	; warp-to
 	warp_to 10, 29, ROUTE_5_WIDTH ; ROUTE_5_GATE
--- a/data/maps/objects/Route5Gate.asm
+++ b/data/maps/objects/Route5Gate.asm
@@ -1,15 +1,15 @@
 Route5Gate_Object:
 	db $a ; border block
 
-	db 4 ; warps
+	def_warps
 	warp 3, 5, 2, LAST_MAP
 	warp 4, 5, 2, LAST_MAP
 	warp 3, 0, 1, LAST_MAP
 	warp 4, 0, 0, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_GUARD, 1, 3, STAY, RIGHT, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/Route6.asm
+++ b/data/maps/objects/Route6.asm
@@ -1,16 +1,16 @@
 Route6_Object:
 	db $f ; border block
 
-	db 4 ; warps
+	def_warps
 	warp 9, 1, 2, ROUTE_6_GATE
 	warp 10, 1, 2, ROUTE_6_GATE
 	warp 10, 7, 0, ROUTE_6_GATE
 	warp 17, 13, 0, UNDERGROUND_PATH_ROUTE_6
 
-	db 1 ; signs
+	def_signs
 	sign 19, 15, 7 ; Route6Text7
 
-	db 6 ; objects
+	def_objects
 	object SPRITE_COOLTRAINER_M, 10, 21, STAY, RIGHT, 1, OPP_JR_TRAINER_M, 4
 	object SPRITE_COOLTRAINER_F, 11, 21, STAY, LEFT, 2, OPP_JR_TRAINER_F, 2
 	object SPRITE_YOUNGSTER, 0, 15, STAY, RIGHT, 3, OPP_BUG_CATCHER, 10
--- a/data/maps/objects/Route6Gate.asm
+++ b/data/maps/objects/Route6Gate.asm
@@ -1,15 +1,15 @@
 Route6Gate_Object:
 	db $a ; border block
 
-	db 4 ; warps
+	def_warps
 	warp 3, 5, 2, LAST_MAP
 	warp 4, 5, 2, LAST_MAP
 	warp 3, 0, 1, LAST_MAP
 	warp 4, 0, 1, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_GUARD, 6, 2, STAY, LEFT, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/Route7.asm
+++ b/data/maps/objects/Route7.asm
@@ -1,7 +1,7 @@
 Route7_Object:
 	db $f ; border block
 
-	db 5 ; warps
+	def_warps
 	warp 18, 9, 2, ROUTE_7_GATE
 	warp 18, 10, 3, ROUTE_7_GATE
 	warp 11, 9, 0, ROUTE_7_GATE
@@ -8,10 +8,10 @@
 	warp 11, 10, 1, ROUTE_7_GATE
 	warp 5, 13, 0, UNDERGROUND_PATH_ROUTE_7
 
-	db 1 ; signs
+	def_signs
 	sign 3, 13, 1 ; Route7Text1
 
-	db 0 ; objects
+	def_objects
 
 	; warp-to
 	warp_to 18, 9, ROUTE_7_WIDTH ; ROUTE_7_GATE
--- a/data/maps/objects/Route7Gate.asm
+++ b/data/maps/objects/Route7Gate.asm
@@ -1,15 +1,15 @@
 Route7Gate_Object:
 	db $a ; border block
 
-	db 4 ; warps
+	def_warps
 	warp 0, 3, 3, LAST_MAP
 	warp 0, 4, 3, LAST_MAP
 	warp 5, 3, 0, LAST_MAP
 	warp 5, 4, 1, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_GUARD, 3, 1, STAY, DOWN, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/Route8.asm
+++ b/data/maps/objects/Route8.asm
@@ -1,7 +1,7 @@
 Route8_Object:
 	db $2c ; border block
 
-	db 5 ; warps
+	def_warps
 	warp 1, 9, 0, ROUTE_8_GATE
 	warp 1, 10, 1, ROUTE_8_GATE
 	warp 8, 9, 2, ROUTE_8_GATE
@@ -8,10 +8,10 @@
 	warp 8, 10, 3, ROUTE_8_GATE
 	warp 13, 3, 0, UNDERGROUND_PATH_ROUTE_8
 
-	db 1 ; signs
+	def_signs
 	sign 17, 3, 10 ; Route8Text10
 
-	db 9 ; objects
+	def_objects
 	object SPRITE_SUPER_NERD, 8, 5, STAY, RIGHT, 1, OPP_SUPER_NERD, 3
 	object SPRITE_GAMBLER, 13, 9, STAY, UP, 2, OPP_GAMBLER, 5
 	object SPRITE_SUPER_NERD, 42, 6, STAY, UP, 3, OPP_SUPER_NERD, 4
--- a/data/maps/objects/Route8Gate.asm
+++ b/data/maps/objects/Route8Gate.asm
@@ -1,15 +1,15 @@
 Route8Gate_Object:
 	db $a ; border block
 
-	db 4 ; warps
+	def_warps
 	warp 0, 3, 0, LAST_MAP
 	warp 0, 4, 1, LAST_MAP
 	warp 5, 3, 2, LAST_MAP
 	warp 5, 4, 3, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_GUARD, 2, 1, STAY, DOWN, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/Route9.asm
+++ b/data/maps/objects/Route9.asm
@@ -1,12 +1,12 @@
 Route9_Object:
 	db $2c ; border block
 
-	db 0 ; warps
+	def_warps
 
-	db 1 ; signs
+	def_signs
 	sign 25, 7, 11 ; Route9Text11
 
-	db 10 ; objects
+	def_objects
 	object SPRITE_COOLTRAINER_F, 13, 10, STAY, LEFT, 1, OPP_JR_TRAINER_F, 5
 	object SPRITE_COOLTRAINER_M, 24, 7, STAY, LEFT, 2, OPP_JR_TRAINER_M, 7
 	object SPRITE_COOLTRAINER_M, 31, 7, STAY, RIGHT, 3, OPP_JR_TRAINER_M, 8
--- a/data/maps/objects/SSAnne1F.asm
+++ b/data/maps/objects/SSAnne1F.asm
@@ -1,7 +1,7 @@
 SSAnne1F_Object:
 	db $c ; border block
 
-	db 11 ; warps
+	def_warps
 	warp 26, 0, 1, VERMILION_DOCK
 	warp 27, 0, 1, VERMILION_DOCK
 	warp 31, 8, 0, SS_ANNE_1F_ROOMS
@@ -14,9 +14,9 @@
 	warp 37, 15, 5, SS_ANNE_B1F
 	warp 3, 16, 0, SS_ANNE_KITCHEN
 
-	db 0 ; signs
+	def_signs
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_WAITER, 12, 6, WALK, LEFT_RIGHT, 1 ; person
 	object SPRITE_SAILOR, 27, 5, STAY, NONE, 2 ; person
 
--- a/data/maps/objects/SSAnne1FRooms.asm
+++ b/data/maps/objects/SSAnne1FRooms.asm
@@ -1,7 +1,7 @@
 SSAnne1FRooms_Object:
 	db $c ; border block
 
-	db 6 ; warps
+	def_warps
 	warp 0, 0, 2, SS_ANNE_1F
 	warp 10, 0, 3, SS_ANNE_1F
 	warp 20, 0, 4, SS_ANNE_1F
@@ -9,9 +9,9 @@
 	warp 10, 10, 6, SS_ANNE_1F
 	warp 20, 10, 7, SS_ANNE_1F
 
-	db 0 ; signs
+	def_signs
 
-	db 11 ; objects
+	def_objects
 	object SPRITE_GENTLEMAN, 2, 3, STAY, LEFT, 1, OPP_GENTLEMAN, 1
 	object SPRITE_GENTLEMAN, 11, 4, STAY, UP, 2, OPP_GENTLEMAN, 2
 	object SPRITE_YOUNGSTER, 11, 14, STAY, UP, 3, OPP_YOUNGSTER, 8
--- a/data/maps/objects/SSAnne2F.asm
+++ b/data/maps/objects/SSAnne2F.asm
@@ -1,7 +1,7 @@
 SSAnne2F_Object:
 	db $c ; border block
 
-	db 9 ; warps
+	def_warps
 	warp 9, 11, 0, SS_ANNE_2F_ROOMS
 	warp 13, 11, 2, SS_ANNE_2F_ROOMS
 	warp 17, 11, 4, SS_ANNE_2F_ROOMS
@@ -12,9 +12,9 @@
 	warp 2, 12, 1, SS_ANNE_3F
 	warp 36, 4, 0, SS_ANNE_CAPTAINS_ROOM
 
-	db 0 ; signs
+	def_signs
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_WAITER, 3, 7, WALK, UP_DOWN, 1 ; person
 	object SPRITE_BLUE, 36, 4, STAY, DOWN, 2, OPP_RIVAL1, 1
 
--- a/data/maps/objects/SSAnne2FRooms.asm
+++ b/data/maps/objects/SSAnne2FRooms.asm
@@ -1,7 +1,7 @@
 SSAnne2FRooms_Object:
 	db $c ; border block
 
-	db 12 ; warps
+	def_warps
 	warp 2, 5, 0, SS_ANNE_2F
 	warp 3, 5, 0, SS_ANNE_2F
 	warp 12, 5, 1, SS_ANNE_2F
@@ -15,9 +15,9 @@
 	warp 22, 15, 5, SS_ANNE_2F
 	warp 23, 15, 5, SS_ANNE_2F
 
-	db 0 ; signs
+	def_signs
 
-	db 13 ; objects
+	def_objects
 	object SPRITE_GENTLEMAN, 10, 2, STAY, RIGHT, 1, OPP_GENTLEMAN, 3
 	object SPRITE_FISHER, 13, 4, STAY, LEFT, 2, OPP_FISHER, 1
 	object SPRITE_GENTLEMAN, 0, 14, STAY, RIGHT, 3, OPP_GENTLEMAN, 5
--- a/data/maps/objects/SSAnne3F.asm
+++ b/data/maps/objects/SSAnne3F.asm
@@ -1,13 +1,13 @@
 SSAnne3F_Object:
 	db $c ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 0, 3, 0, SS_ANNE_BOW
 	warp 19, 3, 7, SS_ANNE_2F
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_SAILOR, 9, 3, WALK, LEFT_RIGHT, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/SSAnneB1F.asm
+++ b/data/maps/objects/SSAnneB1F.asm
@@ -1,7 +1,7 @@
 SSAnneB1F_Object:
 	db $c ; border block
 
-	db 6 ; warps
+	def_warps
 	warp 23, 3, 8, SS_ANNE_B1F_ROOMS
 	warp 19, 3, 6, SS_ANNE_B1F_ROOMS
 	warp 15, 3, 4, SS_ANNE_B1F_ROOMS
@@ -9,9 +9,9 @@
 	warp 7, 3, 0, SS_ANNE_B1F_ROOMS
 	warp 27, 5, 9, SS_ANNE_1F
 
-	db 0 ; signs
+	def_signs
 
-	db 0 ; objects
+	def_objects
 
 	; warp-to
 	warp_to 23, 3, SS_ANNE_B1F_WIDTH ; SS_ANNE_B1F_ROOMS
--- a/data/maps/objects/SSAnneB1FRooms.asm
+++ b/data/maps/objects/SSAnneB1FRooms.asm
@@ -1,7 +1,7 @@
 SSAnneB1FRooms_Object:
 	db $c ; border block
 
-	db 10 ; warps
+	def_warps
 	warp 2, 5, 4, SS_ANNE_B1F
 	warp 3, 5, 4, SS_ANNE_B1F
 	warp 12, 5, 3, SS_ANNE_B1F
@@ -13,9 +13,9 @@
 	warp 12, 15, 0, SS_ANNE_B1F
 	warp 13, 15, 0, SS_ANNE_B1F
 
-	db 0 ; signs
+	def_signs
 
-	db 11 ; objects
+	def_objects
 	object SPRITE_SAILOR, 0, 13, STAY, DOWN, 1, OPP_SAILOR, 3
 	object SPRITE_SAILOR, 2, 11, STAY, DOWN, 2, OPP_SAILOR, 4
 	object SPRITE_SAILOR, 12, 3, STAY, LEFT, 3, OPP_SAILOR, 5
--- a/data/maps/objects/SSAnneBow.asm
+++ b/data/maps/objects/SSAnneBow.asm
@@ -1,13 +1,13 @@
 SSAnneBow_Object:
 	db $23 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 13, 6, 0, SS_ANNE_3F
 	warp 13, 7, 0, SS_ANNE_3F
 
-	db 0 ; signs
+	def_signs
 
-	db 5 ; objects
+	def_objects
 	object SPRITE_SUPER_NERD, 5, 2, STAY, UP, 1 ; person
 	object SPRITE_SAILOR, 4, 9, STAY, NONE, 2 ; person
 	object SPRITE_COOLTRAINER_M, 7, 11, STAY, NONE, 3 ; person
--- a/data/maps/objects/SSAnneCaptainsRoom.asm
+++ b/data/maps/objects/SSAnneCaptainsRoom.asm
@@ -1,14 +1,14 @@
 SSAnneCaptainsRoom_Object:
 	db $c ; border block
 
-	db 1 ; warps
+	def_warps
 	warp 0, 7, 8, SS_ANNE_2F
 
-	db 2 ; signs
+	def_signs
 	sign 4, 1, 2 ; SSAnne7Text2
 	sign 1, 2, 3 ; SSAnne7Text3
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_CAPTAIN, 4, 2, STAY, UP, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/SSAnneKitchen.asm
+++ b/data/maps/objects/SSAnneKitchen.asm
@@ -1,12 +1,12 @@
 SSAnneKitchen_Object:
 	db $c ; border block
 
-	db 1 ; warps
+	def_warps
 	warp 6, 0, 10, SS_ANNE_1F
 
-	db 0 ; signs
+	def_signs
 
-	db 7 ; objects
+	def_objects
 	object SPRITE_COOK, 1, 8, WALK, UP_DOWN, 1 ; person
 	object SPRITE_COOK, 5, 8, WALK, UP_DOWN, 2 ; person
 	object SPRITE_COOK, 9, 7, WALK, UP_DOWN, 3 ; person
--- a/data/maps/objects/SafariZoneCenter.asm
+++ b/data/maps/objects/SafariZoneCenter.asm
@@ -1,7 +1,7 @@
 SafariZoneCenter_Object:
 	db $0 ; border block
 
-	db 9 ; warps
+	def_warps
 	warp 14, 25, 2, SAFARI_ZONE_GATE
 	warp 15, 25, 3, SAFARI_ZONE_GATE
 	warp 0, 10, 4, SAFARI_ZONE_WEST
@@ -12,11 +12,11 @@
 	warp 29, 11, 3, SAFARI_ZONE_EAST
 	warp 17, 19, 0, SAFARI_ZONE_CENTER_REST_HOUSE
 
-	db 2 ; signs
+	def_signs
 	sign 18, 20, 2 ; SafariZoneCenterText2
 	sign 14, 22, 3 ; SafariZoneCenterText3
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_POKE_BALL, 14, 10, STAY, NONE, 1, NUGGET
 
 	; warp-to
--- a/data/maps/objects/SafariZoneCenterRestHouse.asm
+++ b/data/maps/objects/SafariZoneCenterRestHouse.asm
@@ -1,13 +1,13 @@
 SafariZoneCenterRestHouse_Object:
 	db $a ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 8, SAFARI_ZONE_CENTER
 	warp 3, 7, 8, SAFARI_ZONE_CENTER
 
-	db 0 ; signs
+	def_signs
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_GIRL, 3, 2, STAY, DOWN, 1 ; person
 	object SPRITE_SCIENTIST, 1, 4, WALK, UP_DOWN, 2 ; person
 
--- a/data/maps/objects/SafariZoneEast.asm
+++ b/data/maps/objects/SafariZoneEast.asm
@@ -1,7 +1,7 @@
 SafariZoneEast_Object:
 	db $0 ; border block
 
-	db 5 ; warps
+	def_warps
 	warp 0, 4, 6, SAFARI_ZONE_NORTH
 	warp 0, 5, 7, SAFARI_ZONE_NORTH
 	warp 0, 22, 6, SAFARI_ZONE_CENTER
@@ -8,12 +8,12 @@
 	warp 0, 23, 6, SAFARI_ZONE_CENTER
 	warp 25, 9, 0, SAFARI_ZONE_EAST_REST_HOUSE
 
-	db 3 ; signs
+	def_signs
 	sign 26, 10, 5 ; SafariZoneEastText5
 	sign 6, 4, 6 ; SafariZoneEastText6
 	sign 5, 23, 7 ; SafariZoneEastText7
 
-	db 4 ; objects
+	def_objects
 	object SPRITE_POKE_BALL, 21, 10, STAY, NONE, 1, FULL_RESTORE
 	object SPRITE_POKE_BALL, 3, 7, STAY, NONE, 2, MAX_POTION
 	object SPRITE_POKE_BALL, 20, 13, STAY, NONE, 3, CARBOS
--- a/data/maps/objects/SafariZoneEastRestHouse.asm
+++ b/data/maps/objects/SafariZoneEastRestHouse.asm
@@ -1,13 +1,13 @@
 SafariZoneEastRestHouse_Object:
 	db $a ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 4, SAFARI_ZONE_EAST
 	warp 3, 7, 4, SAFARI_ZONE_EAST
 
-	db 0 ; signs
+	def_signs
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_SCIENTIST, 1, 3, WALK, UP_DOWN, 1 ; person
 	object SPRITE_ROCKER, 4, 2, STAY, NONE, 2 ; person
 	object SPRITE_SILPH_WORKER, 5, 2, STAY, NONE, 3 ; person
--- a/data/maps/objects/SafariZoneGate.asm
+++ b/data/maps/objects/SafariZoneGate.asm
@@ -1,15 +1,15 @@
 SafariZoneGate_Object:
 	db $a ; border block
 
-	db 4 ; warps
+	def_warps
 	warp 3, 5, 4, LAST_MAP
 	warp 4, 5, 4, LAST_MAP
 	warp 3, 0, 0, SAFARI_ZONE_CENTER
 	warp 4, 0, 1, SAFARI_ZONE_CENTER
 
-	db 0 ; signs
+	def_signs
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_SAFARI_ZONE_WORKER, 6, 2, STAY, LEFT, 1 ; person
 	object SPRITE_SAFARI_ZONE_WORKER, 1, 4, STAY, RIGHT, 2 ; person
 
--- a/data/maps/objects/SafariZoneNorth.asm
+++ b/data/maps/objects/SafariZoneNorth.asm
@@ -1,7 +1,7 @@
 SafariZoneNorth_Object:
 	db $0 ; border block
 
-	db 9 ; warps
+	def_warps
 	warp 2, 35, 0, SAFARI_ZONE_WEST
 	warp 3, 35, 1, SAFARI_ZONE_WEST
 	warp 8, 35, 2, SAFARI_ZONE_WEST
@@ -12,7 +12,7 @@
 	warp 39, 31, 1, SAFARI_ZONE_EAST
 	warp 35, 3, 0, SAFARI_ZONE_NORTH_REST_HOUSE
 
-	db 5 ; signs
+	def_signs
 	sign 36, 4, 3 ; SafariZoneNorthText3
 	sign 4, 25, 4 ; SafariZoneNorthText4
 	sign 13, 31, 5 ; SafariZoneNorthText5
@@ -19,7 +19,7 @@
 	sign 19, 33, 6 ; SafariZoneNorthText6
 	sign 26, 28, 7 ; SafariZoneNorthText7
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_POKE_BALL, 25, 1, STAY, NONE, 1, PROTEIN
 	object SPRITE_POKE_BALL, 19, 7, STAY, NONE, 2, TM_SKULL_BASH
 
--- a/data/maps/objects/SafariZoneNorthRestHouse.asm
+++ b/data/maps/objects/SafariZoneNorthRestHouse.asm
@@ -1,13 +1,13 @@
 SafariZoneNorthRestHouse_Object:
 	db $a ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 8, SAFARI_ZONE_NORTH
 	warp 3, 7, 8, SAFARI_ZONE_NORTH
 
-	db 0 ; signs
+	def_signs
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_SCIENTIST, 6, 3, WALK, LEFT_RIGHT, 1 ; person
 	object SPRITE_SAFARI_ZONE_WORKER, 3, 4, STAY, NONE, 2 ; person
 	object SPRITE_GENTLEMAN, 1, 5, WALK, UP_DOWN, 3 ; person
--- a/data/maps/objects/SafariZoneSecretHouse.asm
+++ b/data/maps/objects/SafariZoneSecretHouse.asm
@@ -1,13 +1,13 @@
 SafariZoneSecretHouse_Object:
 	db $17 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 6, SAFARI_ZONE_WEST
 	warp 3, 7, 6, SAFARI_ZONE_WEST
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_FISHING_GURU, 3, 3, STAY, DOWN, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/SafariZoneWest.asm
+++ b/data/maps/objects/SafariZoneWest.asm
@@ -1,7 +1,7 @@
 SafariZoneWest_Object:
 	db $0 ; border block
 
-	db 8 ; warps
+	def_warps
 	warp 20, 0, 0, SAFARI_ZONE_NORTH
 	warp 21, 0, 1, SAFARI_ZONE_NORTH
 	warp 26, 0, 2, SAFARI_ZONE_NORTH
@@ -11,13 +11,13 @@
 	warp 3, 3, 0, SAFARI_ZONE_SECRET_HOUSE
 	warp 11, 11, 0, SAFARI_ZONE_WEST_REST_HOUSE
 
-	db 4 ; signs
+	def_signs
 	sign 12, 12, 5 ; SafariZoneWestText5
 	sign 17, 3, 6 ; SafariZoneWestText6
 	sign 26, 4, 7 ; SafariZoneWestText7
 	sign 24, 22, 8 ; SafariZoneWestText8
 
-	db 4 ; objects
+	def_objects
 	object SPRITE_POKE_BALL, 8, 20, STAY, NONE, 1, MAX_POTION
 	object SPRITE_POKE_BALL, 9, 7, STAY, NONE, 2, TM_DOUBLE_TEAM
 	object SPRITE_POKE_BALL, 18, 18, STAY, NONE, 3, MAX_REVIVE
--- a/data/maps/objects/SafariZoneWestRestHouse.asm
+++ b/data/maps/objects/SafariZoneWestRestHouse.asm
@@ -1,13 +1,13 @@
 SafariZoneWestRestHouse_Object:
 	db $a ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 7, SAFARI_ZONE_WEST
 	warp 3, 7, 7, SAFARI_ZONE_WEST
 
-	db 0 ; signs
+	def_signs
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_SCIENTIST, 4, 4, WALK, ANY_DIR, 1 ; person
 	object SPRITE_COOLTRAINER_M, 0, 2, STAY, RIGHT, 2 ; person
 	object SPRITE_ERIKA, 6, 2, STAY, DOWN, 3 ; person
--- a/data/maps/objects/SaffronCity.asm
+++ b/data/maps/objects/SaffronCity.asm
@@ -1,7 +1,7 @@
 SaffronCity_Object:
 	db $f ; border block
 
-	db 8 ; warps
+	def_warps
 	warp 7, 5, 0, COPYCATS_HOUSE_1F
 	warp 26, 3, 0, FIGHTING_DOJO
 	warp 34, 3, 0, SAFFRON_GYM
@@ -11,7 +11,7 @@
 	warp 9, 29, 0, SAFFRON_POKECENTER
 	warp 29, 29, 0, MR_PSYCHICS_HOUSE
 
-	db 10 ; signs
+	def_signs
 	sign 17, 5, 16 ; SaffronCityText16
 	sign 27, 5, 17 ; SaffronCityText17
 	sign 35, 5, 18 ; SaffronCityText18
@@ -23,7 +23,7 @@
 	sign 27, 29, 24 ; SaffronCityText24
 	sign 1, 19, 25 ; SaffronCityText25
 
-	db 15 ; objects
+	def_objects
 	object SPRITE_ROCKET, 7, 6, STAY, NONE, 1 ; person
 	object SPRITE_ROCKET, 20, 8, WALK, LEFT_RIGHT, 2 ; person
 	object SPRITE_ROCKET, 34, 4, STAY, NONE, 3 ; person
--- a/data/maps/objects/SaffronGym.asm
+++ b/data/maps/objects/SaffronGym.asm
@@ -1,7 +1,7 @@
 SaffronGym_Object:
 	db $2e ; border block
 
-	db 32 ; warps
+	def_warps
 	warp 8, 17, 2, LAST_MAP
 	warp 9, 17, 2, LAST_MAP
 	warp 1, 3, 22, SAFFRON_GYM
@@ -35,9 +35,9 @@
 	warp 15, 17, 11, SAFFRON_GYM
 	warp 19, 17, 19, SAFFRON_GYM
 
-	db 0 ; signs
+	def_signs
 
-	db 9 ; objects
+	def_objects
 	object SPRITE_GIRL, 9, 8, STAY, DOWN, 1, OPP_SABRINA, 1
 	object SPRITE_CHANNELER, 10, 1, STAY, DOWN, 2, OPP_CHANNELER, 22
 	object SPRITE_YOUNGSTER, 17, 1, STAY, DOWN, 3, OPP_PSYCHIC_TR, 1
--- a/data/maps/objects/SaffronMart.asm
+++ b/data/maps/objects/SaffronMart.asm
@@ -1,13 +1,13 @@
 SaffronMart_Object:
 	db $0 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 3, 7, 4, LAST_MAP
 	warp 4, 7, 4, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_CLERK, 0, 5, STAY, RIGHT, 1 ; person
 	object SPRITE_SUPER_NERD, 4, 2, STAY, NONE, 2 ; person
 	object SPRITE_COOLTRAINER_F, 6, 5, WALK, ANY_DIR, 3 ; person
--- a/data/maps/objects/SaffronPidgeyHouse.asm
+++ b/data/maps/objects/SaffronPidgeyHouse.asm
@@ -1,13 +1,13 @@
 SaffronPidgeyHouse_Object:
 	db $a ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 3, LAST_MAP
 	warp 3, 7, 3, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 4 ; objects
+	def_objects
 	object SPRITE_BRUNETTE_GIRL, 2, 3, STAY, RIGHT, 1 ; person
 	object SPRITE_BIRD, 0, 4, WALK, UP_DOWN, 2 ; person
 	object SPRITE_YOUNGSTER, 4, 1, STAY, DOWN, 3 ; person
--- a/data/maps/objects/SaffronPokecenter.asm
+++ b/data/maps/objects/SaffronPokecenter.asm
@@ -1,13 +1,13 @@
 SaffronPokecenter_Object:
 	db $0 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 3, 7, 6, LAST_MAP
 	warp 4, 7, 6, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 4 ; objects
+	def_objects
 	object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person
 	object SPRITE_BEAUTY, 5, 5, STAY, NONE, 2 ; person
 	object SPRITE_GENTLEMAN, 8, 3, STAY, DOWN, 3 ; person
--- a/data/maps/objects/SeafoamIslands1F.asm
+++ b/data/maps/objects/SeafoamIslands1F.asm
@@ -1,7 +1,7 @@
 SeafoamIslands1F_Object:
 	db $7d ; border block
 
-	db 7 ; warps
+	def_warps
 	warp 4, 17, 0, LAST_MAP
 	warp 5, 17, 0, LAST_MAP
 	warp 26, 17, 1, LAST_MAP
@@ -10,9 +10,9 @@
 	warp 25, 3, 6, SEAFOAM_ISLANDS_B1F
 	warp 23, 15, 4, SEAFOAM_ISLANDS_B1F
 
-	db 0 ; signs
+	def_signs
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_BOULDER, 18, 10, STAY, BOULDER_MOVEMENT_BYTE_2, 1 ; person
 	object SPRITE_BOULDER, 26, 7, STAY, BOULDER_MOVEMENT_BYTE_2, 2 ; person
 
--- a/data/maps/objects/SeafoamIslandsB1F.asm
+++ b/data/maps/objects/SeafoamIslandsB1F.asm
@@ -1,7 +1,7 @@
 SeafoamIslandsB1F_Object:
 	db $7d ; border block
 
-	db 7 ; warps
+	def_warps
 	warp 4, 2, 0, SEAFOAM_ISLANDS_B2F
 	warp 7, 5, 4, SEAFOAM_ISLANDS_1F
 	warp 13, 7, 2, SEAFOAM_ISLANDS_B2F
@@ -10,9 +10,9 @@
 	warp 25, 11, 5, SEAFOAM_ISLANDS_B2F
 	warp 25, 3, 5, SEAFOAM_ISLANDS_1F
 
-	db 0 ; signs
+	def_signs
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_BOULDER, 17, 6, STAY, BOULDER_MOVEMENT_BYTE_2, 1 ; person
 	object SPRITE_BOULDER, 22, 6, STAY, BOULDER_MOVEMENT_BYTE_2, 2 ; person
 
--- a/data/maps/objects/SeafoamIslandsB2F.asm
+++ b/data/maps/objects/SeafoamIslandsB2F.asm
@@ -1,7 +1,7 @@
 SeafoamIslandsB2F_Object:
 	db $7d ; border block
 
-	db 7 ; warps
+	def_warps
 	warp 5, 3, 0, SEAFOAM_ISLANDS_B1F
 	warp 5, 13, 0, SEAFOAM_ISLANDS_B3F
 	warp 13, 7, 2, SEAFOAM_ISLANDS_B1F
@@ -10,9 +10,9 @@
 	warp 25, 11, 5, SEAFOAM_ISLANDS_B1F
 	warp 25, 14, 4, SEAFOAM_ISLANDS_B3F
 
-	db 0 ; signs
+	def_signs
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_BOULDER, 18, 6, STAY, BOULDER_MOVEMENT_BYTE_2, 1 ; person
 	object SPRITE_BOULDER, 23, 6, STAY, BOULDER_MOVEMENT_BYTE_2, 2 ; person
 
--- a/data/maps/objects/SeafoamIslandsB3F.asm
+++ b/data/maps/objects/SeafoamIslandsB3F.asm
@@ -1,7 +1,7 @@
 SeafoamIslandsB3F_Object:
 	db $7d ; border block
 
-	db 7 ; warps
+	def_warps
 	warp 5, 12, 1, SEAFOAM_ISLANDS_B2F
 	warp 8, 6, 2, SEAFOAM_ISLANDS_B4F
 	warp 25, 4, 3, SEAFOAM_ISLANDS_B4F
@@ -10,9 +10,9 @@
 	warp 20, 17, 0, SEAFOAM_ISLANDS_B4F
 	warp 21, 17, 1, SEAFOAM_ISLANDS_B4F
 
-	db 0 ; signs
+	def_signs
 
-	db 6 ; objects
+	def_objects
 	object SPRITE_BOULDER, 5, 14, STAY, BOULDER_MOVEMENT_BYTE_2, 1 ; person
 	object SPRITE_BOULDER, 3, 15, STAY, BOULDER_MOVEMENT_BYTE_2, 2 ; person
 	object SPRITE_BOULDER, 8, 14, STAY, BOULDER_MOVEMENT_BYTE_2, 3 ; person
--- a/data/maps/objects/SeafoamIslandsB4F.asm
+++ b/data/maps/objects/SeafoamIslandsB4F.asm
@@ -1,17 +1,17 @@
 SeafoamIslandsB4F_Object:
 	db $7d ; border block
 
-	db 4 ; warps
+	def_warps
 	warp 20, 17, 5, SEAFOAM_ISLANDS_B3F
 	warp 21, 17, 6, SEAFOAM_ISLANDS_B3F
 	warp 11, 7, 1, SEAFOAM_ISLANDS_B3F
 	warp 25, 4, 2, SEAFOAM_ISLANDS_B3F
 
-	db 2 ; signs
+	def_signs
 	sign 9, 15, 4 ; SeafoamIslands5Text4
 	sign 23, 1, 5 ; SeafoamIslands5Text5
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_BOULDER, 4, 15, STAY, NONE, 1 ; person
 	object SPRITE_BOULDER, 5, 15, STAY, NONE, 2 ; person
 	object SPRITE_BIRD, 6, 1, STAY, DOWN, 3, ARTICUNO, 50
--- a/data/maps/objects/SilphCo10F.asm
+++ b/data/maps/objects/SilphCo10F.asm
@@ -1,7 +1,7 @@
 SilphCo10F_Object:
 	db $2e ; border block
 
-	db 6 ; warps
+	def_warps
 	warp 8, 0, 0, SILPH_CO_9F
 	warp 10, 0, 0, SILPH_CO_11F
 	warp 12, 0, 0, SILPH_CO_ELEVATOR
@@ -9,9 +9,9 @@
 	warp 13, 15, 5, SILPH_CO_4F
 	warp 13, 7, 6, SILPH_CO_4F
 
-	db 0 ; signs
+	def_signs
 
-	db 6 ; objects
+	def_objects
 	object SPRITE_ROCKET, 1, 9, STAY, RIGHT, 1, OPP_ROCKET, 39
 	object SPRITE_SCIENTIST, 10, 2, STAY, LEFT, 2, OPP_SCIENTIST, 11
 	object SPRITE_ERIKA, 9, 15, WALK, ANY_DIR, 3 ; person
--- a/data/maps/objects/SilphCo11F.asm
+++ b/data/maps/objects/SilphCo11F.asm
@@ -1,15 +1,15 @@
 SilphCo11F_Object:
 	db $d ; border block
 
-	db 4 ; warps
+	def_warps
 	warp 9, 0, 1, SILPH_CO_10F
 	warp 13, 0, 0, SILPH_CO_ELEVATOR
 	warp 5, 5, 9, LAST_MAP
 	warp 3, 2, 3, SILPH_CO_7F
 
-	db 0 ; signs
+	def_signs
 
-	db 5 ; objects
+	def_objects
 	object SPRITE_SILPH_PRESIDENT, 7, 5, STAY, DOWN, 1 ; person
 	object SPRITE_BEAUTY, 10, 5, STAY, DOWN, 2 ; person
 	object SPRITE_GIOVANNI, 6, 9, STAY, DOWN, 3, OPP_GIOVANNI, 2
--- a/data/maps/objects/SilphCo1F.asm
+++ b/data/maps/objects/SilphCo1F.asm
@@ -1,7 +1,7 @@
 SilphCo1F_Object:
 	db $2e ; border block
 
-	db 5 ; warps
+	def_warps
 	warp 10, 17, 5, LAST_MAP
 	warp 11, 17, 5, LAST_MAP
 	warp 26, 0, 0, SILPH_CO_2F
@@ -8,9 +8,9 @@
 	warp 20, 0, 0, SILPH_CO_ELEVATOR
 	warp 16, 10, 6, SILPH_CO_3F
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_LINK_RECEPTIONIST, 4, 2, STAY, DOWN, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/SilphCo2F.asm
+++ b/data/maps/objects/SilphCo2F.asm
@@ -1,7 +1,7 @@
 SilphCo2F_Object:
 	db $2e ; border block
 
-	db 7 ; warps
+	def_warps
 	warp 24, 0, 2, SILPH_CO_1F
 	warp 26, 0, 0, SILPH_CO_3F
 	warp 20, 0, 0, SILPH_CO_ELEVATOR
@@ -10,9 +10,9 @@
 	warp 27, 15, 5, SILPH_CO_8F
 	warp 9, 15, 4, SILPH_CO_6F
 
-	db 0 ; signs
+	def_signs
 
-	db 5 ; objects
+	def_objects
 	object SPRITE_ERIKA, 10, 1, STAY, UP, 1 ; person
 	object SPRITE_SCIENTIST, 5, 12, STAY, DOWN, 2, OPP_SCIENTIST, 2
 	object SPRITE_SCIENTIST, 24, 13, STAY, LEFT, 3, OPP_SCIENTIST, 3
--- a/data/maps/objects/SilphCo3F.asm
+++ b/data/maps/objects/SilphCo3F.asm
@@ -1,7 +1,7 @@
 SilphCo3F_Object:
 	db $2e ; border block
 
-	db 10 ; warps
+	def_warps
 	warp 26, 0, 1, SILPH_CO_2F
 	warp 24, 0, 0, SILPH_CO_4F
 	warp 20, 0, 0, SILPH_CO_ELEVATOR
@@ -13,9 +13,9 @@
 	warp 11, 11, 4, SILPH_CO_7F
 	warp 27, 15, 3, SILPH_CO_3F
 
-	db 0 ; signs
+	def_signs
 
-	db 4 ; objects
+	def_objects
 	object SPRITE_SILPH_WORKER, 24, 8, STAY, NONE, 1 ; person
 	object SPRITE_ROCKET, 20, 7, STAY, LEFT, 2, OPP_ROCKET, 25
 	object SPRITE_SCIENTIST, 7, 9, STAY, DOWN, 3, OPP_SCIENTIST, 4
--- a/data/maps/objects/SilphCo4F.asm
+++ b/data/maps/objects/SilphCo4F.asm
@@ -1,7 +1,7 @@
 SilphCo4F_Object:
 	db $2e ; border block
 
-	db 7 ; warps
+	def_warps
 	warp 24, 0, 1, SILPH_CO_3F
 	warp 26, 0, 1, SILPH_CO_5F
 	warp 20, 0, 0, SILPH_CO_ELEVATOR
@@ -10,9 +10,9 @@
 	warp 3, 15, 4, SILPH_CO_10F
 	warp 17, 11, 5, SILPH_CO_10F
 
-	db 0 ; signs
+	def_signs
 
-	db 7 ; objects
+	def_objects
 	object SPRITE_SILPH_WORKER, 6, 2, STAY, NONE, 1 ; person
 	object SPRITE_ROCKET, 9, 14, STAY, RIGHT, 2, OPP_ROCKET, 26
 	object SPRITE_SCIENTIST, 14, 6, STAY, LEFT, 3, OPP_SCIENTIST, 5
--- a/data/maps/objects/SilphCo5F.asm
+++ b/data/maps/objects/SilphCo5F.asm
@@ -1,7 +1,7 @@
 SilphCo5F_Object:
 	db $2e ; border block
 
-	db 7 ; warps
+	def_warps
 	warp 24, 0, 1, SILPH_CO_6F
 	warp 26, 0, 1, SILPH_CO_4F
 	warp 20, 0, 0, SILPH_CO_ELEVATOR
@@ -10,9 +10,9 @@
 	warp 11, 5, 4, SILPH_CO_3F
 	warp 3, 15, 5, SILPH_CO_3F
 
-	db 0 ; signs
+	def_signs
 
-	db 11 ; objects
+	def_objects
 	object SPRITE_SILPH_WORKER, 13, 9, STAY, NONE, 1 ; person
 	object SPRITE_ROCKET, 8, 16, STAY, RIGHT, 2, OPP_ROCKET, 28
 	object SPRITE_SCIENTIST, 8, 3, STAY, RIGHT, 3, OPP_SCIENTIST, 6
--- a/data/maps/objects/SilphCo6F.asm
+++ b/data/maps/objects/SilphCo6F.asm
@@ -1,7 +1,7 @@
 SilphCo6F_Object:
 	db $2e ; border block
 
-	db 5 ; warps
+	def_warps
 	warp 16, 0, 1, SILPH_CO_7F
 	warp 14, 0, 0, SILPH_CO_5F
 	warp 18, 0, 0, SILPH_CO_ELEVATOR
@@ -8,9 +8,9 @@
 	warp 3, 3, 4, SILPH_CO_4F
 	warp 23, 3, 6, SILPH_CO_2F
 
-	db 0 ; signs
+	def_signs
 
-	db 10 ; objects
+	def_objects
 	object SPRITE_SILPH_WORKER, 10, 6, STAY, NONE, 1 ; person
 	object SPRITE_SILPH_WORKER, 20, 6, STAY, NONE, 2 ; person
 	object SPRITE_ERIKA, 21, 6, STAY, DOWN, 3 ; person
--- a/data/maps/objects/SilphCo7F.asm
+++ b/data/maps/objects/SilphCo7F.asm
@@ -1,7 +1,7 @@
 SilphCo7F_Object:
 	db $2e ; border block
 
-	db 6 ; warps
+	def_warps
 	warp 16, 0, 1, SILPH_CO_8F
 	warp 22, 0, 0, SILPH_CO_6F
 	warp 18, 0, 0, SILPH_CO_ELEVATOR
@@ -9,9 +9,9 @@
 	warp 5, 3, 8, SILPH_CO_3F
 	warp 21, 15, 3, SILPH_CO_5F
 
-	db 0 ; signs
+	def_signs
 
-	db 11 ; objects
+	def_objects
 	object SPRITE_SILPH_WORKER, 1, 5, STAY, NONE, 1 ; person
 	object SPRITE_SILPH_WORKER, 13, 13, STAY, UP, 2 ; person
 	object SPRITE_SILPH_WORKER, 7, 10, STAY, NONE, 3 ; person
--- a/data/maps/objects/SilphCo8F.asm
+++ b/data/maps/objects/SilphCo8F.asm
@@ -1,7 +1,7 @@
 SilphCo8F_Object:
 	db $2e ; border block
 
-	db 7 ; warps
+	def_warps
 	warp 16, 0, 1, SILPH_CO_9F
 	warp 14, 0, 0, SILPH_CO_7F
 	warp 18, 0, 0, SILPH_CO_ELEVATOR
@@ -10,9 +10,9 @@
 	warp 11, 5, 5, SILPH_CO_2F
 	warp 11, 9, 3, SILPH_CO_8F
 
-	db 0 ; signs
+	def_signs
 
-	db 4 ; objects
+	def_objects
 	object SPRITE_SILPH_WORKER, 4, 2, STAY, NONE, 1 ; person
 	object SPRITE_ROCKET, 19, 2, STAY, LEFT, 2, OPP_ROCKET, 35
 	object SPRITE_SCIENTIST, 10, 2, STAY, DOWN, 3, OPP_SCIENTIST, 9
--- a/data/maps/objects/SilphCo9F.asm
+++ b/data/maps/objects/SilphCo9F.asm
@@ -1,7 +1,7 @@
 SilphCo9F_Object:
 	db $2e ; border block
 
-	db 5 ; warps
+	def_warps
 	warp 14, 0, 0, SILPH_CO_10F
 	warp 16, 0, 0, SILPH_CO_8F
 	warp 18, 0, 0, SILPH_CO_ELEVATOR
@@ -8,9 +8,9 @@
 	warp 9, 3, 7, SILPH_CO_3F
 	warp 17, 15, 4, SILPH_CO_5F
 
-	db 0 ; signs
+	def_signs
 
-	db 4 ; objects
+	def_objects
 	object SPRITE_NURSE, 3, 14, STAY, DOWN, 1 ; person
 	object SPRITE_ROCKET, 2, 4, STAY, UP, 2, OPP_ROCKET, 37
 	object SPRITE_SCIENTIST, 21, 13, STAY, DOWN, 3, OPP_SCIENTIST, 10
--- a/data/maps/objects/SilphCoElevator.asm
+++ b/data/maps/objects/SilphCoElevator.asm
@@ -1,14 +1,14 @@
 SilphCoElevator_Object:
 	db $f ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 1, 3, 0, 237
 	warp 2, 3, 0, 237
 
-	db 1 ; signs
+	def_signs
 	sign 3, 0, 1 ; SilphCoElevatorText1
 
-	db 0 ; objects
+	def_objects
 
 	; warp-to
 	warp_to 1, 3, SILPH_CO_ELEVATOR_WIDTH
--- a/data/maps/objects/TradeCenter.asm
+++ b/data/maps/objects/TradeCenter.asm
@@ -1,9 +1,9 @@
 TradeCenter_Object:
 	db $e ; border block
 
-	db 0 ; warps
+	def_warps
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_RED, 2, 2, STAY, 0, 1 ; person
--- a/data/maps/objects/UndergroundPathNorthSouth.asm
+++ b/data/maps/objects/UndergroundPathNorthSouth.asm
@@ -1,13 +1,13 @@
 UndergroundPathNorthSouth_Object:
 	db $1 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 5, 4, 2, UNDERGROUND_PATH_ROUTE_5
 	warp 2, 41, 2, UNDERGROUND_PATH_ROUTE_6
 
-	db 0 ; signs
+	def_signs
 
-	db 0 ; objects
+	def_objects
 
 	; warp-to
 	warp_to 5, 4, UNDERGROUND_PATH_NORTH_SOUTH_WIDTH ; UNDERGROUND_PATH_ROUTE_5
--- a/data/maps/objects/UndergroundPathRoute5.asm
+++ b/data/maps/objects/UndergroundPathRoute5.asm
@@ -1,14 +1,14 @@
 UndergroundPathRoute5_Object:
 	db $a ; border block
 
-	db 3 ; warps
+	def_warps
 	warp 3, 7, 3, LAST_MAP
 	warp 4, 7, 3, LAST_MAP
 	warp 4, 4, 0, UNDERGROUND_PATH_NORTH_SOUTH
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_LITTLE_GIRL, 2, 3, STAY, NONE, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/UndergroundPathRoute6.asm
+++ b/data/maps/objects/UndergroundPathRoute6.asm
@@ -1,14 +1,14 @@
 UndergroundPathRoute6_Object:
 	db $a ; border block
 
-	db 3 ; warps
+	def_warps
 	warp 3, 7, 3, LAST_MAP
 	warp 4, 7, 3, LAST_MAP
 	warp 4, 4, 1, UNDERGROUND_PATH_NORTH_SOUTH
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_GIRL, 2, 3, STAY, NONE, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/UndergroundPathRoute7.asm
+++ b/data/maps/objects/UndergroundPathRoute7.asm
@@ -1,14 +1,14 @@
 UndergroundPathRoute7_Object:
 	db $a ; border block
 
-	db 3 ; warps
+	def_warps
 	warp 3, 7, 4, LAST_MAP
 	warp 4, 7, 4, LAST_MAP
 	warp 4, 4, 0, UNDERGROUND_PATH_WEST_EAST
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_MIDDLE_AGED_MAN, 2, 4, STAY, NONE, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/UndergroundPathRoute7Copy.asm
+++ b/data/maps/objects/UndergroundPathRoute7Copy.asm
@@ -1,14 +1,14 @@
 UndergroundPathRoute7Copy_Object:
 	db $a ; border block
 
-	db 3 ; warps
+	def_warps
 	warp 3, 7, 5, LAST_MAP
 	warp 4, 7, 5, LAST_MAP
 	warp 4, 4, 0, UNDERGROUND_PATH_WEST_EAST
 
-	db 0 ; signs
+	def_signs
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_GIRL, 3, 2, STAY, NONE, 1 ; person
 	object SPRITE_MIDDLE_AGED_MAN, 2, 4, STAY, NONE, 2 ; person
 
--- a/data/maps/objects/UndergroundPathRoute8.asm
+++ b/data/maps/objects/UndergroundPathRoute8.asm
@@ -1,14 +1,14 @@
 UndergroundPathRoute8_Object:
 	db $a ; border block
 
-	db 3 ; warps
+	def_warps
 	warp 3, 7, 4, LAST_MAP
 	warp 4, 7, 4, LAST_MAP
 	warp 4, 4, 1, UNDERGROUND_PATH_WEST_EAST
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_GIRL, 3, 4, STAY, NONE, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/UndergroundPathWestEast.asm
+++ b/data/maps/objects/UndergroundPathWestEast.asm
@@ -1,13 +1,13 @@
 UndergroundPathWestEast_Object:
 	db $1 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 5, 2, UNDERGROUND_PATH_ROUTE_7
 	warp 47, 2, 2, UNDERGROUND_PATH_ROUTE_8
 
-	db 0 ; signs
+	def_signs
 
-	db 0 ; objects
+	def_objects
 
 	; warp-to
 	warp_to 2, 5, UNDERGROUND_PATH_WEST_EAST_WIDTH ; UNDERGROUND_PATH_ROUTE_7
--- a/data/maps/objects/VermilionCity.asm
+++ b/data/maps/objects/VermilionCity.asm
@@ -1,7 +1,7 @@
 VermilionCity_Object:
 	db $43 ; border block
 
-	db 9 ; warps
+	def_warps
 	warp 11, 3, 0, VERMILION_POKECENTER
 	warp 9, 13, 0, POKEMON_FAN_CLUB
 	warp 23, 13, 0, VERMILION_MART
@@ -12,7 +12,7 @@
 	warp 15, 13, 0, VERMILION_TRADE_HOUSE
 	warp 7, 3, 0, VERMILION_OLD_ROD_HOUSE
 
-	db 7 ; signs
+	def_signs
 	sign 27, 3, 7 ; VermilionCityText7
 	sign 37, 13, 8 ; VermilionCityText8
 	sign 24, 13, 9 ; MartSignText
@@ -21,7 +21,7 @@
 	sign 7, 19, 12 ; VermilionCityText12
 	sign 29, 15, 13 ; VermilionCityText13
 
-	db 6 ; objects
+	def_objects
 	object SPRITE_BEAUTY, 19, 7, WALK, LEFT_RIGHT, 1 ; person
 	object SPRITE_GAMBLER, 14, 6, STAY, NONE, 2 ; person
 	object SPRITE_SAILOR, 19, 30, STAY, UP, 3 ; person
--- a/data/maps/objects/VermilionDock.asm
+++ b/data/maps/objects/VermilionDock.asm
@@ -1,13 +1,13 @@
 VermilionDock_Object:
 	db $f ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 14, 0, 5, LAST_MAP
 	warp 14, 2, 1, SS_ANNE_1F
 
-	db 0 ; signs
+	def_signs
 
-	db 0 ; objects
+	def_objects
 
 	; warp-to
 	warp_to 14, 0, VERMILION_DOCK_WIDTH
--- a/data/maps/objects/VermilionGym.asm
+++ b/data/maps/objects/VermilionGym.asm
@@ -1,13 +1,13 @@
 VermilionGym_Object:
 	db $3 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 4, 17, 3, LAST_MAP
 	warp 5, 17, 3, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 5 ; objects
+	def_objects
 	object SPRITE_ROCKER, 5, 1, STAY, DOWN, 1, OPP_LT_SURGE, 1
 	object SPRITE_GENTLEMAN, 9, 6, STAY, LEFT, 2, OPP_GENTLEMAN, 3
 	object SPRITE_SUPER_NERD, 3, 8, STAY, LEFT, 3, OPP_ROCKER, 1
--- a/data/maps/objects/VermilionMart.asm
+++ b/data/maps/objects/VermilionMart.asm
@@ -1,13 +1,13 @@
 VermilionMart_Object:
 	db $0 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 3, 7, 2, LAST_MAP
 	warp 4, 7, 2, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_CLERK, 0, 5, STAY, RIGHT, 1 ; person
 	object SPRITE_COOLTRAINER_M, 5, 6, STAY, NONE, 2 ; person
 	object SPRITE_COOLTRAINER_F, 3, 3, WALK, LEFT_RIGHT, 3 ; person
--- a/data/maps/objects/VermilionOldRodHouse.asm
+++ b/data/maps/objects/VermilionOldRodHouse.asm
@@ -1,13 +1,13 @@
 VermilionOldRodHouse_Object:
 	db $a ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 8, LAST_MAP
 	warp 3, 7, 8, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_FISHING_GURU, 2, 4, STAY, RIGHT, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/VermilionPidgeyHouse.asm
+++ b/data/maps/objects/VermilionPidgeyHouse.asm
@@ -1,13 +1,13 @@
 VermilionPidgeyHouse_Object:
 	db $a ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 4, LAST_MAP
 	warp 3, 7, 4, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_YOUNGSTER, 5, 3, STAY, LEFT, 1 ; person
 	object SPRITE_BIRD, 3, 5, WALK, LEFT_RIGHT, 2 ; person
 	object SPRITE_PAPER, 4, 3, STAY, NONE, 3 ; person
--- a/data/maps/objects/VermilionPokecenter.asm
+++ b/data/maps/objects/VermilionPokecenter.asm
@@ -1,13 +1,13 @@
 VermilionPokecenter_Object:
 	db $0 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 3, 7, 0, LAST_MAP
 	warp 4, 7, 0, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 4 ; objects
+	def_objects
 	object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person
 	object SPRITE_FISHING_GURU, 10, 5, STAY, NONE, 2 ; person
 	object SPRITE_SAILOR, 5, 4, STAY, NONE, 3 ; person
--- a/data/maps/objects/VermilionTradeHouse.asm
+++ b/data/maps/objects/VermilionTradeHouse.asm
@@ -1,13 +1,13 @@
 VermilionTradeHouse_Object:
 	db $a ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 7, LAST_MAP
 	warp 3, 7, 7, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 1 ; objects
+	def_objects
 	object SPRITE_LITTLE_GIRL, 3, 5, STAY, UP, 1 ; person
 
 	; warp-to
--- a/data/maps/objects/VictoryRoad1F.asm
+++ b/data/maps/objects/VictoryRoad1F.asm
@@ -1,14 +1,14 @@
 VictoryRoad1F_Object:
 	db $7d ; border block
 
-	db 3 ; warps
+	def_warps
 	warp 8, 17, 2, LAST_MAP
 	warp 9, 17, 2, LAST_MAP
 	warp 1, 1, 0, VICTORY_ROAD_2F
 
-	db 0 ; signs
+	def_signs
 
-	db 7 ; objects
+	def_objects
 	object SPRITE_COOLTRAINER_F, 7, 5, STAY, RIGHT, 1, OPP_COOLTRAINER_F, 5
 	object SPRITE_COOLTRAINER_M, 3, 2, STAY, DOWN, 2, OPP_COOLTRAINER_M, 5
 	object SPRITE_POKE_BALL, 11, 0, STAY, NONE, 3, TM_SKY_ATTACK
--- a/data/maps/objects/VictoryRoad2F.asm
+++ b/data/maps/objects/VictoryRoad2F.asm
@@ -1,7 +1,7 @@
 VictoryRoad2F_Object:
 	db $7d ; border block
 
-	db 7 ; warps
+	def_warps
 	warp 0, 8, 2, VICTORY_ROAD_1F
 	warp 29, 7, 3, LAST_MAP
 	warp 29, 8, 3, LAST_MAP
@@ -10,9 +10,9 @@
 	warp 27, 7, 1, VICTORY_ROAD_3F
 	warp 1, 1, 3, VICTORY_ROAD_3F
 
-	db 0 ; signs
+	def_signs
 
-	db 13 ; objects
+	def_objects
 	object SPRITE_HIKER, 12, 9, STAY, LEFT, 1, OPP_BLACKBELT, 9
 	object SPRITE_SUPER_NERD, 21, 13, STAY, LEFT, 2, OPP_JUGGLER, 2
 	object SPRITE_COOLTRAINER_M, 19, 8, STAY, DOWN, 3, OPP_TAMER, 5
--- a/data/maps/objects/VictoryRoad3F.asm
+++ b/data/maps/objects/VictoryRoad3F.asm
@@ -1,15 +1,15 @@
 VictoryRoad3F_Object:
 	db $7d ; border block
 
-	db 4 ; warps
+	def_warps
 	warp 23, 7, 3, VICTORY_ROAD_2F
 	warp 26, 8, 5, VICTORY_ROAD_2F
 	warp 27, 15, 4, VICTORY_ROAD_2F
 	warp 2, 0, 6, VICTORY_ROAD_2F
 
-	db 0 ; signs
+	def_signs
 
-	db 10 ; objects
+	def_objects
 	object SPRITE_COOLTRAINER_M, 28, 5, STAY, LEFT, 1, OPP_COOLTRAINER_M, 2
 	object SPRITE_COOLTRAINER_F, 7, 13, STAY, RIGHT, 2, OPP_COOLTRAINER_F, 2
 	object SPRITE_COOLTRAINER_M, 6, 14, STAY, LEFT, 3, OPP_COOLTRAINER_M, 3
--- a/data/maps/objects/ViridianCity.asm
+++ b/data/maps/objects/ViridianCity.asm
@@ -1,7 +1,7 @@
 ViridianCity_Object:
 	db $f ; border block
 
-	db 5 ; warps
+	def_warps
 	warp 23, 25, 0, VIRIDIAN_POKECENTER
 	warp 29, 19, 0, VIRIDIAN_MART
 	warp 21, 15, 0, VIRIDIAN_SCHOOL_HOUSE
@@ -8,7 +8,7 @@
 	warp 21, 9, 0, VIRIDIAN_NICKNAME_HOUSE
 	warp 32, 7, 0, VIRIDIAN_GYM
 
-	db 6 ; signs
+	def_signs
 	sign 17, 17, 8 ; ViridianCityText8
 	sign 19, 1, 9 ; ViridianCityText9
 	sign 21, 29, 10 ; ViridianCityText10
@@ -16,7 +16,7 @@
 	sign 24, 25, 12 ; PokeCenterSignText
 	sign 27, 7, 13 ; ViridianCityText13
 
-	db 7 ; objects
+	def_objects
 	object SPRITE_YOUNGSTER, 13, 20, WALK, ANY_DIR, 1 ; person
 	object SPRITE_GAMBLER, 30, 8, STAY, NONE, 2 ; person
 	object SPRITE_YOUNGSTER, 30, 25, WALK, ANY_DIR, 3 ; person
--- a/data/maps/objects/ViridianForest.asm
+++ b/data/maps/objects/ViridianForest.asm
@@ -1,7 +1,7 @@
 ViridianForest_Object:
 	db $3 ; border block
 
-	db 6 ; warps
+	def_warps
 	warp 1, 0, 2, VIRIDIAN_FOREST_NORTH_GATE
 	warp 2, 0, 3, VIRIDIAN_FOREST_NORTH_GATE
 	warp 15, 47, 1, VIRIDIAN_FOREST_SOUTH_GATE
@@ -9,7 +9,7 @@
 	warp 17, 47, 1, VIRIDIAN_FOREST_SOUTH_GATE
 	warp 18, 47, 1, VIRIDIAN_FOREST_SOUTH_GATE
 
-	db 6 ; signs
+	def_signs
 	sign 24, 40, 9 ; ViridianForestText9
 	sign 16, 32, 10 ; ViridianForestText10
 	sign 26, 17, 11 ; ViridianForestText11
@@ -17,7 +17,7 @@
 	sign 18, 45, 13 ; ViridianForestText13
 	sign 2, 1, 14 ; ViridianForestText14
 
-	db 8 ; objects
+	def_objects
 	object SPRITE_YOUNGSTER, 16, 43, STAY, NONE, 1 ; person
 	object SPRITE_YOUNGSTER, 30, 33, STAY, LEFT, 2, OPP_BUG_CATCHER, 1
 	object SPRITE_YOUNGSTER, 30, 19, STAY, LEFT, 3, OPP_BUG_CATCHER, 2
--- a/data/maps/objects/ViridianForestNorthGate.asm
+++ b/data/maps/objects/ViridianForestNorthGate.asm
@@ -1,15 +1,15 @@
 ViridianForestNorthGate_Object:
 	db $a ; border block
 
-	db 4 ; warps
+	def_warps
 	warp 4, 0, 1, LAST_MAP
 	warp 5, 0, 1, LAST_MAP
 	warp 4, 7, 0, VIRIDIAN_FOREST
 	warp 5, 7, 0, VIRIDIAN_FOREST
 
-	db 0 ; signs
+	def_signs
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_SUPER_NERD, 3, 2, STAY, NONE, 1 ; person
 	object SPRITE_GRAMPS, 2, 5, STAY, NONE, 2 ; person
 
--- a/data/maps/objects/ViridianForestSouthGate.asm
+++ b/data/maps/objects/ViridianForestSouthGate.asm
@@ -1,15 +1,15 @@
 ViridianForestSouthGate_Object:
 	db $a ; border block
 
-	db 4 ; warps
+	def_warps
 	warp 4, 0, 3, VIRIDIAN_FOREST
 	warp 5, 0, 4, VIRIDIAN_FOREST
 	warp 4, 7, 5, LAST_MAP
 	warp 5, 7, 5, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_GIRL, 8, 4, STAY, LEFT, 1 ; person
 	object SPRITE_LITTLE_GIRL, 2, 4, WALK, UP_DOWN, 2 ; person
 
--- a/data/maps/objects/ViridianGym.asm
+++ b/data/maps/objects/ViridianGym.asm
@@ -1,13 +1,13 @@
 ViridianGym_Object:
 	db $3 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 16, 17, 4, LAST_MAP
 	warp 17, 17, 4, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 11 ; objects
+	def_objects
 	object SPRITE_GIOVANNI, 2, 1, STAY, DOWN, 1, OPP_GIOVANNI, 3
 	object SPRITE_COOLTRAINER_M, 12, 7, STAY, DOWN, 2, OPP_COOLTRAINER_M, 9
 	object SPRITE_HIKER, 11, 11, STAY, UP, 3, OPP_BLACKBELT, 6
--- a/data/maps/objects/ViridianMart.asm
+++ b/data/maps/objects/ViridianMart.asm
@@ -1,13 +1,13 @@
 ViridianMart_Object:
 	db $0 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 3, 7, 1, LAST_MAP
 	warp 4, 7, 1, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_CLERK, 0, 5, STAY, RIGHT, 1 ; person
 	object SPRITE_YOUNGSTER, 5, 5, WALK, UP_DOWN, 2 ; person
 	object SPRITE_COOLTRAINER_M, 3, 3, STAY, NONE, 3 ; person
--- a/data/maps/objects/ViridianNicknameHouse.asm
+++ b/data/maps/objects/ViridianNicknameHouse.asm
@@ -1,13 +1,13 @@
 ViridianNicknameHouse_Object:
 	db $a ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 3, LAST_MAP
 	warp 3, 7, 3, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 4 ; objects
+	def_objects
 	object SPRITE_BALDING_GUY, 5, 3, STAY, NONE, 1 ; person
 	object SPRITE_LITTLE_GIRL, 1, 4, WALK, UP_DOWN, 2 ; person
 	object SPRITE_BIRD, 5, 5, WALK, LEFT_RIGHT, 3 ; person
--- a/data/maps/objects/ViridianPokecenter.asm
+++ b/data/maps/objects/ViridianPokecenter.asm
@@ -1,13 +1,13 @@
 ViridianPokecenter_Object:
 	db $0 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 3, 7, 0, LAST_MAP
 	warp 4, 7, 0, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 4 ; objects
+	def_objects
 	object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person
 	object SPRITE_GENTLEMAN, 10, 5, WALK, UP_DOWN, 2 ; person
 	object SPRITE_COOLTRAINER_M, 4, 3, STAY, NONE, 3 ; person
--- a/data/maps/objects/ViridianSchoolHouse.asm
+++ b/data/maps/objects/ViridianSchoolHouse.asm
@@ -1,13 +1,13 @@
 ViridianSchoolHouse_Object:
 	db $a ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 2, 7, 2, LAST_MAP
 	warp 3, 7, 2, LAST_MAP
 
-	db 0 ; signs
+	def_signs
 
-	db 2 ; objects
+	def_objects
 	object SPRITE_BRUNETTE_GIRL, 3, 5, STAY, UP, 1 ; person
 	object SPRITE_COOLTRAINER_F, 4, 1, STAY, DOWN, 2 ; person
 
--- a/data/maps/objects/WardensHouse.asm
+++ b/data/maps/objects/WardensHouse.asm
@@ -1,15 +1,15 @@
 WardensHouse_Object:
 	db $17 ; border block
 
-	db 2 ; warps
+	def_warps
 	warp 4, 7, 3, LAST_MAP
 	warp 5, 7, 3, LAST_MAP
 
-	db 2 ; signs
+	def_signs
 	sign 4, 3, 4 ; FuchsiaHouse2Text4
 	sign 5, 3, 5 ; FuchsiaHouse2Text5
 
-	db 3 ; objects
+	def_objects
 	object SPRITE_WARDEN, 2, 3, STAY, NONE, 1 ; person
 	object SPRITE_POKE_BALL, 8, 3, STAY, NONE, 2, RARE_CANDY
 	object SPRITE_BOULDER, 8, 4, STAY, BOULDER_MOVEMENT_BYTE_2, 3 ; person
--- a/macros/scripts/maps.asm
+++ b/macros/scripts/maps.asm
@@ -1,3 +1,12 @@
+def_objects: MACRO
+if DEF(_NUM_OBJECTS)
+	PURGE _NUM_OBJECTS
+endc
+_NUM_OBJECTS EQUS "_NUM_OBJECTS_\@"
+	db _NUM_OBJECTS
+_NUM_OBJECTS = 0
+ENDM
+
 ;\1 sprite id
 ;\2 x position
 ;\3 y position
@@ -23,8 +32,18 @@
 	ELSE
 		db \6
 	ENDC
+_NUM_OBJECTS = _NUM_OBJECTS + 1
 ENDM
 
+def_warps: MACRO
+if DEF(_NUM_WARPS)
+	PURGE _NUM_WARPS
+endc
+_NUM_WARPS EQUS "_NUM_WARPS_\@"
+	db _NUM_WARPS
+_NUM_WARPS = 0
+ENDM
+
 ;\1 x position
 ;\2 y position
 ;\3 destination warp id
@@ -31,13 +50,24 @@
 ;\4 destination map (-1 = wLastMap)
 warp: MACRO
 	db \2, \1, \3, \4
+_NUM_WARPS = _NUM_WARPS + 1
 ENDM
 
+def_signs: MACRO
+if DEF(_NUM_SIGNS)
+	PURGE _NUM_SIGNS
+endc
+_NUM_SIGNS EQUS "_NUM_SIGNS_\@"
+	db _NUM_SIGNS
+_NUM_SIGNS = 0
+ENDM
+
 ;\1 x position
 ;\2 y position
 ;\3 sign id
 sign: MACRO
 	db \2, \1, \3
+_NUM_SIGNS = _NUM_SIGNS + 1
 ENDM
 
 ;\1 x position