shithub: pokered

Download patch

ref: 2c4f35848b786864822a3f211df91de30a2857c9
parent: f1285f8584ce7ff50ceb5e3134c0efc867209096
author: Yoann Fievez <yoann.fievez@gmail.com>
date: Mon Sep 27 00:56:09 EDT 2021

Unify map event gen1 gen2 (#335)

* Update sign to bg_event #289

* Rename warp to warp_event

* Replace object to object_event

* Move warp macro parameter from warp x, y, id, map to warp_event x, y, map, id

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