shithub: pokecrystal

Download patch

ref: 3cd79c55a3e1b50c8a71ad76692342e52382c700
parent: 9974a2c7014cbe7db3d0e516580fea48001ab3df
parent: 4831b4429eab57f56cce4736b6930a54f07314f7
author: yenatch <[email protected]>
date: Mon Aug 17 07:58:57 EDT 2015

Merge pull request #309 from PikalaxALT/master

Wild data, save functions, fix missing include

--- a/audio/engine.asm
+++ b/audio/engine.asm
@@ -805,7 +805,7 @@
 
 Functione8466: ; e8466
 ; handle vibrato and other things
-; unknowns: wc292, $c294
+; unknowns: wc292, wc294
 	ld hl, Channel1Flags2 - Channel1
 	add hl, bc
 	bit 2, [hl]
--- a/battle/core.asm
+++ b/battle/core.asm
@@ -2365,7 +2365,7 @@
 	ld de, SFX_KINESIS
 	call PlaySFX
 	call Function3d432
-	ld de, SFX_UNKNOWN_2A
+	ld de, SFX_FAINT
 	call PlaySFX
 	hlcoord 1, 0
 	lb bc, 4, 10
@@ -4388,7 +4388,7 @@
 	ld de, SFX_KINESIS
 	call PlaySFX
 	call WaitSFX
-	ld de, SFX_UNKNOWN_2A
+	ld de, SFX_FAINT
 	call PlaySFX
 	call WaitSFX
 	call Function3d432
@@ -8441,7 +8441,7 @@
 	ld a, [OtherTrainerClass]
 	and a
 	jr nz, .asm_3f55a
-	ld a, [wd22e]
+	ld a, [TempWildMonSpecies]
 	ld [CurPartySpecies], a
 
 .asm_3f55a
@@ -8658,7 +8658,7 @@
 	ld [IsInBattle], a
 	ld [BattleType], a
 	ld [AttackMissed], a
-	ld [wd22e], a
+	ld [TempWildMonSpecies], a
 	ld [OtherTrainerClass], a
 	ld [wd266], a
 	ld [wd267], a
@@ -8824,9 +8824,9 @@
 	call GetSRAMBank
 	call Function3f85f
 	call CloseSRAM
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	xor a
-	ld bc, $0168
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call ByteFill
 	call Function3200
 	ld b, $8
--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -6448,7 +6448,7 @@
 	jp BattleTextBox
 
 .stat
-	TX_FAR UnknownText_0x1c0cc6
+	text_jump UnknownText_0x1c0cc6
 	start_asm
 
 	ld hl, .up
@@ -6459,11 +6459,11 @@
 	ret
 
 .wayup
-	TX_FAR UnknownText_0x1c0cd0
+	text_jump UnknownText_0x1c0cd0
 	db "@"
 
 .up
-	TX_FAR UnknownText_0x1c0ce0
+	text_jump UnknownText_0x1c0ce0
 	db "@"
 
 ; 363e9
@@ -6482,7 +6482,7 @@
 	jp BattleTextBox
 
 .stat
-	TX_FAR UnknownText_0x1c0ceb
+	text_jump UnknownText_0x1c0ceb
 	start_asm
 
 	ld hl, .fell
@@ -6493,10 +6493,10 @@
 	ret
 
 .sharplyfell
-	TX_FAR UnknownText_0x1c0cf5
+	text_jump UnknownText_0x1c0cf5
 	db "@"
 .fell
-	TX_FAR UnknownText_0x1c0d06
+	text_jump UnknownText_0x1c0d06
 	db "@"
 
 ; 3641a
@@ -7804,7 +7804,7 @@
 	jp EndMoveEffect
 
 .UsedText
-	TX_FAR UnknownText_0x1c0d0e ; "[USER]"
+	text_jump UnknownText_0x1c0d0e ; "[USER]"
 	start_asm
 
 	ld a, BATTLE_VARS_MOVE_ANIM
@@ -7837,32 +7837,32 @@
 
 .RazorWind
 ; 'made a whirlwind!'
-	TX_FAR UnknownText_0x1c0d12
+	text_jump UnknownText_0x1c0d12
 	db "@"
 
 .Solarbeam
 ; 'took in sunlight!'
-	TX_FAR UnknownText_0x1c0d26
+	text_jump UnknownText_0x1c0d26
 	db "@"
 
 .SkullBash
 ; 'lowered its head!'
-	TX_FAR UnknownText_0x1c0d3a
+	text_jump UnknownText_0x1c0d3a
 	db "@"
 
 .SkyAttack
 ; 'is glowing!'
-	TX_FAR UnknownText_0x1c0d4e
+	text_jump UnknownText_0x1c0d4e
 	db "@"
 
 .Fly
 ; 'flew up high!'
-	TX_FAR UnknownText_0x1c0d5c
+	text_jump UnknownText_0x1c0d5c
 	db "@"
 
 .Dig
 ; 'dug a hole!'
-	TX_FAR UnknownText_0x1c0d6c
+	text_jump UnknownText_0x1c0d6c
 	db "@"
 ; 36c2c
 
--- a/constants.asm
+++ b/constants.asm
@@ -25,3 +25,4 @@
 INCLUDE "constants/misc_constants.asm"
 INCLUDE "constants/std_constants.asm"
 INCLUDE "constants/deco_constants.asm"
+INCLUDE "constants/radio_constants.asm"
--- a/constants/deco_constants.asm
+++ b/constants/deco_constants.asm
@@ -1,105 +1,105 @@
-const_value = 1
-	const DECO_PLANT
-	const DECO_BED
-	const DECO_CARPET
-	const DECO_POSTER
-	const DECO_DOLL
-	const DECO_BIGDOLL
-
-const_value = 1
-	const PUT_IT_AWAY
-	const MAGNAPLANT
-	const TROPICPLANT
-	const JUMBOPLANT
-	const TOWN_MAP_D
-	const FAMICOM
-	const SUPER_NES
-	const NINTENDO_64
-	const VIRTUAL_BOY
-	const GOLD_TROPHY
-	const SILVER_TROPHY
-	const SURF_PIKA_DOLL
-	const _BED
-	const _CARPET
-	const _POSTER
-	const _DOLL
-	const BIG_
-	const FEATHERY_BED
-	const PIKACHU_BED
-	const PINK_BED
-	const POLKADOT_BED
-	const RED_CARPET
-	const BLUE_CARPET
-	const YELLOW_CARPET
-	const GREEN_CARPET
-
-const_value = 1
-	const SET_UP_BED
-	const PUT_AWAY_BED
-	const SET_UP_CARPET
-	const PUT_AWAY_CARPET
-	const SET_UP_PLANT
-	const PUT_AWAY_PLANT
-	const SET_UP_POSTER
-	const PUT_AWAY_POSTER
-	const SET_UP_CONSOLE
-	const PUT_AWAY_CONSOLE
-	const SET_UP_BIG_DOLL
-	const PUT_AWAY_BIG_DOLL
-	const SET_UP_DOLL
-	const PUT_AWAY_DOLL
-	const SET_UP_ORNAMENT
-	const PUT_AWAY_ORNAMENT
-
-const_value = 2
-	const DECO_FEATHERY_BED ; 2
-	const DECO_PINK_BED ; 3
-	const DECO_POLKADOT_BED ; 4
-	const DECO_PIKACHU_BED ; 5
-const_value = const_value + 1
-	const DECO_RED_CARPET ; 7
-	const DECO_BLUE_CARPET ; 8
-	const DECO_YELLOW_CARPET ; 9
-	const DECO_GREEN_CARPET ; a
-const_value = const_value + 1
-	const DECO_MAGNAPLANT ; c
-	const DECO_TROPICPLANT ; d
-	const DECO_JUMBOPLANT ; e
-const_value = const_value + 1
-	const DECO_TOWN_MAP ; 10
-	const DECO_PIKACHU_POSTER ; 11
-	const DECO_CLEFAIRY_POSTER ; 12
-	const DECO_JIGGLYPUFF_POSTER ; 13
-const_value = const_value + 1
-	const DECO_FAMICOM ; 15
-	const DECO_SNES ; 16
-	const DECO_N64 ; 17
-	const DECO_VIRTUAL_BOY ; 18
-const_value = const_value + 1
-	const DECO_BIG_SNORLAX_DOLL ; 1a
-	const DECO_BIG_ONIX_DOLL ; 1b
-	const DECO_BIG_LAPRAS_DOLL ; 1c
-const_value = const_value + 1
-	const DECO_PIKACHU_DOLL ; 1e
-	const DECO_SURF_PIKACHU_DOLL ; 1f
-	const DECO_CLEFAIRY_DOLL ; 20
-	const DECO_JIGGLYPUFF_DOLL ; 21
-	const DECO_BULBASAUR_DOLL ; 22
-	const DECO_CHARMANDER_DOLL ; 23
-	const DECO_SQUIRTLE_DOLL ; 24
-	const DECO_POLIWAG_DOLL ; 25
-	const DECO_DIGLETT_DOLL ; 26
-	const DECO_STARMIE_DOLL ; 27
-	const DECO_MAGIKARP_DOLL ; 28
-	const DECO_ODDISH_DOLL ; 29
-	const DECO_GENGAR_DOLL ; 2a
-	const DECO_SHELLDER_DOLL ; 2b
-	const DECO_GRIMER_DOLL ; 2c
-	const DECO_VOLTORB_DOLL ; 2d
-	const DECO_WEEDLE_DOLL ; 2e
-	const DECO_UNOWN_DOLL ; 2f
-	const DECO_GEODUDE_DOLL ; 30
-	const DECO_MACHOP_DOLL ; 31
-	const DECO_TENTACOOL_DOLL ; 32
-	const DECO_GOLD_TROPHY_DOLL ; 33
-	const DECO_SILVER_TROPHY_DOLL ; 34
+const_value = 1
+	const DECO_PLANT
+	const DECO_BED
+	const DECO_CARPET
+	const DECO_POSTER
+	const DECO_DOLL
+	const DECO_BIGDOLL
+
+const_value = 1
+	const PUT_IT_AWAY
+	const MAGNAPLANT
+	const TROPICPLANT
+	const JUMBOPLANT
+	const TOWN_MAP_D
+	const FAMICOM
+	const SUPER_NES
+	const NINTENDO_64
+	const VIRTUAL_BOY
+	const GOLD_TROPHY
+	const SILVER_TROPHY
+	const SURF_PIKA_DOLL
+	const _BED
+	const _CARPET
+	const _POSTER
+	const _DOLL
+	const BIG_
+	const FEATHERY_BED
+	const PIKACHU_BED
+	const PINK_BED
+	const POLKADOT_BED
+	const RED_CARPET
+	const BLUE_CARPET
+	const YELLOW_CARPET
+	const GREEN_CARPET
+
+const_value = 1
+	const SET_UP_BED
+	const PUT_AWAY_BED
+	const SET_UP_CARPET
+	const PUT_AWAY_CARPET
+	const SET_UP_PLANT
+	const PUT_AWAY_PLANT
+	const SET_UP_POSTER
+	const PUT_AWAY_POSTER
+	const SET_UP_CONSOLE
+	const PUT_AWAY_CONSOLE
+	const SET_UP_BIG_DOLL
+	const PUT_AWAY_BIG_DOLL
+	const SET_UP_DOLL
+	const PUT_AWAY_DOLL
+	const SET_UP_ORNAMENT
+	const PUT_AWAY_ORNAMENT
+
+const_value = 2
+	const DECO_FEATHERY_BED ; 2
+	const DECO_PINK_BED ; 3
+	const DECO_POLKADOT_BED ; 4
+	const DECO_PIKACHU_BED ; 5
+const_value = const_value + 1
+	const DECO_RED_CARPET ; 7
+	const DECO_BLUE_CARPET ; 8
+	const DECO_YELLOW_CARPET ; 9
+	const DECO_GREEN_CARPET ; a
+const_value = const_value + 1
+	const DECO_MAGNAPLANT ; c
+	const DECO_TROPICPLANT ; d
+	const DECO_JUMBOPLANT ; e
+const_value = const_value + 1
+	const DECO_TOWN_MAP ; 10
+	const DECO_PIKACHU_POSTER ; 11
+	const DECO_CLEFAIRY_POSTER ; 12
+	const DECO_JIGGLYPUFF_POSTER ; 13
+const_value = const_value + 1
+	const DECO_FAMICOM ; 15
+	const DECO_SNES ; 16
+	const DECO_N64 ; 17
+	const DECO_VIRTUAL_BOY ; 18
+const_value = const_value + 1
+	const DECO_BIG_SNORLAX_DOLL ; 1a
+	const DECO_BIG_ONIX_DOLL ; 1b
+	const DECO_BIG_LAPRAS_DOLL ; 1c
+const_value = const_value + 1
+	const DECO_PIKACHU_DOLL ; 1e
+	const DECO_SURF_PIKACHU_DOLL ; 1f
+	const DECO_CLEFAIRY_DOLL ; 20
+	const DECO_JIGGLYPUFF_DOLL ; 21
+	const DECO_BULBASAUR_DOLL ; 22
+	const DECO_CHARMANDER_DOLL ; 23
+	const DECO_SQUIRTLE_DOLL ; 24
+	const DECO_POLIWAG_DOLL ; 25
+	const DECO_DIGLETT_DOLL ; 26
+	const DECO_STARMIE_DOLL ; 27
+	const DECO_MAGIKARP_DOLL ; 28
+	const DECO_ODDISH_DOLL ; 29
+	const DECO_GENGAR_DOLL ; 2a
+	const DECO_SHELLDER_DOLL ; 2b
+	const DECO_GRIMER_DOLL ; 2c
+	const DECO_VOLTORB_DOLL ; 2d
+	const DECO_WEEDLE_DOLL ; 2e
+	const DECO_UNOWN_DOLL ; 2f
+	const DECO_GEODUDE_DOLL ; 30
+	const DECO_MACHOP_DOLL ; 31
+	const DECO_TENTACOOL_DOLL ; 32
+	const DECO_GOLD_TROPHY_DOLL ; 33
+	const DECO_SILVER_TROPHY_DOLL ; 34
--- a/constants/engine_flags.asm
+++ b/constants/engine_flags.asm
@@ -162,3 +162,4 @@
 	const ENGINE_KRIS_IN_CABLE_CLUB
 	const ENGINE_DUNSPARCE_SWARM ; a0
 	const ENGINE_YANMA_SWARM
+NUM_ENGINE_FLAGS EQU const_value
--- a/constants/map_constants.asm
+++ b/constants/map_constants.asm
@@ -1,6 +1,9 @@
-GROUP_N_A EQU -1
-MAP_N_A   EQU -1
+GROUP_N_A  EQU -1
+MAP_N_A    EQU -1
 
+GROUP_NONE EQU 0
+MAP_NONE   EQU 0
+
 ; map group ids
 	const_def
 	newgroup
@@ -706,8 +709,8 @@
 	const MAPOBJECT_SPRITE ; 1
 	const MAPOBJECT_Y_COORD ; 2
 	const MAPOBJECT_X_COORD ; 3
-	const MAPOBJECT_FACING ; 4
-	const MAPOBJECT_MOVEMENT ; 5
+	const MAPOBJECT_MOVEMENT ; 4
+	const MAPOBJECT_RADIUS ; 5
 	const MAPOBJECT_HOUR ; 6
 	const MAPOBJECT_TIMEOFDAY ; 7
 	const MAPOBJECT_COLOR ; 8
@@ -753,3 +756,77 @@
 	const SIGNPOST_IFNOTSET
 	const SIGNPOST_ITEM
 	const SIGNPOST_COPY
+
+; I'm relocating spawn constants here, so that they can be used anywhere in the disassembly.
+
+
+const_value = -1
+	const SPAWN_N_A
+
+	const SPAWN_HOME
+	const SPAWN_DEBUG
+
+	const SPAWN_PALLET
+	const SPAWN_VIRIDIAN
+	const SPAWN_PEWTER
+	const SPAWN_CERULEAN
+	const SPAWN_ROCK_TUNNEL
+	const SPAWN_VERMILION
+	const SPAWN_LAVENDER
+	const SPAWN_SAFFRON
+	const SPAWN_CELADON
+	const SPAWN_FUCHSIA
+	const SPAWN_CINNABAR
+	const SPAWN_INDIGO
+
+	const SPAWN_NEW_BARK
+	const SPAWN_CHERRYGROVE
+	const SPAWN_VIOLET
+	const SPAWN_UNION_CAVE
+	const SPAWN_AZALEA
+	const SPAWN_CIANWOOD
+	const SPAWN_GOLDENROD
+	const SPAWN_OLIVINE
+	const SPAWN_ECRUTEAK
+	const SPAWN_MAHOGANY
+	const SPAWN_LAKE
+	const SPAWN_BLACKTHORN
+	const SPAWN_MT_SILVER
+	const SPAWN_FAST_SHIP
+NUM_SPAWNS EQU const_value
+
+	const_def
+	const SPRITEMOVEFN_00
+	const SPRITEMOVEFN_01
+	const SPRITEMOVEFN_02
+	const SPRITEMOVEFN_03
+	const SPRITEMOVEFN_04
+	const SPRITEMOVEFN_05
+	const SPRITEMOVEFN_06
+	const SPRITEMOVEFN_07
+	const SPRITEMOVEFN_08
+	const SPRITEMOVEFN_09
+	const SPRITEMOVEFN_0A
+	const SPRITEMOVEFN_0B
+	const SPRITEMOVEFN_0C
+	const SPRITEMOVEFN_0D
+	const SPRITEMOVEFN_0E
+	const SPRITEMOVEFN_0F
+	const SPRITEMOVEFN_10
+	const SPRITEMOVEFN_11
+	const SPRITEMOVEFN_12
+	const SPRITEMOVEFN_13
+	const SPRITEMOVEFN_14
+	const SPRITEMOVEFN_15
+	const SPRITEMOVEFN_16
+	const SPRITEMOVEFN_17
+	const SPRITEMOVEFN_18
+	const SPRITEMOVEFN_19
+	const SPRITEMOVEFN_1A
+	const SPRITEMOVEFN_1B
+	const SPRITEMOVEFN_1C
+	const SPRITEMOVEFN_1D
+	const SPRITEMOVEFN_1E
+	const SPRITEMOVEFN_1F
+	const SPRITEMOVEFN_20
+	const SPRITEMOVEFN_21
--- a/constants/pokemon_data_constants.asm
+++ b/constants/pokemon_data_constants.asm
@@ -93,3 +93,9 @@
 	const ATK_GT_DEF
 	const ATK_LT_DEF
 	const ATK_EQ_DEF
+
+NUM_GRASSMON EQU 7
+NUM_WATERMON EQU 3
+
+GRASS_WILDDATA_LENGTH EQU (NUM_GRASSMON * 2 + 1) * 3 + 2
+WATER_WILDDATA_LENGTH EQU (NUM_WATERMON * 2 + 1) * 1 + 2
--- /dev/null
+++ b/constants/radio_constants.asm
@@ -1,0 +1,18 @@
+	const_def
+	const OAKS_POKEMON_TALK
+	const POKEDEX_SHOW
+	const POKEMON_MUSIC
+	const LUCKY_CHANNEL
+	const BUENAS_PASSWORD
+	const PLACES_AND_PEOPLE
+	const LETS_ALL_SING
+	const ROCKET_RADIO
+	const POKE_FLUTE_RADIO
+	const UNOWN_RADIO
+	const EVOLUTION_RADIO
+
+	const_def
+	const BUENA_MON
+	const BUENA_ITEM
+	const BUENA_MOVE
+	const BUENA_STRING
--- a/constants/sfx_constants.asm
+++ b/constants/sfx_constants.asm
@@ -42,7 +42,7 @@
 	const SFX_ELEVATOR_END
 	const SFX_THROW_BALL
 	const SFX_BALL_POOF
-	const SFX_UNKNOWN_2A
+	const SFX_FAINT
 	const SFX_RUN
 	const SFX_SLOT_MACHINE_START
 	const SFX_FANFARE
--- a/constants/wram_constants.asm
+++ b/constants/wram_constants.asm
@@ -3,6 +3,7 @@
 PARTYMON   EQU 0
 OTPARTYMON EQU 1
 BOXMON     EQU 2
+BREEDMON   EQU 3
 WILDMON    EQU 4
 
 ; Options: ; cfcc
--- a/data/wild/fish.asm
+++ b/data/wild/fish.asm
@@ -233,193 +233,193 @@
 FishGroup1_Old: ; 924e3
 	db $b3, MAGIKARP,   10
 	db $d9, MAGIKARP,   10
-	db $ff, KRABBY,     10
+	db -1, KRABBY,     10
 FishGroup1_Good: ; 924ec
 	db $59, MAGIKARP,   20
 	db $b2, KRABBY,     20
 	db $e6, KRABBY,     20
-	db $ff, $0,         0
+	db -1, $0,         0
 FishGroup1_Super: ; 924f8
 	db $66, KRABBY,     40
 	db $b2, $0,         1
 	db $e6, KRABBY,     40
-	db $ff, KINGLER,    40
+	db -1, KINGLER,    40
 
 FishGroup2:
 FishGroup2_Old: ; 92504
 	db $b3, MAGIKARP,   10
 	db $d9, MAGIKARP,   10
-	db $ff, TENTACOOL,  10
+	db -1, TENTACOOL,  10
 FishGroup2_Good: ; 9250d
 	db $59, MAGIKARP,   20
 	db $b2, TENTACOOL,  20
 	db $e6, CHINCHOU,   20
-	db $ff, $0,         2
+	db -1, $0,         2
 FishGroup2_Super: ; 92519
 	db $66, CHINCHOU,   40
 	db $b2, $0,         3
 	db $e6, TENTACRUEL, 40
-	db $ff, LANTURN,    40
+	db -1, LANTURN,    40
 
 FishGroup3:
 FishGroup3_Old: ; 92525
 	db $b3, MAGIKARP,   10
 	db $d9, MAGIKARP,   10
-	db $ff, GOLDEEN,    10
+	db -1, GOLDEEN,    10
 FishGroup3_Good: ; 9252e
 	db $59, MAGIKARP,   20
 	db $b2, GOLDEEN,    20
 	db $e6, GOLDEEN,    20
-	db $ff, $0,         4
+	db -1, $0,         4
 FishGroup3_Super: ; 9253a
 	db $66, GOLDEEN,    40
 	db $b2, $0,         5
 	db $e6, MAGIKARP,   40
-	db $ff, SEAKING,    40
+	db -1, SEAKING,    40
 
 FishGroup4:
 FishGroup4_Old: ; 92546
 	db $b3, MAGIKARP,   10
 	db $d9, MAGIKARP,   10
-	db $ff, POLIWAG,    10
+	db -1, POLIWAG,    10
 FishGroup4_Good: ; 9254f
 	db $59, MAGIKARP,   20
 	db $b2, POLIWAG,    20
 	db $e6, POLIWAG,    20
-	db $ff, $0,         6
+	db -1, $0,         6
 FishGroup4_Super: ; 9255b
 	db $66, POLIWAG,    40
 	db $b2, $0,         7
 	db $e6, MAGIKARP,   40
-	db $ff, POLIWAG,    40
+	db -1, POLIWAG,    40
 
 FishGroup5:
 FishGroup5_Old: ; 92567
 	db $b3, MAGIKARP,   10
 	db $d9, MAGIKARP,   10
-	db $ff, MAGIKARP,   10
+	db -1, MAGIKARP,   10
 FishGroup5_Good: ; 92570
 	db $59, MAGIKARP,   20
 	db $b2, MAGIKARP,   20
 	db $e6, MAGIKARP,   20
-	db $ff, $0,         8
+	db -1, $0,         8
 FishGroup5_Super: ; 9257c
 	db $66, MAGIKARP,   40
 	db $b2, $0,         9
 	db $e6, MAGIKARP,   40
-	db $ff, DRAGONAIR,  40
+	db -1, DRAGONAIR,  40
 
 FishGroup6:
 FishGroup6_Old: ; 92588
 	db $b3, MAGIKARP,   5
 	db $d9, MAGIKARP,   5
-	db $ff, QWILFISH,   5
+	db -1, QWILFISH,   5
 FishGroup6_Good: ; 92591
 	db $59, MAGIKARP,   20
 	db $b2, QWILFISH,   20
 	db $e6, QWILFISH,   20
-	db $ff, $0,         10
+	db -1, $0,         10
 FishGroup6_Super: ; 9259d
 	db $66, QWILFISH,   40
 	db $b2, $0,         11
 	db $e6, QWILFISH,   40
-	db $ff, QWILFISH,   40
+	db -1, QWILFISH,   40
 
 FishGroup7:
 FishGroup7_Old: ; 925a9
 	db $b3, MAGIKARP,   10
 	db $d9, MAGIKARP,   10
-	db $ff, REMORAID,   10
+	db -1, REMORAID,   10
 FishGroup7_Good: ; 925b2
 	db $59, MAGIKARP,   20
 	db $b2, REMORAID,   20
 	db $e6, REMORAID,   20
-	db $ff, $0,         12
+	db -1, $0,         12
 FishGroup7_Super: ; 925be
 	db $66, REMORAID,   40
 	db $b2, $0,         13
 	db $e6, REMORAID,   40
-	db $ff, REMORAID,   40
+	db -1, REMORAID,   40
 
 FishGroup8:
 FishGroup8_Old: ; 925ca
 	db $b3, MAGIKARP,   10
 	db $d9, MAGIKARP,   10
-	db $ff, MAGIKARP,   10
+	db -1, MAGIKARP,   10
 FishGroup8_Good: ; 925d3
 	db $59, MAGIKARP,   20
 	db $b2, MAGIKARP,   20
 	db $e6, MAGIKARP,   20
-	db $ff, $0,         14
+	db -1, $0,         14
 FishGroup8_Super: ; 925df
 	db $66, MAGIKARP,   40
 	db $b2, $0,         15
 	db $e6, MAGIKARP,   40
-	db $ff, MAGIKARP,   40
+	db -1, MAGIKARP,   40
 
 FishGroup9:
 FishGroup9_Old: ; 925eb
 	db $b3, MAGIKARP,   10
 	db $d9, MAGIKARP,   10
-	db $ff, MAGIKARP,   10
+	db -1, MAGIKARP,   10
 FishGroup9_Good: ; 925f4
 	db $59, MAGIKARP,   10
 	db $b2, MAGIKARP,   10
 	db $e6, MAGIKARP,   10
-	db $ff, $0,         16
+	db -1, $0,         16
 FishGroup9_Super: ; 92600
 	db $66, MAGIKARP,   10
 	db $b2, $0,         17
 	db $e6, MAGIKARP,   10
-	db $ff, DRAGONAIR,  10
+	db -1, DRAGONAIR,  10
 
 FishGroup10:
 FishGroup10_Old: ; 9260c
 	db $b3, MAGIKARP,   10
 	db $d9, MAGIKARP,   10
-	db $ff, KRABBY,     10
+	db -1, KRABBY,     10
 FishGroup10_Good: ; 92615
 	db $59, MAGIKARP,   20
 	db $b2, KRABBY,     20
 	db $e6, KRABBY,     20
-	db $ff, $0,         18
+	db -1, $0,         18
 FishGroup10_Super: ; 92621
 	db $66, KRABBY,     40
 	db $b2, $0,         19
 	db $e6, KINGLER,    40
-	db $ff, SEADRA,     40
+	db -1, SEADRA,     40
 
 FishGroup11:
 FishGroup11_Old: ; 9262d
 	db $b3, MAGIKARP,   10
 	db $d9, MAGIKARP,   10
-	db $ff, TENTACOOL,  10
+	db -1, TENTACOOL,  10
 FishGroup11_Good: ; 92636
 	db $59, MAGIKARP,   20
 	db $b2, TENTACOOL,  20
 	db $e6, TENTACOOL,  20
-	db $ff, $0,         20
+	db -1, $0,         20
 FishGroup11_Super: ; 92642
 	db $66, TENTACOOL,  40
 	db $b2, $0,         21
 	db $e6, MAGIKARP,   40
-	db $ff, QWILFISH,   40
+	db -1, QWILFISH,   40
 
 FishGroup12:
 FishGroup12_Old: ; 9264e
 	db $b3, MAGIKARP,   10
 	db $d9, MAGIKARP,   10
-	db $ff, POLIWAG,    10
+	db -1, POLIWAG,    10
 FishGroup12_Good: ; 92657
 	db $59, MAGIKARP,   20
 	db $b2, POLIWAG,    20
 	db $e6, POLIWAG,    20
-	db $ff, $0,         6
+	db -1, $0,         6
 FishGroup12_Super: ; 92663
 	db $66, POLIWAG,    40
 	db $b2, $0,         7
 	db $e6, MAGIKARP,   40
-	db $ff, REMORAID,   40
+	db -1, REMORAID,   40
 
 ; 9266f
 
--- a/data/wild/johto_grass.asm
+++ b/data/wild/johto_grass.asm
@@ -1,1650 +1,1650 @@
 ; Johto Pokémon in grass
 
-	db GROUP_SPROUT_TOWER_2F, MAP_SPROUT_TOWER_2F
-	db $05,$05,$05 ; encounter rates: morn/day/nite
+	map SPROUT_TOWER_2F
+	db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite
 	; morn
-	db 3,RATTATA
-	db 4,RATTATA
-	db 5,RATTATA
-	db 3,RATTATA
-	db 6,RATTATA
-	db 5,RATTATA
-	db 5,RATTATA
+	db 3, RATTATA
+	db 4, RATTATA
+	db 5, RATTATA
+	db 3, RATTATA
+	db 6, RATTATA
+	db 5, RATTATA
+	db 5, RATTATA
 	; day
-	db 3,RATTATA
-	db 4,RATTATA
-	db 5,RATTATA
-	db 3,RATTATA
-	db 6,RATTATA
-	db 5,RATTATA
-	db 5,RATTATA
+	db 3, RATTATA
+	db 4, RATTATA
+	db 5, RATTATA
+	db 3, RATTATA
+	db 6, RATTATA
+	db 5, RATTATA
+	db 5, RATTATA
 	; nite
-	db 3,GASTLY
-	db 4,GASTLY
-	db 5,GASTLY
-	db 3,RATTATA
-	db 6,GASTLY
-	db 5,RATTATA
-	db 5,RATTATA
+	db 3, GASTLY
+	db 4, GASTLY
+	db 5, GASTLY
+	db 3, RATTATA
+	db 6, GASTLY
+	db 5, RATTATA
+	db 5, RATTATA
 
-	db GROUP_SPROUT_TOWER_3F, MAP_SPROUT_TOWER_3F
-	db $05,$05,$05 ; encounter rates: morn/day/nite
+	map SPROUT_TOWER_3F
+	db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite
 	; morn
-	db 3,RATTATA
-	db 4,RATTATA
-	db 5,RATTATA
-	db 3,RATTATA
-	db 6,RATTATA
-	db 5,RATTATA
-	db 5,RATTATA
+	db 3, RATTATA
+	db 4, RATTATA
+	db 5, RATTATA
+	db 3, RATTATA
+	db 6, RATTATA
+	db 5, RATTATA
+	db 5, RATTATA
 	; day
-	db 3,RATTATA
-	db 4,RATTATA
-	db 5,RATTATA
-	db 3,RATTATA
-	db 6,RATTATA
-	db 5,RATTATA
-	db 5,RATTATA
+	db 3, RATTATA
+	db 4, RATTATA
+	db 5, RATTATA
+	db 3, RATTATA
+	db 6, RATTATA
+	db 5, RATTATA
+	db 5, RATTATA
 	; nite
-	db 3,GASTLY
-	db 4,GASTLY
-	db 5,GASTLY
-	db 3,RATTATA
-	db 6,GASTLY
-	db 5,RATTATA
-	db 5,RATTATA
+	db 3, GASTLY
+	db 4, GASTLY
+	db 5, GASTLY
+	db 3, RATTATA
+	db 6, GASTLY
+	db 5, RATTATA
+	db 5, RATTATA
 
-	db GROUP_TIN_TOWER_2F, MAP_TIN_TOWER_2F
-	db $05,$05,$05 ; encounter rates: morn/day/nite
+	map TIN_TOWER_2F
+	db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite
 	; morn
-	db 20,RATTATA
-	db 21,RATTATA
-	db 22,RATTATA
-	db 22,RATTATA
-	db 23,RATTATA
-	db 24,RATTATA
-	db 24,RATTATA
+	db 20, RATTATA
+	db 21, RATTATA
+	db 22, RATTATA
+	db 22, RATTATA
+	db 23, RATTATA
+	db 24, RATTATA
+	db 24, RATTATA
 	; day
-	db 20,RATTATA
-	db 21,RATTATA
-	db 22,RATTATA
-	db 22,RATTATA
-	db 23,RATTATA
-	db 24,RATTATA
-	db 24,RATTATA
+	db 20, RATTATA
+	db 21, RATTATA
+	db 22, RATTATA
+	db 22, RATTATA
+	db 23, RATTATA
+	db 24, RATTATA
+	db 24, RATTATA
 	; nite
-	db 20,GASTLY
-	db 21,GASTLY
-	db 22,GASTLY
-	db 22,RATTATA
-	db 23,RATTATA
-	db 24,RATTATA
-	db 24,RATTATA
+	db 20, GASTLY
+	db 21, GASTLY
+	db 22, GASTLY
+	db 22, RATTATA
+	db 23, RATTATA
+	db 24, RATTATA
+	db 24, RATTATA
 
-	db GROUP_TIN_TOWER_3F, MAP_TIN_TOWER_3F
-	db $05,$05,$05 ; encounter rates: morn/day/nite
+	map TIN_TOWER_3F
+	db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite
 	; morn
-	db 20,RATTATA
-	db 21,RATTATA
-	db 22,RATTATA
-	db 22,RATTATA
-	db 23,RATTATA
-	db 24,RATTATA
-	db 24,RATTATA
+	db 20, RATTATA
+	db 21, RATTATA
+	db 22, RATTATA
+	db 22, RATTATA
+	db 23, RATTATA
+	db 24, RATTATA
+	db 24, RATTATA
 	; day
-	db 20,RATTATA
-	db 21,RATTATA
-	db 22,RATTATA
-	db 22,RATTATA
-	db 23,RATTATA
-	db 24,RATTATA
-	db 24,RATTATA
+	db 20, RATTATA
+	db 21, RATTATA
+	db 22, RATTATA
+	db 22, RATTATA
+	db 23, RATTATA
+	db 24, RATTATA
+	db 24, RATTATA
 	; nite
-	db 20,GASTLY
-	db 21,GASTLY
-	db 22,GASTLY
-	db 22,RATTATA
-	db 23,RATTATA
-	db 24,RATTATA
-	db 24,RATTATA
+	db 20, GASTLY
+	db 21, GASTLY
+	db 22, GASTLY
+	db 22, RATTATA
+	db 23, RATTATA
+	db 24, RATTATA
+	db 24, RATTATA
 
-	db GROUP_TIN_TOWER_4F, MAP_TIN_TOWER_4F
-	db $05,$05,$05 ; encounter rates: morn/day/nite
+	map TIN_TOWER_4F
+	db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite
 	; morn
-	db 20,RATTATA
-	db 21,RATTATA
-	db 22,RATTATA
-	db 22,RATTATA
-	db 23,RATTATA
-	db 24,RATTATA
-	db 24,RATTATA
+	db 20, RATTATA
+	db 21, RATTATA
+	db 22, RATTATA
+	db 22, RATTATA
+	db 23, RATTATA
+	db 24, RATTATA
+	db 24, RATTATA
 	; day
-	db 20,RATTATA
-	db 21,RATTATA
-	db 22,RATTATA
-	db 22,RATTATA
-	db 23,RATTATA
-	db 24,RATTATA
-	db 24,RATTATA
+	db 20, RATTATA
+	db 21, RATTATA
+	db 22, RATTATA
+	db 22, RATTATA
+	db 23, RATTATA
+	db 24, RATTATA
+	db 24, RATTATA
 	; nite
-	db 20,GASTLY
-	db 21,GASTLY
-	db 22,GASTLY
-	db 22,RATTATA
-	db 23,RATTATA
-	db 24,RATTATA
-	db 24,RATTATA
+	db 20, GASTLY
+	db 21, GASTLY
+	db 22, GASTLY
+	db 22, RATTATA
+	db 23, RATTATA
+	db 24, RATTATA
+	db 24, RATTATA
 
-	db GROUP_TIN_TOWER_5F, MAP_TIN_TOWER_5F
-	db $05,$05,$05 ; encounter rates: morn/day/nite
+	map TIN_TOWER_5F
+	db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite
 	; morn
-	db 20,RATTATA
-	db 21,RATTATA
-	db 22,RATTATA
-	db 22,RATTATA
-	db 23,RATTATA
-	db 24,RATTATA
-	db 24,RATTATA
+	db 20, RATTATA
+	db 21, RATTATA
+	db 22, RATTATA
+	db 22, RATTATA
+	db 23, RATTATA
+	db 24, RATTATA
+	db 24, RATTATA
 	; day
-	db 20,RATTATA
-	db 21,RATTATA
-	db 22,RATTATA
-	db 22,RATTATA
-	db 23,RATTATA
-	db 24,RATTATA
-	db 24,RATTATA
+	db 20, RATTATA
+	db 21, RATTATA
+	db 22, RATTATA
+	db 22, RATTATA
+	db 23, RATTATA
+	db 24, RATTATA
+	db 24, RATTATA
 	; nite
-	db 20,GASTLY
-	db 21,GASTLY
-	db 22,GASTLY
-	db 22,RATTATA
-	db 23,RATTATA
-	db 24,RATTATA
-	db 24,RATTATA
+	db 20, GASTLY
+	db 21, GASTLY
+	db 22, GASTLY
+	db 22, RATTATA
+	db 23, RATTATA
+	db 24, RATTATA
+	db 24, RATTATA
 
-	db GROUP_TIN_TOWER_6F, MAP_TIN_TOWER_6F
-	db $05,$05,$05 ; encounter rates: morn/day/nite
+	map TIN_TOWER_6F
+	db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite
 	; morn
-	db 20,RATTATA
-	db 21,RATTATA
-	db 22,RATTATA
-	db 22,RATTATA
-	db 23,RATTATA
-	db 24,RATTATA
-	db 24,RATTATA
+	db 20, RATTATA
+	db 21, RATTATA
+	db 22, RATTATA
+	db 22, RATTATA
+	db 23, RATTATA
+	db 24, RATTATA
+	db 24, RATTATA
 	; day
-	db 20,RATTATA
-	db 21,RATTATA
-	db 22,RATTATA
-	db 22,RATTATA
-	db 23,RATTATA
-	db 24,RATTATA
-	db 24,RATTATA
+	db 20, RATTATA
+	db 21, RATTATA
+	db 22, RATTATA
+	db 22, RATTATA
+	db 23, RATTATA
+	db 24, RATTATA
+	db 24, RATTATA
 	; nite
-	db 20,GASTLY
-	db 21,GASTLY
-	db 22,GASTLY
-	db 22,RATTATA
-	db 23,RATTATA
-	db 24,RATTATA
-	db 24,RATTATA
+	db 20, GASTLY
+	db 21, GASTLY
+	db 22, GASTLY
+	db 22, RATTATA
+	db 23, RATTATA
+	db 24, RATTATA
+	db 24, RATTATA
 
-	db GROUP_TIN_TOWER_7F, MAP_TIN_TOWER_7F
-	db $05,$05,$05 ; encounter rates: morn/day/nite
+	map TIN_TOWER_7F
+	db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite
 	; morn
-	db 20,RATTATA
-	db 21,RATTATA
-	db 22,RATTATA
-	db 22,RATTATA
-	db 23,RATTATA
-	db 24,RATTATA
-	db 24,RATTATA
+	db 20, RATTATA
+	db 21, RATTATA
+	db 22, RATTATA
+	db 22, RATTATA
+	db 23, RATTATA
+	db 24, RATTATA
+	db 24, RATTATA
 	; day
-	db 20,RATTATA
-	db 21,RATTATA
-	db 22,RATTATA
-	db 22,RATTATA
-	db 23,RATTATA
-	db 24,RATTATA
-	db 24,RATTATA
+	db 20, RATTATA
+	db 21, RATTATA
+	db 22, RATTATA
+	db 22, RATTATA
+	db 23, RATTATA
+	db 24, RATTATA
+	db 24, RATTATA
 	; nite
-	db 20,GASTLY
-	db 21,GASTLY
-	db 22,GASTLY
-	db 22,RATTATA
-	db 23,RATTATA
-	db 24,RATTATA
-	db 24,RATTATA
+	db 20, GASTLY
+	db 21, GASTLY
+	db 22, GASTLY
+	db 22, RATTATA
+	db 23, RATTATA
+	db 24, RATTATA
+	db 24, RATTATA
 
-	db GROUP_TIN_TOWER_8F, MAP_TIN_TOWER_8F
-	db $05,$05,$05 ; encounter rates: morn/day/nite
+	map TIN_TOWER_8F
+	db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite
 	; morn
-	db 20,RATTATA
-	db 21,RATTATA
-	db 22,RATTATA
-	db 22,RATTATA
-	db 23,RATTATA
-	db 24,RATTATA
-	db 24,RATTATA
+	db 20, RATTATA
+	db 21, RATTATA
+	db 22, RATTATA
+	db 22, RATTATA
+	db 23, RATTATA
+	db 24, RATTATA
+	db 24, RATTATA
 	; day
-	db 20,RATTATA
-	db 21,RATTATA
-	db 22,RATTATA
-	db 22,RATTATA
-	db 23,RATTATA
-	db 24,RATTATA
-	db 24,RATTATA
+	db 20, RATTATA
+	db 21, RATTATA
+	db 22, RATTATA
+	db 22, RATTATA
+	db 23, RATTATA
+	db 24, RATTATA
+	db 24, RATTATA
 	; nite
-	db 20,GASTLY
-	db 21,GASTLY
-	db 22,GASTLY
-	db 22,RATTATA
-	db 23,RATTATA
-	db 24,RATTATA
-	db 24,RATTATA
+	db 20, GASTLY
+	db 21, GASTLY
+	db 22, GASTLY
+	db 22, RATTATA
+	db 23, RATTATA
+	db 24, RATTATA
+	db 24, RATTATA
 
-	db GROUP_TIN_TOWER_9F, MAP_TIN_TOWER_9F
-	db $05,$05,$05 ; encounter rates: morn/day/nite
+	map TIN_TOWER_9F
+	db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite
 	; morn
-	db 20,RATTATA
-	db 21,RATTATA
-	db 22,RATTATA
-	db 22,RATTATA
-	db 23,RATTATA
-	db 24,RATTATA
-	db 24,RATTATA
+	db 20, RATTATA
+	db 21, RATTATA
+	db 22, RATTATA
+	db 22, RATTATA
+	db 23, RATTATA
+	db 24, RATTATA
+	db 24, RATTATA
 	; day
-	db 20,RATTATA
-	db 21,RATTATA
-	db 22,RATTATA
-	db 22,RATTATA
-	db 23,RATTATA
-	db 24,RATTATA
-	db 24,RATTATA
+	db 20, RATTATA
+	db 21, RATTATA
+	db 22, RATTATA
+	db 22, RATTATA
+	db 23, RATTATA
+	db 24, RATTATA
+	db 24, RATTATA
 	; nite
-	db 20,GASTLY
-	db 21,GASTLY
-	db 22,GASTLY
-	db 22,RATTATA
-	db 23,RATTATA
-	db 24,RATTATA
-	db 24,RATTATA
+	db 20, GASTLY
+	db 21, GASTLY
+	db 22, GASTLY
+	db 22, RATTATA
+	db 23, RATTATA
+	db 24, RATTATA
+	db 24, RATTATA
 
-	db GROUP_BURNED_TOWER_1F, MAP_BURNED_TOWER_1F
-	db $0a,$0a,$0a ; encounter rates: morn/day/nite
+	map BURNED_TOWER_1F
+	db 4 percent, 4 percent, 4 percent ; encounter rates: morn/day/nite
 	; morn
-	db 13,RATTATA
-	db 14,KOFFING
-	db 15,RATTATA
-	db 14,ZUBAT
-	db 15,RATTATA
-	db 15,RATICATE
-	db 15,RATICATE
+	db 13, RATTATA
+	db 14, KOFFING
+	db 15, RATTATA
+	db 14, ZUBAT
+	db 15, RATTATA
+	db 15, RATICATE
+	db 15, RATICATE
 	; day
-	db 13,RATTATA
-	db 14,KOFFING
-	db 15,RATTATA
-	db 14,ZUBAT
-	db 15,RATTATA
-	db 15,RATICATE
-	db 15,RATICATE
+	db 13, RATTATA
+	db 14, KOFFING
+	db 15, RATTATA
+	db 14, ZUBAT
+	db 15, RATTATA
+	db 15, RATICATE
+	db 15, RATICATE
 	; nite
-	db 13,RATTATA
-	db 14,KOFFING
-	db 15,RATTATA
-	db 14,ZUBAT
-	db 15,RATTATA
-	db 15,RATICATE
-	db 15,RATICATE
+	db 13, RATTATA
+	db 14, KOFFING
+	db 15, RATTATA
+	db 14, ZUBAT
+	db 15, RATTATA
+	db 15, RATICATE
+	db 15, RATICATE
 
-	db GROUP_BURNED_TOWER_B1F, MAP_BURNED_TOWER_B1F
-	db $0f,$0f,$0f ; encounter rates: morn/day/nite
+	map BURNED_TOWER_B1F
+	db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite
 	; morn
-	db 14,RATTATA
-	db 14,KOFFING
-	db 16,KOFFING
-	db 15,ZUBAT
-	db 12,KOFFING
-	db 16,KOFFING
-	db 16,WEEZING
+	db 14, RATTATA
+	db 14, KOFFING
+	db 16, KOFFING
+	db 15, ZUBAT
+	db 12, KOFFING
+	db 16, KOFFING
+	db 16, WEEZING
 	; day
-	db 14,RATTATA
-	db 14,KOFFING
-	db 16,KOFFING
-	db 15,ZUBAT
-	db 12,KOFFING
-	db 16,KOFFING
-	db 16,WEEZING
+	db 14, RATTATA
+	db 14, KOFFING
+	db 16, KOFFING
+	db 15, ZUBAT
+	db 12, KOFFING
+	db 16, KOFFING
+	db 16, WEEZING
 	; nite
-	db 14,RATTATA
-	db 14,KOFFING
-	db 16,KOFFING
-	db 15,ZUBAT
-	db 12,KOFFING
-	db 16,KOFFING
-	db 16,WEEZING
+	db 14, RATTATA
+	db 14, KOFFING
+	db 16, KOFFING
+	db 15, ZUBAT
+	db 12, KOFFING
+	db 16, KOFFING
+	db 16, WEEZING
 
-	db GROUP_NATIONAL_PARK, MAP_NATIONAL_PARK
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map NATIONAL_PARK
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 12,NIDORAN_M
-	db 12,NIDORAN_F
-	db 14,LEDYBA
-	db 13,PIDGEY
-	db 10,CATERPIE
-	db 10,WEEDLE
-	db 10,WEEDLE
+	db 12, NIDORAN_M
+	db 12, NIDORAN_F
+	db 14, LEDYBA
+	db 13, PIDGEY
+	db 10, CATERPIE
+	db 10, WEEDLE
+	db 10, WEEDLE
 	; day
-	db 12,NIDORAN_F
-	db 12,NIDORAN_M
-	db 14,SUNKERN
-	db 13,PIDGEY
-	db 10,CATERPIE
-	db 10,WEEDLE
-	db 10,WEEDLE
+	db 12, NIDORAN_F
+	db 12, NIDORAN_M
+	db 14, SUNKERN
+	db 13, PIDGEY
+	db 10, CATERPIE
+	db 10, WEEDLE
+	db 10, WEEDLE
 	; nite
-	db 12,PSYDUCK
-	db 13,HOOTHOOT
-	db 14,SPINARAK
-	db 15,HOOTHOOT
-	db 10,VENONAT
-	db 12,VENONAT
-	db 12,VENONAT
+	db 12, PSYDUCK
+	db 13, HOOTHOOT
+	db 14, SPINARAK
+	db 15, HOOTHOOT
+	db 10, VENONAT
+	db 12, VENONAT
+	db 12, VENONAT
 
-	db GROUP_RUINS_OF_ALPH_OUTSIDE, MAP_RUINS_OF_ALPH_OUTSIDE
-	db $0a,$0a,$0a ; encounter rates: morn/day/nite
+	map RUINS_OF_ALPH_OUTSIDE
+	db 4 percent, 4 percent, 4 percent ; encounter rates: morn/day/nite
 	; morn
-	db 20,NATU
-	db 22,NATU
-	db 18,NATU
-	db 24,NATU
-	db 20,SMEARGLE
-	db 22,SMEARGLE
-	db 22,SMEARGLE
+	db 20, NATU
+	db 22, NATU
+	db 18, NATU
+	db 24, NATU
+	db 20, SMEARGLE
+	db 22, SMEARGLE
+	db 22, SMEARGLE
 	; day
-	db 20,NATU
-	db 22,NATU
-	db 18,NATU
-	db 24,NATU
-	db 20,SMEARGLE
-	db 22,SMEARGLE
-	db 22,SMEARGLE
+	db 20, NATU
+	db 22, NATU
+	db 18, NATU
+	db 24, NATU
+	db 20, SMEARGLE
+	db 22, SMEARGLE
+	db 22, SMEARGLE
 	; nite
-	db 20,NATU
-	db 22,NATU
-	db 18,NATU
-	db 24,NATU
-	db 22,WOOPER
-	db 22,QUAGSIRE
-	db 22,QUAGSIRE
+	db 20, NATU
+	db 22, NATU
+	db 18, NATU
+	db 24, NATU
+	db 22, WOOPER
+	db 22, QUAGSIRE
+	db 22, QUAGSIRE
 
-	db GROUP_RUINS_OF_ALPH_INNER_CHAMBER, MAP_RUINS_OF_ALPH_INNER_CHAMBER
-	db $0f,$0f,$0f ; encounter rates: morn/day/nite
+	map RUINS_OF_ALPH_INNER_CHAMBER
+	db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite
 	; morn
-	db 5,UNOWN
-	db 5,UNOWN
-	db 5,UNOWN
-	db 5,UNOWN
-	db 5,UNOWN
-	db 5,UNOWN
-	db 5,UNOWN
+	db 5, UNOWN
+	db 5, UNOWN
+	db 5, UNOWN
+	db 5, UNOWN
+	db 5, UNOWN
+	db 5, UNOWN
+	db 5, UNOWN
 	; day
-	db 5,UNOWN
-	db 5,UNOWN
-	db 5,UNOWN
-	db 5,UNOWN
-	db 5,UNOWN
-	db 5,UNOWN
-	db 5,UNOWN
+	db 5, UNOWN
+	db 5, UNOWN
+	db 5, UNOWN
+	db 5, UNOWN
+	db 5, UNOWN
+	db 5, UNOWN
+	db 5, UNOWN
 	; nite
-	db 5,UNOWN
-	db 5,UNOWN
-	db 5,UNOWN
-	db 5,UNOWN
-	db 5,UNOWN
-	db 5,UNOWN
-	db 5,UNOWN
+	db 5, UNOWN
+	db 5, UNOWN
+	db 5, UNOWN
+	db 5, UNOWN
+	db 5, UNOWN
+	db 5, UNOWN
+	db 5, UNOWN
 
-	db GROUP_UNION_CAVE_1F, MAP_UNION_CAVE_1F
-	db $0f,$0f,$0f ; encounter rates: morn/day/nite
+	map UNION_CAVE_1F
+	db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite
 	; morn
-	db 6,GEODUDE
-	db 6,SANDSHREW
-	db 5,ZUBAT
-	db 4,RATTATA
-	db 7,ZUBAT
-	db 6,ONIX
-	db 6,ONIX
+	db 6, GEODUDE
+	db 6, SANDSHREW
+	db 5, ZUBAT
+	db 4, RATTATA
+	db 7, ZUBAT
+	db 6, ONIX
+	db 6, ONIX
 	; day
-	db 6,GEODUDE
-	db 6,SANDSHREW
-	db 5,ZUBAT
-	db 4,RATTATA
-	db 7,ZUBAT
-	db 6,ONIX
-	db 6,ONIX
+	db 6, GEODUDE
+	db 6, SANDSHREW
+	db 5, ZUBAT
+	db 4, RATTATA
+	db 7, ZUBAT
+	db 6, ONIX
+	db 6, ONIX
 	; nite
-	db 6,GEODUDE
-	db 6,RATTATA
-	db 5,WOOPER
-	db 4,RATTATA
-	db 7,ZUBAT
-	db 6,ONIX
-	db 6,ONIX
+	db 6, GEODUDE
+	db 6, RATTATA
+	db 5, WOOPER
+	db 4, RATTATA
+	db 7, ZUBAT
+	db 6, ONIX
+	db 6, ONIX
 
-	db GROUP_UNION_CAVE_B1F, MAP_UNION_CAVE_B1F
-	db $0f,$0f,$0f ; encounter rates: morn/day/nite
+	map UNION_CAVE_B1F
+	db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite
 	; morn
-	db 8,GEODUDE
-	db 6,ZUBAT
-	db 8,ZUBAT
-	db 8,ONIX
-	db 6,RATTATA
-	db 8,RATTATA
-	db 8,RATTATA
+	db 8, GEODUDE
+	db 6, ZUBAT
+	db 8, ZUBAT
+	db 8, ONIX
+	db 6, RATTATA
+	db 8, RATTATA
+	db 8, RATTATA
 	; day
-	db 8,GEODUDE
-	db 6,ZUBAT
-	db 8,ZUBAT
-	db 8,ONIX
-	db 6,RATTATA
-	db 8,RATTATA
-	db 8,RATTATA
+	db 8, GEODUDE
+	db 6, ZUBAT
+	db 8, ZUBAT
+	db 8, ONIX
+	db 6, RATTATA
+	db 8, RATTATA
+	db 8, RATTATA
 	; nite
-	db 8,GEODUDE
-	db 6,ZUBAT
-	db 8,WOOPER
-	db 8,ONIX
-	db 6,RATTATA
-	db 8,RATTATA
-	db 8,RATTATA
+	db 8, GEODUDE
+	db 6, ZUBAT
+	db 8, WOOPER
+	db 8, ONIX
+	db 6, RATTATA
+	db 8, RATTATA
+	db 8, RATTATA
 
-	db GROUP_UNION_CAVE_B2F, MAP_UNION_CAVE_B2F
-	db $0a,$0a,$0a ; encounter rates: morn/day/nite
+	map UNION_CAVE_B2F
+	db 4 percent, 4 percent, 4 percent ; encounter rates: morn/day/nite
 	; morn
-	db 22,ZUBAT
-	db 22,GOLBAT
-	db 22,ZUBAT
-	db 21,RATICATE
-	db 20,GEODUDE
-	db 23,ONIX
-	db 23,ONIX
+	db 22, ZUBAT
+	db 22, GOLBAT
+	db 22, ZUBAT
+	db 21, RATICATE
+	db 20, GEODUDE
+	db 23, ONIX
+	db 23, ONIX
 	; day
-	db 22,ZUBAT
-	db 22,GOLBAT
-	db 22,ZUBAT
-	db 21,RATICATE
-	db 20,GEODUDE
-	db 23,ONIX
-	db 23,ONIX
+	db 22, ZUBAT
+	db 22, GOLBAT
+	db 22, ZUBAT
+	db 21, RATICATE
+	db 20, GEODUDE
+	db 23, ONIX
+	db 23, ONIX
 	; nite
-	db 22,ZUBAT
-	db 22,GOLBAT
-	db 22,QUAGSIRE
-	db 21,RATICATE
-	db 20,GEODUDE
-	db 23,ONIX
-	db 23,ONIX
+	db 22, ZUBAT
+	db 22, GOLBAT
+	db 22, QUAGSIRE
+	db 21, RATICATE
+	db 20, GEODUDE
+	db 23, ONIX
+	db 23, ONIX
 
-	db GROUP_SLOWPOKE_WELL_B1F, MAP_SLOWPOKE_WELL_B1F
-	db $05,$05,$05 ; encounter rates: morn/day/nite
+	map SLOWPOKE_WELL_B1F
+	db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite
 	; morn
-	db 5,ZUBAT
-	db 6,ZUBAT
-	db 7,ZUBAT
-	db 6,SLOWPOKE
-	db 8,ZUBAT
-	db 8,SLOWPOKE
-	db 8,SLOWPOKE
+	db 5, ZUBAT
+	db 6, ZUBAT
+	db 7, ZUBAT
+	db 6, SLOWPOKE
+	db 8, ZUBAT
+	db 8, SLOWPOKE
+	db 8, SLOWPOKE
 	; day
-	db 5,ZUBAT
-	db 6,ZUBAT
-	db 7,ZUBAT
-	db 6,SLOWPOKE
-	db 8,ZUBAT
-	db 8,SLOWPOKE
-	db 8,SLOWPOKE
+	db 5, ZUBAT
+	db 6, ZUBAT
+	db 7, ZUBAT
+	db 6, SLOWPOKE
+	db 8, ZUBAT
+	db 8, SLOWPOKE
+	db 8, SLOWPOKE
 	; nite
-	db 5,ZUBAT
-	db 6,ZUBAT
-	db 7,ZUBAT
-	db 6,SLOWPOKE
-	db 8,ZUBAT
-	db 8,SLOWPOKE
-	db 8,SLOWPOKE
+	db 5, ZUBAT
+	db 6, ZUBAT
+	db 7, ZUBAT
+	db 6, SLOWPOKE
+	db 8, ZUBAT
+	db 8, SLOWPOKE
+	db 8, SLOWPOKE
 
-	db GROUP_SLOWPOKE_WELL_B2F, MAP_SLOWPOKE_WELL_B2F
-	db $05,$05,$05 ; encounter rates: morn/day/nite
+	map SLOWPOKE_WELL_B2F
+	db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite
 	; morn
-	db 21,ZUBAT
-	db 23,ZUBAT
-	db 19,ZUBAT
-	db 21,SLOWPOKE
-	db 23,GOLBAT
-	db 23,SLOWPOKE
-	db 23,SLOWPOKE
+	db 21, ZUBAT
+	db 23, ZUBAT
+	db 19, ZUBAT
+	db 21, SLOWPOKE
+	db 23, GOLBAT
+	db 23, SLOWPOKE
+	db 23, SLOWPOKE
 	; day
-	db 21,ZUBAT
-	db 23,ZUBAT
-	db 19,ZUBAT
-	db 21,SLOWPOKE
-	db 23,GOLBAT
-	db 23,SLOWPOKE
-	db 23,SLOWPOKE
+	db 21, ZUBAT
+	db 23, ZUBAT
+	db 19, ZUBAT
+	db 21, SLOWPOKE
+	db 23, GOLBAT
+	db 23, SLOWPOKE
+	db 23, SLOWPOKE
 	; nite
-	db 21,ZUBAT
-	db 23,ZUBAT
-	db 19,ZUBAT
-	db 21,SLOWPOKE
-	db 23,GOLBAT
-	db 23,SLOWPOKE
-	db 23,SLOWPOKE
+	db 21, ZUBAT
+	db 23, ZUBAT
+	db 19, ZUBAT
+	db 21, SLOWPOKE
+	db 23, GOLBAT
+	db 23, SLOWPOKE
+	db 23, SLOWPOKE
 
-	db GROUP_ILEX_FOREST, MAP_ILEX_FOREST
-	db $0a,$0a,$0a ; encounter rates: morn/day/nite
+	map ILEX_FOREST
+	db 4 percent, 4 percent, 4 percent ; encounter rates: morn/day/nite
 	; morn
-	db 5,CATERPIE
-	db 5,WEEDLE
-	db 7,METAPOD
-	db 7,KAKUNA
-	db 7,PIDGEY
-	db 6,PARAS
-	db 6,PARAS
+	db 5, CATERPIE
+	db 5, WEEDLE
+	db 7, METAPOD
+	db 7, KAKUNA
+	db 7, PIDGEY
+	db 6, PARAS
+	db 6, PARAS
 	; day
-	db 5,CATERPIE
-	db 5,WEEDLE
-	db 7,METAPOD
-	db 7,KAKUNA
-	db 7,PIDGEY
-	db 6,PARAS
-	db 6,PARAS
+	db 5, CATERPIE
+	db 5, WEEDLE
+	db 7, METAPOD
+	db 7, KAKUNA
+	db 7, PIDGEY
+	db 6, PARAS
+	db 6, PARAS
 	; nite
-	db 5,ODDISH
-	db 5,VENONAT
-	db 7,ODDISH
-	db 7,PSYDUCK
-	db 7,HOOTHOOT
-	db 6,PARAS
-	db 6,PARAS
+	db 5, ODDISH
+	db 5, VENONAT
+	db 7, ODDISH
+	db 7, PSYDUCK
+	db 7, HOOTHOOT
+	db 6, PARAS
+	db 6, PARAS
 
-	db GROUP_MOUNT_MORTAR_1F_OUTSIDE, MAP_MOUNT_MORTAR_1F_OUTSIDE
-	db $0f,$0f,$0f ; encounter rates: morn/day/nite
+	map MOUNT_MORTAR_1F_OUTSIDE
+	db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite
 	; morn
-	db 14,RATTATA
-	db 13,ZUBAT
-	db 14,MACHOP
-	db 13,GOLBAT
-	db 14,GEODUDE
-	db 16,RATICATE
-	db 16,RATICATE
+	db 14, RATTATA
+	db 13, ZUBAT
+	db 14, MACHOP
+	db 13, GOLBAT
+	db 14, GEODUDE
+	db 16, RATICATE
+	db 16, RATICATE
 	; day
-	db 14,RATTATA
-	db 13,ZUBAT
-	db 14,MACHOP
-	db 13,GOLBAT
-	db 14,GEODUDE
-	db 16,RATICATE
-	db 16,RATICATE
+	db 14, RATTATA
+	db 13, ZUBAT
+	db 14, MACHOP
+	db 13, GOLBAT
+	db 14, GEODUDE
+	db 16, RATICATE
+	db 16, RATICATE
 	; nite
-	db 14,RATTATA
-	db 13,ZUBAT
-	db 14,MARILL
-	db 13,GOLBAT
-	db 14,GEODUDE
-	db 16,RATICATE
-	db 16,RATICATE
+	db 14, RATTATA
+	db 13, ZUBAT
+	db 14, MARILL
+	db 13, GOLBAT
+	db 14, GEODUDE
+	db 16, RATICATE
+	db 16, RATICATE
 
-	db GROUP_MOUNT_MORTAR_1F_INSIDE, MAP_MOUNT_MORTAR_1F_INSIDE
-	db $0f,$0f,$0f ; encounter rates: morn/day/nite
+	map MOUNT_MORTAR_1F_INSIDE
+	db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite
 	; morn
-	db 13,GEODUDE
-	db 14,RATTATA
-	db 15,MACHOP
-	db 14,RATICATE
-	db 15,ZUBAT
-	db 15,GOLBAT
-	db 15,GOLBAT
+	db 13, GEODUDE
+	db 14, RATTATA
+	db 15, MACHOP
+	db 14, RATICATE
+	db 15, ZUBAT
+	db 15, GOLBAT
+	db 15, GOLBAT
 	; day
-	db 13,GEODUDE
-	db 14,RATTATA
-	db 15,MACHOP
-	db 14,RATICATE
-	db 15,ZUBAT
-	db 15,GOLBAT
-	db 15,GOLBAT
+	db 13, GEODUDE
+	db 14, RATTATA
+	db 15, MACHOP
+	db 14, RATICATE
+	db 15, ZUBAT
+	db 15, GOLBAT
+	db 15, GOLBAT
 	; nite
-	db 13,GEODUDE
-	db 14,RATTATA
-	db 15,RATICATE
-	db 14,ZUBAT
-	db 15,MARILL
-	db 15,GOLBAT
-	db 15,GOLBAT
+	db 13, GEODUDE
+	db 14, RATTATA
+	db 15, RATICATE
+	db 14, ZUBAT
+	db 15, MARILL
+	db 15, GOLBAT
+	db 15, GOLBAT
 
-	db GROUP_MOUNT_MORTAR_2F_INSIDE, MAP_MOUNT_MORTAR_2F_INSIDE
-	db $0f,$0f,$0f ; encounter rates: morn/day/nite
+	map MOUNT_MORTAR_2F_INSIDE
+	db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite
 	; morn
-	db 31,GRAVELER
-	db 32,MACHOKE
-	db 31,GEODUDE
-	db 30,RATICATE
-	db 28,MACHOP
-	db 30,GOLBAT
-	db 30,GOLBAT
+	db 31, GRAVELER
+	db 32, MACHOKE
+	db 31, GEODUDE
+	db 30, RATICATE
+	db 28, MACHOP
+	db 30, GOLBAT
+	db 30, GOLBAT
 	; day
-	db 31,GRAVELER
-	db 32,MACHOKE
-	db 31,GEODUDE
-	db 30,RATICATE
-	db 28,MACHOP
-	db 30,GOLBAT
-	db 30,GOLBAT
+	db 31, GRAVELER
+	db 32, MACHOKE
+	db 31, GEODUDE
+	db 30, RATICATE
+	db 28, MACHOP
+	db 30, GOLBAT
+	db 30, GOLBAT
 	; nite
-	db 31,GRAVELER
-	db 31,GEODUDE
-	db 30,RATICATE
-	db 30,GOLBAT
-	db 28,MARILL
-	db 32,GOLBAT
-	db 32,GOLBAT
+	db 31, GRAVELER
+	db 31, GEODUDE
+	db 30, RATICATE
+	db 30, GOLBAT
+	db 28, MARILL
+	db 32, GOLBAT
+	db 32, GOLBAT
 
-	db GROUP_MOUNT_MORTAR_B1F, MAP_MOUNT_MORTAR_B1F
-	db $0f,$0f,$0f ; encounter rates: morn/day/nite
+	map MOUNT_MORTAR_B1F
+	db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite
 	; morn
-	db 15,ZUBAT
-	db 17,ZUBAT
-	db 17,GOLBAT
-	db 16,MACHOP
-	db 16,GEODUDE
-	db 18,RATICATE
-	db 18,RATICATE
+	db 15, ZUBAT
+	db 17, ZUBAT
+	db 17, GOLBAT
+	db 16, MACHOP
+	db 16, GEODUDE
+	db 18, RATICATE
+	db 18, RATICATE
 	; day
-	db 15,ZUBAT
-	db 17,ZUBAT
-	db 17,GOLBAT
-	db 16,MACHOP
-	db 16,GEODUDE
-	db 18,RATICATE
-	db 18,RATICATE
+	db 15, ZUBAT
+	db 17, ZUBAT
+	db 17, GOLBAT
+	db 16, MACHOP
+	db 16, GEODUDE
+	db 18, RATICATE
+	db 18, RATICATE
 	; nite
-	db 15,ZUBAT
-	db 17,ZUBAT
-	db 17,GOLBAT
-	db 16,MARILL
-	db 16,GEODUDE
-	db 18,RATICATE
-	db 18,RATICATE
+	db 15, ZUBAT
+	db 17, ZUBAT
+	db 17, GOLBAT
+	db 16, MARILL
+	db 16, GEODUDE
+	db 18, RATICATE
+	db 18, RATICATE
 
-	db GROUP_ICE_PATH_1F, MAP_ICE_PATH_1F
-	db $05,$05,$05 ; encounter rates: morn/day/nite
+	map ICE_PATH_1F
+	db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite
 	; morn
-	db 21,SWINUB
-	db 22,ZUBAT
-	db 22,GOLBAT
-	db 23,SWINUB
-	db 24,GOLBAT
-	db 22,GOLBAT
-	db 22,GOLBAT
+	db 21, SWINUB
+	db 22, ZUBAT
+	db 22, GOLBAT
+	db 23, SWINUB
+	db 24, GOLBAT
+	db 22, GOLBAT
+	db 22, GOLBAT
 	; day
-	db 21,SWINUB
-	db 22,ZUBAT
-	db 22,GOLBAT
-	db 23,SWINUB
-	db 24,GOLBAT
-	db 22,GOLBAT
-	db 22,GOLBAT
+	db 21, SWINUB
+	db 22, ZUBAT
+	db 22, GOLBAT
+	db 23, SWINUB
+	db 24, GOLBAT
+	db 22, GOLBAT
+	db 22, GOLBAT
 	; nite
-	db 21,DELIBIRD
-	db 22,ZUBAT
-	db 22,GOLBAT
-	db 23,DELIBIRD
-	db 24,GOLBAT
-	db 22,GOLBAT
-	db 22,GOLBAT
+	db 21, DELIBIRD
+	db 22, ZUBAT
+	db 22, GOLBAT
+	db 23, DELIBIRD
+	db 24, GOLBAT
+	db 22, GOLBAT
+	db 22, GOLBAT
 
-	db GROUP_ICE_PATH_B1F, MAP_ICE_PATH_B1F
-	db $05,$05,$05 ; encounter rates: morn/day/nite
+	map ICE_PATH_B1F
+	db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite
 	; morn
-	db 22,SWINUB
-	db 23,ZUBAT
-	db 23,GOLBAT
-	db 24,SWINUB
-	db 25,GOLBAT
-	db 23,GOLBAT
-	db 22,JYNX
+	db 22, SWINUB
+	db 23, ZUBAT
+	db 23, GOLBAT
+	db 24, SWINUB
+	db 25, GOLBAT
+	db 23, GOLBAT
+	db 22, JYNX
 	; day
-	db 22,SWINUB
-	db 23,ZUBAT
-	db 23,GOLBAT
-	db 24,SWINUB
-	db 25,GOLBAT
-	db 23,GOLBAT
-	db 22,JYNX
+	db 22, SWINUB
+	db 23, ZUBAT
+	db 23, GOLBAT
+	db 24, SWINUB
+	db 25, GOLBAT
+	db 23, GOLBAT
+	db 22, JYNX
 	; nite
-	db 22,DELIBIRD
-	db 23,ZUBAT
-	db 23,GOLBAT
-	db 24,DELIBIRD
-	db 25,GOLBAT
-	db 23,GOLBAT
-	db 22,SNEASEL
+	db 22, DELIBIRD
+	db 23, ZUBAT
+	db 23, GOLBAT
+	db 24, DELIBIRD
+	db 25, GOLBAT
+	db 23, GOLBAT
+	db 22, SNEASEL
 
-	db GROUP_ICE_PATH_B2F_MAHOGANY_SIDE, MAP_ICE_PATH_B2F_MAHOGANY_SIDE
-	db $05,$05,$05 ; encounter rates: morn/day/nite
+	map ICE_PATH_B2F_MAHOGANY_SIDE
+	db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite
 	; morn
-	db 23,SWINUB
-	db 24,ZUBAT
-	db 24,GOLBAT
-	db 25,SWINUB
-	db 26,GOLBAT
-	db 22,JYNX
-	db 24,JYNX
+	db 23, SWINUB
+	db 24, ZUBAT
+	db 24, GOLBAT
+	db 25, SWINUB
+	db 26, GOLBAT
+	db 22, JYNX
+	db 24, JYNX
 	; day
-	db 23,SWINUB
-	db 24,ZUBAT
-	db 24,GOLBAT
-	db 25,SWINUB
-	db 26,GOLBAT
-	db 22,JYNX
-	db 24,JYNX
+	db 23, SWINUB
+	db 24, ZUBAT
+	db 24, GOLBAT
+	db 25, SWINUB
+	db 26, GOLBAT
+	db 22, JYNX
+	db 24, JYNX
 	; nite
-	db 23,DELIBIRD
-	db 24,ZUBAT
-	db 24,GOLBAT
-	db 25,DELIBIRD
-	db 26,GOLBAT
-	db 22,SNEASEL
-	db 24,SNEASEL
+	db 23, DELIBIRD
+	db 24, ZUBAT
+	db 24, GOLBAT
+	db 25, DELIBIRD
+	db 26, GOLBAT
+	db 22, SNEASEL
+	db 24, SNEASEL
 
-	db GROUP_ICE_PATH_B2F_BLACKTHORN_SIDE, MAP_ICE_PATH_B2F_BLACKTHORN_SIDE
-	db $05,$05,$05 ; encounter rates: morn/day/nite
+	map ICE_PATH_B2F_BLACKTHORN_SIDE
+	db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite
 	; morn
-	db 23,SWINUB
-	db 24,ZUBAT
-	db 24,GOLBAT
-	db 25,SWINUB
-	db 26,GOLBAT
-	db 22,JYNX
-	db 24,JYNX
+	db 23, SWINUB
+	db 24, ZUBAT
+	db 24, GOLBAT
+	db 25, SWINUB
+	db 26, GOLBAT
+	db 22, JYNX
+	db 24, JYNX
 	; day
-	db 23,SWINUB
-	db 24,ZUBAT
-	db 24,GOLBAT
-	db 25,SWINUB
-	db 26,GOLBAT
-	db 22,JYNX
-	db 24,JYNX
+	db 23, SWINUB
+	db 24, ZUBAT
+	db 24, GOLBAT
+	db 25, SWINUB
+	db 26, GOLBAT
+	db 22, JYNX
+	db 24, JYNX
 	; nite
-	db 23,DELIBIRD
-	db 24,ZUBAT
-	db 24,GOLBAT
-	db 25,DELIBIRD
-	db 26,GOLBAT
-	db 22,SNEASEL
-	db 24,SNEASEL
+	db 23, DELIBIRD
+	db 24, ZUBAT
+	db 24, GOLBAT
+	db 25, DELIBIRD
+	db 26, GOLBAT
+	db 22, SNEASEL
+	db 24, SNEASEL
 
-	db GROUP_ICE_PATH_B3F, MAP_ICE_PATH_B3F
-	db $05,$05,$05 ; encounter rates: morn/day/nite
+	map ICE_PATH_B3F
+	db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite
 	; morn
-	db 24,SWINUB
-	db 25,ZUBAT
-	db 25,GOLBAT
-	db 26,SWINUB
-	db 22,JYNX
-	db 24,JYNX
-	db 26,JYNX
+	db 24, SWINUB
+	db 25, ZUBAT
+	db 25, GOLBAT
+	db 26, SWINUB
+	db 22, JYNX
+	db 24, JYNX
+	db 26, JYNX
 	; day
-	db 24,SWINUB
-	db 25,ZUBAT
-	db 25,GOLBAT
-	db 26,SWINUB
-	db 22,JYNX
-	db 24,JYNX
-	db 26,JYNX
+	db 24, SWINUB
+	db 25, ZUBAT
+	db 25, GOLBAT
+	db 26, SWINUB
+	db 22, JYNX
+	db 24, JYNX
+	db 26, JYNX
 	; nite
-	db 24,DELIBIRD
-	db 25,ZUBAT
-	db 25,GOLBAT
-	db 26,DELIBIRD
-	db 22,SNEASEL
-	db 24,SNEASEL
-	db 26,SNEASEL
+	db 24, DELIBIRD
+	db 25, ZUBAT
+	db 25, GOLBAT
+	db 26, DELIBIRD
+	db 22, SNEASEL
+	db 24, SNEASEL
+	db 26, SNEASEL
 
-	db GROUP_WHIRL_ISLAND_NW, MAP_WHIRL_ISLAND_NW
-	db $0f,$0f,$0f ; encounter rates: morn/day/nite
+	map WHIRL_ISLAND_NW
+	db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite
 	; morn
-	db 22,KRABBY
-	db 23,ZUBAT
-	db 22,SEEL
-	db 24,KRABBY
-	db 25,GOLBAT
-	db 24,SEEL
-	db 24,SEEL
+	db 22, KRABBY
+	db 23, ZUBAT
+	db 22, SEEL
+	db 24, KRABBY
+	db 25, GOLBAT
+	db 24, SEEL
+	db 24, SEEL
 	; day
-	db 22,KRABBY
-	db 23,ZUBAT
-	db 22,SEEL
-	db 24,KRABBY
-	db 25,GOLBAT
-	db 24,SEEL
-	db 24,SEEL
+	db 22, KRABBY
+	db 23, ZUBAT
+	db 22, SEEL
+	db 24, KRABBY
+	db 25, GOLBAT
+	db 24, SEEL
+	db 24, SEEL
 	; nite
-	db 22,KRABBY
-	db 23,ZUBAT
-	db 22,KRABBY
-	db 24,KRABBY
-	db 25,GOLBAT
-	db 24,GOLBAT
-	db 24,GOLBAT
+	db 22, KRABBY
+	db 23, ZUBAT
+	db 22, KRABBY
+	db 24, KRABBY
+	db 25, GOLBAT
+	db 24, GOLBAT
+	db 24, GOLBAT
 
-	db GROUP_WHIRL_ISLAND_NE, MAP_WHIRL_ISLAND_NE
-	db $0f,$0f,$0f ; encounter rates: morn/day/nite
+	map WHIRL_ISLAND_NE
+	db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite
 	; morn
-	db 22,KRABBY
-	db 23,ZUBAT
-	db 22,SEEL
-	db 24,KRABBY
-	db 25,GOLBAT
-	db 24,SEEL
-	db 24,SEEL
+	db 22, KRABBY
+	db 23, ZUBAT
+	db 22, SEEL
+	db 24, KRABBY
+	db 25, GOLBAT
+	db 24, SEEL
+	db 24, SEEL
 	; day
-	db 22,KRABBY
-	db 23,ZUBAT
-	db 22,SEEL
-	db 24,KRABBY
-	db 25,GOLBAT
-	db 24,SEEL
-	db 24,SEEL
+	db 22, KRABBY
+	db 23, ZUBAT
+	db 22, SEEL
+	db 24, KRABBY
+	db 25, GOLBAT
+	db 24, SEEL
+	db 24, SEEL
 	; nite
-	db 22,KRABBY
-	db 23,ZUBAT
-	db 22,KRABBY
-	db 24,KRABBY
-	db 25,GOLBAT
-	db 24,GOLBAT
-	db 24,GOLBAT
+	db 22, KRABBY
+	db 23, ZUBAT
+	db 22, KRABBY
+	db 24, KRABBY
+	db 25, GOLBAT
+	db 24, GOLBAT
+	db 24, GOLBAT
 
-	db GROUP_WHIRL_ISLAND_SW, MAP_WHIRL_ISLAND_SW
-	db $0f,$0f,$0f ; encounter rates: morn/day/nite
+	map WHIRL_ISLAND_SW
+	db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite
 	; morn
-	db 22,KRABBY
-	db 23,ZUBAT
-	db 22,SEEL
-	db 24,KRABBY
-	db 25,GOLBAT
-	db 24,SEEL
-	db 24,SEEL
+	db 22, KRABBY
+	db 23, ZUBAT
+	db 22, SEEL
+	db 24, KRABBY
+	db 25, GOLBAT
+	db 24, SEEL
+	db 24, SEEL
 	; day
-	db 22,KRABBY
-	db 23,ZUBAT
-	db 22,SEEL
-	db 24,KRABBY
-	db 25,GOLBAT
-	db 24,SEEL
-	db 24,SEEL
+	db 22, KRABBY
+	db 23, ZUBAT
+	db 22, SEEL
+	db 24, KRABBY
+	db 25, GOLBAT
+	db 24, SEEL
+	db 24, SEEL
 	; nite
-	db 22,KRABBY
-	db 23,ZUBAT
-	db 22,KRABBY
-	db 24,KRABBY
-	db 25,GOLBAT
-	db 24,GOLBAT
-	db 24,GOLBAT
+	db 22, KRABBY
+	db 23, ZUBAT
+	db 22, KRABBY
+	db 24, KRABBY
+	db 25, GOLBAT
+	db 24, GOLBAT
+	db 24, GOLBAT
 
-	db GROUP_WHIRL_ISLAND_CAVE, MAP_WHIRL_ISLAND_CAVE
-	db $0f,$0f,$0f ; encounter rates: morn/day/nite
+	map WHIRL_ISLAND_CAVE
+	db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite
 	; morn
-	db 22,KRABBY
-	db 23,ZUBAT
-	db 22,SEEL
-	db 24,KRABBY
-	db 25,GOLBAT
-	db 24,SEEL
-	db 24,SEEL
+	db 22, KRABBY
+	db 23, ZUBAT
+	db 22, SEEL
+	db 24, KRABBY
+	db 25, GOLBAT
+	db 24, SEEL
+	db 24, SEEL
 	; day
-	db 22,KRABBY
-	db 23,ZUBAT
-	db 22,SEEL
-	db 24,KRABBY
-	db 25,GOLBAT
-	db 24,SEEL
-	db 24,SEEL
+	db 22, KRABBY
+	db 23, ZUBAT
+	db 22, SEEL
+	db 24, KRABBY
+	db 25, GOLBAT
+	db 24, SEEL
+	db 24, SEEL
 	; nite
-	db 22,KRABBY
-	db 23,ZUBAT
-	db 22,KRABBY
-	db 24,KRABBY
-	db 25,GOLBAT
-	db 24,GOLBAT
-	db 24,GOLBAT
+	db 22, KRABBY
+	db 23, ZUBAT
+	db 22, KRABBY
+	db 24, KRABBY
+	db 25, GOLBAT
+	db 24, GOLBAT
+	db 24, GOLBAT
 
-	db GROUP_WHIRL_ISLAND_SE, MAP_WHIRL_ISLAND_SE
-	db $0f,$0f,$0f ; encounter rates: morn/day/nite
+	map WHIRL_ISLAND_SE
+	db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite
 	; morn
-	db 22,KRABBY
-	db 23,ZUBAT
-	db 22,SEEL
-	db 24,KRABBY
-	db 25,GOLBAT
-	db 24,SEEL
-	db 24,SEEL
+	db 22, KRABBY
+	db 23, ZUBAT
+	db 22, SEEL
+	db 24, KRABBY
+	db 25, GOLBAT
+	db 24, SEEL
+	db 24, SEEL
 	; day
-	db 22,KRABBY
-	db 23,ZUBAT
-	db 22,SEEL
-	db 24,KRABBY
-	db 25,GOLBAT
-	db 24,SEEL
-	db 24,SEEL
+	db 22, KRABBY
+	db 23, ZUBAT
+	db 22, SEEL
+	db 24, KRABBY
+	db 25, GOLBAT
+	db 24, SEEL
+	db 24, SEEL
 	; nite
-	db 22,KRABBY
-	db 23,ZUBAT
-	db 22,KRABBY
-	db 24,KRABBY
-	db 25,GOLBAT
-	db 24,GOLBAT
-	db 24,GOLBAT
+	db 22, KRABBY
+	db 23, ZUBAT
+	db 22, KRABBY
+	db 24, KRABBY
+	db 25, GOLBAT
+	db 24, GOLBAT
+	db 24, GOLBAT
 
-	db GROUP_WHIRL_ISLAND_B1F, MAP_WHIRL_ISLAND_B1F
-	db $0f,$0f,$0f ; encounter rates: morn/day/nite
+	map WHIRL_ISLAND_B1F
+	db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite
 	; morn
-	db 23,KRABBY
-	db 24,ZUBAT
-	db 23,SEEL
-	db 25,KRABBY
-	db 26,GOLBAT
-	db 25,SEEL
-	db 25,SEEL
+	db 23, KRABBY
+	db 24, ZUBAT
+	db 23, SEEL
+	db 25, KRABBY
+	db 26, GOLBAT
+	db 25, SEEL
+	db 25, SEEL
 	; day
-	db 23,KRABBY
-	db 24,ZUBAT
-	db 23,SEEL
-	db 25,KRABBY
-	db 26,GOLBAT
-	db 25,SEEL
-	db 25,SEEL
+	db 23, KRABBY
+	db 24, ZUBAT
+	db 23, SEEL
+	db 25, KRABBY
+	db 26, GOLBAT
+	db 25, SEEL
+	db 25, SEEL
 	; nite
-	db 23,KRABBY
-	db 24,ZUBAT
-	db 23,KRABBY
-	db 25,KRABBY
-	db 26,GOLBAT
-	db 25,GOLBAT
-	db 25,GOLBAT
+	db 23, KRABBY
+	db 24, ZUBAT
+	db 23, KRABBY
+	db 25, KRABBY
+	db 26, GOLBAT
+	db 25, GOLBAT
+	db 25, GOLBAT
 
-	db GROUP_WHIRL_ISLAND_B2F, MAP_WHIRL_ISLAND_B2F
-	db $0f,$0f,$0f ; encounter rates: morn/day/nite
+	map WHIRL_ISLAND_B2F
+	db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite
 	; morn
-	db 24,KRABBY
-	db 25,ZUBAT
-	db 24,SEEL
-	db 26,KRABBY
-	db 27,GOLBAT
-	db 26,SEEL
-	db 26,SEEL
+	db 24, KRABBY
+	db 25, ZUBAT
+	db 24, SEEL
+	db 26, KRABBY
+	db 27, GOLBAT
+	db 26, SEEL
+	db 26, SEEL
 	; day
-	db 24,KRABBY
-	db 25,ZUBAT
-	db 24,SEEL
-	db 26,KRABBY
-	db 27,GOLBAT
-	db 26,SEEL
-	db 26,SEEL
+	db 24, KRABBY
+	db 25, ZUBAT
+	db 24, SEEL
+	db 26, KRABBY
+	db 27, GOLBAT
+	db 26, SEEL
+	db 26, SEEL
 	; nite
-	db 24,KRABBY
-	db 25,ZUBAT
-	db 24,KRABBY
-	db 26,KRABBY
-	db 27,GOLBAT
-	db 26,GOLBAT
-	db 26,GOLBAT
+	db 24, KRABBY
+	db 25, ZUBAT
+	db 24, KRABBY
+	db 26, KRABBY
+	db 27, GOLBAT
+	db 26, GOLBAT
+	db 26, GOLBAT
 
-	db GROUP_WHIRL_ISLAND_LUGIA_CHAMBER, MAP_WHIRL_ISLAND_LUGIA_CHAMBER
-	db $0f,$0f,$0f ; encounter rates: morn/day/nite
+	map WHIRL_ISLAND_LUGIA_CHAMBER
+	db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite
 	; morn
-	db 25,KRABBY
-	db 26,ZUBAT
-	db 25,SEEL
-	db 27,KRABBY
-	db 28,GOLBAT
-	db 27,SEEL
-	db 27,SEEL
+	db 25, KRABBY
+	db 26, ZUBAT
+	db 25, SEEL
+	db 27, KRABBY
+	db 28, GOLBAT
+	db 27, SEEL
+	db 27, SEEL
 	; day
-	db 25,KRABBY
-	db 26,ZUBAT
-	db 25,SEEL
-	db 27,KRABBY
-	db 28,GOLBAT
-	db 27,SEEL
-	db 27,SEEL
+	db 25, KRABBY
+	db 26, ZUBAT
+	db 25, SEEL
+	db 27, KRABBY
+	db 28, GOLBAT
+	db 27, SEEL
+	db 27, SEEL
 	; nite
-	db 25,KRABBY
-	db 26,ZUBAT
-	db 25,KRABBY
-	db 27,KRABBY
-	db 28,GOLBAT
-	db 27,GOLBAT
-	db 27,GOLBAT
+	db 25, KRABBY
+	db 26, ZUBAT
+	db 25, KRABBY
+	db 27, KRABBY
+	db 28, GOLBAT
+	db 27, GOLBAT
+	db 27, GOLBAT
 
-	db GROUP_SILVER_CAVE_ROOM_1, MAP_SILVER_CAVE_ROOM_1
-	db $0f,$0f,$0f ; encounter rates: morn/day/nite
+	map SILVER_CAVE_ROOM_1
+	db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite
 	; morn
-	db 43,GRAVELER
-	db 44,URSARING
-	db 42,ONIX
-	db 45,MAGMAR
-	db 45,GOLBAT
-	db 20,LARVITAR
-	db 15,LARVITAR
+	db 43, GRAVELER
+	db 44, URSARING
+	db 42, ONIX
+	db 45, MAGMAR
+	db 45, GOLBAT
+	db 20, LARVITAR
+	db 15, LARVITAR
 	; day
-	db 43,GRAVELER
-	db 44,URSARING
-	db 42,ONIX
-	db 45,MAGMAR
-	db 45,GOLBAT
-	db 20,LARVITAR
-	db 15,LARVITAR
+	db 43, GRAVELER
+	db 44, URSARING
+	db 42, ONIX
+	db 45, MAGMAR
+	db 45, GOLBAT
+	db 20, LARVITAR
+	db 15, LARVITAR
 	; nite
-	db 43,GRAVELER
-	db 44,GOLBAT
-	db 42,ONIX
-	db 42,GOLBAT
-	db 45,GOLDUCK
-	db 46,GOLBAT
-	db 46,GOLBAT
+	db 43, GRAVELER
+	db 44, GOLBAT
+	db 42, ONIX
+	db 42, GOLBAT
+	db 45, GOLDUCK
+	db 46, GOLBAT
+	db 46, GOLBAT
 
-	db GROUP_SILVER_CAVE_ROOM_2, MAP_SILVER_CAVE_ROOM_2
-	db $0f,$0f,$0f ; encounter rates: morn/day/nite
+	map SILVER_CAVE_ROOM_2
+	db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite
 	; morn
-	db 48,GOLBAT
-	db 48,MACHOKE
-	db 47,URSARING
-	db 46,PARASECT
-	db 48,PARASECT
-	db 15,LARVITAR
-	db 20,LARVITAR
+	db 48, GOLBAT
+	db 48, MACHOKE
+	db 47, URSARING
+	db 46, PARASECT
+	db 48, PARASECT
+	db 15, LARVITAR
+	db 20, LARVITAR
 	; day
-	db 48,GOLBAT
-	db 48,MACHOKE
-	db 47,URSARING
-	db 46,PARASECT
-	db 48,PARASECT
-	db 15,LARVITAR
-	db 20,LARVITAR
+	db 48, GOLBAT
+	db 48, MACHOKE
+	db 47, URSARING
+	db 46, PARASECT
+	db 48, PARASECT
+	db 15, LARVITAR
+	db 20, LARVITAR
 	; nite
-	db 48,GOLBAT
-	db 48,GOLDUCK
-	db 46,GOLBAT
-	db 46,PARASECT
-	db 48,PARASECT
-	db 45,MISDREAVUS
-	db 45,MISDREAVUS
+	db 48, GOLBAT
+	db 48, GOLDUCK
+	db 46, GOLBAT
+	db 46, PARASECT
+	db 48, PARASECT
+	db 45, MISDREAVUS
+	db 45, MISDREAVUS
 
-	db GROUP_SILVER_CAVE_ROOM_3, MAP_SILVER_CAVE_ROOM_3
-	db $0f,$0f,$0f ; encounter rates: morn/day/nite
+	map SILVER_CAVE_ROOM_3
+	db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite
 	; morn
-	db 51,GOLBAT
-	db 48,ONIX
-	db 48,GRAVELER
-	db 50,URSARING
-	db 20,LARVITAR
-	db 15,LARVITAR
-	db 20,PUPITAR
+	db 51, GOLBAT
+	db 48, ONIX
+	db 48, GRAVELER
+	db 50, URSARING
+	db 20, LARVITAR
+	db 15, LARVITAR
+	db 20, PUPITAR
 	; day
-	db 51,GOLBAT
-	db 48,ONIX
-	db 48,GRAVELER
-	db 50,URSARING
-	db 20,LARVITAR
-	db 15,LARVITAR
-	db 20,PUPITAR
+	db 51, GOLBAT
+	db 48, ONIX
+	db 48, GRAVELER
+	db 50, URSARING
+	db 20, LARVITAR
+	db 15, LARVITAR
+	db 20, PUPITAR
 	; nite
-	db 51,GOLBAT
-	db 48,ONIX
-	db 48,GRAVELER
-	db 49,GOLBAT
-	db 45,GOLDUCK
-	db 53,GOLBAT
-	db 53,GOLBAT
+	db 51, GOLBAT
+	db 48, ONIX
+	db 48, GRAVELER
+	db 49, GOLBAT
+	db 45, GOLDUCK
+	db 53, GOLBAT
+	db 53, GOLBAT
 
-	db GROUP_SILVER_CAVE_ITEM_ROOMS, MAP_SILVER_CAVE_ITEM_ROOMS
-	db $0f,$0f,$0f ; encounter rates: morn/day/nite
+	map SILVER_CAVE_ITEM_ROOMS
+	db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite
 	; morn
-	db 48,GOLBAT
-	db 46,GOLBAT
-	db 50,GOLBAT
-	db 46,PARASECT
-	db 48,PARASECT
-	db 50,PARASECT
-	db 52,PARASECT
+	db 48, GOLBAT
+	db 46, GOLBAT
+	db 50, GOLBAT
+	db 46, PARASECT
+	db 48, PARASECT
+	db 50, PARASECT
+	db 52, PARASECT
 	; day
-	db 48,GOLBAT
-	db 46,GOLBAT
-	db 50,GOLBAT
-	db 46,PARASECT
-	db 48,PARASECT
-	db 50,PARASECT
-	db 52,PARASECT
+	db 48, GOLBAT
+	db 46, GOLBAT
+	db 50, GOLBAT
+	db 46, PARASECT
+	db 48, PARASECT
+	db 50, PARASECT
+	db 52, PARASECT
 	; nite
-	db 45,MISDREAVUS
-	db 48,GOLBAT
-	db 50,GOLBAT
-	db 46,PARASECT
-	db 48,PARASECT
-	db 50,PARASECT
-	db 52,PARASECT
+	db 45, MISDREAVUS
+	db 48, GOLBAT
+	db 50, GOLBAT
+	db 46, PARASECT
+	db 48, PARASECT
+	db 50, PARASECT
+	db 52, PARASECT
 
-	db GROUP_DARK_CAVE_VIOLET_ENTRANCE, MAP_DARK_CAVE_VIOLET_ENTRANCE
-	db $0a,$0a,$0a ; encounter rates: morn/day/nite
+	map DARK_CAVE_VIOLET_ENTRANCE
+	db 4 percent, 4 percent, 4 percent ; encounter rates: morn/day/nite
 	; morn
-	db 3,GEODUDE
-	db 2,ZUBAT
-	db 2,GEODUDE
-	db 4,GEODUDE
-	db 2,TEDDIURSA
-	db 4,ZUBAT
-	db 4,DUNSPARCE
+	db 3, GEODUDE
+	db 2, ZUBAT
+	db 2, GEODUDE
+	db 4, GEODUDE
+	db 2, TEDDIURSA
+	db 4, ZUBAT
+	db 4, DUNSPARCE
 	; day
-	db 3,GEODUDE
-	db 2,ZUBAT
-	db 2,GEODUDE
-	db 4,GEODUDE
-	db 2,ZUBAT
-	db 4,ZUBAT
-	db 4,DUNSPARCE
+	db 3, GEODUDE
+	db 2, ZUBAT
+	db 2, GEODUDE
+	db 4, GEODUDE
+	db 2, ZUBAT
+	db 4, ZUBAT
+	db 4, DUNSPARCE
 	; nite
-	db 3,GEODUDE
-	db 2,ZUBAT
-	db 2,GEODUDE
-	db 4,GEODUDE
-	db 2,ZUBAT
-	db 4,ZUBAT
-	db 4,DUNSPARCE
+	db 3, GEODUDE
+	db 2, ZUBAT
+	db 2, GEODUDE
+	db 4, GEODUDE
+	db 2, ZUBAT
+	db 4, ZUBAT
+	db 4, DUNSPARCE
 
-	db GROUP_DARK_CAVE_BLACKTHORN_ENTRANCE, MAP_DARK_CAVE_BLACKTHORN_ENTRANCE
-	db $0a,$0a,$0a ; encounter rates: morn/day/nite
+	map DARK_CAVE_BLACKTHORN_ENTRANCE
+	db 4 percent, 4 percent, 4 percent ; encounter rates: morn/day/nite
 	; morn
-	db 23,GEODUDE
-	db 23,ZUBAT
-	db 25,GRAVELER
-	db 25,URSARING
-	db 20,TEDDIURSA
-	db 23,GOLBAT
-	db 23,GOLBAT
+	db 23, GEODUDE
+	db 23, ZUBAT
+	db 25, GRAVELER
+	db 25, URSARING
+	db 20, TEDDIURSA
+	db 23, GOLBAT
+	db 23, GOLBAT
 	; day
-	db 23,GEODUDE
-	db 23,ZUBAT
-	db 25,GRAVELER
-	db 25,URSARING
-	db 30,URSARING
-	db 23,GOLBAT
-	db 23,GOLBAT
+	db 23, GEODUDE
+	db 23, ZUBAT
+	db 25, GRAVELER
+	db 25, URSARING
+	db 30, URSARING
+	db 23, GOLBAT
+	db 23, GOLBAT
 	; nite
-	db 23,GEODUDE
-	db 23,ZUBAT
-	db 25,GRAVELER
-	db 20,WOBBUFFET
-	db 25,WOBBUFFET
-	db 23,GOLBAT
-	db 23,GOLBAT
+	db 23, GEODUDE
+	db 23, ZUBAT
+	db 25, GRAVELER
+	db 20, WOBBUFFET
+	db 25, WOBBUFFET
+	db 23, GOLBAT
+	db 23, GOLBAT
 
-	db GROUP_ROUTE_29, MAP_ROUTE_29
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_29
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 2,PIDGEY
-	db 2,SENTRET
-	db 3,PIDGEY
-	db 3,SENTRET
-	db 2,RATTATA
-	db 3,HOPPIP
-	db 3,HOPPIP
+	db 2, PIDGEY
+	db 2, SENTRET
+	db 3, PIDGEY
+	db 3, SENTRET
+	db 2, RATTATA
+	db 3, HOPPIP
+	db 3, HOPPIP
 	; day
-	db 2,PIDGEY
-	db 2,SENTRET
-	db 3,PIDGEY
-	db 3,SENTRET
-	db 2,RATTATA
-	db 3,HOPPIP
-	db 3,HOPPIP
+	db 2, PIDGEY
+	db 2, SENTRET
+	db 3, PIDGEY
+	db 3, SENTRET
+	db 2, RATTATA
+	db 3, HOPPIP
+	db 3, HOPPIP
 	; nite
-	db 2,HOOTHOOT
-	db 2,RATTATA
-	db 3,HOOTHOOT
-	db 3,RATTATA
-	db 2,RATTATA
-	db 3,HOOTHOOT
-	db 3,HOOTHOOT
+	db 2, HOOTHOOT
+	db 2, RATTATA
+	db 3, HOOTHOOT
+	db 3, RATTATA
+	db 2, RATTATA
+	db 3, HOOTHOOT
+	db 3, HOOTHOOT
 
-	db GROUP_ROUTE_30, MAP_ROUTE_30
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_30
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 3,LEDYBA
-	db 3,CATERPIE
-	db 4,CATERPIE
-	db 4,PIDGEY
-	db 3,WEEDLE
-	db 4,HOPPIP
-	db 4,HOPPIP
+	db 3, LEDYBA
+	db 3, CATERPIE
+	db 4, CATERPIE
+	db 4, PIDGEY
+	db 3, WEEDLE
+	db 4, HOPPIP
+	db 4, HOPPIP
 	; day
-	db 3,PIDGEY
-	db 3,CATERPIE
-	db 4,CATERPIE
-	db 4,PIDGEY
-	db 3,WEEDLE
-	db 4,HOPPIP
-	db 4,HOPPIP
+	db 3, PIDGEY
+	db 3, CATERPIE
+	db 4, CATERPIE
+	db 4, PIDGEY
+	db 3, WEEDLE
+	db 4, HOPPIP
+	db 4, HOPPIP
 	; nite
-	db 3,SPINARAK
-	db 3,HOOTHOOT
-	db 4,POLIWAG
-	db 4,HOOTHOOT
-	db 3,ZUBAT
-	db 4,HOOTHOOT
-	db 4,HOOTHOOT
+	db 3, SPINARAK
+	db 3, HOOTHOOT
+	db 4, POLIWAG
+	db 4, HOOTHOOT
+	db 3, ZUBAT
+	db 4, HOOTHOOT
+	db 4, HOOTHOOT
 
-	db GROUP_ROUTE_31, MAP_ROUTE_31
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_31
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 4,LEDYBA
-	db 4,CATERPIE
-	db 5,BELLSPROUT
-	db 5,PIDGEY
-	db 4,WEEDLE
-	db 5,HOPPIP
-	db 5,HOPPIP
+	db 4, LEDYBA
+	db 4, CATERPIE
+	db 5, BELLSPROUT
+	db 5, PIDGEY
+	db 4, WEEDLE
+	db 5, HOPPIP
+	db 5, HOPPIP
 	; day
-	db 4,PIDGEY
-	db 4,CATERPIE
-	db 5,BELLSPROUT
-	db 5,PIDGEY
-	db 4,WEEDLE
-	db 5,HOPPIP
-	db 5,HOPPIP
+	db 4, PIDGEY
+	db 4, CATERPIE
+	db 5, BELLSPROUT
+	db 5, PIDGEY
+	db 4, WEEDLE
+	db 5, HOPPIP
+	db 5, HOPPIP
 	; nite
-	db 4,SPINARAK
-	db 4,POLIWAG
-	db 5,BELLSPROUT
-	db 5,HOOTHOOT
-	db 4,ZUBAT
-	db 5,GASTLY
-	db 5,GASTLY
+	db 4, SPINARAK
+	db 4, POLIWAG
+	db 5, BELLSPROUT
+	db 5, HOOTHOOT
+	db 4, ZUBAT
+	db 5, GASTLY
+	db 5, GASTLY
 
-	db GROUP_ROUTE_32, MAP_ROUTE_32
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_32
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 4,EKANS
-	db 5,RATTATA
-	db 7,BELLSPROUT
-	db 6,HOPPIP
-	db 7,PIDGEY
-	db 7,HOPPIP
-	db 7,HOPPIP
+	db 4, EKANS
+	db 5, RATTATA
+	db 7, BELLSPROUT
+	db 6, HOPPIP
+	db 7, PIDGEY
+	db 7, HOPPIP
+	db 7, HOPPIP
 	; day
-	db 4,EKANS
-	db 5,RATTATA
-	db 7,BELLSPROUT
-	db 6,HOPPIP
-	db 7,PIDGEY
-	db 7,HOPPIP
-	db 7,HOPPIP
+	db 4, EKANS
+	db 5, RATTATA
+	db 7, BELLSPROUT
+	db 6, HOPPIP
+	db 7, PIDGEY
+	db 7, HOPPIP
+	db 7, HOPPIP
 	; nite
-	db 4,WOOPER
-	db 5,RATTATA
-	db 7,BELLSPROUT
-	db 6,ZUBAT
-	db 7,HOOTHOOT
-	db 7,GASTLY
-	db 7,GASTLY
+	db 4, WOOPER
+	db 5, RATTATA
+	db 7, BELLSPROUT
+	db 6, ZUBAT
+	db 7, HOOTHOOT
+	db 7, GASTLY
+	db 7, GASTLY
 
-	db GROUP_ROUTE_33, MAP_ROUTE_33
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_33
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 6,RATTATA
-	db 6,SPEAROW
-	db 6,GEODUDE
-	db 6,HOPPIP
-	db 7,EKANS
-	db 7,HOPPIP
-	db 7,HOPPIP
+	db 6, RATTATA
+	db 6, SPEAROW
+	db 6, GEODUDE
+	db 6, HOPPIP
+	db 7, EKANS
+	db 7, HOPPIP
+	db 7, HOPPIP
 	; day
-	db 6,RATTATA
-	db 6,SPEAROW
-	db 6,GEODUDE
-	db 6,HOPPIP
-	db 7,EKANS
-	db 7,HOPPIP
-	db 7,HOPPIP
+	db 6, RATTATA
+	db 6, SPEAROW
+	db 6, GEODUDE
+	db 6, HOPPIP
+	db 7, EKANS
+	db 7, HOPPIP
+	db 7, HOPPIP
 	; nite
-	db 6,RATTATA
-	db 6,ZUBAT
-	db 6,GEODUDE
-	db 6,ZUBAT
-	db 7,RATTATA
-	db 7,RATTATA
-	db 7,RATTATA
+	db 6, RATTATA
+	db 6, ZUBAT
+	db 6, GEODUDE
+	db 6, ZUBAT
+	db 7, RATTATA
+	db 7, RATTATA
+	db 7, RATTATA
 
-	db GROUP_ROUTE_34, MAP_ROUTE_34
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_34
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 10,SNUBBULL
-	db 11,RATTATA
-	db 12,PIDGEY
-	db 10,ABRA
-	db 12,JIGGLYPUFF
-	db 10,DITTO
-	db 10,DITTO
+	db 10, SNUBBULL
+	db 11, RATTATA
+	db 12, PIDGEY
+	db 10, ABRA
+	db 12, JIGGLYPUFF
+	db 10, DITTO
+	db 10, DITTO
 	; day
-	db 10,SNUBBULL
-	db 11,RATTATA
-	db 12,PIDGEY
-	db 10,ABRA
-	db 12,JIGGLYPUFF
-	db 10,DITTO
-	db 10,DITTO
+	db 10, SNUBBULL
+	db 11, RATTATA
+	db 12, PIDGEY
+	db 10, ABRA
+	db 12, JIGGLYPUFF
+	db 10, DITTO
+	db 10, DITTO
 	; nite
-	db 12,DROWZEE
-	db 11,RATTATA
-	db 12,HOOTHOOT
-	db 10,ABRA
-	db 12,JIGGLYPUFF
-	db 10,DITTO
-	db 10,DITTO
+	db 12, DROWZEE
+	db 11, RATTATA
+	db 12, HOOTHOOT
+	db 10, ABRA
+	db 12, JIGGLYPUFF
+	db 10, DITTO
+	db 10, DITTO
 
-	db GROUP_ROUTE_35, MAP_ROUTE_35
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_35
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 12,SNUBBULL
-	db 14,PIDGEY
-	db 13,GROWLITHE
-	db 10,ABRA
-	db 12,JIGGLYPUFF
-	db 10,DITTO
-	db 12,YANMA
+	db 12, SNUBBULL
+	db 14, PIDGEY
+	db 13, GROWLITHE
+	db 10, ABRA
+	db 12, JIGGLYPUFF
+	db 10, DITTO
+	db 12, YANMA
 	; day
-	db 12,SNUBBULL
-	db 14,PIDGEY
-	db 13,GROWLITHE
-	db 10,ABRA
-	db 12,JIGGLYPUFF
-	db 10,DITTO
-	db 12,YANMA
+	db 12, SNUBBULL
+	db 14, PIDGEY
+	db 13, GROWLITHE
+	db 10, ABRA
+	db 12, JIGGLYPUFF
+	db 10, DITTO
+	db 12, YANMA
 	; nite
-	db 12,DROWZEE
-	db 14,HOOTHOOT
-	db 13,PSYDUCK
-	db 10,ABRA
-	db 12,JIGGLYPUFF
-	db 10,DITTO
-	db 12,YANMA
+	db 12, DROWZEE
+	db 14, HOOTHOOT
+	db 13, PSYDUCK
+	db 10, ABRA
+	db 12, JIGGLYPUFF
+	db 10, DITTO
+	db 12, YANMA
 
-	db GROUP_ROUTE_36, MAP_ROUTE_36
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_36
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 4,LEDYBA
-	db 4,PIDGEY
-	db 5,BELLSPROUT
-	db 5,GROWLITHE
-	db 5,PIDGEY
-	db 6,PIDGEY
-	db 6,PIDGEY
+	db 4, LEDYBA
+	db 4, PIDGEY
+	db 5, BELLSPROUT
+	db 5, GROWLITHE
+	db 5, PIDGEY
+	db 6, PIDGEY
+	db 6, PIDGEY
 	; day
-	db 4,PIDGEY
-	db 4,PIDGEY
-	db 5,BELLSPROUT
-	db 5,GROWLITHE
-	db 5,PIDGEY
-	db 6,PIDGEY
-	db 6,PIDGEY
+	db 4, PIDGEY
+	db 4, PIDGEY
+	db 5, BELLSPROUT
+	db 5, GROWLITHE
+	db 5, PIDGEY
+	db 6, PIDGEY
+	db 6, PIDGEY
 	; nite
-	db 4,SPINARAK
-	db 4,HOOTHOOT
-	db 5,BELLSPROUT
-	db 5,HOOTHOOT
-	db 5,HOOTHOOT
-	db 5,GASTLY
-	db 5,GASTLY
+	db 4, SPINARAK
+	db 4, HOOTHOOT
+	db 5, BELLSPROUT
+	db 5, HOOTHOOT
+	db 5, HOOTHOOT
+	db 5, GASTLY
+	db 5, GASTLY
 
-	db GROUP_ROUTE_37, MAP_ROUTE_37
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_37
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 13,LEDYBA
-	db 14,GROWLITHE
-	db 15,PIDGEY
-	db 16,GROWLITHE
-	db 15,PIDGEOTTO
-	db 15,LEDIAN
-	db 15,LEDIAN
+	db 13, LEDYBA
+	db 14, GROWLITHE
+	db 15, PIDGEY
+	db 16, GROWLITHE
+	db 15, PIDGEOTTO
+	db 15, LEDIAN
+	db 15, LEDIAN
 	; day
-	db 13,PIDGEY
-	db 14,GROWLITHE
-	db 15,PIDGEY
-	db 16,GROWLITHE
-	db 15,PIDGEOTTO
-	db 15,PIDGEY
-	db 15,PIDGEY
+	db 13, PIDGEY
+	db 14, GROWLITHE
+	db 15, PIDGEY
+	db 16, GROWLITHE
+	db 15, PIDGEOTTO
+	db 15, PIDGEY
+	db 15, PIDGEY
 	; nite
-	db 13,SPINARAK
-	db 14,STANTLER
-	db 15,HOOTHOOT
-	db 16,STANTLER
-	db 15,NOCTOWL
-	db 15,ARIADOS
-	db 15,ARIADOS
+	db 13, SPINARAK
+	db 14, STANTLER
+	db 15, HOOTHOOT
+	db 16, STANTLER
+	db 15, NOCTOWL
+	db 15, ARIADOS
+	db 15, ARIADOS
 
-	db GROUP_ROUTE_38, MAP_ROUTE_38
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_38
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 16,RATTATA
-	db 16,RATICATE
-	db 16,MAGNEMITE
-	db 16,PIDGEOTTO
-	db 13,TAUROS
-	db 13,MILTANK
-	db 13,MILTANK
+	db 16, RATTATA
+	db 16, RATICATE
+	db 16, MAGNEMITE
+	db 16, PIDGEOTTO
+	db 13, TAUROS
+	db 13, MILTANK
+	db 13, MILTANK
 	; day
-	db 16,RATTATA
-	db 16,RATICATE
-	db 16,MAGNEMITE
-	db 16,PIDGEOTTO
-	db 13,TAUROS
-	db 13,MILTANK
-	db 13,MILTANK
+	db 16, RATTATA
+	db 16, RATICATE
+	db 16, MAGNEMITE
+	db 16, PIDGEOTTO
+	db 13, TAUROS
+	db 13, MILTANK
+	db 13, MILTANK
 	; nite
-	db 16,MEOWTH
-	db 16,RATICATE
-	db 16,MAGNEMITE
-	db 16,NOCTOWL
-	db 16,MEOWTH
-	db 16,MEOWTH
-	db 16,MEOWTH
+	db 16, MEOWTH
+	db 16, RATICATE
+	db 16, MAGNEMITE
+	db 16, NOCTOWL
+	db 16, MEOWTH
+	db 16, MEOWTH
+	db 16, MEOWTH
 
-	db GROUP_ROUTE_39, MAP_ROUTE_39
-	db $05,$05,$05 ; encounter rates: morn/day/nite
+	map ROUTE_39
+	db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite
 	; morn
-	db 16,RATTATA
-	db 16,RATICATE
-	db 16,MAGNEMITE
-	db 16,PIDGEOTTO
-	db 15,MILTANK
-	db 15,TAUROS
-	db 15,TAUROS
+	db 16, RATTATA
+	db 16, RATICATE
+	db 16, MAGNEMITE
+	db 16, PIDGEOTTO
+	db 15, MILTANK
+	db 15, TAUROS
+	db 15, TAUROS
 	; day
-	db 16,RATTATA
-	db 16,RATICATE
-	db 16,MAGNEMITE
-	db 16,PIDGEOTTO
-	db 15,MILTANK
-	db 15,TAUROS
-	db 15,TAUROS
+	db 16, RATTATA
+	db 16, RATICATE
+	db 16, MAGNEMITE
+	db 16, PIDGEOTTO
+	db 15, MILTANK
+	db 15, TAUROS
+	db 15, TAUROS
 	; nite
-	db 16,MEOWTH
-	db 16,RATICATE
-	db 16,MAGNEMITE
-	db 16,NOCTOWL
-	db 18,MEOWTH
-	db 18,MEOWTH
-	db 18,MEOWTH
+	db 16, MEOWTH
+	db 16, RATICATE
+	db 16, MAGNEMITE
+	db 16, NOCTOWL
+	db 18, MEOWTH
+	db 18, MEOWTH
+	db 18, MEOWTH
 
-	db GROUP_ROUTE_42, MAP_ROUTE_42
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_42
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 13,EKANS
-	db 14,SPEAROW
-	db 15,RATTATA
-	db 16,RATICATE
-	db 15,ARBOK
-	db 16,FEAROW
-	db 16,FEAROW
+	db 13, EKANS
+	db 14, SPEAROW
+	db 15, RATTATA
+	db 16, RATICATE
+	db 15, ARBOK
+	db 16, FEAROW
+	db 16, FEAROW
 	; day
-	db 13,EKANS
-	db 14,SPEAROW
-	db 15,RATTATA
-	db 16,RATICATE
-	db 15,ARBOK
-	db 16,FEAROW
-	db 16,FEAROW
+	db 13, EKANS
+	db 14, SPEAROW
+	db 15, RATTATA
+	db 16, RATICATE
+	db 15, ARBOK
+	db 16, FEAROW
+	db 16, FEAROW
 	; nite
-	db 13,RATTATA
-	db 14,ZUBAT
-	db 15,RATICATE
-	db 16,GOLBAT
-	db 15,MARILL
-	db 16,GOLBAT
-	db 16,GOLBAT
+	db 13, RATTATA
+	db 14, ZUBAT
+	db 15, RATICATE
+	db 16, GOLBAT
+	db 15, MARILL
+	db 16, GOLBAT
+	db 16, GOLBAT
 
-	db GROUP_ROUTE_43, MAP_ROUTE_43
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_43
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 15,SENTRET
-	db 16,PIDGEOTTO
-	db 16,FARFETCH_D
-	db 15,FURRET
-	db 17,RATICATE
-	db 17,FURRET
-	db 17,FURRET
+	db 15, SENTRET
+	db 16, PIDGEOTTO
+	db 16, FARFETCH_D
+	db 15, FURRET
+	db 17, RATICATE
+	db 17, FURRET
+	db 17, FURRET
 	; day
-	db 15,SENTRET
-	db 16,PIDGEOTTO
-	db 16,FARFETCH_D
-	db 15,FURRET
-	db 17,RATICATE
-	db 17,FURRET
-	db 17,FURRET
+	db 15, SENTRET
+	db 16, PIDGEOTTO
+	db 16, FARFETCH_D
+	db 15, FURRET
+	db 17, RATICATE
+	db 17, FURRET
+	db 17, FURRET
 	; nite
-	db 15,VENONAT
-	db 16,NOCTOWL
-	db 16,RATICATE
-	db 17,VENONAT
-	db 17,RATICATE
-	db 17,VENOMOTH
-	db 17,VENOMOTH
+	db 15, VENONAT
+	db 16, NOCTOWL
+	db 16, RATICATE
+	db 17, VENONAT
+	db 17, RATICATE
+	db 17, VENOMOTH
+	db 17, VENOMOTH
 
-	db GROUP_ROUTE_44, MAP_ROUTE_44
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_44
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 23,TANGELA
-	db 22,LICKITUNG
-	db 22,BELLSPROUT
-	db 24,WEEPINBELL
-	db 24,LICKITUNG
-	db 26,LICKITUNG
-	db 26,LICKITUNG
+	db 23, TANGELA
+	db 22, LICKITUNG
+	db 22, BELLSPROUT
+	db 24, WEEPINBELL
+	db 24, LICKITUNG
+	db 26, LICKITUNG
+	db 26, LICKITUNG
 	; day
-	db 23,TANGELA
-	db 22,LICKITUNG
-	db 22,BELLSPROUT
-	db 24,WEEPINBELL
-	db 24,LICKITUNG
-	db 26,LICKITUNG
-	db 26,LICKITUNG
+	db 23, TANGELA
+	db 22, LICKITUNG
+	db 22, BELLSPROUT
+	db 24, WEEPINBELL
+	db 24, LICKITUNG
+	db 26, LICKITUNG
+	db 26, LICKITUNG
 	; nite
-	db 23,TANGELA
-	db 22,POLIWAG
-	db 22,BELLSPROUT
-	db 24,WEEPINBELL
-	db 24,POLIWHIRL
-	db 26,POLIWHIRL
-	db 26,POLIWHIRL
+	db 23, TANGELA
+	db 22, POLIWAG
+	db 22, BELLSPROUT
+	db 24, WEEPINBELL
+	db 24, POLIWHIRL
+	db 26, POLIWHIRL
+	db 26, POLIWHIRL
 
-	db GROUP_ROUTE_45, MAP_ROUTE_45
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_45
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 23,GEODUDE
-	db 23,GRAVELER
-	db 24,GLIGAR
-	db 25,DONPHAN
-	db 20,PHANPY
-	db 27,SKARMORY
-	db 27,SKARMORY
+	db 23, GEODUDE
+	db 23, GRAVELER
+	db 24, GLIGAR
+	db 25, DONPHAN
+	db 20, PHANPY
+	db 27, SKARMORY
+	db 27, SKARMORY
 	; day
-	db 23,GEODUDE
-	db 23,GRAVELER
-	db 24,GLIGAR
-	db 25,DONPHAN
-	db 30,DONPHAN
-	db 27,SKARMORY
-	db 27,SKARMORY
+	db 23, GEODUDE
+	db 23, GRAVELER
+	db 24, GLIGAR
+	db 25, DONPHAN
+	db 30, DONPHAN
+	db 27, SKARMORY
+	db 27, SKARMORY
 	; nite
-	db 23,GEODUDE
-	db 23,GRAVELER
-	db 24,GLIGAR
-	db 25,GRAVELER
-	db 27,GRAVELER
-	db 27,GRAVELER
-	db 27,GRAVELER
+	db 23, GEODUDE
+	db 23, GRAVELER
+	db 24, GLIGAR
+	db 25, GRAVELER
+	db 27, GRAVELER
+	db 27, GRAVELER
+	db 27, GRAVELER
 
-	db GROUP_ROUTE_46, MAP_ROUTE_46
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_46
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 2,GEODUDE
-	db 2,SPEAROW
-	db 3,GEODUDE
-	db 3,RATTATA
-	db 2,PHANPY
-	db 2,RATTATA
-	db 2,RATTATA
+	db 2, GEODUDE
+	db 2, SPEAROW
+	db 3, GEODUDE
+	db 3, RATTATA
+	db 2, PHANPY
+	db 2, RATTATA
+	db 2, RATTATA
 	; day
-	db 2,GEODUDE
-	db 2,SPEAROW
-	db 3,GEODUDE
-	db 3,RATTATA
-	db 2,RATTATA
-	db 2,RATTATA
-	db 2,RATTATA
+	db 2, GEODUDE
+	db 2, SPEAROW
+	db 3, GEODUDE
+	db 3, RATTATA
+	db 2, RATTATA
+	db 2, RATTATA
+	db 2, RATTATA
 	; nite
-	db 2,GEODUDE
-	db 2,RATTATA
-	db 3,GEODUDE
-	db 3,RATTATA
-	db 2,RATTATA
-	db 2,RATTATA
-	db 2,RATTATA
+	db 2, GEODUDE
+	db 2, RATTATA
+	db 3, GEODUDE
+	db 3, RATTATA
+	db 2, RATTATA
+	db 2, RATTATA
+	db 2, RATTATA
 
-	db GROUP_SILVER_CAVE_OUTSIDE, MAP_SILVER_CAVE_OUTSIDE
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map SILVER_CAVE_OUTSIDE
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 41,TANGELA
-	db 42,PONYTA
-	db 42,ARBOK
-	db 44,RAPIDASH
-	db 41,DODUO
-	db 43,DODRIO
-	db 43,DODRIO
+	db 41, TANGELA
+	db 42, PONYTA
+	db 42, ARBOK
+	db 44, RAPIDASH
+	db 41, DODUO
+	db 43, DODRIO
+	db 43, DODRIO
 	; day
-	db 41,TANGELA
-	db 42,PONYTA
-	db 42,ARBOK
-	db 44,RAPIDASH
-	db 41,DODUO
-	db 43,DODRIO
-	db 43,DODRIO
+	db 41, TANGELA
+	db 42, PONYTA
+	db 42, ARBOK
+	db 44, RAPIDASH
+	db 41, DODUO
+	db 43, DODRIO
+	db 43, DODRIO
 	; nite
-	db 41,TANGELA
-	db 42,POLIWHIRL
-	db 42,GOLBAT
-	db 44,POLIWHIRL
-	db 40,GOLBAT
-	db 44,GOLBAT
-	db 44,GOLBAT
+	db 41, TANGELA
+	db 42, POLIWHIRL
+	db 42, GOLBAT
+	db 44, POLIWHIRL
+	db 40, GOLBAT
+	db 44, GOLBAT
+	db 44, GOLBAT
 
-	db $ff ; end
+	db -1 ; end
--- a/data/wild/johto_water.asm
+++ b/data/wild/johto_water.asm
@@ -1,231 +1,231 @@
 ; Johto Pokémon in water
 
-	db GROUP_RUINS_OF_ALPH_OUTSIDE, MAP_RUINS_OF_ALPH_OUTSIDE
-	db $05 ; encounter rate
-	db 15,WOOPER
-	db 20,QUAGSIRE
-	db 15,QUAGSIRE
+	map RUINS_OF_ALPH_OUTSIDE
+	db 2 percent ; encounter rate
+	db 15, WOOPER
+	db 20, QUAGSIRE
+	db 15, QUAGSIRE
 
-	db GROUP_UNION_CAVE_1F, MAP_UNION_CAVE_1F
-	db $05 ; encounter rate
-	db 15,WOOPER
-	db 20,QUAGSIRE
-	db 15,QUAGSIRE
+	map UNION_CAVE_1F
+	db 2 percent ; encounter rate
+	db 15, WOOPER
+	db 20, QUAGSIRE
+	db 15, QUAGSIRE
 
-	db GROUP_UNION_CAVE_B1F, MAP_UNION_CAVE_B1F
-	db $05 ; encounter rate
-	db 15,WOOPER
-	db 20,QUAGSIRE
-	db 15,QUAGSIRE
+	map UNION_CAVE_B1F
+	db 2 percent ; encounter rate
+	db 15, WOOPER
+	db 20, QUAGSIRE
+	db 15, QUAGSIRE
 
-	db GROUP_UNION_CAVE_B2F, MAP_UNION_CAVE_B2F
-	db $0a ; encounter rate
-	db 15,TENTACOOL
-	db 20,QUAGSIRE
-	db 20,TENTACRUEL
+	map UNION_CAVE_B2F
+	db 4 percent ; encounter rate
+	db 15, TENTACOOL
+	db 20, QUAGSIRE
+	db 20, TENTACRUEL
 
-	db GROUP_SLOWPOKE_WELL_B1F, MAP_SLOWPOKE_WELL_B1F
-	db $05 ; encounter rate
-	db 15,SLOWPOKE
-	db 20,SLOWPOKE
-	db 10,SLOWPOKE
+	map SLOWPOKE_WELL_B1F
+	db 2 percent ; encounter rate
+	db 15, SLOWPOKE
+	db 20, SLOWPOKE
+	db 10, SLOWPOKE
 
-	db GROUP_SLOWPOKE_WELL_B2F, MAP_SLOWPOKE_WELL_B2F
-	db $05 ; encounter rate
-	db 15,SLOWPOKE
-	db 20,SLOWPOKE
-	db 20,SLOWBRO
+	map SLOWPOKE_WELL_B2F
+	db 2 percent ; encounter rate
+	db 15, SLOWPOKE
+	db 20, SLOWPOKE
+	db 20, SLOWBRO
 
-	db GROUP_ILEX_FOREST, MAP_ILEX_FOREST
-	db $05 ; encounter rate
-	db 15,PSYDUCK
-	db 10,PSYDUCK
-	db 15,GOLDUCK
+	map ILEX_FOREST
+	db 2 percent ; encounter rate
+	db 15, PSYDUCK
+	db 10, PSYDUCK
+	db 15, GOLDUCK
 
-	db GROUP_MOUNT_MORTAR_1F_OUTSIDE, MAP_MOUNT_MORTAR_1F_OUTSIDE
-	db $0a ; encounter rate
-	db 15,GOLDEEN
-	db 20,MARILL
-	db 20,SEAKING
+	map MOUNT_MORTAR_1F_OUTSIDE
+	db 4 percent ; encounter rate
+	db 15, GOLDEEN
+	db 20, MARILL
+	db 20, SEAKING
 
-	db GROUP_MOUNT_MORTAR_2F_INSIDE, MAP_MOUNT_MORTAR_2F_INSIDE
-	db $05 ; encounter rate
-	db 20,GOLDEEN
-	db 25,MARILL
-	db 25,SEAKING
+	map MOUNT_MORTAR_2F_INSIDE
+	db 2 percent ; encounter rate
+	db 20, GOLDEEN
+	db 25, MARILL
+	db 25, SEAKING
 
-	db GROUP_MOUNT_MORTAR_B1F, MAP_MOUNT_MORTAR_B1F
-	db $05 ; encounter rate
-	db 15,GOLDEEN
-	db 20,MARILL
-	db 20,SEAKING
+	map MOUNT_MORTAR_B1F
+	db 2 percent ; encounter rate
+	db 15, GOLDEEN
+	db 20, MARILL
+	db 20, SEAKING
 
-	db GROUP_WHIRL_ISLAND_SW, MAP_WHIRL_ISLAND_SW
-	db $0a ; encounter rate
-	db 20,TENTACOOL
-	db 15,HORSEA
-	db 20,TENTACRUEL
+	map WHIRL_ISLAND_SW
+	db 4 percent ; encounter rate
+	db 20, TENTACOOL
+	db 15, HORSEA
+	db 20, TENTACRUEL
 
-	db GROUP_WHIRL_ISLAND_B2F, MAP_WHIRL_ISLAND_B2F
-	db $0a ; encounter rate
-	db 15,HORSEA
-	db 20,HORSEA
-	db 20,TENTACRUEL
+	map WHIRL_ISLAND_B2F
+	db 4 percent ; encounter rate
+	db 15, HORSEA
+	db 20, HORSEA
+	db 20, TENTACRUEL
 
-	db GROUP_WHIRL_ISLAND_LUGIA_CHAMBER, MAP_WHIRL_ISLAND_LUGIA_CHAMBER
-	db $0a ; encounter rate
-	db 20,HORSEA
-	db 20,TENTACRUEL
-	db 20,SEADRA
+	map WHIRL_ISLAND_LUGIA_CHAMBER
+	db 4 percent ; encounter rate
+	db 20, HORSEA
+	db 20, TENTACRUEL
+	db 20, SEADRA
 
-	db GROUP_SILVER_CAVE_ROOM_2, MAP_SILVER_CAVE_ROOM_2
-	db $05 ; encounter rate
-	db 35,SEAKING
-	db 35,GOLDUCK
-	db 35,GOLDEEN
+	map SILVER_CAVE_ROOM_2
+	db 2 percent ; encounter rate
+	db 35, SEAKING
+	db 35, GOLDUCK
+	db 35, GOLDEEN
 
-	db GROUP_DARK_CAVE_VIOLET_ENTRANCE, MAP_DARK_CAVE_VIOLET_ENTRANCE
-	db $05 ; encounter rate
-	db 15,MAGIKARP
-	db 10,MAGIKARP
-	db 5,MAGIKARP
+	map DARK_CAVE_VIOLET_ENTRANCE
+	db 2 percent ; encounter rate
+	db 15, MAGIKARP
+	db 10, MAGIKARP
+	db 5, MAGIKARP
 
-	db GROUP_DARK_CAVE_BLACKTHORN_ENTRANCE, MAP_DARK_CAVE_BLACKTHORN_ENTRANCE
-	db $05 ; encounter rate
-	db 15,MAGIKARP
-	db 10,MAGIKARP
-	db 5,MAGIKARP
+	map DARK_CAVE_BLACKTHORN_ENTRANCE
+	db 2 percent ; encounter rate
+	db 15, MAGIKARP
+	db 10, MAGIKARP
+	db 5, MAGIKARP
 
-	db GROUP_DRAGONS_DEN_B1F, MAP_DRAGONS_DEN_B1F
-	db $0a ; encounter rate
-	db 15,MAGIKARP
-	db 10,MAGIKARP
-	db 10,DRATINI
+	map DRAGONS_DEN_B1F
+	db 4 percent ; encounter rate
+	db 15, MAGIKARP
+	db 10, MAGIKARP
+	db 10, DRATINI
 
-	db GROUP_OLIVINE_PORT, MAP_OLIVINE_PORT
-	db $05 ; encounter rate
-	db 20,TENTACOOL
-	db 15,TENTACOOL
-	db 20,TENTACRUEL
+	map OLIVINE_PORT
+	db 2 percent ; encounter rate
+	db 20, TENTACOOL
+	db 15, TENTACOOL
+	db 20, TENTACRUEL
 
-	db GROUP_ROUTE_30, MAP_ROUTE_30
-	db $05 ; encounter rate
-	db 20,POLIWAG
-	db 15,POLIWAG
-	db 20,POLIWHIRL
+	map ROUTE_30
+	db 2 percent ; encounter rate
+	db 20, POLIWAG
+	db 15, POLIWAG
+	db 20, POLIWHIRL
 
-	db GROUP_ROUTE_31, MAP_ROUTE_31
-	db $05 ; encounter rate
-	db 20,POLIWAG
-	db 15,POLIWAG
-	db 20,POLIWHIRL
+	map ROUTE_31
+	db 2 percent ; encounter rate
+	db 20, POLIWAG
+	db 15, POLIWAG
+	db 20, POLIWHIRL
 
-	db GROUP_ROUTE_32, MAP_ROUTE_32
-	db $0f ; encounter rate
-	db 15,TENTACOOL
-	db 20,QUAGSIRE
-	db 20,TENTACRUEL
+	map ROUTE_32
+	db 6 percent ; encounter rate
+	db 15, TENTACOOL
+	db 20, QUAGSIRE
+	db 20, TENTACRUEL
 
-	db GROUP_ROUTE_34, MAP_ROUTE_34
-	db $0f ; encounter rate
-	db 20,TENTACOOL
-	db 15,TENTACOOL
-	db 20,TENTACRUEL
+	map ROUTE_34
+	db 6 percent ; encounter rate
+	db 20, TENTACOOL
+	db 15, TENTACOOL
+	db 20, TENTACRUEL
 
-	db GROUP_ROUTE_35, MAP_ROUTE_35
-	db $0a ; encounter rate
-	db 20,PSYDUCK
-	db 15,PSYDUCK
-	db 20,GOLDUCK
+	map ROUTE_35
+	db 4 percent ; encounter rate
+	db 20, PSYDUCK
+	db 15, PSYDUCK
+	db 20, GOLDUCK
 
-	db GROUP_ROUTE_40, MAP_ROUTE_40
-	db $0f ; encounter rate
-	db 20,TENTACOOL
-	db 15,TENTACOOL
-	db 20,TENTACRUEL
+	map ROUTE_40
+	db 6 percent ; encounter rate
+	db 20, TENTACOOL
+	db 15, TENTACOOL
+	db 20, TENTACRUEL
 
-	db GROUP_ROUTE_41, MAP_ROUTE_41
-	db $0f ; encounter rate
-	db 20,TENTACOOL
-	db 20,TENTACRUEL
-	db 20,MANTINE
+	map ROUTE_41
+	db 6 percent ; encounter rate
+	db 20, TENTACOOL
+	db 20, TENTACRUEL
+	db 20, MANTINE
 
-	db GROUP_ROUTE_42, MAP_ROUTE_42
-	db $0a ; encounter rate
-	db 20,GOLDEEN
-	db 15,GOLDEEN
-	db 20,SEAKING
+	map ROUTE_42
+	db 4 percent ; encounter rate
+	db 20, GOLDEEN
+	db 15, GOLDEEN
+	db 20, SEAKING
 
-	db GROUP_ROUTE_43, MAP_ROUTE_43
-	db $05 ; encounter rate
-	db 20,MAGIKARP
-	db 15,MAGIKARP
-	db 10,MAGIKARP
+	map ROUTE_43
+	db 2 percent ; encounter rate
+	db 20, MAGIKARP
+	db 15, MAGIKARP
+	db 10, MAGIKARP
 
-	db GROUP_ROUTE_44, MAP_ROUTE_44
-	db $05 ; encounter rate
-	db 25,POLIWAG
-	db 20,POLIWAG
-	db 25,POLIWHIRL
+	map ROUTE_44
+	db 2 percent ; encounter rate
+	db 25, POLIWAG
+	db 20, POLIWAG
+	db 25, POLIWHIRL
 
-	db GROUP_ROUTE_45, MAP_ROUTE_45
-	db $05 ; encounter rate
-	db 20,MAGIKARP
-	db 15,MAGIKARP
-	db 5,MAGIKARP
+	map ROUTE_45
+	db 2 percent ; encounter rate
+	db 20, MAGIKARP
+	db 15, MAGIKARP
+	db 5, MAGIKARP
 
-	db GROUP_NEW_BARK_TOWN, MAP_NEW_BARK_TOWN
-	db $0f ; encounter rate
-	db 20,TENTACOOL
-	db 15,TENTACOOL
-	db 20,TENTACRUEL
+	map NEW_BARK_TOWN
+	db 6 percent ; encounter rate
+	db 20, TENTACOOL
+	db 15, TENTACOOL
+	db 20, TENTACRUEL
 
-	db GROUP_CHERRYGROVE_CITY, MAP_CHERRYGROVE_CITY
-	db $0f ; encounter rate
-	db 20,TENTACOOL
-	db 15,TENTACOOL
-	db 20,TENTACRUEL
+	map CHERRYGROVE_CITY
+	db 6 percent ; encounter rate
+	db 20, TENTACOOL
+	db 15, TENTACOOL
+	db 20, TENTACRUEL
 
-	db GROUP_VIOLET_CITY, MAP_VIOLET_CITY
-	db $05 ; encounter rate
-	db 20,POLIWAG
-	db 15,POLIWAG
-	db 20,POLIWHIRL
+	map VIOLET_CITY
+	db 2 percent ; encounter rate
+	db 20, POLIWAG
+	db 15, POLIWAG
+	db 20, POLIWHIRL
 
-	db GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY
-	db $0f ; encounter rate
-	db 20,TENTACOOL
-	db 15,TENTACOOL
-	db 20,TENTACRUEL
+	map CIANWOOD_CITY
+	db 6 percent ; encounter rate
+	db 20, TENTACOOL
+	db 15, TENTACOOL
+	db 20, TENTACRUEL
 
-	db GROUP_OLIVINE_CITY, MAP_OLIVINE_CITY
-	db $0f ; encounter rate
-	db 20,TENTACOOL
-	db 15,TENTACOOL
-	db 20,TENTACRUEL
+	map OLIVINE_CITY
+	db 6 percent ; encounter rate
+	db 20, TENTACOOL
+	db 15, TENTACOOL
+	db 20, TENTACRUEL
 
-	db GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY
-	db $05 ; encounter rate
-	db 20,POLIWAG
-	db 15,POLIWAG
-	db 20,POLIWHIRL
+	map ECRUTEAK_CITY
+	db 2 percent ; encounter rate
+	db 20, POLIWAG
+	db 15, POLIWAG
+	db 20, POLIWHIRL
 
-	db GROUP_LAKE_OF_RAGE, MAP_LAKE_OF_RAGE
-	db $0f ; encounter rate
-	db 15,MAGIKARP
-	db 10,MAGIKARP
-	db 15,GYARADOS
+	map LAKE_OF_RAGE
+	db 6 percent ; encounter rate
+	db 15, MAGIKARP
+	db 10, MAGIKARP
+	db 15, GYARADOS
 
-	db GROUP_BLACKTHORN_CITY, MAP_BLACKTHORN_CITY
-	db $0a ; encounter rate
-	db 15,MAGIKARP
-	db 10,MAGIKARP
-	db 5,MAGIKARP
+	map BLACKTHORN_CITY
+	db 4 percent ; encounter rate
+	db 15, MAGIKARP
+	db 10, MAGIKARP
+	db 5, MAGIKARP
 
-	db GROUP_SILVER_CAVE_OUTSIDE, MAP_SILVER_CAVE_OUTSIDE
-	db $05 ; encounter rate
-	db 35,POLIWHIRL
-	db 40,POLIWHIRL
-	db 35,POLIWAG
+	map SILVER_CAVE_OUTSIDE
+	db 2 percent ; encounter rate
+	db 35, POLIWHIRL
+	db 40, POLIWHIRL
+	db 35, POLIWAG
 
-	db $ff ; end
+	db -1 ; end
--- a/data/wild/kanto_grass.asm
+++ b/data/wild/kanto_grass.asm
@@ -1,813 +1,813 @@
 ; Kanto Pokémon in grass
 
-	db GROUP_DIGLETTS_CAVE, MAP_DIGLETTS_CAVE
-	db $0a,$05,$14 ; encounter rates: morn/day/nite
+	map DIGLETTS_CAVE
+	db 4 percent, 2 percent, 8 percent ; encounter rates: morn/day/nite
 	; morn
-	db 3,DIGLETT
-	db 6,DIGLETT
-	db 12,DIGLETT
-	db 24,DIGLETT
-	db 24,DUGTRIO
-	db 24,DUGTRIO
-	db 24,DUGTRIO
+	db 3, DIGLETT
+	db 6, DIGLETT
+	db 12, DIGLETT
+	db 24, DIGLETT
+	db 24, DUGTRIO
+	db 24, DUGTRIO
+	db 24, DUGTRIO
 	; day
-	db 2,DIGLETT
-	db 4,DIGLETT
-	db 8,DIGLETT
-	db 16,DIGLETT
-	db 16,DUGTRIO
-	db 16,DUGTRIO
-	db 16,DUGTRIO
+	db 2, DIGLETT
+	db 4, DIGLETT
+	db 8, DIGLETT
+	db 16, DIGLETT
+	db 16, DUGTRIO
+	db 16, DUGTRIO
+	db 16, DUGTRIO
 	; nite
-	db 4,DIGLETT
-	db 8,DIGLETT
-	db 16,DIGLETT
-	db 32,DIGLETT
-	db 32,DUGTRIO
-	db 32,DUGTRIO
-	db 32,DUGTRIO
+	db 4, DIGLETT
+	db 8, DIGLETT
+	db 16, DIGLETT
+	db 32, DIGLETT
+	db 32, DUGTRIO
+	db 32, DUGTRIO
+	db 32, DUGTRIO
 
-	db GROUP_MOUNT_MOON, MAP_MOUNT_MOON
-	db $0f,$0f,$0f ; encounter rates: morn/day/nite
+	map MOUNT_MOON
+	db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite
 	; morn
-	db 6,ZUBAT
-	db 8,GEODUDE
-	db 8,SANDSHREW
-	db 12,PARAS
-	db 10,GEODUDE
-	db 8,CLEFAIRY
-	db 8,CLEFAIRY
+	db 6, ZUBAT
+	db 8, GEODUDE
+	db 8, SANDSHREW
+	db 12, PARAS
+	db 10, GEODUDE
+	db 8, CLEFAIRY
+	db 8, CLEFAIRY
 	; day
-	db 6,ZUBAT
-	db 8,GEODUDE
-	db 8,SANDSHREW
-	db 12,PARAS
-	db 10,GEODUDE
-	db 8,CLEFAIRY
-	db 8,CLEFAIRY
+	db 6, ZUBAT
+	db 8, GEODUDE
+	db 8, SANDSHREW
+	db 12, PARAS
+	db 10, GEODUDE
+	db 8, CLEFAIRY
+	db 8, CLEFAIRY
 	; nite
-	db 6,ZUBAT
-	db 8,GEODUDE
-	db 8,CLEFAIRY
-	db 12,PARAS
-	db 10,GEODUDE
-	db 12,CLEFAIRY
-	db 12,CLEFAIRY
+	db 6, ZUBAT
+	db 8, GEODUDE
+	db 8, CLEFAIRY
+	db 12, PARAS
+	db 10, GEODUDE
+	db 12, CLEFAIRY
+	db 12, CLEFAIRY
 
-	db GROUP_ROCK_TUNNEL_1F, MAP_ROCK_TUNNEL_1F
-	db $0f,$0f,$0f ; encounter rates: morn/day/nite
+	map ROCK_TUNNEL_1F
+	db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite
 	; morn
-	db 10,CUBONE
-	db 11,GEODUDE
-	db 12,MACHOP
-	db 12,ZUBAT
-	db 15,MACHOKE
-	db 12,MAROWAK
-	db 12,MAROWAK
+	db 10, CUBONE
+	db 11, GEODUDE
+	db 12, MACHOP
+	db 12, ZUBAT
+	db 15, MACHOKE
+	db 12, MAROWAK
+	db 12, MAROWAK
 	; day
-	db 10,CUBONE
-	db 11,GEODUDE
-	db 12,MACHOP
-	db 12,ZUBAT
-	db 15,MACHOKE
-	db 12,MAROWAK
-	db 12,MAROWAK
+	db 10, CUBONE
+	db 11, GEODUDE
+	db 12, MACHOP
+	db 12, ZUBAT
+	db 15, MACHOKE
+	db 12, MAROWAK
+	db 12, MAROWAK
 	; nite
-	db 12,ZUBAT
-	db 11,GEODUDE
-	db 12,GEODUDE
-	db 17,HAUNTER
-	db 15,ZUBAT
-	db 15,ZUBAT
-	db 15,ZUBAT
+	db 12, ZUBAT
+	db 11, GEODUDE
+	db 12, GEODUDE
+	db 17, HAUNTER
+	db 15, ZUBAT
+	db 15, ZUBAT
+	db 15, ZUBAT
 
-	db GROUP_ROCK_TUNNEL_B1F, MAP_ROCK_TUNNEL_B1F
-	db $0f,$0f,$0f ; encounter rates: morn/day/nite
+	map ROCK_TUNNEL_B1F
+	db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite
 	; morn
-	db 12,CUBONE
-	db 14,GEODUDE
-	db 16,ONIX
-	db 12,ZUBAT
-	db 15,MAROWAK
-	db 15,KANGASKHAN
-	db 15,KANGASKHAN
+	db 12, CUBONE
+	db 14, GEODUDE
+	db 16, ONIX
+	db 12, ZUBAT
+	db 15, MAROWAK
+	db 15, KANGASKHAN
+	db 15, KANGASKHAN
 	; day
-	db 12,CUBONE
-	db 14,GEODUDE
-	db 16,ONIX
-	db 12,ZUBAT
-	db 15,MAROWAK
-	db 15,KANGASKHAN
-	db 15,KANGASKHAN
+	db 12, CUBONE
+	db 14, GEODUDE
+	db 16, ONIX
+	db 12, ZUBAT
+	db 15, MAROWAK
+	db 15, KANGASKHAN
+	db 15, KANGASKHAN
 	; nite
-	db 12,ZUBAT
-	db 14,GEODUDE
-	db 16,ONIX
-	db 15,ZUBAT
-	db 15,HAUNTER
-	db 15,GOLBAT
-	db 15,GOLBAT
+	db 12, ZUBAT
+	db 14, GEODUDE
+	db 16, ONIX
+	db 15, ZUBAT
+	db 15, HAUNTER
+	db 15, GOLBAT
+	db 15, GOLBAT
 
-	db GROUP_VICTORY_ROAD, MAP_VICTORY_ROAD
-	db $0f,$0f,$0f ; encounter rates: morn/day/nite
+	map VICTORY_ROAD
+	db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite
 	; morn
-	db 34,GRAVELER
-	db 32,RHYHORN
-	db 33,ONIX
-	db 34,GOLBAT
-	db 35,SANDSLASH
-	db 35,RHYDON
-	db 35,RHYDON
+	db 34, GRAVELER
+	db 32, RHYHORN
+	db 33, ONIX
+	db 34, GOLBAT
+	db 35, SANDSLASH
+	db 35, RHYDON
+	db 35, RHYDON
 	; day
-	db 34,GRAVELER
-	db 32,RHYHORN
-	db 33,ONIX
-	db 34,GOLBAT
-	db 35,SANDSLASH
-	db 35,RHYDON
-	db 35,RHYDON
+	db 34, GRAVELER
+	db 32, RHYHORN
+	db 33, ONIX
+	db 34, GOLBAT
+	db 35, SANDSLASH
+	db 35, RHYDON
+	db 35, RHYDON
 	; nite
-	db 34,GOLBAT
-	db 34,GRAVELER
-	db 32,ONIX
-	db 36,GRAVELER
-	db 38,GRAVELER
-	db 40,GRAVELER
-	db 40,GRAVELER
+	db 34, GOLBAT
+	db 34, GRAVELER
+	db 32, ONIX
+	db 36, GRAVELER
+	db 38, GRAVELER
+	db 40, GRAVELER
+	db 40, GRAVELER
 
-	db GROUP_TOHJO_FALLS, MAP_TOHJO_FALLS
-	db $0f,$0f,$0f ; encounter rates: morn/day/nite
+	map TOHJO_FALLS
+	db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite
 	; morn
-	db 22,ZUBAT
-	db 22,RATICATE
-	db 24,GOLBAT
-	db 21,SLOWPOKE
-	db 20,RATTATA
-	db 23,SLOWPOKE
-	db 23,SLOWPOKE
+	db 22, ZUBAT
+	db 22, RATICATE
+	db 24, GOLBAT
+	db 21, SLOWPOKE
+	db 20, RATTATA
+	db 23, SLOWPOKE
+	db 23, SLOWPOKE
 	; day
-	db 22,ZUBAT
-	db 22,RATICATE
-	db 24,GOLBAT
-	db 21,SLOWPOKE
-	db 20,RATTATA
-	db 23,SLOWPOKE
-	db 23,SLOWPOKE
+	db 22, ZUBAT
+	db 22, RATICATE
+	db 24, GOLBAT
+	db 21, SLOWPOKE
+	db 20, RATTATA
+	db 23, SLOWPOKE
+	db 23, SLOWPOKE
 	; nite
-	db 22,ZUBAT
-	db 22,RATICATE
-	db 24,GOLBAT
-	db 21,SLOWPOKE
-	db 20,RATTATA
-	db 23,SLOWPOKE
-	db 23,SLOWPOKE
+	db 22, ZUBAT
+	db 22, RATICATE
+	db 24, GOLBAT
+	db 21, SLOWPOKE
+	db 20, RATTATA
+	db 23, SLOWPOKE
+	db 23, SLOWPOKE
 
-	db GROUP_ROUTE_1, MAP_ROUTE_1
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_1
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 2,PIDGEY
-	db 2,RATTATA
-	db 3,SENTRET
-	db 3,PIDGEY
-	db 6,FURRET
-	db 4,PIDGEY
-	db 4,PIDGEY
+	db 2, PIDGEY
+	db 2, RATTATA
+	db 3, SENTRET
+	db 3, PIDGEY
+	db 6, FURRET
+	db 4, PIDGEY
+	db 4, PIDGEY
 	; day
-	db 2,PIDGEY
-	db 2,RATTATA
-	db 3,SENTRET
-	db 3,PIDGEY
-	db 6,FURRET
-	db 4,PIDGEY
-	db 4,PIDGEY
+	db 2, PIDGEY
+	db 2, RATTATA
+	db 3, SENTRET
+	db 3, PIDGEY
+	db 6, FURRET
+	db 4, PIDGEY
+	db 4, PIDGEY
 	; nite
-	db 2,HOOTHOOT
-	db 2,RATTATA
-	db 3,RATTATA
-	db 3,HOOTHOOT
-	db 6,RATICATE
-	db 4,HOOTHOOT
-	db 4,HOOTHOOT
+	db 2, HOOTHOOT
+	db 2, RATTATA
+	db 3, RATTATA
+	db 3, HOOTHOOT
+	db 6, RATICATE
+	db 4, HOOTHOOT
+	db 4, HOOTHOOT
 
-	db GROUP_ROUTE_2, MAP_ROUTE_2
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_2
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 3,CATERPIE
-	db 3,LEDYBA
-	db 5,PIDGEY
-	db 7,BUTTERFREE
-	db 7,LEDIAN
-	db 4,PIKACHU
-	db 4,PIKACHU
+	db 3, CATERPIE
+	db 3, LEDYBA
+	db 5, PIDGEY
+	db 7, BUTTERFREE
+	db 7, LEDIAN
+	db 4, PIKACHU
+	db 4, PIKACHU
 	; day
-	db 3,CATERPIE
-	db 3,PIDGEY
-	db 5,PIDGEY
-	db 7,BUTTERFREE
-	db 7,PIDGEOTTO
-	db 4,PIKACHU
-	db 4,PIKACHU
+	db 3, CATERPIE
+	db 3, PIDGEY
+	db 5, PIDGEY
+	db 7, BUTTERFREE
+	db 7, PIDGEOTTO
+	db 4, PIKACHU
+	db 4, PIKACHU
 	; nite
-	db 3,HOOTHOOT
-	db 3,SPINARAK
-	db 5,HOOTHOOT
-	db 7,NOCTOWL
-	db 7,ARIADOS
-	db 4,NOCTOWL
-	db 4,NOCTOWL
+	db 3, HOOTHOOT
+	db 3, SPINARAK
+	db 5, HOOTHOOT
+	db 7, NOCTOWL
+	db 7, ARIADOS
+	db 4, NOCTOWL
+	db 4, NOCTOWL
 
-	db GROUP_ROUTE_3, MAP_ROUTE_3
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_3
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 5,SPEAROW
-	db 5,RATTATA
-	db 8,EKANS
-	db 10,RATICATE
-	db 10,ARBOK
-	db 10,SANDSHREW
-	db 10,SANDSHREW
+	db 5, SPEAROW
+	db 5, RATTATA
+	db 8, EKANS
+	db 10, RATICATE
+	db 10, ARBOK
+	db 10, SANDSHREW
+	db 10, SANDSHREW
 	; day
-	db 5,SPEAROW
-	db 5,RATTATA
-	db 8,EKANS
-	db 10,RATICATE
-	db 10,ARBOK
-	db 10,SANDSHREW
-	db 10,SANDSHREW
+	db 5, SPEAROW
+	db 5, RATTATA
+	db 8, EKANS
+	db 10, RATICATE
+	db 10, ARBOK
+	db 10, SANDSHREW
+	db 10, SANDSHREW
 	; nite
-	db 5,RATTATA
-	db 10,RATTATA
-	db 10,RATICATE
-	db 6,ZUBAT
-	db 5,RATTATA
-	db 6,CLEFAIRY
-	db 6,CLEFAIRY
+	db 5, RATTATA
+	db 10, RATTATA
+	db 10, RATICATE
+	db 6, ZUBAT
+	db 5, RATTATA
+	db 6, CLEFAIRY
+	db 6, CLEFAIRY
 
-	db GROUP_ROUTE_4, MAP_ROUTE_4
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_4
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 5,SPEAROW
-	db 5,RATTATA
-	db 8,EKANS
-	db 10,RATICATE
-	db 10,ARBOK
-	db 10,SANDSHREW
-	db 10,SANDSHREW
+	db 5, SPEAROW
+	db 5, RATTATA
+	db 8, EKANS
+	db 10, RATICATE
+	db 10, ARBOK
+	db 10, SANDSHREW
+	db 10, SANDSHREW
 	; day
-	db 5,SPEAROW
-	db 5,RATTATA
-	db 8,EKANS
-	db 10,RATICATE
-	db 10,ARBOK
-	db 10,SANDSHREW
-	db 10,SANDSHREW
+	db 5, SPEAROW
+	db 5, RATTATA
+	db 8, EKANS
+	db 10, RATICATE
+	db 10, ARBOK
+	db 10, SANDSHREW
+	db 10, SANDSHREW
 	; nite
-	db 5,RATTATA
-	db 10,RATTATA
-	db 10,RATICATE
-	db 6,ZUBAT
-	db 5,RATTATA
-	db 6,CLEFAIRY
-	db 6,CLEFAIRY
+	db 5, RATTATA
+	db 10, RATTATA
+	db 10, RATICATE
+	db 6, ZUBAT
+	db 5, RATTATA
+	db 6, CLEFAIRY
+	db 6, CLEFAIRY
 
-	db GROUP_ROUTE_5, MAP_ROUTE_5
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_5
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 13,PIDGEY
-	db 13,SNUBBULL
-	db 15,PIDGEOTTO
-	db 12,ABRA
-	db 14,JIGGLYPUFF
-	db 14,ABRA
-	db 14,ABRA
+	db 13, PIDGEY
+	db 13, SNUBBULL
+	db 15, PIDGEOTTO
+	db 12, ABRA
+	db 14, JIGGLYPUFF
+	db 14, ABRA
+	db 14, ABRA
 	; day
-	db 13,PIDGEY
-	db 13,SNUBBULL
-	db 15,PIDGEOTTO
-	db 12,ABRA
-	db 14,JIGGLYPUFF
-	db 14,ABRA
-	db 14,ABRA
+	db 13, PIDGEY
+	db 13, SNUBBULL
+	db 15, PIDGEOTTO
+	db 12, ABRA
+	db 14, JIGGLYPUFF
+	db 14, ABRA
+	db 14, ABRA
 	; nite
-	db 13,HOOTHOOT
-	db 13,MEOWTH
-	db 15,NOCTOWL
-	db 12,ABRA
-	db 14,JIGGLYPUFF
-	db 14,ABRA
-	db 14,ABRA
+	db 13, HOOTHOOT
+	db 13, MEOWTH
+	db 15, NOCTOWL
+	db 12, ABRA
+	db 14, JIGGLYPUFF
+	db 14, ABRA
+	db 14, ABRA
 
-	db GROUP_ROUTE_6, MAP_ROUTE_6
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_6
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 13,RATTATA
-	db 13,SNUBBULL
-	db 14,MAGNEMITE
-	db 15,RATICATE
-	db 12,JIGGLYPUFF
-	db 15,GRANBULL
-	db 15,GRANBULL
+	db 13, RATTATA
+	db 13, SNUBBULL
+	db 14, MAGNEMITE
+	db 15, RATICATE
+	db 12, JIGGLYPUFF
+	db 15, GRANBULL
+	db 15, GRANBULL
 	; day
-	db 13,RATTATA
-	db 13,SNUBBULL
-	db 14,MAGNEMITE
-	db 15,RATICATE
-	db 12,JIGGLYPUFF
-	db 15,GRANBULL
-	db 15,GRANBULL
+	db 13, RATTATA
+	db 13, SNUBBULL
+	db 14, MAGNEMITE
+	db 15, RATICATE
+	db 12, JIGGLYPUFF
+	db 15, GRANBULL
+	db 15, GRANBULL
 	; nite
-	db 13,MEOWTH
-	db 13,DROWZEE
-	db 14,MAGNEMITE
-	db 15,PSYDUCK
-	db 12,JIGGLYPUFF
-	db 15,RATICATE
-	db 15,RATICATE
+	db 13, MEOWTH
+	db 13, DROWZEE
+	db 14, MAGNEMITE
+	db 15, PSYDUCK
+	db 12, JIGGLYPUFF
+	db 15, RATICATE
+	db 15, RATICATE
 
-	db GROUP_ROUTE_7, MAP_ROUTE_7
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_7
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 17,RATTATA
-	db 17,SPEAROW
-	db 18,SNUBBULL
-	db 18,RATICATE
-	db 18,JIGGLYPUFF
-	db 16,ABRA
-	db 16,ABRA
+	db 17, RATTATA
+	db 17, SPEAROW
+	db 18, SNUBBULL
+	db 18, RATICATE
+	db 18, JIGGLYPUFF
+	db 16, ABRA
+	db 16, ABRA
 	; day
-	db 17,RATTATA
-	db 17,SPEAROW
-	db 18,SNUBBULL
-	db 18,RATICATE
-	db 18,JIGGLYPUFF
-	db 16,ABRA
-	db 16,ABRA
+	db 17, RATTATA
+	db 17, SPEAROW
+	db 18, SNUBBULL
+	db 18, RATICATE
+	db 18, JIGGLYPUFF
+	db 16, ABRA
+	db 16, ABRA
 	; nite
-	db 17,MEOWTH
-	db 17,MURKROW
-	db 18,HOUNDOUR
-	db 18,PERSIAN
-	db 18,JIGGLYPUFF
-	db 16,ABRA
-	db 16,ABRA
+	db 17, MEOWTH
+	db 17, MURKROW
+	db 18, HOUNDOUR
+	db 18, PERSIAN
+	db 18, JIGGLYPUFF
+	db 16, ABRA
+	db 16, ABRA
 
-	db GROUP_ROUTE_8, MAP_ROUTE_8
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_8
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 17,SNUBBULL
-	db 19,PIDGEOTTO
-	db 16,ABRA
-	db 17,GROWLITHE
-	db 16,JIGGLYPUFF
-	db 18,KADABRA
-	db 18,KADABRA
+	db 17, SNUBBULL
+	db 19, PIDGEOTTO
+	db 16, ABRA
+	db 17, GROWLITHE
+	db 16, JIGGLYPUFF
+	db 18, KADABRA
+	db 18, KADABRA
 	; day
-	db 17,SNUBBULL
-	db 19,PIDGEOTTO
-	db 16,ABRA
-	db 17,GROWLITHE
-	db 16,JIGGLYPUFF
-	db 18,KADABRA
-	db 18,KADABRA
+	db 17, SNUBBULL
+	db 19, PIDGEOTTO
+	db 16, ABRA
+	db 17, GROWLITHE
+	db 16, JIGGLYPUFF
+	db 18, KADABRA
+	db 18, KADABRA
 	; nite
-	db 17,MEOWTH
-	db 20,NOCTOWL
-	db 16,ABRA
-	db 17,HAUNTER
-	db 16,JIGGLYPUFF
-	db 18,KADABRA
-	db 18,KADABRA
+	db 17, MEOWTH
+	db 20, NOCTOWL
+	db 16, ABRA
+	db 17, HAUNTER
+	db 16, JIGGLYPUFF
+	db 18, KADABRA
+	db 18, KADABRA
 
-	db GROUP_ROUTE_9, MAP_ROUTE_9
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_9
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 15,RATTATA
-	db 15,SPEAROW
-	db 15,RATICATE
-	db 15,FEAROW
-	db 15,FEAROW
-	db 18,MAROWAK
-	db 18,MAROWAK
+	db 15, RATTATA
+	db 15, SPEAROW
+	db 15, RATICATE
+	db 15, FEAROW
+	db 15, FEAROW
+	db 18, MAROWAK
+	db 18, MAROWAK
 	; day
-	db 15,RATTATA
-	db 15,SPEAROW
-	db 15,RATICATE
-	db 15,FEAROW
-	db 15,FEAROW
-	db 18,MAROWAK
-	db 18,MAROWAK
+	db 15, RATTATA
+	db 15, SPEAROW
+	db 15, RATICATE
+	db 15, FEAROW
+	db 15, FEAROW
+	db 18, MAROWAK
+	db 18, MAROWAK
 	; nite
-	db 15,RATTATA
-	db 15,VENONAT
-	db 15,RATICATE
-	db 15,VENOMOTH
-	db 15,ZUBAT
-	db 18,RATICATE
-	db 18,RATICATE
+	db 15, RATTATA
+	db 15, VENONAT
+	db 15, RATICATE
+	db 15, VENOMOTH
+	db 15, ZUBAT
+	db 18, RATICATE
+	db 18, RATICATE
 
-	db GROUP_ROUTE_10_NORTH, MAP_ROUTE_10_NORTH
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_10_NORTH
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 15,SPEAROW
-	db 17,VOLTORB
-	db 15,RATICATE
-	db 15,FEAROW
-	db 15,MAROWAK
-	db 16,ELECTABUZZ
-	db 16,ELECTABUZZ
+	db 15, SPEAROW
+	db 17, VOLTORB
+	db 15, RATICATE
+	db 15, FEAROW
+	db 15, MAROWAK
+	db 16, ELECTABUZZ
+	db 16, ELECTABUZZ
 	; day
-	db 15,SPEAROW
-	db 17,VOLTORB
-	db 15,RATICATE
-	db 15,FEAROW
-	db 15,MAROWAK
-	db 18,ELECTABUZZ
-	db 18,ELECTABUZZ
+	db 15, SPEAROW
+	db 17, VOLTORB
+	db 15, RATICATE
+	db 15, FEAROW
+	db 15, MAROWAK
+	db 18, ELECTABUZZ
+	db 18, ELECTABUZZ
 	; nite
-	db 15,VENONAT
-	db 17,VOLTORB
-	db 15,RATICATE
-	db 15,VENOMOTH
-	db 15,ZUBAT
-	db 16,ELECTABUZZ
-	db 16,ELECTABUZZ
+	db 15, VENONAT
+	db 17, VOLTORB
+	db 15, RATICATE
+	db 15, VENOMOTH
+	db 15, ZUBAT
+	db 16, ELECTABUZZ
+	db 16, ELECTABUZZ
 
-	db GROUP_ROUTE_11, MAP_ROUTE_11
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_11
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 14,HOPPIP
-	db 13,RATICATE
-	db 15,MAGNEMITE
-	db 16,PIDGEOTTO
-	db 16,RATTATA
-	db 16,HOPPIP
-	db 16,HOPPIP
+	db 14, HOPPIP
+	db 13, RATICATE
+	db 15, MAGNEMITE
+	db 16, PIDGEOTTO
+	db 16, RATTATA
+	db 16, HOPPIP
+	db 16, HOPPIP
 	; day
-	db 14,HOPPIP
-	db 13,RATICATE
-	db 15,MAGNEMITE
-	db 16,PIDGEOTTO
-	db 16,RATTATA
-	db 16,HOPPIP
-	db 16,HOPPIP
+	db 14, HOPPIP
+	db 13, RATICATE
+	db 15, MAGNEMITE
+	db 16, PIDGEOTTO
+	db 16, RATTATA
+	db 16, HOPPIP
+	db 16, HOPPIP
 	; nite
-	db 14,DROWZEE
-	db 13,MEOWTH
-	db 15,MAGNEMITE
-	db 16,NOCTOWL
-	db 16,RATICATE
-	db 16,HYPNO
-	db 16,HYPNO
+	db 14, DROWZEE
+	db 13, MEOWTH
+	db 15, MAGNEMITE
+	db 16, NOCTOWL
+	db 16, RATICATE
+	db 16, HYPNO
+	db 16, HYPNO
 
-	db GROUP_ROUTE_13, MAP_ROUTE_13
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_13
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 23,NIDORINO
-	db 23,NIDORINA
-	db 25,PIDGEOTTO
-	db 25,HOPPIP
-	db 27,HOPPIP
-	db 27,HOPPIP
-	db 25,CHANSEY
+	db 23, NIDORINO
+	db 23, NIDORINA
+	db 25, PIDGEOTTO
+	db 25, HOPPIP
+	db 27, HOPPIP
+	db 27, HOPPIP
+	db 25, CHANSEY
 	; day
-	db 23,NIDORINO
-	db 23,NIDORINA
-	db 25,PIDGEOTTO
-	db 25,HOPPIP
-	db 27,HOPPIP
-	db 27,HOPPIP
-	db 25,CHANSEY
+	db 23, NIDORINO
+	db 23, NIDORINA
+	db 25, PIDGEOTTO
+	db 25, HOPPIP
+	db 27, HOPPIP
+	db 27, HOPPIP
+	db 25, CHANSEY
 	; nite
-	db 23,VENONAT
-	db 23,QUAGSIRE
-	db 25,NOCTOWL
-	db 25,VENOMOTH
-	db 25,QUAGSIRE
-	db 25,QUAGSIRE
-	db 25,CHANSEY
+	db 23, VENONAT
+	db 23, QUAGSIRE
+	db 25, NOCTOWL
+	db 25, VENOMOTH
+	db 25, QUAGSIRE
+	db 25, QUAGSIRE
+	db 25, CHANSEY
 
-	db GROUP_ROUTE_14, MAP_ROUTE_14
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_14
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 26,NIDORINO
-	db 26,NIDORINA
-	db 28,PIDGEOTTO
-	db 28,HOPPIP
-	db 30,SKIPLOOM
-	db 30,SKIPLOOM
-	db 28,CHANSEY
+	db 26, NIDORINO
+	db 26, NIDORINA
+	db 28, PIDGEOTTO
+	db 28, HOPPIP
+	db 30, SKIPLOOM
+	db 30, SKIPLOOM
+	db 28, CHANSEY
 	; day
-	db 26,NIDORINO
-	db 26,NIDORINA
-	db 28,PIDGEOTTO
-	db 28,HOPPIP
-	db 30,SKIPLOOM
-	db 30,SKIPLOOM
-	db 28,CHANSEY
+	db 26, NIDORINO
+	db 26, NIDORINA
+	db 28, PIDGEOTTO
+	db 28, HOPPIP
+	db 30, SKIPLOOM
+	db 30, SKIPLOOM
+	db 28, CHANSEY
 	; nite
-	db 26,VENONAT
-	db 26,QUAGSIRE
-	db 28,NOCTOWL
-	db 28,VENOMOTH
-	db 28,QUAGSIRE
-	db 28,QUAGSIRE
-	db 28,CHANSEY
+	db 26, VENONAT
+	db 26, QUAGSIRE
+	db 28, NOCTOWL
+	db 28, VENOMOTH
+	db 28, QUAGSIRE
+	db 28, QUAGSIRE
+	db 28, CHANSEY
 
-	db GROUP_ROUTE_15, MAP_ROUTE_15
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_15
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 23,NIDORINO
-	db 23,NIDORINA
-	db 25,PIDGEOTTO
-	db 25,HOPPIP
-	db 27,HOPPIP
-	db 27,HOPPIP
-	db 25,CHANSEY
+	db 23, NIDORINO
+	db 23, NIDORINA
+	db 25, PIDGEOTTO
+	db 25, HOPPIP
+	db 27, HOPPIP
+	db 27, HOPPIP
+	db 25, CHANSEY
 	; day
-	db 23,NIDORINO
-	db 23,NIDORINA
-	db 25,PIDGEOTTO
-	db 25,HOPPIP
-	db 27,HOPPIP
-	db 27,HOPPIP
-	db 25,CHANSEY
+	db 23, NIDORINO
+	db 23, NIDORINA
+	db 25, PIDGEOTTO
+	db 25, HOPPIP
+	db 27, HOPPIP
+	db 27, HOPPIP
+	db 25, CHANSEY
 	; nite
-	db 23,VENONAT
-	db 23,QUAGSIRE
-	db 25,NOCTOWL
-	db 25,VENOMOTH
-	db 25,QUAGSIRE
-	db 25,QUAGSIRE
-	db 25,CHANSEY
+	db 23, VENONAT
+	db 23, QUAGSIRE
+	db 25, NOCTOWL
+	db 25, VENOMOTH
+	db 25, QUAGSIRE
+	db 25, QUAGSIRE
+	db 25, CHANSEY
 
-	db GROUP_ROUTE_16, MAP_ROUTE_16
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_16
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 26,GRIMER
-	db 27,FEAROW
-	db 28,GRIMER
-	db 29,FEAROW
-	db 29,FEAROW
-	db 30,MUK
-	db 30,MUK
+	db 26, GRIMER
+	db 27, FEAROW
+	db 28, GRIMER
+	db 29, FEAROW
+	db 29, FEAROW
+	db 30, MUK
+	db 30, MUK
 	; day
-	db 26,GRIMER
-	db 27,FEAROW
-	db 28,GRIMER
-	db 29,FEAROW
-	db 29,SLUGMA
-	db 30,MUK
-	db 30,MUK
+	db 26, GRIMER
+	db 27, FEAROW
+	db 28, GRIMER
+	db 29, FEAROW
+	db 29, SLUGMA
+	db 30, MUK
+	db 30, MUK
 	; nite
-	db 26,GRIMER
-	db 27,GRIMER
-	db 28,GRIMER
-	db 29,MURKROW
-	db 29,MURKROW
-	db 30,MUK
-	db 30,MUK
+	db 26, GRIMER
+	db 27, GRIMER
+	db 28, GRIMER
+	db 29, MURKROW
+	db 29, MURKROW
+	db 30, MUK
+	db 30, MUK
 
-	db GROUP_ROUTE_17, MAP_ROUTE_17
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_17
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 30,FEAROW
-	db 29,GRIMER
-	db 31,GRIMER
-	db 32,FEAROW
-	db 33,GRIMER
-	db 33,MUK
-	db 33,MUK
+	db 30, FEAROW
+	db 29, GRIMER
+	db 31, GRIMER
+	db 32, FEAROW
+	db 33, GRIMER
+	db 33, MUK
+	db 33, MUK
 	; day
-	db 30,FEAROW
-	db 29,SLUGMA
-	db 29,GRIMER
-	db 32,FEAROW
-	db 32,SLUGMA
-	db 33,MUK
-	db 33,MUK
+	db 30, FEAROW
+	db 29, SLUGMA
+	db 29, GRIMER
+	db 32, FEAROW
+	db 32, SLUGMA
+	db 33, MUK
+	db 33, MUK
 	; nite
-	db 30,GRIMER
-	db 29,GRIMER
-	db 31,GRIMER
-	db 32,GRIMER
-	db 33,GRIMER
-	db 33,MUK
-	db 33,MUK
+	db 30, GRIMER
+	db 29, GRIMER
+	db 31, GRIMER
+	db 32, GRIMER
+	db 33, GRIMER
+	db 33, MUK
+	db 33, MUK
 
-	db GROUP_ROUTE_18, MAP_ROUTE_18
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_18
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 26,GRIMER
-	db 27,FEAROW
-	db 28,GRIMER
-	db 29,FEAROW
-	db 29,FEAROW
-	db 30,MUK
-	db 30,MUK
+	db 26, GRIMER
+	db 27, FEAROW
+	db 28, GRIMER
+	db 29, FEAROW
+	db 29, FEAROW
+	db 30, MUK
+	db 30, MUK
 	; day
-	db 26,GRIMER
-	db 27,FEAROW
-	db 28,GRIMER
-	db 29,FEAROW
-	db 29,SLUGMA
-	db 30,MUK
-	db 30,MUK
+	db 26, GRIMER
+	db 27, FEAROW
+	db 28, GRIMER
+	db 29, FEAROW
+	db 29, SLUGMA
+	db 30, MUK
+	db 30, MUK
 	; nite
-	db 26,GRIMER
-	db 27,GRIMER
-	db 28,GRIMER
-	db 29,GRIMER
-	db 29,GRIMER
-	db 30,MUK
-	db 30,MUK
+	db 26, GRIMER
+	db 27, GRIMER
+	db 28, GRIMER
+	db 29, GRIMER
+	db 29, GRIMER
+	db 30, MUK
+	db 30, MUK
 
-	db GROUP_ROUTE_21, MAP_ROUTE_21
-	db $0f,$0f,$0f ; encounter rates: morn/day/nite
+	map ROUTE_21
+	db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite
 	; morn
-	db 30,TANGELA
-	db 25,RATTATA
-	db 35,TANGELA
-	db 20,RATICATE
-	db 30,MR__MIME
-	db 28,MR__MIME
-	db 28,MR__MIME
+	db 30, TANGELA
+	db 25, RATTATA
+	db 35, TANGELA
+	db 20, RATICATE
+	db 30, MR__MIME
+	db 28, MR__MIME
+	db 28, MR__MIME
 	; day
-	db 30,TANGELA
-	db 25,RATTATA
-	db 35,TANGELA
-	db 20,RATICATE
-	db 28,MR__MIME
-	db 30,MR__MIME
-	db 30,MR__MIME
+	db 30, TANGELA
+	db 25, RATTATA
+	db 35, TANGELA
+	db 20, RATICATE
+	db 28, MR__MIME
+	db 30, MR__MIME
+	db 30, MR__MIME
 	; nite
-	db 30,TANGELA
-	db 25,RATTATA
-	db 35,TANGELA
-	db 20,RATICATE
-	db 30,TANGELA
-	db 28,TANGELA
-	db 28,TANGELA
+	db 30, TANGELA
+	db 25, RATTATA
+	db 35, TANGELA
+	db 20, RATICATE
+	db 30, TANGELA
+	db 28, TANGELA
+	db 28, TANGELA
 
-	db GROUP_ROUTE_22, MAP_ROUTE_22
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_22
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 3,RATTATA
-	db 3,SPEAROW
-	db 5,SPEAROW
-	db 4,DODUO
-	db 6,PONYTA
-	db 7,FEAROW
-	db 7,FEAROW
+	db 3, RATTATA
+	db 3, SPEAROW
+	db 5, SPEAROW
+	db 4, DODUO
+	db 6, PONYTA
+	db 7, FEAROW
+	db 7, FEAROW
 	; day
-	db 3,RATTATA
-	db 3,SPEAROW
-	db 5,SPEAROW
-	db 4,DODUO
-	db 6,PONYTA
-	db 7,FEAROW
-	db 7,FEAROW
+	db 3, RATTATA
+	db 3, SPEAROW
+	db 5, SPEAROW
+	db 4, DODUO
+	db 6, PONYTA
+	db 7, FEAROW
+	db 7, FEAROW
 	; nite
-	db 3,RATTATA
-	db 3,POLIWAG
-	db 5,RATTATA
-	db 4,POLIWAG
-	db 6,RATTATA
-	db 7,RATTATA
-	db 7,RATTATA
+	db 3, RATTATA
+	db 3, POLIWAG
+	db 5, RATTATA
+	db 4, POLIWAG
+	db 6, RATTATA
+	db 7, RATTATA
+	db 7, RATTATA
 
-	db GROUP_ROUTE_24, MAP_ROUTE_24
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_24
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 8,CATERPIE
-	db 10,CATERPIE
-	db 12,METAPOD
-	db 12,ABRA
-	db 10,BELLSPROUT
-	db 14,BUTTERFREE
-	db 14,BUTTERFREE
+	db 8, CATERPIE
+	db 10, CATERPIE
+	db 12, METAPOD
+	db 12, ABRA
+	db 10, BELLSPROUT
+	db 14, BUTTERFREE
+	db 14, BUTTERFREE
 	; day
-	db 8,CATERPIE
-	db 12,SUNKERN
-	db 10,CATERPIE
-	db 12,ABRA
-	db 10,BELLSPROUT
-	db 14,BUTTERFREE
-	db 14,BUTTERFREE
+	db 8, CATERPIE
+	db 12, SUNKERN
+	db 10, CATERPIE
+	db 12, ABRA
+	db 10, BELLSPROUT
+	db 14, BUTTERFREE
+	db 14, BUTTERFREE
 	; nite
-	db 10,VENONAT
-	db 10,ODDISH
-	db 12,ODDISH
-	db 12,ABRA
-	db 10,BELLSPROUT
-	db 14,GLOOM
-	db 14,GLOOM
+	db 10, VENONAT
+	db 10, ODDISH
+	db 12, ODDISH
+	db 12, ABRA
+	db 10, BELLSPROUT
+	db 14, GLOOM
+	db 14, GLOOM
 
-	db GROUP_ROUTE_25, MAP_ROUTE_25
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_25
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 10,CATERPIE
-	db 10,PIDGEY
-	db 12,PIDGEOTTO
-	db 12,METAPOD
-	db 10,BELLSPROUT
-	db 14,BUTTERFREE
-	db 14,BUTTERFREE
+	db 10, CATERPIE
+	db 10, PIDGEY
+	db 12, PIDGEOTTO
+	db 12, METAPOD
+	db 10, BELLSPROUT
+	db 14, BUTTERFREE
+	db 14, BUTTERFREE
 	; day
-	db 10,CATERPIE
-	db 10,PIDGEY
-	db 12,PIDGEOTTO
-	db 12,METAPOD
-	db 10,BELLSPROUT
-	db 14,BUTTERFREE
-	db 14,BUTTERFREE
+	db 10, CATERPIE
+	db 10, PIDGEY
+	db 12, PIDGEOTTO
+	db 12, METAPOD
+	db 10, BELLSPROUT
+	db 14, BUTTERFREE
+	db 14, BUTTERFREE
 	; nite
-	db 10,ODDISH
-	db 10,HOOTHOOT
-	db 10,VENONAT
-	db 12,NOCTOWL
-	db 10,BELLSPROUT
-	db 14,NOCTOWL
-	db 14,NOCTOWL
+	db 10, ODDISH
+	db 10, HOOTHOOT
+	db 10, VENONAT
+	db 12, NOCTOWL
+	db 10, BELLSPROUT
+	db 14, NOCTOWL
+	db 14, NOCTOWL
 
-	db GROUP_ROUTE_26, MAP_ROUTE_26
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_26
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 28,DODUO
-	db 28,SANDSLASH
-	db 32,PONYTA
-	db 30,RATICATE
-	db 30,DODUO
-	db 30,ARBOK
-	db 30,ARBOK
+	db 28, DODUO
+	db 28, SANDSLASH
+	db 32, PONYTA
+	db 30, RATICATE
+	db 30, DODUO
+	db 30, ARBOK
+	db 30, ARBOK
 	; day
-	db 28,DODUO
-	db 28,SANDSLASH
-	db 32,PONYTA
-	db 30,RATICATE
-	db 30,DODUO
-	db 30,ARBOK
-	db 30,ARBOK
+	db 28, DODUO
+	db 28, SANDSLASH
+	db 32, PONYTA
+	db 30, RATICATE
+	db 30, DODUO
+	db 30, ARBOK
+	db 30, ARBOK
 	; nite
-	db 28,NOCTOWL
-	db 28,RATICATE
-	db 32,NOCTOWL
-	db 30,RATICATE
-	db 30,QUAGSIRE
-	db 30,QUAGSIRE
-	db 30,QUAGSIRE
+	db 28, NOCTOWL
+	db 28, RATICATE
+	db 32, NOCTOWL
+	db 30, RATICATE
+	db 30, QUAGSIRE
+	db 30, QUAGSIRE
+	db 30, QUAGSIRE
 
-	db GROUP_ROUTE_27, MAP_ROUTE_27
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_27
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 28,DODUO
-	db 28,ARBOK
-	db 30,RATICATE
-	db 30,DODUO
-	db 32,PONYTA
-	db 30,DODRIO
-	db 30,DODRIO
+	db 28, DODUO
+	db 28, ARBOK
+	db 30, RATICATE
+	db 30, DODUO
+	db 32, PONYTA
+	db 30, DODRIO
+	db 30, DODRIO
 	; day
-	db 28,DODUO
-	db 28,ARBOK
-	db 30,RATICATE
-	db 30,DODUO
-	db 32,PONYTA
-	db 30,DODRIO
-	db 30,DODRIO
+	db 28, DODUO
+	db 28, ARBOK
+	db 30, RATICATE
+	db 30, DODUO
+	db 32, PONYTA
+	db 30, DODRIO
+	db 30, DODRIO
 	; nite
-	db 28,QUAGSIRE
-	db 28,NOCTOWL
-	db 30,RATICATE
-	db 30,QUAGSIRE
-	db 32,NOCTOWL
-	db 32,NOCTOWL
-	db 32,NOCTOWL
+	db 28, QUAGSIRE
+	db 28, NOCTOWL
+	db 30, RATICATE
+	db 30, QUAGSIRE
+	db 32, NOCTOWL
+	db 32, NOCTOWL
+	db 32, NOCTOWL
 
-	db GROUP_ROUTE_28, MAP_ROUTE_28
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_28
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 39,TANGELA
-	db 40,PONYTA
-	db 40,RAPIDASH
-	db 42,ARBOK
-	db 41,DODUO
-	db 43,DODRIO
-	db 43,DODRIO
+	db 39, TANGELA
+	db 40, PONYTA
+	db 40, RAPIDASH
+	db 42, ARBOK
+	db 41, DODUO
+	db 43, DODRIO
+	db 43, DODRIO
 	; day
-	db 39,TANGELA
-	db 40,PONYTA
-	db 40,RAPIDASH
-	db 42,ARBOK
-	db 41,DODUO
-	db 43,DODRIO
-	db 43,DODRIO
+	db 39, TANGELA
+	db 40, PONYTA
+	db 40, RAPIDASH
+	db 42, ARBOK
+	db 41, DODUO
+	db 43, DODRIO
+	db 43, DODRIO
 	; nite
-	db 39,TANGELA
-	db 40,POLIWHIRL
-	db 40,GOLBAT
-	db 40,POLIWHIRL
-	db 42,GOLBAT
-	db 42,GOLBAT
-	db 42,GOLBAT
+	db 39, TANGELA
+	db 40, POLIWHIRL
+	db 40, GOLBAT
+	db 40, POLIWHIRL
+	db 42, GOLBAT
+	db 42, GOLBAT
+	db 42, GOLBAT
 
-	db $ff ; end
+	db -1 ; end
--- a/data/wild/kanto_water.asm
+++ b/data/wild/kanto_water.asm
@@ -1,147 +1,147 @@
 ; Kanto Pokémon in water
 
-	db GROUP_TOHJO_FALLS, MAP_TOHJO_FALLS
-	db $0a ; encounter rate
-	db 20,GOLDEEN
-	db 20,SLOWPOKE
-	db 20,SEAKING
+	map TOHJO_FALLS
+	db 4 percent ; encounter rate
+	db 20, GOLDEEN
+	db 20, SLOWPOKE
+	db 20, SEAKING
 
-	db GROUP_VERMILION_PORT, MAP_VERMILION_PORT
-	db $05 ; encounter rate
-	db 35,TENTACOOL
-	db 30,TENTACOOL
-	db 35,TENTACRUEL
+	map VERMILION_PORT
+	db 2 percent ; encounter rate
+	db 35, TENTACOOL
+	db 30, TENTACOOL
+	db 35, TENTACRUEL
 
-	db GROUP_ROUTE_4, MAP_ROUTE_4
-	db $0a ; encounter rate
-	db 10,GOLDEEN
-	db 5,GOLDEEN
-	db 10,SEAKING
+	map ROUTE_4
+	db 4 percent ; encounter rate
+	db 10, GOLDEEN
+	db 5, GOLDEEN
+	db 10, SEAKING
 
-	db GROUP_ROUTE_6, MAP_ROUTE_6
-	db $05 ; encounter rate
-	db 10,PSYDUCK
-	db 5,PSYDUCK
-	db 10,GOLDUCK
+	map ROUTE_6
+	db 2 percent ; encounter rate
+	db 10, PSYDUCK
+	db 5, PSYDUCK
+	db 10, GOLDUCK
 
-	db GROUP_ROUTE_9, MAP_ROUTE_9
-	db $0a ; encounter rate
-	db 15,GOLDEEN
-	db 10,GOLDEEN
-	db 15,SEAKING
+	map ROUTE_9
+	db 4 percent ; encounter rate
+	db 15, GOLDEEN
+	db 10, GOLDEEN
+	db 15, SEAKING
 
-	db GROUP_ROUTE_10_NORTH, MAP_ROUTE_10_NORTH
-	db $0a ; encounter rate
-	db 15,GOLDEEN
-	db 10,GOLDEEN
-	db 15,SEAKING
+	map ROUTE_10_NORTH
+	db 4 percent ; encounter rate
+	db 15, GOLDEEN
+	db 10, GOLDEEN
+	db 15, SEAKING
 
-	db GROUP_ROUTE_12, MAP_ROUTE_12
-	db $0f ; encounter rate
-	db 25,TENTACOOL
-	db 25,QUAGSIRE
-	db 25,TENTACRUEL
+	map ROUTE_12
+	db 6 percent ; encounter rate
+	db 25, TENTACOOL
+	db 25, QUAGSIRE
+	db 25, TENTACRUEL
 
-	db GROUP_ROUTE_13, MAP_ROUTE_13
-	db $0f ; encounter rate
-	db 25,TENTACOOL
-	db 25,QUAGSIRE
-	db 25,TENTACRUEL
+	map ROUTE_13
+	db 6 percent ; encounter rate
+	db 25, TENTACOOL
+	db 25, QUAGSIRE
+	db 25, TENTACRUEL
 
-	db GROUP_ROUTE_19, MAP_ROUTE_19
-	db $0f ; encounter rate
-	db 35,TENTACOOL
-	db 30,TENTACOOL
-	db 35,TENTACRUEL
+	map ROUTE_19
+	db 6 percent ; encounter rate
+	db 35, TENTACOOL
+	db 30, TENTACOOL
+	db 35, TENTACRUEL
 
-	db GROUP_ROUTE_20, MAP_ROUTE_20
-	db $0f ; encounter rate
-	db 35,TENTACOOL
-	db 30,TENTACOOL
-	db 35,TENTACRUEL
+	map ROUTE_20
+	db 6 percent ; encounter rate
+	db 35, TENTACOOL
+	db 30, TENTACOOL
+	db 35, TENTACRUEL
 
-	db GROUP_ROUTE_21, MAP_ROUTE_21
-	db $0f ; encounter rate
-	db 35,TENTACOOL
-	db 30,TENTACOOL
-	db 35,TENTACRUEL
+	map ROUTE_21
+	db 6 percent ; encounter rate
+	db 35, TENTACOOL
+	db 30, TENTACOOL
+	db 35, TENTACRUEL
 
-	db GROUP_ROUTE_22, MAP_ROUTE_22
-	db $05 ; encounter rate
-	db 10,POLIWAG
-	db 5,POLIWAG
-	db 10,POLIWHIRL
+	map ROUTE_22
+	db 2 percent ; encounter rate
+	db 10, POLIWAG
+	db 5, POLIWAG
+	db 10, POLIWHIRL
 
-	db GROUP_ROUTE_24, MAP_ROUTE_24
-	db $0a ; encounter rate
-	db 10,GOLDEEN
-	db 5,GOLDEEN
-	db 10,SEAKING
+	map ROUTE_24
+	db 4 percent ; encounter rate
+	db 10, GOLDEEN
+	db 5, GOLDEEN
+	db 10, SEAKING
 
-	db GROUP_ROUTE_25, MAP_ROUTE_25
-	db $0a ; encounter rate
-	db 10,GOLDEEN
-	db 5,GOLDEEN
-	db 10,SEAKING
+	map ROUTE_25
+	db 4 percent ; encounter rate
+	db 10, GOLDEEN
+	db 5, GOLDEEN
+	db 10, SEAKING
 
-	db GROUP_ROUTE_26, MAP_ROUTE_26
-	db $0f ; encounter rate
-	db 30,TENTACOOL
-	db 25,TENTACOOL
-	db 30,TENTACRUEL
+	map ROUTE_26
+	db 6 percent ; encounter rate
+	db 30, TENTACOOL
+	db 25, TENTACOOL
+	db 30, TENTACRUEL
 
-	db GROUP_ROUTE_27, MAP_ROUTE_27
-	db $0f ; encounter rate
-	db 20,TENTACOOL
-	db 15,TENTACOOL
-	db 20,TENTACRUEL
+	map ROUTE_27
+	db 6 percent ; encounter rate
+	db 20, TENTACOOL
+	db 15, TENTACOOL
+	db 20, TENTACRUEL
 
-	db GROUP_ROUTE_28, MAP_ROUTE_28
-	db $05 ; encounter rate
-	db 40,POLIWAG
-	db 35,POLIWAG
-	db 40,POLIWHIRL
+	map ROUTE_28
+	db 2 percent ; encounter rate
+	db 40, POLIWAG
+	db 35, POLIWAG
+	db 40, POLIWHIRL
 
-	db GROUP_PALLET_TOWN, MAP_PALLET_TOWN
-	db $0f ; encounter rate
-	db 35,TENTACOOL
-	db 30,TENTACOOL
-	db 35,TENTACRUEL
+	map PALLET_TOWN
+	db 6 percent ; encounter rate
+	db 35, TENTACOOL
+	db 30, TENTACOOL
+	db 35, TENTACRUEL
 
-	db GROUP_VIRIDIAN_CITY, MAP_VIRIDIAN_CITY
-	db $05 ; encounter rate
-	db 10,POLIWAG
-	db 5,POLIWAG
-	db 10,POLIWHIRL
+	map VIRIDIAN_CITY
+	db 2 percent ; encounter rate
+	db 10, POLIWAG
+	db 5, POLIWAG
+	db 10, POLIWHIRL
 
-	db GROUP_CERULEAN_CITY, MAP_CERULEAN_CITY
-	db $0a ; encounter rate
-	db 10,GOLDEEN
-	db 5,GOLDEEN
-	db 10,SEAKING
+	map CERULEAN_CITY
+	db 4 percent ; encounter rate
+	db 10, GOLDEEN
+	db 5, GOLDEEN
+	db 10, SEAKING
 
-	db GROUP_VERMILION_CITY, MAP_VERMILION_CITY
-	db $0f ; encounter rate
-	db 35,TENTACOOL
-	db 30,TENTACOOL
-	db 35,TENTACRUEL
+	map VERMILION_CITY
+	db 6 percent ; encounter rate
+	db 35, TENTACOOL
+	db 30, TENTACOOL
+	db 35, TENTACRUEL
 
-	db GROUP_CELADON_CITY, MAP_CELADON_CITY
-	db $05 ; encounter rate
-	db 20,GRIMER
-	db 15,GRIMER
-	db 15,MUK
+	map CELADON_CITY
+	db 2 percent ; encounter rate
+	db 20, GRIMER
+	db 15, GRIMER
+	db 15, MUK
 
-	db GROUP_FUCHSIA_CITY, MAP_FUCHSIA_CITY
-	db $05 ; encounter rate
-	db 20,MAGIKARP
-	db 15,MAGIKARP
-	db 10,MAGIKARP
+	map FUCHSIA_CITY
+	db 2 percent ; encounter rate
+	db 20, MAGIKARP
+	db 15, MAGIKARP
+	db 10, MAGIKARP
 
-	db GROUP_CINNABAR_ISLAND, MAP_CINNABAR_ISLAND
-	db $0f ; encounter rate
-	db 35,TENTACOOL
-	db 30,TENTACOOL
-	db 35,TENTACRUEL
+	map CINNABAR_ISLAND
+	db 6 percent ; encounter rate
+	db 35, TENTACOOL
+	db 30, TENTACOOL
+	db 35, TENTACRUEL
 
-	db $ff ; end
+	db -1 ; end
--- a/data/wild/swarm_grass.asm
+++ b/data/wild/swarm_grass.asm
@@ -1,59 +1,59 @@
 ; swarms in grass
 
 ; Dunsparce swarm
-	db GROUP_DARK_CAVE_VIOLET_ENTRANCE, MAP_DARK_CAVE_VIOLET_ENTRANCE
-	db $0a,$0a,$0a ; encounter rates: morn/day/nite
+	map DARK_CAVE_VIOLET_ENTRANCE
+	db 4 percent, 4 percent, 4 percent ; encounter rates: morn/day/nite
 	; morn
-	db 3,GEODUDE
-	db 3,DUNSPARCE
-	db 2,ZUBAT
-	db 2,GEODUDE
-	db 2,DUNSPARCE
-	db 4,DUNSPARCE
-	db 4,DUNSPARCE
+	db 3, GEODUDE
+	db 3, DUNSPARCE
+	db 2, ZUBAT
+	db 2, GEODUDE
+	db 2, DUNSPARCE
+	db 4, DUNSPARCE
+	db 4, DUNSPARCE
 	; day
-	db 3,GEODUDE
-	db 3,DUNSPARCE
-	db 2,ZUBAT
-	db 2,GEODUDE
-	db 2,DUNSPARCE
-	db 4,DUNSPARCE
-	db 4,DUNSPARCE
+	db 3, GEODUDE
+	db 3, DUNSPARCE
+	db 2, ZUBAT
+	db 2, GEODUDE
+	db 2, DUNSPARCE
+	db 4, DUNSPARCE
+	db 4, DUNSPARCE
 	; nite
-	db 3,GEODUDE
-	db 3,DUNSPARCE
-	db 2,ZUBAT
-	db 2,GEODUDE
-	db 2,DUNSPARCE
-	db 4,DUNSPARCE
-	db 4,DUNSPARCE
+	db 3, GEODUDE
+	db 3, DUNSPARCE
+	db 2, ZUBAT
+	db 2, GEODUDE
+	db 2, DUNSPARCE
+	db 4, DUNSPARCE
+	db 4, DUNSPARCE
 
 ; Yanma swarm
-	db GROUP_ROUTE_35, MAP_ROUTE_35
-	db $19,$19,$19 ; encounter rates: morn/day/nite
+	map ROUTE_35
+	db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite
 	; morn
-	db 12,NIDORAN_M
-	db 12,NIDORAN_F
-	db 12,YANMA
-	db 14,YANMA
-	db 14,PIDGEY
-	db 10,DITTO
-	db 10,DITTO
+	db 12, NIDORAN_M
+	db 12, NIDORAN_F
+	db 12, YANMA
+	db 14, YANMA
+	db 14, PIDGEY
+	db 10, DITTO
+	db 10, DITTO
 	; day
-	db 12,NIDORAN_M
-	db 12,NIDORAN_F
-	db 12,YANMA
-	db 14,YANMA
-	db 14,PIDGEY
-	db 10,DITTO
-	db 10,DITTO
+	db 12, NIDORAN_M
+	db 12, NIDORAN_F
+	db 12, YANMA
+	db 14, YANMA
+	db 14, PIDGEY
+	db 10, DITTO
+	db 10, DITTO
 	; nite
-	db 12,NIDORAN_M
-	db 12,NIDORAN_F
-	db 12,YANMA
-	db 14,YANMA
-	db 14,HOOTHOOT
-	db 10,DITTO
-	db 10,DITTO
+	db 12, NIDORAN_M
+	db 12, NIDORAN_F
+	db 12, YANMA
+	db 14, YANMA
+	db 14, HOOTHOOT
+	db 10, DITTO
+	db 10, DITTO
 
-	db $ff ; end
+	db -1 ; end
--- a/data/wild/swarm_water.asm
+++ b/data/wild/swarm_water.asm
@@ -2,4 +2,4 @@
 
 	; No swarms encountered while surfing in Crystal
 	
-	db $ff ; end
+	db -1 ; end
--- a/engine/buena_phone_scripts.asm
+++ b/engine/buena_phone_scripts.asm
@@ -1,4 +1,4 @@
-UnknownScript_0xa0b14:
+BuenaPhoneScript1:
 	checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
 	iftrue UnknownScript_0xa0b73
 	checkcode VAR_HOUR
@@ -6,7 +6,7 @@
 	scall UnknownScript_0xa0b32
 	jump UnknownScript_0xa0c0e
 
-UnknownScript_0xa0b26:
+BuenaPhoneScript2:
 	checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
 	iftrue UnknownScript_0xa0b73
 	scall UnknownScript_0xa0b4f
--- a/engine/color.asm
+++ b/engine/color.asm
@@ -297,7 +297,7 @@
 	ld a, [EnemyLightScreenCount]
 	ld c, a
 	ld a, [EnemyReflectCount]
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld de, $0014
 .asm_8c04
 	and a
@@ -661,8 +661,8 @@
 
 
 Function9699: ; 9699
-	ld hl, AttrMap
-	ld bc, $0168
+	hlcoord 0, 0, AttrMap
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	xor a
 	call ByteFill
 	ret
@@ -694,7 +694,7 @@
 	ret
 
 .asm_96d0
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld de, VBGMap0
 	ld b, $12
 	ld a, $1
--- a/engine/credits.asm
+++ b/engine/credits.asm
@@ -527,7 +527,7 @@
 	ld a, $c
 	ld [hBGMapAddress], a ; $ff00+$d6
 	ld a, $28
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $168
 	call ByteFill
 	ld a, $7f
@@ -540,7 +540,7 @@
 	hlcoord 0, 17
 	ld a, $20
 	call Function109b1d
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, $50
 	xor a
 	call ByteFill
@@ -560,7 +560,7 @@
 	xor a
 	ld [hBGMapMode], a ; $ff00+$d4
 	ld [hBGMapAddress], a ; $ff00+$d6
-	ld hl, TileMap
+	hlcoord 0, 0
 	call Function109aff
 	call Function3200
 	ret
--- a/engine/diploma.asm
+++ b/engine/diploma.asm
@@ -14,8 +14,8 @@
 	ld de, VTiles2
 	call Decompress
 	ld hl, Tilemap_1ddc4b
-	ld de, TileMap
-	ld bc, $0168
+	decoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call CopyBytes
 	ld de, String_1dd760
 	hlcoord 2, 5
@@ -54,13 +54,13 @@
 ; 1dd7ae
 
 Function1dd7ae: ; 1dd7ae
-	ld hl, TileMap
-	ld bc, $0168
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	ld a, $7f
 	call ByteFill
 	ld hl, Tilemap_1dddb3
-	ld de, TileMap
-	ld bc, $0168
+	decoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call CopyBytes
 	ld de, String_1dd7fa
 	hlcoord 8, 0
--- a/engine/engine_flags.asm
+++ b/engine/engine_flags.asm
@@ -29,9 +29,9 @@
 	dwb StatusFlags, %01000000 ; credits skip
 	dwb StatusFlags, %10000000 ; bug contest on   ; $10
 	dwb StatusFlags2, %00000100 ; bug contest timer
-	dwb StatusFlags2, %00000010 ; rockets in radio tower
-	dwb StatusFlags2, %00000001 ; bike shop call enabled (1024 bike steps reqd)
-	dwb StatusFlags2, %00010000
+	dwb StatusFlags2, %00000010
+	dwb StatusFlags2, %00000001 ; rockets in radio tower
+	dwb StatusFlags2, %00010000 ; bike shop call enabled (1024 bike steps reqd)
 	dwb StatusFlags2, %00100000 ; give pokerus; berry -> berry juice when trading?
 	dwb StatusFlags2, %01000000
 	dwb StatusFlags2, %10000000 ; rockets in mahogany
@@ -115,8 +115,8 @@
 	dwb WeeklyFlags, %00001000 ; goldenrod mall happiness event floor05 person07
 	dwb WeeklyFlags, %00010000 ; tea in blues house
 	dwb WeeklyFlags, %00100000 ; indigo plateau rival fight
-	dwb WeeklyFlags, %01000000
-	dwb WeeklyFlags, %10000000
+	dwb WeeklyFlags, %01000000 ; move tutor
+	dwb WeeklyFlags, %10000000 ; buenas password
 
 	dwb SwarmFlags, %00000001 ; $60
 	dwb SwarmFlags, %00000010 ; goldenrod dept store sale is on
@@ -128,69 +128,69 @@
 	dwb wdbf3, %00000100 ; have gs ball after kurt examined it
 
 	; rematches
-	dwb wdc4c, %00000001 ; jack
-	dwb wdc4c, %00000010 ; huey
-	dwb wdc4c, %00000100 ; gaven
-	dwb wdc4c, %00001000 ; beth  ; $68
-	dwb wdc4c, %00010000 ; jose
-	dwb wdc4c, %00100000 ; reena
-	dwb wdc4c, %01000000 ; joey
-	dwb wdc4c, %10000000 ; wade
-	dwb wdc4c + 1, %00000001 ; ralph
-	dwb wdc4c + 1, %00000010 ; liz
-	dwb wdc4c + 1, %00000100 ; anthony
-	dwb wdc4c + 1, %00001000 ; todd  ; $70
-	dwb wdc4c + 1, %00010000 ; gina
-	dwb wdc4c + 1, %00100000 ; arnie
-	dwb wdc4c + 1, %01000000 ; alan
-	dwb wdc4c + 1, %10000000 ; dana
-	dwb wdc4c + 2, %00000001 ; chad
-	dwb wdc4c + 2, %00000010 ; tully
-	dwb wdc4c + 2, %00000100 ; brent
-	dwb wdc4c + 2, %00001000 ; tiffany  ; $78
-	dwb wdc4c + 2, %00010000 ; vance
-	dwb wdc4c + 2, %00100000 ; wilton
-	dwb wdc4c + 2, %01000000 ; parry
-	dwb wdc4c + 2, %10000000 ; erin
+	dwb wDailyRematchFlags, %00000001 ; jack
+	dwb wDailyRematchFlags, %00000010 ; huey
+	dwb wDailyRematchFlags, %00000100 ; gaven
+	dwb wDailyRematchFlags, %00001000 ; beth  ; $68
+	dwb wDailyRematchFlags, %00010000 ; jose
+	dwb wDailyRematchFlags, %00100000 ; reena
+	dwb wDailyRematchFlags, %01000000 ; joey
+	dwb wDailyRematchFlags, %10000000 ; wade
+	dwb wDailyRematchFlags + 1, %00000001 ; ralph
+	dwb wDailyRematchFlags + 1, %00000010 ; liz
+	dwb wDailyRematchFlags + 1, %00000100 ; anthony
+	dwb wDailyRematchFlags + 1, %00001000 ; todd  ; $70
+	dwb wDailyRematchFlags + 1, %00010000 ; gina
+	dwb wDailyRematchFlags + 1, %00100000 ; arnie
+	dwb wDailyRematchFlags + 1, %01000000 ; alan
+	dwb wDailyRematchFlags + 1, %10000000 ; dana
+	dwb wDailyRematchFlags + 2, %00000001 ; chad
+	dwb wDailyRematchFlags + 2, %00000010 ; tully
+	dwb wDailyRematchFlags + 2, %00000100 ; brent
+	dwb wDailyRematchFlags + 2, %00001000 ; tiffany  ; $78
+	dwb wDailyRematchFlags + 2, %00010000 ; vance
+	dwb wDailyRematchFlags + 2, %00100000 ; wilton
+	dwb wDailyRematchFlags + 2, %01000000 ; parry
+	dwb wDailyRematchFlags + 2, %10000000 ; erin
 
-	dwb wdc50, %00000001 ; beverly has nugget
-	dwb wdc50, %00000010 ; jose has star piece
-	dwb wdc50, %00000100 ; wade has item (see bittable1 $032b-e)
-	dwb wdc50, %00001000 ; gina has leaf stone  ; $80
-	dwb wdc50, %00010000 ; alan has fire stone
-	dwb wdc50, %00100000 ; liz has thunderstone
-	dwb wdc50, %01000000 ; derek has nugget
-	dwb wdc50, %10000000 ; tully has water stone
+	dwb wDailyPhoneItemFlags, %00000001 ; beverly has nugget
+	dwb wDailyPhoneItemFlags, %00000010 ; jose has star piece
+	dwb wDailyPhoneItemFlags, %00000100 ; wade has item (see bittable1 $032b-e)
+	dwb wDailyPhoneItemFlags, %00001000 ; gina has leaf stone  ; $80
+	dwb wDailyPhoneItemFlags, %00010000 ; alan has fire stone
+	dwb wDailyPhoneItemFlags, %00100000 ; liz has thunderstone
+	dwb wDailyPhoneItemFlags, %01000000 ; derek has nugget
+	dwb wDailyPhoneItemFlags, %10000000 ; tully has water stone
 
-	dwb wdc50 + 1, %00000001 ; tiffany has pink bow
-	dwb wdc50 + 1, %00000010 ; wilton has item (see bittable1 $032f-31)
+	dwb wDailyPhoneItemFlags + 1, %00000001 ; tiffany has pink bow
+	dwb wDailyPhoneItemFlags + 1, %00000010 ; wilton has item (see bittable1 $032f-31)
 
-	dwb wdc54, %00000001
-	dwb wdc54, %00000010  ; $88
-	dwb wdc54, %00000100
-	dwb wdc54, %00001000
-	dwb wdc54, %00010000
-	dwb wdc54, %00100000
-	dwb wdc54, %01000000
-	dwb wdc54, %10000000
+	dwb wDailyPhoneTimeOfDayFlags, %00000001
+	dwb wDailyPhoneTimeOfDayFlags, %00000010  ; $88
+	dwb wDailyPhoneTimeOfDayFlags, %00000100
+	dwb wDailyPhoneTimeOfDayFlags, %00001000
+	dwb wDailyPhoneTimeOfDayFlags, %00010000
+	dwb wDailyPhoneTimeOfDayFlags, %00100000
+	dwb wDailyPhoneTimeOfDayFlags, %01000000
+	dwb wDailyPhoneTimeOfDayFlags, %10000000
 
-	dwb wdc54 + 1, %00000001
-	dwb wdc54 + 1, %00000010  ; $90
-	dwb wdc54 + 1, %00000100
-	dwb wdc54 + 1, %00001000
-	dwb wdc54 + 1, %00010000
-	dwb wdc54 + 1, %00100000
-	dwb wdc54 + 1, %01000000
-	dwb wdc54 + 1, %10000000
+	dwb wDailyPhoneTimeOfDayFlags + 1, %00000001
+	dwb wDailyPhoneTimeOfDayFlags + 1, %00000010  ; $90
+	dwb wDailyPhoneTimeOfDayFlags + 1, %00000100
+	dwb wDailyPhoneTimeOfDayFlags + 1, %00001000
+	dwb wDailyPhoneTimeOfDayFlags + 1, %00010000
+	dwb wDailyPhoneTimeOfDayFlags + 1, %00100000
+	dwb wDailyPhoneTimeOfDayFlags + 1, %01000000
+	dwb wDailyPhoneTimeOfDayFlags + 1, %10000000
 
-	dwb wdc54 + 2, %00000001
-	dwb wdc54 + 2, %00000010  ; $98
-	dwb wdc54 + 2, %00000100
-	dwb wdc54 + 2, %00001000
-	dwb wdc54 + 2, %00010000
-	dwb wdc54 + 2, %00100000
-	dwb wdc54 + 2, %01000000
-	dwb wdc54 + 2, %10000000
+	dwb wDailyPhoneTimeOfDayFlags + 2, %00000001
+	dwb wDailyPhoneTimeOfDayFlags + 2, %00000010  ; $98
+	dwb wDailyPhoneTimeOfDayFlags + 2, %00000100
+	dwb wDailyPhoneTimeOfDayFlags + 2, %00001000
+	dwb wDailyPhoneTimeOfDayFlags + 2, %00010000
+	dwb wDailyPhoneTimeOfDayFlags + 2, %00100000
+	dwb wDailyPhoneTimeOfDayFlags + 2, %01000000
+	dwb wDailyPhoneTimeOfDayFlags + 2, %10000000
 
 	dwb wd45b, %00000100 ; female player has been transformed into male
 
--- a/engine/events_2.asm
+++ b/engine/events_2.asm
@@ -105,7 +105,7 @@
 	ld hl, StatusFlags2
 	bit 2, [hl]
 	jr nz, .asm_97cdb
-	callba Function2a0e7
+	callba TryWildEncounter
 	jr nz, .asm_97ce2
 	jr .asm_97ce6
 
@@ -167,10 +167,10 @@
 ; 97d23
 
 Function97d23: ; 97d23
-	call Function97d64
+	call TryWildEncounter_BugContest
 	ret nc
 	call Function97d31
-	callba Function2a1df
+	callba CheckRepelEffect
 	ret
 ; 97d31
 
@@ -196,7 +196,7 @@
 
 ; Species
 	ld a, [hli]
-	ld [wd22e], a
+	ld [TempWildMonSpecies], a
 
 ; Min level
 	ld a, [hli]
@@ -228,16 +228,16 @@
 	ret
 ; 97d64
 
-Function97d64: ; 97d64
+TryWildEncounter_BugContest: ; 97d64
 	ld a, [StandingTile]
-	call Function188e
+	call CheckSuperTallGrassTile
 	ld b, $66
 	jr z, .asm_97d70
 	ld b, $33
 
 .asm_97d70
-	callba Function2a124
-	callba Function2a138
+	callba ApplyMusicEffectOnEncounterRate
+	callba ApplyCleanseTagEffectOnEncounterRate
 	call Random
 	ld a, [hRandomAdd]
 	cp b
--- a/engine/map_objects.asm
+++ b/engine/map_objects.asm
@@ -2,44 +2,44 @@
 INCLUDE "engine/facings.asm"
 
 ObjectStruct3_Data:: ; 4273
-	db $00, $00, $01, $02, $00, $00
-	db $06, $00, $01, $0c, $00, $00
-	db $03, $00, $01, $00, $00, $00
-	db $04, $00, $01, $00, $00, $00
-	db $01, $00, $01, $00, $00, $00
-	db $02, $00, $01, $00, $00, $00
-	db $06, $00, $01, $00, $00, $00
-	db $06, $01, $01, $00, $00, $00
-	db $06, $02, $01, $00, $00, $00
-	db $06, $03, $01, $00, $00, $00
-	db $05, $00, $01, $00, $00, $00
-	db $07, $00, $01, $02, $00, $00
-	db $08, $00, $01, $00, $00, $00
-	db $09, $00, $01, $00, $00, $00
-	db $0a, $00, $01, $00, $00, $00
-	db $0b, $00, $01, $00, $00, $00
-	db $0c, $00, $01, $00, $00, $00
-	db $0d, $00, $01, $00, $00, $00
-	db $0e, $00, $01, $00, $00, $00
-	db $0f, $00, $01, $02, $00, $00
-	db $10, $00, $01, $02, $00, $00
-	db $15, $00, $09, $2e, $01, $c0
-	db $16, $00, $0a, $2e, $00, $00
-	db $06, $00, $01, $0c, $00, $00
-	db $06, $00, $01, $2e, $10, $00
-	db $11, $00, $01, $2e, $00, $40
-	db $12, $00, $01, $02, $00, $00
-	db $13, $00, $00, $8e, $01, $00
-	db $14, $00, $08, $8e, $02, $00
-	db $17, $00, $00, $82, $00, $00
-	db $19, $02, $01, $00, $00, $00
-	db $18, $03, $01, $00, $00, $00
-	db $11, $00, $0c, $2e, $01, $c0
-	db $11, $00, $0d, $2e, $01, $c0
-	db $1a, $00, $0e, $8e, $01, $00
-	db $1b, $00, $0f, $8e, $02, $00
-	db $03, $00, $01, $00, $00, $20
-	db $00, $00, $01, $00, $00, $00
+	db $00, $00, $01, $02, $00, $00 ; 00
+	db $06, $00, $01, $0c, $00, $00 ; 01
+	db $03, $00, $01, $00, $00, $00 ; 02
+	db $04, $00, $01, $00, $00, $00 ; 03
+	db $01, $00, $01, $00, $00, $00 ; 04
+	db $02, $00, $01, $00, $00, $00 ; 05
+	db $06, $00, $01, $00, $00, $00 ; 06
+	db $06, $01, $01, $00, $00, $00 ; 07
+	db $06, $02, $01, $00, $00, $00 ; 08
+	db $06, $03, $01, $00, $00, $00 ; 09
+	db $05, $00, $01, $00, $00, $00 ; 0a
+	db $07, $00, $01, $02, $00, $00 ; 0b
+	db $08, $00, $01, $00, $00, $00 ; 0c
+	db $09, $00, $01, $00, $00, $00 ; 0d
+	db $0a, $00, $01, $00, $00, $00 ; 0e
+	db $0b, $00, $01, $00, $00, $00 ; 0f
+	db $0c, $00, $01, $00, $00, $00 ; 10
+	db $0d, $00, $01, $00, $00, $00 ; 11
+	db $0e, $00, $01, $00, $00, $00 ; 12
+	db $0f, $00, $01, $02, $00, $00 ; 13
+	db $10, $00, $01, $02, $00, $00 ; 14
+	db $15, $00, $09, $2e, $01, $c0 ; 15
+	db $16, $00, $0a, $2e, $00, $00 ; 16
+	db $06, $00, $01, $0c, $00, $00 ; 17
+	db $06, $00, $01, $2e, $10, $00 ; 18
+	db $11, $00, $01, $2e, $00, $40 ; 19
+	db $12, $00, $01, $02, $00, $00 ; 1a
+	db $13, $00, $00, $8e, $01, $00 ; 1b
+	db $14, $00, $08, $8e, $02, $00 ; 1c
+	db $17, $00, $00, $82, $00, $00 ; 1d
+	db $19, $02, $01, $00, $00, $00 ; 1e
+	db $18, $03, $01, $00, $00, $00 ; 1f
+	db $11, $00, $0c, $2e, $01, $c0 ; 20
+	db $11, $00, $0d, $2e, $01, $c0 ; 21
+	db $1a, $00, $0e, $8e, $01, $00 ; 22
+	db $1b, $00, $0f, $8e, $02, $00 ; 23
+	db $03, $00, $01, $00, $00, $20 ; 24
+	db $00, $00, $01, $00, $00, $00 ; 25
 ; 4357
 
 
@@ -238,40 +238,40 @@
 ; 445f
 
 Pointers445f: ; 445f
-	dw Function44a3
-	dw Function44a3
-	dw Function44b5
-	dw Function44aa
-	dw Function44c1
-	dw Function44aa
-	dw Function4508
-	dw Function44aa
-	dw Function4529
-	dw Function44aa
-	dw Function4539
-	dw Function44a3
-	dw Function456e
-	dw Function456e
-	dw Function457b
-	dw Function44a3
-	dw Function4582
-	dw Function4582
-	dw Function4589
-	dw Function4589
-	dw Function4590
-	dw Function45a4
-	dw Function45ab
-	dw Function44aa
-	dw Function45be
-	dw Function45be
-	dw Function45c5
-	dw Function45c5
-	dw Function45da
-	dw Function44a3
-	dw Function45ed
-	dw Function44a3
-	dw Function44e4
-	dw Function44aa
+	dw Function44a3 ; 00
+	dw Function44a3 ; 01
+	dw Function44b5 ; 02
+	dw Function44aa ; 03
+	dw Function44c1 ; 04
+	dw Function44aa ; 05
+	dw Function4508 ; 06
+	dw Function44aa ; 07
+	dw Function4529 ; 08
+	dw Function44aa ; 09
+	dw Function4539 ; 0a
+	dw Function44a3 ; 0b
+	dw Function456e ; 0c
+	dw Function456e ; 0d
+	dw Function457b ; 0e
+	dw Function44a3 ; 0f
+	dw Function4582 ; 10
+	dw Function4582 ; 11
+	dw Function4589 ; 12
+	dw Function4589 ; 13
+	dw Function4590 ; 14
+	dw Function45a4 ; 15
+	dw Function45ab ; 16
+	dw Function44aa ; 17
+	dw Function45be ; 18
+	dw Function45be ; 19
+	dw Function45c5 ; 1a
+	dw Function45c5 ; 1b
+	dw Function45da ; 1c
+	dw Function44a3 ; 1d
+	dw Function45ed ; 1e
+	dw Function44a3 ; 1f
+	dw Function44e4 ; 20
+	dw Function44aa ; 21
 ; 44a3
 
 Function44a3: ; 44a3
@@ -626,7 +626,7 @@
 ; 4661
 
 Function4661: ; 4661
-	call Function188e
+	call CheckSuperTallGrassTile
 	jr z, .set
 	call Function1875
 	jr c, .reset
@@ -835,7 +835,7 @@
 	jr z, .ok
 	push bc
 	call GetMapObject
-	ld hl, MAPOBJECT_FACING
+	ld hl, MAPOBJECT_MOVEMENT
 	add hl, bc
 	ld a, [hl]
 	pop bc
@@ -944,34 +944,34 @@
 ; 47e9
 
 .Pointers ; 47e9
-	dw Function4821
-	dw Function4822
-	dw Function482c
-	dw Function4838
-	dw Function4842
-	dw Function4851
-	dw Function4869
-	dw Function487c
-	dw Function4882
-	dw Function4888
-	dw Function488e
-	dw Function4891
-	dw Function4894
-	dw Function4897
-	dw Function489d
-	dw Function48a0
-	dw Function48a6
-	dw Function48ac
-	dw Function48ff
-	dw Function49e5
-	dw Function4a21
-	dw Function4958
-	dw Function496e
-	dw Function4abc
-	dw Function498d
-	dw Function4984
-	dw Function4a46
-	dw Function4a89
+	dw Function4821 ; 00
+	dw Function4822 ; 01
+	dw Function482c ; 02
+	dw Function4838 ; 03
+	dw Function4842 ; 04
+	dw Function4851 ; 05
+	dw Function4869 ; 06
+	dw Function487c ; 07
+	dw Function4882 ; 08
+	dw Function4888 ; 09
+	dw Function488e ; 0a
+	dw Function4891 ; 0b
+	dw Function4894 ; 0c
+	dw Function4897 ; 0d
+	dw Function489d ; 0e
+	dw Function48a0 ; 0f
+	dw Function48a6 ; 10
+	dw Function48ac ; 11
+	dw Function48ff ; 12
+	dw Function49e5 ; 13
+	dw Function4a21 ; 14
+	dw Function4958 ; 15
+	dw Function496e ; 16
+	dw Function4abc ; 17
+	dw Function498d ; 18
+	dw Function4984 ; 19
+	dw Function4a46 ; 1a
+	dw Function4a89 ; 1b
 ; 4821
 
 Function4821: ; 4821
@@ -3293,7 +3293,7 @@
 	jp z, Function5903
 	push bc
 	call GetMapObject
-	ld hl, MAPOBJECT_FACING
+	ld hl, MAPOBJECT_MOVEMENT
 	add hl, bc
 	ld a, [hl]
 	pop bc
--- a/engine/map_setup.asm
+++ b/engine/map_setup.asm
@@ -333,7 +333,7 @@
 	dbw BANK(DelayClearingOldSprites), DelayClearingOldSprites ; 24
 	dbw BANK(DelayLoadingNewSprites), DelayLoadingNewSprites ; 25
 	dbw BANK(UpdateRoamMons), UpdateRoamMons ; 26
-	dbw BANK(RestoreRoamMons), RestoreRoamMons ; 27
+	dbw BANK(JumpRoamMons), JumpRoamMons ; 27
 	dbw BANK(FadeOldMapMusic), FadeOldMapMusic ; 28
 	dbw BANK(ActivateMapAnims), ActivateMapAnims ; 29
 	dbw BANK(SuspendMapAnims), SuspendMapAnims ; 2a
@@ -439,7 +439,7 @@
 	ret
 
 Function1554e: ; 1554e (5:554e)
-	call Function1852
+	call CheckOnWater
 	jr nz, .ret_nc
 	ld a, [PlayerState]
 	cp PLAYER_SURF
--- a/engine/map_triggers.asm
+++ b/engine/map_triggers.asm
@@ -87,5 +87,5 @@
 	trigger_def MOUNT_MOON_SQUARE,                      wMountMoonSquareTrigger
 	trigger_def MOBILE_TRADE_ROOM_MOBILE,               wMobileTradeRoomMobileTrigger
 	trigger_def MOBILE_BATTLE_ROOM,                     wMobileBattleRoomTrigger
-	db $ff
+	db -1
 ; 4d15b
--- a/engine/more_phone_scripts.asm
+++ b/engine/more_phone_scripts.asm
@@ -27,7 +27,7 @@
 	farjump UnknownScript_0xa0055
 
 UnknownScript_0xa003e:
-	special Function2a51f
+	special RandomPhoneWildMon
 	farscall UnknownScript_0xbde3f
 	if_equal $0, UnknownScript_0xa0051
 	farscall UnknownScript_0xa017a
@@ -37,7 +37,7 @@
 	farjump UnknownScript_0xa006c
 
 UnknownScript_0xa0055:
-	special Function2a51f
+	special RandomPhoneWildMon
 	farscall UnknownScript_0xbde3f
 	if_equal $0, UnknownScript_0xa0068
 	farscall UnknownScript_0xa0226
@@ -851,7 +851,7 @@
 	farjump UnknownScript_0xa053a
 
 UnknownScript_0xa05a0:
-	special Function2a4ab
+	special RandomPhoneRareWildMon
 	end
 
 UnknownScript_0xa05a4:
@@ -1653,7 +1653,7 @@
 	farwritetext UnknownText_0x17717c
 	end
 
-UnknownScript_0xa0b09:
+BikeShopPhoneScript:
 	farwritetext UnknownText_0x174000
 	clearflag ENGINE_BIKE_SHOP_CALL_ENABLED
 	specialphonecall ELMCALL_NONE
--- a/engine/movement.asm
+++ b/engine/movement.asm
@@ -727,7 +727,7 @@
 	ld hl, OBJECT_STANDING_TILE
 	add hl, bc
 	ld a, [hl]
-	call Function188e
+	call CheckSuperTallGrassTile
 	jr z, .asm_542d
 
 	call Function1875
--- a/engine/pack.asm
+++ b/engine/pack.asm
@@ -1404,7 +1404,7 @@
 	hlcoord 5, 1
 	lb bc, 11, 15
 	call ClearBox
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld a, $28
 	ld c, $14
 .asm_1098a
@@ -1489,8 +1489,8 @@
 ; 10a2a
 
 Function10a2a: ; 10a2a
-	ld hl, TileMap
-	ld bc, $0168
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	ld a, $7f
 	call ByteFill
 	ret
--- a/engine/phone_scripts.asm
+++ b/engine/phone_scripts.asm
@@ -298,7 +298,7 @@
 
 ; Jack
 
-UnknownScript_0xbd0d0:
+JackPhoneScript1:
 	trainertotext SCHOOLBOY, JACK1, $0
 	checkflag ENGINE_JACK
 	iftrue UnknownScript_0xbd0f3
@@ -317,7 +317,7 @@
 	displaylocation NATIONAL_PARK, $2
 	farjump UnknownScript_0xa0a2d
 
-UnknownScript_0xbd0fa:
+JackPhoneScript2:
 	trainertotext SCHOOLBOY, JACK1, $0
 	farscall UnknownScript_0xbe1b6
 	farscall UnknownScript_0xbde3f
@@ -350,7 +350,7 @@
 
 ; Beverly
 
-UnknownScript_0xbd13f:
+BeverlyPhoneScript1:
 	trainertotext POKEFANF, BEVERLY1, $0
 	farscall UnknownScript_0xbe0b6
 	checkflag ENGINE_BEVERLY_HAS_NUGGET
@@ -361,7 +361,7 @@
 	displaylocation NATIONAL_PARK, $2
 	farjump UnknownScript_0xa0aa5
 
-UnknownScript_0xbd158:
+BeverlyPhoneScript2:
 	trainertotext POKEFANF, BEVERLY1, $0
 	farscall UnknownScript_0xbe41e
 	checkflag ENGINE_BEVERLY_HAS_NUGGET
@@ -379,7 +379,7 @@
 
 ; Huey
 
-UnknownScript_0xbd17c:
+HueyPhoneScript1:
 	trainertotext SAILOR, HUEY1, $0
 	checkflag ENGINE_HUEY
 	iftrue UnknownScript_0xbd1a2
@@ -399,7 +399,7 @@
 	displaylocation LIGHTHOUSE, $2
 	farjump UnknownScript_0xa0a32
 
-UnknownScript_0xbd1a9:
+HueyPhoneScript2:
 	trainertotext SAILOR, HUEY1, $0
 	farscall UnknownScript_0xbe1b6
 	checkflag ENGINE_HUEY
@@ -423,7 +423,7 @@
 
 ; Gaven
 
-UnknownScript_0xbd1da:
+GavenPhoneScript1:
 	trainertotext COOLTRAINERM, GAVEN3, $0
 	checkflag ENGINE_GAVEN
 	iftrue UnknownScript_0xbd1fd
@@ -442,7 +442,7 @@
 	displaylocation ROUTE_26, $2
 	farjump UnknownScript_0xa0a37
 
-UnknownScript_0xbd204:
+GavenPhoneScript2:
 	trainertotext COOLTRAINERM, GAVEN3, $0
 	farscall UnknownScript_0xbe1b6
 	checkflag ENGINE_GAVEN
@@ -470,7 +470,7 @@
 
 ; Beth
 
-UnknownScript_0xbd23d:
+BethPhoneScript1:
 	trainertotext COOLTRAINERF, BETH1, $0
 	checkflag ENGINE_BETH
 	iftrue UnknownScript_0xbd260
@@ -489,7 +489,7 @@
 	displaylocation ROUTE_26, $2
 	farjump UnknownScript_0xa0a3c
 
-UnknownScript_0xbd267:
+BethPhoneScript2:
 	trainertotext COOLTRAINERF, BETH1, $0
 	farscall UnknownScript_0xbe41e
 	checkflag ENGINE_BETH
@@ -512,7 +512,7 @@
 
 ; Jose
 
-UnknownScript_0xbd294:
+JosePhoneScript1:
 	trainertotext BIRD_KEEPER, JOSE2, $0
 	checkflag ENGINE_JOSE
 	iftrue UnknownScript_0xbd2bd
@@ -537,7 +537,7 @@
 	displaylocation ROUTE_27, $2
 	farjump UnknownScript_0xa0a41
 
-UnknownScript_0xbd2cb:
+JosePhoneScript2:
 	trainertotext BIRD_KEEPER, JOSE2, $0
 	farscall UnknownScript_0xbe1b6
 	checkflag ENGINE_JOSE
@@ -574,7 +574,7 @@
 
 ; Reena
 
-UnknownScript_0xbd31c:
+ReenaPhoneScript1:
 	trainertotext COOLTRAINERF, REENA1, $0
 	checkflag ENGINE_REENA
 	iftrue UnknownScript_0xbd33f
@@ -593,7 +593,7 @@
 	displaylocation ROUTE_27, $2
 	farjump UnknownScript_0xa0a46
 
-UnknownScript_0xbd346:
+ReenaPhoneScript2:
 	trainertotext COOLTRAINERF, REENA1, $0
 	farscall UnknownScript_0xbe41e
 	checkflag ENGINE_REENA
@@ -616,7 +616,7 @@
 
 ; Joey
 
-UnknownScript_0xbd373:
+JoeyPhoneScript1:
 	trainertotext YOUNGSTER, JOEY1, $0
 	checkflag ENGINE_JOEY
 	iftrue UnknownScript_0xbd399
@@ -636,7 +636,7 @@
 	displaylocation ROUTE_30, $2
 	farjump UnknownScript_0xa0a4b
 
-UnknownScript_0xbd3a0:
+JoeyPhoneScript2:
 	trainertotext YOUNGSTER, JOEY1, $0
 	farscall UnknownScript_0xbe1b6
 	checkflag ENGINE_JOEY
@@ -660,7 +660,7 @@
 
 ; Wade
 
-UnknownScript_0xbd3d1:
+WadePhoneScript1:
 	trainertotext BUG_CATCHER, WADE1, $0
 	checkflag ENGINE_WADE
 	iftrue UnknownScript_0xbd41a
@@ -698,7 +698,7 @@
 	displaylocation ROUTE_31, $2
 	farjump UnknownScript_0xa0ab5
 
-UnknownScript_0xbd428:
+WadePhoneScript2:
 	trainertotext BUG_CATCHER, WADE1, $0
 	farscall UnknownScript_0xbe1b6
 	farscall UnknownScript_0xbde3f
@@ -776,7 +776,7 @@
 
 ; Ralph
 
-UnknownScript_0xbd4d2:
+RalphPhoneScript1:
 	trainertotext FISHER, RALPH1, $0
 	checkflag ENGINE_RALPH
 	iftrue UnknownScript_0xbd4fb
@@ -801,7 +801,7 @@
 	displaylocation ROUTE_32, $2
 	farjump UnknownScript_0xa0af5
 
-UnknownScript_0xbd509:
+RalphPhoneScript2:
 	trainertotext FISHER, RALPH1, $0
 	farscall UnknownScript_0xbe1b6
 	checkflag ENGINE_FLYPOINT_GOLDENROD
@@ -841,7 +841,7 @@
 
 ; Liz
 
-UnknownScript_0xbd560:
+LizPhoneScript1:
 	trainertotext PICNICKER, LIZ1, $0
 	checkflag ENGINE_LIZ
 	iftrue UnknownScript_0xbd586
@@ -861,7 +861,7 @@
 	displaylocation ROUTE_32, $2
 	farjump UnknownScript_0xa0a5a
 
-UnknownScript_0xbd58d:
+LizPhoneScript2:
 	trainertotext PICNICKER, LIZ1, $0
 	farscall UnknownScript_0xbde45
 	if_equal $0, UnknownScript_0xbd5d0
@@ -946,7 +946,7 @@
 
 ; Anthony
 
-UnknownScript_0xbd634:
+AnthonyPhoneScript1:
 	trainertotext HIKER, ANTHONY2, $0
 	checkflag ENGINE_ANTHONY
 	iftrue UnknownScript_0xbd65d
@@ -971,7 +971,7 @@
 	displaylocation ROUTE_33, $2
 	farjump UnknownScript_0xa0afa
 
-UnknownScript_0xbd66b:
+AnthonyPhoneScript2:
 	trainertotext HIKER, ANTHONY2, $0
 	farscall UnknownScript_0xbe1b6
 	checkflag ENGINE_FLYPOINT_GOLDENROD
@@ -1001,7 +1001,7 @@
 	iftrue UnknownScript_0xbd6bd
 	setflag ENGINE_DUNSPARCE_SWARM
 	pokenamemem DUNSPARCE, $1
-	loadwilddata $0, GROUP_DARK_CAVE_VIOLET_ENTRANCE, MAP_DARK_CAVE_VIOLET_ENTRANCE
+	loadwilddata $0, DARK_CAVE_VIOLET_ENTRANCE
 	displaylocation DARK_CAVE, $2
 	farjump UnknownScript_0xa05de
 
@@ -1010,7 +1010,7 @@
 
 ; Todd
 
-UnknownScript_0xbd6c1:
+ToddPhoneScript1:
 	trainertotext CAMPER, TODD1, $0
 	checkflag ENGINE_TODD
 	iftrue UnknownScript_0xbd6ea
@@ -1034,7 +1034,7 @@
 UnknownScript_0xbd6f1:
 	farjump UnknownScript_0xa0b04
 
-UnknownScript_0xbd6f5:
+ToddPhoneScript2:
 	trainertotext CAMPER, TODD1, $0
 	farscall UnknownScript_0xbe1b6
 	checkflag ENGINE_TODD
@@ -1072,7 +1072,7 @@
 
 ; Gina
 
-UnknownScript_0xbd743:
+GinaPhoneScript1:
 	trainertotext PICNICKER, GINA1, $0
 	checkflag ENGINE_GINA
 	iftrue UnknownScript_0xbd776
@@ -1102,7 +1102,7 @@
 	displaylocation ROUTE_34, $2
 	farjump UnknownScript_0xa0abd
 
-UnknownScript_0xbd784:
+GinaPhoneScript2:
 	trainertotext PICNICKER, GINA1, $0
 	farscall UnknownScript_0xbe41e
 	checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
@@ -1147,7 +1147,7 @@
 
 ; Irwin
 
-UnknownScript_0xbd7e7:
+IrwinPhoneScript1:
 	trainertotext JUGGLER, IRWIN1, $0
 	farscall UnknownScript_0xbde4e
 	checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
@@ -1157,7 +1157,7 @@
 UnknownScript_0xbd7f9:
 	farjump UnknownScript_0xa05be
 
-UnknownScript_0xbd7fd:
+IrwinPhoneScript2:
 	trainertotext JUGGLER, IRWIN1, $0
 	farscall UnknownScript_0xbe1b6
 	checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
@@ -1169,7 +1169,7 @@
 
 ; Arnie
 
-UnknownScript_0xbd813:
+ArniePhoneScript1:
 	trainertotext BUG_CATCHER, ARNIE1, $0
 	checkflag ENGINE_ARNIE
 	iftrue UnknownScript_0xbd83c
@@ -1194,7 +1194,7 @@
 	displaylocation ROUTE_35, $2
 	farjump UnknownScript_0xa0aff
 
-UnknownScript_0xbd84a:
+ArniePhoneScript2:
 	trainertotext BUG_CATCHER, ARNIE1, $0
 	farscall UnknownScript_0xbe1b6
 	checkflag ENGINE_ARNIE
@@ -1224,7 +1224,7 @@
 	iftrue UnknownScript_0xbd8a2
 	setflag ENGINE_YANMA_SWARM
 	pokenamemem YANMA, $1
-	loadwilddata $1, GROUP_ROUTE_35, MAP_ROUTE_35
+	loadwilddata $1, ROUTE_35
 	displaylocation ROUTE_35, $2
 	farjump UnknownScript_0xa05ce
 
@@ -1236,7 +1236,7 @@
 
 ; Alan
 
-UnknownScript_0xbd8a6:
+AlanPhoneScript1:
 	trainertotext SCHOOLBOY, ALAN1, $0
 	checkflag ENGINE_ALAN
 	iftrue UnknownScript_0xbd8cf
@@ -1261,7 +1261,7 @@
 	displaylocation ROUTE_36, $2
 	farjump UnknownScript_0xa0ac5
 
-UnknownScript_0xbd8dd:
+AlanPhoneScript2:
 	trainertotext SCHOOLBOY, ALAN1, $0
 	farscall UnknownScript_0xbe1b6
 	checkflag ENGINE_ALAN
@@ -1299,7 +1299,7 @@
 
 ; Dana
 
-UnknownScript_0xbd930:
+DanaPhoneScript1:
 	trainertotext LASS, DANA1, $0
 	checkflag ENGINE_DANA
 	iftrue UnknownScript_0xbd959
@@ -1324,7 +1324,7 @@
 	displaylocation ROUTE_38, $2
 	farjump UnknownScript_0xa0acd
 
-UnknownScript_0xbd967:
+DanaPhoneScript2:
 	trainertotext LASS, DANA1, $0
 	farscall UnknownScript_0xbe41e
 	checkflag ENGINE_DANA
@@ -1367,7 +1367,7 @@
 
 ; Chad
 
-UnknownScript_0xbd9c6:
+ChadPhoneScript1:
 	trainertotext SCHOOLBOY, CHAD1, $0
 	checkflag ENGINE_CHAD
 	iftrue UnknownScript_0xbd9e9
@@ -1386,7 +1386,7 @@
 	displaylocation ROUTE_38, $2
 	farjump UnknownScript_0xa0a7d
 
-UnknownScript_0xbd9f0:
+ChadPhoneScript2:
 	trainertotext SCHOOLBOY, CHAD1, $0
 	farscall UnknownScript_0xbe1b6
 	farscall UnknownScript_0xbde3f
@@ -1417,7 +1417,7 @@
 UnknownScript_0xbda31:
 	farjump UnknownScript_0xa0754
 
-UnknownScript_0xbda35:
+DerekPhoneScript1:
 	trainertotext POKEFANM, DEREK1, $0
 	farscall UnknownScript_0xbde4e
 	checkflag ENGINE_DEREK_HAS_NUGGET
@@ -1441,7 +1441,7 @@
 	displaylocation ROUTE_39, $2
 	farjump UnknownScript_0xa0ad5
 
-UnknownScript_0xbda6e:
+DerekPhoneScript2:
 	trainertotext POKEFANM, DEREK1, $0
 	farscall UnknownScript_0xbe1b6
 	farscall UnknownScript_0xbde3f
@@ -1466,7 +1466,7 @@
 	displaylocation ROUTE_39, $2
 	farjump UnknownScript_0xa05e6
 
-UnknownScript_0xbdaac:
+TullyPhoneScript1:
 	trainertotext FISHER, TULLY1, $0
 	checkflag ENGINE_TULLY
 	iftrue UnknownScript_0xbdad5
@@ -1491,7 +1491,7 @@
 	displaylocation ROUTE_42, $2
 	farjump UnknownScript_0xa0add
 
-UnknownScript_0xbdae3:
+TullyPhoneScript2:
 	trainertotext FISHER, TULLY1, $0
 	farscall UnknownScript_0xbe1b6
 	checkflag ENGINE_TULLY
@@ -1527,7 +1527,7 @@
 	displaylocation ROUTE_42, $2
 	farjump UnknownScript_0xa05e6
 
-UnknownScript_0xbdb36:
+BrentPhoneScript1:
 	trainertotext POKEMANIAC, BRENT1, $0
 	checkflag ENGINE_BRENT
 	iftrue UnknownScript_0xbdb59
@@ -1546,7 +1546,7 @@
 	displaylocation ROUTE_43, $2
 	farjump UnknownScript_0xa0a87
 
-UnknownScript_0xbdb60:
+BrentPhoneScript2:
 	trainertotext POKEMANIAC, BRENT1, $0
 	farscall UnknownScript_0xbe1b6
 	farscall UnknownScript_0xbde3f
@@ -1572,7 +1572,7 @@
 UnknownScript_0xbdb95:
 	farjump UnknownScript_0xa07ce
 
-UnknownScript_0xbdb99:
+TiffanyPhoneScript1:
 	trainertotext PICNICKER, TIFFANY3, $0
 	checkflag ENGINE_TIFFANY
 	iftrue UnknownScript_0xbdbc2
@@ -1597,7 +1597,7 @@
 	displaylocation ROUTE_43, $2
 	farjump UnknownScript_0xa0ae5
 
-UnknownScript_0xbdbd0:
+TiffanyPhoneScript2:
 	trainertotext PICNICKER, TIFFANY3, $0
 	farscall UnknownScript_0xbde45
 	if_equal $0, UnknownScript_0xbdc21
@@ -1673,7 +1673,7 @@
 
 ; Vance
 
-UnknownScript_0xbdc73:
+VancePhoneScript1:
 	trainertotext BIRD_KEEPER, VANCE1, $0
 	checkflag ENGINE_VANCE
 	iftrue UnknownScript_0xbdc96
@@ -1692,7 +1692,7 @@
 	displaylocation ROUTE_44, $2
 	farjump UnknownScript_0xa0a91
 
-UnknownScript_0xbdc9d:
+VancePhoneScript2:
 	trainertotext BIRD_KEEPER, VANCE1, $0
 	farscall UnknownScript_0xbe1b6
 	checkflag ENGINE_VANCE
@@ -1714,7 +1714,7 @@
 	setflag ENGINE_VANCE
 	farjump UnknownScript_0xa0376
 
-UnknownScript_0xbdcce:
+WiltonPhoneScript1:
 	trainertotext FISHER, WILTON1, $0
 	checkflag ENGINE_WILTON
 	iftrue UnknownScript_0xbdcf7
@@ -1739,7 +1739,7 @@
 	displaylocation ROUTE_44, $2
 	farjump UnknownScript_0xa0aed
 
-UnknownScript_0xbdd05:
+WiltonPhoneScript2:
 	trainertotext FISHER, WILTON1, $0
 	farscall UnknownScript_0xbe1b6
 	checkflag ENGINE_WILTON
@@ -1792,12 +1792,12 @@
 
 ; Kenji
 
-UnknownScript_0xbdd71:
+KenjiPhoneScript1:
 	trainertotext BLACKBELT_T, KENJI3, $0
 	farscall UnknownScript_0xbde4e
 	farjump UnknownScript_0xa09ee
 
-UnknownScript_0xbdd7d:
+KenjiPhoneScript2:
 	trainertotext BLACKBELT_T, KENJI3, $0
 	farscall UnknownScript_0xbe1b6
 	farjump UnknownScript_0xa064c
@@ -1804,7 +1804,7 @@
 
 ; Parry
 
-UnknownScript_0xbdd89:
+ParryPhoneScript1:
 	trainertotext HIKER, PARRY1, $0
 	checkflag ENGINE_PARRY
 	iftrue UnknownScript_0xbddac
@@ -1823,7 +1823,7 @@
 	displaylocation ROUTE_45, $2
 	farjump UnknownScript_0xa0a9b
 
-UnknownScript_0xbddb3:
+ParryPhoneScript2:
 	trainertotext HIKER, PARRY1, $0
 	farscall UnknownScript_0xbe1b6
 	checkflag ENGINE_PARRY
@@ -1847,7 +1847,7 @@
 
 ; Erin
 
-UnknownScript_0xbdde4:
+ErinPhoneScript1:
 	trainertotext PICNICKER, ERIN1, $0
 	checkflag ENGINE_ERIN
 	iftrue UnknownScript_0xbde07
@@ -1866,7 +1866,7 @@
 	displaylocation ROUTE_46, $2
 	farjump UnknownScript_0xa0aa0
 
-UnknownScript_0xbde0e:
+ErinPhoneScript2:
 	trainertotext PICNICKER, ERIN1, $0
 	farscall UnknownScript_0xbe41e
 	checkflag ENGINE_ERIN
--- a/engine/pokedex.asm
+++ b/engine/pokedex.asm
@@ -212,7 +212,7 @@
 	ld [hBGMapMode], a ; $ff00+$d4
 	call ClearSprites
 	xor a
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, $168
 	call ByteFill
 	callba Function1de171
@@ -725,7 +725,7 @@
 	xor a
 	ld [hBGMapMode], a ; $ff00+$d4
 	xor a
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, $168
 	call ByteFill
 	call Function41ae1
@@ -1071,10 +1071,10 @@
 	ld de, Unknown_407f2
 	call Function40acd
 	ld a, $32
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $168
 	call ByteFill
-	ld hl, TileMap
+	hlcoord 0, 0
 	lb bc, 7, 7
 	call Function40ad5
 	hlcoord 0, 9
@@ -1135,7 +1135,7 @@
 
 Function407fd: ; 407fd
 	call Function40aa6
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $0f12
 	call Function40ad5
 	hlcoord 19, 0
@@ -1259,7 +1259,7 @@
 
 Function40962: ; 40962 (10:4962)
 	call Function40aa6
-	ld hl, TileMap
+	hlcoord 0, 0
 	lb bc, 7, 7
 	call Function40ad5
 	hlcoord 0, 11
@@ -1387,9 +1387,9 @@
 ; 40aa6
 
 Function40aa6: ; 40aa6
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld a, $32
-	ld bc, $0168
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call ByteFill
 	ret
 ; 40ab2
--- a/engine/predef.asm
+++ b/engine/predef.asm
@@ -79,7 +79,7 @@
 	add_predef Functioncbcdd
 	add_predef Predef2F
 	add_predef Function9853 ; $30
-	add_predef Function864c
+	add_predef Predef_LoadSGBLayout
 	add_predef Function91d11
 	add_predef CheckContestMon
 	add_predef Function8c20f
--- a/engine/radio.asm
+++ b/engine/radio.asm
@@ -1,2115 +1,2141 @@
-PlayRadioShow: ; b8612
-	ld a, [wd002]
-	cp 8
-	jr nc, .ok
-	ld a, [StatusFlags2]
-	bit 0, a
-	jr z, .ok
-	call IsInJohto
-	and a
-	jr nz, .ok
-	ld a, 7
-	ld [wd002], a
-.ok
-	ld a, [wd002]
-	ld e, a
-	ld d, 0
-	ld hl, RadioJumptable
-rept 2
-	add hl, de
-endr
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	jp [hl]
-
-RadioJumptable: ; b863a (2e:463a)
-	dw MaryOakShow1
-	dw MaryOakShow2
-	dw BenMonMusic1
-	dw DJReed1
-	dw Functionb8f12
-	dw Functionb8cbf
-	dw Functionb8b50
-	dw Functionb8e72
-	dw Functionb8ef7
-	dw Functionb8f00
-	dw Functionb8f09
-	dw Functionb8752
-	dw Functionb875a
-	dw Functionb8762
-	dw Functionb8810
-	dw Functionb8818
-	dw Functionb883e
-	dw Functionb8854
-	dw Functionb88d9
-	dw Functionb8a6c
-	dw Functionb8aa4
-	dw Functionb8aac
-	dw Functionb8ab4
-	dw Functionb8b40
-	dw Functionb8b48
-	dw Functionb8b63
-	dw Functionb8b6b
-	dw Functionb8b7d
-	dw Functionb8b8f
-	dw Functionb8b5b
-	dw Functionb8bf5
-	dw Functionb8bfd
-	dw Functionb8c05
-	dw Functionb8c0d
-	dw Functionb8c15
-	dw Functionb8c1d
-	dw Functionb8c25
-	dw Functionb8c3e
-	dw Functionb8c46
-	dw Functionb8c4e
-	dw Functionb8c56
-	dw Functionb8c5e
-	dw Functionb8c6e
-	dw Functionb8c76
-	dw Functionb8cca
-	dw Functionb8cd2
-	dw Functionb8cf2
-	dw Functionb8d56
-	dw Functionb8ded
-	dw Functionb8e28
-	dw Functionb8e7d
-	dw Functionb8e85
-	dw Functionb8e8d
-	dw Functionb8e95
-	dw Functionb8e9d
-	dw Functionb8ea5
-	dw Functionb8ead
-	dw Functionb8eb5
-	dw Functionb8ebd
-	dw Functionb896e
-	dw Functionb8994
-	dw Functionb89a9
-	dw Functionb89c6
-	dw Functionb89d7
-	dw Functionb8f3f
-	dw Functionb8f47
-	dw Functionb8f55
-	dw Functionb909c
-	dw Functionb90a4
-	dw Functionb90ac
-	dw Functionb90c5
-	dw Functionb90d2
-	dw Functionb90da
-	dw Functionb90e2
-	dw Functionb90ea
-	dw Functionb90f2
-	dw Functionb90fa
-	dw Functionb9102
-	dw Functionb910a
-	dw Functionb9112
-	dw Functionb911a
-	dw Functionb9122
-	dw Functionb912a
-	dw Functionb9152
-	dw Functionb8728
-	dw Functionb8abc
-	dw Functionb8ac4
-	dw Functionb8acc
-
-
-Functionb86ea: ; b86ea (2e:46ea)
-	ld [wd003], a
-	ld hl, wd00c
-	ld a, [wd005]
-	cp $2
-	jr nc, .asm_b870a
-	inc hl
-	ld [hl], $0
-	inc a
-	ld [wd005], a
-	cp $2
-	jr nz, .asm_b870a
-	bccoord 1, 16
-	call Function13e5
-	jr .asm_b870d
-.asm_b870a
-	call PrintTextBoxText
-.asm_b870d
-	ld a, $54
-	ld [wd002], a
-	ld a, $64
-	ld [wd004], a
-	ret
-; b8718 (2e:4718)
-
-Functionb8718: ; b8718
-	push hl
-	ld b, $28
-.asm_b871b
-	ld a, [hl]
-	cp $e8
-	jr nz, .asm_b8722
-	ld [hl], $7f
-
-.asm_b8722
-	inc hl
-	dec b
-	jr nz, .asm_b871b
-	pop hl
-	ret
-; b8728
-
-Functionb8728: ; b8728 (2e:4728)
-	ld hl, wd004
-	ld a, [hl]
-	and a
-	jr z, .asm_b8731
-	dec [hl]
-	ret
-.asm_b8731
-	ld a, [wd003]
-	ld [wd002], a
-	ld a, [wd005]
-	cp $1
-	call nz, Functionb8a0b
-	jp Functionb8a17
-
-MaryOakShow1: ; b8742 (2e:4742)
-	ld a, $5
-	ld [wd006], a
-	call Functionb91eb
-	ld hl, UnknownText_0xb8820
-	ld a, $b
-	jp NextRadioLine
-
-Functionb8752: ; b8752 (2e:4752)
-	ld hl, UnknownText_0xb8825
-	ld a, $c
-	jp NextRadioLine
-
-Functionb875a: ; b875a (2e:475a)
-	ld hl, UnknownText_0xb882a
-	ld a, $d
-	jp NextRadioLine
-
-Functionb8762: ; b8762 (2e:4762)
-	call Random
-	and $1f
-	cp $f
-	jr nc, Functionb8762
-	ld hl, Unknown_b87f2
-	ld c, a
-	ld b, 0
-rept 2
-	add hl, bc
-endr
-	ld b, [hl]
-	inc hl
-	ld c, [hl]
-	push bc
-
-	ld hl, WildMons1
-.loop
-	ld a, BANK(WildMons1)
-	call GetFarByte
-	cp $ff
-	jr z, .done2
-	inc hl
-	cp b
-	jr nz, .next
-	ld a, BANK(WildMons1)
-	call GetFarByte
-	cp c
-	jr z, .done
-.next
-	dec hl
-	ld de, $2f
-	add hl, de
-	jr .loop
-
-.done
-rept 4
-	inc hl
-endr
-
-.not3
-	call Random
-	and 3
-	cp 3
-	jr z, .not3
-
-	ld bc, $e
-	call AddNTimes
-.loop2
-	call Random
-	and 7
-	cp 2
-	jr c, .loop2
-	cp 5
-	jr nc, .loop2
-	ld e, a
-	ld d, 0
-rept 2
-	add hl, de
-endr
-	inc hl
-	ld a, BANK(WildMons1)
-	call GetFarByte
-	ld [wd265], a
-	ld [CurPartySpecies], a
-	call GetPokemonName
-	ld hl, StringBuffer1
-	ld de, wd050
-	ld bc, $b
-	call CopyBytes
-
-	pop bc
-	call GetWorldMapLocation
-	ld e, a
-	callba GetLandmarkName
-	ld hl, UnknownText_0xb882f
-	call Functionb91dc
-	ld a, $e
-	jp Functionb86ea
-
-.done2
-	pop bc
-	ld a, $0
-	jp Functionb86ea
-; b87f2 (2e:47f2)
-
-Unknown_b87f2: ; b87f2
-	map ROUTE_29
-	map ROUTE_46
-	map ROUTE_30
-	map ROUTE_32
-	map ROUTE_34
-	map ROUTE_35
-	map ROUTE_37
-	map ROUTE_38
-	map ROUTE_39
-	map ROUTE_42
-	map ROUTE_43
-	map ROUTE_44
-	map ROUTE_45
-	map ROUTE_36
-	map ROUTE_31
-; b8810
-
-Functionb8810: ; b8810 (2e:4810)
-	ld hl, UnknownText_0xb8834
-	ld a, $f
-	jp NextRadioLine
-
-Functionb8818: ; b8818 (2e:4818)
-	ld hl, UnknownText_0xb8839
-	ld a, $10
-	jp NextRadioLine
-; b8820 (2e:4820)
-
-UnknownText_0xb8820: ; 0xb8820
-	; MARY: PROF.OAK'S
-	text_jump UnknownText_0x1bc81a
-	db "@"
-; 0xb8825
-
-UnknownText_0xb8825: ; 0xb8825
-	; #MON TALK!
-	text_jump UnknownText_0x1bc82d
-	db "@"
-; 0xb882a
-
-UnknownText_0xb882a: ; 0xb882a
-	; With me, MARY!
-	text_jump UnknownText_0x1bc83a
-	db "@"
-; 0xb882f
-
-UnknownText_0xb882f: ; 0xb882f
-	; OAK: @ @
-	text_jump UnknownText_0x1bc84b
-	db "@"
-; 0xb8834
-
-UnknownText_0xb8834: ; 0xb8834
-	; may be seen around
-	text_jump UnknownText_0x1bc858
-	db "@"
-; 0xb8839
-
-UnknownText_0xb8839: ; 0xb8839
-	; @ .
-	text_jump UnknownText_0x1bc86d
-	db "@"
-; 0xb883e
-
-Functionb883e: ; b883e (2e:483e)
-	ld a, [CurPartySpecies]
-	ld [wd265], a
-	call GetPokemonName
-	ld hl, UnknownText_0xb884f
-	ld a, $11
-	jp NextRadioLine
-; b884f (2e:484f)
-
-UnknownText_0xb884f: ; 0xb884f
-	; MARY: @ 's
-	text_jump UnknownText_0x1bc876
-	db "@"
-; 0xb8854
-
-Functionb8854: ; b8854 (2e:4854)
-	call Random
-	and $f
-	ld e, a
-	ld d, 0
-	ld hl, Unknown_b8869
-rept 2
-	add hl, de
-endr
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld a, $12
-	jp NextRadioLine
-; b8869 (2e:4869)
-
-Unknown_b8869: ; b8869
-	dw UnknownText_0xb8889
-	dw UnknownText_0xb888e
-	dw UnknownText_0xb8893
-	dw UnknownText_0xb8898
-	dw UnknownText_0xb889d
-	dw UnknownText_0xb88a2
-	dw UnknownText_0xb88a7
-	dw UnknownText_0xb88ac
-	dw UnknownText_0xb88b1
-	dw UnknownText_0xb88b6
-	dw UnknownText_0xb88bb
-	dw UnknownText_0xb88c0
-	dw UnknownText_0xb88c5
-	dw UnknownText_0xb88ca
-	dw UnknownText_0xb88cf
-	dw UnknownText_0xb88d4
-; b8889
-
-UnknownText_0xb8889: ; 0xb8889
-	; sweet and adorably
-	text_jump UnknownText_0x1bc885
-	db "@"
-; 0xb888e
-
-UnknownText_0xb888e: ; 0xb888e
-	; wiggly and slickly
-	text_jump UnknownText_0x1bc89a
-	db "@"
-; 0xb8893
-
-UnknownText_0xb8893: ; 0xb8893
-	; aptly named and
-	text_jump UnknownText_0x1bc8af
-	db "@"
-; 0xb8898
-
-UnknownText_0xb8898: ; 0xb8898
-	; undeniably kind of
-	text_jump UnknownText_0x1bc8c1
-	db "@"
-; 0xb889d
-
-UnknownText_0xb889d: ; 0xb889d
-	; so, so unbearably
-	text_jump UnknownText_0x1bc8d6
-	db "@"
-; 0xb88a2
-
-UnknownText_0xb88a2: ; 0xb88a2
-	; wow, impressively
-	text_jump UnknownText_0x1bc8ea
-	db "@"
-; 0xb88a7
-
-UnknownText_0xb88a7: ; 0xb88a7
-	; almost poisonously
-	text_jump UnknownText_0x1bc8fe
-	db "@"
-; 0xb88ac
-
-UnknownText_0xb88ac: ; 0xb88ac
-	; ooh, so sensually
-	text_jump UnknownText_0x1bc913
-	db "@"
-; 0xb88b1
-
-UnknownText_0xb88b1: ; 0xb88b1
-	; so mischievously
-	text_jump UnknownText_0x1bc927
-	db "@"
-; 0xb88b6
-
-UnknownText_0xb88b6: ; 0xb88b6
-	; so very topically
-	text_jump UnknownText_0x1bc93a
-	db "@"
-; 0xb88bb
-
-UnknownText_0xb88bb: ; 0xb88bb
-	; sure addictively
-	text_jump UnknownText_0x1bc94e
-	db "@"
-; 0xb88c0
-
-UnknownText_0xb88c0: ; 0xb88c0
-	; looks in water is
-	text_jump UnknownText_0x1bc961
-	db "@"
-; 0xb88c5
-
-UnknownText_0xb88c5: ; 0xb88c5
-	; evolution must be
-	text_jump UnknownText_0x1bc975
-	db "@"
-; 0xb88ca
-
-UnknownText_0xb88ca: ; 0xb88ca
-	; provocatively
-	text_jump UnknownText_0x1bc989
-	db "@"
-; 0xb88cf
-
-UnknownText_0xb88cf: ; 0xb88cf
-	; so flipped out and
-	text_jump UnknownText_0x1bc999
-	db "@"
-; 0xb88d4
-
-UnknownText_0xb88d4: ; 0xb88d4
-	; heart-meltingly
-	text_jump UnknownText_0x1bc9ae
-	db "@"
-; 0xb88d9
-
-Functionb88d9: ; b88d9 (2e:48d9)
-	call Random
-	and $f
-	ld e, a
-	ld d, 0
-	ld hl, Unknown_b88fe
-rept 2
-	add hl, de
-endr
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld a, [wd006]
-	dec a
-	ld [wd006], a
-	ld a, $d
-	jr nz, .asm_b88fb
-	ld a, $5
-	ld [wd006], a
-	ld a, $3b
-.asm_b88fb
-	jp NextRadioLine
-; b88fe (2e:48fe)
-
-Unknown_b88fe: ; b88fe
-	dw UnknownText_0xb891e
-	dw UnknownText_0xb8923
-	dw UnknownText_0xb8928
-	dw UnknownText_0xb892d
-	dw UnknownText_0xb8932
-	dw UnknownText_0xb8937
-	dw UnknownText_0xb893c
-	dw UnknownText_0xb8941
-	dw UnknownText_0xb8946
-	dw UnknownText_0xb894b
-	dw UnknownText_0xb8950
-	dw UnknownText_0xb8955
-	dw UnknownText_0xb895a
-	dw UnknownText_0xb895f
-	dw UnknownText_0xb8964
-	dw UnknownText_0xb8969
-; b891e
-
-UnknownText_0xb891e: ; 0xb891e
-	; cute.
-	text_jump UnknownText_0x1bc9c0
-	db "@"
-; 0xb8923
-
-UnknownText_0xb8923: ; 0xb8923
-	; weird.
-	text_jump UnknownText_0x1bc9c8
-	db "@"
-; 0xb8928
-
-UnknownText_0xb8928: ; 0xb8928
-	; pleasant.
-	text_jump UnknownText_0x1bc9d1
-	db "@"
-; 0xb892d
-
-UnknownText_0xb892d: ; 0xb892d
-	; bold, sort of.
-	text_jump UnknownText_0x1bc9dd
-	db "@"
-; 0xb8932
-
-UnknownText_0xb8932: ; 0xb8932
-	; frightening.
-	text_jump UnknownText_0x1bc9ee
-	db "@"
-; 0xb8937
-
-UnknownText_0xb8937: ; 0xb8937
-	; suave & debonair!
-	text_jump UnknownText_0x1bc9fd
-	db "@"
-; 0xb893c
-
-UnknownText_0xb893c: ; 0xb893c
-	; powerful.
-	text_jump UnknownText_0x1bca11
-	db "@"
-; 0xb8941
-
-UnknownText_0xb8941: ; 0xb8941
-	; exciting.
-	text_jump UnknownText_0x1bca1d
-	db "@"
-; 0xb8946
-
-UnknownText_0xb8946: ; 0xb8946
-	; groovy!
-	text_jump UnknownText_0x1bca29
-	db "@"
-; 0xb894b
-
-UnknownText_0xb894b: ; 0xb894b
-	; inspiring.
-	text_jump UnknownText_0x1bca33
-	db "@"
-; 0xb8950
-
-UnknownText_0xb8950: ; 0xb8950
-	; friendly.
-	text_jump UnknownText_0x1bca40
-	db "@"
-; 0xb8955
-
-UnknownText_0xb8955: ; 0xb8955
-	; hot, hot, hot!
-	text_jump UnknownText_0x1bca4c
-	db "@"
-; 0xb895a
-
-UnknownText_0xb895a: ; 0xb895a
-	; stimulating.
-	text_jump UnknownText_0x1bca5d
-	db "@"
-; 0xb895f
-
-UnknownText_0xb895f: ; 0xb895f
-	; guarded.
-	text_jump UnknownText_0x1bca6c
-	db "@"
-; 0xb8964
-
-UnknownText_0xb8964: ; 0xb8964
-	; lovely.
-	text_jump UnknownText_0x1bca77
-	db "@"
-; 0xb8969
-
-UnknownText_0xb8969: ; 0xb8969
-	; speedy.
-	text_jump UnknownText_0x1bca81
-	db "@"
-; 0xb896e
-
-Functionb896e: ; b896e (2e:496e)
-	callba Function91868
-	ld hl, UnknownText_0xb8993
-	call PrintText
-	call WaitBGMap
-	ld hl, UnknownText_0xb898e
-	call PrintText
-	ld a, $3c
-	ld [wd002], a
-	ld a, $64
-	ld [wd004], a
-	ret
-; b898e (2e:498e)
-
-UnknownText_0xb898e: ; 0xb898e
-	; #MON
-	text_jump UnknownText_0x1bca8b
-	db "@"
-; 0xb8993
-
-UnknownText_0xb8993: ; 0xb8993
-	db "@"
-; 0xb8994
-
-Functionb8994: ; b8994 (2e:4994)
-	ld hl, wd004
-	dec [hl]
-	ret nz
-	hlcoord 9, 14
-	ld de, String_b89a4
-	ld a, $3d
-	jp Functionb8a00
-; b89a4 (2e:49a4)
-
-String_b89a4:
-	db "#MON@"
-; b89a9
-
-Functionb89a9: ; b89a9 (2e:49a9)
-	ld hl, wd004
-	dec [hl]
-	ret nz
-	hlcoord 1, 16
-	ld de, String_b89b9
-	ld a, $3e
-	jp Functionb8a00
-; b89b9 (2e:49b9)
-
-String_b89b9:
-	db "#MON Channel@"
-; b89c6
-
-Functionb89c6: ; b89c6 (2e:49c6)
-	ld hl, wd004
-	dec [hl]
-	ret nz
-	hlcoord 12, 16
-	ld de, String_b89d6
-	ld a, $3f
-	jp Functionb8a00
-; b89d6 (2e:49d6)
-
-String_b89d6:
-	db "@"
-; b89d7
-
-Functionb89d7: ; b89d7 (2e:49d7)
-	ld hl, wd004
-	dec [hl]
-	ret nz
-	ld de, $1d
-	callab Function91854
-	ld hl, UnknownText_0xb89ff
-	call PrintText
-	ld a, $d
-	ld [wd003], a
-	xor a
-	ld [wd005], a
-	ld a, $54
-	ld [wd002], a
-	ld a, $a
-	ld [wd004], a
-	ret
-; b89ff (2e:49ff)
-
-UnknownText_0xb89ff: ; 0xb89ff
-	db "@"
-; 0xb8a00
-
-Functionb8a00: ; b8a00 (2e:4a00)
-	ld [wd002], a
-	ld a, $64
-	ld [wd004], a
-	jp PlaceString
-
-Functionb8a0b: ; b8a0b (2e:4a0b)
-	hlcoord 0, 15
-	decoord 0, 13
-	ld bc, $28
-	jp CopyBytes
-
-Functionb8a17: ; b8a17 (2e:4a17)
-	hlcoord 1, 15
-	ld bc, $12
-	ld a, $7f
-	call ByteFill
-	hlcoord 1, 16
-	ld bc, $12
-	ld a, $7f
-	jp ByteFill
-
-Functionb8a2d: ; b8a2d (2e:4a2d)
-	push hl
-	push de
-	ld a, [CurPartySpecies]
-	dec a
-	rlca
-	rlca
-	and 3
-	ld hl, .pokedexbanks
-	ld d, 0
-	ld e, a
-	add hl, de
-	ld a, [hl]
-	pop de
-	pop hl
-	ret
-; b8a42 (2e:4a42)
-
-.pokedexbanks
-	db BANK(PokedexEntries1)
-	db BANK(PokedexEntries2)
-	db BANK(PokedexEntries3)
-	db BANK(PokedexEntries4)
-; b8a46
-
-MaryOakShow2: ; b8a46 (2e:4a46)
-	call Functionb91eb
-.asm_b8a49
-	call Random
-	cp CELEBI
-	jr nc, .asm_b8a49
-	ld c, a
-	push bc
-	ld a, c
-	call CheckCaughtMon
-	pop bc
-	jr z, .asm_b8a49
-	inc c
-	ld a, c
-	ld [CurPartySpecies], a
-	ld [wd265], a
-	call GetPokemonName
-	ld hl, UnknownText_0xb8b30
-	ld a, $13
-	jp NextRadioLine
-
-Functionb8a6c: ; b8a6c (2e:4a6c)
-	ld a, [CurPartySpecies]
-	dec a
-	ld hl, PokedexDataPointerTable
-	ld c, a
-	ld b, 0
-rept 2
-	add hl, bc
-endr
-	ld a, BANK(PokedexDataPointerTable)
-	call GetFarHalfword
-	call Functionb8a2d
-	push af
-	push hl
-	call Functionb8af3
-	dec hl
-	ld [hl], $57
-	ld hl, wd26b
-	call Functionb91dc
-	pop hl
-	pop af
-	call Functionb8b11
-rept 4
-	inc hl
-endr
-	ld a, l
-	ld [wd26b], a
-	ld a, h
-	ld [wd26c], a
-	ld a, $14
-	jp Functionb86ea
-
-Functionb8aa4: ; b8aa4 (2e:4aa4)
-	call Functionb8ad4
-	ld a, $15
-	jp Functionb86ea
-
-Functionb8aac: ; b8aac (2e:4aac)
-	call Functionb8ad4
-	ld a, $16
-	jp Functionb86ea
-
-Functionb8ab4: ; b8ab4 (2e:4ab4)
-	call Functionb8ad4
-	ld a, $55
-	jp Functionb86ea
-
-Functionb8abc: ; b8abc (2e:4abc)
-	call Functionb8ad4
-	ld a, $56
-	jp Functionb86ea
-
-Functionb8ac4: ; b8ac4 (2e:4ac4)
-	call Functionb8ad4
-	ld a, $57
-	jp Functionb86ea
-
-Functionb8acc: ; b8acc (2e:4acc)
-	call Functionb8ad4
-	ld a, $1
-	jp Functionb86ea
-
-Functionb8ad4: ; b8ad4 (2e:4ad4)
-	ld a, [wd26b]
-	ld l, a
-	ld a, [wd26c]
-	ld h, a
-	ld a, [wd26d]
-	push af
-	push hl
-	call Functionb8af3
-	dec hl
-	ld [hl], $57
-	ld hl, wd26b
-	call Functionb91dc
-	pop hl
-	pop af
-	call Functionb8b11
-	ret
-
-Functionb8af3: ; b8af3 (2e:4af3)
-	ld de, wd26d
-	ld bc, $13
-	call FarCopyBytes
-	ld hl, wd26b
-	ld [hl], $0
-	inc hl
-	ld [hl], $4f
-	inc hl
-.asm_b8b05
-	ld a, [hli]
-	cp $50
-	ret z
-	cp $4e
-	ret z
-	cp $5f
-	ret z
-	jr .asm_b8b05
-
-Functionb8b11: ; b8b11 (2e:4b11)
-	ld d, a
-.asm_b8b12
-	ld a, d
-	call GetFarByte
-	inc hl
-	cp $50
-	jr z, .asm_b8b23
-	cp $4e
-	jr z, .asm_b8b23
-	cp $5f
-	jr nz, .asm_b8b12
-.asm_b8b23
-	ld a, l
-	ld [wd26b], a
-	ld a, h
-	ld [wd26c], a
-	ld a, d
-	ld [wd26d], a
-	ret
-; b8b30 (2e:4b30)
-
-UnknownText_0xb8b30: ; 0xb8b30
-	; @ @
-	text_jump UnknownText_0x1bca91
-	db "@"
-; 0xb8b35
-
-BenMonMusic1: ; b8b35 (2e:4b35)
-	call Functionb8b90
-	ld hl, UnknownText_0xb8baa
-	ld a, $17
-	jp NextRadioLine
-
-Functionb8b40: ; b8b40 (2e:4b40)
-	ld hl, UnknownText_0xb8baf
-	ld a, $18
-	jp NextRadioLine
-
-Functionb8b48: ; b8b48 (2e:4b48)
-	ld hl, UnknownText_0xb8bb4
-	ld a, $19
-	jp NextRadioLine
-
-Functionb8b50: ; b8b50 (2e:4b50)
-	call Functionb8b90
-	ld hl, UnknownText_0xb8bb9
-	ld a, $1d
-	jp NextRadioLine
-
-Functionb8b5b: ; b8b5b (2e:4b5b)
-	ld hl, UnknownText_0xb8bbe
-	ld a, $19
-	jp NextRadioLine
-
-Functionb8b63: ; b8b63 (2e:4b63)
-	ld hl, UnknownText_0xb8bc3
-	ld a, $1a
-	jp NextRadioLine
-
-Functionb8b6b: ; b8b6b (2e:4b6b)
-	call GetWeekday
-	and 1
-	ld hl, UnknownText_0xb8bc8
-	jr z, .asm_b8b78
-	ld hl, UnknownText_0xb8bcd
-.asm_b8b78
-	ld a, $1b
-	jp NextRadioLine
-
-Functionb8b7d: ; b8b7d (2e:4b7d)
-	call GetWeekday
-	and 1
-	ld hl, UnknownText_0xb8bd2
-	jr z, .asm_b8b8a
-	ld hl, UnknownText_0xb8bd7
-.asm_b8b8a
-	ld a, $1c
-	jp NextRadioLine
-
-Functionb8b8f: ; b8b8f (2e:4b8f)
-	ret
-
-Functionb8b90: ; b8b90 (2e:4b90)
-	call Function1052
-	call PrintText
-	ld de, MUSIC_POKEMON_MARCH
-	call GetWeekday
-	and 1
-	jr z, .done
-	ld de, MUSIC_POKEMON_LULLABY
-.done
-	callab Function91854
-	ret
-; b8baa (2e:4baa)
-
-UnknownText_0xb8baa: ; 0xb8baa
-	; BEN: #MON MUSIC
-	text_jump UnknownText_0x1bca99
-	db "@"
-; 0xb8baf
-
-UnknownText_0xb8baf: ; 0xb8baf
-	; CHANNEL!
-	text_jump UnknownText_0x1bcaab
-	db "@"
-; 0xb8bb4
-
-UnknownText_0xb8bb4: ; 0xb8bb4
-	; It's me, DJ BEN!
-	text_jump UnknownText_0x1bcab6
-	db "@"
-; 0xb8bb9
-
-UnknownText_0xb8bb9: ; 0xb8bb9
-	; FERN: #MUSIC!
-	text_jump UnknownText_0x1bcac8
-	db "@"
-; 0xb8bbe
-
-UnknownText_0xb8bbe: ; 0xb8bbe
-	; With DJ FERN!
-	text_jump UnknownText_0x1bcad8
-	db "@"
-; 0xb8bc3
-
-UnknownText_0xb8bc3: ; 0xb8bc3
-	; Today's @ ,
-	text_jump UnknownText_0x1bcae8
-	db "@"
-; 0xb8bc8
-
-UnknownText_0xb8bc8: ; 0xb8bc8
-	; so let us jam to
-	text_jump UnknownText_0x1bcaf6
-	db "@"
-; 0xb8bcd
-
-UnknownText_0xb8bcd: ; 0xb8bcd
-	; so chill out to
-	text_jump UnknownText_0x1bcb09
-	db "@"
-; 0xb8bd2
-
-UnknownText_0xb8bd2: ; 0xb8bd2
-	; #MON March!
-	text_jump UnknownText_0x1bcb1b
-	db "@"
-; 0xb8bd7
-
-UnknownText_0xb8bd7: ; 0xb8bd7
-	; #MON Lullaby!
-	text_jump UnknownText_0x1bcb29
-	db "@"
-; 0xb8bdc
-
-DJReed1: ; b8bdc (2e:4bdc)
-	call Functionb91eb
-	callab Functionc434
-	jr nc, .asm_b8bed
-	callab Functionc422
-.asm_b8bed
-	ld hl, UnknownText_0xb8c7e
-	ld a, $1e
-	jp NextRadioLine
-
-Functionb8bf5: ; b8bf5 (2e:4bf5)
-	ld hl, UnknownText_0xb8c83
-	ld a, $1f
-	jp NextRadioLine
-
-Functionb8bfd: ; b8bfd (2e:4bfd)
-	ld hl, UnknownText_0xb8c88
-	ld a, $20
-	jp NextRadioLine
-
-Functionb8c05: ; b8c05 (2e:4c05)
-	ld hl, UnknownText_0xb8c8d
-	ld a, $21
-	jp NextRadioLine
-
-Functionb8c0d: ; b8c0d (2e:4c0d)
-	ld hl, UnknownText_0xb8c92
-	ld a, $22
-	jp NextRadioLine
-
-Functionb8c15: ; b8c15 (2e:4c15)
-	ld hl, UnknownText_0xb8c97
-	ld a, $23
-	jp NextRadioLine
-
-Functionb8c1d: ; b8c1d (2e:4c1d)
-	ld hl, UnknownText_0xb8c9c
-	ld a, $24
-	jp NextRadioLine
-
-Functionb8c25: ; b8c25 (2e:4c25)
-	ld hl, StringBuffer1
-	ld de, wdc9f
-	ld bc, $8205
-	call PrintNum
-	ld a, $50
-	ld [StringBuffer1 + 5], a
-	ld hl, UnknownText_0xb8ca1
-	ld a, $25
-	jp NextRadioLine
-
-Functionb8c3e: ; b8c3e (2e:4c3e)
-	ld hl, UnknownText_0xb8ca6
-	ld a, $26
-	jp NextRadioLine
-
-Functionb8c46: ; b8c46 (2e:4c46)
-	ld hl, UnknownText_0xb8c9c
-	ld a, $27
-	jp NextRadioLine
-
-Functionb8c4e: ; b8c4e (2e:4c4e)
-	ld hl, UnknownText_0xb8ca1
-	ld a, $28
-	jp NextRadioLine
-
-Functionb8c56: ; b8c56 (2e:4c56)
-	ld hl, UnknownText_0xb8cab
-	ld a, $29
-	jp NextRadioLine
-
-Functionb8c5e: ; b8c5e (2e:4c5e)
-	ld hl, UnknownText_0xb8cb0
-	call Random
-	and a
-	ld a, $3
-	jr nz, .asm_b8c6b
-	ld a, $2a
-.asm_b8c6b
-	jp NextRadioLine
-
-Functionb8c6e: ; b8c6e (2e:4c6e)
-	ld hl, UnknownText_0xb8cb5
-	ld a, $2b
-	jp NextRadioLine
-
-Functionb8c76: ; b8c76 (2e:4c76)
-	ld hl, UnknownText_0xb8cba
-	ld a, $3
-	jp NextRadioLine
-; b8c7e (2e:4c7e)
-
-UnknownText_0xb8c7e: ; 0xb8c7e
-	; REED: Yeehaw! How
-	text_jump UnknownText_0x1bcb39
-	db "@"
-; 0xb8c83
-
-UnknownText_0xb8c83: ; 0xb8c83
-	; y'all doin' now?
-	text_jump UnknownText_0x1bcb4d
-	db "@"
-; 0xb8c88
-
-UnknownText_0xb8c88: ; 0xb8c88
-	; Whether you're up
-	text_jump UnknownText_0x1bcb60
-	db "@"
-; 0xb8c8d
-
-UnknownText_0xb8c8d: ; 0xb8c8d
-	; or way down low,
-	text_jump UnknownText_0x1bcb73
-	db "@"
-; 0xb8c92
-
-UnknownText_0xb8c92: ; 0xb8c92
-	; don't you miss the
-	text_jump UnknownText_0x1bcb86
-	db "@"
-; 0xb8c97
-
-UnknownText_0xb8c97: ; 0xb8c97
-	; LUCKY NUMBER SHOW!
-	text_jump UnknownText_0x1bcb9a
-	db "@"
-; 0xb8c9c
-
-UnknownText_0xb8c9c: ; 0xb8c9c
-	; This week's Lucky
-	text_jump UnknownText_0x1bcbaf
-	db "@"
-; 0xb8ca1
-
-UnknownText_0xb8ca1: ; 0xb8ca1
-	; Number is @ !
-	text_jump UnknownText_0x1bcbc2
-	db "@"
-; 0xb8ca6
-
-UnknownText_0xb8ca6: ; 0xb8ca6
-	; I'll repeat that!
-	text_jump UnknownText_0x1bcbd6
-	db "@"
-; 0xb8cab
-
-UnknownText_0xb8cab: ; 0xb8cab
-	; Match it and go to
-	text_jump UnknownText_0x1bcbe9
-	db "@"
-; 0xb8cb0
-
-UnknownText_0xb8cb0: ; 0xb8cb0
-	; the RADIO TOWER!
-	text_jump UnknownText_0x1bcbfe
-	db "@"
-; 0xb8cb5
-
-UnknownText_0xb8cb5: ; 0xb8cb5
-	; …Repeating myself
-	text_jump UnknownText_0x1bcc11
-	db "@"
-; 0xb8cba
-
-UnknownText_0xb8cba: ; 0xb8cba
-	; gets to be a drag…
-	text_jump UnknownText_0x1bcc25
-	db "@"
-; 0xb8cbf
-
-Functionb8cbf: ; b8cbf (2e:4cbf)
-	call Functionb91eb
-	ld hl, UnknownText_0xb8ce3
-	ld a, $2c
-	jp NextRadioLine
-
-Functionb8cca: ; b8cca (2e:4cca)
-	ld hl, UnknownText_0xb8ce8
-	ld a, $2d
-	jp NextRadioLine
-
-Functionb8cd2: ; b8cd2 (2e:4cd2)
-	ld hl, UnknownText_0xb8ced
-	call Random
-	cp $7b
-	ld a, $2e
-	jr c, .asm_b8ce0
-	ld a, $30
-.asm_b8ce0
-	jp NextRadioLine
-; b8ce3 (2e:4ce3)
-
-UnknownText_0xb8ce3: ; 0xb8ce3
-	; PLACES AND PEOPLE!
-	text_jump UnknownText_0x1bcc3a
-	db "@"
-; 0xb8ce8
-
-UnknownText_0xb8ce8: ; 0xb8ce8
-	; Brought to you by
-	text_jump UnknownText_0x1bcc4f
-	db "@"
-; 0xb8ced
-
-UnknownText_0xb8ced: ; 0xb8ced
-	; me, DJ LILY!
-	text_jump UnknownText_0x1bcc63
-	db "@"
-; 0xb8cf2
-
-Functionb8cf2: ; b8cf2 (2e:4cf2)
-	call Random
-	and $7f
-	inc a
-	cp $43
-	jr nc, Functionb8cf2
-	push af
-	ld hl, Unknown_b8d3e
-	ld a, [StatusFlags]
-	bit 6, a
-	jr z, .NotMet
-	ld hl, Unknown_b8d43
-	ld a, [KantoBadges]
-	cp %11111111
-	jr nz, .NotMet
-	ld hl, Unknown_b8d4b
-.NotMet
-	pop af
-	ld c, a
-	ld de, $1
-	push bc
-	call IsInArray
-	pop bc
-	jr c, Functionb8cf2
-	push bc
-	callab Function3952d
-	ld de, StringBuffer1
-	call CopyName1
-	pop bc
-	ld b, $1
-	callab GetTrainerName
-	ld hl, UnknownText_0xb8d51
-	ld a, $2f
-	jp NextRadioLine
-; b8d3e (2e:4d3e)
-
-Unknown_b8d3e: db $0b, $0d, $0e, $0f, $10
-Unknown_b8d43: db $11, $12, $13, $15, $1a, $23, $2e, $40
-Unknown_b8d4b: db $09, $0a, $0c, $2a, $3f
-               db $ff
-; b8d51
-
-UnknownText_0xb8d51: ; 0xb8d51
-	; @  @ @
-	text_jump UnknownText_0x1bcc72
-	db "@"
-; 0xb8d56
-
-Functionb8d56: ; b8d56 (2e:4d56)
-	call Random
-	and $f
-	ld e, a
-	ld d, 0
-	ld hl, Unknown_b8d7d
-rept 2
-	add hl, de
-endr
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	call Random
-	cp $a
-	ld a, $5
-	jr c, .asm_b8d7a
-	call Random
-	cp $7b
-	ld a, $2e
-	jr c, .asm_b8d7a
-	ld a, $30
-.asm_b8d7a
-	jp NextRadioLine
-; b8d7d (2e:4d7d)
-
-Unknown_b8d7d: ; b8d7d
-	dw UnknownText_0xb8d9d
-	dw UnknownText_0xb8da2
-	dw UnknownText_0xb8da7
-	dw UnknownText_0xb8dac
-	dw UnknownText_0xb8db1
-	dw UnknownText_0xb8db6
-	dw UnknownText_0xb8dbb
-	dw UnknownText_0xb8dc0
-	dw UnknownText_0xb8dc5
-	dw UnknownText_0xb8dca
-	dw UnknownText_0xb8dcf
-	dw UnknownText_0xb8dd4
-	dw UnknownText_0xb8dd9
-	dw UnknownText_0xb8dde
-	dw UnknownText_0xb8de3
-	dw UnknownText_0xb8de8
-; b8d9d
-
-UnknownText_0xb8d9d: ; 0xb8d9d
-	; is cute.
-	text_jump UnknownText_0x1bcc80
-	db "@"
-; 0xb8da2
-
-UnknownText_0xb8da2: ; 0xb8da2
-	; is sort of lazy.
-	text_jump UnknownText_0x1bcc8b
-	db "@"
-; 0xb8da7
-
-UnknownText_0xb8da7: ; 0xb8da7
-	; is always happy.
-	text_jump UnknownText_0x1bcc9e
-	db "@"
-; 0xb8dac
-
-UnknownText_0xb8dac: ; 0xb8dac
-	; is quite noisy.
-	text_jump UnknownText_0x1bccb1
-	db "@"
-; 0xb8db1
-
-UnknownText_0xb8db1: ; 0xb8db1
-	; is precocious.
-	text_jump UnknownText_0x1bccc3
-	db "@"
-; 0xb8db6
-
-UnknownText_0xb8db6: ; 0xb8db6
-	; is somewhat bold.
-	text_jump UnknownText_0x1bccd4
-	db "@"
-; 0xb8dbb
-
-UnknownText_0xb8dbb: ; 0xb8dbb
-	; is too picky!
-	text_jump UnknownText_0x1bcce8
-	db "@"
-; 0xb8dc0
-
-UnknownText_0xb8dc0: ; 0xb8dc0
-	; is sort of OK.
-	text_jump UnknownText_0x1bccf8
-	db "@"
-; 0xb8dc5
-
-UnknownText_0xb8dc5: ; 0xb8dc5
-	; is just so-so.
-	text_jump UnknownText_0x1bcd09
-	db "@"
-; 0xb8dca
-
-UnknownText_0xb8dca: ; 0xb8dca
-	; is actually great.
-	text_jump UnknownText_0x1bcd1a
-	db "@"
-; 0xb8dcf
-
-UnknownText_0xb8dcf: ; 0xb8dcf
-	; is just my type.
-	text_jump UnknownText_0x1bcd2f
-	db "@"
-; 0xb8dd4
-
-UnknownText_0xb8dd4: ; 0xb8dd4
-	; is so cool, no?
-	text_jump UnknownText_0x1bcd42
-	db "@"
-; 0xb8dd9
-
-UnknownText_0xb8dd9: ; 0xb8dd9
-	; is inspiring!
-	text_jump UnknownText_0x1bcd54
-	db "@"
-; 0xb8dde
-
-UnknownText_0xb8dde: ; 0xb8dde
-	; is kind of weird.
-	text_jump UnknownText_0x1bcd64
-	db "@"
-; 0xb8de3
-
-UnknownText_0xb8de3: ; 0xb8de3
-	; is right for me?
-	text_jump UnknownText_0x1bcd78
-	db "@"
-; 0xb8de8
-
-UnknownText_0xb8de8: ; 0xb8de8
-	; is definitely odd!
-	text_jump UnknownText_0x1bcd8b
-	db "@"
-; 0xb8ded
-
-Functionb8ded: ; b8ded (2e:4ded)
-	call Random
-	cp $9
-	jr nc, Functionb8ded
-	ld hl, Unknown_b8e11
-	ld c, a
-	ld b, 0
-rept 2
-	add hl, bc
-endr
-	ld b, [hl]
-	inc hl
-	ld c, [hl]
-	call GetWorldMapLocation
-	ld e, a
-	callba GetLandmarkName
-	ld hl, UnknownText_0xb8e23
-	ld a, $31
-	jp NextRadioLine
-; b8e11 (2e:4e11)
-
-Unknown_b8e11: ; b8e11
-	map PALLET_TOWN
-	map ROUTE_22
-	map PEWTER_CITY
-	map CERULEAN_POLICE_STATION
-	map ROUTE_12
-	map ROUTE_11
-	map ROUTE_16
-	map ROUTE_14
-	map CINNABAR_POKECENTER_2F_BETA
-; b8e23
-
-UnknownText_0xb8e23: ; 0xb8e23
-	; @ @
-	text_jump UnknownText_0x1bcda0
-	db "@"
-; 0xb8e28
-
-Functionb8e28: ; b8e28 (2e:4e28)
-	call Random
-	and $f
-	ld e, a
-	ld d, 0
-	ld hl, Unknown_b8e52
-rept 2
-	add hl, de
-endr
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	call Functionb91dc
-	call Random
-	cp $a
-	ld a, $5
-	jr c, .asm_b8e4f
-	call Random
-	cp $7b
-	ld a, $2e
-	jr c, .asm_b8e4f
-	ld a, $30
-.asm_b8e4f
-	jp Functionb86ea
-; b8e52 (2e:4e52)
-
-Unknown_b8e52: ; b8e52
-	dw UnknownText_0xb8d9d
-	dw UnknownText_0xb8da2
-	dw UnknownText_0xb8da7
-	dw UnknownText_0xb8dac
-	dw UnknownText_0xb8db1
-	dw UnknownText_0xb8db6
-	dw UnknownText_0xb8dbb
-	dw UnknownText_0xb8dc0
-	dw UnknownText_0xb8dc5
-	dw UnknownText_0xb8dca
-	dw UnknownText_0xb8dcf
-	dw UnknownText_0xb8dd4
-	dw UnknownText_0xb8dd9
-	dw UnknownText_0xb8dde
-	dw UnknownText_0xb8de3
-	dw UnknownText_0xb8de8
-; b8e72
-
-Functionb8e72: ; b8e72 (2e:4e72)
-	call Functionb91eb
-	ld hl, UnknownText_0xb8ec5
-	ld a, $32
-	jp NextRadioLine
-
-Functionb8e7d: ; b8e7d (2e:4e7d)
-	ld hl, UnknownText_0xb8eca
-	ld a, $33
-	jp NextRadioLine
-
-Functionb8e85: ; b8e85 (2e:4e85)
-	ld hl, UnknownText_0xb8ecf
-	ld a, $34
-	jp NextRadioLine
-
-Functionb8e8d: ; b8e8d (2e:4e8d)
-	ld hl, UnknownText_0xb8ed4
-	ld a, $35
-	jp NextRadioLine
-
-Functionb8e95: ; b8e95 (2e:4e95)
-	ld hl, UnknownText_0xb8ed9
-	ld a, $36
-	jp NextRadioLine
-
-Functionb8e9d: ; b8e9d (2e:4e9d)
-	ld hl, UnknownText_0xb8ede
-	ld a, $37
-	jp NextRadioLine
-
-Functionb8ea5: ; b8ea5 (2e:4ea5)
-	ld hl, UnknownText_0xb8ee3
-	ld a, $38
-	jp NextRadioLine
-
-Functionb8ead: ; b8ead (2e:4ead)
-	ld hl, UnknownText_0xb8ee8
-	ld a, $39
-	jp NextRadioLine
-
-Functionb8eb5: ; b8eb5 (2e:4eb5)
-	ld hl, UnknownText_0xb8eed
-	ld a, $3a
-	jp NextRadioLine
-
-Functionb8ebd: ; b8ebd (2e:4ebd)
-	ld hl, UnknownText_0xb8ef2
-	ld a, $7
-	jp NextRadioLine
-; b8ec5 (2e:4ec5)
-
-UnknownText_0xb8ec5: ; 0xb8ec5
-	; … …Ahem, we are
-	text_jump UnknownText_0x1bcda8
-	db "@"
-; 0xb8eca
-
-UnknownText_0xb8eca: ; 0xb8eca
-	; TEAM ROCKET!
-	text_jump UnknownText_0x1bcdba
-	db "@"
-; 0xb8ecf
-
-UnknownText_0xb8ecf: ; 0xb8ecf
-	; After three years
-	text_jump UnknownText_0x1bcdc9
-	db "@"
-; 0xb8ed4
-
-UnknownText_0xb8ed4: ; 0xb8ed4
-	; of preparation, we
-	text_jump UnknownText_0x1bcddd
-	db "@"
-; 0xb8ed9
-
-UnknownText_0xb8ed9: ; 0xb8ed9
-	; have risen again
-	text_jump UnknownText_0x1bcdf2
-	db "@"
-; 0xb8ede
-
-UnknownText_0xb8ede: ; 0xb8ede
-	; from the ashes!
-	text_jump UnknownText_0x1bce05
-	db "@"
-; 0xb8ee3
-
-UnknownText_0xb8ee3: ; 0xb8ee3
-	; GIOVANNI! @ Can you
-	text_jump UnknownText_0x1bce17
-	db "@"
-; 0xb8ee8
-
-UnknownText_0xb8ee8: ; 0xb8ee8
-	; hear?@  We did it!
-	text_jump UnknownText_0x1bce2e
-	db "@"
-; 0xb8eed
-
-UnknownText_0xb8eed: ; 0xb8eed
-	; @ Where is our boss?
-	text_jump UnknownText_0x1bce44
-	db "@"
-; 0xb8ef2
-
-UnknownText_0xb8ef2: ; 0xb8ef2
-	; @ Is he listening?
-	text_jump UnknownText_0x1bce5c
-	db "@"
-; 0xb8ef7
-
-Functionb8ef7: ; b8ef7 (2e:4ef7)
-	call Functionb91eb
-	ld a, $1
-	ld [wd005], a
-	ret
-
-Functionb8f00: ; b8f00 (2e:4f00)
-	call Functionb91eb
-	ld a, $1
-	ld [wd005], a
-	ret
-
-Functionb8f09: ; b8f09 (2e:4f09)
-	call Functionb91eb
-	ld a, $1
-	ld [wd005], a
-	ret
-
-Functionb8f12: ; b8f12 (2e:4f12)
-	call Functionb9169
-	jp nc, Functionb8f22
-	ld a, [wd005]
-	and a
-	jp z, Functionb912a
-	jp Functionb90c5
-
-Functionb8f22: ; b8f22 (2e:4f22)
-	call Functionb91eb
-	ld a, [hBGMapMode] ; $ff00+$d4
-	push af
-	xor a
-	ld [hBGMapMode], a ; $ff00+$d4
-	ld de, String_b9171
-	hlcoord 2, 9
-	call PlaceString
-	pop af
-	ld [hBGMapMode], a ; $ff00+$d4
-	ld hl, UnknownText_0xb9182
-	ld a, $40
-	jp NextRadioLine
-
-Functionb8f3f: ; b8f3f (2e:4f3f)
-	ld hl, UnknownText_0xb9187
-	ld a, $41
-	jp NextRadioLine
-
-Functionb8f47: ; b8f47 (2e:4f47)
-	call Functionb9169
-	ld hl, UnknownText_0xb918c
-	jp c, Functionb90b9
-	ld a, $42
-	jp NextRadioLine
-
-Functionb8f55: ; b8f55 (2e:4f55)
-	call Functionb9169
-	jp c, Functionb90c5
-	ld a, [wdc4a]
-	ld hl, WeeklyFlags
-	bit 7, [hl]
-	jr nz, .asm_b8f83
-.asm_b8f65
-	call Random
-	and $f
-	cp $b
-	jr nc, .asm_b8f65
-	swap a
-	ld e, a
-.asm_b8f71
-	call Random
-	and $3
-	cp $3
-	jr nc, .asm_b8f71
-	add e
-	ld [wdc4a], a
-	ld hl, WeeklyFlags
-	set 7, [hl]
-.asm_b8f83
-	ld c, a
-	call Functionb8f8f
-	ld hl, UnknownText_0xb9191
-	ld a, $43
-	jp NextRadioLine
-
-Functionb8f8f: ; b8f8f
-	ld a, c
-	swap a
-	and $f
-	ld hl, Unknown_b8ff9
-	ld d, 0
-	ld e, a
-rept 2
-	add hl, de
-endr
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld a, [hli]
-	ld b, a
-	push hl
-	inc hl
-	ld a, c
-	and $f
-	ld c, a
-	push hl
-	ld hl, Jumptable_b8fb8
-	ld e, b
-rept 2
-	add hl, de
-endr
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	pop de
-	call _hl_
-	pop hl
-	ld c, [hl]
-	ret
-; b8fb8
-
-
-Jumptable_b8fb8: ; b8fb8 (2e:4fb8)
-	dw Functionb8fc0
-	dw Functionb8fc7
-	dw Functionb8fce
-	dw Functionb8fde
-
-
-Functionb8fc0: ; b8fc0 (2e:4fc0)
-	call Functionb8fd5
-	call GetPokemonName
-	ret
-
-Functionb8fc7: ; b8fc7 (2e:4fc7)
-	call Functionb8fd5
-	call GetItemName
-	ret
-
-Functionb8fce: ; b8fce (2e:4fce)
-	call Functionb8fd5
-	call GetMoveName
-	ret
-
-Functionb8fd5: ; b8fd5 (2e:4fd5)
-	ld h, 0
-	ld l, c
-	add hl, de
-	ld a, [hl]
-	ld [wd265], a
-	ret
-
-Functionb8fde: ; b8fde (2e:4fde)
-	ld a, c
-	and a
-	jr z, .asm_b8feb
-.asm_b8fe2
-	ld a, [de]
-	inc de
-	cp $50
-	jr nz, .asm_b8fe2
-	dec c
-	jr nz, .asm_b8fe2
-.asm_b8feb
-	ld hl, StringBuffer1
-.asm_b8fee
-	ld a, [de]
-	inc de
-	ld [hli], a
-	cp $50
-	jr nz, .asm_b8fee
-	ld de, StringBuffer1
-	ret
-; b8ff9 (2e:4ff9)
-
-Unknown_b8ff9: ; b8ff9
-	dw Unknown_b900f
-	dw Unknown_b9014
-	dw Unknown_b9019
-	dw Unknown_b901e
-	dw Unknown_b9023
-	dw Unknown_b9028
-	dw Unknown_b902d
-	dw Unknown_b905a
-	dw Unknown_b906d
-	dw Unknown_b9072
-	dw Unknown_b9077
-; b900f
-
-Unknown_b900f: db 0, 10, CYNDAQUIL, TOTODILE, CHIKORITA
-Unknown_b9014: db 1, 12, FRESH_WATER, SODA_POP, LEMONADE
-Unknown_b9019: db 1, 12, POTION, ANTIDOTE, PARLYZ_HEAL
-Unknown_b901e: db 1, 12, POKE_BALL, GREAT_BALL, ULTRA_BALL
-Unknown_b9023: db 0, 10, PIKACHU, RATTATA, GEODUDE
-Unknown_b9028: db 0, 10, HOOTHOOT, SPINARAK, DROWZEE
-Unknown_b902d: db 3, 16, "NEW BARK TOWN@", "CHERRYGROVE CITY@", "AZALEA TOWN@"
-Unknown_b905a: db 3,  6, "FLYING@", "BUG@", "GRASS@"
-Unknown_b906d: db 2, 12, TACKLE, GROWL, MUD_SLAP
-Unknown_b9072: db 1, 12, X_ATTACK, X_DEFEND, X_SPEED
-Unknown_b9077: db 3, 13, "#MON Talk@", "#MON Music@", "Lucky Channel@"
-; b909c
-
-Functionb909c: ; b909c (2e:509c)
-	ld hl, UnknownText_0xb9196
-	ld a, $44
-	jp NextRadioLine
-
-Functionb90a4: ; b90a4 (2e:50a4)
-	ld hl, UnknownText_0xb919b
-	ld a, $45
-	jp NextRadioLine
-
-Functionb90ac: ; b90ac (2e:50ac)
-	call Functionb9169
-	ld hl, UnknownText_0xb91a0
-	jr c, Functionb90b9
-	ld a, $4
-	jp NextRadioLine
-
-Functionb90b9: ; b90b9 (2e:50b9)
-	push hl
-	ld hl, WeeklyFlags
-	res 7, [hl]
-	pop hl
-	ld a, $46
-	jp NextRadioLine
-
-Functionb90c5: ; b90c5 (2e:50c5)
-	ld hl, WeeklyFlags
-	res 7, [hl]
-	ld hl, UnknownText_0xb91d2
-	ld a, $47
-	jp NextRadioLine
-
-Functionb90d2: ; b90d2 (2e:50d2)
-	ld hl, UnknownText_0xb91a5
-	ld a, $48
-	jp NextRadioLine
-
-Functionb90da: ; b90da (2e:50da)
-	ld hl, UnknownText_0xb91aa
-	ld a, $49
-	jp NextRadioLine
-
-Functionb90e2: ; b90e2 (2e:50e2)
-	ld hl, UnknownText_0xb91af
-	ld a, $4a
-	jp NextRadioLine
-
-Functionb90ea: ; b90ea (2e:50ea)
-	ld hl, UnknownText_0xb91b4
-	ld a, $4b
-	jp NextRadioLine
-
-Functionb90f2: ; b90f2 (2e:50f2)
-	ld hl, UnknownText_0xb91b9
-	ld a, $4c
-	jp NextRadioLine
-
-Functionb90fa: ; b90fa (2e:50fa)
-	ld hl, UnknownText_0xb91be
-	ld a, $4d
-	jp NextRadioLine
-
-Functionb9102: ; b9102 (2e:5102)
-	ld hl, UnknownText_0xb91c3
-	ld a, $4e
-	jp NextRadioLine
-
-Functionb910a: ; b910a (2e:510a)
-	ld hl, UnknownText_0xb91c8
-	ld a, $4f
-	jp NextRadioLine
-
-Functionb9112: ; b9112 (2e:5112)
-	ld hl, UnknownText_0xb91cd
-	ld a, $50
-	jp NextRadioLine
-
-Functionb911a: ; b911a (2e:511a)
-	ld hl, UnknownText_0xb91d2
-	ld a, $51
-	jp NextRadioLine
-
-Functionb9122: ; b9122 (2e:5122)
-	ld hl, UnknownText_0xb91d2
-	ld a, $52
-	jp NextRadioLine
-
-Functionb912a: ; b912a (2e:512a)
-	ld a, [hBGMapMode] ; $ff00+$d4
-	push af
-	callba NoRadioMusic
-	callba NoRadioName
-	pop af
-	ld [hBGMapMode], a ; $ff00+$d4
-	ld hl, WeeklyFlags
-	res 7, [hl]
-	ld a, $4
-	ld [wd002], a
-	xor a
-	ld [wd005], a
-	ld hl, UnknownText_0xb91d7
-	ld a, $53
-	jp NextRadioLine
-
-Functionb9152: ; b9152 (2e:5152)
-	ld a, $4
-	ld [wd002], a
-	xor a
-	ld [wd005], a
-	call Functionb9169
-	jp nc, Functionb8f12
-	ld hl, UnknownText_0xb91d7
-	ld a, $53
-	jp NextRadioLine
-
-Functionb9169: ; b9169 (2e:5169)
-	call UpdateTime
-	ld a, [hHours] ; $ff00+$94
-	cp $12
-	ret
-; b9171 (2e:5171)
-
-String_b9171:
-	db "BUENA'S PASSWORD@"
-; b9182
-
-UnknownText_0xb9182: ; 0xb9182
-	; BUENA: BUENA here!
-	text_jump UnknownText_0x1bce72
-	db "@"
-; 0xb9187
-
-UnknownText_0xb9187: ; 0xb9187
-	; Today's password!
-	text_jump UnknownText_0x1bce87
-	db "@"
-; 0xb918c
-
-UnknownText_0xb918c: ; 0xb918c
-	; Let me think… It's
-	text_jump UnknownText_0x1bce9a
-	db "@"
-; 0xb9191
-
-UnknownText_0xb9191: ; 0xb9191
-	; @ !
-	text_jump UnknownText_0x1bceae
-	db "@"
-; 0xb9196
-
-UnknownText_0xb9196: ; 0xb9196
-	; Don't forget it!
-	text_jump UnknownText_0x1bceb7
-	db "@"
-; 0xb919b
-
-UnknownText_0xb919b: ; 0xb919b
-	; I'm in GOLDENROD's
-	text_jump UnknownText_0x1bcec9
-	db "@"
-; 0xb91a0
-
-UnknownText_0xb91a0: ; 0xb91a0
-	; RADIO TOWER!
-	text_jump UnknownText_0x1bcedc
-	db "@"
-; 0xb91a5
-
-UnknownText_0xb91a5: ; 0xb91a5
-	; BUENA: Oh my…
-	text_jump UnknownText_0x1bceeb
-	db "@"
-; 0xb91aa
-
-UnknownText_0xb91aa: ; 0xb91aa
-	; It's midnight! I
-	text_jump UnknownText_0x1bcefb
-	db "@"
-; 0xb91af
-
-UnknownText_0xb91af: ; 0xb91af
-	; have to shut down!
-	text_jump UnknownText_0x1bcf0d
-	db "@"
-; 0xb91b4
-
-UnknownText_0xb91b4: ; 0xb91b4
-	; Thanks for tuning
-	text_jump UnknownText_0x1bcf22
-	db "@"
-; 0xb91b9
-
-UnknownText_0xb91b9: ; 0xb91b9
-	; in to the end! But
-	text_jump UnknownText_0x1bcf36
-	db "@"
-; 0xb91be
-
-UnknownText_0xb91be: ; 0xb91be
-	; don't stay up too
-	text_jump UnknownText_0x1bcf4b
-	db "@"
-; 0xb91c3
-
-UnknownText_0xb91c3: ; 0xb91c3
-	; late! Presented to
-	text_jump UnknownText_0x1bcf5e
-	db "@"
-; 0xb91c8
-
-UnknownText_0xb91c8: ; 0xb91c8
-	; you by DJ BUENA!
-	text_jump UnknownText_0x1bcf73
-	db "@"
-; 0xb91cd
-
-UnknownText_0xb91cd: ; 0xb91cd
-	; I'm outta here!
-	text_jump UnknownText_0x1bcf86
-	db "@"
-; 0xb91d2
-
-UnknownText_0xb91d2: ; 0xb91d2
-	; …
-	text_jump UnknownText_0x1bcf96
-	db "@"
-; 0xb91d7
-
-UnknownText_0xb91d7: ; 0xb91d7
-	;
-	text_jump UnknownText_0x1bcf99
-	db "@"
-; 0xb91dc
-
-Functionb91dc: ; b91dc (2e:51dc)
-	ld a, [hl]
-	cp $16 ; TX_FAR
-	jp z, FarJumpText
-	ld de, wd00c
-	ld bc, $28
-	jp CopyBytes
-
-Functionb91eb: ; b91eb (2e:51eb)
-	ld a, [wd005]
-	and a
-	ret nz
-	call Function1052
-	call PrintText
-	ld hl, RadioChannelSongs
-	ld a, [wd002]
-	ld c, a
-	ld b, 0
-rept 2
-	add hl, bc
-endr
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	callab Function91854
-	ret
-; b920b (2e:520b)
-
-RadioChannelSongs: ; b920b
-	dw MUSIC_POKEMON_TALK
-	dw MUSIC_POKEMON_CENTER
-	dw MUSIC_TITLE
-	dw MUSIC_GAME_CORNER
-	dw MUSIC_BUENAS_PASSWORD
-	dw MUSIC_VIRIDIAN_CITY
-	dw MUSIC_BICYCLE
-	dw MUSIC_ROCKET_OVERTURE
-	dw MUSIC_POKE_FLUTE_CHANNEL
-	dw MUSIC_RUINS_OF_ALPH_RADIO
-	dw MUSIC_LAKE_OF_RAGE_ROCKET_RADIO
-; b9221
-
-NextRadioLine: ; b9221 (2e:5221)
-	push af
-	call Functionb91dc
-	pop af
-	jp Functionb86ea
-; b9229
+PlayRadioShow: ; b8612
+; If we're already in the radio program proper, we don't need to be here.
+	ld a, [wd002]
+	cp 8
+	jr nc, .ok
+; If Team Rocket is not occupying the radio tower, we don't need to be here.
+	ld a, [StatusFlags2]
+	bit 0, a ; checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
+	jr z, .ok
+; If we're in Kanto, we don't need to be here.
+	call IsInJohto
+	and a
+	jr nz, .ok
+; Team Rocket broadcasts on all stations.
+	ld a, 7
+	ld [wd002], a
+.ok
+; Jump to the currently loaded station.  The index to which we need to jump is in wd002.
+	ld a, [wd002]
+	ld e, a
+	ld d, 0
+	ld hl, RadioJumptable
+rept 2
+	add hl, de
+endr
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	jp [hl]
+
+RadioJumptable: ; b863a (2e:463a)
+	dw OaksPkmnTalk1  ; $00
+	dw PokedexShow1 ; $01
+	dw BenMonMusic1  ; $02
+	dw LuckyNumberShow1 ; $03
+	dw BuenasPassword1 ; $04
+	dw PeoplePlaces1 ; $05
+	dw FernMonMusic1 ; $06
+	dw RocketRadio1 ; $07
+	dw PokeFluteRadio ; $08
+	dw EvolutionRadio ; $09
+	dw UnownRadio ; $0a
+; OaksPkmnTalk
+	dw OaksPkmnTalk2  ; $0b
+	dw OaksPkmnTalk3  ; $0c
+	dw OaksPkmnTalk4  ; $0d
+	dw OaksPkmnTalk5  ; $0e
+	dw OaksPkmnTalk6  ; $0f
+	dw OaksPkmnTalk7  ; $10
+	dw OaksPkmnTalk8  ; $11
+	dw OaksPkmnTalk9  ; $12
+	dw OaksPkmnTalk10 ; $13
+	dw OaksPkmnTalk11 ; $14
+	dw OaksPkmnTalk12 ; $15
+	dw OaksPkmnTalk13 ; $16
+; Ben Music
+	dw BenMonMusic2  ; $17
+	dw BenMonMusic3  ; $18
+	dw BenFernMusic4 ; $19
+	dw BenFernMusic5 ; $1a
+	dw BenFernMusic6 ; $1b
+	dw BenFernMusic7 ; $1c
+	dw FernMonMusic2 ; $1d
+; Lucky Number Show
+	dw LuckyNumberShow2 ; $1e
+	dw LuckyNumberShow3 ; $1f
+	dw LuckyNumberShow4 ; $20
+	dw LuckyNumberShow5 ; $21
+	dw LuckyNumberShow6 ; $22
+	dw LuckyNumberShow7 ; $23
+	dw LuckyNumberShow8 ; $24
+	dw LuckyNumberShow9 ; $25
+	dw LuckyNumberShow10 ; $26
+	dw LuckyNumberShow11 ; $27
+	dw LuckyNumberShow12 ; $28
+	dw LuckyNumberShow13 ; $29
+	dw LuckyNumberShow14 ; $2a
+	dw LuckyNumberShow15 ; $2b
+	dw LuckyNumberShow16 ; $2c
+	dw LuckyNumberShow17 ; $2d
+	dw LuckyNumberShow18 ; $2e
+	dw LuckyNumberShow19 ; $2f
+	dw LuckyNumberShow20 ; $30
+	dw LuckyNumberShow21 ; $31
+; Rocket Radio
+	dw RocketRadio2 ; $32
+	dw RocketRadio3 ; $33
+	dw RocketRadio4 ; $34
+	dw RocketRadio5 ; $35
+	dw RocketRadio6 ; $36
+	dw RocketRadio7 ; $37
+	dw RocketRadio8 ; $38
+	dw RocketRadio9 ; $39
+	dw RocketRadio10 ; $3a
+; More Pokemon Channel stuff
+	dw OaksPkmnTalk14 ; $3b
+	dw OaksPkmnTalk15 ; $3c
+	dw OaksPkmnTalk16 ; $3d
+	dw OaksPkmnTalk17 ; $3e
+	dw OaksPkmnTalk18 ; $3f
+; Buenas Password
+	dw BuenasPassword2 ; $40
+	dw BuenasPassword3 ; $41
+	dw BuenasPassword4 ; $42
+	dw BuenasPassword5 ; $43
+	dw BuenasPassword6 ; $44
+	dw BuenasPassword7 ; $45
+	dw BuenasPassword8 ; $46
+	dw BuenasPassword9 ; $47
+	dw BuenasPassword10 ; $48
+	dw BuenasPassword11 ; $49
+	dw BuenasPassword12 ; $4a
+	dw BuenasPassword13 ; $4b
+	dw BuenasPassword14 ; $4c
+	dw BuenasPassword15 ; $4d
+	dw BuenasPassword16 ; $4e
+	dw BuenasPassword17 ; $4f
+	dw BuenasPassword18 ; $50
+	dw BuenasPassword19 ; $51
+	dw BuenasPassword20 ; $52
+	dw BuenasPassword21 ; $53
+	dw RadioScroll ; $54
+; More Pokemon Channel stuff
+	dw OaksPkmnTalk19 ; $55
+	dw OaksPkmnTalk20 ; $56
+	dw OaksPkmnTalk21 ; $57
+
+
+PrintRadioLine: ; b86ea (2e:46ea)
+	ld [wd003], a
+	ld hl, wd00c
+	ld a, [wd005]
+	cp $2
+	jr nc, .print
+	inc hl
+	ld [hl], $0
+	inc a
+	ld [wd005], a
+	cp $2
+	jr nz, .print
+	bccoord 1, 16
+	call PlaceWholeStringInBoxAtOnce
+	jr .skip
+.print
+	call PrintTextBoxText
+.skip
+	ld a, $54
+	ld [wd002], a
+	ld a, $64
+	ld [wd004], a
+	ret
+; b8718 (2e:4718)
+
+Functionb8718: ; b8718
+	push hl
+	ld b, SCREEN_WIDTH * 2
+.greater_than_10
+	ld a, [hl]
+	cp "."
+	jr nz, .next
+	ld [hl], " "
+
+.next
+	inc hl
+	dec b
+	jr nz, .greater_than_10
+	pop hl
+	ret
+; b8728
+
+RadioScroll: ; b8728 (2e:4728)
+	ld hl, wd004
+	ld a, [hl]
+	and a
+	jr z, .proceed
+	dec [hl]
+	ret
+.proceed
+	ld a, [wd003]
+	ld [wd002], a
+	ld a, [wd005]
+	cp 1
+	call nz, CopyBottomLineToTopLine
+	jp ClearBottomLine
+
+OaksPkmnTalk1: ; b8742 (2e:4742)
+	ld a, $5
+	ld [wd006], a
+	call StartRadioStation
+	ld hl, UnknownText_0xb8820
+	ld a, $b
+	jp NextRadioLine
+
+OaksPkmnTalk2: ; b8752 (2e:4752)
+	ld hl, UnknownText_0xb8825
+	ld a, $c
+	jp NextRadioLine
+
+OaksPkmnTalk3: ; b875a (2e:475a)
+	ld hl, UnknownText_0xb882a
+	ld a, $d
+	jp NextRadioLine
+
+OaksPkmnTalk4: ; b8762 (2e:4762)
+; Choose a random root, and a random Pokemon from that route.
+	call Random
+	and $1f
+	cp $f
+	jr nc, OaksPkmnTalk4
+	ld hl, Unknown_b87f2
+	ld c, a
+	ld b, 0
+rept 2
+	add hl, bc
+endr
+	ld b, [hl]
+	inc hl
+	ld c, [hl]
+	push bc
+
+	ld hl, JohtoGrassWildMons
+.greater_than_10
+	ld a, BANK(JohtoGrassWildMons)
+	call GetFarByte
+	cp -1
+	jr z, .done2
+	inc hl
+	cp b
+	jr nz, .next
+	ld a, BANK(JohtoGrassWildMons)
+	call GetFarByte
+	cp c
+	jr z, .done
+.next
+	dec hl
+	ld de, $2f
+	add hl, de
+	jr .greater_than_10
+
+.done
+rept 4
+	inc hl
+endr
+
+.both_bits_set
+	call Random
+	and 3
+	cp 3
+	jr z, .both_bits_set
+
+	ld bc, $e
+	call AddNTimes
+.greater_than_102
+	call Random
+	and 7
+	cp 2
+	jr c, .greater_than_102
+	cp 5
+	jr nc, .greater_than_102
+	ld e, a
+	ld d, 0
+rept 2
+	add hl, de
+endr
+	inc hl
+	ld a, BANK(JohtoGrassWildMons)
+	call GetFarByte
+	ld [wd265], a
+	ld [CurPartySpecies], a
+	call GetPokemonName
+	ld hl, StringBuffer1
+	ld de, wd050
+	ld bc, $b
+	call CopyBytes
+
+	pop bc
+	call GetWorldMapLocation
+	ld e, a
+	callba GetLandmarkName
+	ld hl, UnknownText_0xb882f
+	call CopyRadioTextToRAM
+	ld a, $e
+	jp PrintRadioLine
+
+.done2
+	pop bc
+	ld a, $0
+	jp PrintRadioLine
+; b87f2 (2e:47f2)
+
+Unknown_b87f2: ; b87f2
+	map ROUTE_29
+	map ROUTE_46
+	map ROUTE_30
+	map ROUTE_32
+	map ROUTE_34
+	map ROUTE_35
+	map ROUTE_37
+	map ROUTE_38
+	map ROUTE_39
+	map ROUTE_42
+	map ROUTE_43
+	map ROUTE_44
+	map ROUTE_45
+	map ROUTE_36
+	map ROUTE_31
+; b8810
+
+OaksPkmnTalk5: ; b8810 (2e:4810)
+	ld hl, UnknownText_0xb8834
+	ld a, $f
+	jp NextRadioLine
+
+OaksPkmnTalk6: ; b8818 (2e:4818)
+	ld hl, UnknownText_0xb8839
+	ld a, $10
+	jp NextRadioLine
+; b8820 (2e:4820)
+
+UnknownText_0xb8820: ; 0xb8820
+	; MARY: PROF.OAK'S
+	text_jump UnknownText_0x1bc81a
+	db "@"
+; 0xb8825
+
+UnknownText_0xb8825: ; 0xb8825
+	; #MON TALK!
+	text_jump UnknownText_0x1bc82d
+	db "@"
+; 0xb882a
+
+UnknownText_0xb882a: ; 0xb882a
+	; With me, MARY!
+	text_jump UnknownText_0x1bc83a
+	db "@"
+; 0xb882f
+
+UnknownText_0xb882f: ; 0xb882f
+	; OAK: @ @
+	text_jump UnknownText_0x1bc84b
+	db "@"
+; 0xb8834
+
+UnknownText_0xb8834: ; 0xb8834
+	; may be seen around
+	text_jump UnknownText_0x1bc858
+	db "@"
+; 0xb8839
+
+UnknownText_0xb8839: ; 0xb8839
+	; @ .
+	text_jump UnknownText_0x1bc86d
+	db "@"
+; 0xb883e
+
+OaksPkmnTalk7: ; b883e (2e:483e)
+	ld a, [CurPartySpecies]
+	ld [wd265], a
+	call GetPokemonName
+	ld hl, UnknownText_0xb884f
+	ld a, $11
+	jp NextRadioLine
+; b884f (2e:484f)
+
+UnknownText_0xb884f: ; 0xb884f
+	; MARY: @ 's
+	text_jump UnknownText_0x1bc876
+	db "@"
+; 0xb8854
+
+OaksPkmnTalk8: ; b8854 (2e:4854)
+	call Random
+	and $f
+	ld e, a
+	ld d, 0
+	ld hl, Unknown_b8869
+rept 2
+	add hl, de
+endr
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld a, $12
+	jp NextRadioLine
+; b8869 (2e:4869)
+
+Unknown_b8869: ; b8869
+	dw UnknownText_0xb8889
+	dw UnknownText_0xb888e
+	dw UnknownText_0xb8893
+	dw UnknownText_0xb8898
+	dw UnknownText_0xb889d
+	dw UnknownText_0xb88a2
+	dw UnknownText_0xb88a7
+	dw UnknownText_0xb88ac
+	dw UnknownText_0xb88b1
+	dw UnknownText_0xb88b6
+	dw UnknownText_0xb88bb
+	dw UnknownText_0xb88c0
+	dw UnknownText_0xb88c5
+	dw UnknownText_0xb88ca
+	dw UnknownText_0xb88cf
+	dw UnknownText_0xb88d4
+; b8889
+
+UnknownText_0xb8889: ; 0xb8889
+	; sweet and adorably
+	text_jump UnknownText_0x1bc885
+	db "@"
+; 0xb888e
+
+UnknownText_0xb888e: ; 0xb888e
+	; wiggly and slickly
+	text_jump UnknownText_0x1bc89a
+	db "@"
+; 0xb8893
+
+UnknownText_0xb8893: ; 0xb8893
+	; aptly named and
+	text_jump UnknownText_0x1bc8af
+	db "@"
+; 0xb8898
+
+UnknownText_0xb8898: ; 0xb8898
+	; undeniably kind of
+	text_jump UnknownText_0x1bc8c1
+	db "@"
+; 0xb889d
+
+UnknownText_0xb889d: ; 0xb889d
+	; so, so unbearably
+	text_jump UnknownText_0x1bc8d6
+	db "@"
+; 0xb88a2
+
+UnknownText_0xb88a2: ; 0xb88a2
+	; wow, impressively
+	text_jump UnknownText_0x1bc8ea
+	db "@"
+; 0xb88a7
+
+UnknownText_0xb88a7: ; 0xb88a7
+	; almost poisonously
+	text_jump UnknownText_0x1bc8fe
+	db "@"
+; 0xb88ac
+
+UnknownText_0xb88ac: ; 0xb88ac
+	; ooh, so sensually
+	text_jump UnknownText_0x1bc913
+	db "@"
+; 0xb88b1
+
+UnknownText_0xb88b1: ; 0xb88b1
+	; so mischievously
+	text_jump UnknownText_0x1bc927
+	db "@"
+; 0xb88b6
+
+UnknownText_0xb88b6: ; 0xb88b6
+	; so very topically
+	text_jump UnknownText_0x1bc93a
+	db "@"
+; 0xb88bb
+
+UnknownText_0xb88bb: ; 0xb88bb
+	; sure addictively
+	text_jump UnknownText_0x1bc94e
+	db "@"
+; 0xb88c0
+
+UnknownText_0xb88c0: ; 0xb88c0
+	; looks in water is
+	text_jump UnknownText_0x1bc961
+	db "@"
+; 0xb88c5
+
+UnknownText_0xb88c5: ; 0xb88c5
+	; evolution must be
+	text_jump UnknownText_0x1bc975
+	db "@"
+; 0xb88ca
+
+UnknownText_0xb88ca: ; 0xb88ca
+	; provocatively
+	text_jump UnknownText_0x1bc989
+	db "@"
+; 0xb88cf
+
+UnknownText_0xb88cf: ; 0xb88cf
+	; so flipped out and
+	text_jump UnknownText_0x1bc999
+	db "@"
+; 0xb88d4
+
+UnknownText_0xb88d4: ; 0xb88d4
+	; heart-meltingly
+	text_jump UnknownText_0x1bc9ae
+	db "@"
+; 0xb88d9
+
+OaksPkmnTalk9: ; b88d9 (2e:48d9)
+	call Random
+	and $f
+	ld e, a
+	ld d, 0
+	ld hl, Unknown_b88fe
+rept 2
+	add hl, de
+endr
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld a, [wd006]
+	dec a
+	ld [wd006], a
+	ld a, $d
+	jr nz, .nope
+	ld a, $5
+	ld [wd006], a
+	ld a, $3b
+.nope
+	jp NextRadioLine
+; b88fe (2e:48fe)
+
+Unknown_b88fe: ; b88fe
+	dw UnknownText_0xb891e
+	dw UnknownText_0xb8923
+	dw UnknownText_0xb8928
+	dw UnknownText_0xb892d
+	dw UnknownText_0xb8932
+	dw UnknownText_0xb8937
+	dw UnknownText_0xb893c
+	dw UnknownText_0xb8941
+	dw UnknownText_0xb8946
+	dw UnknownText_0xb894b
+	dw UnknownText_0xb8950
+	dw UnknownText_0xb8955
+	dw UnknownText_0xb895a
+	dw UnknownText_0xb895f
+	dw UnknownText_0xb8964
+	dw UnknownText_0xb8969
+; b891e
+
+UnknownText_0xb891e: ; 0xb891e
+	; cute.
+	text_jump UnknownText_0x1bc9c0
+	db "@"
+; 0xb8923
+
+UnknownText_0xb8923: ; 0xb8923
+	; weird.
+	text_jump UnknownText_0x1bc9c8
+	db "@"
+; 0xb8928
+
+UnknownText_0xb8928: ; 0xb8928
+	; pleasant.
+	text_jump UnknownText_0x1bc9d1
+	db "@"
+; 0xb892d
+
+UnknownText_0xb892d: ; 0xb892d
+	; bold, sort of.
+	text_jump UnknownText_0x1bc9dd
+	db "@"
+; 0xb8932
+
+UnknownText_0xb8932: ; 0xb8932
+	; frightening.
+	text_jump UnknownText_0x1bc9ee
+	db "@"
+; 0xb8937
+
+UnknownText_0xb8937: ; 0xb8937
+	; suave & debonair!
+	text_jump UnknownText_0x1bc9fd
+	db "@"
+; 0xb893c
+
+UnknownText_0xb893c: ; 0xb893c
+	; powerful.
+	text_jump UnknownText_0x1bca11
+	db "@"
+; 0xb8941
+
+UnknownText_0xb8941: ; 0xb8941
+	; exciting.
+	text_jump UnknownText_0x1bca1d
+	db "@"
+; 0xb8946
+
+UnknownText_0xb8946: ; 0xb8946
+	; groovy!
+	text_jump UnknownText_0x1bca29
+	db "@"
+; 0xb894b
+
+UnknownText_0xb894b: ; 0xb894b
+	; inspiring.
+	text_jump UnknownText_0x1bca33
+	db "@"
+; 0xb8950
+
+UnknownText_0xb8950: ; 0xb8950
+	; friendly.
+	text_jump UnknownText_0x1bca40
+	db "@"
+; 0xb8955
+
+UnknownText_0xb8955: ; 0xb8955
+	; hot, hot, hot!
+	text_jump UnknownText_0x1bca4c
+	db "@"
+; 0xb895a
+
+UnknownText_0xb895a: ; 0xb895a
+	; stimulating.
+	text_jump UnknownText_0x1bca5d
+	db "@"
+; 0xb895f
+
+UnknownText_0xb895f: ; 0xb895f
+	; guarded.
+	text_jump UnknownText_0x1bca6c
+	db "@"
+; 0xb8964
+
+UnknownText_0xb8964: ; 0xb8964
+	; lovely.
+	text_jump UnknownText_0x1bca77
+	db "@"
+; 0xb8969
+
+UnknownText_0xb8969: ; 0xb8969
+	; speedy.
+	text_jump UnknownText_0x1bca81
+	db "@"
+; 0xb896e
+
+OaksPkmnTalk14: ; b896e (2e:496e)
+	callba Function91868
+	ld hl, UnknownText_0xb8993
+	call PrintText
+	call WaitBGMap
+	ld hl, UnknownText_0xb898e
+	call PrintText
+	ld a, $3c
+	ld [wd002], a
+	ld a, $64
+	ld [wd004], a
+	ret
+; b898e (2e:498e)
+
+UnknownText_0xb898e: ; 0xb898e
+	; #MON
+	text_jump UnknownText_0x1bca8b
+	db "@"
+; 0xb8993
+
+UnknownText_0xb8993: ; 0xb8993
+	db "@"
+; 0xb8994
+
+OaksPkmnTalk15: ; b8994 (2e:4994)
+	ld hl, wd004
+	dec [hl]
+	ret nz
+	hlcoord 9, 14
+	ld de, String_b89a4
+	ld a, $3d
+	jp Functionb8a00
+; b89a4 (2e:49a4)
+
+String_b89a4:
+	db "#MON@"
+; b89a9
+
+OaksPkmnTalk16: ; b89a9 (2e:49a9)
+	ld hl, wd004
+	dec [hl]
+	ret nz
+	hlcoord 1, 16
+	ld de, String_b89b9
+	ld a, $3e
+	jp Functionb8a00
+; b89b9 (2e:49b9)
+
+String_b89b9:
+	db "#MON Channel@"
+; b89c6
+
+OaksPkmnTalk17: ; b89c6 (2e:49c6)
+	ld hl, wd004
+	dec [hl]
+	ret nz
+	hlcoord 12, 16
+	ld de, String_b89d6
+	ld a, $3f
+	jp Functionb8a00
+; b89d6 (2e:49d6)
+
+String_b89d6:
+	db "@"
+; b89d7
+
+OaksPkmnTalk18: ; b89d7 (2e:49d7)
+	ld hl, wd004
+	dec [hl]
+	ret nz
+	ld de, $1d
+	callab RadioMusicNone
+	ld hl, UnknownText_0xb89ff
+	call PrintText
+	ld a, $d
+	ld [wd003], a
+	xor a
+	ld [wd005], a
+	ld a, $54
+	ld [wd002], a
+	ld a, $a
+	ld [wd004], a
+	ret
+; b89ff (2e:49ff)
+
+UnknownText_0xb89ff: ; 0xb89ff
+	db "@"
+; 0xb8a00
+
+Functionb8a00: ; b8a00 (2e:4a00)
+	ld [wd002], a
+	ld a, $64
+	ld [wd004], a
+	jp PlaceString
+
+CopyBottomLineToTopLine: ; b8a0b (2e:4a0b)
+	hlcoord 0, 15
+	decoord 0, 13
+	ld bc, SCREEN_WIDTH * 2
+	jp CopyBytes
+
+ClearBottomLine: ; b8a17 (2e:4a17)
+	hlcoord 1, 15
+	ld bc, $12
+	ld a, " "
+	call ByteFill
+	hlcoord 1, 16
+	ld bc, $12
+	ld a, " "
+	jp ByteFill
+
+Functionb8a2d: ; b8a2d (2e:4a2d)
+	push hl
+	push de
+	ld a, [CurPartySpecies]
+	dec a
+	rlca
+	rlca
+	and 3
+	ld hl, .pokedexbanks
+	ld d, 0
+	ld e, a
+	add hl, de
+	ld a, [hl]
+	pop de
+	pop hl
+	ret
+; b8a42 (2e:4a42)
+
+.pokedexbanks
+	db BANK(PokedexEntries1)
+	db BANK(PokedexEntries2)
+	db BANK(PokedexEntries3)
+	db BANK(PokedexEntries4)
+; b8a46
+
+PokedexShow1: ; b8a46 (2e:4a46)
+	call StartRadioStation
+.asm_b8a49
+	call Random
+	cp CELEBI
+	jr nc, .asm_b8a49
+	ld c, a
+	push bc
+	ld a, c
+	call CheckCaughtMon
+	pop bc
+	jr z, .asm_b8a49
+	inc c
+	ld a, c
+	ld [CurPartySpecies], a
+	ld [wd265], a
+	call GetPokemonName
+	ld hl, UnknownText_0xb8b30
+	ld a, $13
+	jp NextRadioLine
+
+OaksPkmnTalk10: ; b8a6c (2e:4a6c)
+	ld a, [CurPartySpecies]
+	dec a
+	ld hl, PokedexDataPointerTable
+	ld c, a
+	ld b, 0
+rept 2
+	add hl, bc
+endr
+	ld a, BANK(PokedexDataPointerTable)
+	call GetFarHalfword
+	call Functionb8a2d
+	push af
+	push hl
+	call Functionb8af3
+	dec hl
+	ld [hl], $57
+	ld hl, wd26b
+	call CopyRadioTextToRAM
+	pop hl
+	pop af
+	call Functionb8b11
+rept 4
+	inc hl
+endr
+	ld a, l
+	ld [wd26b], a
+	ld a, h
+	ld [wd26c], a
+	ld a, $14
+	jp PrintRadioLine
+
+OaksPkmnTalk11: ; b8aa4 (2e:4aa4)
+	call Functionb8ad4
+	ld a, $15
+	jp PrintRadioLine
+
+OaksPkmnTalk12: ; b8aac (2e:4aac)
+	call Functionb8ad4
+	ld a, $16
+	jp PrintRadioLine
+
+OaksPkmnTalk13: ; b8ab4 (2e:4ab4)
+	call Functionb8ad4
+	ld a, $55
+	jp PrintRadioLine
+
+OaksPkmnTalk19: ; b8abc (2e:4abc)
+	call Functionb8ad4
+	ld a, $56
+	jp PrintRadioLine
+
+OaksPkmnTalk20: ; b8ac4 (2e:4ac4)
+	call Functionb8ad4
+	ld a, $57
+	jp PrintRadioLine
+
+OaksPkmnTalk21: ; b8acc (2e:4acc)
+	call Functionb8ad4
+	ld a, $1
+	jp PrintRadioLine
+
+Functionb8ad4: ; b8ad4 (2e:4ad4)
+	ld a, [wd26b]
+	ld l, a
+	ld a, [wd26c]
+	ld h, a
+	ld a, [wd26d]
+	push af
+	push hl
+	call Functionb8af3
+	dec hl
+	ld [hl], $57
+	ld hl, wd26b
+	call CopyRadioTextToRAM
+	pop hl
+	pop af
+	call Functionb8b11
+	ret
+
+Functionb8af3: ; b8af3 (2e:4af3)
+	ld de, wd26d
+	ld bc, $13
+	call FarCopyBytes
+	ld hl, wd26b
+	ld [hl], $0
+	inc hl
+	ld [hl], $4f
+	inc hl
+.asm_b8b05
+	ld a, [hli]
+	cp $50
+	ret z
+	cp $4e
+	ret z
+	cp $5f
+	ret z
+	jr .asm_b8b05
+
+Functionb8b11: ; b8b11 (2e:4b11)
+	ld d, a
+.asm_b8b12
+	ld a, d
+	call GetFarByte
+	inc hl
+	cp $50
+	jr z, .asm_b8b23
+	cp $4e
+	jr z, .asm_b8b23
+	cp $5f
+	jr nz, .asm_b8b12
+.asm_b8b23
+	ld a, l
+	ld [wd26b], a
+	ld a, h
+	ld [wd26c], a
+	ld a, d
+	ld [wd26d], a
+	ret
+; b8b30 (2e:4b30)
+
+UnknownText_0xb8b30: ; 0xb8b30
+	; @ @
+	text_jump UnknownText_0x1bca91
+	db "@"
+; 0xb8b35
+
+BenMonMusic1: ; b8b35 (2e:4b35)
+	call Functionb8b90
+	ld hl, UnknownText_0xb8baa
+	ld a, $17
+	jp NextRadioLine
+
+BenMonMusic2: ; b8b40 (2e:4b40)
+	ld hl, UnknownText_0xb8baf
+	ld a, $18
+	jp NextRadioLine
+
+BenMonMusic3: ; b8b48 (2e:4b48)
+	ld hl, UnknownText_0xb8bb4
+	ld a, $19
+	jp NextRadioLine
+
+FernMonMusic1: ; b8b50 (2e:4b50)
+	call Functionb8b90
+	ld hl, UnknownText_0xb8bb9
+	ld a, $1d
+	jp NextRadioLine
+
+FernMonMusic2: ; b8b5b (2e:4b5b)
+	ld hl, UnknownText_0xb8bbe
+	ld a, $19
+	jp NextRadioLine
+
+BenFernMusic4: ; b8b63 (2e:4b63)
+	ld hl, UnknownText_0xb8bc3
+	ld a, $1a
+	jp NextRadioLine
+
+BenFernMusic5: ; b8b6b (2e:4b6b)
+	call GetWeekday
+	and 1
+	ld hl, UnknownText_0xb8bc8
+	jr z, .asm_b8b78
+	ld hl, UnknownText_0xb8bcd
+.asm_b8b78
+	ld a, $1b
+	jp NextRadioLine
+
+BenFernMusic6: ; b8b7d (2e:4b7d)
+	call GetWeekday
+	and 1
+	ld hl, UnknownText_0xb8bd2
+	jr z, .asm_b8b8a
+	ld hl, UnknownText_0xb8bd7
+.asm_b8b8a
+	ld a, $1c
+	jp NextRadioLine
+
+BenFernMusic7: ; b8b8f (2e:4b8f)
+	ret
+
+Functionb8b90: ; b8b90 (2e:4b90)
+	call RadioTerminator
+	call PrintText
+	ld de, MUSIC_POKEMON_MARCH
+	call GetWeekday
+	and 1
+	jr z, .done
+	ld de, MUSIC_POKEMON_LULLABY
+.done
+	callab RadioMusicNone
+	ret
+; b8baa (2e:4baa)
+
+UnknownText_0xb8baa: ; 0xb8baa
+	; BEN: #MON MUSIC
+	text_jump UnknownText_0x1bca99
+	db "@"
+; 0xb8baf
+
+UnknownText_0xb8baf: ; 0xb8baf
+	; CHANNEL!
+	text_jump UnknownText_0x1bcaab
+	db "@"
+; 0xb8bb4
+
+UnknownText_0xb8bb4: ; 0xb8bb4
+	; It's me, DJ BEN!
+	text_jump UnknownText_0x1bcab6
+	db "@"
+; 0xb8bb9
+
+UnknownText_0xb8bb9: ; 0xb8bb9
+	; FERN: #MUSIC!
+	text_jump UnknownText_0x1bcac8
+	db "@"
+; 0xb8bbe
+
+UnknownText_0xb8bbe: ; 0xb8bbe
+	; With DJ FERN!
+	text_jump UnknownText_0x1bcad8
+	db "@"
+; 0xb8bc3
+
+UnknownText_0xb8bc3: ; 0xb8bc3
+	; Today's @ ,
+	text_jump UnknownText_0x1bcae8
+	db "@"
+; 0xb8bc8
+
+UnknownText_0xb8bc8: ; 0xb8bc8
+	; so let us jam to
+	text_jump UnknownText_0x1bcaf6
+	db "@"
+; 0xb8bcd
+
+UnknownText_0xb8bcd: ; 0xb8bcd
+	; so chill out to
+	text_jump UnknownText_0x1bcb09
+	db "@"
+; 0xb8bd2
+
+UnknownText_0xb8bd2: ; 0xb8bd2
+	; #MON March!
+	text_jump UnknownText_0x1bcb1b
+	db "@"
+; 0xb8bd7
+
+UnknownText_0xb8bd7: ; 0xb8bd7
+	; #MON Lullaby!
+	text_jump UnknownText_0x1bcb29
+	db "@"
+; 0xb8bdc
+
+LuckyNumberShow1: ; b8bdc (2e:4bdc)
+	call StartRadioStation
+	callab Functionc434
+	jr nc, .asm_b8bed
+	callab Functionc422
+.asm_b8bed
+	ld hl, UnknownText_0xb8c7e
+	ld a, $1e
+	jp NextRadioLine
+
+LuckyNumberShow2: ; b8bf5 (2e:4bf5)
+	ld hl, UnknownText_0xb8c83
+	ld a, $1f
+	jp NextRadioLine
+
+LuckyNumberShow3: ; b8bfd (2e:4bfd)
+	ld hl, UnknownText_0xb8c88
+	ld a, $20
+	jp NextRadioLine
+
+LuckyNumberShow4: ; b8c05 (2e:4c05)
+	ld hl, UnknownText_0xb8c8d
+	ld a, $21
+	jp NextRadioLine
+
+LuckyNumberShow5: ; b8c0d (2e:4c0d)
+	ld hl, UnknownText_0xb8c92
+	ld a, $22
+	jp NextRadioLine
+
+LuckyNumberShow6: ; b8c15 (2e:4c15)
+	ld hl, UnknownText_0xb8c97
+	ld a, $23
+	jp NextRadioLine
+
+LuckyNumberShow7: ; b8c1d (2e:4c1d)
+	ld hl, UnknownText_0xb8c9c
+	ld a, $24
+	jp NextRadioLine
+
+LuckyNumberShow8: ; b8c25 (2e:4c25)
+	ld hl, StringBuffer1
+	ld de, wdc9f
+	ld bc, $8205
+	call PrintNum
+	ld a, $50
+	ld [StringBuffer1 + 5], a
+	ld hl, UnknownText_0xb8ca1
+	ld a, $25
+	jp NextRadioLine
+
+LuckyNumberShow9: ; b8c3e (2e:4c3e)
+	ld hl, UnknownText_0xb8ca6
+	ld a, $26
+	jp NextRadioLine
+
+LuckyNumberShow10: ; b8c46 (2e:4c46)
+	ld hl, UnknownText_0xb8c9c
+	ld a, $27
+	jp NextRadioLine
+
+LuckyNumberShow11: ; b8c4e (2e:4c4e)
+	ld hl, UnknownText_0xb8ca1
+	ld a, $28
+	jp NextRadioLine
+
+LuckyNumberShow12: ; b8c56 (2e:4c56)
+	ld hl, UnknownText_0xb8cab
+	ld a, $29
+	jp NextRadioLine
+
+LuckyNumberShow13: ; b8c5e (2e:4c5e)
+	ld hl, UnknownText_0xb8cb0
+	call Random
+	and a
+	ld a, $3
+	jr nz, .asm_b8c6b
+	ld a, $2a
+.asm_b8c6b
+	jp NextRadioLine
+
+LuckyNumberShow14: ; b8c6e (2e:4c6e)
+	ld hl, UnknownText_0xb8cb5
+	ld a, $2b
+	jp NextRadioLine
+
+LuckyNumberShow15: ; b8c76 (2e:4c76)
+	ld hl, UnknownText_0xb8cba
+	ld a, $3
+	jp NextRadioLine
+; b8c7e (2e:4c7e)
+
+UnknownText_0xb8c7e: ; 0xb8c7e
+	; REED: Yeehaw! How
+	text_jump UnknownText_0x1bcb39
+	db "@"
+; 0xb8c83
+
+UnknownText_0xb8c83: ; 0xb8c83
+	; y'all doin' now?
+	text_jump UnknownText_0x1bcb4d
+	db "@"
+; 0xb8c88
+
+UnknownText_0xb8c88: ; 0xb8c88
+	; Whether you're up
+	text_jump UnknownText_0x1bcb60
+	db "@"
+; 0xb8c8d
+
+UnknownText_0xb8c8d: ; 0xb8c8d
+	; or way down low,
+	text_jump UnknownText_0x1bcb73
+	db "@"
+; 0xb8c92
+
+UnknownText_0xb8c92: ; 0xb8c92
+	; don't you miss the
+	text_jump UnknownText_0x1bcb86
+	db "@"
+; 0xb8c97
+
+UnknownText_0xb8c97: ; 0xb8c97
+	; LUCKY NUMBER SHOW!
+	text_jump UnknownText_0x1bcb9a
+	db "@"
+; 0xb8c9c
+
+UnknownText_0xb8c9c: ; 0xb8c9c
+	; This week's Lucky
+	text_jump UnknownText_0x1bcbaf
+	db "@"
+; 0xb8ca1
+
+UnknownText_0xb8ca1: ; 0xb8ca1
+	; Number is @ !
+	text_jump UnknownText_0x1bcbc2
+	db "@"
+; 0xb8ca6
+
+UnknownText_0xb8ca6: ; 0xb8ca6
+	; I'll repeat that!
+	text_jump UnknownText_0x1bcbd6
+	db "@"
+; 0xb8cab
+
+UnknownText_0xb8cab: ; 0xb8cab
+	; Match it and go to
+	text_jump UnknownText_0x1bcbe9
+	db "@"
+; 0xb8cb0
+
+UnknownText_0xb8cb0: ; 0xb8cb0
+	; the RADIO TOWER!
+	text_jump UnknownText_0x1bcbfe
+	db "@"
+; 0xb8cb5
+
+UnknownText_0xb8cb5: ; 0xb8cb5
+	; …Repeating myself
+	text_jump UnknownText_0x1bcc11
+	db "@"
+; 0xb8cba
+
+UnknownText_0xb8cba: ; 0xb8cba
+	; gets to be a drag…
+	text_jump UnknownText_0x1bcc25
+	db "@"
+; 0xb8cbf
+
+PeoplePlaces1: ; b8cbf (2e:4cbf)
+	call StartRadioStation
+	ld hl, UnknownText_0xb8ce3
+	ld a, $2c
+	jp NextRadioLine
+
+LuckyNumberShow16: ; b8cca (2e:4cca)
+	ld hl, UnknownText_0xb8ce8
+	ld a, $2d
+	jp NextRadioLine
+
+LuckyNumberShow17: ; b8cd2 (2e:4cd2)
+	ld hl, UnknownText_0xb8ced
+	call Random
+	cp $7b
+	ld a, $2e
+	jr c, .asm_b8ce0
+	ld a, $30
+.asm_b8ce0
+	jp NextRadioLine
+; b8ce3 (2e:4ce3)
+
+UnknownText_0xb8ce3: ; 0xb8ce3
+	; PLACES AND PEOPLE!
+	text_jump UnknownText_0x1bcc3a
+	db "@"
+; 0xb8ce8
+
+UnknownText_0xb8ce8: ; 0xb8ce8
+	; Brought to you by
+	text_jump UnknownText_0x1bcc4f
+	db "@"
+; 0xb8ced
+
+UnknownText_0xb8ced: ; 0xb8ced
+	; me, DJ LILY!
+	text_jump UnknownText_0x1bcc63
+	db "@"
+; 0xb8cf2
+
+LuckyNumberShow18: ; b8cf2 (2e:4cf2)
+	call Random
+	and " "
+	inc a
+	cp $43
+	jr nc, LuckyNumberShow18
+	push af
+	ld hl, Unknown_b8d3e
+	ld a, [StatusFlags]
+	bit 6, a
+	jr z, .NotMet
+	ld hl, Unknown_b8d43
+	ld a, [KantoBadges]
+	cp %11111111
+	jr nz, .NotMet
+	ld hl, Unknown_b8d4b
+.NotMet
+	pop af
+	ld c, a
+	ld de, $1
+	push bc
+	call IsInArray
+	pop bc
+	jr c, LuckyNumberShow18
+	push bc
+	callab GetTrainerClassName
+	ld de, StringBuffer1
+	call CopyName1
+	pop bc
+	ld b, $1
+	callab GetTrainerName
+	ld hl, UnknownText_0xb8d51
+	ld a, $2f
+	jp NextRadioLine
+; b8d3e (2e:4d3e)
+
+Unknown_b8d3e: db $0b, $0d, $0e, $0f, $10
+Unknown_b8d43: db $11, $12, $13, $15, $1a, $23, $2e, $40
+Unknown_b8d4b: db $09, $0a, $0c, $2a, $3f
+               db $ff
+; b8d51
+
+UnknownText_0xb8d51: ; 0xb8d51
+	; @  @ @
+	text_jump UnknownText_0x1bcc72
+	db "@"
+; 0xb8d56
+
+LuckyNumberShow19: ; b8d56 (2e:4d56)
+	call Random
+	and $f
+	ld e, a
+	ld d, 0
+	ld hl, Unknown_b8d7d
+rept 2
+	add hl, de
+endr
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	call Random
+	cp $a
+	ld a, $5
+	jr c, .asm_b8d7a
+	call Random
+	cp $7b
+	ld a, $2e
+	jr c, .asm_b8d7a
+	ld a, $30
+.asm_b8d7a
+	jp NextRadioLine
+; b8d7d (2e:4d7d)
+
+Unknown_b8d7d: ; b8d7d
+	dw UnknownText_0xb8d9d
+	dw UnknownText_0xb8da2
+	dw UnknownText_0xb8da7
+	dw UnknownText_0xb8dac
+	dw UnknownText_0xb8db1
+	dw UnknownText_0xb8db6
+	dw UnknownText_0xb8dbb
+	dw UnknownText_0xb8dc0
+	dw UnknownText_0xb8dc5
+	dw UnknownText_0xb8dca
+	dw UnknownText_0xb8dcf
+	dw UnknownText_0xb8dd4
+	dw UnknownText_0xb8dd9
+	dw UnknownText_0xb8dde
+	dw UnknownText_0xb8de3
+	dw UnknownText_0xb8de8
+; b8d9d
+
+UnknownText_0xb8d9d: ; 0xb8d9d
+	; is cute.
+	text_jump UnknownText_0x1bcc80
+	db "@"
+; 0xb8da2
+
+UnknownText_0xb8da2: ; 0xb8da2
+	; is sort of lazy.
+	text_jump UnknownText_0x1bcc8b
+	db "@"
+; 0xb8da7
+
+UnknownText_0xb8da7: ; 0xb8da7
+	; is always happy.
+	text_jump UnknownText_0x1bcc9e
+	db "@"
+; 0xb8dac
+
+UnknownText_0xb8dac: ; 0xb8dac
+	; is quite noisy.
+	text_jump UnknownText_0x1bccb1
+	db "@"
+; 0xb8db1
+
+UnknownText_0xb8db1: ; 0xb8db1
+	; is precocious.
+	text_jump UnknownText_0x1bccc3
+	db "@"
+; 0xb8db6
+
+UnknownText_0xb8db6: ; 0xb8db6
+	; is somewhat bold.
+	text_jump UnknownText_0x1bccd4
+	db "@"
+; 0xb8dbb
+
+UnknownText_0xb8dbb: ; 0xb8dbb
+	; is too picky!
+	text_jump UnknownText_0x1bcce8
+	db "@"
+; 0xb8dc0
+
+UnknownText_0xb8dc0: ; 0xb8dc0
+	; is sort of OK.
+	text_jump UnknownText_0x1bccf8
+	db "@"
+; 0xb8dc5
+
+UnknownText_0xb8dc5: ; 0xb8dc5
+	; is just so-so.
+	text_jump UnknownText_0x1bcd09
+	db "@"
+; 0xb8dca
+
+UnknownText_0xb8dca: ; 0xb8dca
+	; is actually great.
+	text_jump UnknownText_0x1bcd1a
+	db "@"
+; 0xb8dcf
+
+UnknownText_0xb8dcf: ; 0xb8dcf
+	; is just my type.
+	text_jump UnknownText_0x1bcd2f
+	db "@"
+; 0xb8dd4
+
+UnknownText_0xb8dd4: ; 0xb8dd4
+	; is so cool, no?
+	text_jump UnknownText_0x1bcd42
+	db "@"
+; 0xb8dd9
+
+UnknownText_0xb8dd9: ; 0xb8dd9
+	; is inspiring!
+	text_jump UnknownText_0x1bcd54
+	db "@"
+; 0xb8dde
+
+UnknownText_0xb8dde: ; 0xb8dde
+	; is kind of weird.
+	text_jump UnknownText_0x1bcd64
+	db "@"
+; 0xb8de3
+
+UnknownText_0xb8de3: ; 0xb8de3
+	; is right for me?
+	text_jump UnknownText_0x1bcd78
+	db "@"
+; 0xb8de8
+
+UnknownText_0xb8de8: ; 0xb8de8
+	; is definitely odd!
+	text_jump UnknownText_0x1bcd8b
+	db "@"
+; 0xb8ded
+
+LuckyNumberShow20: ; b8ded (2e:4ded)
+	call Random
+	cp $9
+	jr nc, LuckyNumberShow20
+	ld hl, Unknown_b8e11
+	ld c, a
+	ld b, 0
+rept 2
+	add hl, bc
+endr
+	ld b, [hl]
+	inc hl
+	ld c, [hl]
+	call GetWorldMapLocation
+	ld e, a
+	callba GetLandmarkName
+	ld hl, UnknownText_0xb8e23
+	ld a, $31
+	jp NextRadioLine
+; b8e11 (2e:4e11)
+
+Unknown_b8e11: ; b8e11
+	map PALLET_TOWN
+	map ROUTE_22
+	map PEWTER_CITY
+	map CERULEAN_POLICE_STATION
+	map ROUTE_12
+	map ROUTE_11
+	map ROUTE_16
+	map ROUTE_14
+	map CINNABAR_POKECENTER_2F_BETA
+; b8e23
+
+UnknownText_0xb8e23: ; 0xb8e23
+	; @ @
+	text_jump UnknownText_0x1bcda0
+	db "@"
+; 0xb8e28
+
+LuckyNumberShow21: ; b8e28 (2e:4e28)
+	call Random
+	and $f
+	ld e, a
+	ld d, 0
+	ld hl, Unknown_b8e52
+rept 2
+	add hl, de
+endr
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	call CopyRadioTextToRAM
+	call Random
+	cp $a
+	ld a, $5
+	jr c, .asm_b8e4f
+	call Random
+	cp $7b
+	ld a, $2e
+	jr c, .asm_b8e4f
+	ld a, $30
+.asm_b8e4f
+	jp PrintRadioLine
+; b8e52 (2e:4e52)
+
+Unknown_b8e52: ; b8e52
+	dw UnknownText_0xb8d9d
+	dw UnknownText_0xb8da2
+	dw UnknownText_0xb8da7
+	dw UnknownText_0xb8dac
+	dw UnknownText_0xb8db1
+	dw UnknownText_0xb8db6
+	dw UnknownText_0xb8dbb
+	dw UnknownText_0xb8dc0
+	dw UnknownText_0xb8dc5
+	dw UnknownText_0xb8dca
+	dw UnknownText_0xb8dcf
+	dw UnknownText_0xb8dd4
+	dw UnknownText_0xb8dd9
+	dw UnknownText_0xb8dde
+	dw UnknownText_0xb8de3
+	dw UnknownText_0xb8de8
+; b8e72
+
+RocketRadio1: ; b8e72 (2e:4e72)
+	call StartRadioStation
+	ld hl, UnknownText_0xb8ec5
+	ld a, $32
+	jp NextRadioLine
+
+RocketRadio2: ; b8e7d (2e:4e7d)
+	ld hl, UnknownText_0xb8eca
+	ld a, $33
+	jp NextRadioLine
+
+RocketRadio3: ; b8e85 (2e:4e85)
+	ld hl, UnknownText_0xb8ecf
+	ld a, $34
+	jp NextRadioLine
+
+RocketRadio4: ; b8e8d (2e:4e8d)
+	ld hl, UnknownText_0xb8ed4
+	ld a, $35
+	jp NextRadioLine
+
+RocketRadio5: ; b8e95 (2e:4e95)
+	ld hl, UnknownText_0xb8ed9
+	ld a, $36
+	jp NextRadioLine
+
+RocketRadio6: ; b8e9d (2e:4e9d)
+	ld hl, UnknownText_0xb8ede
+	ld a, $37
+	jp NextRadioLine
+
+RocketRadio7: ; b8ea5 (2e:4ea5)
+	ld hl, UnknownText_0xb8ee3
+	ld a, $38
+	jp NextRadioLine
+
+RocketRadio8: ; b8ead (2e:4ead)
+	ld hl, UnknownText_0xb8ee8
+	ld a, $39
+	jp NextRadioLine
+
+RocketRadio9: ; b8eb5 (2e:4eb5)
+	ld hl, UnknownText_0xb8eed
+	ld a, $3a
+	jp NextRadioLine
+
+RocketRadio10: ; b8ebd (2e:4ebd)
+	ld hl, UnknownText_0xb8ef2
+	ld a, $7
+	jp NextRadioLine
+; b8ec5 (2e:4ec5)
+
+UnknownText_0xb8ec5: ; 0xb8ec5
+	; … …Ahem, we are
+	text_jump UnknownText_0x1bcda8
+	db "@"
+; 0xb8eca
+
+UnknownText_0xb8eca: ; 0xb8eca
+	; TEAM ROCKET!
+	text_jump UnknownText_0x1bcdba
+	db "@"
+; 0xb8ecf
+
+UnknownText_0xb8ecf: ; 0xb8ecf
+	; After three years
+	text_jump UnknownText_0x1bcdc9
+	db "@"
+; 0xb8ed4
+
+UnknownText_0xb8ed4: ; 0xb8ed4
+	; of preparation, we
+	text_jump UnknownText_0x1bcddd
+	db "@"
+; 0xb8ed9
+
+UnknownText_0xb8ed9: ; 0xb8ed9
+	; have risen again
+	text_jump UnknownText_0x1bcdf2
+	db "@"
+; 0xb8ede
+
+UnknownText_0xb8ede: ; 0xb8ede
+	; from the ashes!
+	text_jump UnknownText_0x1bce05
+	db "@"
+; 0xb8ee3
+
+UnknownText_0xb8ee3: ; 0xb8ee3
+	; GIOVANNI! @ Can you
+	text_jump UnknownText_0x1bce17
+	db "@"
+; 0xb8ee8
+
+UnknownText_0xb8ee8: ; 0xb8ee8
+	; hear?@  We did it!
+	text_jump UnknownText_0x1bce2e
+	db "@"
+; 0xb8eed
+
+UnknownText_0xb8eed: ; 0xb8eed
+	; @ Where is our boss?
+	text_jump UnknownText_0x1bce44
+	db "@"
+; 0xb8ef2
+
+UnknownText_0xb8ef2: ; 0xb8ef2
+	; @ Is he listening?
+	text_jump UnknownText_0x1bce5c
+	db "@"
+; 0xb8ef7
+
+PokeFluteRadio: ; b8ef7 (2e:4ef7)
+	call StartRadioStation
+	ld a, $1
+	ld [wd005], a
+	ret
+
+EvolutionRadio: ; b8f00 (2e:4f00)
+	call StartRadioStation
+	ld a, $1
+	ld [wd005], a
+	ret
+
+UnownRadio: ; b8f09 (2e:4f09)
+	call StartRadioStation
+	ld a, $1
+	ld [wd005], a
+	ret
+
+BuenasPassword1: ; b8f12 (2e:4f12)
+; Determine if we need to be here
+	call BuenasPasswordCheckMidnight
+	jp nc, Functionb8f22
+	ld a, [wd005]
+	and a
+	jp z, BuenasPassword20
+	jp BuenasPassword8
+
+Functionb8f22: ; b8f22 (2e:4f22)
+	call StartRadioStation
+	ld a, [hBGMapMode] ; $ff00+$d4
+	push af
+	xor a
+	ld [hBGMapMode], a ; $ff00+$d4
+	ld de, String_b9171
+	hlcoord 2, 9
+	call PlaceString
+	pop af
+	ld [hBGMapMode], a ; $ff00+$d4
+	ld hl, UnknownText_0xb9182
+	ld a, $40
+	jp NextRadioLine
+
+BuenasPassword2: ; b8f3f (2e:4f3f)
+	ld hl, UnknownText_0xb9187
+	ld a, $41
+	jp NextRadioLine
+
+BuenasPassword3: ; b8f47 (2e:4f47)
+	call BuenasPasswordCheckMidnight
+	ld hl, UnknownText_0xb918c
+	jp c, BuenasPasswordAfterMidnight
+	ld a, $42
+	jp NextRadioLine
+
+BuenasPassword4: ; b8f55 (2e:4f55)
+	call BuenasPasswordCheckMidnight
+	jp c, BuenasPassword8
+	ld a, [wdc4a]
+; If we already generated the password today, we don't need to generate a new one.
+	ld hl, WeeklyFlags
+	bit 7, [hl]
+	jr nz, .AlreadyGotIt
+; There are only 11 groups to choose from.
+.greater_than_11
+	call Random
+	and $f
+	cp $b
+	jr nc, .greater_than_11
+; Store it in the high nybble of e.
+	swap a
+	ld e, a
+; For each group, choose one of the three passwords.
+.greater_than_three
+	call Random
+	and $3
+	cp $3
+	jr nc, .greater_than_three
+; The high nybble of wdc4a will now contain the password group index, and the low nybble contains the actual password.
+	add e
+	ld [wdc4a], a
+; Set the flag so that we don't generate a new password this week.
+	ld hl, WeeklyFlags
+	set 7, [hl]
+.AlreadyGotIt
+	ld c, a
+	call GetBuenasPassword
+	ld hl, UnknownText_0xb9191
+	ld a, $43
+	jp NextRadioLine
+
+GetBuenasPassword: ; b8f8f
+; The password indices are held in c.  High nybble contains the group index, low nybble contains the word index.
+; Load the password group pointer in hl.
+	ld a, c
+	swap a
+	and $f
+	ld hl, PasswordTable
+	ld d, 0
+	ld e, a
+rept 2
+	add hl, de
+endr
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+; Get the password type and store it in b.
+	ld a, [hli]
+	ld b, a
+	push hl
+	inc hl
+; Get the password index.
+	ld a, c
+	and $f
+	ld c, a
+	push hl
+	ld hl, .StringFunctionJumpTable
+	ld e, b
+rept 2
+	add hl, de
+endr
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	pop de ; de now contains the pointer to the value of this week's password, in Blue Card Points.
+	call _hl_
+	pop hl
+	ld c, [hl]
+	ret
+; b8fb8
+
+
+.StringFunctionJumpTable: ; b8fb8 (2e:4fb8)
+	dw .Mon
+	dw .Item
+	dw .Move
+	dw .RawString
+
+
+.Mon: ; b8fc0 (2e:4fc0)
+	call .GetTheIndex
+	call GetPokemonName
+	ret
+
+.Item: ; b8fc7 (2e:4fc7)
+	call .GetTheIndex
+	call GetItemName
+	ret
+
+.Move: ; b8fce (2e:4fce)
+	call .GetTheIndex
+	call GetMoveName
+	ret
+
+.GetTheIndex: ; b8fd5 (2e:4fd5)
+	ld h, 0
+	ld l, c
+	add hl, de
+	ld a, [hl]
+	ld [wd265], a
+	ret
+
+.RawString: ; b8fde (2e:4fde)
+; Get the string from the table...
+	ld a, c
+	and a
+	jr z, .skip
+.read_loop
+	ld a, [de]
+	inc de
+	cp "@"
+	jr nz, .read_loop
+	dec c
+	jr nz, .read_loop
+; ... and copy it into StringBuffer1.
+.skip
+	ld hl, StringBuffer1
+.copy_loop
+	ld a, [de]
+	inc de
+	ld [hli], a
+	cp "@"
+	jr nz, .copy_loop
+	ld de, StringBuffer1
+	ret
+; b8ff9 (2e:4ff9)
+
+PasswordTable: ; b8ff9
+	dw .JohtoStarters
+	dw .Beverages
+	dw .HealingItems
+	dw .Balls
+	dw .Pokemon1
+	dw .Pokemon2
+	dw .JohtoTowns
+	dw .Types
+	dw .Moves
+	dw .XItems
+	dw .RadioStations
+; b900f
+                     ; string type, points, option 1, option 2, option 3
+.JohtoStarters:      db BUENA_MON,    10, CYNDAQUIL, TOTODILE, CHIKORITA
+.Beverages:          db BUENA_ITEM,   12, FRESH_WATER, SODA_POP, LEMONADE
+.HealingItems:       db BUENA_ITEM,   12, POTION, ANTIDOTE, PARLYZ_HEAL
+.Balls:              db BUENA_ITEM,   12, POKE_BALL, GREAT_BALL, ULTRA_BALL
+.Pokemon1:           db BUENA_MON,    10, PIKACHU, RATTATA, GEODUDE
+.Pokemon2:           db BUENA_MON,    10, HOOTHOOT, SPINARAK, DROWZEE
+.JohtoTowns:         db BUENA_STRING, 16, "NEW BARK TOWN@", "CHERRYGROVE CITY@", "AZALEA TOWN@"
+.Types:              db BUENA_STRING,  6, "FLYING@", "BUG@", "GRASS@"
+.Moves:              db BUENA_MOVE,   12, TACKLE, GROWL, MUD_SLAP
+.XItems:             db BUENA_ITEM,   12, X_ATTACK, X_DEFEND, X_SPEED
+.RadioStations:      db BUENA_STRING, 13, "#MON Talk@", "#MON Music@", "Lucky Channel@"
+; b909c
+
+BuenasPassword5: ; b909c (2e:509c)
+	ld hl, UnknownText_0xb9196
+	ld a, $44
+	jp NextRadioLine
+
+BuenasPassword6: ; b90a4 (2e:50a4)
+	ld hl, UnknownText_0xb919b
+	ld a, $45
+	jp NextRadioLine
+
+BuenasPassword7: ; b90ac (2e:50ac)
+	call BuenasPasswordCheckMidnight
+	ld hl, UnknownText_0xb91a0
+	jr c, BuenasPasswordAfterMidnight
+	ld a, $4
+	jp NextRadioLine
+
+BuenasPasswordAfterMidnight: ; b90b9 (2e:50b9)
+	push hl
+	ld hl, WeeklyFlags
+	res 7, [hl]
+	pop hl
+	ld a, $46
+	jp NextRadioLine
+
+BuenasPassword8: ; b90c5 (2e:50c5)
+	ld hl, WeeklyFlags
+	res 7, [hl]
+	ld hl, UnknownText_0xb91d2
+	ld a, $47
+	jp NextRadioLine
+
+BuenasPassword9: ; b90d2 (2e:50d2)
+	ld hl, UnknownText_0xb91a5
+	ld a, $48
+	jp NextRadioLine
+
+BuenasPassword10: ; b90da (2e:50da)
+	ld hl, UnknownText_0xb91aa
+	ld a, $49
+	jp NextRadioLine
+
+BuenasPassword11: ; b90e2 (2e:50e2)
+	ld hl, UnknownText_0xb91af
+	ld a, $4a
+	jp NextRadioLine
+
+BuenasPassword12: ; b90ea (2e:50ea)
+	ld hl, UnknownText_0xb91b4
+	ld a, $4b
+	jp NextRadioLine
+
+BuenasPassword13: ; b90f2 (2e:50f2)
+	ld hl, UnknownText_0xb91b9
+	ld a, $4c
+	jp NextRadioLine
+
+BuenasPassword14: ; b90fa (2e:50fa)
+	ld hl, UnknownText_0xb91be
+	ld a, $4d
+	jp NextRadioLine
+
+BuenasPassword15: ; b9102 (2e:5102)
+	ld hl, UnknownText_0xb91c3
+	ld a, $4e
+	jp NextRadioLine
+
+BuenasPassword16: ; b910a (2e:510a)
+	ld hl, UnknownText_0xb91c8
+	ld a, $4f
+	jp NextRadioLine
+
+BuenasPassword17: ; b9112 (2e:5112)
+	ld hl, UnknownText_0xb91cd
+	ld a, $50
+	jp NextRadioLine
+
+BuenasPassword18: ; b911a (2e:511a)
+	ld hl, UnknownText_0xb91d2
+	ld a, $51
+	jp NextRadioLine
+
+BuenasPassword19: ; b9122 (2e:5122)
+	ld hl, UnknownText_0xb91d2
+	ld a, $52
+	jp NextRadioLine
+
+BuenasPassword20: ; b912a (2e:512a)
+	ld a, [hBGMapMode] ; $ff00+$d4
+	push af
+	callba NoRadioMusic
+	callba NoRadioName
+	pop af
+	ld [hBGMapMode], a ; $ff00+$d4
+	ld hl, WeeklyFlags
+	res 7, [hl]
+	ld a, $4
+	ld [wd002], a
+	xor a
+	ld [wd005], a
+	ld hl, UnknownText_0xb91d7
+	ld a, $53
+	jp NextRadioLine
+
+BuenasPassword21: ; b9152 (2e:5152)
+	ld a, $4
+	ld [wd002], a
+	xor a
+	ld [wd005], a
+	call BuenasPasswordCheckMidnight
+	jp nc, BuenasPassword1
+	ld hl, UnknownText_0xb91d7
+	ld a, $53
+	jp NextRadioLine
+
+BuenasPasswordCheckMidnight: ; b9169 (2e:5169)
+	call UpdateTime
+	ld a, [hHours] ; $ff00+$94
+	cp $12
+	ret
+; b9171 (2e:5171)
+
+String_b9171:
+	db "BUENA'S PASSWORD@"
+; b9182
+
+UnknownText_0xb9182: ; 0xb9182
+	; BUENA: BUENA here!
+	text_jump UnknownText_0x1bce72
+	db "@"
+; 0xb9187
+
+UnknownText_0xb9187: ; 0xb9187
+	; Today's password!
+	text_jump UnknownText_0x1bce87
+	db "@"
+; 0xb918c
+
+UnknownText_0xb918c: ; 0xb918c
+	; Let me think… It's
+	text_jump UnknownText_0x1bce9a
+	db "@"
+; 0xb9191
+
+UnknownText_0xb9191: ; 0xb9191
+	; @ !
+	text_jump UnknownText_0x1bceae
+	db "@"
+; 0xb9196
+
+UnknownText_0xb9196: ; 0xb9196
+	; Don't forget it!
+	text_jump UnknownText_0x1bceb7
+	db "@"
+; 0xb919b
+
+UnknownText_0xb919b: ; 0xb919b
+	; I'm in GOLDENROD's
+	text_jump UnknownText_0x1bcec9
+	db "@"
+; 0xb91a0
+
+UnknownText_0xb91a0: ; 0xb91a0
+	; RADIO TOWER!
+	text_jump UnknownText_0x1bcedc
+	db "@"
+; 0xb91a5
+
+UnknownText_0xb91a5: ; 0xb91a5
+	; BUENA: Oh my…
+	text_jump UnknownText_0x1bceeb
+	db "@"
+; 0xb91aa
+
+UnknownText_0xb91aa: ; 0xb91aa
+	; It's midnight! I
+	text_jump UnknownText_0x1bcefb
+	db "@"
+; 0xb91af
+
+UnknownText_0xb91af: ; 0xb91af
+	; have to shut down!
+	text_jump UnknownText_0x1bcf0d
+	db "@"
+; 0xb91b4
+
+UnknownText_0xb91b4: ; 0xb91b4
+	; Thanks for tuning
+	text_jump UnknownText_0x1bcf22
+	db "@"
+; 0xb91b9
+
+UnknownText_0xb91b9: ; 0xb91b9
+	; in to the end! But
+	text_jump UnknownText_0x1bcf36
+	db "@"
+; 0xb91be
+
+UnknownText_0xb91be: ; 0xb91be
+	; don't stay up too
+	text_jump UnknownText_0x1bcf4b
+	db "@"
+; 0xb91c3
+
+UnknownText_0xb91c3: ; 0xb91c3
+	; late! Presented to
+	text_jump UnknownText_0x1bcf5e
+	db "@"
+; 0xb91c8
+
+UnknownText_0xb91c8: ; 0xb91c8
+	; you by DJ BUENA!
+	text_jump UnknownText_0x1bcf73
+	db "@"
+; 0xb91cd
+
+UnknownText_0xb91cd: ; 0xb91cd
+	; I'm outta here!
+	text_jump UnknownText_0x1bcf86
+	db "@"
+; 0xb91d2
+
+UnknownText_0xb91d2: ; 0xb91d2
+	; …
+	text_jump UnknownText_0x1bcf96
+	db "@"
+; 0xb91d7
+
+UnknownText_0xb91d7: ; 0xb91d7
+	;
+	text_jump UnknownText_0x1bcf99
+	db "@"
+; 0xb91dc
+
+CopyRadioTextToRAM: ; b91dc (2e:51dc)
+	ld a, [hl]
+	cp TX_FAR
+	jp z, FarJumpText
+	ld de, wd00c
+	ld bc, SCREEN_WIDTH * 2
+	jp CopyBytes
+
+StartRadioStation: ; b91eb (2e:51eb)
+	ld a, [wd005]
+	and a
+	ret nz
+	call RadioTerminator
+	call PrintText
+	ld hl, RadioChannelSongs
+	ld a, [wd002]
+	ld c, a
+	ld b, 0
+rept 2
+	add hl, bc
+endr
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	callab RadioMusicNone
+	ret
+; b920b (2e:520b)
+
+RadioChannelSongs: ; b920b
+	dw MUSIC_POKEMON_TALK
+	dw MUSIC_POKEMON_CENTER
+	dw MUSIC_TITLE
+	dw MUSIC_GAME_CORNER
+	dw MUSIC_BUENAS_PASSWORD
+	dw MUSIC_VIRIDIAN_CITY
+	dw MUSIC_BICYCLE
+	dw MUSIC_ROCKET_OVERTURE
+	dw MUSIC_POKE_FLUTE_CHANNEL
+	dw MUSIC_RUINS_OF_ALPH_RADIO
+	dw MUSIC_LAKE_OF_RAGE_ROCKET_RADIO
+; b9221
+
+NextRadioLine: ; b9221 (2e:5221)
+	push af
+	call CopyRadioTextToRAM
+	pop af
+	jp PrintRadioLine
+; b9229
--- a/engine/scripting.asm
+++ b/engine/scripting.asm
@@ -475,7 +475,7 @@
 	ld de, LoadMenuDataHeader
 	ld a, [ScriptBank]
 	call Call_a_de
-	call DrawOnMap
+	call UpdateSprites
 	ret
 ; 0x96f0f
 
@@ -483,7 +483,7 @@
 ; script command 0x50
 
 	call WriteBackup
-	call DrawOnMap
+	call UpdateSprites
 	ret
 ; 0x96f16
 
@@ -1212,7 +1212,7 @@
 	jr nz, .asm_972b5 ; 0x972b0 $3
 	call Function972bc
 .asm_972b5
-	call DrawOnMap
+	call UpdateSprites
 	ret
 .not_visible
 	pop de
@@ -1222,8 +1222,8 @@
 
 Function972bc: ; 0x972bc
 	call Function217a
-	ld hl, TileMap
-	ld bc, $0168
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 .asm_972c5
 	res 7, [hl]
 	inc hl
@@ -1470,7 +1470,7 @@
 ; script command 0x5a
 
 	ld a, PIKACHU
-	ld [wd22e], a
+	ld [TempWildMonSpecies], a
 	ld a, 5
 	ld [CurPartyLevel], a
 	ret
@@ -1505,7 +1505,7 @@
 	ld a, $80
 	ld [wd459], a
 	call GetScriptByte
-	ld [wd22e], a
+	ld [TempWildMonSpecies], a
 	call GetScriptByte
 	ld [CurPartyLevel], a
 	ret
@@ -2970,7 +2970,7 @@
 	call Function2173
 	call Function2914
 	callba Function104061
-	call DrawOnMap
+	call UpdateSprites
 	ret
 ; 0x97af6
 
--- a/engine/spawn_points.asm
+++ b/engine/spawn_points.asm
@@ -4,46 +4,42 @@
 	const_def
 
 spawn: MACRO
-; name, map, y, x
-\1\@ EQUS "SPAWN_\1"
-	const \1\@
-	map \2
-	db \3, \4
+; map, y, x
+	map \1
+	db \2, \3
 ENDM
 
-	spawn HOME,        KRISS_HOUSE_2F,              3,  3
-	spawn DEBUG,       VIRIDIAN_POKECENTER_1F,      5,  3
+	spawn KRISS_HOUSE_2F,              3,  3
+	spawn VIRIDIAN_POKECENTER_1F,      5,  3
 
-	spawn PALLET,      PALLET_TOWN,                 5,  6
-	spawn VIRIDIAN,    VIRIDIAN_CITY,              23, 26
-	spawn PEWTER,      PEWTER_CITY,                13, 26
-	spawn CERULEAN,    CERULEAN_CITY,              19, 22
-	spawn ROCK_TUNNEL, ROUTE_10_NORTH,             11,  2
-	spawn VERMILION,   VERMILION_CITY,              9,  6
-	spawn LAVENDER,    LAVENDER_TOWN,               5,  6
-	spawn SAFFRON,     SAFFRON_CITY,                9, 30
-	spawn CELADON,     CELADON_CITY,               29, 10
-	spawn FUCHSIA,     FUCHSIA_CITY,               19, 28
-	spawn CINNABAR,    CINNABAR_ISLAND,            11, 12
-	spawn INDIGO,      ROUTE_23,                    9,  6
+	spawn PALLET_TOWN,                 5,  6
+	spawn VIRIDIAN_CITY,              23, 26
+	spawn PEWTER_CITY,                13, 26
+	spawn CERULEAN_CITY,              19, 22
+	spawn ROUTE_10_NORTH,             11,  2
+	spawn VERMILION_CITY,              9,  6
+	spawn LAVENDER_TOWN,               5,  6
+	spawn SAFFRON_CITY,                9, 30
+	spawn CELADON_CITY,               29, 10
+	spawn FUCHSIA_CITY,               19, 28
+	spawn CINNABAR_ISLAND,            11, 12
+	spawn ROUTE_23,                    9,  6
 
-	spawn NEW_BARK,    NEW_BARK_TOWN,              13,  6
-	spawn CHERRYGROVE, CHERRYGROVE_CITY,           29,  4
-	spawn VIOLET,      VIOLET_CITY,                31, 26
-	spawn UNION_CAVE,  ROUTE_32,                   11, 74
-	spawn AZALEA,      AZALEA_TOWN,                15, 10
-	spawn CIANWOOD,    CIANWOOD_CITY,              23, 44
-	spawn GOLDENROD,   GOLDENROD_CITY,             15, 28
-	spawn OLIVINE,     OLIVINE_CITY,               13, 22
-	spawn ECRUTEAK,    ECRUTEAK_CITY,              23, 28
-	spawn MAHOGANY,    MAHOGANY_TOWN,              15, 14
-	spawn LAKE,        LAKE_OF_RAGE,               21, 29
-	spawn BLACKTHORN,  BLACKTHORN_CITY,            21, 30
-	spawn MT_SILVER,   SILVER_CAVE_OUTSIDE,        23, 20
-	spawn FAST_SHIP,   FAST_SHIP_CABINS_SW_SSW_NW,  6,  2
-NUM_SPAWNS EQU const_value
-const_value = -1
-	spawn N_A,         N_A,                        -1, -1
+	spawn NEW_BARK_TOWN,              13,  6
+	spawn CHERRYGROVE_CITY,           29,  4
+	spawn VIOLET_CITY,                31, 26
+	spawn ROUTE_32,                   11, 74
+	spawn AZALEA_TOWN,                15, 10
+	spawn CIANWOOD_CITY,              23, 44
+	spawn GOLDENROD_CITY,             15, 28
+	spawn OLIVINE_CITY,               13, 22
+	spawn ECRUTEAK_CITY,              23, 28
+	spawn MAHOGANY_TOWN,              15, 14
+	spawn LAKE_OF_RAGE,               21, 29
+	spawn BLACKTHORN_CITY,            21, 30
+	spawn SILVER_CAVE_OUTSIDE,        23, 20
+	spawn FAST_SHIP_CABINS_SW_SSW_NW,  6,  2
+	spawn N_A,                        -1, -1
 
 
 
@@ -93,7 +89,7 @@
 
 .next
 	push bc
-	ld bc, 4
+	ld bc, 4 ; length of a spawn table entry
 	add hl, bc
 	pop bc
 	inc c
--- a/engine/specials.asm
+++ b/engine/specials.asm
@@ -75,7 +75,7 @@
 	add_special WhiteBGMap
 	add_special UpdateTimePals
 	add_special ClearTileMap
-	add_special DrawOnMap
+	add_special UpdateSprites
 	add_special Special_ReplaceKrisSprite
 	add_special Special_GameCornerPrizeMonCheckDex
 	add_special SpecialSeenMon
@@ -110,9 +110,9 @@
 	add_special SpecialNameRater
 	add_special Functionc2da
 	add_special GetFirstPokemonHappiness
-	add_special Function71ac
-	add_special Function2a4ab
-	add_special Function2a51f
+	add_special CheckFirstMonIsEgg
+	add_special RandomPhoneRareWildMon
+	add_special RandomPhoneWildMon
 	add_special RandomPhoneMon
 	add_special RunCallback_04
 	add_special Functionfb841
--- a/engine/std_scripts.asm
+++ b/engine/std_scripts.asm
@@ -298,7 +298,7 @@
 	clearevent EVENT_USED_THE_CARD_KEY_IN_THE_RADIO_TOWER
 	setevent EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_EAST
 	specialphonecall ELMCALL_WEIRDBROADCAST
-	domaptrigger GROUP_MAHOGANY_TOWN, MAP_MAHOGANY_TOWN, $1
+	domaptrigger MAHOGANY_TOWN, $1
 	end
 
 BugContestResultsWarpScript:
@@ -307,7 +307,7 @@
 	setevent EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY
 	clearevent EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY
 	setevent EVENT_WARPED_FROM_ROUTE_35_NATIONAL_PARK_GATE
-	warp GROUP_ROUTE_36_NATIONAL_PARK_GATE, MAP_ROUTE_36_NATIONAL_PARK_GATE, $0, $4
+	warp ROUTE_36_NATIONAL_PARK_GATE, $0, $4
 	applymovement PLAYER, Movement_ContestResults_WalkAfterWarp
 
 BugContestResultsScript:
@@ -356,7 +356,7 @@
 BugContestResults_CleanUp
 	loadmovesprites
 	dotrigger $0
-	domaptrigger GROUP_ROUTE_35_NATIONAL_PARK_GATE, MAP_ROUTE_35_NATIONAL_PARK_GATE, $0
+	domaptrigger ROUTE_35_NATIONAL_PARK_GATE, $0
 	setevent EVENT_BUG_CATCHING_CONTESTANT_1A
 	setevent EVENT_BUG_CATCHING_CONTESTANT_2A
 	setevent EVENT_BUG_CATCHING_CONTESTANT_3A
--- a/home.asm
+++ b/home.asm
@@ -215,9 +215,9 @@
 Function309d:: ; 309d
 	ld a, [rSVBK]
 	push af
-	ld a, 2
+	ld a, BANK(w2_d000)
 	ld [rSVBK], a
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld de, w2_d000
 	ld bc, TileMapEnd - TileMap
 	call CopyBytes
@@ -238,10 +238,10 @@
 Function30bf:: ; 30bf
 	ld a, [rSVBK]
 	push af
-	ld a, 2
+	ld a, BANK(w2_d000)
 	ld [rSVBK], a
 	ld hl, w2_d000
-	ld de, TileMap
+	decoord 0, 0
 	ld bc, TileMapEnd - TileMap
 	call CopyBytes
 	pop af
@@ -251,9 +251,11 @@
 
 
 CopyName1:: ; 30d6
+; Copies the name from de to StringBuffer2
 	ld hl, StringBuffer2
 
 CopyName2:: ; 30d9
+; Copies the name from de to hl
 .loop
 	ld a, [de]
 	inc de
@@ -271,7 +273,7 @@
 	ld c, a
 .loop
 	ld a, [hl]
-	cp $ff
+	cp -1
 	jr z, .NotInArray
 	cp c
 	jr z, .InArray
@@ -300,18 +302,7 @@
 	ret
 ; 0x30fe
 
-AddNTimes:: ; 0x30fe
-; Add bc * a to hl.
-	and a
-	ret z
-.loop
-	add hl, bc
-	dec a
-	jr nz, .loop
-	ret
-; 0x3105
 
-
 INCLUDE "home/math.asm"
 
 
@@ -626,11 +617,11 @@
 	di
 	ld a, $1
 	ld [rVBK], a
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	call Function327b
 	ld a, $0
 	ld [rVBK], a
-	ld hl, TileMap
+	hlcoord 0, 0
 	call Function327b
 .wait2
 	ld a, [rLY]
@@ -727,7 +718,7 @@
 	ld a, [rSVBK]
 	push af
 
-	ld a, 5
+	ld a, BANK(BGPals)
 	ld [rSVBK], a
 
 ; Fill BGPals and OBPals with $ffff (white)
@@ -761,7 +752,7 @@
 	ret z
 
 .sgb
-	predef_jump Function864c ; LoadSGBLayout
+	predef_jump Predef_LoadSGBLayout ; LoadSGBLayout
 ; 334e
 
 
@@ -1273,11 +1264,11 @@
 ; 35b0
 
 Function35b0:: ; 35b0
-	ld hl, wdbf9 + 3
+	ld hl, wCurrentCaller + 3
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
-	ld a, [wdbf9 + 2]
+	ld a, [wCurrentCaller + 2]
 	and a
 	jr z, .asm_35d3
 
@@ -1311,7 +1302,7 @@
 .asm_35d5
 	pop af
 	ld d, a
-	ld a, [wdbf9 + 2]
+	ld a, [wCurrentCaller + 2]
 	sub d
 	inc a
 	scf
@@ -2153,11 +2144,11 @@
 ; 3f20
 
 Function3f20:: ; 3f20
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld b, $6
 	ld c, $14
 	call Function3f35
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld b, $4
 	ld c, $12
 	call Function3f47
--- a/home/battle.asm
+++ b/home/battle.asm
@@ -312,7 +312,7 @@
 	push hl
 	call SpeechTextBox
 	call MobileTextBorder
-	call DrawOnMap
+	call UpdateSprites
 	call Function321c
 	pop hl
 	call PrintTextBoxText
--- a/home/map.asm
+++ b/home/map.asm
@@ -97,7 +97,7 @@
 
 Function2173:: ; 2173
 	call Function217a
-	call Functiondb1
+	call FarCallSwapTextboxPalettes
 	ret
 ; 217a
 
@@ -110,7 +110,7 @@
 
 	call Function2198
 	ld a, $60
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, TileMapEnd - TileMap
 	call ByteFill
 
@@ -1143,7 +1143,7 @@
 ; 0x26f2
 
 ObjectEventText::
-	TX_FAR _ObjectEventText
+	text_jump _ObjectEventText
 	db "@"
 ; 0x26f7
 
@@ -1200,11 +1200,11 @@
 
 
 Function272a:: ; 272a
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld de, BGMapBuffer
 	call Function27b7
 	ld c, $28
-	call Functiondbd
+	call FarCallScrollBGMapPalettes
 	ld a, [wd152]
 	ld e, a
 	ld a, [wd153]
@@ -1220,7 +1220,7 @@
 	ld de, BGMapBuffer
 	call Function27b7
 	ld c, $28
-	call Functiondbd
+	call FarCallScrollBGMapPalettes
 	ld a, [wd152]
 	ld l, a
 	ld a, [wd153]
@@ -1239,11 +1239,11 @@
 ; 2771
 
 Function2771:: ; 2771
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld de, BGMapBuffer
 	call Function27c0
 	ld c, $24
-	call Functiondbd
+	call FarCallScrollBGMapPalettes
 	ld a, [wd152]
 	ld e, a
 	ld a, [wd153]
@@ -1259,7 +1259,7 @@
 	ld de, BGMapBuffer
 	call Function27c0
 	ld c, $24
-	call Functiondbd
+	call FarCallScrollBGMapPalettes
 	ld a, [wd152]
 	ld e, a
 	and $e0
@@ -1966,7 +1966,7 @@
 Function2b3c:: ; 2b3c
 	call WhiteBGMap
 	call Function2bae
-	call DrawOnMap
+	call UpdateSprites
 	call Function1d7d
 	call Functiond90
 	jr Function2b5c
@@ -1976,7 +1976,7 @@
 	call WhiteBGMap
 	call Function1d7d
 	call Function2bae
-	call DrawOnMap
+	call UpdateSprites
 	call Functiond90
 ; 2b5c
 
@@ -2003,7 +2003,7 @@
 	call TextBox
 	ld hl, VramState
 	set 0, [hl]
-	call DrawOnMap
+	call UpdateSprites
 	call Function3200
 	ld b, $9
 	call GetSGBLayout
--- a/home/map_objects.asm
+++ b/home/map_objects.asm
@@ -84,7 +84,7 @@
 	ret
 ; 1852
 
-Function1852:: ; 1852
+CheckOnWater:: ; 1852
 	ld a, [StandingTile]
 	call GetTileCollision
 	sub 1
@@ -147,7 +147,7 @@
 	ret
 ; 188e
 
-Function188e:: ; 188e
+CheckSuperTallGrassTile:: ; 188e
 	cp $14
 	ret z
 	cp $1c
@@ -549,7 +549,7 @@
 	ld d, 0
 	ld hl, ObjectStruct3_Data + 1
 rept OBJECT_STRUCT_3_DATA_WIDTH
-	add hl,de
+	add hl, de
 endr
 	ld b, h
 	ld c, l
@@ -623,7 +623,7 @@
 ; 1ad2
 
 
-DrawOnMap:: ; 1ad2
+UpdateSprites:: ; 1ad2
 	ld a, [VramState]
 	bit 0, a
 	ret z
--- a/home/math.asm
+++ b/home/math.asm
@@ -1,3 +1,14 @@
+AddNTimes:: ; 0x30fe
+; Add bc * a to hl.
+	and a
+	ret z
+.loop
+	add hl, bc
+	dec a
+	jr nz, .loop
+	ret
+; 0x3105
+
 SimpleMultiply:: ; 3105
 ; Return a * c.
 	and a
--- a/home/menu.asm
+++ b/home/menu.asm
@@ -75,7 +75,7 @@
 	xor a
 	ld [hBGMapMode], a
 	call Function1cbb
-	call DrawOnMap
+	call UpdateSprites
 	call Function1c89
 	call Function321c
 	call Function1c66
--- a/home/movement.asm
+++ b/home/movement.asm
@@ -209,7 +209,7 @@
 	push af
 	call ExitMenu
 	call Function321c
-	call DrawOnMap
+	call UpdateSprites
 	pop af
 	ret
 
--- a/home/palettes.asm
+++ b/home/palettes.asm
@@ -323,23 +323,23 @@
 ; db1
 
 
-Functiondb1:: ; db1
+FarCallSwapTextboxPalettes:: ; db1
 	ld a, [hROMBank]
 	push af
-	ld a, BANK(Function4c000)
+	ld a, BANK(SwapTextboxPalettes)
 	rst Bankswitch
-	call Function4c000
+	call SwapTextboxPalettes
 	pop af
 	rst Bankswitch
 	ret
 ; dbd
 
-Functiondbd:: ; dbd
+FarCallScrollBGMapPalettes:: ; dbd
 	ld a, [hROMBank]
 	push af
-	ld a, BANK(Function4c03f)
+	ld a, BANK(ScrollBGMapPalettes)
 	rst Bankswitch
-	call Function4c03f
+	call ScrollBGMapPalettes
 	pop af
 	rst Bankswitch
 	ret
--- a/home/text.asm
+++ b/home/text.asm
@@ -37,7 +37,7 @@
 ClearTileMap:: ; fc8
 ; Fill TileMap with blank tiles.
 
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld a, " "
 	ld bc, TileMapEnd - TileMap
 	call ByteFill
@@ -52,7 +52,7 @@
 
 ClearScreen:: ; fdb
 	ld a, TEXTBOX_PAL
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call ByteFill
 	jr ClearTileMap
@@ -163,7 +163,7 @@
 	done
 ; 1052
 
-Function1052:: ; 1052
+RadioTerminator:: ; 1052
 	ld hl, .stop
 	ret
 .stop	db "@"
@@ -181,7 +181,7 @@
 
 PrintTextBoxText:: ; 1065
 	bccoord TEXTBOX_INNERX, TEXTBOX_INNERY
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	ret
 ; 106c
 
@@ -188,7 +188,7 @@
 SetUpTextBox:: ; 106c
 	push hl
 	call SpeechTextBox
-	call DrawOnMap
+	call UpdateSprites
 	call Function321c
 	pop hl
 	ret
@@ -478,7 +478,7 @@
 	jr .asm_12c4
 
 .asm_12d1
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld de, SCREEN_WIDTH
 	ld a, c
 .asm_12d8
@@ -697,7 +697,7 @@
 ; 13e5
 
 
-Function13e5:: ; 13e5
+PlaceWholeStringInBoxAtOnce:: ; 13e5
 	ld a, [TextBoxFrame + 1]
 	push af
 	set 1, a
@@ -780,7 +780,7 @@
 ; 1449
 
 Text_01:: ; 1449
-; TX_RAM
+; text_from_ram
 ; write text from a ram address
 ; little endian
 ; [$01][addr]
@@ -798,7 +798,7 @@
 ; 1455
 
 Text_16:: ; 1455
-; TX_FAR
+; text_jump
 ; write text from a different bank
 ; little endian
 ; [$16][addr][bank]
--- a/home/tilemap.asm
+++ b/home/tilemap.asm
@@ -186,7 +186,7 @@
 	xor a
 	ld b, a
 	add hl, bc
-	ld bc, TileMap
+	bccoord 0, 0
 	add hl, bc
 	ret
 ; 1d19
@@ -216,7 +216,7 @@
 	xor a
 	ld b, a
 	add hl, bc
-	ld bc, AttrMap
+	bccoord 0, 0, AttrMap
 	add hl, bc
 	ret
 ; 1d35
--- a/home/video.asm
+++ b/home/video.asm
@@ -169,7 +169,7 @@
 	ld a, 1
 	ld [rVBK], a
 
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	call .update
 
 	ld a, 0
@@ -178,7 +178,7 @@
 
 
 .Tiles
-	ld hl, TileMap
+	hlcoord 0, 0
 
 
 .update
--- a/home/window.asm
+++ b/home/window.asm
@@ -83,7 +83,7 @@
 	ld [hBGMapMode], a
 	ld a, $1
 	ld [hOAMUpdate], a
-	call DrawOnMap
+	call UpdateSprites
 	xor a
 	ld [hOAMUpdate], a
 	call DelayFrame
--- a/items/item_effects.asm
+++ b/items/item_effects.asm
@@ -1912,7 +1912,7 @@
 Functionf279: ; f279 (3:7279)
 	xor a
 	ld [hBGMapMode], a
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, TileMapEnd - TileMap
 	ld a, " "
 	call ByteFill
--- a/macros/enum.asm
+++ b/macros/enum.asm
@@ -31,6 +31,6 @@
 ENDM
 
 shift_const: MACRO
-\1 EQU 1 << const_value
+\1 EQU (1 << const_value)
 const_value = const_value + 1
 ENDM
--- a/macros/event.asm
+++ b/macros/event.asm
@@ -120,16 +120,14 @@
 	enum checkmaptriggers_command
 checkmaptriggers: macro
 	db checkmaptriggers_command
-	db \1 ; map_group
-	db \2 ; map_id
+	map \1 ; map
 	endm
 
 	enum domaptrigger_command
 domaptrigger: macro
 	db domaptrigger_command
-	db \1 ; map_group
-	db \2 ; map_id
-	db \3 ; trigger_id
+	map \1 ; map
+	db \2 ; trigger_id
 	endm
 
 	enum checktriggers_command
@@ -385,24 +383,21 @@
 warpmod: macro
 	db warpmod_command
 	db \1 ; warp_id
-	db \2 ; map_group
-	db \3 ; map_id
+	map \2 ; map
 	endm
 
 	enum blackoutmod_command
 blackoutmod: macro
 	db blackoutmod_command
-	db \1 ; map_group
-	db \2 ; map_id
+	map \1 ; map
 	endm
 
 	enum warp_command
 warp: macro
 	db warp_command
-	db \1 ; map_group
-	db \2 ; map_id
-	db \3 ; x
-	db \4 ; y
+	map \1 ; map
+	db \2 ; x
+	db \3 ; y
 	endm
 
 	enum readmoney_command
@@ -997,8 +992,7 @@
 loadwilddata: macro
 	db loadwilddata_command
 	db \1 ; flag
-	db \2 ; map_group
-	db \3 ; map_id
+	map \2 ; map
 	endm
 
 	enum halloffame_command
@@ -1015,10 +1009,9 @@
 warpfacing: macro
 	db warpfacing_command
 	db \1 ; facing
-	db \2 ; map_group
-	db \3 ; map_id
-	db \4 ; x
-	db \5 ; y
+	map \2 ; map
+	db \3 ; x
+	db \4 ; y
 	endm
 
 	enum storetext_command
--- a/macros/map.asm
+++ b/macros/map.asm
@@ -1,12 +1,5 @@
 map: MACRO
-; This is a silly hack to get around an rgbds bug.
-
-; Ideally:
-;	db GROUP_\1, MAP_\1
-
-\1\@  EQUS "GROUP_\1"
-\1\@2 EQUS "MAP_\1"
-	db \1\@, \1\@2
+	db GROUP_\1, MAP_\1
 ENDM
 
 roam_map: MACRO
@@ -23,16 +16,17 @@
 	db 0
 ENDM
 
-
 person_event: macro
 	db \1 ; sprite
 	db \2 ; y
 	db \3 ; x
-	db \4 ; facing
-	db \5 ; movement
-	db \6 ; clock_hour
-	db \7 ; clock_daytime
-	db \8 ; color_function
+	db \4 ; movement function
+	dn \5, \6 ; radius: y, x
+	db \7 ; clock_hour
+	db \8 ; clock_daytime
+	shift
+	dn \8, \9 ; color_function
+	shift
 	db \9 ; sight_range
 	shift
 	dw \9 ; pointer
@@ -61,8 +55,7 @@
 	db \1 ; y
 	db \2 ; x
 	db \3 ; warp_to
-	db \4 ; map group
-	db \5 ; map number
+	map \4 ; map
 	endm
 
 
@@ -164,16 +157,23 @@
 ENDM
 
 mapgroup: MACRO
-; map id, height, width
-\1\@  EQUS "GROUP_\1"
-\1\@2 EQUS "MAP_\1"
-\1\@ EQU const_value
-	enum \1\@2
+GROUP_\1 EQU const_value
+	enum MAP_\1
 \1_HEIGHT EQU \2
 \1_WIDTH EQU \3
 ENDM
+; map id, height, width
+; \1\@  EQUS "GROUP_\1"
+; \1\@_2 EQUS "MAP_\1"
+; \1\@ EQU const_value
+	; enum \1\@_2
 
 newgroup: MACRO
 const_value = const_value + 1
 	enum_start 1
+ENDM
+
+elevfloor: MACRO
+	db \1, \2
+	map \3
 ENDM
--- a/macros/movement.asm
+++ b/macros/movement.asm
@@ -359,12 +359,12 @@
 
 	enum movement_fish_got_bite
 fish_got_bite: macro
-	db movement_fish_got_bite
+	db movement_fish_got_bite ; $51
 	endm
 
 	enum movement_fish_got_bite_2
 fish_got_bite_2: macro
-	db movement_fish_got_bite_2
+	db movement_fish_got_bite_2 ; $52
 	endm
 
 	enum movement_hide_emote
@@ -381,4 +381,11 @@
 step_shake: macro
 	db movement_step_shake ; $55
 	db \1 ; displacement
+	endm
+
+__enum__ = $57
+	enum movement_rock_smash
+rock_smash: macro
+	db movement_rock_smash ; $57
+	db \1
 	endm
--- a/macros/text.asm
+++ b/macros/text.asm
@@ -12,20 +12,20 @@
 dex    EQUS "db $e8, $50" ; End a Pokedex entry.
 
 
-TX_RAM: MACRO
-	db 1
+TX_RAM EQU $01
+TX_FAR EQU $16
+
+text_jump: MACRO
+	db TX_FAR
 	dw \1
+	db BANK(\1)
 	ENDM
 
-TX_FAR: MACRO
-	db $16
+text_from_ram: MACRO
+	db TX_RAM
 	dw \1
-	db BANK(\1)
 	ENDM
 
-
-text_from_ram EQUS "TX_RAM"
-
 text_dunno1: macro
 	db 5
 	endm
@@ -81,4 +81,3 @@
 	db $15
 	endm
 
-text_jump EQUS "TX_FAR"
--- a/macros/trainer.asm
+++ b/macros/trainer.asm
@@ -1,11 +1,11 @@
-trainerclass: MACRO
-	enum \1
-const_value = 1
-ENDM
-
-trainer: MACRO
-	; flag, group, id, seen text, win text, lost text, talk-again text
-	dw \1
-	db \2, \3
-	dw \4, \5, \6, \7
-ENDM
+trainerclass: MACRO
+	enum \1
+const_value = 1
+ENDM
+
+trainer: MACRO
+	; flag, group, id, seen text, win text, lost text, talk-again text
+	dw \1
+	db \2, \3
+	dw \4, \5, \6, \7
+ENDM
--- a/main.asm
+++ b/main.asm
@@ -138,7 +138,7 @@
 	ld a, 1
 	ld [wc2d8], a
 
-	ld a, 0 ; SPAWN_HOME
+	ld a, SPAWN_HOME
 	ld [wd001], a
 
 	ld a, $f1
@@ -201,7 +201,7 @@
 	ld [wd84b], a
 
 	ld hl, PartyCount
-	call Function5ca1
+	call InitList
 
 	xor a
 	ld [wCurBox], a
@@ -212,20 +212,20 @@
 	ld a, 1
 	call GetSRAMBank
 	ld hl, sBoxCount
-	call Function5ca1
+	call InitList
 	call CloseSRAM
 
 	ld hl, NumItems
-	call Function5ca1
+	call InitList
 
 	ld hl, NumKeyItems
-	call Function5ca1
+	call InitList
 
 	ld hl, NumBalls
-	call Function5ca1
+	call InitList
 
 	ld hl, PCItems
-	call Function5ca1
+	call InitList
 
 	xor a
 	ld [wRoamMon1Species], a
@@ -249,7 +249,7 @@
 	call CloseSRAM
 
 	call Function5d33
-	call Function5cd3
+	call InitializeRalphName
 
 	xor a
 	ld [MonType], a
@@ -281,7 +281,7 @@
 	inc hl
 	ld [hl], 2300 % $100
 
-	call Function5ce9
+	call InitializeNPCNames
 
 	callba Function26751
 
@@ -293,7 +293,8 @@
 	ret
 ; 5ca1
 
-Function5ca1: ; 5ca1
+InitList: ; 5ca1
+; Loads 0 in the count and -1 in the first item or mon slot.
 	xor a
 	ld [hli], a
 	dec a
@@ -334,7 +335,7 @@
 	db "BOX@"
 ; 5cd3
 
-Function5cd3: ; 5cd3
+InitializeRalphName: ; 5cd3
 	ld hl, wdfe8
 	ld a, $3
 	ld [hli], a
@@ -349,7 +350,7 @@
 	db "RALPH@"
 ; 5ce9
 
-Function5ce9: ; 5ce9
+InitializeNPCNames: ; 5ce9
 	ld hl, .Rival
 	ld de, RivalName
 	call .Copy
@@ -377,7 +378,7 @@
 ; 5d23
 
 InitializeWorld: ; 5d23
-	call Function610f
+	call ShrinkPlayer
 	callba GetSpawnCoord
 	callba Function113d6
 	ret
@@ -394,7 +395,7 @@
 	ld a, [$ac6a]
 	ld c, a
 	ld a, [$ac69]
-	jr z, .asm_5d55
+	jr z, .skip
 	ld a, b
 	ld [$ac68], a
 	call Random
@@ -401,7 +402,7 @@
 	ld c, a
 	call Random
 
-.asm_5d55
+.skip
 	ld [wdc9f], a
 	ld [$ac69], a
 	ld a, c
@@ -412,7 +413,7 @@
 
 Continue: ; 5d65
 	callba TryLoadSaveFile
-	jr c, .asm_5dd6
+	jr c, .FailToLoad
 	callba Function150b9
 	call Function1d6e
 	call Function5e85
@@ -423,13 +424,13 @@
 	call Function5e34
 	jr nc, .asm_5d8c
 	call WriteBackup
-	jr .asm_5dd6
+	jr .FailToLoad
 
 .asm_5d8c
 	call Function5e48
 	jr nc, .asm_5d96
 	call WriteBackup
-	jr .asm_5dd6
+	jr .FailToLoad
 
 .asm_5d96
 	ld a, $8
@@ -444,7 +445,7 @@
 	call ClearTileMap
 	ld c, $14
 	call DelayFrames
-	callba RestoreRoamMons
+	callba JumpRoamMons
 	callba Function105091
 	callba Function140ae
 	ld a, [wd4b5]
@@ -454,11 +455,11 @@
 	ld [$ff9f], a
 	jp Function5e5d
 
-.asm_5dd6
+.FailToLoad
 	ret
 
 .asm_5dd7
-	ld a, $e ; SPAWN_NEW_BARK
+	ld a, SPAWN_NEW_BARK
 	ld [wd001], a
 	call Function5de7
 	jp Function5e5d
@@ -465,7 +466,7 @@
 ; 5de2
 
 Function5de2: ; 5de2
-	ld a, $1a ; SPAWN_MT_SILVER
+	ld a, SPAWN_MT_SILVER
 	ld [wd001], a
 ; 5de7
 
@@ -567,13 +568,13 @@
 	ret
 
 .asm_5e93
-	ld de, $0408
+	lb de, 4, 8
 	call Function5e9f
 	ret
 ; 5e9a
 
 Function5e9a: ; 5e9a
-	ld de, $0400
+	lb de, 4, 0
 	jr Function5e9f
 ; 5e9f
 
@@ -582,7 +583,7 @@
 	call Function5f1c
 	call Function5f40
 	call Functione5f
-	call DrawOnMap
+	call UpdateSprites
 	ret
 ; 5eaf
 
@@ -591,7 +592,7 @@
 	call Function5f1c
 	call Function5f48
 	call Functione5f
-	call DrawOnMap
+	call UpdateSprites
 	ret
 ; 5ebf
 
@@ -651,12 +652,12 @@
 	push hl
 	ld de, $005d
 	add hl, de
-	call Function5f58
+	call DisplayBadgeCount
 	pop hl
 	push hl
 	ld de, $0084
 	add hl, de
-	call Function5f6b
+	call DisplayPokedexNumCaught
 	pop hl
 	push hl
 	ld de, $0030
@@ -673,7 +674,7 @@
 Function5f40: ; 5f40
 	ld de, $00a9
 	add hl, de
-	call Function5f84
+	call DisplayGameTime
 	ret
 ; 5f48
 
@@ -688,7 +689,7 @@
 	db " ???@"
 ; 5f58
 
-Function5f58: ; 5f58
+DisplayBadgeCount: ; 5f58
 	push hl
 	ld hl, JohtoBadges
 	ld b, $2
@@ -695,11 +696,11 @@
 	call CountSetBits
 	pop hl
 	ld de, wd265
-	ld bc, $0102
+	lb bc, 1, 2
 	jp PrintNum
 ; 5f6b
 
-Function5f6b: ; 5f6b
+DisplayPokedexNumCaught: ; 5f6b
 	ld a, [StatusFlags]
 	bit 0, a
 	ret z
@@ -709,18 +710,18 @@
 	call CountSetBits
 	pop hl
 	ld de, wd265
-	ld bc, $0103
+	lb bc, 1, 3
 	jp PrintNum
 ; 5f84
 
-Function5f84: ; 5f84
+DisplayGameTime: ; 5f84
 	ld de, GameTimeHours
-	ld bc, $0203
+	lb bc, 2, 3
 	call PrintNum
 	ld [hl], $6d
 	inc hl
 	ld de, GameTimeMinutes
-	ld bc, $8102
+	lb bc, $81, 2
 	jp PrintNum
 ; 5f99
 
@@ -804,11 +805,11 @@
 	ret
 
 OakText1: ; 0x6045
-	TX_FAR _OakText1
+	text_jump _OakText1
 	db "@"
 
 OakText2: ; 0x604a
-	TX_FAR _OakText2
+	text_jump _OakText2
 	start_asm
 	ld a,WOOPER
 	call PlayCry
@@ -817,23 +818,23 @@
 	ret
 
 OakText3: ; 0x605b
-	TX_FAR _OakText3
+	text_jump _OakText3
 	db "@"
 
 OakText4: ; 0x6060
-	TX_FAR _OakText4
+	text_jump _OakText4
 	db "@"
 
 OakText5: ; 0x6065
-	TX_FAR _OakText5
+	text_jump _OakText5
 	db "@"
 
 OakText6: ; 0x606a
-	TX_FAR _OakText6
+	text_jump _OakText6
 	db "@"
 
 OakText7: ; 0x606f
-	TX_FAR _OakText7
+	text_jump _OakText7
 	db "@"
 
 NamePlayer: ; 0x6074
@@ -870,9 +871,9 @@
 	ld de, .Chris
 	ld a, [PlayerGender]
 	bit 0, a
-	jr z, .asm_60cf
+	jr z, .Male
 	ld de, .Kris
-.asm_60cf
+.Male
 	call InitName
 	ret
 
@@ -903,7 +904,7 @@
 	ret
 ; 610f
 
-Function610f: ; 610f
+ShrinkPlayer: ; 610f
 
 	ld a, [hROMBank]
 	push af
@@ -926,7 +927,7 @@
 
 	ld hl, Shrink1Pic
 	ld b, BANK(Shrink1Pic)
-	call Function61b4
+	call ShrinkFrame
 
 	ld c, 8
 	call DelayFrames
@@ -933,7 +934,7 @@
 
 	ld hl, Shrink2Pic
 	ld b, BANK(Shrink2Pic)
-	call Function61b4
+	call ShrinkFrame
 
 	ld c, 8
 	call DelayFrames
@@ -960,13 +961,13 @@
 Intro_FadeInFrontpic: ; 616a
 	ld hl, IntroFadePalettes
 	ld b, IntroFadePalettesEnd - IntroFadePalettes
-.asm_616f
+.loop
 	ld a, [hli]
 	call DmgToCgbBGPals
 	ld c, 10
 	call DelayFrames
 	dec b
-	jr nz, .asm_616f
+	jr nz, .loop
 	ret
 ; 617c
 
@@ -984,13 +985,13 @@
 	ld a, $77
 	ld [hWX], a
 	call DelayFrame
-	ld a, $e4
+	ld a, %11100100
 	call DmgToCgbBGPals
 .loop
 	call DelayFrame
 	ld a, [hWX]
 	sub $8
-	cp $ff
+	cp -1
 	ret z
 	ld [hWX], a
 	jr .loop
@@ -1007,7 +1008,7 @@
 	ret
 ; 61b4
 
-Function61b4: ; 61b4
+ShrinkFrame: ; 61b4
 	ld de, VTiles2
 	ld c, $31
 	predef DecompressPredef
@@ -1069,7 +1070,7 @@
 Function620b: ; 620b
 	callab Functione4579
 	jr c, Function6219
-	callba Functione48ac
+	callba CrystalIntro
 
 Function6219: ; 6219
 	ld a, [rSVBK]
@@ -1604,7 +1605,7 @@
 	jr nz, .next
 
 	push de
-	call Function65d3
+	call ForgetMove
 	pop de
 	jp c, .cancel
 
@@ -1693,7 +1694,7 @@
 	ret
 ; 65d3
 
-Function65d3: ; 65d3
+ForgetMove: ; 65d3
 	push hl
 	ld hl, UnknownText_0x667f
 	call PrintText
@@ -1707,7 +1708,7 @@
 	ld bc, NUM_MOVES
 	call CopyBytes
 	pop hl
-.asm_65ee
+.loop
 	push hl
 	ld hl, UnknownText_0x6670
 	call PrintText
@@ -1744,7 +1745,7 @@
 	pop af
 	pop hl
 	bit 1, a
-	jr nz, .asm_6669
+	jr nz, .cancel
 	push hl
 	ld a, [wcfa9]
 	dec a
@@ -1758,19 +1759,19 @@
 	pop bc
 	pop de
 	ld a, d
-	jr c, .asm_6660
+	jr c, .hmmove
 	pop hl
 	add hl, bc
 	and a
 	ret
 
-.asm_6660
+.hmmove
 	ld hl, UnknownText_0x669a
 	call PrintText
 	pop hl
-	jr .asm_65ee
+	jr .loop
 
-.asm_6669
+.cancel
 	scf
 	ret
 ; 666b
@@ -1846,7 +1847,7 @@
 	inc hl
 ; reached end of commands table?
 	ld a, [hl]
-	cp a, $ff
+	cp a, -1
 	jr z, .done
 
 ; is the current char between this value (inclusive)...
@@ -2691,7 +2692,7 @@
 	jp CopyPokemonName_Buffer1_Buffer3
 ; 71ac
 
-Function71ac: ; 71ac
+CheckFirstMonIsEgg: ; 71ac
 	ld a, [PartySpecies]
 	ld [wd265], a
 	cp EGG
@@ -2977,7 +2978,7 @@
 ; Engine flag for this event.
 	ld hl, DailyFlags
 	set 5, [hl]
-
+; setflag ENGINE_SHUCKLE_GIVEN
 	ld a, 1
 	ld [ScriptVar], a
 	ret
@@ -3220,7 +3221,7 @@
 ; A dummy map object used to initialize the player object.
 ; Shorter than the actual amount copied by two bytes.
 ; Said bytes seem to be unused.
-	person_event SPRITE_CHRIS, 0, 0, OW_LEFT | $3, $ff, -1, -1, $0, 0, $0000, -1
+	person_event SPRITE_CHRIS, 0, 0, $0b, 15, 15, -1, -1, 0, 0, 0, $0000, -1
 	; db $01, $00, $00, $0b, $ff, $ff, $ff, $00, $00, $00, $00, $ff, $ff
 ; 807e
 
@@ -3364,7 +3365,7 @@
 	ld [wc2f3], a
 
 .no_color
-	ld hl, MAPOBJECT_FACING
+	ld hl, MAPOBJECT_MOVEMENT
 	add hl, bc
 	ld a, [hl]
 	ld [wc2f4], a
@@ -3380,7 +3381,7 @@
 	add hl, bc
 	ld a, [hl]
 	ld [wc2f7], a
-	ld hl, MAPOBJECT_MOVEMENT
+	ld hl, MAPOBJECT_RADIUS
 	add hl, bc
 	ld a, [hl]
 	ld [wc2f8], a
@@ -3751,7 +3752,7 @@
 ; 839a
 
 .data_839a
-	db 8, 9, 10, 11
+	db 8 + DOWN, 8 + UP, 8 + LEFT, 8 + RIGHT
 ; 839e
 
 
@@ -4026,7 +4027,7 @@
 	and %011111
 	call Function84ef
 	ld a, h
-	xor $ff
+	xor -1
 	inc a
 	ret
 ; 84ef
@@ -4091,7 +4092,7 @@
 	db DAY,  2
 	db NITE, 4
 	db NITE, 4
-	db $ff
+	db -1
 ; c01b
 
 
@@ -4584,7 +4585,7 @@
 BadgeRequiredText: ; c73d
 	; Sorry! A new BADGE
 	; is required.
-	TX_FAR _BadgeRequiredText
+	text_jump _BadgeRequiredText
 	db "@"
 ; c742
 
@@ -4756,7 +4757,7 @@
 	xor a
 	ld [hBGMapMode], a
 	call Function2173
-	call DrawOnMap
+	call UpdateSprites
 	call DelayFrame
 	ld a, [wd1ef]
 	ld e, a
@@ -4763,7 +4764,7 @@
 	callba Function8c940
 	call BufferScreen
 	call Function2914
-	call DrawOnMap
+	call UpdateSprites
 	call DelayFrame
 	call Functione51
 	ret
@@ -5019,17 +5020,17 @@
 ; c9a9
 
 UsedSurfText: ; c9a9
-	TX_FAR _UsedSurfText
+	text_jump _UsedSurfText
 	db "@"
 ; c9ae
 
 CantSurfText: ; c9ae
-	TX_FAR _CantSurfText
+	text_jump _CantSurfText
 	db "@"
 ; c9b3
 
 AlreadySurfingText: ; c9b3
-	TX_FAR _AlreadySurfingText
+	text_jump _AlreadySurfingText
 	db "@"
 ; c9b8
 
@@ -5146,7 +5147,7 @@
 ; ca36
 
 AskSurfText: ; ca36
-	TX_FAR _AskSurfText ; The water is calm.
+	text_jump _AskSurfText ; The water is calm.
 	db "@"              ; Want to SURF?
 ; ca3b
 
@@ -5233,7 +5234,7 @@
 	special WarpToSpawnPoint
 	callasm DelayLoadingNewSprites
 	writecode VAR_MOVEMENT, $0
-	newloadmap $fc
+	newloadmap -4
 	callasm Function8cb33
 	special WaitSFX
 	callasm Functioncacb
@@ -5501,7 +5502,7 @@
 	farscall UnknownScript_0x122c1
 	special WarpToSpawnPoint
 	writecode VAR_MOVEMENT, $0
-	newloadmap $f5
+	newloadmap -11
 	playsound SFX_WARP_FROM
 	applymovement PLAYER, MovementData_0xcc5d
 	end
@@ -5599,7 +5600,7 @@
 	farscall UnknownScript_0x122c1
 	special WarpToSpawnPoint
 	writecode VAR_MOVEMENT, $0
-	newloadmap $f4
+	newloadmap -12
 	playsound SFX_WARP_FROM
 	applymovement PLAYER, MovementData_0xcce3
 	end
@@ -5689,12 +5690,12 @@
 
 UnknownText_0xcd41: ; 0xcd41
 	text_jump UnknownText_0x1c0774
-	db $50
+	db "@"
 ; 0xcd46
 
 UnknownText_0xcd46: ; 0xcd46
 	text_jump UnknownText_0x1c0788
-	db $50
+	db "@"
 ; 0xcd4b
 
 AskStrengthScript:
@@ -6059,7 +6060,7 @@
 	ld a, [hl]
 	ld [hLastTalked], a
 	call GetMapObject
-	ld hl, MAPOBJECT_FACING
+	ld hl, MAPOBJECT_MOVEMENT
 	add hl, bc
 	ld a, [hl]
 	ld d, a
@@ -6086,7 +6087,7 @@
 	disappear -2
 
 	callasm RockMonEncounter
-	copybytetovar wd22e
+	copybytetovar TempWildMonSpecies
 	iffalse .done
 	battlecheck
 	startbattle
@@ -6096,7 +6097,7 @@
 ; 0xcf55
 
 MovementData_0xcf55: ; 0xcf55
-	db $57, $0a
+	rock_smash 10
 	step_end
 
 UnknownText_0xcf58: ; 0xcf58
@@ -6198,7 +6199,7 @@
 	ld a, d
 	and a
 	jr z, .nonibble
-	ld [wd22e], a
+	ld [TempWildMonSpecies], a
 	ld a, e
 	ld [CurPartyLevel], a
 	ld a, BATTLETYPE_FISH
@@ -6334,7 +6335,7 @@
 ; 0xd093
 
 MovementData_0xd093: ; d093
-	db $52
+	fish_got_bite_2
 	step_end
 ; d095
 
@@ -6343,7 +6344,7 @@
 	ld [hBGMapMode], a
 	ld a, $1
 	ld [PlayerAction], a
-	call DrawOnMap
+	call UpdateSprites
 	call Special_ReplaceKrisSprite
 	ret
 ; d0a4
@@ -9507,7 +9508,7 @@
 	call GetPokemonName
 	ld hl, StringBuffer1
 	ld de, wd050
-	ld bc, $000b
+	ld bc, PKMN_NAME_LENGTH
 	call CopyBytes
 	pop af
 	and a
@@ -9519,7 +9520,7 @@
 	push hl
 	ld a, [ScriptBank]
 	call GetFarHalfword
-	ld bc, $000b
+	ld bc, PKMN_NAME_LENGTH
 	ld a, [ScriptBank]
 	call FarCopyBytes
 	pop hl
@@ -9547,7 +9548,7 @@
 	ld [de], a
 	inc hl
 	inc de
-	cp $50
+	cp "@"
 	jr nz, .asm_e32f
 	ld a, [ScriptBank]
 	call GetFarByte
@@ -10381,15 +10382,15 @@
 	ld [hli], a
 endr
 	ld [hl], a
-	ld hl, wdc4c
+	ld hl, wDailyRematchFlags
 rept 4
 	ld [hli], a
 endr
-	ld hl, wdc50
+	ld hl, wDailyPhoneItemFlags
 rept 4
 	ld [hli], a
 endr
-	ld hl, wdc54
+	ld hl, wDailyPhoneTimeOfDayFlags
 rept 4
 	ld [hli], a
 endr
@@ -12880,7 +12881,7 @@
 	jr .Select
 
 .Reopen
-	call DrawOnMap
+	call UpdateSprites
 	call UpdateTimePals
 	call .SetUpMenuItems
 	ld a, [wd0d2]
@@ -12996,7 +12997,7 @@
 	call .DrawMenuAccount_
 	call MenuFunc_1e7f
 	call .DrawBugContestStatus
-	call DrawOnMap
+	call UpdateSprites
 	call Functiond90
 	call Function2b5c
 	ret
@@ -15128,7 +15129,7 @@
 	ld hl, Elevator_MenuDataHeader
 	call CopyMenuDataHeader
 	call Function352f
-	call DrawOnMap
+	call UpdateSprites
 	xor a
 	ld [wd0e4], a
 	call Function350c
@@ -15548,7 +15549,7 @@
 	push hl
 	push bc
 ; Get the Trainer Class name and copy it into wd016.
-	callab Function3952d
+	callab GetTrainerClassName
 	ld hl, StringBuffer1
 	ld de, wd016
 	ld bc, TRAINER_CLASS_NAME_LENGTH
@@ -18183,7 +18184,7 @@
 	call Function1d6e
 	callba Function5e9a
 	call SpeechTextBox
-	call DrawOnMap
+	call UpdateSprites
 	callba Function4cf45
 	ld hl, UnknownText_0x15283
 	call SaveTheGame_yesorno
@@ -19551,7 +19552,7 @@
 	jr nz, .asm_156f9
 	call Function2173
 	call Function321c
-	call DrawOnMap
+	call UpdateSprites
 	call Function156b8
 	ld c, $0
 	ret
@@ -19742,15 +19743,15 @@
 ; 0x15850
 
 .HowManyText ; 0x15850
-	TX_FAR _KrissPCHowManyWithdrawText
+	text_jump _KrissPCHowManyWithdrawText
 	db "@"
 
 .WithdrewText ; 0x15855
-	TX_FAR _KrissPCWithdrewItemsText
+	text_jump _KrissPCWithdrewItemsText
 	db "@"
 
 .NoRoomText ; 0x1585a
-	TX_FAR _KrissPCNoRoomWithdrawText
+	text_jump _KrissPCNoRoomWithdrawText
 	db "@"
 
 
@@ -19915,15 +19916,15 @@
 
 
 .HowManyText ; 0x1596e
-	TX_FAR _KrissPCHowManyDepositText
+	text_jump _KrissPCHowManyDepositText
 	db "@"
 
 .DepositText ; 0x15973
-	TX_FAR _KrissPCDepositItemsText
+	text_jump _KrissPCDepositItemsText
 	db "@"
 
 .NoRoomText ; 0x15978
-	TX_FAR _KrissPCNoRoomDepositText
+	text_jump _KrissPCNoRoomDepositText
 	db "@"
 
 
@@ -20521,7 +20522,7 @@
 
 Function15cef: ; 15cef
 	callba Function24ae8
-	call DrawOnMap
+	call UpdateSprites
 	ld hl, MenuDataHeader_0x15e18
 	call CopyMenuDataHeader
 	ld a, [WalkingX]
@@ -21588,13 +21589,13 @@
 	call Function164ea
 	bccoord 1, 14
 	ld hl, UnknownText_0x164f4
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	call YesNoBox
 	ret c
 	call Function164ea
 	bccoord 1, 14
 	ld hl, LostInstructionBookletText
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	ret
 
 .loop
@@ -21604,7 +21605,7 @@
 	bit 7, a
 	jr z, .asm_16497
 	ld hl, UnknownText_0x16508
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	call YesNoBox
 	ret c
 	ld a, [wDST]
@@ -21614,12 +21615,12 @@
 	call Function164ea
 	bccoord 1, 14
 	ld hl, UnknownText_0x1650d
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	ret
 
 .asm_16497
 	ld hl, UnknownText_0x164fe
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	call YesNoBox
 	ret c
 	ld a, [wDST]
@@ -21629,7 +21630,7 @@
 	call Function164ea
 	bccoord 1, 14
 	ld hl, UnknownText_0x16503
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	ret
 ; 164b9
 
@@ -21743,7 +21744,7 @@
 	ld de, StringBuffer2
 	ld bc, $a306
 	call PrintNum
-	call DrawOnMap
+	call UpdateSprites
 	call Function3238
 	ret
 ; 1656b
@@ -24340,7 +24341,7 @@
 	ld a, [wcf94]
 	rst FarCall
 	call Function24085
-	call DrawOnMap
+	call UpdateSprites
 	call Function321c
 	call Function2408f
 	ret
@@ -24352,7 +24353,7 @@
 	rst FarCall
 	call Function24085
 	callba MobileTextBorder
-	call DrawOnMap
+	call UpdateSprites
 	call Function321c
 	call Function2408f
 	ret
@@ -24364,7 +24365,7 @@
 	rst FarCall
 	call Function24085
 	callba MobileTextBorder
-	call DrawOnMap
+	call UpdateSprites
 	call Function321c
 	call Function2411a
 	ld hl, wcfa5
@@ -25184,7 +25185,7 @@
 	ld hl, MenuDataHeader_0x24547
 	call CopyMenuDataHeader
 	call Function1cbb
-	call DrawOnMap
+	call UpdateSprites
 	call Function321c
 	ld b, $12
 	call GetSGBLayout
@@ -25220,7 +25221,7 @@
 	ld [hBGMapMode], a
 	call Function2173
 	call Function321c
-	call DrawOnMap
+	call UpdateSprites
 	call Functione51
 	ret
 ; 24547
@@ -26700,7 +26701,7 @@
 	xor a
 	ld [hBGMapMode], a
 	call Function1cbb
-	call DrawOnMap
+	call UpdateSprites
 	call Function1c89
 	call WaitBGMap
 	call Function1c66
@@ -27902,95 +27903,95 @@
 	dw OakRating19
 
 OakPCText1: ; 0x266de
-	TX_FAR _OakPCText1
+	text_jump _OakPCText1
 	db "@"
 
 OakPCText2: ; 0x266e3
-	TX_FAR _OakPCText2
+	text_jump _OakPCText2
 	db "@"
 
 OakPCText3: ; 0x266e8
-	TX_FAR _OakPCText3
+	text_jump _OakPCText3
 	db "@"
 
 OakRating01:
-	TX_FAR _OakRating01
+	text_jump _OakRating01
 	db "@"
 
 OakRating02:
-	TX_FAR _OakRating02
+	text_jump _OakRating02
 	db "@"
 
 OakRating03:
-	TX_FAR _OakRating03
+	text_jump _OakRating03
 	db "@"
 
 OakRating04:
-	TX_FAR _OakRating04
+	text_jump _OakRating04
 	db "@"
 
 OakRating05:
-	TX_FAR _OakRating05
+	text_jump _OakRating05
 	db "@"
 
 OakRating06:
-	TX_FAR _OakRating06
+	text_jump _OakRating06
 	db "@"
 
 OakRating07:
-	TX_FAR _OakRating07
+	text_jump _OakRating07
 	db "@"
 
 OakRating08:
-	TX_FAR _OakRating08
+	text_jump _OakRating08
 	db "@"
 
 OakRating09:
-	TX_FAR _OakRating09
+	text_jump _OakRating09
 	db "@"
 
 OakRating10:
-	TX_FAR _OakRating10
+	text_jump _OakRating10
 	db "@"
 
 OakRating11:
-	TX_FAR _OakRating11
+	text_jump _OakRating11
 	db "@"
 
 OakRating12:
-	TX_FAR _OakRating12
+	text_jump _OakRating12
 	db "@"
 
 OakRating13:
-	TX_FAR _OakRating13
+	text_jump _OakRating13
 	db "@"
 
 OakRating14:
-	TX_FAR _OakRating14
+	text_jump _OakRating14
 	db "@"
 
 OakRating15:
-	TX_FAR _OakRating15
+	text_jump _OakRating15
 	db "@"
 
 OakRating16:
-	TX_FAR _OakRating16
+	text_jump _OakRating16
 	db "@"
 
 OakRating17:
-	TX_FAR _OakRating17
+	text_jump _OakRating17
 	db "@"
 
 OakRating18:
-	TX_FAR _OakRating18
+	text_jump _OakRating18
 	db "@"
 
 OakRating19:
-	TX_FAR _OakRating19
+	text_jump _OakRating19
 	db "@"
 
 OakPCText4: ; 0x2674c
-	TX_FAR _OakPCText4
+	text_jump _OakPCText4
 	db "@"
 
 
@@ -29544,13 +29545,13 @@
 
 SECTION "bankA", ROMX, BANK[$A]
 
-Function28000: ; 28000
+LinkCommunications: ; 28000
 	call WhiteBGMap
 	ld c, $50
 	call DelayFrames
 	call ClearScreen
 	call ClearSprites
-	call DrawOnMap
+	call UpdateSprites
 	xor a
 	ld [hSCX], a
 	ld [hSCY], a
@@ -29557,7 +29558,7 @@
 	ld c, $50
 	call DelayFrames
 	call ClearScreen
-	call DrawOnMap
+	call UpdateSprites
 	call Functione51
 	call Functione58
 	callba Function16d69a
@@ -30038,7 +30039,7 @@
 	pop de
 	pop hl
 	bccoord 1, 14
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	call FadeToWhite
 	call ClearScreen
 	ld b, $8
@@ -30351,11 +30352,11 @@
 	ld de, OverworldMap
 	ld a, $fd
 	ld b, $6
-.asm_2859c
+.loop1
 	ld [de], a
 	inc de
 	dec b
-	jr nz, .asm_2859c
+	jr nz, .loop1
 	ld hl, PlayerName
 	ld bc, $000b
 	call CopyBytes
@@ -30384,7 +30385,7 @@
 	call GetSRAMBank
 	ld hl, $a600
 	ld b, $6
-.asm_285ef
+.loop2
 	push bc
 	ld bc, $0021
 	call CopyBytes
@@ -30392,10 +30393,10 @@
 	add hl, bc
 	pop bc
 	dec b
-	jr nz, .asm_285ef
+	jr nz, .loop2
 	ld hl, $a600
 	ld b, $6
-.asm_28603
+.loop3
 	push bc
 	ld bc, $0021
 	add hl, bc
@@ -30403,11 +30404,11 @@
 	call CopyBytes
 	pop bc
 	dec b
-	jr nz, .asm_28603
+	jr nz, .loop3
 	ld b, $6
 	ld de, $a600
 	ld hl, wc9f9
-.asm_2861a
+.loop4
 	push bc
 	push hl
 	push de
@@ -30416,18 +30417,18 @@
 	pop de
 	ld a, c
 	or a
-	jr z, .asm_2863f
+	jr z, .next
 	sub $3
-	jr nc, .asm_28635
+	jr nc, .skip
 	callba Function1df1e6
-	jr .asm_2863f
+	jr .next
 
-.asm_28635
+.skip
 	cp $2
-	jr nc, .asm_2863f
+	jr nc, .next
 	callba Function1df220
 
-.asm_2863f
+.next
 	pop de
 	ld hl, $002f
 	add hl, de
@@ -30438,40 +30439,40 @@
 	add hl, bc
 	pop bc
 	dec b
-	jr nz, .asm_2861a
+	jr nz, .loop4
 	call CloseSRAM
 	ld hl, wc9f9
 	ld bc, $00c6
-.asm_28658
+.loop5
 	ld a, [hl]
 	cp $fe
-	jr nz, .asm_2865f
+	jr nz, .skip2
 	ld [hl], $21
 
-.asm_2865f
+.skip2
 	inc hl
 	dec bc
 	ld a, b
 	or c
-	jr nz, .asm_28658
+	jr nz, .loop5
 	ld hl, wcabf
 	ld de, wcb13
 	ld b, $54
 	ld c, $0
-.asm_2866f
+.loop6
 	inc c
 	ld a, [hl]
 	cp $fe
-	jr nz, .asm_2867a
+	jr nz, .skip3
 	ld [hl], $ff
 	ld a, c
 	ld [de], a
 	inc de
 
-.asm_2867a
+.skip3
 	inc hl
 	dec b
-	jr nz, .asm_2866f
+	jr nz, .loop6
 	ld a, $ff
 	ld [de], a
 	ret
@@ -30479,11 +30480,11 @@
 
 Function28682: ; 28682
 	ld c, $5
-.asm_28684
+.loop
 	ld [de], a
 	inc de
 	dec c
-	jr nz, .asm_28684
+	jr nz, .loop
 	ret
 ; 2868a
 
@@ -30498,12 +30499,12 @@
 	ld [hl], b
 	ld hl, OTPartyMon1Species
 	ld c, $6
-.asm_2869b
+.loop
 	push bc
 	call Function286ba
 	pop bc
 	dec c
-	jr nz, .asm_2869b
+	jr nz, .loop
 	pop hl
 	ld bc, $0108
 	add hl, bc
@@ -30645,19 +30646,19 @@
 	ret z
 	push hl
 	ld hl, .TimeCapsuleAlt
-.asm_28778
+.loop
 	ld a, [hli]
 	and a
-	jr z, .asm_28783
+	jr z, .end
 	cp b
-	jr z, .asm_28782
+	jr z, .found
 	inc hl
-	jr .asm_28778
+	jr .loop
 
-.asm_28782
+.found
 	ld b, [hl]
 
-.asm_28783
+.end
 	pop hl
 	ret
 
@@ -31022,7 +31023,7 @@
 	callba Function4d354
 	ld hl, UnknownText_0x28aaf
 	bccoord 1, 14
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	jr .asm_28a89
 
 .asm_28a58
@@ -31044,7 +31045,7 @@
 	callba Function4d354
 	ld hl, UnknownText_0x28ac4
 	bccoord 1, 14
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 
 .asm_28a89
 	hlcoord 0, 12
@@ -31221,7 +31222,7 @@
 	call GetPokemonName
 	ld hl, UnknownText_0x28eb8
 	bccoord 1, 14
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	call Function1d6e
 	hlcoord 10, 7
 	ld b, $3
@@ -33560,7 +33561,7 @@
 	ld a, $1
 	ld [InLinkBattle], a
 	call Function2ed3
-	callab Function28000
+	callab LinkCommunications
 	call Function2ee4
 	xor a
 	ld [hVBlank], a
@@ -33571,7 +33572,7 @@
 	ld a, $2
 	ld [InLinkBattle], a
 	call Function2ed3
-	callab Function28000
+	callab LinkCommunications
 	call Function2ee4
 	xor a
 	ld [hVBlank], a
@@ -33582,7 +33583,7 @@
 	ld a, $3
 	ld [InLinkBattle], a
 	call Function2ed3
-	callab Function28000
+	callab LinkCommunications
 	call Function2ee4
 	xor a
 	ld [hVBlank], a
@@ -33675,7 +33676,7 @@
 ; 29ff8
 
 LoadWildMonData: ; 29ff8
-	call Function2a205
+	call _GrassWildmonLookup
 	jr c, .asm_2a006
 	ld hl, wd25a
 	xor a
@@ -33692,7 +33693,7 @@
 	ld bc, $3
 	call CopyBytes
 .asm_2a011
-	call Function2a21d
+	call _WaterWildmonLookup
 	ld a, $0
 	jr nc, .asm_2a01b
 rept 2
@@ -33712,9 +33713,9 @@
 	and a
 	jr nz, .asm_2a043
 	decoord 0, 0
-	ld hl, WildMons1
+	ld hl, JohtoGrassWildMons
 	call Function2a052
-	ld hl, WildMons2
+	ld hl, JohtoWaterWildMons
 	call Function2a06e
 	call Function2a0b7
 	call Function2a0cf
@@ -33722,9 +33723,9 @@
 
 .asm_2a043
 	decoord 0, 0
-	ld hl, WildMons3
+	ld hl, KantoGrassWildMons
 	call Function2a052
-	ld hl, WildMons4
+	ld hl, KantoWaterWildMons
 	jp Function2a06e
 ; 2a052
 
@@ -33858,20 +33859,20 @@
 	ret
 ; 2a0e7
 
-Function2a0e7:: ; 2a0e7
+TryWildEncounter:: ; 2a0e7
 ; Try to trigger a wild encounter.
-	call Function2a103
-	jr nc, .asm_2a0f8
-	call Function2a14f
-	jr nz, .asm_2a0f8
-	call Function2a1df
-	jr nc, .asm_2a0f8
+	call .EncounterRate
+	jr nc, .no_battle
+	call ChooseWildEncounter
+	jr nz, .no_battle
+	call CheckRepelEffect
+	jr nc, .no_battle
 	xor a
 	ret
 
-.asm_2a0f8
+.no_battle
 	xor a ; BATTLETYPE_NORMAL
-	ld [wd22e], a
+	ld [TempWildMonSpecies], a
 	ld [BattleType], a
 	ld a, 1
 	and a
@@ -33878,22 +33879,22 @@
 	ret
 ; 2a103
 
-Function2a103: ; 2a103
-	call Function2a111
-	call Function2a124
-	call Function2a138
+.EncounterRate: ; 2a103
+	call GetMapEncounterRate
+	call ApplyMusicEffectOnEncounterRate
+	call ApplyCleanseTagEffectOnEncounterRate
 	call Random
 	cp b
 	ret
 ; 2a111
 
-Function2a111: ; 2a111
+GetMapEncounterRate: ; 2a111
 	ld hl, wd25a
-	call Function1852
+	call CheckOnWater
 	ld a, 3
-	jr z, .asm_2a11e
+	jr z, .ok
 	ld a, [TimeOfDay]
-.asm_2a11e
+.ok
 	ld c, a
 	ld b, 0
 	add hl, bc
@@ -33901,25 +33902,25 @@
 	ret
 ; 2a124
 
-Function2a124:: ; 2a124
+ApplyMusicEffectOnEncounterRate:: ; 2a124
 ; Pokemon March and Ruins of Alph signal double encounter rate.
 ; Pokemon Lullaby halves encounter rate.
 	ld a, [wMapMusic]
 	cp MUSIC_POKEMON_MARCH
-	jr z, .asm_2a135
+	jr z, .double
 	cp MUSIC_RUINS_OF_ALPH_RADIO
-	jr z, .asm_2a135
+	jr z, .double
 	cp MUSIC_POKEMON_LULLABY
 	ret nz
 	srl b
 	ret
 
-.asm_2a135
+.double
 	sla b
 	ret
 ; 2a138
 
-Function2a138:: ; 2a138
+ApplyCleanseTagEffectOnEncounterRate:: ; 2a138
 ; Cleanse Tag halves encounter rate.
 	ld hl, PartyMon1Item
 	ld de, PartyMon2 - PartyMon1
@@ -33928,29 +33929,29 @@
 .loop
 	ld a, [hl]
 	cp CLEANSE_TAG
-	jr z, .asm_2a14c
+	jr z, .cleansetag
 	add hl, de
 	dec c
 	jr nz, .loop
 	ret
 
-.asm_2a14c
+.cleansetag
 	srl b
 	ret
 ; 2a14f
 
-Function2a14f: ; 2a14f
-	call Function2a200
-	jp nc, .asm_2a1c1
-	call Function2a2ce
-	jp c, .asm_2a1c9
+ChooseWildEncounter: ; 2a14f
+	call LoadWildMonDataPointer
+	jp nc, .nowildbattle
+	call CheckEncounterRoamMon
+	jp c, .startwildbattle
 
 rept 3
 	inc hl
 endr
-	call Function1852
-	ld de, Unknown_2a1d9
-	jr z, .asm_2a174
+	call CheckOnWater
+	ld de, .WaterMonTable
+	jr z, .watermon
 rept 2
 	inc hl
 endr
@@ -33957,111 +33958,117 @@
 	ld a, [TimeOfDay]
 	ld bc, $e
 	call AddNTimes
-	ld de, Unknown_2a1cb
+	ld de, .GrassMonTable
 
-.asm_2a174
+.watermon
+; hl contains the pointer to the wild mon data, let's save that to the stack
 	push hl
-.asm_2a175
+.randomloop
 	call Random
 	cp 100
-	jr nc, .asm_2a175
-	inc a
+	jr nc, .randomloop
+	inc a ; 1 <= a <= 100
 	ld b, a
 	ld h, d
 	ld l, e
-.asm_2a180
+; This next loop chooses which mon to load up.
+.prob_bracket_loop
 	ld a, [hli]
 	cp b
-	jr nc, .asm_2a187
+	jr nc, .got_it
 	inc hl
-	jr .asm_2a180
+	jr .prob_bracket_loop
 
-.asm_2a187
+.got_it
 	ld c, [hl]
 	ld b, 0
 	pop hl
-	add hl, bc
+	add hl, bc ; this selects our mon
 	ld a, [hli]
 	ld b, a
-	call Function1852
-	jr nz, .asm_2a1aa
-
+; If the Pokemon is encountered by surfing, we need to give the levels some variety.
+	call CheckOnWater
+	jr nz, .ok
+; Check if we buff the wild mon, and by how much.
 	call Random
-	cp 89
-	jr c, .asm_2a1aa
+	cp 35 percent
+	jr c, .ok
 	inc b
-	cp 165
-	jr c, .asm_2a1aa
+	cp 65 percent
+	jr c, .ok
 	inc b
-	cp 216
-	jr c, .asm_2a1aa
+	cp 85 percent
+	jr c, .ok
 	inc b
-	cp 242
-	jr c, .asm_2a1aa
+	cp 95 percent
+	jr c, .ok
 	inc b
-
-.asm_2a1aa
+; Store the level
+.ok
 	ld a, b
 	ld [CurPartyLevel], a
 	ld b, [hl]
-	call Function2a4a0
-	jr c, .asm_2a1c1
+	; ld a, b
+	call ValidateTempWildMonSpecies
+	jr c, .nowildbattle
 
-	ld a, b
+	ld a, b ; This is in the wrong place.
 	cp UNOWN
-	jr nz, .asm_2a1bf
+	jr nz, .done
 
 	ld a, [UnlockedUnowns]
 	and a
-	jr z, .asm_2a1c1
+	jr z, .nowildbattle
 
-.asm_2a1bf
-	jr .asm_2a1c5
+.done
+	jr .loadwildmon
 
-.asm_2a1c1
+.nowildbattle
 	ld a, 1
 	and a
 	ret
 
-.asm_2a1c5
+.loadwildmon
 	ld a, b
-	ld [wd22e], a
+	ld [TempWildMonSpecies], a
 
-.asm_2a1c9
+.startwildbattle
 	xor a
 	ret
 ; 2a1cb
 
-Unknown_2a1cb: ; 2a1cb
-	db 30,  $0
-	db 60,  $2
-	db 80,  $4
-	db 90,  $6
-	db 95,  $8
-	db 99,  $a
-	db 100, $c
+.GrassMonTable: ; 2a1cb
+	db 30,  $0 ; 30% chance
+	db 60,  $2 ; 30% chance
+	db 80,  $4 ; 20% chance
+	db 90,  $6 ; 10% chance
+	db 95,  $8 ;  5% chance
+	db 99,  $a ;  4% chance
+	db 100, $c ;  1% chance
 ; 2a1d9
 
-Unknown_2a1d9: ; 2a1d9
-	db 60,  $0
-	db 90,  $2
-	db 100, $4
+.WaterMonTable: ; 2a1d9
+	db 60,  $0 ; 60% chance
+	db 90,  $2 ; 30% chance
+	db 100, $4 ; 10% chance
 ; 2a1df
 
-Function2a1df:: ; 2a1df
+CheckRepelEffect:: ; 2a1df
+; If there is no active Repel, there's no need to be here.
 	ld a, [wdca1]
 	and a
-	jr z, .asm_2a1fe
+	jr z, .encounter
+; Get the first Pokemon in your party that isn't fainted.
 	ld hl, PartyMon1HP
 	ld bc, PartyMon2 - PartyMon1 - 1
-.asm_2a1eb
+.loop
 	ld a, [hli]
 	or [hl]
-	jr nz, .asm_2a1f2
+	jr nz, .ok
 	add hl, bc
-	jr .asm_2a1eb
+	jr .loop
 
-.asm_2a1f2
+.ok
 ; to PartyMonLevel
 rept 4
 	dec hl
@@ -34069,42 +34076,42 @@
 
 	ld a, [CurPartyLevel]
 	cp [hl]
-	jr nc, .asm_2a1fe
+	jr nc, .encounter
 	and a
 	ret
 
-.asm_2a1fe
+.encounter
 	scf
 	ret
 ; 2a200
 
-Function2a200: ; 2a200
-	call Function1852
-	jr z, Function2a21d
+LoadWildMonDataPointer: ; 2a200
+	call CheckOnWater
+	jr z, _WaterWildmonLookup
 
-Function2a205: ; 2a205
-	ld hl, WildMons5
-	ld bc, $002f
-	call asm_2a23d
+_GrassWildmonLookup: ; 2a205
+	ld hl, SwarmGrassWildMons
+	ld bc, GRASS_WILDDATA_LENGTH
+	call _SwarmWildmonCheck
 	ret c
-	ld hl, WildMons1
-	ld de, WildMons3
-	call asm_2a235
-	ld bc, $002f
-	jr asm_2a27a
+	ld hl, JohtoGrassWildMons
+	ld de, KantoGrassWildMons
+	call _JohtoWildmonCheck
+	ld bc, GRASS_WILDDATA_LENGTH
+	jr _NormalWildmonOK
 
-Function2a21d: ; 2a21d
-	ld hl, WildMons6
-	ld bc, $0009
-	call asm_2a23d
+_WaterWildmonLookup: ; 2a21d
+	ld hl, SwarmWaterWildMons
+	ld bc, WATER_WILDDATA_LENGTH
+	call _SwarmWildmonCheck
 	ret c
-	ld hl, WildMons2
-	ld de, WildMons4
-	call asm_2a235
-	ld bc, $0009
-	jr asm_2a27a
+	ld hl, JohtoWaterWildMons
+	ld de, KantoWaterWildMons
+	call _JohtoWildmonCheck
+	ld bc, WATER_WILDDATA_LENGTH
+	jr _NormalWildmonOK
 
-asm_2a235
+_JohtoWildmonCheck
 	call IsInJohto
 	and a
 	ret z
@@ -34112,51 +34119,51 @@
 	ld l, e
 	ret
 
-asm_2a23d
-	call Function2a27f
+_SwarmWildmonCheck
+	call CopyCurrMapDE
 	push hl
 	ld hl, SwarmFlags
 	bit 2, [hl]
 	pop hl
-	jr z, .asm_2a25c
+	jr z, .CheckYanma
 	ld a, [wdfcc]
 	cp d
-	jr nz, .asm_2a25c
+	jr nz, .CheckYanma
 	ld a, [wdfcd]
 	cp e
-	jr nz, .asm_2a25c
-	call Function2a288
-	jr nc, asm_2a278
+	jr nz, .CheckYanma
+	call LookUpWildmonsForMapDE
+	jr nc, _NoSwarmWildmon
 	scf
 	ret
 
-.asm_2a25c
+.CheckYanma
 	push hl
 	ld hl, SwarmFlags
 	bit 3, [hl]
 	pop hl
-	jr z, asm_2a278
+	jr z, _NoSwarmWildmon
 	ld a, [wdc5a]
 	cp d
-	jr nz, asm_2a278
+	jr nz, _NoSwarmWildmon
 	ld a, [wdc5b]
 	cp e
-	jr nz, asm_2a278
-	call Function2a288
-	jr nc, asm_2a278
+	jr nz, _NoSwarmWildmon
+	call LookUpWildmonsForMapDE
+	jr nc, _NoSwarmWildmon
 	scf
 	ret
 
-asm_2a278
+_NoSwarmWildmon
 	and a
 	ret
 
-asm_2a27a
-	call Function2a27f
-	jr Function2a288
+_NormalWildmonOK
+	call CopyCurrMapDE
+	jr LookUpWildmonsForMapDE
 ; 2a27f
 
-Function2a27f: ; 2a27f
+CopyCurrMapDE: ; 2a27f
 	ld a, [MapGroup]
 	ld d, a
 	ld a, [MapNumber]
@@ -34164,30 +34171,30 @@
 	ret
 ; 2a288
 
-Function2a288: ; 2a288
+LookUpWildmonsForMapDE: ; 2a288
 	push hl
 	ld a, [hl]
 	inc a
-	jr z, .asm_2a29a
+	jr z, .nope
 	ld a, d
 	cp [hl]
-	jr nz, .asm_2a296
+	jr nz, .next
 	inc hl
 	ld a, e
 	cp [hl]
-	jr z, .asm_2a29d
+	jr z, .yup
 
-.asm_2a296
+.next
 	pop hl
 	add hl, bc
-	jr Function2a288
+	jr LookUpWildmonsForMapDE
 
-.asm_2a29a
+.nope
 	pop hl
 	and a
 	ret
 
-.asm_2a29d
+.yup
 	pop hl
 	scf
 	ret
@@ -34239,34 +34246,39 @@
 ; 2a2ce
 
 
-Function2a2ce: ; 2a2ce
+CheckEncounterRoamMon: ; 2a2ce
 	push hl
-	call Function1852
-	jr z, .asm_2a30a
-	call Function2a27f
+; Don't trigger an encounter if we're on water.
+	call CheckOnWater
+	jr z, .DontEncounterRoamMon
+; Load the current map group and number to de
+	call CopyCurrMapDE
+; Randomly select a beast.
 	call Random
-	cp 100
-	jr nc, .asm_2a30a
-	and 3
-	jr z, .asm_2a30a
-	dec a
+	cp 100 ; 25/64 chance
+	jr nc, .DontEncounterRoamMon
+	and %00000011 ; Of that, a 3/4 chance.  Running total: 75/256, or around 29.3%.
+	jr z, .DontEncounterRoamMon
+	dec a ; 1/3 chance that it's Entei, 1/3 chance that it's Raikou
+; Compare its current location with yours
 	ld hl, wRoamMon1MapGroup
 	ld c, a
 	ld b, 0
-	ld a, 7
+	ld a, 7 ; length of the RoamMon struct
 	call AddNTimes
 	ld a, d
 	cp [hl]
-	jr nz, .asm_2a30a
+	jr nz, .DontEncounterRoamMon
 	inc hl
 	ld a, e
 	cp [hl]
-	jr nz, .asm_2a30a
+	jr nz, .DontEncounterRoamMon
+; We've decided to take on a beast, so stage its information for battle.
 rept 3
 	dec hl
 endr
 	ld a, [hli]
-	ld [wd22e], a
+	ld [TempWildMonSpecies], a
 	ld a, [hl]
 	ld [CurPartyLevel], a
 	ld a, BATTLETYPE_ROAMING
@@ -34276,7 +34288,7 @@
 	scf
 	ret
 
-.asm_2a30a
+.DontEncounterRoamMon
 	pop hl
 	and a
 	ret
@@ -34285,81 +34297,85 @@
 
 UpdateRoamMons: ; 2a30d
 	ld a, [wRoamMon1MapGroup]
-	cp $ff
-	jr z, .asm_2a324
+	cp GROUP_N_A
+	jr z, .SkipRaikou
 	ld b, a
 	ld a, [wRoamMon1MapNumber]
 	ld c, a
-	call Function2a355
+	call .Update
 	ld a, b
 	ld [wRoamMon1MapGroup], a
 	ld a, c
 	ld [wRoamMon1MapNumber], a
 
-.asm_2a324
+.SkipRaikou
 	ld a, [wRoamMon2MapGroup]
-	cp $ff
-	jr z, .asm_2a33b
+	cp GROUP_N_A
+	jr z, .SkipEntei
 	ld b, a
 	ld a, [wRoamMon2MapNumber]
 	ld c, a
-	call Function2a355
+	call .Update
 	ld a, b
 	ld [wRoamMon2MapGroup], a
 	ld a, c
 	ld [wRoamMon2MapNumber], a
 
-.asm_2a33b
+.SkipEntei
 	ld a, [wRoamMon3MapGroup]
-	cp $ff
-	jr z, .asm_2a352
+	cp GROUP_N_A
+	jr z, .SkipSuicune
 	ld b, a
 	ld a, [wRoamMon3MapNumber]
 	ld c, a
-	call Function2a355
+	call .Update
 	ld a, b
 	ld [wRoamMon3MapGroup], a
 	ld a, c
 	ld [wRoamMon3MapNumber], a
 
-.asm_2a352
-	jp Function2a3f6
+.SkipSuicune
+	jp _BackUpMapIndices
 ; 2a355
 
 
-Function2a355: ; 2a355
+.Update: ; 2a355
 	ld hl, RoamMaps
-.asm_2a358
+.loop
+; Are we at the end of the table?
 	ld a, [hl]
-	cp $ff
+	cp -1
 	ret z
+; Is this the correct entry?
 	ld a, b
 	cp [hl]
-	jr nz, .asm_2a365
+	jr nz, .next
 	inc hl
 	ld a, c
 	cp [hl]
-	jr z, .asm_2a36b
-
-.asm_2a365
+	jr z, .yes
+; We don't have the correct entry yet, so let's continue.  A 0 terminates each entry.
+.next
 	ld a, [hli]
 	and a
-	jr nz, .asm_2a365
-	jr .asm_2a358
+	jr nz, .next
+	jr .loop
 
-.asm_2a36b
+; We have the correct entry now, so let's choose a random map from it.
+.yes
 	inc hl
 	ld d, h
 	ld e, l
-.asm_2a36e
+.update_loop
 	ld h, d
 	ld l, e
+; Choose which map to warp to.
 	call Random
-	and $1f
-	jr z, Function2a3cd
+	and $1f ; 1/8n chance it moves to a completely random map, where n is the number of roaming connections from the current map.
+	jr z, JumpRoamMon
 	and 3
 	cp [hl]
-	jr nc, .asm_2a36e
+	jr nc, .update_loop ; invalid index, try again
 	inc hl
 	ld c, a
 	ld b, $0
@@ -34368,82 +34384,82 @@
 endr
 	ld a, [wdfe7]
 	cp [hl]
-	jr nz, .asm_2a390
+	jr nz, .done
 	inc hl
 	ld a, [wdfe6]
 	cp [hl]
-	jr z, .asm_2a36e
+	jr z, .update_loop
 	dec hl
 
-.asm_2a390
+.done
 	ld a, [hli]
 	ld b, a
 	ld c, [hl]
 	ret
 
-RestoreRoamMons: ; 2a394
+JumpRoamMons: ; 2a394
 	ld a, [wRoamMon1MapGroup]
-	cp $ff
-	jr z, .asm_2a3a6
-	call Function2a3cd
+	cp GROUP_N_A
+	jr z, .SkipRaikou
+	call JumpRoamMon
 	ld a, b
 	ld [wRoamMon1MapGroup], a
 	ld a, c
 	ld [wRoamMon1MapNumber], a
-.asm_2a3a6
+.SkipRaikou
 
 	ld a, [wRoamMon2MapGroup]
-	cp $ff
-	jr z, .asm_2a3b8
-	call Function2a3cd
+	cp GROUP_N_A
+	jr z, .SkipEntei
+	call JumpRoamMon
 	ld a, b
 	ld [wRoamMon2MapGroup], a
 	ld a, c
 	ld [wRoamMon2MapNumber], a
-.asm_2a3b8
+.SkipEntei
 
 	ld a, [wRoamMon3MapGroup]
-	cp $ff
-	jr z, .asm_2a3ca
-	call Function2a3cd
+	cp GROUP_N_A
+	jr z, .SkipSuicune
+	call JumpRoamMon
 	ld a, b
 	ld [wRoamMon3MapGroup], a
 	ld a, c
 	ld [wRoamMon3MapNumber], a
-.asm_2a3ca
+.SkipSuicune
 
-	jp Function2a3f6
+	jp _BackUpMapIndices
 
-Function2a3cd: ; 2a3cd
-.asm_2a3cd
+JumpRoamMon: ; 2a3cd
+.loop
 	ld hl, RoamMaps
-.asm_2a3d0
-	call Random
-	and $f
-	cp $10
-	jr nc, .asm_2a3d0
+.innerloop1 ; This loop is completely unnecessary.
+	call Random ; Choose a random number
+	and $f ; Take the lower nybble only.  This gives a number between 0 and 15.
+	cp $10 ; If the number is greater than or equal to 16, loop back and try again.
+	jr nc, .innerloop1 ; I'm sure you can guess why this check is bogus.
 	inc a
 	ld b, a
-.asm_2a3db
+.innerloop2 ; Loop to get hl to the address of the chosen roam map.
 	dec b
-	jr z, .asm_2a3e4
-.asm_2a3de
+	jr z, .ok
+.innerloop3 ; Loop to skip the current roam map, which is terminated by a 0.
 	ld a, [hli]
 	and a
-	jr nz, .asm_2a3de
-	jr .asm_2a3db
-
-.asm_2a3e4
+	jr nz, .innerloop3
+	jr .innerloop2
+; Check to see if the selected map is the one the player is currently in.  If so, try again.
+.ok
 	ld a, [MapGroup]
 	cp [hl]
-	jr nz, .asm_2a3f2
+	jr nz, .done
 	inc hl
 	ld a, [MapNumber]
 	cp [hl]
-	jr z, .asm_2a3cd
+	jr z, .loop
 	dec hl
-
-.asm_2a3f2
+; Return the map group and number in bc.
+.done
 	ld a, [hli]
 	ld b, a
 	ld c, [hl]
@@ -34450,7 +34466,7 @@
 	ret
 ; 2a3f6
 
-Function2a3f6: ; 2a3f6
+_BackUpMapIndices: ; 2a3f6
 	ld a, [wdfe4]
 	ld [wdfe6], a
 	ld a, [wdfe5]
@@ -34483,45 +34499,47 @@
 	roam_map ROUTE_44, 3, ROUTE_42, ROUTE_43, ROUTE_45
 	roam_map ROUTE_45, 2, ROUTE_44, ROUTE_46
 	roam_map ROUTE_46, 2, ROUTE_45, ROUTE_29
-	db $ff
+	db -1
 ; 2a4a0
 
-Function2a4a0: ; 2a4a0
+ValidateTempWildMonSpecies: ; 2a4a0
+; Due to a development oversight, this function is called with the wild Pokemon's level, not its species, in a.
 	and a
-	jr z, .asm_2a4a9
-	cp $fc
-	jr nc, .asm_2a4a9
-	and a
+	jr z, .nowildmon ; = 0
+	cp NUM_POKEMON + 1 ; 252
+	jr nc, .nowildmon ; >= 252
+	and a ; 1 <= Species <= 251
 	ret
 
-.asm_2a4a9
+.nowildmon
 	scf
 	ret
 ; 2a4ab
 
-Function2a4ab: ; 2a4ab
-	callba Function90439
+RandomPhoneRareWildMon: ; 2a4ab
+; Related to the phone?
+	callba GetCallerLocation
 	ld d, b
 	ld e, c
-	ld hl, WildMons1
-	ld bc, $002f
-	call Function2a288
-	jr c, .asm_2a4c6
-	ld hl, WildMons3
-	call Function2a288
-	jr nc, .asm_2a514
+	ld hl, JohtoGrassWildMons
+	ld bc, GRASS_WILDDATA_LENGTH
+	call LookUpWildmonsForMapDE
+	jr c, .GetGrassmon
+	ld hl, KantoGrassWildMons
+	call LookUpWildmonsForMapDE
+	jr nc, .done
 
-.asm_2a4c6
+.GetGrassmon
 	push hl
-	ld bc, $000d
+	ld bc, 5 + 4 * 2 ; Location of the level of the 5th wild Pokemon in that map
 	add hl, bc
 	ld a, [TimeOfDay]
-	ld bc, $000e
+	ld bc, 7 * 2
 	call AddNTimes
-.asm_2a4d4
+.randloop1
 	call Random
 	and $3
-	jr z, .asm_2a4d4
+	jr z, .randloop1
 	dec a
 	ld c, a
 	ld b, $0
@@ -34528,26 +34546,29 @@
 rept 2
 	add hl, bc
 endr
+; We now have the pointer to one of the last (rarest) three wild Pokemon found in that area.
 	inc hl
-	ld c, [hl]
+	ld c, [hl] ; Contains the species index of this rare Pokemon
 	pop hl
-	ld de, $0005
+	ld de, 5 + 0 * 2
 	add hl, de
-	inc hl
-	ld b, $4
-.asm_2a4eb
+	inc hl ; Species index of the most common Pokemon on that route
+	ld b, 4
+.loop2
 	ld a, [hli]
-	cp c
-	jr z, .asm_2a514
+	cp c ; Compare this most common Pokemon with the rare one stored in c.
+	jr z, .done
 	inc hl
 	dec b
-	jr nz, .asm_2a4eb
+	jr nz, .loop2
+; This Pokemon truly is rare.
 	push bc
 	dec c
 	ld a, c
 	call CheckSeenMon
 	pop bc
-	jr nz, .asm_2a514
+	jr nz, .done
+; Since we haven't seen it, have the caller tell us about it.
 	ld de, StringBuffer1
 	call CopyName1
 	ld a, c
@@ -34559,7 +34580,7 @@
 	ld [ScriptVar], a
 	ret
 
-.asm_2a514
+.done
 	ld a, $1
 	ld [ScriptVar], a
 	ret
@@ -34571,30 +34592,30 @@
 	db "@"
 ; 0x2a51f
 
-Function2a51f: ; 2a51f
-	callba Function90439
+RandomPhoneWildMon: ; 2a51f
+	callba GetCallerLocation
 	ld d, b
 	ld e, c
-	ld hl, WildMons1
-	ld bc, $002f
-	call Function2a288
-	jr c, .asm_2a538
-	ld hl, WildMons3
-	call Function2a288
+	ld hl, JohtoGrassWildMons
+	ld bc, GRASS_WILDDATA_LENGTH
+	call LookUpWildmonsForMapDE
+	jr c, .ok
+	ld hl, KantoGrassWildMons
+	call LookUpWildmonsForMapDE
 
-.asm_2a538
-	ld bc, $0005
+.ok
+	ld bc, 5 + 0 * 2
 	add hl, bc
 	ld a, [TimeOfDay]
 	inc a
-	ld bc, $000e
-.asm_2a543
+	ld bc, 7 * 2
+.loop
 	dec a
-	jr z, .asm_2a549
+	jr z, .done
 	add hl, bc
-	jr .asm_2a543
+	jr .loop
 
-.asm_2a549
+.done
 	call Random
 	and $3
 	ld c, a
@@ -34608,13 +34629,13 @@
 	call GetPokemonName
 	ld hl, StringBuffer1
 	ld de, StringBuffer4
-	ld bc, $000b
+	ld bc, PKMN_NAME_LENGTH
 	jp CopyBytes
 ; 2a567
 
 RandomPhoneMon: ; 2a567
 ; Get a random monster owned by the trainer who's calling.
-	callba Function90439
+	callba GetCallerLocation
 	ld hl, TrainerGroups
 	ld a, d
 	dec a
@@ -34697,22 +34718,22 @@
 ; 2a5e9
 
 
-WildMons1: ; 0x2a5e9
+JohtoGrassWildMons: ; 0x2a5e9
 INCLUDE "data/wild/johto_grass.asm"
 
-WildMons2: ; 0x2b11d
+JohtoWaterWildMons: ; 0x2b11d
 INCLUDE "data/wild/johto_water.asm"
 
-WildMons3: ; 0x2b274
+KantoGrassWildMons: ; 0x2b274
 INCLUDE "data/wild/kanto_grass.asm"
 
-WildMons4: ; 0x2b7f7
+KantoWaterWildMons: ; 0x2b7f7
 INCLUDE "data/wild/kanto_water.asm"
 
-WildMons5: ; 0x2b8d0
+SwarmGrassWildMons: ; 0x2b8d0
 INCLUDE "data/wild/swarm_grass.asm"
 
-WildMons6: ; 0x2b92f
+SwarmWaterWildMons: ; 0x2b92f
 INCLUDE "data/wild/swarm_water.asm"
 
 
@@ -36643,7 +36664,7 @@
 INCLUDE "battle/ai/scoring.asm"
 
 
-Function3952d: ; 3952d
+GetTrainerClassName: ; 3952d
 	ld hl, RivalName
 	ld a, c
 	cp RIVAL1
@@ -38721,7 +38742,7 @@
 ; 0x447b4
 
 .EmptyMailboxText ; 0x447b4
-	TX_FAR _EmptyMailboxText
+	text_jump _EmptyMailboxText
 	db "@"
 
 InitMail: ; 0x447b9
@@ -38791,7 +38812,7 @@
 	xor a
 	ld [hBGMapMode], a
 	call Function352f
-	call DrawOnMap
+	call UpdateSprites
 	ld a, [wd0f1]
 	ld [wcf88], a
 	ld a, [OBPals + 8 * 6]
@@ -38869,15 +38890,15 @@
 ; 0x448ac
 
 .PutAwayText ; 0x448ac
-	TX_FAR ClearedMailPutAwayText
+	text_jump ClearedMailPutAwayText
 	db "@"
 
 .PackFullText ; 0x448b1
-	TX_FAR MailPackFullText
+	text_jump MailPackFullText
 	db "@"
 
 .MessageLostText ; 0x448b6
-	TX_FAR MailMessageLostText
+	text_jump MailMessageLostText
 	db "@"
 
 .Function448bb: ; 0x448bb
@@ -38939,15 +38960,15 @@
 ; 0x4493c
 
 .HoldingMailText ; 0x4493c
-	TX_FAR MailAlreadyHoldingItemText
+	text_jump MailAlreadyHoldingItemText
 	db "@"
 
 .EggText ; 0x44941
-	TX_FAR MailEggText
+	text_jump MailEggText
 	db "@"
 
 .MailMovedText ; 0x44946
-	TX_FAR MailMovedFromBoxText
+	text_jump MailMovedFromBoxText
 	db "@"
 
 .Cancel
@@ -43933,31 +43954,31 @@
 Function4aa7a: ; 4aa7a
 	ld hl, DefaultFlypoint
 	ld d, $3
-.asm_4aa7f
-	ld e, $6
+.loop
+	ld e, PARTY_LENGTH
 	ld a, [hli]
 	push de
 	push hl
-	cp $ff
-	jr z, .asm_4aab3
-	ld hl, wc314
+	cp -1
+	jr z, .done
+	ld hl, wPartyMonMenuIconAnims
 	inc a
 	ld d, a
-.asm_4aa8d
+.inner_loop
 	ld a, [hl]
 	and a
-	jr z, .asm_4aaa5
+	jr z, .next
 	cp d
-	jr z, .asm_4aa9a
-	jr .asm_4aaa5
+	jr z, .same_as_d
+	jr .next
 
 	ld a, $3
-	jr .asm_4aa9c
+	jr .proceed
 
-.asm_4aa9a
+.same_as_d
 	ld a, $2
 
-.asm_4aa9c
+.proceed
 	push hl
 	ld c, l
 	ld b, h
@@ -43966,22 +43987,22 @@
 	ld [hl], a
 	pop hl
 
-.asm_4aaa5
+.next
 	ld bc, $0010
 	add hl, bc
 	dec e
-	jr nz, .asm_4aa8d
+	jr nz, .inner_loop
 	pop hl
 	pop de
 	dec d
-	jr nz, .asm_4aa7f
-	jr .asm_4aab5
+	jr nz, .loop
+	jr .finished
 
-.asm_4aab3
+.done
 	pop hl
 	pop de
 
-.asm_4aab5
+.finished
 	ret
 ; 4aab6
 
@@ -43988,10 +44009,10 @@
 Function4aab6: ; 4aab6
 	ld hl, DefaultFlypoint
 	ld d, $3
-.asm_4aabb
+.loop
 	ld a, [hli]
-	cp $ff
-	jr z, .asm_4aad2
+	cp -1
+	jr z, .done
 	push de
 	push hl
 	hlcoord 0, 1
@@ -44001,9 +44022,9 @@
 	pop hl
 	pop de
 	dec d
-	jr nz, .asm_4aabb
+	jr nz, .loop
 
-.asm_4aad2
+.done
 	ret
 ; 4aad3
 
@@ -44011,12 +44032,12 @@
 	ld hl, PartyCount
 	ld a, [hli]
 	and a
-	ret z
+	ret z ; Nothing in your party
 
 	ld c, a
 	xor a
 	ld [$ffb0], a
-.asm_4aadd
+.loop
 	push bc
 	push hl
 	ld e, 0
@@ -44027,7 +44048,7 @@
 	pop hl
 	pop bc
 	dec c
-	jr nz, .asm_4aadd
+	jr nz, .loop
 
 	call Function4aa7a
 	callba Function8cf69
@@ -44037,11 +44058,11 @@
 Function4aafb: ; 4aafb
 	ld a, [CurPartySpecies]
 	cp EGG
-	jr z, .asm_4ab04
+	jr z, .egg
 	and a
 	ret
 
-.asm_4ab04
+.egg
 	scf
 	ret
 ; 4ab06
@@ -44055,10 +44076,10 @@
 	ld b, a
 	ld a, [hl]
 	or b
-	jr nz, .asm_4ab19
+	jr nz, .NotFainted
 	scf
 
-.asm_4ab19
+.NotFainted
 	ret
 ; 4ab1a
 
@@ -44563,7 +44584,7 @@
 	ld a, [hOAMUpdate]
 	push af
 	call ExitMenu
-	call DrawOnMap
+	call UpdateSprites
 	xor a
 	ld [hOAMUpdate], a
 	call DelayFrame
@@ -44578,18 +44599,18 @@
 
 SECTION "bank13", ROMX, BANK[$13]
 
-Function4c000:: ; 4c000
+SwapTextboxPalettes:: ; 4c000
 	hlcoord 0, 0
 	decoord 0, 0, AttrMap
 	ld b, $12
-.asm_4c008
+.loop
 	push bc
-	ld c, $14
-.asm_4c00b
+	ld c, SCREEN_WIDTH
+.innerloop
 	ld a, [hl]
 	push hl
 	srl a
-	jr c, .asm_4c021
+	jr c, .UpperNybble
 	ld hl, TilesetPalettes
 	add [hl]
 	ld l, a
@@ -44598,9 +44619,9 @@
 	ld h, a
 	ld a, [hl]
 	and $f
-	jr .asm_4c031
+	jr .next
 
-.asm_4c021
+.UpperNybble
 	ld hl, TilesetPalettes
 	add [hl]
 	ld l, a
@@ -44611,7 +44632,7 @@
 	swap a
 	and $f
 
-.asm_4c031
+.next
 	pop hl
 	ld [de], a
 	res 7, [hl]
@@ -44618,21 +44639,21 @@
 	inc hl
 	inc de
 	dec c
-	jr nz, .asm_4c00b
+	jr nz, .innerloop
 	pop bc
 	dec b
-	jr nz, .asm_4c008
+	jr nz, .loop
 	ret
 ; 4c03f
 
-Function4c03f:: ; 4c03f
+ScrollBGMapPalettes:: ; 4c03f
 	ld hl, BGMapBuffer
 	ld de, BGMapPalBuffer
-.asm_4c045
+.loop
 	ld a, [hl]
 	push hl
 	srl a
-	jr c, .asm_4c05b
+	jr c, .UpperNybble
 	ld hl, TilesetPalettes
 	add [hl]
 	ld l, a
@@ -44641,9 +44662,9 @@
 	ld h, a
 	ld a, [hl]
 	and $f
-	jr .asm_4c06b
+	jr .next
 
-.asm_4c05b
+.UpperNybble
 	ld hl, TilesetPalettes
 	add [hl]
 	ld l, a
@@ -44654,7 +44675,7 @@
 	swap a
 	and $f
 
-.asm_4c06b
+.next
 	pop hl
 	ld [de], a
 	res 7, [hl]
@@ -44661,7 +44682,7 @@
 	inc hl
 	inc de
 	dec c
-	jr nz, .asm_4c045
+	jr nz, .loop
 	ret
 ; 4c075
 
@@ -46344,7 +46365,7 @@
 	push hl
 	call WhiteBGMap
 	call ClearTileMap
-	call DrawOnMap
+	call UpdateSprites
 	callba Functionfb53e
 	pop hl
 	call _hl_
@@ -49428,11 +49449,11 @@
 	ld hl, StatusFlags2
 	bit 2, [hl]
 	jr nz, .asm_50712
-	callba Function2a111
+	callba GetMapEncounterRate
 	ld a, b
 	and a
 	jr z, .asm_5071e
-	callba Function2a14f
+	callba ChooseWildEncounter
 	jr nz, .asm_5071e
 	jr .asm_50718
 
@@ -49503,7 +49524,7 @@
 	jr c, .asm_50774
 
 	ld a, d
-	cp 23
+	cp $17
 	jr nz, .asm_50774
 
 	ld a, $1
@@ -49518,6 +49539,7 @@
 
 
 _CardKey: ; 50779
+; Are we even in the right map to use this?
 	ld a, [MapGroup]
 	cp GROUP_RADIO_TOWER_3F
 	jr nz, .nope
@@ -49525,7 +49547,7 @@
 	ld a, [MapNumber]
 	cp MAP_RADIO_TOWER_3F
 	jr nz, .nope
-
+; Are we facing the slot?
 	ld a, [PlayerDirection]
 	and $c
 	cp OW_UP
@@ -49538,8 +49560,8 @@
 	ld a, e
 	cp 6
 	jr nz, .nope
-
-	ld hl, UnknownScript_0x507af
+; Let's use the Card Key.
+	ld hl, .CardKeyScript
 	call ExitMenuCallScript
 	ld a, $1
 	ld [wd0ec], a
@@ -49551,7 +49573,7 @@
 	ret
 ; 507af
 
-UnknownScript_0x507af: ; 0x507af
+.CardKeyScript: ; 0x507af
 	loadmovesprites
 	farjump MapRadioTower3FSignpost2Script
 ; 0x507b4
@@ -49558,6 +49580,7 @@
 
 
 _BasementKey: ; 507b4
+; Are we even in the right map to use this?
 	ld a, [MapGroup]
 	cp GROUP_WAREHOUSE_ENTRANCE
 	jr nz, .nope
@@ -49565,7 +49588,7 @@
 	ld a, [MapNumber]
 	cp MAP_WAREHOUSE_ENTRANCE
 	jr nz, .nope
-
+; Are we on the tile in front of the door?
 	call GetFacingTileCoord
 	ld a, d
 	cp 22
@@ -49573,8 +49596,8 @@
 	ld a, e
 	cp 10
 	jr nz, .nope
-
-	ld hl, UnlockBasementDoorScript
+; Let's use the Basement Key
+	ld hl, .BasementKeyScript
 	call ExitMenuCallScript
 	ld a, 1
 	ld [wd0ec], a
@@ -49586,7 +49609,7 @@
 	ret
 ; 507e1
 
-UnlockBasementDoorScript: ; 0x507e1
+.BasementKeyScript: ; 0x507e1
 	loadmovesprites
 	farjump BasementDoorScript
 ; 0x507e6
@@ -49678,16 +49701,16 @@
 	ld hl, PartyMon1Species
 	ld bc, PartyMon2 - PartyMon1
 	and a
-	jr z, .asm_5087b
+	jr z, .copywholestruct
 	ld hl, OTPartyMon1Species
 	ld bc, OTPartyMon2 - OTPartyMon1
-	cp $1
-	jr z, .asm_5087b
-	ld bc, $0020
+	cp OTPARTYMON
+	jr z, .copywholestruct
+	ld bc, BOXMON_STRUCT_LENGTH
 	callab Functione5bb
-	jr .asm_5088a
+	jr .done
 
-.asm_5087b
+.copywholestruct
 	ld a, [CurPartyMon]
 	call AddNTimes
 	ld de, TempMonSpecies
@@ -49694,7 +49717,7 @@
 	ld bc, PartyMon2 - PartyMon1
 	call CopyBytes
 
-.asm_5088a
+.done
 	ret
 ; 5088b
 
@@ -49757,41 +49780,41 @@
 Function508d5: ; 508d5
 	ld a, [MonType]
 	and a ; PARTYMON
-	jr z, .asm_508e7
+	jr z, .partymon
 	cp OTPARTYMON
-	jr z, .asm_508ec
+	jr z, .otpartymon
 	cp BOXMON
-	jr z, .asm_508f1
-	cp $3
-	jr z, .asm_50900
+	jr z, .boxmon
+	cp BREEDMON
+	jr z, .breedmon
 	; WILDMON
 
-.asm_508e7
+.partymon
 	ld hl, PartySpecies
-	jr .asm_50905
+	jr .done
 
-.asm_508ec
+.otpartymon
 	ld hl, OTPartySpecies
-	jr .asm_50905
+	jr .done
 
-.asm_508f1
+.boxmon
 	ld a, 1 ; BANK(sBoxSpecies)
 	call GetSRAMBank
 	ld hl, sBoxSpecies
-	call .asm_50905
+	call .done
 	call CloseSRAM
 	ret
 
-.asm_50900
+.breedmon
 	ld a, [wBreedMon1Species]
-	jr .asm_50909
+	jr .done2
 
-.asm_50905
+.done
 	ld d, 0
 	add hl, de
 	ld a, [hl]
 
-.asm_50909
+.done2
 	ld [CurPartySpecies], a
 	ret
 ; 5090d
@@ -50411,42 +50434,42 @@
 	ld a, [wd263]
 
 	cp $1
-	jr nz, .asm_50dca
+	jr nz, .check_party_ot_name
 	ld hl, OTPartyCount
 	ld de, OTPartyMonOT
 	ld a, ENEMY_OT_NAME
-	jr .asm_50dfc
-.asm_50dca
+	jr .done
+.check_party_ot_name
 
 	cp $4
-	jr nz, .asm_50dd8
+	jr nz, .check_mon_name
 	ld hl, PartyCount
 	ld de, PartyMonOT
 	ld a, PARTY_OT_NAME
-	jr .asm_50dfc
-.asm_50dd8
+	jr .done
+.check_mon_name
 
 	cp $5
-	jr nz, .asm_50de6
+	jr nz, .check_item_name
 	ld hl, OBPals + 8 * 6
 	ld de, PokemonNames
 	ld a, PKMN_NAME
-	jr .asm_50dfc
-.asm_50de6
+	jr .done
+.check_item_name
 
 	cp $2
-	jr nz, .asm_50df4
+	jr nz, .check_ob_item_name
 	ld hl, NumItems
 	ld de, ItemNames
 	ld a, ITEM_NAME
-	jr .asm_50dfc
-.asm_50df4
+	jr .done
+.check_ob_item_name
 
 	ld hl, OBPals + 8 * 6
 	ld de, ItemNames
 	ld a, ITEM_NAME
 
-.asm_50dfc
+.done
 	ld [wcf61], a
 	ld a, l
 	ld [wd100], a
@@ -52350,7 +52373,7 @@
 
 .ceiling
 	ld a, e
-	cp $a2
+	cp NUM_ENGINE_FLAGS
 	jr c, .read
 
 ; Invalid flags are treated as flag 00.
@@ -52480,7 +52503,7 @@
 	dwb wSpecialPhoneCallID,         $00
 	dwb wcf64,         $00
 	dwb wdca4,         $00
-	dwb wdbf9,         $40
+	dwb wCurrentCaller,         $40
 	dwb wdc4b,         $40
 	dwb wdc4a,         $40
 	dwb wdc58,         $00
@@ -55176,10 +55199,10 @@
 
 Function84757: ; 84757
 	ld a, [wca88]
-	cp $ff
+	cp -1
 	jr nz, .c_directly_below_e5
 	ld a, [wca89]
-	cp $ff
+	cp -1
 	jr z, .asm_8477f
 
 .c_directly_below_e5
@@ -56278,7 +56301,7 @@
 	xor a
 	ld [hBGMapMode], a
 	call Function352f
-	call DrawOnMap
+	call UpdateSprites
 	call Function350c
 	ld a, [wcf73]
 	cp $2
@@ -56348,7 +56371,7 @@
 	xor a
 	ld [hBGMapMode], a
 	call Function1cbb
-	call DrawOnMap
+	call UpdateSprites
 	call Function88116
 	call Function88126
 	call Function321c
@@ -61465,7 +61488,7 @@
 	xor a
 	ld [hBGMapMode], a
 	call Function1cbb
-	call DrawOnMap
+	call UpdateSprites
 	call Function321c
 	call Function1cfd
 	inc hl
@@ -61648,7 +61671,7 @@
 	call CopyMenuDataHeader
 	ld a, [wdc4a]
 	ld c, a
-	callba Functionb8f8f
+	callba GetBuenasPassword
 	ld a, [wcf83]
 	add c
 	add $2
@@ -61701,7 +61724,7 @@
 	ld a, [MenuSelection]
 	add c
 	ld c, a
-	callba Functionb8f8f
+	callba GetBuenasPassword
 	pop hl
 	call PlaceString
 	ret
@@ -61724,7 +61747,7 @@
 
 .asm_8aff1
 	call DelayFrame
-	call DrawOnMap
+	call UpdateSprites
 	call Function8b097
 	call Function8b0e2
 	jr z, .asm_8b05f
@@ -61844,7 +61867,7 @@
 	ld hl, MenuDataHeader_0x8b0d1
 	call CopyMenuDataHeader
 	call Function1cbb
-	call DrawOnMap
+	call UpdateSprites
 	call Function1cfd
 	ld bc, $0015
 	add hl, bc
@@ -61893,7 +61916,7 @@
 	ld [wcf76], a
 	ld [hBGMapMode], a
 	call Function352f
-	call DrawOnMap
+	call UpdateSprites
 	call Function350c
 	ld a, [MenuSelection]
 	ld c, a
@@ -63154,7 +63177,7 @@
 	ld c, $12
 	call Function8b703
 	call Function8b75d
-	call DrawOnMap
+	call UpdateSprites
 	call Function89209
 	call Function350c
 	call Function8920f
@@ -63957,7 +63980,7 @@
 	cp $4
 	jr z, .asm_8c288
 	callba Function6454
-	call DrawOnMap
+	call UpdateSprites
 	call DelayFrame
 	call Function8c2a0
 	call Function8cf4f
@@ -65187,18 +65210,18 @@
 Special_MagnetTrain: ; 8cc04
 	ld a, [ScriptVar]
 	and a
-	jr nz, .asm_8cc14
-	ld a, $1
+	jr nz, .ToGoldenrod
+	ld a, 1 ; forwards
 	lb bc, $40, $60
 	ld de, $fca0
-	jr .asm_8cc1c
+	jr .continue
 
-.asm_8cc14
-	ld a, $ff
+.ToGoldenrod
+	ld a, -1 ; backwards
 	lb bc, $c0, $a0
 	ld de, $b460
 
-.asm_8cc1c
+.continue
 	ld h, a
 	ld a, [rSVBK]
 	push af
@@ -65205,15 +65228,15 @@
 	ld a, $5
 	ld [rSVBK], a
 	ld a, h
-	ld [wd191], a
+	ld [w5_d191], a
 	ld a, c
-	ld [wd192], a
+	ld [w5_d192], a
 	ld a, b
-	ld [wd193], a
+	ld [w5_d193], a
 	ld a, e
-	ld [wd194], a
+	ld [w5_d194], a
 	ld a, d
-	ld [wd195], a
+	ld [w5_d195], a
 	ld a, [hSCX]
 	push af
 	ld a, [hSCY]
@@ -65223,24 +65246,24 @@
 	ld a, [hl]
 	push af
 	ld [hl], $1
-.asm_8cc48
+.loop
 	ld a, [wcf63]
 	and a
-	jr z, .asm_8cc66
+	jr z, .initialize
 	bit 7, a
-	jr nz, .asm_8cc6b
+	jr nz, .done
 	callab Function8cf69
 	call Function8cdf7
 	call Function8cc99
 	call Function3b0c
 	call DelayFrame
-	jr .asm_8cc48
+	jr .loop
 
-.asm_8cc66
+.initialize
 	call Function8ceae
-	jr .asm_8cc48
+	jr .loop
 
-.asm_8cc6b
+.done
 	pop af
 	ld [hVBlank], a
 	call WhiteBGMap
@@ -65648,10 +65671,26 @@
 	ret
 ; 8ceff
 
-MagnetTrainTilemap1: db $1f, $05, $06, $0a, $0a, $0a, $09, $0a, $0a, $0a, $0a, $0a, $0a, $09, $0a, $0a, $0a, $0b, $0c, $1f
-MagnetTrainTilemap2: db $14, $15, $16, $1a, $1a, $1a, $19, $1a, $1a, $1a, $1a, $1a, $1a, $19, $1a, $1a, $1a, $1b, $1c, $1d
-MagnetTrainTilemap3: db $24, $25, $26, $27, $07, $2f, $29, $28, $28, $28, $28, $28, $28, $29, $07, $2f, $2a, $2b, $2c, $2d
-MagnetTrainTilemap4: db $20, $1f, $2e, $1f, $17, $00, $2e, $1f, $1f, $1f, $1f, $1f, $1f, $2e, $17, $00, $1f, $2e, $1f, $0f
+MagnetTrainTilemap1:
+	db $1f, $05, $06, $0a, $0a
+	db $0a, $09, $0a, $0a, $0a
+	db $0a, $0a, $0a, $09, $0a
+	db $0a, $0a, $0b, $0c, $1f
+MagnetTrainTilemap2:
+	db $14, $15, $16, $1a, $1a
+	db $1a, $19, $1a, $1a, $1a
+	db $1a, $1a, $1a, $19, $1a
+	db $1a, $1a, $1b, $1c, $1d
+MagnetTrainTilemap3:
+	db $24, $25, $26, $27, $07
+	db $2f, $29, $28, $28, $28
+	db $28, $28, $28, $29, $07
+	db $2f, $2a, $2b, $2c, $2d
+MagnetTrainTilemap4:
+	db $20, $1f, $2e, $1f, $17
+	db $00, $2e, $1f, $1f, $1f
+	db $1f, $1f, $1f, $2e, $17
+	db $00, $1f, $2e, $1f, $0f
 ; 8cf4f
 
 Function8cf4f: ; 8cf4f
@@ -65695,95 +65734,95 @@
 ; 8cf7a
 
 Function8cf7a: ; 8cf7a
-	ld hl, wc314
-	ld e, $a
-.asm_8cf7f
+	ld hl, wPartyMonMenuIconAnims
+	ld e, 10 ; Do this first loop 10 times
+.loop
 	ld a, [hl]
 	and a
-	jr z, .asm_8cf91
+	jr z, .next ; Done with this iteration
 	ld c, l
 	ld b, h
 	push hl
 	push de
 	call Function8d24b
-	call Function8d04c
+	call LoadBouncingMonIcon
 	pop de
 	pop hl
-	jr c, .asm_8cfa7
+	jr c, .done
 
-.asm_8cf91
+.next
 	ld bc, $0010
 	add hl, bc
 	dec e
-	jr nz, .asm_8cf7f
+	jr nz, .loop
 	ld a, [wc3b5]
 	ld l, a
-	ld h, $c4
-.asm_8cf9e
+	ld h, Sprites / $0100
+.loop2 ; Clear (Sprites + [wc3b5] --> SpritesEnd)
 	ld a, l
-	cp $a0
-	jr nc, .asm_8cfa7
+	cp SpritesEnd % $0100
+	jr nc, .done
 	xor a
 	ld [hli], a
-	jr .asm_8cf9e
+	jr .loop2
 
-.asm_8cfa7
+.done
 	ret
 ; 8cfa8
 
 Function8cfa8: ; 8cfa8 (23:4fa8)
-	ld hl, wc314
+	ld hl, wPartyMonMenuIconAnims
 	ld e, $a
-.asm_8cfad
+.loop
 	ld a, [hl]
 	and a
-	jr z, .asm_8cfbf
+	jr z, .next
 	ld c, l
 	ld b, h
 	push hl
 	push de
 	call Function8d24b
-	call Function8d04c
+	call LoadBouncingMonIcon
 	pop de
 	pop hl
-	jr c, .asm_8cfd5
-.asm_8cfbf
+	jr c, .done
+.next
 	ld bc, $10
 	add hl, bc
 	dec e
-	jr nz, .asm_8cfad
+	jr nz, .loop
 	ld a, [wc3b5]
 	ld l, a
 	ld h, $c4
-.asm_8cfcc
+.loop2
 	ld a, l
 	cp $40
-	jr nc, .asm_8cfd5
+	jr nc, .done
 	xor a
 	ld [hli], a
-	jr .asm_8cfcc
-.asm_8cfd5
+	jr .loop2
+.done
 	ret
 
 Function8cfd6:: ; 8cfd6
 	push de
 	push af
-	ld hl, wc314
-	ld e, $a
-.asm_8cfdd
+	ld hl, wPartyMonMenuIconAnims
+	ld e, 2 * 4 + 2 ; 4 tiles for each frame, then one frame each for mail and item
+.loop
 	ld a, [hl]
 	and a
-	jr z, .asm_8cfec
+	jr z, .found
 	ld bc, $0010
 	add hl, bc
 	dec e
-	jr nz, .asm_8cfdd
+	jr nz, .loop
 	pop af
 	pop de
 	scf
 	ret
 
-.asm_8cfec
+.found
 	ld c, l
 	ld b, h
 	ld hl, wc3b4
@@ -65790,10 +65829,10 @@
 	inc [hl]
 	ld a, [hl]
 	and a
-	jr nz, .asm_8cff7
+	jr nz, .initialized
 	inc [hl]
 
-.asm_8cff7
+.initialized
 	pop af
 	ld e, a
 	ld d, 0
@@ -65854,25 +65893,26 @@
 
 
 Function8d03d: ; 8d03d (23:503d)
-	ld hl, wc314
+	ld hl, wPartyMonMenuIconAnims
 	ld bc, $10
 	ld e, $a
 	xor a
-.asm_8d046
+.loop
 	ld [hl], a
 	add hl, bc
 	dec e
-	jr nz, .asm_8d046
+	jr nz, .loop
 	ret
 
 
-Function8d04c: ; 8d04c
+LoadBouncingMonIcon: ; 8d04c
+; Populate Sprites with the bouncing mon icons
 	call Function8d0ec
 	call Function8d132
 	cp $fd
-	jr z, .asm_8d0b9
+	jr z, .done
 	cp $fc
-	jr z, .asm_8d0b6
+	jr z, .almost
 	call Function8d1a2
 	ld a, [wc3ba]
 	add [hl]
@@ -65887,7 +65927,7 @@
 	ld d, Sprites / $100
 	ld a, [hli]
 	ld c, a
-.asm_8d071
+.loop
 	ld a, [wc3bc]
 	ld b, a
 	ld a, [wc3be]
@@ -65926,20 +65966,20 @@
 	ld a, e
 	ld [wc3b5], a
 	cp SpritesEnd % $100
-	jr nc, .asm_8d0bb
+	jr nc, .outofroom
 	dec c
-	jr nz, .asm_8d071
+	jr nz, .loop
 	pop bc
-	jr .asm_8d0b9
+	jr .done
 
-.asm_8d0b6
+.almost
 	call Function8d036
 
-.asm_8d0b9
+.done
 	and a
 	ret
 
-.asm_8d0bb
+.outofroom
 	pop bc
 	scf
 	ret
@@ -65950,12 +65990,12 @@
 	ld a, [hl]
 	ld hl, wc3b8
 	bit 6, [hl]
-	jr z, .asm_8d0cc
+	jr z, .ok
 	add $8
 	xor $ff
 	inc a
 
-.asm_8d0cc
+.ok
 	pop hl
 	ret
 ; 8d0ce
@@ -65965,12 +66005,12 @@
 	ld a, [hl]
 	ld hl, wc3b8
 	bit 5, [hl]
-	jr z, .asm_8d0dc
+	jr z, .ok
 	add $8
 	xor $ff
 	inc a
 
-.asm_8d0dc
+.ok
 	pop hl
 	ret
 ; 8d0de
@@ -66012,20 +66052,20 @@
 	ld hl, wc300
 	ld b, a
 	ld c, $a
-.asm_8d111
+.loop
 	ld a, [hli]
 	cp b
-	jr z, .asm_8d11c
+	jr z, .ok
 	inc hl
 	dec c
-	jr nz, .asm_8d111
+	jr nz, .loop
 	xor a
-	jr .asm_8d11d
+	jr .done
 
-.asm_8d11c
+.ok
 	ld a, [hl]
 
-.asm_8d11d
+.done
 	pop bc
 	pop hl
 	ret
@@ -66046,19 +66086,19 @@
 
 
 Function8d132: ; 8d132
-.asm_8d132
+.loop
 	ld hl, $0008
 	add hl, bc
 	ld a, [hl]
 	and a
-	jr z, .asm_8d142
+	jr z, .ok
 	dec [hl]
 	call Function8d189
 	ld a, [hli]
 	push af
-	jr .asm_8d163
+	jr .skip
 
-.asm_8d142
+.ok
 	ld hl, $000a
 	add hl, bc
 	inc [hl]
@@ -66065,9 +66105,9 @@
 	call Function8d189
 	ld a, [hli]
 	cp $fe
-	jr z, .asm_8d17b
+	jr z, .minus_2
 	cp $ff
-	jr z, .asm_8d16d
+	jr z, .minus_1
 	push af
 	ld a, [hl]
 	push hl
@@ -66080,7 +66120,7 @@
 	ld [hl], a
 	pop hl
 
-.asm_8d163
+.skip
 	ld a, [hl]
 	and $c0
 	srl a
@@ -66088,7 +66128,7 @@
 	pop af
 	ret
 
-.asm_8d16d
+.minus_1
 	xor a
 	ld hl, $0008
 	add hl, bc
@@ -66098,9 +66138,9 @@
 rept 2
 	dec [hl]
 endr
-	jr .asm_8d132
+	jr .loop
 
-.asm_8d17b
+.minus_2
 	xor a
 	ld hl, $0008
 	add hl, bc
@@ -66109,7 +66149,7 @@
 	ld hl, $000a
 	add hl, bc
 	ld [hl], a
-	jr .asm_8d132
+	jr .loop
 ; 8d189
 
 Function8d189: ; 8d189
@@ -66143,7 +66183,7 @@
 	ret
 ; 8d1ac
 
-Function8d1ac: ; 8d1ac
+Function8d1ac: ; unreferenced
 	push hl
 	ld l, a
 	ld h, 0
@@ -66220,7 +66260,7 @@
 	add hl, bc
 	ld e, [hl]
 	ld d, 0
-	ld hl, Jumptable_8d25b
+	ld hl, .Jumptable
 rept 2
 	add hl, de
 endr
@@ -66231,53 +66271,53 @@
 ; 8d25b
 
 
-Jumptable_8d25b: ; 8d25b (23:525b)
-	dw Function8d2a1
-	dw Function8d2a2
-	dw Function8d2b9
-	dw Function8d2ea
-	dw Function8d302
-	dw Function8d36c
-	dw Function8d37a
-	dw Function8d381
-	dw Function8d3c3
-	dw Function8d422
-	dw Function8d429
-	dw Function8d43e
-	dw Function8d373
-	dw Function8d46e
-	dw Function8d47c
-	dw Function8d475
-	dw Function8d483
-	dw Function8d52a
-	dw Function8d543
-	dw Function8d54a
-	dw Function8d578
-	dw Function8d57f
-	dw Function8d5b0
-	dw Function8d5e2
-	dw Function8d607
-	dw Function8d35a
-	dw Function8d6b7
-	dw Function8d630
-	dw Function8d637
-	dw Function8d63e
-	dw Function8d666
-	dw Function8d6be
-	dw Function8d680
-	dw Function8d6a2
-	dw Function8d6ae
+.Jumptable: ; 8d25b (23:525b)
+	dw .zero
+	dw .one
+	dw .two
+	dw .three
+	dw .four
+	dw .five
+	dw .six
+	dw .seven
+	dw .eight
+	dw .nine
+	dw .ten
+	dw .eleven
+	dw .twelve
+	dw .thirteen
+	dw .fourteen
+	dw .fifteen
+	dw .sixteen
+	dw .seventeen
+	dw .eighteen
+	dw .nineteen
+	dw .twenty
+	dw .twentyone
+	dw .twentytwo
+	dw .twentythree
+	dw .twentyfour
+	dw .twentyfive
+	dw .twentysix
+	dw .twentyseven
+	dw .twentyeight
+	dw .twentynine
+	dw .thirty
+	dw .thirtyone
+	dw .thirtytwo
+	dw .thirtythree
+	dw .thirtyfour
 
 
-Function8d2a1: ; 8d2a1 (23:52a1)
+.zero: ; 8d2a1 (23:52a1)
 	ret
 
-Function8d2a2: ; 8d2a2 (23:52a2)
+.one: ; 8d2a2 (23:52a2)
 	ld a, [wcfa9]
 	ld hl, $0
 	add hl, bc
 	cp [hl]
-	jr z, Function8d2b9
+	jr z, .two
 	ld hl, $4
 	add hl, bc
 	ld [hl], $10
@@ -66286,7 +66326,7 @@
 	ld [hl], $0
 	ret
 
-Function8d2b9: ; 8d2b9 (23:52b9)
+.two: ; 8d2b9 (23:52b9)
 	ld hl, $4
 	add hl, bc
 	ld [hl], $18
@@ -66323,7 +66363,7 @@
 	ld [hl], a
 	ret
 
-Function8d2ea: ; 8d2ea (23:52ea)
+.three: ; 8d2ea (23:52ea)
 	ld a, [wcfa9]
 	ld hl, $0
 	add hl, bc
@@ -66339,17 +66379,17 @@
 	ld [hl], $18
 	ret
 
-Function8d302: ; 8d302 (23:5302)
-	call Function8d6c5
+.four: ; 8d302 (23:5302)
+	call .anonymous_jumptable
 	jp [hl]
 ; 8d306 (23:5306)
 
-; Anonymous jumptable (see Function8d6c5)
-	dw Function8d30a
-	dw Function8d321
+; Anonymous jumptable (see .anonymous_jumptable)
+	dw .four_zero
+	dw .four_one
 ; 8d30a
 
-Function8d30a: ; 8d30a
+.four_zero: ; 8d30a
 	call Function8d6d8
 	ld hl, $0000
 	add hl, bc
@@ -66364,7 +66404,7 @@
 	add hl, bc
 	ld [hl], a
 
-Function8d321: ; 8d321
+.four_one: ; 8d321
 	ld hl, $0004
 	add hl, bc
 	ld a, [hl]
@@ -66401,7 +66441,7 @@
 	ret
 ; 8d35a
 
-Function8d35a: ; 8d35a (23:535a)
+.twentyfive: ; 8d35a (23:535a)
 	ld hl, $c
 	add hl, bc
 	ld a, [hl]
@@ -66414,19 +66454,19 @@
 	ld [hl], a
 	ret
 
-Function8d36c: ; 8d36c (23:536c)
+.five: ; 8d36c (23:536c)
 	callab Function11a3b
 	ret
 
-Function8d373: ; 8d373 (23:5373)
+.twelve: ; 8d373 (23:5373)
 	callab Function120c1
 	ret
 
-Function8d37a: ; 8d37a (23:537a)
-	callab Functione46ed
+.six: ; 8d37a (23:537a)
+	callab GameFreakLogoJumper
 	ret
 
-Function8d381: ; 8d381 (23:5381)
+.seven: ; 8d381 (23:5381)
 	ld hl, $c
 	add hl, bc
 	ld a, [hl]
@@ -66471,7 +66511,7 @@
 	call Function8d036
 	ret
 
-Function8d3c3: ; 8d3c3 (23:53c3)
+.eight: ; 8d3c3 (23:53c3)
 	ld hl, $c
 	add hl, bc
 	ld a, [hli]
@@ -66537,11 +66577,11 @@
 	call Function8d036
 	ret
 
-Function8d422: ; 8d422 (23:5422)
+.nine: ; 8d422 (23:5422)
 	callab Function9321d
 	ret
 
-Function8d429: ; 8d429 (23:5429)
+.ten: ; 8d429 (23:5429)
 	callab Function932ac
 	ld hl, wcf64
 	ld a, [hl]
@@ -66552,7 +66592,7 @@
 	call Function8d120
 	ret
 
-Function8d43e: ; 8d43e (23:543e)
+.eleven: ; 8d43e (23:543e)
 	ld hl, $b
 	add hl, bc
 	ld a, [hl]
@@ -66582,33 +66622,33 @@
 	ld [hl], a
 	ret
 
-Function8d46e: ; 8d46e (23:546e)
+.thirteen: ; 8d46e (23:546e)
 	callab Functione00ed
 	ret
 
-Function8d475: ; 8d475 (23:5475)
+.fifteen: ; 8d475 (23:5475)
 	callab Function90d41
 	ret
 
-Function8d47c: ; 8d47c (23:547c)
+.fourteen: ; 8d47c (23:547c)
 	callab Functione21a1
 	ret
 
-Function8d483: ; 8d483 (23:5483)
-	call Function8d6c5
+.sixteen: ; 8d483 (23:5483)
+	call .anonymous_jumptable
 	jp [hl]
 ; 8d487 (23:5487)
 
-; Anonymous jumptable (see Function8d6c5)
-	dw Function8d493
-	dw Function8d4d5
-	dw Function8d4a5
-	dw Function8d4b8
-	dw Function8d4e8
-	dw Function8d526
+; Anonymous jumptable (see .anonymous_jumptable)
+	dw .sixteen_zero
+	dw .sixteen_one
+	dw .sixteen_two
+	dw .sixteen_three
+	dw .sixteen_four
+	dw .sixteen_five
 ; 8d493
 
-Function8d493: ; 8d493
+.sixteen_zero: ; 8d493
 	ld a, $14
 	call Function8d120
 	ld hl, $000b
@@ -66620,7 +66660,7 @@
 	ret
 ; 8d4a5
 
-Function8d4a5: ; 8d4a5
+.sixteen_two: ; 8d4a5
 	ld hl, $000c
 	add hl, bc
 	ld a, [hl]
@@ -66635,7 +66675,7 @@
 	add hl, bc
 	ld [hl], $40
 
-Function8d4b8: ; 8d4b8
+.sixteen_three: ; 8d4b8
 	ld hl, $000c
 	add hl, bc
 	ld a, [hl]
@@ -66652,10 +66692,10 @@
 .asm_8d4cd
 	ld de, SFX_GOT_SAFARI_BALLS
 	call PlaySFX
-	jr Function8d526
+	jr .sixteen_five
 ; 8d4d5
 
-Function8d4d5: ; 8d4d5
+.sixteen_one: ; 8d4d5
 	ld hl, $000b
 	add hl, bc
 	ld [hl], $4
@@ -66668,7 +66708,7 @@
 	ret
 ; 8d4e8
 
-Function8d4e8: ; 8d4e8
+.sixteen_four: ; 8d4e8
 	ld hl, $000d
 	add hl, bc
 	ld a, [hl]
@@ -66708,12 +66748,12 @@
 	call Function8d6d8
 	ret
 
-Function8d526: ; 8d526
+.sixteen_five: ; 8d526
 	call Function8d036
 	ret
 ; 8d52a
 
-Function8d52a: ; 8d52a (23:552a)
+.seventeen: ; 8d52a (23:552a)
 	ld hl, $4
 	add hl, bc
 	ld a, [hl]
@@ -66731,11 +66771,11 @@
 	call Function8d036
 	ret
 
-Function8d543: ; 8d543 (23:5543)
+.eighteen: ; 8d543 (23:5543)
 	callab Function29676
 	ret
 
-Function8d54a: ; 8d54a (23:554a)
+.nineteen: ; 8d54a (23:554a)
 	ld hl, $c
 	add hl, bc
 	ld a, [hl]
@@ -66766,11 +66806,11 @@
 	call Function8d036
 	ret
 
-Function8d578: ; 8d578 (23:5578)
+.twenty: ; 8d578 (23:5578)
 	callab Function91640
 	ret
 
-Function8d57f: ; 8d57f (23:557f)
+.twentyone: ; 8d57f (23:557f)
 	ld hl, $d
 	add hl, bc
 	ld e, [hl]
@@ -66805,7 +66845,7 @@
 	ld [hl], a
 	ret
 
-Function8d5b0: ; 8d5b0 (23:55b0)
+.twentytwo: ; 8d5b0 (23:55b0)
 	ld hl, $5
 	add hl, bc
 	ld a, [hl]
@@ -66841,7 +66881,7 @@
 	ld [hl], a
 	ret
 
-Function8d5e2: ; 8d5e2 (23:55e2)
+.twentythree: ; 8d5e2 (23:55e2)
 	ld hl, $4
 	add hl, bc
 	ld a, [hl]
@@ -66867,7 +66907,7 @@
 	call Function8d036
 	ret
 
-Function8d607: ; 8d607 (23:5607)
+.twentyfour: ; 8d607 (23:5607)
 	ld hl, $5
 	add hl, bc
 	ld a, [hl]
@@ -66897,15 +66937,15 @@
 	ld [hl], a
 	ret
 
-Function8d630: ; 8d630 (23:5630)
+.twentyseven: ; 8d630 (23:5630)
 	callba Function108bc7
 	ret
 
-Function8d637: ; 8d637 (23:5637)
+.twentyeight: ; 8d637 (23:5637)
 	callba Function108be0
 	ret
 
-Function8d63e: ; 8d63e (23:563e)
+.twentynine: ; 8d63e (23:563e)
 	ld a, [wcf65]
 	and a
 	jr nz, .asm_8d645
@@ -66930,7 +66970,7 @@
 	call Function8d120
 	ret
 
-Function8d666: ; 8d666 (23:5666)
+.thirty: ; 8d666 (23:5666)
 	ld hl, $c
 	add hl, bc
 	ld a, [hl]
@@ -66948,7 +66988,7 @@
 .asm_8d67f
 	ret
 
-Function8d680: ; 8d680 (23:5680)
+.thirtytwo: ; 8d680 (23:5680)
 	ld hl, $b
 	add hl, bc
 	ld d, [hl]
@@ -66972,7 +67012,7 @@
 	ld [hl], a
 	ret
 
-Function8d6a2: ; 8d6a2 (23:56a2)
+.thirtythree: ; 8d6a2 (23:56a2)
 	ld a, [wcf64]
 	cp $40
 	ret nz
@@ -66980,7 +67020,7 @@
 	call Function8d120
 	ret
 
-Function8d6ae: ; 8d6ae (23:56ae)
+.thirtyfour: ; 8d6ae (23:56ae)
 	ld hl, $5
 	add hl, bc
 	ld a, [hl]
@@ -66988,15 +67028,15 @@
 	ld [hl], a
 	ret
 
-Function8d6b7: ; 8d6b7 (23:56b7)
+.twentysix: ; 8d6b7 (23:56b7)
 	callba Function11d0b6
 	ret
 
-Function8d6be: ; 8d6be (23:56be)
+.thirtyone: ; 8d6be (23:56be)
 	callba Function49aa2
 	ret
 
-Function8d6c5: ; 8d6c5 (23:56c5)
+.anonymous_jumptable: ; 8d6c5 (23:56c5)
 	ld hl, [sp+$0]
 	ld e, [hl]
 	inc hl
@@ -67099,81 +67139,156 @@
 	dw Unknown_8d948
 ; 8d76a
 
-Unknown_8d76a: 	db $00,$20, $ff
-Unknown_8d76d: 	db $00,$08, $01,$08, $fe
-Unknown_8d772: 	db $3d,$08, $3e,$08, $fe
-Unknown_8d777: 	db $3f,$08, $40,$08, $fe
-Unknown_8d77c: 	db $00,$04, $01,$04, $fe
-Unknown_8d781: 	db $3d,$04, $3e,$04, $fe
-Unknown_8d786: 	db $3f,$04, $40,$04, $fe
-Unknown_8d78b: 	db $00,$08, $01,$08, $00,$08, $01,$48, $fe
-Unknown_8d794: 	db $63,$08, $64,$08, $63,$08, $64,$48, $fe
-Unknown_8d79d: 	db $65,$08, $66,$08, $65,$08, $66,$48, $fe
-Unknown_8d7a6: 	db $1e,$01, $1f,$01, $fe
-Unknown_8d7ab: 	db $20,$01, $fd,$01, $fe
-Unknown_8d7b0: 	db $21,$01, $fd,$01, $fe
-Unknown_8d7b5: 	db $81,$0c, $82,$01, $83,$01, $82,$04, $81,$0c, $82,$0c, $83,$04, $84,$20, $85,$03, $86,$03, $87,$04, $88,$04, $89,$04, $8a,$0a, $8b,$07, $ff
-Unknown_8d7d4: 	db $23,$03, $23,$83, $fe
-Unknown_8d7d9: 	db $24,$02, $25,$02, $26,$02, $25,$02, $fe
-Unknown_8d7e2: 	db $27,$07, $28,$07, $27,$87, $28,$47, $fe
-Unknown_8d7eb: 	db $29,$07, $2a,$07, $29,$07, $2b,$07, $fe
-Unknown_8d7f4: 	db $29,$07, $2c,$07, $2d,$07, $2c,$07, $29,$07, $ff
-Unknown_8d7ff: 	db $2e,$14, $ff
-Unknown_8d802: 	db $2f,$20, $ff
-Unknown_8d805: 	db $30,$20, $ff
-Unknown_8d808: 	db $30,$03, $31,$03, $30,$03, $31,$43, $fe
-Unknown_8d811: 	db $32,$04, $33,$04, $34,$04, $fc
-Unknown_8d818: 	db $35,$03, $36,$03, $fe
-Unknown_8d81d: 	db $37,$07, $38,$07, $fe
-Unknown_8d822: 	db $39,$20, $ff
-Unknown_8d825: 	db $3b,$02, $3a,$02, $3b,$02, $ff
-Unknown_8d82c: 	db $3c,$20, $ff
-Unknown_8d82f: 	db $41,$08, $42,$08, $41,$08, $42,$48, $fe
-                db $43,$08, $44,$08, $fe
-                db $45,$08, $46,$08, $fe
-                db $47,$08, $48,$08, $fe
-                db $49,$01, $49,$41, $49,$c1, $49,$81, $fe
-                db $4a,$20, $ff
-                db $4b,$20, $ff
-                db $4c,$20, $ff
-                db $4d,$20, $ff
-                db $4e,$03, $fd,$03, $fe
-Unknown_8d861: 	db $fd,$20, $ff
-Unknown_8d864: 	db $4f,$20, $ff
-Unknown_8d867: 	db $50,$02, $51,$10, $fd,$01, $52,$01, $fd,$01, $53,$01, $fc
-Unknown_8d874: 	db $54,$20, $ff
-Unknown_8d877: 	db $55,$20, $ff
-Unknown_8d87a: 	db $55,$60, $ff
-Unknown_8d87d: 	db $55,$a0, $ff
-Unknown_8d880: 	db $55,$e0, $ff
-Unknown_8d883: 	db $56,$0a, $57,$09, $58,$0a, $59,$0a, $58,$09, $5a,$0a, $fe
-Unknown_8d890: 	db $50,$02, $5b,$02, $50,$02, $5b,$42, $fe
-Unknown_8d899: 	db $5c,$02, $ff
-Unknown_8d89c: 	db $5d,$02, $ff
-Unknown_8d89f: 	db $5e,$02, $ff
-Unknown_8d8a2: 	db $5f,$02, $ff
-Unknown_8d8a5: 	db $60,$02, $ff
-Unknown_8d8a8: 	db $61,$02, $ff
-Unknown_8d8ab: 	db $62,$02, $ff
-Unknown_8d8ae: 	db $32,$03, $33,$03, $34,$03, $30,$03, $31,$03, $30,$03, $31,$43, $30,$03, $31,$03, $30,$03, $31,$43, $30,$03, $31,$03, $30,$03, $31,$43, $ff
-Unknown_8d8cd: 	db $30,$03, $31,$03, $30,$03, $31,$43, $30,$03, $31,$03, $30,$03, $31,$43, $30,$03, $31,$03, $30,$03, $31,$43, $32,$03, $33,$03, $34,$03, $fc
-Unknown_8d8ec: 	db $67,$03, $68,$03, $fe
-Unknown_8d8f1: 	db $6c,$03, $ff
-Unknown_8d8f4: 	db $6d,$03, $ff
-Unknown_8d8f7: 	db $69,$02, $6a,$02, $6b,$02, $fc
-Unknown_8d8fe: 	db $6e,$03, $6f,$03, $70,$03, $71,$03, $fe
-Unknown_8d907: 	db $71,$03, $6e,$07, $ff
-Unknown_8d90c: 	db $72,$20, $73,$07, $74,$07, $ff
-Unknown_8d913: 	db $75,$03, $ff
-Unknown_8d916: 	db $76,$03, $77,$03, $78,$07, $fc
-Unknown_8d91d: 	db $76,$43, $77,$43, $78,$47, $fc
-Unknown_8d924: 	db $76,$83, $77,$83, $78,$87, $fc
-Unknown_8d92b: 	db $76,$c3, $77,$c3, $78,$c7, $fc
-Unknown_8d932: 	db $79,$03, $7a,$03, $7b,$03, $7c,$07, $7d,$07, $ff
-Unknown_8d93d: 	db $7e,$03, $ff
-Unknown_8d940: 	db $fd,$00, $ff
-Unknown_8d943: 	db $7f,$08, $80,$08, $ff
-Unknown_8d948: 	db $7f,$48, $80,$48, $ff
+Unknown_8d76a: 	dw $2000
+                db -1
+Unknown_8d76d: 	dw $0800, $0801
+                db -2
+Unknown_8d772: 	dw $083d, $083e
+                db -2
+Unknown_8d777: 	dw $083f, $0840
+                db -2
+Unknown_8d77c: 	dw $0400, $0401
+                db -2
+Unknown_8d781: 	dw $043d, $043e
+                db -2
+Unknown_8d786: 	dw $043f, $0440
+                db -2
+Unknown_8d78b: 	dw $0800, $0801, $0800, $4801
+                db -2
+Unknown_8d794: 	dw $0863, $0864, $0863, $4864
+                db -2
+Unknown_8d79d: 	dw $0865, $0866, $0865, $4866
+                db -2
+Unknown_8d7a6: 	dw $011e, $011f
+                db -2
+Unknown_8d7ab: 	dw $0120, $01fd
+                db -2
+Unknown_8d7b0: 	dw $0121, $01fd
+                db -2
+Unknown_8d7b5: 	dw $0c81, $0182, $0183, $0482, $0c81, $0c82, $0483, $2084, $0385, $0386, $0487, $0488, $0489, $0a8a, $078b
+                db -1
+Unknown_8d7d4: 	dw $0323, $8323
+                db -2
+Unknown_8d7d9: 	dw $0224, $0225, $0226, $0225
+                db -2
+Unknown_8d7e2: 	dw $0727, $0728, $8727, $4728
+                db -2
+Unknown_8d7eb: 	dw $0729, $072a, $0729, $072b
+                db -2
+Unknown_8d7f4: 	dw $0729, $072c, $072d, $072c, $0729
+                db -1
+Unknown_8d7ff: 	dw $142e
+                db -1
+Unknown_8d802: 	dw $202f
+                db -1
+Unknown_8d805: 	dw $2030
+                db -1
+Unknown_8d808: 	dw $0330, $0331, $0330, $4331
+                db -2
+Unknown_8d811: 	dw $0432, $0433, $0434
+                db -4
+Unknown_8d818: 	dw $0335, $0336
+                db -2
+Unknown_8d81d: 	dw $0737, $0738
+                db -2
+Unknown_8d822: 	dw $2039
+                db -1
+Unknown_8d825: 	dw $023b, $023a, $023b
+                db -1
+Unknown_8d82c: 	dw $203c
+                db -1
+Unknown_8d82f: 	dw $0841, $0842, $0841, $4842
+                db -2
+                dw $0843, $0844
+                db -2
+                dw $0845, $0846
+                db -2
+                dw $0847, $0848
+                db -2
+                dw $0149, $4149, $c149, $8149
+                db -2
+                dw $204a
+                db -1
+                dw $204b
+                db -1
+                dw $204c
+                db -1
+                dw $204d
+                db -1
+                dw $034e, $03fd
+                db -2
+Unknown_8d861: 	dw $20fd
+                db -1
+Unknown_8d864: 	dw $204f
+                db -1
+Unknown_8d867: 	dw $0250, $1051, $01fd, $0152, $01fd, $0153
+                db -4
+Unknown_8d874: 	dw $2054
+                db -1
+Unknown_8d877: 	dw $2055
+                db -1
+Unknown_8d87a: 	dw $6055
+                db -1
+Unknown_8d87d: 	dw $a055
+                db -1
+Unknown_8d880: 	dw $e055
+                db -1
+Unknown_8d883: 	dw $0a56, $0957, $0a58, $0a59, $0958, $0a5a
+                db -2
+Unknown_8d890: 	dw $0250, $025b, $0250, $425b
+                db -2
+Unknown_8d899: 	dw $025c
+                db -1
+Unknown_8d89c: 	dw $025d
+                db -1
+Unknown_8d89f: 	dw $025e
+                db -1
+Unknown_8d8a2: 	dw $025f
+                db -1
+Unknown_8d8a5: 	dw $0260
+                db -1
+Unknown_8d8a8: 	dw $0261
+                db -1
+Unknown_8d8ab: 	dw $0262
+                db -1
+Unknown_8d8ae: 	dw $0332, $0333, $0334, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331
+                db -1
+Unknown_8d8cd: 	dw $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0332, $0333, $0334
+                db -4
+Unknown_8d8ec: 	dw $0367, $0368
+                db -2
+Unknown_8d8f1: 	dw $036c
+                db -1
+Unknown_8d8f4: 	dw $036d
+                db -1
+Unknown_8d8f7: 	dw $0269, $026a, $026b
+                db -4
+Unknown_8d8fe: 	dw $036e, $036f, $0370, $0371
+                db -2
+Unknown_8d907: 	dw $0371, $076e
+                db -1
+Unknown_8d90c: 	dw $2072, $0773, $0774
+                db -1
+Unknown_8d913: 	dw $0375
+                db -1
+Unknown_8d916: 	dw $0376, $0377, $0778
+                db -4
+Unknown_8d91d: 	dw $4376, $4377, $4778
+                db -4
+Unknown_8d924: 	dw $8376, $8377, $8778
+                db -4
+Unknown_8d92b: 	dw $c376, $c377, $c778
+                db -4
+Unknown_8d932: 	dw $0379, $037a, $037b, $077c, $077d
+                db -1
+Unknown_8d93d: 	dw $037e
+                db -1
+Unknown_8d940: 	dw $00fd
+                db -1
+Unknown_8d943: 	dw $087f, $0880
+                db -1
+Unknown_8d948: 	dw $487f, $4880
+                db -1
 ; 8d94d
 
 Unknown_8d94d: ; 8d94d
@@ -68398,6 +68513,7 @@
 ; 8e72a
 
 
+
 Function8e72a: ; 8e72a
 	add $10
 Function8e72c: ; 8e72c
@@ -68892,23 +69008,23 @@
 ; 8ea4a
 
 Function8ea4a: ; 8ea4a
-	ld hl, wc314
+	ld hl, wPartyMonMenuIconAnims
 	ld e, $6
 	ld a, [wcfa9]
 	ld d, a
-.asm_8ea53
+.loop
 	ld a, [hl]
 	and a
-	jr z, .asm_8ea69
+	jr z, .next
 	cp d
-	jr z, .asm_8ea5e
+	jr z, .loadwithtwo
 	ld a, $0
-	jr .asm_8ea60
+	jr .ok
 
-.asm_8ea5e
+.loadwithtwo
 	ld a, $2
 
-.asm_8ea60
+.ok
 	push hl
 	ld c, l
 	ld b, h
@@ -68917,21 +69033,21 @@
 	ld [hl], a
 	pop hl
 
-.asm_8ea69
+.next
 	ld bc, $0010
 	add hl, bc
 	dec e
-	jr nz, .asm_8ea53
+	jr nz, .loop
 	ret
 ; 8ea71
 
 Function8ea71: ; 8ea71
-	ld hl, wc314
+	ld hl, wPartyMonMenuIconAnims
 	ld e, $6
-.asm_8ea76
+.loop
 	ld a, [hl]
 	and a
-	jr z, .asm_8ea84
+	jr z, .zero
 	push hl
 	ld c, l
 	ld b, h
@@ -68939,16 +69055,16 @@
 	add hl, bc
 	ld [hl], $1
 	pop hl
-.asm_8ea84
+.zero
 	ld bc, $10
 	add hl, bc
 	dec e
-	jr nz, .asm_8ea76
+	jr nz, .loop
 	ret
 ; 8ea8c (23:6a8c)
 
 Function8ea8c: ; 8ea8c
-	ld hl, wc314
+	ld hl, wPartyMonMenuIconAnims
 	ld e, $6
 	ld a, [wd0e3]
 	ld d, a
@@ -69231,7 +69347,7 @@
 	dec a
 	ld c, a
 	ld b, 0
-	ld hl, Unknown_90627
+	ld hl, SpecialPhoneCallList
 	ld a, 6
 	call AddNTimes
 	ld a, [hli]
@@ -69277,7 +69393,7 @@
 	dec a
 	ld c, a
 	ld b, 0
-	ld hl, Unknown_90627
+	ld hl, SpecialPhoneCallList
 	ld a, 6
 	call AddNTimes
 	ret
@@ -69306,7 +69422,7 @@
 	and a
 	jr nz, .asm_901e7
 	ld a, b
-	ld [wdbf9], a
+	ld [wCurrentCaller], a
 	ld hl, PhoneContacts
 	ld bc, 12
 	call AddNTimes
@@ -69375,7 +69491,7 @@
 	nop
 	nop
 	ld a, e
-	ld [wdbf9], a
+	ld [wCurrentCaller], a
 	and a
 	jr nz, .asm_9021d
 	ld a, BANK(Unknown_90233)
@@ -69455,7 +69571,7 @@
 	ret
 
 Phone_CallerTextboxWithName: ; 90292 (24:4292)
-	ld a, [wdbf9]
+	ld a, [wCurrentCaller]
 	ld b, a
 	call Function90363
 	ret
@@ -69569,7 +69685,7 @@
 	ld de, SFX_CALL
 	call PlaySFX
 	call Phone_CallerTextbox
-	call DrawOnMap
+	call UpdateSprites
 	callba Function4d188
 	ret
 ; 90355
@@ -69602,8 +69718,8 @@
 
 Phone_CallerTextbox: ; 90375
 	hlcoord 0, 0
-	ld b, $2
-	ld c, $12
+	ld b, 2
+	ld c, SCREEN_WIDTH - 2
 	call TextBox
 	ret
 ; 90380
@@ -69613,13 +69729,13 @@
 	ld h, d
 	ld l, e
 	ld a, b
-	call Function9039a
-	call Function903a9
+	call GetCallerTrainerClass
+	call GetCallerName
 	ret
 
 Function9038a: ; 9038a (24:438a)
 	ld a, c
-	call Function9039a
+	call GetCallerTrainerClass
 	ld a, c
 	ret nz
 	ld a, b
@@ -69630,10 +69746,10 @@
 	ld c, $1
 	ret
 
-Function9039a: ; 9039a
+GetCallerTrainerClass: ; 9039a
 	push hl
-	ld hl, PhoneContacts
-	ld bc, 12
+	ld hl, PhoneContacts + 0 ; PHONE_CONTACT_TRAINER_CLASS
+	ld bc, 12 ; PHONE_TABLE_WIDTH
 	call AddNTimes
 	ld a, [hli]
 	ld b, [hl]
@@ -69643,12 +69759,12 @@
 ; 903a9
 
 
-Function903a9: ; 903a9 (24:43a9)
+GetCallerName: ; 903a9 (24:43a9)
 	ld a, c
 	and a
-	jr z, .asm_903c5
+	jr z, .NotTrainer
 
-	call Function90423
+	call Phone_GetTrainerName
 	push hl
 	push bc
 	call PlaceString
@@ -69656,17 +69772,17 @@
 	ld [bc], a
 	pop bc
 	pop hl
-	ld de, 20 + 3
+	ld de, SCREEN_WIDTH + 3
 	add hl, de
-	call Function9042e
+	call Phone_GetTrainerClassName
 	call PlaceString
 	ret
 
-.asm_903c5
+.NotTrainer
 	push hl
 	ld c, b
 	ld b, 0
-	ld hl, Unknown_903d6
+	ld hl, NonTrainerCallerNames
 rept 2
 	add hl, bc
 endr
@@ -69678,23 +69794,23 @@
 	ret
 ; 903d6 (24:43d6)
 
-Unknown_903d6: ; 903d6
-	dw String_903e2
-	dw String_903ed
-	dw String_90402
-	dw String_903f2
-	dw String_903f8
-	dw String_9040d
+NonTrainerCallerNames: ; 903d6
+	dw .none
+	dw .mom
+	dw .bikeshop
+	dw .bill
+	dw .elm
+	dw .buena
 
-String_903e2: db "----------@"
-String_903ed: db "MOM:@"
-String_903f2: db "BILL:@"
-String_903f8: db "PROF.ELM:@"
-String_90402: db "BIKE SHOP:@"
-String_9040d: db "BUENA:", $22, "   DISC JOCKEY@"
+.none: db "----------@"
+.mom: db "MOM:@"
+.bill: db "BILL:@"
+.elm: db "PROF.ELM:@"
+.bikeshop: db "BIKE SHOP:@"
+.buena: db "BUENA:", $22, "   DISC JOCKEY@"
 ; 90423
 
-Function90423: ; 90423 (24:4423)
+Phone_GetTrainerName: ; 90423 (24:4423)
 	push hl
 	push bc
 	callba GetTrainerName
@@ -69702,23 +69818,23 @@
 	pop hl
 	ret
 
-Function9042e: ; 9042e (24:442e)
+Phone_GetTrainerClassName: ; 9042e (24:442e)
 	push hl
 	push bc
-	callba Function3952d
+	callba GetTrainerClassName
 	pop bc
 	pop hl
 	ret
 
-Function90439: ; 90439
-	ld a, [wdbf9]
-	call Function9039a
+GetCallerLocation: ; 90439
+	ld a, [wCurrentCaller]
+	call GetCallerTrainerClass
 	ld d, c
 	ld e, b
 	push de
-	ld a, [wdbf9]
-	ld hl, PhoneContacts + 2
-	ld bc, 12
+	ld a, [wCurrentCaller]
+	ld hl, PhoneContacts + 2 ; PHONE_CONTACT_MAP_GROUP
+	ld bc, 12 ; PHONE_TABLE_WIDTH
 	call AddNTimes
 	ld b, [hl]
 	inc hl
@@ -69747,72 +69863,72 @@
 	phone 0, 2, OAKS_LAB,                       0, UnusedPhoneScript, 0, UnusedPhoneScript
 	phone 0, 3, N_A,                            7, BillPhoneScript1, 0, BillPhoneScript2
 	phone 0, 4, ELMS_LAB,                       7, ElmPhoneScript1, 0, ElmPhoneScript2
-	phone SCHOOLBOY, JACK1, NATIONAL_PARK,      7, UnknownScript_0xbd0d0, 7, UnknownScript_0xbd0fa
-	phone POKEFANF, BEVERLY1, NATIONAL_PARK,    7, UnknownScript_0xbd13f, 7, UnknownScript_0xbd158
-	phone SAILOR, HUEY1, OLIVINE_LIGHTHOUSE_2F, 7, UnknownScript_0xbd17c, 7, UnknownScript_0xbd1a9
+	phone SCHOOLBOY, JACK1, NATIONAL_PARK,      7, JackPhoneScript1, 7, JackPhoneScript2
+	phone POKEFANF, BEVERLY1, NATIONAL_PARK,    7, BeverlyPhoneScript1, 7, BeverlyPhoneScript2
+	phone SAILOR, HUEY1, OLIVINE_LIGHTHOUSE_2F, 7, HueyPhoneScript1, 7, HueyPhoneScript2
 	phone 0, 0, N_A,                            0, UnusedPhoneScript, 0, UnusedPhoneScript
 	phone 0, 0, N_A,                            0, UnusedPhoneScript, 0, UnusedPhoneScript
 	phone 0, 0, N_A,                            0, UnusedPhoneScript, 0, UnusedPhoneScript
-	phone COOLTRAINERM, GAVEN3, ROUTE_26,       7, UnknownScript_0xbd1da, 7, UnknownScript_0xbd204
-	phone COOLTRAINERF, BETH1, ROUTE_26,        7, UnknownScript_0xbd23d, 7, UnknownScript_0xbd267
-	phone BIRD_KEEPER, JOSE2, ROUTE_27,         7, UnknownScript_0xbd294, 7, UnknownScript_0xbd2cb
-	phone COOLTRAINERF, REENA1, ROUTE_27,       7, UnknownScript_0xbd31c, 7, UnknownScript_0xbd346
-	phone YOUNGSTER, JOEY1, ROUTE_30,           7, UnknownScript_0xbd373, 7, UnknownScript_0xbd3a0
-	phone BUG_CATCHER, WADE1, ROUTE_31,         7, UnknownScript_0xbd3d1, 7, UnknownScript_0xbd428
-	phone FISHER, RALPH1, ROUTE_32,             7, UnknownScript_0xbd4d2, 7, UnknownScript_0xbd509
-	phone PICNICKER, LIZ1, ROUTE_32,            7, UnknownScript_0xbd560, 7, UnknownScript_0xbd58d
-	phone HIKER, ANTHONY2, ROUTE_33,            7, UnknownScript_0xbd634, 7, UnknownScript_0xbd66b
-	phone CAMPER, TODD1, ROUTE_34,              7, UnknownScript_0xbd6c1, 7, UnknownScript_0xbd6f5
-	phone PICNICKER, GINA1, ROUTE_34,           7, UnknownScript_0xbd743, 7, UnknownScript_0xbd784
-	phone JUGGLER, IRWIN1, ROUTE_35,            7, UnknownScript_0xbd7e7, 7, UnknownScript_0xbd7fd
-	phone BUG_CATCHER, ARNIE1, ROUTE_35,        7, UnknownScript_0xbd813, 7, UnknownScript_0xbd84a
-	phone SCHOOLBOY, ALAN1, ROUTE_36,           7, UnknownScript_0xbd8a6, 7, UnknownScript_0xbd8dd
+	phone COOLTRAINERM, GAVEN3, ROUTE_26,       7, GavenPhoneScript1, 7, GavenPhoneScript2
+	phone COOLTRAINERF, BETH1, ROUTE_26,        7, BethPhoneScript1, 7, BethPhoneScript2
+	phone BIRD_KEEPER, JOSE2, ROUTE_27,         7, JosePhoneScript1, 7, JosePhoneScript2
+	phone COOLTRAINERF, REENA1, ROUTE_27,       7, ReenaPhoneScript1, 7, ReenaPhoneScript2
+	phone YOUNGSTER, JOEY1, ROUTE_30,           7, JoeyPhoneScript1, 7, JoeyPhoneScript2
+	phone BUG_CATCHER, WADE1, ROUTE_31,         7, WadePhoneScript1, 7, WadePhoneScript2
+	phone FISHER, RALPH1, ROUTE_32,             7, RalphPhoneScript1, 7, RalphPhoneScript2
+	phone PICNICKER, LIZ1, ROUTE_32,            7, LizPhoneScript1, 7, LizPhoneScript2
+	phone HIKER, ANTHONY2, ROUTE_33,            7, AnthonyPhoneScript1, 7, AnthonyPhoneScript2
+	phone CAMPER, TODD1, ROUTE_34,              7, ToddPhoneScript1, 7, ToddPhoneScript2
+	phone PICNICKER, GINA1, ROUTE_34,           7, GinaPhoneScript1, 7, GinaPhoneScript2
+	phone JUGGLER, IRWIN1, ROUTE_35,            7, IrwinPhoneScript1, 7, IrwinPhoneScript2
+	phone BUG_CATCHER, ARNIE1, ROUTE_35,        7, ArniePhoneScript1, 7, ArniePhoneScript2
+	phone SCHOOLBOY, ALAN1, ROUTE_36,           7, AlanPhoneScript1, 7, AlanPhoneScript2
 	phone 0, 0, N_A,                            0, UnusedPhoneScript, 0, UnusedPhoneScript
-	phone LASS, DANA1, ROUTE_38,                7, UnknownScript_0xbd930, 7, UnknownScript_0xbd967
-	phone SCHOOLBOY, CHAD1, ROUTE_38,           7, UnknownScript_0xbd9c6, 7, UnknownScript_0xbd9f0
-	phone POKEFANM, DEREK1, ROUTE_39,           7, UnknownScript_0xbda35, 7, UnknownScript_0xbda6e
-	phone FISHER, TULLY1, ROUTE_42,             7, UnknownScript_0xbdaac, 7, UnknownScript_0xbdae3
-	phone POKEMANIAC, BRENT1, ROUTE_43,         7, UnknownScript_0xbdb36, 7, UnknownScript_0xbdb60
-	phone PICNICKER, TIFFANY3, ROUTE_43,        7, UnknownScript_0xbdb99, 7, UnknownScript_0xbdbd0
-	phone BIRD_KEEPER, VANCE1, ROUTE_44,        7, UnknownScript_0xbdc73, 7, UnknownScript_0xbdc9d
-	phone FISHER, WILTON1, ROUTE_44,            7, UnknownScript_0xbdcce, 7, UnknownScript_0xbdd05
-	phone BLACKBELT_T, KENJI3, ROUTE_45,        7, UnknownScript_0xbdd71, 7, UnknownScript_0xbdd7d
-	phone HIKER, PARRY1, ROUTE_45,              7, UnknownScript_0xbdd89, 7, UnknownScript_0xbddb3
-	phone PICNICKER, ERIN1, ROUTE_46,           7, UnknownScript_0xbdde4, 7, UnknownScript_0xbde0e
-	phone 0, 5, GOLDENROD_DEPT_STORE_ROOF,      7, UnknownScript_0xa0b14, 7, UnknownScript_0xa0b26
+	phone LASS, DANA1, ROUTE_38,                7, DanaPhoneScript1, 7, DanaPhoneScript2
+	phone SCHOOLBOY, CHAD1, ROUTE_38,           7, ChadPhoneScript1, 7, ChadPhoneScript2
+	phone POKEFANM, DEREK1, ROUTE_39,           7, DerekPhoneScript1, 7, DerekPhoneScript2
+	phone FISHER, TULLY1, ROUTE_42,             7, TullyPhoneScript1, 7, TullyPhoneScript2
+	phone POKEMANIAC, BRENT1, ROUTE_43,         7, BrentPhoneScript1, 7, BrentPhoneScript2
+	phone PICNICKER, TIFFANY3, ROUTE_43,        7, TiffanyPhoneScript1, 7, TiffanyPhoneScript2
+	phone BIRD_KEEPER, VANCE1, ROUTE_44,        7, VancePhoneScript1, 7, VancePhoneScript2
+	phone FISHER, WILTON1, ROUTE_44,            7, WiltonPhoneScript1, 7, WiltonPhoneScript2
+	phone BLACKBELT_T, KENJI3, ROUTE_45,        7, KenjiPhoneScript1, 7, KenjiPhoneScript2
+	phone HIKER, PARRY1, ROUTE_45,              7, ParryPhoneScript1, 7, ParryPhoneScript2
+	phone PICNICKER, ERIN1, ROUTE_46,           7, ErinPhoneScript1, 7, ErinPhoneScript2
+	phone 0, 5, GOLDENROD_DEPT_STORE_ROOF,      7, BuenaPhoneScript1, 7, BuenaPhoneScript2
 ; 90627
 
-Unknown_90627: ; 90627
+SpecialPhoneCallList: ; 90627
 	dw Function90188
-	db $04
+	db 4
 	dbw BANK(ElmPhoneScript2), ElmPhoneScript2
 
 	dw Function90188
-	db $04
+	db 4
 	dbw BANK(ElmPhoneScript2), ElmPhoneScript2
 
 	dw Function90188
-	db $04
+	db 4
 	dbw BANK(ElmPhoneScript2), ElmPhoneScript2
 
 	dw Function90188
-	db $04
+	db 4
 	dbw BANK(ElmPhoneScript2), ElmPhoneScript2
 
 	dw Function90197
-	db $04
+	db 4
 	dbw BANK(ElmPhoneScript2), ElmPhoneScript2
 
 	dw Function90197
-	db $02
-	dbw BANK(UnknownScript_0xa0b09), UnknownScript_0xa0b09 ; bike shop
+	db 2
+	dbw BANK(BikeShopPhoneScript), BikeShopPhoneScript ; bike shop
 
 	dw Function90197
-	db $01
+	db 1
 	dbw BANK(MomPhoneLectureScript), MomPhoneLectureScript
 
 	dw Function90188
-	db $04
+	db 4
 	dbw BANK(ElmPhoneScript2), ElmPhoneScript2
 ; 90657
 
@@ -70286,7 +70402,7 @@
 	call Function90993
 	jr nc, .asm_9096a
 	call ExitMenu
-	call DrawOnMap
+	call UpdateSprites
 	ld hl, UnknownText_0x90a44
 	call PrintText
 	call YesNoBox
@@ -70420,7 +70536,7 @@
 	ld bc, $0312
 	call ClearBox
 	ld hl, UnknownText_0x90a6c
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	ret
 ; 90a6c
 
@@ -70451,7 +70567,7 @@
 	ld bc, $0312
 	call ClearBox
 	ld hl, UnknownText_0x90aa0
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	ret
 ; 90aa0
 
@@ -70479,7 +70595,7 @@
 	ld bc, $0312
 	call ClearBox
 	ld hl, UnknownText_0x90acc
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	ret
 ; 90acc
 
@@ -71142,7 +71258,7 @@
 	callba Function1dd6bb
 	ld hl, UnknownText_0x90faf
 	bccoord 6, 6
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	ret
 ; 90fa8 (24:4fa8)
 
@@ -71973,7 +72089,7 @@
 
 
 Function914ab: ; 914ab (24:54ab)
-	ld hl, wc324
+	ld hl, wPartyMonMenuIconAnims + 16
 	ld bc, $90
 	xor a
 	call ByteFill
@@ -72232,17 +72348,6 @@
 	ret
 
 
-OAKS_POKEMON_TALK EQU 0
-POKEDEX_SHOW      EQU 1
-POKEMON_MUSIC     EQU 2
-LUCKY_CHANNEL     EQU 3
-BUENAS_PASSWORD   EQU 4
-PLACES_AND_PEOPLE EQU 5
-LETS_ALL_SING     EQU 6
-ROCKET_RADIO      EQU 7
-POKE_FLUTE_RADIO  EQU 8
-UNOWN_RADIO       EQU 9
-EVOLUTION_RADIO   EQU 10
 
 Function91753: ; 91753 (24:5753)
 	xor a ; OAKS_POKEMON_TALK
@@ -72378,7 +72483,7 @@
 Function91853: ; 91853
 	ret
 
-Function91854: ; 91854 (24:5854)
+RadioMusicNone: ; 91854 (24:5854)
 	push de
 	ld a, e
 	ld [wc6dc], a
@@ -72661,11 +72766,11 @@
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
-	ld de, .asm_91a9b
+	ld de, .jump_return
 	push de
 	jp [hl]
 
-.asm_91a9b
+.jump_return
 	push de
 	hlcoord 0, 12
 	ld bc, $0412
@@ -72753,8 +72858,8 @@
 	ld a, [hl]
 	and A_BUTTON
 	jr nz, .pressedA
-	call Function91b73
-	call Function91c17
+	call FlyMapScroll
+	call GetMapCursorCoordinates
 	callba Function8cf69
 	call DelayFrame
 	jr .loop
@@ -72788,7 +72893,7 @@
 	ret
 ; 91b73
 
-Function91b73: ; 91b73
+FlyMapScroll: ; 91b73
 	ld a, [StartFlypoint]
 	ld e, a
 	ld a, [EndFlypoint]
@@ -72795,43 +72900,43 @@
 	ld d, a
 	ld hl, $ffa9
 	ld a, [hl]
-	and $40
-	jr nz, .asm_91b89
+	and D_UP
+	jr nz, .ScrollNext
 	ld a, [hl]
-	and $80
-	jr nz, .asm_91b9b
+	and D_DOWN
+	jr nz, .ScrollPrev
 	ret
 
-.asm_91b89
+.ScrollNext
 	ld hl, DefaultFlypoint
 	ld a, [hl]
 	cp d
-	jr nz, .asm_91b93
+	jr nz, .NotAtEndYet
 	ld a, e
 	dec a
 	ld [hl], a
 
-.asm_91b93
+.NotAtEndYet
 	inc [hl]
-	call Function91c3c
-	jr z, .asm_91b89
-	jr .asm_91bab
+	call CheckIfVisitedFlypoint
+	jr z, .ScrollNext
+	jr .Finally
 
-.asm_91b9b
+.ScrollPrev
 	ld hl, DefaultFlypoint
 	ld a, [hl]
 	cp e
-	jr nz, .asm_91ba5
+	jr nz, .NotAtStartYet
 	ld a, d
 	inc a
 	ld [hl], a
 
-.asm_91ba5
+.NotAtStartYet
 	dec [hl]
-	call Function91c3c
-	jr z, .asm_91b9b
+	call CheckIfVisitedFlypoint
+	jr z, .ScrollPrev
 
-.asm_91bab
+.Finally
 	call TownMapBubble
 	call WaitBGMap
 	xor a
@@ -72913,7 +73018,7 @@
 	ret
 ; 91c17
 
-Function91c17: ; 91c17
+GetMapCursorCoordinates: ; 91c17
 	ld a, [DefaultFlypoint]
 	ld l, a
 	ld h, $0
@@ -72935,7 +73040,8 @@
 	ret
 ; 91c3c
 
-Function91c3c: ; 91c3c
+CheckIfVisitedFlypoint: ; 91c3c
+; Check if the flypoint loaded in [hl] has been visited yet.
 	push bc
 	push de
 	push hl
@@ -72969,10 +73075,12 @@
 	const_def
 
 flypoint: MACRO
-\1\@FLY   EQUS "FLY_\1"
-\1\@SPAWN EQUS "SPAWN_\1"
-	const \1\@FLY
-	db \2, \1\@SPAWN
+; \1\@FLY   EQUS "FLY_\1"
+; \1\@SPAWN EQUS "SPAWN_\1"
+	; const \1\@FLY
+	; db \2, \1\@SPAWN
+	const FLY_\1
+	db \2, SPAWN_\1
 ENDM
 
 ; Johto
@@ -73673,26 +73781,26 @@
 	ld b, $2
 	call GetSGBLayout
 	call Function32f9
-.asm_9236e
+.loop
 	call Functiona57
 	ld hl, hJoyPressed
 	ld a, [hl]
 	and B_BUTTON
-	jr nz, .asm_9238f
+	jr nz, .pressedB
 	ld a, [hl]
 	and A_BUTTON
-	jr nz, .asm_92393
+	jr nz, .pressedA
 	call Function923b8
-	call Function91c17
+	call GetMapCursorCoordinates
 	callba Function8cf69
 	call DelayFrame
-	jr .asm_9236e
+	jr .loop
 
-.asm_9238f
-	ld a, $ff
+.pressedB
+	ld a, -1
 	jr .asm_9239f
 
-.asm_92393
+.pressedA
 	ld a, [DefaultFlypoint]
 	ld l, a
 	ld h, 0
@@ -75513,11 +75621,11 @@
 ; 9311a (24:711a)
 
 UnknownText_9311a: ; 9311a
-	TX_FAR UnknownText_0x1c5079
+	text_jump UnknownText_0x1c5079
 	db "@"
 
 UnknownText_9311f: ; 9311f
-	TX_FAR UnknownText_0x1c5092
+	text_jump UnknownText_0x1c5092
 	db "@"
 
 Function93124: ; 93124 (24:7124)
@@ -76277,7 +76385,7 @@
 	callba Function1060ef
 
 	xor a
-	ld [wd22e], a
+	ld [TempWildMonSpecies], a
 	ld [CurPartyLevel], a
 
 	ld hl, TreeMonMaps
@@ -76305,7 +76413,7 @@
 RockMonEncounter: ; b8219
 
 	xor a
-	ld [wd22e], a
+	ld [TempWildMonSpecies], a
 	ld [CurPartyLevel], a
 
 	ld hl, RockMonMaps
@@ -76630,7 +76738,7 @@
 	jr z, NoTreeMon
 
 	ld a, [hli]
-	ld [wd22e], a
+	ld [TempWildMonSpecies], a
 	ld a, [hl]
 	ld [CurPartyLevel], a
 	scf
@@ -76638,7 +76746,7 @@
 
 NoTreeMon: ; b843b
 	xor a
-	ld [wd22e], a
+	ld [TempWildMonSpecies], a
 	ld [CurPartyLevel], a
 	ret
 ; b8443
@@ -84869,12 +84977,12 @@
 
 
 
-Functione46ed: ; e46ed (39:46ed)
+GameFreakLogoJumper: ; e46ed (39:46ed)
 	ld hl, $b
 	add hl, bc
 	ld e, [hl]
 	ld d, 0
-	ld hl, Jumptable_e46fd
+	ld hl, GameFreakLogoScenes
 rept 2
 	add hl, de
 endr
@@ -84883,21 +84991,21 @@
 	ld l, a
 	jp [hl]
 
-Jumptable_e46fd: ; e46fd (39:46fd)
-	dw Functione4707
-	dw Functione470d
-	dw Functione4759
-	dw Functione4776
-	dw Functione47ab
+GameFreakLogoScenes: ; e46fd (39:46fd)
+	dw GameFreakLogoScene1
+	dw GameFreakLogoScene2
+	dw GameFreakLogoScene3
+	dw GameFreakLogoScene4
+	dw GameFreakLogoScene5
 
 
-Functione4707: ; e4707 (39:4707)
+GameFreakLogoScene1: ; e4707 (39:4707)
 	ld hl, $b
 	add hl, bc
 	inc [hl]
 	ret
 
-Functione470d: ; e470d (39:470d)
+GameFreakLogoScene2: ; e470d (39:470d)
 	ld hl, $c
 	add hl, bc
 	ld a, [hl]
@@ -84942,7 +85050,7 @@
 	call PlaySFX
 	ret
 
-Functione4759: ; e4759 (39:4759)
+GameFreakLogoScene3: ; e4759 (39:4759)
 	ld hl, $d
 	add hl, bc
 	ld a, [hl]
@@ -84961,7 +85069,7 @@
 	call PlaySFX
 	ret
 
-Functione4776: ; e4776 (39:4776)
+GameFreakLogoScene4: ; e4776 (39:4776)
 	ld hl, $d
 	add hl, bc
 	ld a, [hl]
@@ -84972,7 +85080,7 @@
 	srl a
 	ld e, a
 	ld d, $0
-	ld hl, Unknown_e47ac
+	ld hl, GameFreakLogoPalettes
 rept 2
 	add hl, de
 endr
@@ -84995,11 +85103,11 @@
 	inc [hl]
 	call Functione4687
 
-Functione47ab: ; e47ab (39:47ab)
+GameFreakLogoScene5: ; e47ab (39:47ab)
 	ret
 ; e47ac (39:47ac)
 
-Unknown_e47ac: ; e47ac
+GameFreakLogoPalettes: ; e47ac
 ; Ditto's color as it turns into the Game Freak logo.
 ; Fade from pink to orange.
 ; One color per step.
@@ -85025,7 +85133,7 @@
 INCBIN "gfx/splash/logo.1bpp"
 ; e48ac
 
-Functione48ac: ; e48ac
+CrystalIntro: ; e48ac
 	ld a, [rSVBK]
 	push af
 	ld a, $5
@@ -85035,25 +85143,24 @@
 	ld a, [hVBlank]
 	push af
 	call Functione4901
-
-Functione48bc: ; e48bc
+.loop: ; e48bc
 	call Functiona57
 	ld a, [$ffa9]
 	and $f
-	jr nz, .asm_e48db
+	jr nz, .ShutOffMusic
 	ld a, [wcf63]
 	bit 7, a
-	jr nz, .asm_e48e1
-	call Functione490f
+	jr nz, .done
+	call IntroSceneJumper
 	callba Function8cf69
 	call DelayFrame
-	jp Functione48bc
+	jp .loop
 
-.asm_e48db
+.ShutOffMusic
 	ld de, MUSIC_NONE
 	call PlayMusic
 
-.asm_e48e1
+.done
 	call WhiteBGMap
 	call ClearSprites
 	call ClearTileMap
@@ -85084,7 +85191,7 @@
 	ret
 ; e490f
 
-Functione490f: ; e490f
+IntroSceneJumper: ; e490f
 	ld a, [wcf63]
 	ld e, a
 	ld d, 0
@@ -87754,7 +87861,7 @@
 	call LowVolume
 	call WhiteBGMap
 	call ClearTileMap
-	call DrawOnMap
+	call UpdateSprites
 	call ClearSprites
 	ld a, [wPokedexStatus]
 	push af
@@ -89252,7 +89359,7 @@
 	inc [hl]
 .ok
 	ld a, 1
-	ld [wdbf9], a
+	ld [wCurrentCaller], a
 	ld bc, wd03f
 	ld hl, 0
 	add hl, bc
@@ -94654,4 +94761,4 @@
 INCBIN "misc/stadium2_2.bin"
 ELSE
 INCBIN "misc/stadium2_1.bin"
-ENDC
+ENDC
\ No newline at end of file
--- a/maps/AzaleaGym.asm
+++ b/maps/AzaleaGym.asm
@@ -27,7 +27,7 @@
 	scall AzaleaGymTriggerRockets
 .FightDone
 	checkevent EVENT_GOT_TM49_FURY_CUTTER
-	iftrue UnknownScript_0x18ec6d
+	iftrue .GotFuryCutter
 	setevent EVENT_BEAT_TWINS_AMY_AND_MAY
 	setevent EVENT_BEAT_BUG_CATCHER_BENNY
 	setevent EVENT_BEAT_BUG_CATCHER_AL
@@ -35,7 +35,7 @@
 	writetext UnknownText_0x18ee2b
 	keeptextopen
 	verbosegiveitem TM_FURY_CUTTER, 1
-	iffalse UnknownScript_0x18ec71
+	iffalse .NoRoomForFuryCutter
 	setevent EVENT_GOT_TM49_FURY_CUTTER
 	writetext UnknownText_0x18eefa
 	closetext
@@ -42,10 +42,10 @@
 	loadmovesprites
 	end
 
-UnknownScript_0x18ec6d:
+.GotFuryCutter:
 	writetext UnknownText_0x18ef98
 	closetext
-UnknownScript_0x18ec71:
+.NoRoomForFuryCutter:
 	loadmovesprites
 	end
 
@@ -61,9 +61,9 @@
 	jumpstd radiotowerrockets
 
 TrainerTwinsAmyandmay1:
-	trainer EVENT_BEAT_TWINS_AMY_AND_MAY, TWINS, AMYANDMAY1, TwinsAmyandmay1SeenText, TwinsAmyandmay1BeatenText, $0000, TwinsAmyandmay1Script
+	trainer EVENT_BEAT_TWINS_AMY_AND_MAY, TWINS, AMYANDMAY1, TwinsAmyandmay1SeenText, TwinsAmyandmay1BeatenText, $0000, .AfterScript
 
-TwinsAmyandmay1Script:
+.AfterScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x18f1fc
@@ -72,9 +72,9 @@
 	end
 
 TrainerTwinsAmyandmay2:
-	trainer EVENT_BEAT_TWINS_AMY_AND_MAY, TWINS, AMYANDMAY2, TwinsAmyandmay2SeenText, TwinsAmyandmay2BeatenText, $0000, TwinsAmyandmay2Script
+	trainer EVENT_BEAT_TWINS_AMY_AND_MAY, TWINS, AMYANDMAY2, TwinsAmyandmay2SeenText, TwinsAmyandmay2BeatenText, $0000, .AfterScript
 
-TwinsAmyandmay2Script:
+.AfterScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x18f269
@@ -83,9 +83,9 @@
 	end
 
 TrainerBug_catcherBug_catcher_benny:
-	trainer EVENT_BEAT_BUG_CATCHER_BENNY, BUG_CATCHER, BUG_CATCHER_BENNY, Bug_catcherBug_catcher_bennySeenText, Bug_catcherBug_catcher_bennyBeatenText, $0000, Bug_catcherBug_catcher_bennyScript
+	trainer EVENT_BEAT_BUG_CATCHER_BENNY, BUG_CATCHER, BUG_CATCHER_BENNY, Bug_catcherBug_catcher_bennySeenText, Bug_catcherBug_catcher_bennyBeatenText, $0000, .AfterScript
 
-Bug_catcherBug_catcher_bennyScript:
+.AfterScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x18f053
@@ -94,9 +94,9 @@
 	end
 
 TrainerBug_catcherAl:
-	trainer EVENT_BEAT_BUG_CATCHER_AL, BUG_CATCHER, AL, Bug_catcherAlSeenText, Bug_catcherAlBeatenText, $0000, Bug_catcherAlScript
+	trainer EVENT_BEAT_BUG_CATCHER_AL, BUG_CATCHER, AL, Bug_catcherAlSeenText, Bug_catcherAlBeatenText, $0000, .AfterScript
 
-Bug_catcherAlScript:
+.AfterScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x18f0d3
@@ -105,9 +105,9 @@
 	end
 
 TrainerBug_catcherJosh:
-	trainer EVENT_BEAT_BUG_CATCHER_JOSH, BUG_CATCHER, JOSH, Bug_catcherJoshSeenText, Bug_catcherJoshBeatenText, $0000, Bug_catcherJoshScript
+	trainer EVENT_BEAT_BUG_CATCHER_JOSH, BUG_CATCHER, JOSH, Bug_catcherJoshSeenText, Bug_catcherJoshBeatenText, $0000, .AfterScript
 
-Bug_catcherJoshScript:
+.AfterScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x18f17e
@@ -358,8 +358,8 @@
 
 .Warps:
 	db 2
-	warp_def $f, $4, 5, GROUP_AZALEA_TOWN, MAP_AZALEA_TOWN
-	warp_def $f, $5, 5, GROUP_AZALEA_TOWN, MAP_AZALEA_TOWN
+	warp_def $f, $4, 5, AZALEA_TOWN
+	warp_def $f, $5, 5, AZALEA_TOWN
 
 .XYTriggers:
 	db 0
@@ -371,10 +371,10 @@
 
 .PersonEvents:
 	db 7
-	person_event SPRITE_BUGSY, 11, 9, OW_DOWN | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, BugsyScript_0x18ec1e, -1
-	person_event SPRITE_BUG_CATCHER, 7, 9, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 2, TrainerBug_catcherBug_catcher_benny, -1
-	person_event SPRITE_BUG_CATCHER, 12, 12, OW_UP | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 3, TrainerBug_catcherAl, -1
-	person_event SPRITE_BUG_CATCHER, 6, 4, OW_UP | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 3, TrainerBug_catcherJosh, -1
-	person_event SPRITE_TWIN, 14, 8, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 1, TrainerTwinsAmyandmay1, -1
-	person_event SPRITE_TWIN, 14, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 1, TrainerTwinsAmyandmay2, -1
-	person_event SPRITE_GYM_GUY, 17, 11, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, AzaleaGymGuyScript, -1
+	person_event SPRITE_BUGSY, 11, 9, $3, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, BugsyScript_0x18ec1e, -1
+	person_event SPRITE_BUG_CATCHER, 7, 9, $a, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 2, TrainerBug_catcherBug_catcher_benny, -1
+	person_event SPRITE_BUG_CATCHER, 12, 12, $6, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 3, TrainerBug_catcherAl, -1
+	person_event SPRITE_BUG_CATCHER, 6, 4, $6, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 3, TrainerBug_catcherJosh, -1
+	person_event SPRITE_TWIN, 14, 8, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 1, TrainerTwinsAmyandmay1, -1
+	person_event SPRITE_TWIN, 14, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 1, TrainerTwinsAmyandmay2, -1
+	person_event SPRITE_GYM_GUY, 17, 11, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, AzaleaGymGuyScript, -1
--- a/maps/AzaleaMart.asm
+++ b/maps/AzaleaMart.asm
@@ -46,8 +46,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 3, GROUP_AZALEA_TOWN, MAP_AZALEA_TOWN
-	warp_def $7, $3, 3, GROUP_AZALEA_TOWN, MAP_AZALEA_TOWN
+	warp_def $7, $2, 3, AZALEA_TOWN
+	warp_def $7, $3, 3, AZALEA_TOWN
 
 .XYTriggers:
 	db 0
@@ -57,6 +57,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 7, 5, OW_LEFT | $1, $0, -1, -1, $0, 0, ClerkScript_0x18e040, -1
-	person_event SPRITE_COOLTRAINER_M, 9, 6, OW_UP | $3, $0, -1, -1, $0, 0, CooltrainerMScript_0x18e047, -1
-	person_event SPRITE_BUG_CATCHER, 6, 11, OW_UP | $1, $2, -1, -1, (PAL_OW_RED << 4) | $80, 0, BugCatcherScript_0x18e04a, -1
+	person_event SPRITE_CLERK, 7, 5, $9, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x18e040, -1
+	person_event SPRITE_COOLTRAINER_M, 9, 6, $7, 0, 0, -1, -1, 0, 0, 0, CooltrainerMScript_0x18e047, -1
+	person_event SPRITE_BUG_CATCHER, 6, 11, $5, 0, 2, -1, -1, 8 + PAL_OW_RED, 0, 0, BugCatcherScript_0x18e04a, -1
--- a/maps/AzaleaPokeCenter1F.asm
+++ b/maps/AzaleaPokeCenter1F.asm
@@ -78,9 +78,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $3, 1, GROUP_AZALEA_TOWN, MAP_AZALEA_TOWN
-	warp_def $7, $4, 1, GROUP_AZALEA_TOWN, MAP_AZALEA_TOWN
-	warp_def $7, $0, 1, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
+	warp_def $7, $3, 1, AZALEA_TOWN
+	warp_def $7, $4, 1, AZALEA_TOWN
+	warp_def $7, $0, 1, POKECENTER_2F
 
 .XYTriggers:
 	db 0
@@ -90,7 +90,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_NURSE, 5, 7, OW_UP | $2, $0, -1, -1, $0, 0, NurseScript_0x18db28, -1
-	person_event SPRITE_GENTLEMAN, 10, 13, OW_UP | $0, $10, -1, -1, $0, 0, GentlemanScript_0x18db2b, -1
-	person_event SPRITE_FISHING_GURU, 5, 10, OW_UP | $2, $0, -1, -1, $0, 0, FishingGuruScript_0x18db2e, -1
-	person_event SPRITE_POKEFAN_F, 8, 5, OW_DOWN | $2, $21, -1, -1, $0, 0, PokefanFScript_0x18db31, -1
+	person_event SPRITE_NURSE, 5, 7, $6, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x18db28, -1
+	person_event SPRITE_GENTLEMAN, 10, 13, $4, 1, 0, -1, -1, 0, 0, 0, GentlemanScript_0x18db2b, -1
+	person_event SPRITE_FISHING_GURU, 5, 10, $6, 0, 0, -1, -1, 0, 0, 0, FishingGuruScript_0x18db2e, -1
+	person_event SPRITE_POKEFAN_F, 8, 5, $2, 2, 1, -1, -1, 0, 0, 0, PokefanFScript_0x18db31, -1
--- a/maps/AzaleaTown.asm
+++ b/maps/AzaleaTown.asm
@@ -452,14 +452,14 @@
 
 .Warps:
 	db 8
-	warp_def $9, $f, 1, GROUP_AZALEA_POKECENTER_1F, MAP_AZALEA_POKECENTER_1F
-	warp_def $d, $15, 1, GROUP_CHARCOAL_KILN, MAP_CHARCOAL_KILN
-	warp_def $5, $15, 2, GROUP_AZALEA_MART, MAP_AZALEA_MART
-	warp_def $5, $9, 1, GROUP_KURTS_HOUSE, MAP_KURTS_HOUSE
-	warp_def $f, $a, 1, GROUP_AZALEA_GYM, MAP_AZALEA_GYM
-	warp_def $7, $1f, 1, GROUP_SLOWPOKE_WELL_B1F, MAP_SLOWPOKE_WELL_B1F
-	warp_def $a, $2, 3, GROUP_ILEX_FOREST_AZALEA_GATE, MAP_ILEX_FOREST_AZALEA_GATE
-	warp_def $b, $2, 4, GROUP_ILEX_FOREST_AZALEA_GATE, MAP_ILEX_FOREST_AZALEA_GATE
+	warp_def $9, $f, 1, AZALEA_POKECENTER_1F
+	warp_def $d, $15, 1, CHARCOAL_KILN
+	warp_def $5, $15, 2, AZALEA_MART
+	warp_def $5, $9, 1, KURTS_HOUSE
+	warp_def $f, $a, 1, AZALEA_GYM
+	warp_def $7, $1f, 1, SLOWPOKE_WELL_B1F
+	warp_def $a, $2, 3, ILEX_FOREST_AZALEA_GATE
+	warp_def $b, $2, 4, ILEX_FOREST_AZALEA_GATE
 
 .XYTriggers:
 	db 3
@@ -481,15 +481,15 @@
 
 .PersonEvents:
 	db 12
-	person_event SPRITE_AZALEA_ROCKET, 13, 35, OW_UP | $2, $0, -1, -1, $0, 0, AzaleaRocketScript_0x1980ab, EVENT_AZALEA_TOWN_SLOWPOKETAIL_ROCKET
-	person_event SPRITE_GRAMPS, 13, 25, OW_DOWN | $2, $21, -1, -1, $0, 0, GrampsScript_0x1980b1, -1
-	person_event SPRITE_TEACHER, 17, 19, OW_UP | $0, $20, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, TeacherScript_0x1980c5, -1
-	person_event SPRITE_YOUNGSTER, 13, 11, OW_UP | $1, $1, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, YoungsterScript_0x1980c8, -1
-	person_event SPRITE_SLOWPOKE, 21, 12, OW_DOWN | $1, $0, -1, -1, $0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES
-	person_event SPRITE_SLOWPOKE, 13, 22, OW_DOWN | $1, $0, -1, -1, $0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES
-	person_event SPRITE_SLOWPOKE, 13, 33, OW_DOWN | $1, $0, -1, -1, $0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES
-	person_event SPRITE_SLOWPOKE, 19, 19, OW_DOWN | $1, $0, -1, -1, $0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES
-	person_event SPRITE_FRUIT_TREE, 6, 12, OW_DOWN | $1, $0, -1, -1, $0, 0, WhiteApricornTree, -1
-	person_event SPRITE_AZALEA_ROCKET, 14, 15, OW_LEFT | $0, $0, -1, -1, $0, 0, ObjectEvent, EVENT_RIVAL_AZALEA_TOWN
-	person_event SPRITE_AZALEA_ROCKET, 20, 14, OW_UP | $2, $0, -1, -1, $0, 0, AzaleaRocketScript_0x1980ae, EVENT_SLOWPOKE_WELL_ROCKETS
-	person_event SPRITE_KURT_OUTSIDE, 9, 10, OW_LEFT | $0, $0, -1, -1, $0, 0, KurtOutsideScript_0x19810c, EVENT_AZALEA_TOWN_KURT
+	person_event SPRITE_AZALEA_ROCKET, 13, 35, $6, 0, 0, -1, -1, 0, 0, 0, AzaleaRocketScript_0x1980ab, EVENT_AZALEA_TOWN_SLOWPOKETAIL_ROCKET
+	person_event SPRITE_GRAMPS, 13, 25, $2, 2, 1, -1, -1, 0, 0, 0, GrampsScript_0x1980b1, -1
+	person_event SPRITE_TEACHER, 17, 19, $4, 2, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, TeacherScript_0x1980c5, -1
+	person_event SPRITE_YOUNGSTER, 13, 11, $5, 0, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 0, YoungsterScript_0x1980c8, -1
+	person_event SPRITE_SLOWPOKE, 21, 12, $1, 0, 0, -1, -1, 0, 0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES
+	person_event SPRITE_SLOWPOKE, 13, 22, $1, 0, 0, -1, -1, 0, 0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES
+	person_event SPRITE_SLOWPOKE, 13, 33, $1, 0, 0, -1, -1, 0, 0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES
+	person_event SPRITE_SLOWPOKE, 19, 19, $1, 0, 0, -1, -1, 0, 0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES
+	person_event SPRITE_FRUIT_TREE, 6, 12, $1, 0, 0, -1, -1, 0, 0, 0, WhiteApricornTree, -1
+	person_event SPRITE_AZALEA_ROCKET, 14, 15, $8, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_AZALEA_TOWN
+	person_event SPRITE_AZALEA_ROCKET, 20, 14, $6, 0, 0, -1, -1, 0, 0, 0, AzaleaRocketScript_0x1980ae, EVENT_SLOWPOKE_WELL_ROCKETS
+	person_event SPRITE_KURT_OUTSIDE, 9, 10, $8, 0, 0, -1, -1, 0, 0, 0, KurtOutsideScript_0x19810c, EVENT_AZALEA_TOWN_KURT
--- a/maps/BattleTower1F.asm
+++ b/maps/BattleTower1F.asm
@@ -102,9 +102,9 @@
 	special Function170687
 UnknownScript_0x9e454:
 	musicfadeout MUSIC_NONE, $8
-	domaptrigger GROUP_BATTLE_TOWER_BATTLE_ROOM, MAP_BATTLE_TOWER_BATTLE_ROOM, $0
-	domaptrigger GROUP_BATTLE_TOWER_ELEVATOR, MAP_BATTLE_TOWER_ELEVATOR, $0
-	domaptrigger GROUP_BATTLE_TOWER_HALLWAY, MAP_BATTLE_TOWER_HALLWAY, $0
+	domaptrigger BATTLE_TOWER_BATTLE_ROOM, $0
+	domaptrigger BATTLE_TOWER_ELEVATOR, $0
+	domaptrigger BATTLE_TOWER_HALLWAY, $0
 	follow $2, PLAYER
 	applymovement $2, MovementData_0x9e571
 	writebyte $a
@@ -797,9 +797,9 @@
 
 .Warps:
 	db 3
-	warp_def $9, $7, 3, GROUP_BATTLE_TOWER_OUTSIDE, MAP_BATTLE_TOWER_OUTSIDE
-	warp_def $9, $8, 4, GROUP_BATTLE_TOWER_OUTSIDE, MAP_BATTLE_TOWER_OUTSIDE
-	warp_def $0, $7, 1, GROUP_BATTLE_TOWER_ELEVATOR, MAP_BATTLE_TOWER_ELEVATOR
+	warp_def $9, $7, 3, BATTLE_TOWER_OUTSIDE
+	warp_def $9, $8, 4, BATTLE_TOWER_OUTSIDE
+	warp_def $0, $7, 1, BATTLE_TOWER_ELEVATOR
 
 .XYTriggers:
 	db 0
@@ -810,8 +810,8 @@
 
 .PersonEvents:
 	db 5
-	person_event SPRITE_RECEPTIONIST, 10, 11, OW_UP | $2, $0, -1, -1, $0, 0, ReceptionistScript_0x9e3e2, -1
-	person_event SPRITE_YOUNGSTER, 13, 18, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, YoungsterScript_0x9e55d, -1
-	person_event SPRITE_COOLTRAINER_F, 13, 8, OW_UP | $1, $1, -1, -1, (PAL_OW_RED << 4) | $80, 0, CooltrainerFScript_0x9e568, -1
-	person_event SPRITE_BUG_CATCHER, 7, 5, OW_DOWN | $2, $11, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, BugCatcherScript_0x9e56b, -1
-	person_event SPRITE_GRANNY, 7, 18, OW_UP | $0, $10, -1, -1, $0, 0, GrannyScript_0x9e56e, -1
+	person_event SPRITE_RECEPTIONIST, 10, 11, $6, 0, 0, -1, -1, 0, 0, 0, ReceptionistScript_0x9e3e2, -1
+	person_event SPRITE_YOUNGSTER, 13, 18, $9, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, YoungsterScript_0x9e55d, -1
+	person_event SPRITE_COOLTRAINER_F, 13, 8, $5, 0, 1, -1, -1, 8 + PAL_OW_RED, 0, 0, CooltrainerFScript_0x9e568, -1
+	person_event SPRITE_BUG_CATCHER, 7, 5, $2, 1, 1, -1, -1, 8 + PAL_OW_BLUE, 0, 0, BugCatcherScript_0x9e56b, -1
+	person_event SPRITE_GRANNY, 7, 18, $4, 1, 0, -1, -1, 0, 0, 0, GrannyScript_0x9e56e, -1
--- a/maps/BattleTowerBattleRoom.asm
+++ b/maps/BattleTowerBattleRoom.asm
@@ -85,7 +85,7 @@
 	special Function170687
 	loadmovesprites
 	special FadeBlackBGMap
-	warpfacing $1, GROUP_BATTLE_TOWER_1F, MAP_BATTLE_TOWER_1F, $7, $7
+	warpfacing $1, BATTLE_TOWER_1F, $7, $7
 	loadfont
 	jump UnknownScript_0x9e4b0
 
@@ -92,7 +92,7 @@
 UnknownScript_0x9f4c2:
 	pause 60
 	special Special_BattleTowerFade
-	warpfacing $1, GROUP_BATTLE_TOWER_1F, MAP_BATTLE_TOWER_1F, $7, $7
+	warpfacing $1, BATTLE_TOWER_1F, $7, $7
 	writebyte $4
 	special Function170687
 	loadfont
@@ -104,7 +104,7 @@
 UnknownScript_0x9f4d9:
 	pause 60
 	special Special_BattleTowerFade
-	warpfacing $1, GROUP_BATTLE_TOWER_1F, MAP_BATTLE_TOWER_1F, $7, $7
+	warpfacing $1, BATTLE_TOWER_1F, $7, $7
 BattleTowerBattleRoomScript_0x9f4e4:
 	loadfont
 	writetext UnknownText_0x9eaef
@@ -144,8 +144,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $3, 4, GROUP_BATTLE_TOWER_HALLWAY, MAP_BATTLE_TOWER_HALLWAY
-	warp_def $7, $4, 4, GROUP_BATTLE_TOWER_HALLWAY, MAP_BATTLE_TOWER_HALLWAY
+	warp_def $7, $3, 4, BATTLE_TOWER_HALLWAY
+	warp_def $7, $4, 4, BATTLE_TOWER_HALLWAY
 
 .XYTriggers:
 	db 0
@@ -155,5 +155,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_YOUNGSTER, 4, 8, OW_UP | $2, $0, -1, -1, $0, 0, ObjectEvent, EVENT_BATTLE_TOWER_BATTLE_ROOM_YOUNGSTER
-	person_event SPRITE_RECEPTIONIST, 10, 5, OW_LEFT | $1, $0, -1, -1, $0, 0, ObjectEvent, -1
+	person_event SPRITE_YOUNGSTER, 4, 8, $6, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_BATTLE_TOWER_BATTLE_ROOM_YOUNGSTER
+	person_event SPRITE_RECEPTIONIST, 10, 5, $9, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, -1
--- a/maps/BattleTowerElevator.asm
+++ b/maps/BattleTowerElevator.asm
@@ -49,8 +49,8 @@
 
 .Warps:
 	db 2
-	warp_def $3, $1, 1, GROUP_BATTLE_TOWER_HALLWAY, MAP_BATTLE_TOWER_HALLWAY
-	warp_def $3, $2, 1, GROUP_BATTLE_TOWER_HALLWAY, MAP_BATTLE_TOWER_HALLWAY
+	warp_def $3, $1, 1, BATTLE_TOWER_HALLWAY
+	warp_def $3, $2, 1, BATTLE_TOWER_HALLWAY
 
 .XYTriggers:
 	db 0
@@ -60,4 +60,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_RECEPTIONIST, 6, 5, OW_LEFT | $1, $0, -1, -1, $0, 0, MovementData_0x9f58f, -1
+	person_event SPRITE_RECEPTIONIST, 6, 5, $9, 0, 0, -1, -1, 0, 0, 0, MovementData_0x9f58f, -1
--- a/maps/BattleTowerHallway.asm
+++ b/maps/BattleTowerHallway.asm
@@ -81,12 +81,12 @@
 
 .Warps:
 	db 6
-	warp_def $1, $b, 1, GROUP_BATTLE_TOWER_ELEVATOR, MAP_BATTLE_TOWER_ELEVATOR
-	warp_def $0, $5, 1, GROUP_BATTLE_TOWER_BATTLE_ROOM, MAP_BATTLE_TOWER_BATTLE_ROOM
-	warp_def $0, $7, 1, GROUP_BATTLE_TOWER_BATTLE_ROOM, MAP_BATTLE_TOWER_BATTLE_ROOM
-	warp_def $0, $9, 1, GROUP_BATTLE_TOWER_BATTLE_ROOM, MAP_BATTLE_TOWER_BATTLE_ROOM
-	warp_def $0, $d, 1, GROUP_BATTLE_TOWER_BATTLE_ROOM, MAP_BATTLE_TOWER_BATTLE_ROOM
-	warp_def $0, $f, 1, GROUP_BATTLE_TOWER_BATTLE_ROOM, MAP_BATTLE_TOWER_BATTLE_ROOM
+	warp_def $1, $b, 1, BATTLE_TOWER_ELEVATOR
+	warp_def $0, $5, 1, BATTLE_TOWER_BATTLE_ROOM
+	warp_def $0, $7, 1, BATTLE_TOWER_BATTLE_ROOM
+	warp_def $0, $9, 1, BATTLE_TOWER_BATTLE_ROOM
+	warp_def $0, $d, 1, BATTLE_TOWER_BATTLE_ROOM
+	warp_def $0, $f, 1, BATTLE_TOWER_BATTLE_ROOM
 
 .XYTriggers:
 	db 0
@@ -96,4 +96,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_RECEPTIONIST, 6, 15, OW_UP | $2, $0, -1, -1, $0, 0, BattleTowerHallway_MapEventHeader, -1
+	person_event SPRITE_RECEPTIONIST, 6, 15, $6, 0, 0, -1, -1, 0, 0, 0, BattleTowerHallway_MapEventHeader, -1
--- a/maps/BattleTowerOutside.asm
+++ b/maps/BattleTowerOutside.asm
@@ -128,10 +128,10 @@
 
 .Warps:
 	db 4
-	warp_def $15, $8, 3, GROUP_ROUTE_40_BATTLE_TOWER_GATE, MAP_ROUTE_40_BATTLE_TOWER_GATE
-	warp_def $15, $9, 4, GROUP_ROUTE_40_BATTLE_TOWER_GATE, MAP_ROUTE_40_BATTLE_TOWER_GATE
-	warp_def $9, $8, 1, GROUP_BATTLE_TOWER_1F, MAP_BATTLE_TOWER_1F
-	warp_def $9, $9, 2, GROUP_BATTLE_TOWER_1F, MAP_BATTLE_TOWER_1F
+	warp_def $15, $8, 3, ROUTE_40_BATTLE_TOWER_GATE
+	warp_def $15, $9, 4, ROUTE_40_BATTLE_TOWER_GATE
+	warp_def $9, $8, 1, BATTLE_TOWER_1F
+	warp_def $9, $9, 2, BATTLE_TOWER_1F
 
 .XYTriggers:
 	db 0
@@ -142,7 +142,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_STANDING_YOUNGSTER, 16, 10, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, StandingYoungsterScript_0x9f85f, -1
-	person_event SPRITE_BUENA, 15, 17, OW_DOWN | $2, $11, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, BuenaScript_0x9f862, -1
-	person_event SPRITE_SAILOR, 22, 16, OW_UP | $1, $1, -1, -1, $0, 0, SailorScript_0x9f865, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
-	person_event SPRITE_LASS, 28, 16, OW_DOWN | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, ObjectEvent, -1
+	person_event SPRITE_STANDING_YOUNGSTER, 16, 10, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, StandingYoungsterScript_0x9f85f, -1
+	person_event SPRITE_BUENA, 15, 17, $2, 1, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 0, BuenaScript_0x9f862, -1
+	person_event SPRITE_SAILOR, 22, 16, $5, 0, 1, -1, -1, 0, 0, 0, SailorScript_0x9f865, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
+	person_event SPRITE_LASS, 28, 16, $3, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, ObjectEvent, -1
--- a/maps/BillsHouse.asm
+++ b/maps/BillsHouse.asm
@@ -356,8 +356,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 1, GROUP_ROUTE_25, MAP_ROUTE_25
-	warp_def $7, $3, 1, GROUP_ROUTE_25, MAP_ROUTE_25
+	warp_def $7, $2, 1, ROUTE_25
+	warp_def $7, $3, 1, ROUTE_25
 
 .XYTriggers:
 	db 0
@@ -367,4 +367,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_GRAMPS, 7, 6, OW_UP | $3, $20, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, GrampsScript_0x189538, -1
+	person_event SPRITE_GRAMPS, 7, 6, $7, 2, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, GrampsScript_0x189538, -1
--- a/maps/BlackthornCity.asm
+++ b/maps/BlackthornCity.asm
@@ -309,14 +309,14 @@
 
 .Warps:
 	db 8
-	warp_def $b, $12, 1, GROUP_BLACKTHORN_GYM_1F, MAP_BLACKTHORN_GYM_1F
-	warp_def $15, $d, 1, GROUP_BLACKTHORN_DRAGON_SPEECH_HOUSE, MAP_BLACKTHORN_DRAGON_SPEECH_HOUSE
-	warp_def $17, $1d, 1, GROUP_BLACKTHORN_DODRIO_TRADE_HOUSE, MAP_BLACKTHORN_DODRIO_TRADE_HOUSE
-	warp_def $1d, $f, 2, GROUP_BLACKTHORN_MART, MAP_BLACKTHORN_MART
-	warp_def $1d, $15, 1, GROUP_BLACKTHORN_POKECENTER_1F, MAP_BLACKTHORN_POKECENTER_1F
-	warp_def $1f, $9, 1, GROUP_MOVE_DELETERS_HOUSE, MAP_MOVE_DELETERS_HOUSE
-	warp_def $9, $24, 2, GROUP_ICE_PATH_1F, MAP_ICE_PATH_1F
-	warp_def $1, $14, 1, GROUP_DRAGONS_DEN_1F, MAP_DRAGONS_DEN_1F
+	warp_def $b, $12, 1, BLACKTHORN_GYM_1F
+	warp_def $15, $d, 1, BLACKTHORN_DRAGON_SPEECH_HOUSE
+	warp_def $17, $1d, 1, BLACKTHORN_DODRIO_TRADE_HOUSE
+	warp_def $1d, $f, 2, BLACKTHORN_MART
+	warp_def $1d, $15, 1, BLACKTHORN_POKECENTER_1F
+	warp_def $1f, $9, 1, MOVE_DELETERS_HOUSE
+	warp_def $9, $24, 2, ICE_PATH_1F
+	warp_def $1, $14, 1, DRAGONS_DEN_1F
 
 .XYTriggers:
 	db 0
@@ -333,12 +333,12 @@
 
 .PersonEvents:
 	db 9
-	person_event SPRITE_SUPER_NERD, 16, 22, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, SuperNerdScript_0x1a46e8, EVENT_BLACKTHORN_CITY_SUPER_NERD_BLOCKS_GYM
-	person_event SPRITE_SUPER_NERD, 16, 23, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, SuperNerdScript_0x1a46e8, EVENT_BLACKTHORN_CITY_SUPER_NERD_DOES_NOT_BLOCK_GYM
-	person_event SPRITE_GRAMPS, 6, 24, OW_UP | $2, $0, -1, -1, $0, 0, GrampsScript_0x1a4708, EVENT_BLACKTHORN_CITY_GRAMPS_BLOCKS_DRAGONS_DEN
-	person_event SPRITE_GRAMPS, 6, 25, OW_LEFT | $0, $0, -1, -1, $0, 0, GrampsScript_0x1a470b, EVENT_BLACKTHORN_CITY_GRAMPS_NOT_BLOCKING_DRAGONS_DEN
-	person_event SPRITE_BLACK_BELT, 35, 28, OW_UP | $1, $1, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, BlackBeltScript_0x1a470e, -1
-	person_event SPRITE_COOLTRAINER_F, 29, 13, OW_UP | $1, $2, -1, -1, (PAL_OW_RED << 4) | $80, 0, CooltrainerFScript_0x1a4722, -1
-	person_event SPRITE_YOUNGSTER, 19, 17, OW_UP | $1, $1, -1, -1, $0, 0, YoungsterScript_0x1a4725, -1
-	person_event SPRITE_YOUNGSTER, 24, 26, OW_UP | $2, $0, -1, -1, $0, 0, SantosScript, EVENT_BLACKTHORN_CITY_SANTOS_OF_SATURDAY
-	person_event SPRITE_COOLTRAINER_F, 23, 39, OW_UP | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, CooltrainerFScript_0x1a4728, -1
+	person_event SPRITE_SUPER_NERD, 16, 22, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, SuperNerdScript_0x1a46e8, EVENT_BLACKTHORN_CITY_SUPER_NERD_BLOCKS_GYM
+	person_event SPRITE_SUPER_NERD, 16, 23, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, SuperNerdScript_0x1a46e8, EVENT_BLACKTHORN_CITY_SUPER_NERD_DOES_NOT_BLOCK_GYM
+	person_event SPRITE_GRAMPS, 6, 24, $6, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x1a4708, EVENT_BLACKTHORN_CITY_GRAMPS_BLOCKS_DRAGONS_DEN
+	person_event SPRITE_GRAMPS, 6, 25, $8, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x1a470b, EVENT_BLACKTHORN_CITY_GRAMPS_NOT_BLOCKING_DRAGONS_DEN
+	person_event SPRITE_BLACK_BELT, 35, 28, $5, 0, 1, -1, -1, 8 + PAL_OW_BLUE, 0, 0, BlackBeltScript_0x1a470e, -1
+	person_event SPRITE_COOLTRAINER_F, 29, 13, $5, 0, 2, -1, -1, 8 + PAL_OW_RED, 0, 0, CooltrainerFScript_0x1a4722, -1
+	person_event SPRITE_YOUNGSTER, 19, 17, $5, 0, 1, -1, -1, 0, 0, 0, YoungsterScript_0x1a4725, -1
+	person_event SPRITE_YOUNGSTER, 24, 26, $6, 0, 0, -1, -1, 0, 0, 0, SantosScript, EVENT_BLACKTHORN_CITY_SANTOS_OF_SATURDAY
+	person_event SPRITE_COOLTRAINER_F, 23, 39, $7, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x1a4728, -1
--- a/maps/BlackthornDodrioTradeHouse.asm
+++ b/maps/BlackthornDodrioTradeHouse.asm
@@ -22,8 +22,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 3, GROUP_BLACKTHORN_CITY, MAP_BLACKTHORN_CITY
-	warp_def $7, $3, 3, GROUP_BLACKTHORN_CITY, MAP_BLACKTHORN_CITY
+	warp_def $7, $2, 3, BLACKTHORN_CITY
+	warp_def $7, $3, 3, BLACKTHORN_CITY
 
 .XYTriggers:
 	db 0
@@ -35,4 +35,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_LASS, 7, 6, OW_DOWN | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, Emy, -1
+	person_event SPRITE_LASS, 7, 6, $3, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, Emy, -1
--- a/maps/BlackthornDragonSpeechHouse.asm
+++ b/maps/BlackthornDragonSpeechHouse.asm
@@ -47,8 +47,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 2, GROUP_BLACKTHORN_CITY, MAP_BLACKTHORN_CITY
-	warp_def $7, $3, 2, GROUP_BLACKTHORN_CITY, MAP_BLACKTHORN_CITY
+	warp_def $7, $2, 2, BLACKTHORN_CITY
+	warp_def $7, $3, 2, BLACKTHORN_CITY
 
 .XYTriggers:
 	db 0
@@ -58,5 +58,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_GRANNY, 7, 6, OW_DOWN | $3, $0, -1, -1, $0, 0, GrannyScript_0x195949, -1
-	person_event SPRITE_EKANS, 9, 9, OW_UP | $12, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, EkansScript_0x19594c, -1
+	person_event SPRITE_GRANNY, 7, 6, $3, 0, 0, -1, -1, 0, 0, 0, GrannyScript_0x195949, -1
+	person_event SPRITE_EKANS, 9, 9, $16, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, EkansScript_0x19594c, -1
--- a/maps/BlackthornGym1F.asm
+++ b/maps/BlackthornGym1F.asm
@@ -386,13 +386,13 @@
 
 .Warps:
 	db 7
-	warp_def $11, $4, 1, GROUP_BLACKTHORN_CITY, MAP_BLACKTHORN_CITY
-	warp_def $11, $5, 1, GROUP_BLACKTHORN_CITY, MAP_BLACKTHORN_CITY
-	warp_def $7, $1, 1, GROUP_BLACKTHORN_GYM_2F, MAP_BLACKTHORN_GYM_2F
-	warp_def $9, $7, 2, GROUP_BLACKTHORN_GYM_2F, MAP_BLACKTHORN_GYM_2F
-	warp_def $6, $2, 3, GROUP_BLACKTHORN_GYM_2F, MAP_BLACKTHORN_GYM_2F
-	warp_def $7, $7, 4, GROUP_BLACKTHORN_GYM_2F, MAP_BLACKTHORN_GYM_2F
-	warp_def $6, $7, 5, GROUP_BLACKTHORN_GYM_2F, MAP_BLACKTHORN_GYM_2F
+	warp_def $11, $4, 1, BLACKTHORN_CITY
+	warp_def $11, $5, 1, BLACKTHORN_CITY
+	warp_def $7, $1, 1, BLACKTHORN_GYM_2F
+	warp_def $9, $7, 2, BLACKTHORN_GYM_2F
+	warp_def $6, $2, 3, BLACKTHORN_GYM_2F
+	warp_def $7, $7, 4, BLACKTHORN_GYM_2F
+	warp_def $6, $7, 5, BLACKTHORN_GYM_2F
 
 .XYTriggers:
 	db 0
@@ -404,8 +404,8 @@
 
 .PersonEvents:
 	db 5
-	person_event SPRITE_CLAIR, 7, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ClairScript_0x194e24, -1
-	person_event SPRITE_COOLTRAINER_M, 10, 10, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerCooltrainermMike, -1
-	person_event SPRITE_COOLTRAINER_M, 18, 5, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerCooltrainermPaul, -1
-	person_event SPRITE_COOLTRAINER_F, 6, 13, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 1, TrainerCooltrainerfLola, -1
-	person_event SPRITE_GYM_GUY, 19, 11, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, BlackthornGymGuyScript, -1
+	person_event SPRITE_CLAIR, 7, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ClairScript_0x194e24, -1
+	person_event SPRITE_COOLTRAINER_M, 10, 10, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerCooltrainermMike, -1
+	person_event SPRITE_COOLTRAINER_M, 18, 5, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerCooltrainermPaul, -1
+	person_event SPRITE_COOLTRAINER_F, 6, 13, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 1, TrainerCooltrainerfLola, -1
+	person_event SPRITE_GYM_GUY, 19, 11, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, BlackthornGymGuyScript, -1
--- a/maps/BlackthornGym2F.asm
+++ b/maps/BlackthornGym2F.asm
@@ -131,11 +131,11 @@
 
 .Warps:
 	db 5
-	warp_def $7, $1, 3, GROUP_BLACKTHORN_GYM_1F, MAP_BLACKTHORN_GYM_1F
-	warp_def $9, $7, 4, GROUP_BLACKTHORN_GYM_1F, MAP_BLACKTHORN_GYM_1F
-	warp_def $5, $2, 5, GROUP_BLACKTHORN_GYM_1F, MAP_BLACKTHORN_GYM_1F
-	warp_def $7, $8, 6, GROUP_BLACKTHORN_GYM_1F, MAP_BLACKTHORN_GYM_1F
-	warp_def $3, $8, 7, GROUP_BLACKTHORN_GYM_1F, MAP_BLACKTHORN_GYM_1F
+	warp_def $7, $1, 3, BLACKTHORN_GYM_1F
+	warp_def $9, $7, 4, BLACKTHORN_GYM_1F
+	warp_def $5, $2, 5, BLACKTHORN_GYM_1F
+	warp_def $7, $8, 6, BLACKTHORN_GYM_1F
+	warp_def $3, $8, 7, BLACKTHORN_GYM_1F
 
 .XYTriggers:
 	db 0
@@ -145,11 +145,11 @@
 
 .PersonEvents:
 	db 8
-	person_event SPRITE_COOLTRAINER_M, 5, 8, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $82, 1, TrainerCooltrainermCody, -1
-	person_event SPRITE_COOLTRAINER_F, 15, 8, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $82, 1, TrainerCooltrainerfFran, -1
-	person_event SPRITE_BOULDER, 6, 12, OW_LEFT | $11, $0, -1, -1, $0, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_1
-	person_event SPRITE_BOULDER, 7, 6, OW_LEFT | $11, $0, -1, -1, $0, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_2
-	person_event SPRITE_BOULDER, 20, 10, OW_LEFT | $11, $0, -1, -1, $0, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_3
-	person_event SPRITE_BOULDER, 7, 7, OW_LEFT | $11, $0, -1, -1, $0, 0, BlackthornGymBoulder, -1
-	person_event SPRITE_BOULDER, 5, 10, OW_LEFT | $11, $0, -1, -1, $0, 0, BlackthornGymBoulder, -1
-	person_event SPRITE_BOULDER, 18, 12, OW_LEFT | $11, $0, -1, -1, $0, 0, BlackthornGymBoulder, -1
+	person_event SPRITE_COOLTRAINER_M, 5, 8, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 1, TrainerCooltrainermCody, -1
+	person_event SPRITE_COOLTRAINER_F, 15, 8, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 1, TrainerCooltrainerfFran, -1
+	person_event SPRITE_BOULDER, 6, 12, $19, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_1
+	person_event SPRITE_BOULDER, 7, 6, $19, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_2
+	person_event SPRITE_BOULDER, 20, 10, $19, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_3
+	person_event SPRITE_BOULDER, 7, 7, $19, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, -1
+	person_event SPRITE_BOULDER, 5, 10, $19, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, -1
+	person_event SPRITE_BOULDER, 18, 12, $19, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, -1
--- a/maps/BlackthornMart.asm
+++ b/maps/BlackthornMart.asm
@@ -47,8 +47,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 4, GROUP_BLACKTHORN_CITY, MAP_BLACKTHORN_CITY
-	warp_def $7, $3, 4, GROUP_BLACKTHORN_CITY, MAP_BLACKTHORN_CITY
+	warp_def $7, $2, 4, BLACKTHORN_CITY
+	warp_def $7, $3, 4, BLACKTHORN_CITY
 
 .XYTriggers:
 	db 0
@@ -58,6 +58,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 7, 5, OW_LEFT | $1, $0, -1, -1, $0, 0, ClerkScript_0x195a5d, -1
-	person_event SPRITE_COOLTRAINER_M, 10, 11, OW_UP | $1, $2, -1, -1, $0, 0, CooltrainerMScript_0x195a64, -1
-	person_event SPRITE_BLACK_BELT, 6, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, BlackBeltScript_0x195a67, -1
+	person_event SPRITE_CLERK, 7, 5, $9, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x195a5d, -1
+	person_event SPRITE_COOLTRAINER_M, 10, 11, $5, 0, 2, -1, -1, 0, 0, 0, CooltrainerMScript_0x195a64, -1
+	person_event SPRITE_BLACK_BELT, 6, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, BlackBeltScript_0x195a67, -1
--- a/maps/BlackthornPokeCenter1F.asm
+++ b/maps/BlackthornPokeCenter1F.asm
@@ -49,9 +49,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $3, 5, GROUP_BLACKTHORN_CITY, MAP_BLACKTHORN_CITY
-	warp_def $7, $4, 5, GROUP_BLACKTHORN_CITY, MAP_BLACKTHORN_CITY
-	warp_def $7, $0, 1, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
+	warp_def $7, $3, 5, BLACKTHORN_CITY
+	warp_def $7, $4, 5, BLACKTHORN_CITY
+	warp_def $7, $0, 1, POKECENTER_2F
 
 .XYTriggers:
 	db 0
@@ -61,7 +61,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_NURSE, 5, 7, OW_UP | $2, $0, -1, -1, $0, 0, NurseScript_0x195b79, -1
-	person_event SPRITE_GENTLEMAN, 7, 9, OW_UP | $2, $0, -1, -1, $0, 0, GentlemanScript_0x195b7c, -1
-	person_event SPRITE_TWIN, 8, 5, OW_DOWN | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, TwinScript_0x195b7f, -1
-	person_event SPRITE_COOLTRAINER_M, 10, 11, OW_UP | $1, $1, -1, -1, (PAL_OW_RED << 4) | $80, 0, CooltrainerMScript_0x195b82, -1
+	person_event SPRITE_NURSE, 5, 7, $6, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x195b79, -1
+	person_event SPRITE_GENTLEMAN, 7, 9, $6, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x195b7c, -1
+	person_event SPRITE_TWIN, 8, 5, $3, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, TwinScript_0x195b7f, -1
+	person_event SPRITE_COOLTRAINER_M, 10, 11, $5, 0, 1, -1, -1, 8 + PAL_OW_RED, 0, 0, CooltrainerMScript_0x195b82, -1
--- a/maps/BluesHouse.asm
+++ b/maps/BluesHouse.asm
@@ -147,8 +147,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 2, GROUP_PALLET_TOWN, MAP_PALLET_TOWN
-	warp_def $7, $3, 2, GROUP_PALLET_TOWN, MAP_PALLET_TOWN
+	warp_def $7, $2, 2, PALLET_TOWN
+	warp_def $7, $3, 2, PALLET_TOWN
 
 .XYTriggers:
 	db 0
@@ -158,4 +158,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_DAISY, 7, 6, OW_DOWN | $3, $0, -1, -1, $0, 0, DaisyScript_0x19b0d0, -1
+	person_event SPRITE_DAISY, 7, 6, $3, 0, 0, -1, -1, 0, 0, 0, DaisyScript_0x19b0d0, -1
--- a/maps/BrunosRoom.asm
+++ b/maps/BrunosRoom.asm
@@ -132,10 +132,10 @@
 
 .Warps:
 	db 4
-	warp_def $11, $4, 3, GROUP_KOGAS_ROOM, MAP_KOGAS_ROOM
-	warp_def $11, $5, 4, GROUP_KOGAS_ROOM, MAP_KOGAS_ROOM
-	warp_def $2, $4, 1, GROUP_KARENS_ROOM, MAP_KARENS_ROOM
-	warp_def $2, $5, 2, GROUP_KARENS_ROOM, MAP_KARENS_ROOM
+	warp_def $11, $4, 3, KOGAS_ROOM
+	warp_def $11, $5, 4, KOGAS_ROOM
+	warp_def $2, $4, 1, KARENS_ROOM
+	warp_def $2, $5, 2, KARENS_ROOM
 
 .XYTriggers:
 	db 0
@@ -145,4 +145,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_BRUNO, 11, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, BrunoScript_0x1809c5, -1
+	person_event SPRITE_BRUNO, 11, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, BrunoScript_0x1809c5, -1
--- a/maps/BurnedTower1F.asm
+++ b/maps/BurnedTower1F.asm
@@ -283,20 +283,20 @@
 
 .Warps:
 	db 14
-	warp_def $f, $9, 13, GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY
-	warp_def $f, $a, 13, GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY
-	warp_def $9, $a, 1, GROUP_BURNED_TOWER_B1F, MAP_BURNED_TOWER_B1F
-	warp_def $5, $5, 1, GROUP_BURNED_TOWER_B1F, MAP_BURNED_TOWER_B1F
-	warp_def $6, $5, 1, GROUP_BURNED_TOWER_B1F, MAP_BURNED_TOWER_B1F
-	warp_def $6, $4, 1, GROUP_BURNED_TOWER_B1F, MAP_BURNED_TOWER_B1F
-	warp_def $4, $f, 2, GROUP_BURNED_TOWER_B1F, MAP_BURNED_TOWER_B1F
-	warp_def $5, $f, 2, GROUP_BURNED_TOWER_B1F, MAP_BURNED_TOWER_B1F
-	warp_def $7, $a, 3, GROUP_BURNED_TOWER_B1F, MAP_BURNED_TOWER_B1F
-	warp_def $e, $5, 4, GROUP_BURNED_TOWER_B1F, MAP_BURNED_TOWER_B1F
-	warp_def $e, $4, 4, GROUP_BURNED_TOWER_B1F, MAP_BURNED_TOWER_B1F
-	warp_def $e, $e, 5, GROUP_BURNED_TOWER_B1F, MAP_BURNED_TOWER_B1F
-	warp_def $e, $f, 5, GROUP_BURNED_TOWER_B1F, MAP_BURNED_TOWER_B1F
-	warp_def $f, $7, 6, GROUP_BURNED_TOWER_B1F, MAP_BURNED_TOWER_B1F
+	warp_def $f, $9, 13, ECRUTEAK_CITY
+	warp_def $f, $a, 13, ECRUTEAK_CITY
+	warp_def $9, $a, 1, BURNED_TOWER_B1F
+	warp_def $5, $5, 1, BURNED_TOWER_B1F
+	warp_def $6, $5, 1, BURNED_TOWER_B1F
+	warp_def $6, $4, 1, BURNED_TOWER_B1F
+	warp_def $4, $f, 2, BURNED_TOWER_B1F
+	warp_def $5, $f, 2, BURNED_TOWER_B1F
+	warp_def $7, $a, 3, BURNED_TOWER_B1F
+	warp_def $e, $5, 4, BURNED_TOWER_B1F
+	warp_def $e, $4, 4, BURNED_TOWER_B1F
+	warp_def $e, $e, 5, BURNED_TOWER_B1F
+	warp_def $e, $f, 5, BURNED_TOWER_B1F
+	warp_def $f, $7, 6, BURNED_TOWER_B1F
 
 .XYTriggers:
 	db 1
@@ -309,8 +309,8 @@
 
 .PersonEvents:
 	db 5
-	person_event SPRITE_ROCK, 8, 19, OW_LEFT | $10, $0, -1, -1, $0, 0, BurnedTower1FRock, -1
-	person_event SPRITE_SUPER_NERD, 16, 16, OW_DOWN | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, SuperNerdScript_0x185cbc, EVENT_BURNED_TOWER_1F_EUSINE
-	person_event SPRITE_SILVER, 13, 12, OW_LEFT | $0, $0, -1, -1, $2, 3, ObjectEvent, EVENT_RIVAL_BURNED_TOWER
-	person_event SPRITE_MORTY, 18, 18, OW_DOWN | $2, $11, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, MortyScript_0x185cbf, EVENT_BURNED_TOWER_MORTY
-	person_event SPRITE_POKE_BALL, 6, 18, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x185ccb, EVENT_BURNED_TOWER_1F_HP_UP
+	person_event SPRITE_ROCK, 8, 19, $18, 0, 0, -1, -1, 0, 0, 0, BurnedTower1FRock, -1
+	person_event SPRITE_SUPER_NERD, 16, 16, $3, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, SuperNerdScript_0x185cbc, EVENT_BURNED_TOWER_1F_EUSINE
+	person_event SPRITE_SILVER, 13, 12, $8, 0, 0, -1, -1, 0, 2, 3, ObjectEvent, EVENT_RIVAL_BURNED_TOWER
+	person_event SPRITE_MORTY, 18, 18, $2, 1, 1, -1, -1, 8 + PAL_OW_BROWN, 0, 0, MortyScript_0x185cbf, EVENT_BURNED_TOWER_MORTY
+	person_event SPRITE_POKE_BALL, 6, 18, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185ccb, EVENT_BURNED_TOWER_1F_HP_UP
--- a/maps/BurnedTowerB1F.asm
+++ b/maps/BurnedTowerB1F.asm
@@ -78,8 +78,8 @@
 	dotrigger $1
 	setevent EVENT_RELEASED_THE_BEASTS
 	special InitRoamMons
-	domaptrigger GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM, $1
-	domaptrigger GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY, $1
+	domaptrigger ECRUTEAK_GYM, $1
+	domaptrigger CIANWOOD_CITY, $1
 	clearevent EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY
 	setevent EVENT_ECRUTEAK_GYM_GRAMPS
 	clearevent EVENT_ECRUTEAK_CITY_GRAMPS
@@ -235,12 +235,12 @@
 
 .Warps:
 	db 6
-	warp_def $9, $a, 3, GROUP_BURNED_TOWER_1F, MAP_BURNED_TOWER_1F
-	warp_def $7, $11, 7, GROUP_BURNED_TOWER_1F, MAP_BURNED_TOWER_1F
-	warp_def $8, $a, 9, GROUP_BURNED_TOWER_1F, MAP_BURNED_TOWER_1F
-	warp_def $d, $3, 10, GROUP_BURNED_TOWER_1F, MAP_BURNED_TOWER_1F
-	warp_def $e, $11, 12, GROUP_BURNED_TOWER_1F, MAP_BURNED_TOWER_1F
-	warp_def $f, $7, 14, GROUP_BURNED_TOWER_1F, MAP_BURNED_TOWER_1F
+	warp_def $9, $a, 3, BURNED_TOWER_1F
+	warp_def $7, $11, 7, BURNED_TOWER_1F
+	warp_def $8, $a, 9, BURNED_TOWER_1F
+	warp_def $d, $3, 10, BURNED_TOWER_1F
+	warp_def $e, $11, 12, BURNED_TOWER_1F
+	warp_def $f, $7, 14, BURNED_TOWER_1F
 
 .XYTriggers:
 	db 1
@@ -251,12 +251,12 @@
 
 .PersonEvents:
 	db 9
-	person_event SPRITE_BOULDER, 12, 21, OW_LEFT | $11, $0, -1, -1, $0, 0, BurnedTowerB1FBoulder, -1
-	person_event SPRITE_RAIKOU, 7, 11, OW_UP | $12, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1
-	person_event SPRITE_ENTEI, 7, 16, OW_UP | $12, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1
-	person_event SPRITE_SUICUNE, 8, 14, OW_UP | $12, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1
-	person_event SPRITE_RAIKOU, 7, 11, OW_UP | $2, $0, -1, -1, (PAL_OW_SILVER << 4) | $80, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2
-	person_event SPRITE_ENTEI, 7, 16, OW_UP | $2, $0, -1, -1, (PAL_OW_SILVER << 4) | $80, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2
-	person_event SPRITE_SUICUNE, 8, 14, OW_UP | $2, $0, -1, -1, (PAL_OW_SILVER << 4) | $80, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2
-	person_event SPRITE_POKE_BALL, 8, 20, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x186231, EVENT_BURNED_TOWER_B1F_TM_ENDURE
-	person_event SPRITE_SUPER_NERD, 16, 14, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, SuperNerdScript_0x186212, EVENT_EUSINE_IN_BURNED_TOWER
+	person_event SPRITE_BOULDER, 12, 21, $19, 0, 0, -1, -1, 0, 0, 0, BurnedTowerB1FBoulder, -1
+	person_event SPRITE_RAIKOU, 7, 11, $16, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1
+	person_event SPRITE_ENTEI, 7, 16, $16, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1
+	person_event SPRITE_SUICUNE, 8, 14, $16, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1
+	person_event SPRITE_RAIKOU, 7, 11, $6, 0, 0, -1, -1, 8 + PAL_OW_SILVER, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2
+	person_event SPRITE_ENTEI, 7, 16, $6, 0, 0, -1, -1, 8 + PAL_OW_SILVER, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2
+	person_event SPRITE_SUICUNE, 8, 14, $6, 0, 0, -1, -1, 8 + PAL_OW_SILVER, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2
+	person_event SPRITE_POKE_BALL, 8, 20, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x186231, EVENT_BURNED_TOWER_B1F_TM_ENDURE
+	person_event SPRITE_SUPER_NERD, 16, 14, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, SuperNerdScript_0x186212, EVENT_EUSINE_IN_BURNED_TOWER
--- a/maps/CeladonCafe.asm
+++ b/maps/CeladonCafe.asm
@@ -206,8 +206,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $6, 9, GROUP_CELADON_CITY, MAP_CELADON_CITY
-	warp_def $7, $7, 9, GROUP_CELADON_CITY, MAP_CELADON_CITY
+	warp_def $7, $6, 9, CELADON_CITY
+	warp_def $7, $7, 9, CELADON_CITY
 
 .XYTriggers:
 	db 0
@@ -219,8 +219,8 @@
 
 .PersonEvents:
 	db 5
-	person_event SPRITE_SUPER_NERD, 7, 13, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, SuperNerdScript_0x73049, -1
-	person_event SPRITE_FISHER, 10, 8, OW_LEFT | $0, $0, -1, -1, $0, 0, FisherScript_0x73051, -1
-	person_event SPRITE_FISHER, 11, 5, OW_LEFT | $1, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, FisherScript_0x73062, -1
-	person_event SPRITE_FISHER, 6, 5, OW_LEFT | $1, $0, -1, -1, $0, 0, FisherScript_0x73073, -1
-	person_event SPRITE_TEACHER, 7, 8, OW_LEFT | $0, $0, -1, -1, $0, 0, TeacherScript_0x73084, -1
+	person_event SPRITE_SUPER_NERD, 7, 13, $8, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, SuperNerdScript_0x73049, -1
+	person_event SPRITE_FISHER, 10, 8, $8, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x73051, -1
+	person_event SPRITE_FISHER, 11, 5, $9, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, FisherScript_0x73062, -1
+	person_event SPRITE_FISHER, 6, 5, $9, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x73073, -1
+	person_event SPRITE_TEACHER, 7, 8, $8, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x73084, -1
--- a/maps/CeladonCity.asm
+++ b/maps/CeladonCity.asm
@@ -231,15 +231,15 @@
 
 .Warps:
 	db 9
-	warp_def $9, $4, 1, GROUP_CELADON_DEPT_STORE_1F, MAP_CELADON_DEPT_STORE_1F
-	warp_def $9, $10, 1, GROUP_CELADON_MANSION_1F, MAP_CELADON_MANSION_1F
-	warp_def $3, $10, 3, GROUP_CELADON_MANSION_1F, MAP_CELADON_MANSION_1F
-	warp_def $3, $11, 3, GROUP_CELADON_MANSION_1F, MAP_CELADON_MANSION_1F
-	warp_def $9, $1d, 1, GROUP_CELADON_POKECENTER_1F, MAP_CELADON_POKECENTER_1F
-	warp_def $13, $12, 1, GROUP_CELADON_GAME_CORNER, MAP_CELADON_GAME_CORNER
-	warp_def $13, $17, 1, GROUP_CELADON_GAME_CORNER_PRIZE_ROOM, MAP_CELADON_GAME_CORNER_PRIZE_ROOM
-	warp_def $1d, $a, 1, GROUP_CELADON_GYM, MAP_CELADON_GYM
-	warp_def $1d, $19, 1, GROUP_CELADON_CAFE, MAP_CELADON_CAFE
+	warp_def $9, $4, 1, CELADON_DEPT_STORE_1F
+	warp_def $9, $10, 1, CELADON_MANSION_1F
+	warp_def $3, $10, 3, CELADON_MANSION_1F
+	warp_def $3, $11, 3, CELADON_MANSION_1F
+	warp_def $9, $1d, 1, CELADON_POKECENTER_1F
+	warp_def $13, $12, 1, CELADON_GAME_CORNER
+	warp_def $13, $17, 1, CELADON_GAME_CORNER_PRIZE_ROOM
+	warp_def $1d, $a, 1, CELADON_GYM
+	warp_def $1d, $19, 1, CELADON_CAFE
 
 .XYTriggers:
 	db 0
@@ -257,12 +257,12 @@
 
 .PersonEvents:
 	db 9
-	person_event SPRITE_FISHER, 15, 30, OW_LEFT | $1, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, FisherScript_0x1a9f43, -1
-	person_event SPRITE_POLIWAG, 15, 31, OW_UP | $12, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, CeladonCityPoliwrath, -1
-	person_event SPRITE_TEACHER, 28, 24, OW_UP | $1, $2, -1, -1, (PAL_OW_RED << 4) | $80, 0, TeacherScript_0x1a9f50, -1
-	person_event SPRITE_GRAMPS, 20, 18, OW_UP | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, GrampsScript_0x1a9f53, -1
-	person_event SPRITE_GRAMPS, 35, 12, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, GrampsScript_0x1a9f56, -1
-	person_event SPRITE_YOUNGSTER, 17, 22, OW_UP | $1, $2, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, YoungsterScript_0x1a9f59, -1
-	person_event SPRITE_YOUNGSTER, 37, 28, OW_UP | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, YoungsterScript_0x1a9f5c, -1
-	person_event SPRITE_TEACHER, 18, 10, OW_DOWN | $2, $22, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, TeacherScript_0x1a9f5f, -1
-	person_event SPRITE_LASS, 26, 11, OW_UP | $0, $20, -1, -1, (PAL_OW_RED << 4) | $80, 0, LassScript_0x1a9f62, -1
+	person_event SPRITE_FISHER, 15, 30, $9, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, FisherScript_0x1a9f43, -1
+	person_event SPRITE_POLIWAG, 15, 31, $16, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, CeladonCityPoliwrath, -1
+	person_event SPRITE_TEACHER, 28, 24, $5, 0, 2, -1, -1, 8 + PAL_OW_RED, 0, 0, TeacherScript_0x1a9f50, -1
+	person_event SPRITE_GRAMPS, 20, 18, $6, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, GrampsScript_0x1a9f53, -1
+	person_event SPRITE_GRAMPS, 35, 12, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, GrampsScript_0x1a9f56, -1
+	person_event SPRITE_YOUNGSTER, 17, 22, $5, 0, 2, -1, -1, 8 + PAL_OW_BLUE, 0, 0, YoungsterScript_0x1a9f59, -1
+	person_event SPRITE_YOUNGSTER, 37, 28, $7, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, YoungsterScript_0x1a9f5c, -1
+	person_event SPRITE_TEACHER, 18, 10, $2, 2, 2, -1, -1, 8 + PAL_OW_GREEN, 0, 0, TeacherScript_0x1a9f5f, -1
+	person_event SPRITE_LASS, 26, 11, $4, 2, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, LassScript_0x1a9f62, -1
--- a/maps/CeladonDeptStore1F.asm
+++ b/maps/CeladonDeptStore1F.asm
@@ -74,10 +74,10 @@
 
 .Warps:
 	db 4
-	warp_def $7, $7, 1, GROUP_CELADON_CITY, MAP_CELADON_CITY
-	warp_def $7, $8, 1, GROUP_CELADON_CITY, MAP_CELADON_CITY
-	warp_def $0, $f, 2, GROUP_CELADON_DEPT_STORE_2F, MAP_CELADON_DEPT_STORE_2F
-	warp_def $0, $2, 1, GROUP_CELADON_DEPT_STORE_ELEVATOR, MAP_CELADON_DEPT_STORE_ELEVATOR
+	warp_def $7, $7, 1, CELADON_CITY
+	warp_def $7, $8, 1, CELADON_CITY
+	warp_def $0, $f, 2, CELADON_DEPT_STORE_2F
+	warp_def $0, $2, 1, CELADON_DEPT_STORE_ELEVATOR
 
 .XYTriggers:
 	db 0
@@ -89,6 +89,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_RECEPTIONIST, 5, 14, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, ReceptionistScript_0x709e0, -1
-	person_event SPRITE_GENTLEMAN, 8, 15, OW_DOWN | $2, $11, -1, -1, $0, 0, GentlemanScript_0x709e3, -1
-	person_event SPRITE_TEACHER, 7, 9, OW_UP | $1, $1, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, TeacherScript_0x709e6, -1
+	person_event SPRITE_RECEPTIONIST, 5, 14, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, ReceptionistScript_0x709e0, -1
+	person_event SPRITE_GENTLEMAN, 8, 15, $2, 1, 1, -1, -1, 0, 0, 0, GentlemanScript_0x709e3, -1
+	person_event SPRITE_TEACHER, 7, 9, $5, 0, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 0, TeacherScript_0x709e6, -1
--- a/maps/CeladonDeptStore2F.asm
+++ b/maps/CeladonDeptStore2F.asm
@@ -68,9 +68,9 @@
 
 .Warps:
 	db 3
-	warp_def $0, $c, 1, GROUP_CELADON_DEPT_STORE_3F, MAP_CELADON_DEPT_STORE_3F
-	warp_def $0, $f, 3, GROUP_CELADON_DEPT_STORE_1F, MAP_CELADON_DEPT_STORE_1F
-	warp_def $0, $2, 1, GROUP_CELADON_DEPT_STORE_ELEVATOR, MAP_CELADON_DEPT_STORE_ELEVATOR
+	warp_def $0, $c, 1, CELADON_DEPT_STORE_3F
+	warp_def $0, $f, 3, CELADON_DEPT_STORE_1F
+	warp_def $0, $2, 1, CELADON_DEPT_STORE_ELEVATOR
 
 .XYTriggers:
 	db 0
@@ -82,7 +82,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_CLERK, 9, 17, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ClerkScript_0x70bad, -1
-	person_event SPRITE_CLERK, 9, 18, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ClerkScript_0x70bb5, -1
-	person_event SPRITE_POKEFAN_M, 6, 9, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, PokefanMScript_0x70bbd, -1
-	person_event SPRITE_YOUNGSTER, 6, 10, OW_LEFT | $0, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, YoungsterScript_0x70bc0, -1
+	person_event SPRITE_CLERK, 9, 17, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ClerkScript_0x70bad, -1
+	person_event SPRITE_CLERK, 9, 18, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ClerkScript_0x70bb5, -1
+	person_event SPRITE_POKEFAN_M, 6, 9, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, PokefanMScript_0x70bbd, -1
+	person_event SPRITE_YOUNGSTER, 6, 10, $8, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, YoungsterScript_0x70bc0, -1
--- a/maps/CeladonDeptStore3F.asm
+++ b/maps/CeladonDeptStore3F.asm
@@ -93,9 +93,9 @@
 
 .Warps:
 	db 3
-	warp_def $0, $c, 1, GROUP_CELADON_DEPT_STORE_2F, MAP_CELADON_DEPT_STORE_2F
-	warp_def $0, $f, 2, GROUP_CELADON_DEPT_STORE_4F, MAP_CELADON_DEPT_STORE_4F
-	warp_def $0, $2, 1, GROUP_CELADON_DEPT_STORE_ELEVATOR, MAP_CELADON_DEPT_STORE_ELEVATOR
+	warp_def $0, $c, 1, CELADON_DEPT_STORE_2F
+	warp_def $0, $f, 2, CELADON_DEPT_STORE_4F
+	warp_def $0, $2, 1, CELADON_DEPT_STORE_ELEVATOR
 
 .XYTriggers:
 	db 0
@@ -107,8 +107,8 @@
 
 .PersonEvents:
 	db 5
-	person_event SPRITE_CLERK, 5, 11, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ClerkScript_0x70d29, -1
-	person_event SPRITE_YOUNGSTER, 8, 10, OW_UP | $0, $10, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, YoungsterScript_0x70d31, -1
-	person_event SPRITE_GAMEBOY_KID, 5, 13, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, GameboyKidScript_0x70d34, -1
-	person_event SPRITE_GAMEBOY_KID, 5, 14, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, GameboyKidScript_0x70d3f, -1
-	person_event SPRITE_SUPER_NERD, 8, 17, OW_DOWN | $2, $11, -1, -1, (PAL_OW_RED << 4) | $80, 0, SuperNerdScript_0x70d4a, -1
+	person_event SPRITE_CLERK, 5, 11, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ClerkScript_0x70d29, -1
+	person_event SPRITE_YOUNGSTER, 8, 10, $4, 1, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, YoungsterScript_0x70d31, -1
+	person_event SPRITE_GAMEBOY_KID, 5, 13, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, GameboyKidScript_0x70d34, -1
+	person_event SPRITE_GAMEBOY_KID, 5, 14, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, GameboyKidScript_0x70d3f, -1
+	person_event SPRITE_SUPER_NERD, 8, 17, $2, 1, 1, -1, -1, 8 + PAL_OW_RED, 0, 0, SuperNerdScript_0x70d4a, -1
--- a/maps/CeladonDeptStore4F.asm
+++ b/maps/CeladonDeptStore4F.asm
@@ -51,9 +51,9 @@
 
 .Warps:
 	db 3
-	warp_def $0, $c, 1, GROUP_CELADON_DEPT_STORE_5F, MAP_CELADON_DEPT_STORE_5F
-	warp_def $0, $f, 2, GROUP_CELADON_DEPT_STORE_3F, MAP_CELADON_DEPT_STORE_3F
-	warp_def $0, $2, 1, GROUP_CELADON_DEPT_STORE_ELEVATOR, MAP_CELADON_DEPT_STORE_ELEVATOR
+	warp_def $0, $c, 1, CELADON_DEPT_STORE_5F
+	warp_def $0, $f, 2, CELADON_DEPT_STORE_3F
+	warp_def $0, $2, 1, CELADON_DEPT_STORE_ELEVATOR
 
 .XYTriggers:
 	db 0
@@ -65,6 +65,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 9, 17, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ClerkScript_0x70f0d, -1
-	person_event SPRITE_SUPER_NERD, 10, 11, OW_UP | $1, $1, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, SuperNerdScript_0x70f15, -1
-	person_event SPRITE_YOUNGSTER, 6, 12, OW_UP | $3, $0, -1, -1, $0, 0, YoungsterScript_0x70f18, -1
+	person_event SPRITE_CLERK, 9, 17, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ClerkScript_0x70f0d, -1
+	person_event SPRITE_SUPER_NERD, 10, 11, $5, 0, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 0, SuperNerdScript_0x70f15, -1
+	person_event SPRITE_YOUNGSTER, 6, 12, $7, 0, 0, -1, -1, 0, 0, 0, YoungsterScript_0x70f18, -1
--- a/maps/CeladonDeptStore5F.asm
+++ b/maps/CeladonDeptStore5F.asm
@@ -70,9 +70,9 @@
 
 .Warps:
 	db 3
-	warp_def $0, $c, 1, GROUP_CELADON_DEPT_STORE_4F, MAP_CELADON_DEPT_STORE_4F
-	warp_def $0, $f, 1, GROUP_CELADON_DEPT_STORE_6F, MAP_CELADON_DEPT_STORE_6F
-	warp_def $0, $2, 1, GROUP_CELADON_DEPT_STORE_ELEVATOR, MAP_CELADON_DEPT_STORE_ELEVATOR
+	warp_def $0, $c, 1, CELADON_DEPT_STORE_4F
+	warp_def $0, $f, 1, CELADON_DEPT_STORE_6F
+	warp_def $0, $2, 1, CELADON_DEPT_STORE_ELEVATOR
 
 .XYTriggers:
 	db 0
@@ -84,8 +84,8 @@
 
 .PersonEvents:
 	db 5
-	person_event SPRITE_CLERK, 9, 11, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ClerkScript_0x71004, -1
-	person_event SPRITE_CLERK, 9, 12, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ClerkScript_0x7100c, -1
-	person_event SPRITE_GENTLEMAN, 9, 17, OW_DOWN | $2, $11, -1, -1, (PAL_OW_RED << 4) | $80, 0, GentlemanScript_0x71014, -1
-	person_event SPRITE_SAILOR, 8, 7, OW_DOWN | $2, $11, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, SailorScript_0x71017, -1
-	person_event SPRITE_TEACHER, 11, 5, OW_LEFT | $1, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, TeacherScript_0x7101a, -1
+	person_event SPRITE_CLERK, 9, 11, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ClerkScript_0x71004, -1
+	person_event SPRITE_CLERK, 9, 12, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ClerkScript_0x7100c, -1
+	person_event SPRITE_GENTLEMAN, 9, 17, $2, 1, 1, -1, -1, 8 + PAL_OW_RED, 0, 0, GentlemanScript_0x71014, -1
+	person_event SPRITE_SAILOR, 8, 7, $2, 1, 1, -1, -1, 8 + PAL_OW_BLUE, 0, 0, SailorScript_0x71017, -1
+	person_event SPRITE_TEACHER, 11, 5, $9, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, TeacherScript_0x7101a, -1
--- a/maps/CeladonDeptStore6F.asm
+++ b/maps/CeladonDeptStore6F.asm
@@ -151,8 +151,8 @@
 
 .Warps:
 	db 2
-	warp_def $0, $f, 2, GROUP_CELADON_DEPT_STORE_5F, MAP_CELADON_DEPT_STORE_5F
-	warp_def $0, $2, 1, GROUP_CELADON_DEPT_STORE_ELEVATOR, MAP_CELADON_DEPT_STORE_ELEVATOR
+	warp_def $0, $f, 2, CELADON_DEPT_STORE_5F
+	warp_def $0, $2, 1, CELADON_DEPT_STORE_ELEVATOR
 
 .XYTriggers:
 	db 0
@@ -168,5 +168,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_SUPER_NERD, 6, 13, OW_UP | $3, $0, -1, -1, $0, 0, SuperNerdScript_0x7117a, -1
-	person_event SPRITE_YOUNGSTER, 9, 16, OW_DOWN | $2, $12, -1, -1, (PAL_OW_RED << 4) | $80, 0, YoungsterScript_0x7117d, -1
+	person_event SPRITE_SUPER_NERD, 6, 13, $7, 0, 0, -1, -1, 0, 0, 0, SuperNerdScript_0x7117a, -1
+	person_event SPRITE_YOUNGSTER, 9, 16, $2, 1, 2, -1, -1, 8 + PAL_OW_RED, 0, 0, YoungsterScript_0x7117d, -1
--- a/maps/CeladonDeptStoreElevator.asm
+++ b/maps/CeladonDeptStoreElevator.asm
@@ -20,12 +20,12 @@
 
 Elevator_0x713be:
 	db 6 ; floors
-	db _1F,  4, GROUP_CELADON_DEPT_STORE_1F, MAP_CELADON_DEPT_STORE_1F
-	db _2F,  3, GROUP_CELADON_DEPT_STORE_2F, MAP_CELADON_DEPT_STORE_2F
-	db _3F,  3, GROUP_CELADON_DEPT_STORE_3F, MAP_CELADON_DEPT_STORE_3F
-	db _4F,  3, GROUP_CELADON_DEPT_STORE_4F, MAP_CELADON_DEPT_STORE_4F
-	db _5F,  3, GROUP_CELADON_DEPT_STORE_5F, MAP_CELADON_DEPT_STORE_5F
-	db _6F,  2, GROUP_CELADON_DEPT_STORE_6F, MAP_CELADON_DEPT_STORE_6F
+	elevfloor _1F,  4, CELADON_DEPT_STORE_1F
+	elevfloor _2F,  3, CELADON_DEPT_STORE_2F
+	elevfloor _3F,  3, CELADON_DEPT_STORE_3F
+	elevfloor _4F,  3, CELADON_DEPT_STORE_4F
+	elevfloor _5F,  3, CELADON_DEPT_STORE_5F
+	elevfloor _6F,  2, CELADON_DEPT_STORE_6F
 	db $ff ; end
 
 
@@ -35,8 +35,8 @@
 
 .Warps:
 	db 2
-	warp_def $3, $1, 255, GROUP_CELADON_DEPT_STORE_1F, MAP_CELADON_DEPT_STORE_1F
-	warp_def $3, $2, 255, GROUP_CELADON_DEPT_STORE_1F, MAP_CELADON_DEPT_STORE_1F
+	warp_def $3, $1, 255, CELADON_DEPT_STORE_1F
+	warp_def $3, $2, 255, CELADON_DEPT_STORE_1F
 
 .XYTriggers:
 	db 0
--- a/maps/CeladonGameCorner.asm
+++ b/maps/CeladonGameCorner.asm
@@ -276,8 +276,8 @@
 
 .Warps:
 	db 2
-	warp_def $d, $e, 6, GROUP_CELADON_CITY, MAP_CELADON_CITY
-	warp_def $d, $f, 6, GROUP_CELADON_CITY, MAP_CELADON_CITY
+	warp_def $d, $e, 6, CELADON_CITY
+	warp_def $d, $f, 6, CELADON_CITY
 
 .XYTriggers:
 	db 0
@@ -325,12 +325,12 @@
 
 .PersonEvents:
 	db 9
-	person_event SPRITE_CLERK, 6, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, ClerkScript_0x7211d, -1
-	person_event SPRITE_RECEPTIONIST, 6, 7, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, ReceptionistScript_0x72120, -1
-	person_event SPRITE_POKEFAN_M, 14, 18, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, PokefanMScript_0x72123, -1
-	person_event SPRITE_TEACHER, 11, 21, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, TeacherScript_0x7212e, -1
-	person_event SPRITE_FISHING_GURU, 11, 15, OW_LEFT | $1, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, FishingGuruScript_0x72139, -1
-	person_event SPRITE_FISHER, 14, 12, OW_LEFT | $0, $0, -1, 2, (PAL_OW_RED << 4) | $80, 0, FisherScript_0x72144, -1
-	person_event SPRITE_FISHER, 14, 12, OW_LEFT | $0, $0, -1, 4, (PAL_OW_RED << 4) | $80, 0, FisherScript_0x72144, -1
-	person_event SPRITE_GYM_GUY, 7, 15, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, CeladonGymGuyScript, -1
-	person_event SPRITE_GRAMPS, 12, 6, OW_LEFT | $0, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, GrampsScript_0x72190, -1
+	person_event SPRITE_CLERK, 6, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, ClerkScript_0x7211d, -1
+	person_event SPRITE_RECEPTIONIST, 6, 7, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, ReceptionistScript_0x72120, -1
+	person_event SPRITE_POKEFAN_M, 14, 18, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, PokefanMScript_0x72123, -1
+	person_event SPRITE_TEACHER, 11, 21, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, TeacherScript_0x7212e, -1
+	person_event SPRITE_FISHING_GURU, 11, 15, $9, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, FishingGuruScript_0x72139, -1
+	person_event SPRITE_FISHER, 14, 12, $8, 0, 0, -1, 2, 8 + PAL_OW_RED, 0, 0, FisherScript_0x72144, -1
+	person_event SPRITE_FISHER, 14, 12, $8, 0, 0, -1, 4, 8 + PAL_OW_RED, 0, 0, FisherScript_0x72144, -1
+	person_event SPRITE_GYM_GUY, 7, 15, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, CeladonGymGuyScript, -1
+	person_event SPRITE_GRAMPS, 12, 6, $8, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, GrampsScript_0x72190, -1
--- a/maps/CeladonGameCornerPrizeRoom.asm
+++ b/maps/CeladonGameCornerPrizeRoom.asm
@@ -271,8 +271,8 @@
 
 .Warps:
 	db 2
-	warp_def $5, $2, 7, GROUP_CELADON_CITY, MAP_CELADON_CITY
-	warp_def $5, $3, 7, GROUP_CELADON_CITY, MAP_CELADON_CITY
+	warp_def $5, $2, 7, CELADON_CITY
+	warp_def $5, $3, 7, CELADON_CITY
 
 .XYTriggers:
 	db 0
@@ -284,5 +284,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_GENTLEMAN, 6, 4, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, GentlemanScript_0x726e9, -1
-	person_event SPRITE_PHARMACIST, 8, 8, OW_UP | $0, $10, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, PharmacistScript_0x726ec, -1
+	person_event SPRITE_GENTLEMAN, 6, 4, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, GentlemanScript_0x726e9, -1
+	person_event SPRITE_PHARMACIST, 8, 8, $4, 1, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, PharmacistScript_0x726ec, -1
--- a/maps/CeladonGym.asm
+++ b/maps/CeladonGym.asm
@@ -265,8 +265,8 @@
 
 .Warps:
 	db 2
-	warp_def $11, $4, 8, GROUP_CELADON_CITY, MAP_CELADON_CITY
-	warp_def $11, $5, 8, GROUP_CELADON_CITY, MAP_CELADON_CITY
+	warp_def $11, $4, 8, CELADON_CITY
+	warp_def $11, $5, 8, CELADON_CITY
 
 .XYTriggers:
 	db 0
@@ -278,9 +278,9 @@
 
 .PersonEvents:
 	db 6
-	person_event SPRITE_ERIKA, 7, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, ErikaScript_0x72a6a, -1
-	person_event SPRITE_LASS, 12, 11, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 2, TrainerLassMichelle, -1
-	person_event SPRITE_LASS, 12, 6, OW_LEFT | $1, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 2, TrainerPicnickerTanya, -1
-	person_event SPRITE_BUENA, 9, 7, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 2, TrainerBeautyJulia, -1
-	person_event SPRITE_TWIN, 14, 8, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 1, TrainerTwinsJoandzoe1, -1
-	person_event SPRITE_TWIN, 14, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 1, TrainerTwinsJoandzoe2, -1
+	person_event SPRITE_ERIKA, 7, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, ErikaScript_0x72a6a, -1
+	person_event SPRITE_LASS, 12, 11, $8, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 2, TrainerLassMichelle, -1
+	person_event SPRITE_LASS, 12, 6, $9, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 2, TrainerPicnickerTanya, -1
+	person_event SPRITE_BUENA, 9, 7, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 2, TrainerBeautyJulia, -1
+	person_event SPRITE_TWIN, 14, 8, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 1, TrainerTwinsJoandzoe1, -1
+	person_event SPRITE_TWIN, 14, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 1, TrainerTwinsJoandzoe2, -1
--- a/maps/CeladonMansion1F.asm
+++ b/maps/CeladonMansion1F.asm
@@ -74,11 +74,11 @@
 
 .Warps:
 	db 5
-	warp_def $9, $6, 2, GROUP_CELADON_CITY, MAP_CELADON_CITY
-	warp_def $9, $7, 2, GROUP_CELADON_CITY, MAP_CELADON_CITY
-	warp_def $0, $3, 3, GROUP_CELADON_CITY, MAP_CELADON_CITY
-	warp_def $0, $0, 1, GROUP_CELADON_MANSION_2F, MAP_CELADON_MANSION_2F
-	warp_def $0, $7, 4, GROUP_CELADON_MANSION_2F, MAP_CELADON_MANSION_2F
+	warp_def $9, $6, 2, CELADON_CITY
+	warp_def $9, $7, 2, CELADON_CITY
+	warp_def $0, $3, 3, CELADON_CITY
+	warp_def $0, $0, 1, CELADON_MANSION_2F
+	warp_def $0, $7, 4, CELADON_MANSION_2F
 
 .XYTriggers:
 	db 0
@@ -91,7 +91,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_GRANNY, 9, 5, OW_DOWN | $3, $0, -1, -1, $0, 0, CeladonMansionManager, -1
-	person_event SPRITE_GROWLITHE, 10, 6, OW_UP | $12, $0, -1, -1, $0, 0, CeladonMansion1FMeowth, -1
-	person_event SPRITE_CLEFAIRY, 8, 7, OW_UP | $12, $0, -1, -1, $0, 0, CeladonMansion1FClefairy, -1
-	person_event SPRITE_GROWLITHE, 8, 8, OW_UP | $12, $2, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, CeladonMansion1FNidoranF, -1
+	person_event SPRITE_GRANNY, 9, 5, $3, 0, 0, -1, -1, 0, 0, 0, CeladonMansionManager, -1
+	person_event SPRITE_GROWLITHE, 10, 6, $16, 0, 0, -1, -1, 0, 0, 0, CeladonMansion1FMeowth, -1
+	person_event SPRITE_CLEFAIRY, 8, 7, $16, 0, 0, -1, -1, 0, 0, 0, CeladonMansion1FClefairy, -1
+	person_event SPRITE_GROWLITHE, 8, 8, $16, 0, 2, -1, -1, 8 + PAL_OW_BLUE, 0, 0, CeladonMansion1FNidoranF, -1
--- a/maps/CeladonMansion2F.asm
+++ b/maps/CeladonMansion2F.asm
@@ -55,10 +55,10 @@
 
 .Warps:
 	db 4
-	warp_def $0, $0, 4, GROUP_CELADON_MANSION_1F, MAP_CELADON_MANSION_1F
-	warp_def $0, $1, 2, GROUP_CELADON_MANSION_3F, MAP_CELADON_MANSION_3F
-	warp_def $0, $6, 3, GROUP_CELADON_MANSION_3F, MAP_CELADON_MANSION_3F
-	warp_def $0, $7, 5, GROUP_CELADON_MANSION_1F, MAP_CELADON_MANSION_1F
+	warp_def $0, $0, 4, CELADON_MANSION_1F
+	warp_def $0, $1, 2, CELADON_MANSION_3F
+	warp_def $0, $6, 3, CELADON_MANSION_3F
+	warp_def $0, $7, 5, CELADON_MANSION_1F
 
 .XYTriggers:
 	db 0
--- a/maps/CeladonMansion3F.asm
+++ b/maps/CeladonMansion3F.asm
@@ -189,10 +189,10 @@
 
 .Warps:
 	db 4
-	warp_def $0, $0, 1, GROUP_CELADON_MANSION_ROOF, MAP_CELADON_MANSION_ROOF
-	warp_def $0, $1, 2, GROUP_CELADON_MANSION_2F, MAP_CELADON_MANSION_2F
-	warp_def $0, $6, 3, GROUP_CELADON_MANSION_2F, MAP_CELADON_MANSION_2F
-	warp_def $0, $7, 2, GROUP_CELADON_MANSION_ROOF, MAP_CELADON_MANSION_ROOF
+	warp_def $0, $0, 1, CELADON_MANSION_ROOF
+	warp_def $0, $1, 2, CELADON_MANSION_2F
+	warp_def $0, $6, 3, CELADON_MANSION_2F
+	warp_def $0, $7, 2, CELADON_MANSION_ROOF
 
 .XYTriggers:
 	db 0
@@ -206,7 +206,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_COOLTRAINER_M, 10, 7, OW_DOWN | $3, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, CooltrainerMScript_0x71670, -1
-	person_event SPRITE_GYM_GUY, 8, 7, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, GymGuyScript_0x71696, -1
-	person_event SPRITE_SUPER_NERD, 11, 4, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, SuperNerdScript_0x716bc, -1
-	person_event SPRITE_FISHER, 8, 4, OW_UP | $3, $2, -1, -1, (PAL_OW_RED << 4) | $80, 0, FisherScript_0x716bf, -1
+	person_event SPRITE_COOLTRAINER_M, 10, 7, $3, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, CooltrainerMScript_0x71670, -1
+	person_event SPRITE_GYM_GUY, 8, 7, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, GymGuyScript_0x71696, -1
+	person_event SPRITE_SUPER_NERD, 11, 4, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, SuperNerdScript_0x716bc, -1
+	person_event SPRITE_FISHER, 8, 4, $7, 0, 2, -1, -1, 8 + PAL_OW_RED, 0, 0, FisherScript_0x716bf, -1
--- a/maps/CeladonMansionRoof.asm
+++ b/maps/CeladonMansionRoof.asm
@@ -36,9 +36,9 @@
 
 .Warps:
 	db 3
-	warp_def $1, $1, 1, GROUP_CELADON_MANSION_3F, MAP_CELADON_MANSION_3F
-	warp_def $1, $6, 4, GROUP_CELADON_MANSION_3F, MAP_CELADON_MANSION_3F
-	warp_def $5, $2, 1, GROUP_CELADON_MANSION_ROOF_HOUSE, MAP_CELADON_MANSION_ROOF_HOUSE
+	warp_def $1, $1, 1, CELADON_MANSION_3F
+	warp_def $1, $6, 4, CELADON_MANSION_3F
+	warp_def $5, $2, 1, CELADON_MANSION_ROOF_HOUSE
 
 .XYTriggers:
 	db 0
@@ -49,4 +49,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_FISHER, 9, 11, OW_UP | $0, $10, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, FisherScript_0x71a39, -1
+	person_event SPRITE_FISHER, 9, 11, $4, 1, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, FisherScript_0x71a39, -1
--- a/maps/CeladonMansionRoofHouse.asm
+++ b/maps/CeladonMansionRoofHouse.asm
@@ -119,8 +119,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 3, GROUP_CELADON_MANSION_ROOF, MAP_CELADON_MANSION_ROOF
-	warp_def $7, $3, 3, GROUP_CELADON_MANSION_ROOF, MAP_CELADON_MANSION_ROOF
+	warp_def $7, $2, 3, CELADON_MANSION_ROOF
+	warp_def $7, $3, 3, CELADON_MANSION_ROOF
 
 .XYTriggers:
 	db 0
@@ -130,4 +130,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_PHARMACIST, 6, 7, OW_UP | $2, $20, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, PharmacistScript_0x71afd, -1
+	person_event SPRITE_PHARMACIST, 6, 7, $6, 2, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, PharmacistScript_0x71afd, -1
--- a/maps/CeladonPokeCenter1F.asm
+++ b/maps/CeladonPokeCenter1F.asm
@@ -144,9 +144,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $3, 5, GROUP_CELADON_CITY, MAP_CELADON_CITY
-	warp_def $7, $4, 5, GROUP_CELADON_CITY, MAP_CELADON_CITY
-	warp_def $7, $0, 1, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
+	warp_def $7, $3, 5, CELADON_CITY
+	warp_def $7, $4, 5, CELADON_CITY
+	warp_def $7, $0, 1, POKECENTER_2F
 
 .XYTriggers:
 	db 0
@@ -156,8 +156,8 @@
 
 .PersonEvents:
 	db 5
-	person_event SPRITE_NURSE, 5, 7, OW_UP | $2, $0, -1, -1, $0, 0, NurseScript_0x71e22, -1
-	person_event SPRITE_GENTLEMAN, 9, 5, OW_UP | $1, $1, -1, -1, $0, 0, GentlemanScript_0x71e25, -1
-	person_event SPRITE_PHARMACIST, 7, 4, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, PharmacistScript_0x71e2b, -1
-	person_event SPRITE_COOLTRAINER_F, 10, 12, OW_UP | $1, $1, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, CooltrainerFScript_0x71e28, -1
-	person_event SPRITE_SUPER_NERD, 7, 8, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, SuperNerdScript_0x71e2e, EVENT_SET_WHEN_FOUGHT_HO_OH
+	person_event SPRITE_NURSE, 5, 7, $6, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x71e22, -1
+	person_event SPRITE_GENTLEMAN, 9, 5, $5, 0, 1, -1, -1, 0, 0, 0, GentlemanScript_0x71e25, -1
+	person_event SPRITE_PHARMACIST, 7, 4, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, PharmacistScript_0x71e2b, -1
+	person_event SPRITE_COOLTRAINER_F, 10, 12, $5, 0, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x71e28, -1
+	person_event SPRITE_SUPER_NERD, 7, 8, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, SuperNerdScript_0x71e2e, EVENT_SET_WHEN_FOUGHT_HO_OH
--- a/maps/CeladonPokeCenter2FBeta.asm
+++ b/maps/CeladonPokeCenter2FBeta.asm
@@ -11,7 +11,7 @@
 
 .Warps:
 	db 1
-	warp_def $7, $0, 3, GROUP_CELADON_POKECENTER_1F, MAP_CELADON_POKECENTER_1F
+	warp_def $7, $0, 3, CELADON_POKECENTER_1F
 
 .XYTriggers:
 	db 0
--- a/maps/CeruleanCity.asm
+++ b/maps/CeruleanCity.asm
@@ -275,12 +275,12 @@
 
 .Warps:
 	db 6
-	warp_def $f, $7, 1, GROUP_CERULEAN_GYM_BADGE_SPEECH_HOUSE, MAP_CERULEAN_GYM_BADGE_SPEECH_HOUSE
-	warp_def $11, $1c, 1, GROUP_CERULEAN_POLICE_STATION, MAP_CERULEAN_POLICE_STATION
-	warp_def $13, $d, 1, GROUP_CERULEAN_TRADE_SPEECH_HOUSE, MAP_CERULEAN_TRADE_SPEECH_HOUSE
-	warp_def $15, $13, 1, GROUP_CERULEAN_POKECENTER_1F, MAP_CERULEAN_POKECENTER_1F
-	warp_def $17, $1e, 1, GROUP_CERULEAN_GYM, MAP_CERULEAN_GYM
-	warp_def $1d, $19, 2, GROUP_CERULEAN_MART, MAP_CERULEAN_MART
+	warp_def $f, $7, 1, CERULEAN_GYM_BADGE_SPEECH_HOUSE
+	warp_def $11, $1c, 1, CERULEAN_POLICE_STATION
+	warp_def $13, $d, 1, CERULEAN_TRADE_SPEECH_HOUSE
+	warp_def $15, $13, 1, CERULEAN_POKECENTER_1F
+	warp_def $17, $1e, 1, CERULEAN_GYM
+	warp_def $1d, $19, 2, CERULEAN_MART
 
 .XYTriggers:
 	db 0
@@ -299,9 +299,9 @@
 
 .PersonEvents:
 	db 6
-	person_event SPRITE_COOLTRAINER_M, 27, 19, OW_DOWN | $2, $22, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, CooltrainerMScript_0x184009, -1
-	person_event SPRITE_SUPER_NERD, 19, 27, OW_DOWN | $2, $11, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, SuperNerdScript_0x18401d, -1
-	person_event SPRITE_SLOWPOKE, 28, 24, OW_DOWN | $1, $0, -1, -1, $0, 0, CeruleanCitySlowbro, -1
-	person_event SPRITE_COOLTRAINER_F, 28, 25, OW_LEFT | $0, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, CooltrainerFScript_0x18402a, -1
-	person_event SPRITE_FISHER, 30, 34, OW_UP | $1, $1, -1, -1, (PAL_OW_RED << 4) | $80, 0, FisherScript_0x18404a, -1
-	person_event SPRITE_YOUNGSTER, 16, 10, OW_DOWN | $3, $1, -1, -1, (PAL_OW_RED << 4) | $80, 0, YoungsterScript_0x184064, -1
+	person_event SPRITE_COOLTRAINER_M, 27, 19, $2, 2, 2, -1, -1, 8 + PAL_OW_BLUE, 0, 0, CooltrainerMScript_0x184009, -1
+	person_event SPRITE_SUPER_NERD, 19, 27, $2, 1, 1, -1, -1, 8 + PAL_OW_BLUE, 0, 0, SuperNerdScript_0x18401d, -1
+	person_event SPRITE_SLOWPOKE, 28, 24, $1, 0, 0, -1, -1, 0, 0, 0, CeruleanCitySlowbro, -1
+	person_event SPRITE_COOLTRAINER_F, 28, 25, $8, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x18402a, -1
+	person_event SPRITE_FISHER, 30, 34, $5, 0, 1, -1, -1, 8 + PAL_OW_RED, 0, 0, FisherScript_0x18404a, -1
+	person_event SPRITE_YOUNGSTER, 16, 10, $3, 0, 1, -1, -1, 8 + PAL_OW_RED, 0, 0, YoungsterScript_0x184064, -1
--- a/maps/CeruleanGym.asm
+++ b/maps/CeruleanGym.asm
@@ -43,8 +43,8 @@
 	clearevent EVENT_ROUTE_24_ROCKET
 	clearevent EVENT_ROUTE_25_MISTY_BOYFRIEND
 	dotrigger $0
-	domaptrigger GROUP_ROUTE_25, MAP_ROUTE_25, $1
-	domaptrigger GROUP_POWER_PLANT, MAP_POWER_PLANT, $0
+	domaptrigger ROUTE_25, $1
+	domaptrigger POWER_PLANT, $0
 	waitbutton
 	special RestartMapMusic
 	pause 15
@@ -363,8 +363,8 @@
 
 .Warps:
 	db 2
-	warp_def $f, $4, 5, GROUP_CERULEAN_CITY, MAP_CERULEAN_CITY
-	warp_def $f, $5, 5, GROUP_CERULEAN_CITY, MAP_CERULEAN_CITY
+	warp_def $f, $4, 5, CERULEAN_CITY
+	warp_def $f, $5, 5, CERULEAN_CITY
 
 .XYTriggers:
 	db 0
@@ -377,9 +377,9 @@
 
 .PersonEvents:
 	db 6
-	person_event SPRITE_ROCKET, 14, 8, OW_UP | $2, $0, -1, -1, $0, 0, ObjectEvent, EVENT_CERULEAN_GYM_ROCKET
-	person_event SPRITE_MISTY, 7, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, MistyScript_0x188432, EVENT_TRAINERS_IN_CERULEAN_GYM
-	person_event SPRITE_SWIMMER_GIRL, 10, 8, OW_LEFT | $1, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 3, TrainerSwimmerfDiana, EVENT_TRAINERS_IN_CERULEAN_GYM
-	person_event SPRITE_SWIMMER_GIRL, 13, 5, OW_LEFT | $1, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 1, TrainerSwimmerfBriana, EVENT_TRAINERS_IN_CERULEAN_GYM
-	person_event SPRITE_SWIMMER_GUY, 13, 12, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerSwimmermParker, EVENT_TRAINERS_IN_CERULEAN_GYM
-	person_event SPRITE_GYM_GUY, 17, 11, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, CeruleanGymGuyScript, EVENT_TRAINERS_IN_CERULEAN_GYM
+	person_event SPRITE_ROCKET, 14, 8, $6, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_CERULEAN_GYM_ROCKET
+	person_event SPRITE_MISTY, 7, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, MistyScript_0x188432, EVENT_TRAINERS_IN_CERULEAN_GYM
+	person_event SPRITE_SWIMMER_GIRL, 10, 8, $9, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 3, TrainerSwimmerfDiana, EVENT_TRAINERS_IN_CERULEAN_GYM
+	person_event SPRITE_SWIMMER_GIRL, 13, 5, $9, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 1, TrainerSwimmerfBriana, EVENT_TRAINERS_IN_CERULEAN_GYM
+	person_event SPRITE_SWIMMER_GUY, 13, 12, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerSwimmermParker, EVENT_TRAINERS_IN_CERULEAN_GYM
+	person_event SPRITE_GYM_GUY, 17, 11, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, CeruleanGymGuyScript, EVENT_TRAINERS_IN_CERULEAN_GYM
--- a/maps/CeruleanGymBadgeSpeechHouse.asm
+++ b/maps/CeruleanGymBadgeSpeechHouse.asm
@@ -19,8 +19,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 1, GROUP_CERULEAN_CITY, MAP_CERULEAN_CITY
-	warp_def $7, $3, 1, GROUP_CERULEAN_CITY, MAP_CERULEAN_CITY
+	warp_def $7, $2, 1, CERULEAN_CITY
+	warp_def $7, $3, 1, CERULEAN_CITY
 
 .XYTriggers:
 	db 0
@@ -30,4 +30,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_POKEFAN_M, 7, 6, OW_LEFT | $1, $0, -1, -1, $0, 0, PokefanMScript_0x188002, -1
+	person_event SPRITE_POKEFAN_M, 7, 6, $9, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x188002, -1
--- a/maps/CeruleanMart.asm
+++ b/maps/CeruleanMart.asm
@@ -46,8 +46,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 6, GROUP_CERULEAN_CITY, MAP_CERULEAN_CITY
-	warp_def $7, $3, 6, GROUP_CERULEAN_CITY, MAP_CERULEAN_CITY
+	warp_def $7, $2, 6, CERULEAN_CITY
+	warp_def $7, $3, 6, CERULEAN_CITY
 
 .XYTriggers:
 	db 0
@@ -57,6 +57,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 7, 5, OW_LEFT | $1, $0, -1, -1, $0, 0, ClerkScript_0x188ac0, -1
-	person_event SPRITE_COOLTRAINER_M, 10, 5, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, CooltrainerMScript_0x188ac7, -1
-	person_event SPRITE_COOLTRAINER_F, 6, 11, OW_UP | $1, $2, -1, -1, (PAL_OW_RED << 4) | $80, 0, CooltrainerFScript_0x188aca, -1
+	person_event SPRITE_CLERK, 7, 5, $9, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x188ac0, -1
+	person_event SPRITE_COOLTRAINER_M, 10, 5, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, CooltrainerMScript_0x188ac7, -1
+	person_event SPRITE_COOLTRAINER_F, 6, 11, $5, 0, 2, -1, -1, 8 + PAL_OW_RED, 0, 0, CooltrainerFScript_0x188aca, -1
--- a/maps/CeruleanPokeCenter1F.asm
+++ b/maps/CeruleanPokeCenter1F.asm
@@ -63,9 +63,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $3, 4, GROUP_CERULEAN_CITY, MAP_CERULEAN_CITY
-	warp_def $7, $4, 4, GROUP_CERULEAN_CITY, MAP_CERULEAN_CITY
-	warp_def $7, $0, 1, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
+	warp_def $7, $3, 4, CERULEAN_CITY
+	warp_def $7, $4, 4, CERULEAN_CITY
+	warp_def $7, $0, 1, POKECENTER_2F
 
 .XYTriggers:
 	db 0
@@ -75,6 +75,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_NURSE, 5, 7, OW_UP | $2, $0, -1, -1, $0, 0, NurseScript_0x18820f, -1
-	person_event SPRITE_SUPER_NERD, 8, 12, OW_UP | $1, $1, -1, -1, $0, 0, SuperNerdScript_0x188212, -1
-	person_event SPRITE_GYM_GUY, 9, 5, OW_DOWN | $2, $11, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, GymGuyScript_0x18821e, -1
+	person_event SPRITE_NURSE, 5, 7, $6, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x18820f, -1
+	person_event SPRITE_SUPER_NERD, 8, 12, $5, 0, 1, -1, -1, 0, 0, 0, SuperNerdScript_0x188212, -1
+	person_event SPRITE_GYM_GUY, 9, 5, $2, 1, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 0, GymGuyScript_0x18821e, -1
--- a/maps/CeruleanPokeCenter2FBeta.asm
+++ b/maps/CeruleanPokeCenter2FBeta.asm
@@ -11,7 +11,7 @@
 
 .Warps:
 	db 1
-	warp_def $7, $0, 1, GROUP_CERULEAN_POKECENTER_1F, MAP_CERULEAN_POKECENTER_1F
+	warp_def $7, $0, 1, CERULEAN_POKECENTER_1F
 
 .XYTriggers:
 	db 0
--- a/maps/CeruleanPoliceStation.asm
+++ b/maps/CeruleanPoliceStation.asm
@@ -44,8 +44,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 2, GROUP_CERULEAN_CITY, MAP_CERULEAN_CITY
-	warp_def $7, $3, 2, GROUP_CERULEAN_CITY, MAP_CERULEAN_CITY
+	warp_def $7, $2, 2, CERULEAN_CITY
+	warp_def $7, $3, 2, CERULEAN_CITY
 
 .XYTriggers:
 	db 0
@@ -55,6 +55,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_FISHING_GURU, 5, 9, OW_UP | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, FishingGuruScript_0x18804a, -1
-	person_event SPRITE_POKEFAN_F, 8, 9, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, PokefanFScript_0x18804d, -1
-	person_event SPRITE_DIGLETT, 9, 7, OW_UP | $12, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, DiglettScript_0x188050, -1
+	person_event SPRITE_FISHING_GURU, 5, 9, $7, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, FishingGuruScript_0x18804a, -1
+	person_event SPRITE_POKEFAN_F, 8, 9, $8, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, PokefanFScript_0x18804d, -1
+	person_event SPRITE_DIGLETT, 9, 7, $16, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, DiglettScript_0x188050, -1
--- a/maps/CeruleanTradeSpeechHouse.asm
+++ b/maps/CeruleanTradeSpeechHouse.asm
@@ -53,8 +53,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 3, GROUP_CERULEAN_CITY, MAP_CERULEAN_CITY
-	warp_def $7, $3, 3, GROUP_CERULEAN_CITY, MAP_CERULEAN_CITY
+	warp_def $7, $2, 3, CERULEAN_CITY
+	warp_def $7, $3, 3, CERULEAN_CITY
 
 .XYTriggers:
 	db 0
@@ -64,7 +64,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_GRANNY, 8, 6, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, GrannyScript_0x188133, -1
-	person_event SPRITE_GRAMPS, 6, 5, OW_DOWN | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, GrampsScript_0x188136, -1
-	person_event SPRITE_RHYDON, 6, 9, OW_UP | $12, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, RhydonScript_0x188139, -1
-	person_event SPRITE_ZUBAT, 10, 9, OW_UP | $12, $0, -1, -1, $0, 0, ZubatScript_0x188143, -1
+	person_event SPRITE_GRANNY, 8, 6, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, GrannyScript_0x188133, -1
+	person_event SPRITE_GRAMPS, 6, 5, $2, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, GrampsScript_0x188136, -1
+	person_event SPRITE_RHYDON, 6, 9, $16, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, RhydonScript_0x188139, -1
+	person_event SPRITE_ZUBAT, 10, 9, $16, 0, 0, -1, -1, 0, 0, 0, ZubatScript_0x188143, -1
--- a/maps/CharcoalKiln.asm
+++ b/maps/CharcoalKiln.asm
@@ -149,8 +149,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 2, GROUP_AZALEA_TOWN, MAP_AZALEA_TOWN
-	warp_def $7, $3, 2, GROUP_AZALEA_TOWN, MAP_AZALEA_TOWN
+	warp_def $7, $2, 2, AZALEA_TOWN
+	warp_def $7, $3, 2, AZALEA_TOWN
 
 .XYTriggers:
 	db 0
@@ -163,6 +163,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_BLACK_BELT, 7, 6, OW_DOWN | $3, $0, -1, -1, $0, 0, CharcoalKilnBoss, EVENT_CHARCOAL_KILN_BOSS
-	person_event SPRITE_YOUNGSTER, 7, 9, OW_DOWN | $2, $11, -1, -1, $0, 0, CharcoalKilnApprentice, EVENT_CHARCOAL_KILN_APPRENTICE
-	person_event SPRITE_MOLTRES, 10, 9, OW_UP | $12, $22, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, CharcoalKilnFarfetchd, EVENT_CHARCOAL_KILN_FARFETCH_D
+	person_event SPRITE_BLACK_BELT, 7, 6, $3, 0, 0, -1, -1, 0, 0, 0, CharcoalKilnBoss, EVENT_CHARCOAL_KILN_BOSS
+	person_event SPRITE_YOUNGSTER, 7, 9, $2, 1, 1, -1, -1, 0, 0, 0, CharcoalKilnApprentice, EVENT_CHARCOAL_KILN_APPRENTICE
+	person_event SPRITE_MOLTRES, 10, 9, $16, 2, 2, -1, -1, 8 + PAL_OW_BROWN, 0, 0, CharcoalKilnFarfetchd, EVENT_CHARCOAL_KILN_FARFETCH_D
--- a/maps/CherrygroveCity.asm
+++ b/maps/CherrygroveCity.asm
@@ -550,11 +550,11 @@
 
 .Warps:
 	db 5
-	warp_def $3, $17, 2, GROUP_CHERRYGROVE_MART, MAP_CHERRYGROVE_MART
-	warp_def $3, $1d, 1, GROUP_CHERRYGROVE_POKECENTER_1F, MAP_CHERRYGROVE_POKECENTER_1F
-	warp_def $7, $11, 1, GROUP_CHERRYGROVE_GYM_SPEECH_HOUSE, MAP_CHERRYGROVE_GYM_SPEECH_HOUSE
-	warp_def $9, $19, 1, GROUP_GUIDE_GENTS_HOUSE, MAP_GUIDE_GENTS_HOUSE
-	warp_def $b, $1f, 1, GROUP_CHERRYGROVE_EVOLUTION_SPEECH_HOUSE, MAP_CHERRYGROVE_EVOLUTION_SPEECH_HOUSE
+	warp_def $3, $17, 2, CHERRYGROVE_MART
+	warp_def $3, $1d, 1, CHERRYGROVE_POKECENTER_1F
+	warp_def $7, $11, 1, CHERRYGROVE_GYM_SPEECH_HOUSE
+	warp_def $9, $19, 1, GUIDE_GENTS_HOUSE
+	warp_def $b, $1f, 1, CHERRYGROVE_EVOLUTION_SPEECH_HOUSE
 
 .XYTriggers:
 	db 2
@@ -570,8 +570,8 @@
 
 .PersonEvents:
 	db 5
-	person_event SPRITE_GRAMPS, 10, 36, OW_UP | $2, $0, -1, -1, $0, 0, CherrygroveCityGuideGent, EVENT_GUIDE_GENT_IN_HIS_HOUSE
-	person_event SPRITE_SILVER, 10, 43, OW_DOWN | $3, $0, -1, -1, $0, 0, ObjectEvent, EVENT_RIVAL_CHERRYGROVE_CITY
-	person_event SPRITE_TEACHER, 16, 31, OW_UP | $1, $1, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, TeacherScript_0x19c146, -1
-	person_event SPRITE_YOUNGSTER, 11, 27, OW_UP | $1, $1, -1, -1, (PAL_OW_RED << 4) | $80, 0, YoungsterScript_0x19c15a, -1
-	person_event SPRITE_FISHER, 16, 11, OW_LEFT | $1, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, MysticWaterGuy, -1
+	person_event SPRITE_GRAMPS, 10, 36, $6, 0, 0, -1, -1, 0, 0, 0, CherrygroveCityGuideGent, EVENT_GUIDE_GENT_IN_HIS_HOUSE
+	person_event SPRITE_SILVER, 10, 43, $3, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_CHERRYGROVE_CITY
+	person_event SPRITE_TEACHER, 16, 31, $5, 0, 1, -1, -1, 8 + PAL_OW_BLUE, 0, 0, TeacherScript_0x19c146, -1
+	person_event SPRITE_YOUNGSTER, 11, 27, $5, 0, 1, -1, -1, 8 + PAL_OW_RED, 0, 0, YoungsterScript_0x19c15a, -1
+	person_event SPRITE_FISHER, 16, 11, $9, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, MysticWaterGuy, -1
--- a/maps/CherrygroveEvolutionSpeechHouse.asm
+++ b/maps/CherrygroveEvolutionSpeechHouse.asm
@@ -43,8 +43,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 5, GROUP_CHERRYGROVE_CITY, MAP_CHERRYGROVE_CITY
-	warp_def $7, $3, 5, GROUP_CHERRYGROVE_CITY, MAP_CHERRYGROVE_CITY
+	warp_def $7, $2, 5, CHERRYGROVE_CITY
+	warp_def $7, $3, 5, CHERRYGROVE_CITY
 
 .XYTriggers:
 	db 0
@@ -56,5 +56,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_LASS, 9, 7, OW_LEFT | $0, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, LassScript_0x196cb9, -1
-	person_event SPRITE_YOUNGSTER, 9, 6, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, YoungsterScript_0x196cb2, -1
+	person_event SPRITE_LASS, 9, 7, $8, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, LassScript_0x196cb9, -1
+	person_event SPRITE_YOUNGSTER, 9, 6, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, YoungsterScript_0x196cb2, -1
--- a/maps/CherrygroveGymSpeechHouse.asm
+++ b/maps/CherrygroveGymSpeechHouse.asm
@@ -46,8 +46,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 3, GROUP_CHERRYGROVE_CITY, MAP_CHERRYGROVE_CITY
-	warp_def $7, $3, 3, GROUP_CHERRYGROVE_CITY, MAP_CHERRYGROVE_CITY
+	warp_def $7, $2, 3, CHERRYGROVE_CITY
+	warp_def $7, $3, 3, CHERRYGROVE_CITY
 
 .XYTriggers:
 	db 0
@@ -59,5 +59,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_POKEFAN_M, 7, 6, OW_UP | $2, $0, -1, -1, $0, 0, PokefanMScript_0x196ae1, -1
-	person_event SPRITE_BUG_CATCHER, 9, 9, OW_UP | $1, $1, -1, -1, (PAL_OW_RED << 4) | $80, 0, BugCatcherScript_0x196ae4, -1
+	person_event SPRITE_POKEFAN_M, 7, 6, $6, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x196ae1, -1
+	person_event SPRITE_BUG_CATCHER, 9, 9, $5, 0, 1, -1, -1, 8 + PAL_OW_RED, 0, 0, BugCatcherScript_0x196ae4, -1
--- a/maps/CherrygroveMart.asm
+++ b/maps/CherrygroveMart.asm
@@ -72,8 +72,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 1, GROUP_CHERRYGROVE_CITY, MAP_CHERRYGROVE_CITY
-	warp_def $7, $3, 1, GROUP_CHERRYGROVE_CITY, MAP_CHERRYGROVE_CITY
+	warp_def $7, $2, 1, CHERRYGROVE_CITY
+	warp_def $7, $3, 1, CHERRYGROVE_CITY
 
 .XYTriggers:
 	db 0
@@ -83,6 +83,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 7, 5, OW_LEFT | $1, $0, -1, -1, $0, 0, ClerkScript_0x19680a, -1
-	person_event SPRITE_COOLTRAINER_M, 10, 11, OW_UP | $1, $2, -1, -1, $0, 0, CooltrainerMScript_0x19681d, -1
-	person_event SPRITE_YOUNGSTER, 9, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, YoungsterScript_0x196831, -1
+	person_event SPRITE_CLERK, 7, 5, $9, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x19680a, -1
+	person_event SPRITE_COOLTRAINER_M, 10, 11, $5, 0, 2, -1, -1, 0, 0, 0, CooltrainerMScript_0x19681d, -1
+	person_event SPRITE_YOUNGSTER, 9, 6, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, YoungsterScript_0x196831, -1
--- a/maps/CherrygrovePokeCenter1F.asm
+++ b/maps/CherrygrovePokeCenter1F.asm
@@ -68,9 +68,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $3, 2, GROUP_CHERRYGROVE_CITY, MAP_CHERRYGROVE_CITY
-	warp_def $7, $4, 2, GROUP_CHERRYGROVE_CITY, MAP_CHERRYGROVE_CITY
-	warp_def $7, $0, 1, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
+	warp_def $7, $3, 2, CHERRYGROVE_CITY
+	warp_def $7, $4, 2, CHERRYGROVE_CITY
+	warp_def $7, $0, 1, POKECENTER_2F
 
 .XYTriggers:
 	db 0
@@ -80,7 +80,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_NURSE, 5, 7, OW_UP | $2, $0, -1, -1, $0, 0, NurseScript_0x19696d, -1
-	person_event SPRITE_FISHER, 7, 6, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, FisherScript_0x196970, -1
-	person_event SPRITE_GENTLEMAN, 10, 12, OW_UP | $3, $0, -1, -1, $0, 0, GentlemanScript_0x196973, -1
-	person_event SPRITE_TEACHER, 10, 5, OW_LEFT | $1, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, TeacherScript_0x196976, -1
+	person_event SPRITE_NURSE, 5, 7, $6, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x19696d, -1
+	person_event SPRITE_FISHER, 7, 6, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, FisherScript_0x196970, -1
+	person_event SPRITE_GENTLEMAN, 10, 12, $7, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x196973, -1
+	person_event SPRITE_TEACHER, 10, 5, $9, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, TeacherScript_0x196976, -1
--- a/maps/CianwoodCity.asm
+++ b/maps/CianwoodCity.asm
@@ -41,7 +41,7 @@
 	pause 10
 	dotrigger $0
 	clearevent EVENT_SAW_SUICUNE_ON_ROUTE_42
-	domaptrigger GROUP_ROUTE_42, MAP_ROUTE_42, $1
+	domaptrigger ROUTE_42, $1
 	checkevent EVENT_FOUGHT_EUSINE
 	iftrue .Done
 	setevent EVENT_FOUGHT_EUSINE
@@ -376,13 +376,13 @@
 
 .Warps:
 	db 7
-	warp_def $29, $11, 1, GROUP_MANIAS_HOUSE, MAP_MANIAS_HOUSE
-	warp_def $2b, $8, 1, GROUP_CIANWOOD_GYM, MAP_CIANWOOD_GYM
-	warp_def $2b, $17, 1, GROUP_CIANWOOD_POKECENTER_1F, MAP_CIANWOOD_POKECENTER_1F
-	warp_def $2f, $f, 1, GROUP_CIANWOOD_PHARMACY, MAP_CIANWOOD_PHARMACY
-	warp_def $1f, $9, 1, GROUP_CIANWOOD_CITY_PHOTO_STUDIO, MAP_CIANWOOD_CITY_PHOTO_STUDIO
-	warp_def $25, $f, 1, GROUP_CIANWOOD_LUGIA_SPEECH_HOUSE, MAP_CIANWOOD_LUGIA_SPEECH_HOUSE
-	warp_def $11, $5, 1, GROUP_POKE_SEERS_HOUSE, MAP_POKE_SEERS_HOUSE
+	warp_def $29, $11, 1, MANIAS_HOUSE
+	warp_def $2b, $8, 1, CIANWOOD_GYM
+	warp_def $2b, $17, 1, CIANWOOD_POKECENTER_1F
+	warp_def $2f, $f, 1, CIANWOOD_PHARMACY
+	warp_def $1f, $9, 1, CIANWOOD_CITY_PHOTO_STUDIO
+	warp_def $25, $f, 1, CIANWOOD_LUGIA_SPEECH_HOUSE
+	warp_def $11, $5, 1, POKE_SEERS_HOUSE
 
 .XYTriggers:
 	db 1
@@ -401,15 +401,15 @@
 
 .PersonEvents:
 	db 12
-	person_event SPRITE_STANDING_YOUNGSTER, 41, 25, OW_DOWN | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, StandingYoungsterScript_0x1a00b3, -1
-	person_event SPRITE_POKEFAN_M, 37, 21, OW_UP | $1, $1, -1, -1, $0, 0, PokefanMScript_0x1a00b6, -1
-	person_event SPRITE_LASS, 46, 18, OW_UP | $0, $20, -1, -1, $0, 0, LassScript_0x1a00b9, -1
-	person_event SPRITE_ROCK, 20, 12, OW_LEFT | $10, $0, -1, -1, $0, 0, CianwoodCityRock, -1
-	person_event SPRITE_ROCK, 21, 13, OW_LEFT | $10, $0, -1, -1, $0, 0, CianwoodCityRock, -1
-	person_event SPRITE_ROCK, 29, 8, OW_LEFT | $10, $0, -1, -1, $0, 0, CianwoodCityRock, -1
-	person_event SPRITE_ROCK, 33, 9, OW_LEFT | $10, $0, -1, -1, $0, 0, CianwoodCityRock, -1
-	person_event SPRITE_ROCK, 31, 14, OW_LEFT | $10, $0, -1, -1, $0, 0, CianwoodCityRock, -1
-	person_event SPRITE_ROCK, 23, 8, OW_LEFT | $10, $0, -1, -1, $0, 0, CianwoodCityRock, -1
-	person_event SPRITE_POKEFAN_F, 50, 14, OW_UP | $1, $1, -1, -1, $0, 0, PokefanFScript_0x1a0084, -1
-	person_event SPRITE_SUPER_NERD, 25, 15, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ObjectEvent, EVENT_CIANWOOD_CITY_EUSINE
-	person_event SPRITE_SUICUNE, 18, 14, OW_DOWN | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ObjectEvent, EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY
+	person_event SPRITE_STANDING_YOUNGSTER, 41, 25, $3, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, StandingYoungsterScript_0x1a00b3, -1
+	person_event SPRITE_POKEFAN_M, 37, 21, $5, 0, 1, -1, -1, 0, 0, 0, PokefanMScript_0x1a00b6, -1
+	person_event SPRITE_LASS, 46, 18, $4, 2, 0, -1, -1, 0, 0, 0, LassScript_0x1a00b9, -1
+	person_event SPRITE_ROCK, 20, 12, $18, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1
+	person_event SPRITE_ROCK, 21, 13, $18, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1
+	person_event SPRITE_ROCK, 29, 8, $18, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1
+	person_event SPRITE_ROCK, 33, 9, $18, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1
+	person_event SPRITE_ROCK, 31, 14, $18, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1
+	person_event SPRITE_ROCK, 23, 8, $18, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1
+	person_event SPRITE_POKEFAN_F, 50, 14, $5, 0, 1, -1, -1, 0, 0, 0, PokefanFScript_0x1a0084, -1
+	person_event SPRITE_SUPER_NERD, 25, 15, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_CIANWOOD_CITY_EUSINE
+	person_event SPRITE_SUICUNE, 18, 14, $1, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY
--- a/maps/CianwoodCityPhotoStudio.asm
+++ b/maps/CianwoodCityPhotoStudio.asm
@@ -51,8 +51,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 5, GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY
-	warp_def $7, $3, 5, GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY
+	warp_def $7, $2, 5, CIANWOOD_CITY
+	warp_def $7, $3, 5, CIANWOOD_CITY
 
 .XYTriggers:
 	db 0
@@ -62,4 +62,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_FISHING_GURU, 7, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, FishingGuruScript_0x9e0e0, -1
+	person_event SPRITE_FISHING_GURU, 7, 6, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, FishingGuruScript_0x9e0e0, -1
--- a/maps/CianwoodGym.asm
+++ b/maps/CianwoodGym.asm
@@ -300,8 +300,8 @@
 
 .Warps:
 	db 2
-	warp_def $11, $4, 2, GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY
-	warp_def $11, $5, 2, GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY
+	warp_def $11, $4, 2, CIANWOOD_CITY
+	warp_def $11, $5, 2, CIANWOOD_CITY
 
 .XYTriggers:
 	db 0
@@ -313,12 +313,12 @@
 
 .PersonEvents:
 	db 9
-	person_event SPRITE_CHUCK, 5, 8, OW_UP | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, ChuckScript_0x9d60f, -1
-	person_event SPRITE_BLACK_BELT, 16, 6, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 3, TrainerBlackbeltYoshi, -1
-	person_event SPRITE_BLACK_BELT, 16, 11, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 3, TrainerBlackbeltLao, -1
-	person_event SPRITE_BLACK_BELT, 13, 7, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 2, TrainerBlackbeltNob, -1
-	person_event SPRITE_BLACK_BELT, 9, 9, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 1, TrainerBlackbeltLung, -1
-	person_event SPRITE_BOULDER, 5, 9, OW_LEFT | $11, $0, -1, -1, $0, 0, CianwoodGymBoulder, -1
-	person_event SPRITE_BOULDER, 11, 7, OW_LEFT | $11, $0, -1, -1, $0, 0, CianwoodGymBoulder, -1
-	person_event SPRITE_BOULDER, 11, 8, OW_LEFT | $11, $0, -1, -1, $0, 0, CianwoodGymBoulder, -1
-	person_event SPRITE_BOULDER, 11, 9, OW_LEFT | $11, $0, -1, -1, $0, 0, CianwoodGymBoulder, -1
+	person_event SPRITE_CHUCK, 5, 8, $6, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, ChuckScript_0x9d60f, -1
+	person_event SPRITE_BLACK_BELT, 16, 6, $9, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 3, TrainerBlackbeltYoshi, -1
+	person_event SPRITE_BLACK_BELT, 16, 11, $8, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 3, TrainerBlackbeltLao, -1
+	person_event SPRITE_BLACK_BELT, 13, 7, $9, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 2, TrainerBlackbeltNob, -1
+	person_event SPRITE_BLACK_BELT, 9, 9, $8, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 1, TrainerBlackbeltLung, -1
+	person_event SPRITE_BOULDER, 5, 9, $19, 0, 0, -1, -1, 0, 0, 0, CianwoodGymBoulder, -1
+	person_event SPRITE_BOULDER, 11, 7, $19, 0, 0, -1, -1, 0, 0, 0, CianwoodGymBoulder, -1
+	person_event SPRITE_BOULDER, 11, 8, $19, 0, 0, -1, -1, 0, 0, 0, CianwoodGymBoulder, -1
+	person_event SPRITE_BOULDER, 11, 9, $19, 0, 0, -1, -1, 0, 0, 0, CianwoodGymBoulder, -1
--- a/maps/CianwoodLugiaSpeechHouse.asm
+++ b/maps/CianwoodLugiaSpeechHouse.asm
@@ -62,8 +62,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 6, GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY
-	warp_def $7, $3, 6, GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY
+	warp_def $7, $2, 6, CIANWOOD_CITY
+	warp_def $7, $3, 6, CIANWOOD_CITY
 
 .XYTriggers:
 	db 0
@@ -75,6 +75,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_TEACHER, 8, 6, OW_UP | $2, $0, -1, -1, $0, 0, TeacherScript_0x9e1b0, -1
-	person_event SPRITE_LASS, 9, 10, OW_UP | $1, $1, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, LassScript_0x9e1b3, -1
-	person_event SPRITE_TWIN, 6, 4, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, TwinScript_0x9e1b6, -1
+	person_event SPRITE_TEACHER, 8, 6, $6, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x9e1b0, -1
+	person_event SPRITE_LASS, 9, 10, $5, 0, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 0, LassScript_0x9e1b3, -1
+	person_event SPRITE_TWIN, 6, 4, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, TwinScript_0x9e1b6, -1
--- a/maps/CianwoodPharmacy.asm
+++ b/maps/CianwoodPharmacy.asm
@@ -77,8 +77,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 4, GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY
-	warp_def $7, $3, 4, GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY
+	warp_def $7, $2, 4, CIANWOOD_CITY
+	warp_def $7, $3, 4, CIANWOOD_CITY
 
 .XYTriggers:
 	db 0
@@ -90,4 +90,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_PHARMACIST, 7, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, CianwoodPharmacist, -1
+	person_event SPRITE_PHARMACIST, 7, 6, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, CianwoodPharmacist, -1
--- a/maps/CianwoodPokeCenter1F.asm
+++ b/maps/CianwoodPokeCenter1F.asm
@@ -131,9 +131,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $3, 3, GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY
-	warp_def $7, $4, 3, GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY
-	warp_def $7, $0, 1, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
+	warp_def $7, $3, 3, CIANWOOD_CITY
+	warp_def $7, $4, 3, CIANWOOD_CITY
+	warp_def $7, $0, 1, POKECENTER_2F
 
 .XYTriggers:
 	db 0
@@ -143,7 +143,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_NURSE, 5, 7, OW_UP | $2, $0, -1, -1, $0, 0, NurseScript_0x9dbcf, -1
-	person_event SPRITE_LASS, 9, 5, OW_UP | $0, $10, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, LassScript_0x9dbd2, -1
-	person_event SPRITE_GYM_GUY, 7, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, CianwoodGymGuyScript, -1
-	person_event SPRITE_SUPER_NERD, 10, 12, OW_UP | $1, $1, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, SuperNerdScript_0x9dbea, -1
+	person_event SPRITE_NURSE, 5, 7, $6, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x9dbcf, -1
+	person_event SPRITE_LASS, 9, 5, $4, 1, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, LassScript_0x9dbd2, -1
+	person_event SPRITE_GYM_GUY, 7, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, CianwoodGymGuyScript, -1
+	person_event SPRITE_SUPER_NERD, 10, 12, $5, 0, 1, -1, -1, 8 + PAL_OW_BLUE, 0, 0, SuperNerdScript_0x9dbea, -1
--- a/maps/CinnabarIsland.asm
+++ b/maps/CinnabarIsland.asm
@@ -132,7 +132,7 @@
 
 .Warps:
 	db 1
-	warp_def $b, $b, 1, GROUP_CINNABAR_POKECENTER_1F, MAP_CINNABAR_POKECENTER_1F
+	warp_def $b, $b, 1, CINNABAR_POKECENTER_1F
 
 .XYTriggers:
 	db 0
@@ -146,4 +146,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_BLUE, 10, 13, OW_DOWN | $3, $0, -1, -1, $0, 0, CinnabarIslandBlue, EVENT_BLUE_IN_CINNABAR
+	person_event SPRITE_BLUE, 10, 13, $3, 0, 0, -1, -1, 0, 0, 0, CinnabarIslandBlue, EVENT_BLUE_IN_CINNABAR
--- a/maps/CinnabarPokeCenter1F.asm
+++ b/maps/CinnabarPokeCenter1F.asm
@@ -35,9 +35,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $3, 1, GROUP_CINNABAR_ISLAND, MAP_CINNABAR_ISLAND
-	warp_def $7, $4, 1, GROUP_CINNABAR_ISLAND, MAP_CINNABAR_ISLAND
-	warp_def $7, $0, 1, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
+	warp_def $7, $3, 1, CINNABAR_ISLAND
+	warp_def $7, $4, 1, CINNABAR_ISLAND
+	warp_def $7, $0, 1, POKECENTER_2F
 
 .XYTriggers:
 	db 0
@@ -47,6 +47,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_NURSE, 5, 7, OW_UP | $2, $0, -1, -1, $0, 0, NurseScript_0x1ab32c, -1
-	person_event SPRITE_COOLTRAINER_F, 10, 11, OW_UP | $1, $2, -1, -1, (PAL_OW_RED << 4) | $80, 0, CooltrainerFScript_0x1ab32f, -1
-	person_event SPRITE_FISHER, 8, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, FisherScript_0x1ab332, -1
+	person_event SPRITE_NURSE, 5, 7, $6, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x1ab32c, -1
+	person_event SPRITE_COOLTRAINER_F, 10, 11, $5, 0, 2, -1, -1, 8 + PAL_OW_RED, 0, 0, CooltrainerFScript_0x1ab32f, -1
+	person_event SPRITE_FISHER, 8, 6, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, FisherScript_0x1ab332, -1
--- a/maps/CinnabarPokeCenter2FBeta.asm
+++ b/maps/CinnabarPokeCenter2FBeta.asm
@@ -11,7 +11,7 @@
 
 .Warps:
 	db 1
-	warp_def $7, $0, 3, GROUP_CINNABAR_POKECENTER_1F, MAP_CINNABAR_POKECENTER_1F
+	warp_def $7, $0, 3, CINNABAR_POKECENTER_1F
 
 .XYTriggers:
 	db 0
--- a/maps/Colosseum.asm
+++ b/maps/Colosseum.asm
@@ -39,12 +39,12 @@
 	return
 
 ColosseumScript_InitializeCB:
-	domaptrigger GROUP_POKECENTER_2F, MAP_POKECENTER_2F, $2
+	domaptrigger POKECENTER_2F, $2
 	return
 
 ColosseumScript_Initialize:
 	dotrigger $1
-	domaptrigger GROUP_POKECENTER_2F, MAP_POKECENTER_2F, $2
+	domaptrigger POKECENTER_2F, $2
 	end
 
 MapColosseumSignpost1Script:
@@ -70,8 +70,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $4, 3, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
-	warp_def $7, $5, 3, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
+	warp_def $7, $4, 3, POKECENTER_2F
+	warp_def $7, $5, 3, POKECENTER_2F
 
 .XYTriggers:
 	db 0
@@ -83,5 +83,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_CHRIS, 8, 7, OW_LEFT | $1, $0, -1, -1, $0, 0, ChrisScript_0x193499, EVENT_GAVE_KURT_APRICORNS
-	person_event SPRITE_CHRIS, 8, 10, OW_LEFT | $0, $0, -1, -1, $0, 0, ChrisScript_0x193499, EVENT_RECEIVED_BALLS_FROM_KURT
+	person_event SPRITE_CHRIS, 8, 7, $9, 0, 0, -1, -1, 0, 0, 0, ChrisScript_0x193499, EVENT_GAVE_KURT_APRICORNS
+	person_event SPRITE_CHRIS, 8, 10, $8, 0, 0, -1, -1, 0, 0, 0, ChrisScript_0x193499, EVENT_RECEIVED_BALLS_FROM_KURT
--- a/maps/CopycatsHouse1F.asm
+++ b/maps/CopycatsHouse1F.asm
@@ -73,9 +73,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $2, 8, GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY
-	warp_def $7, $3, 8, GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY
-	warp_def $0, $2, 1, GROUP_COPYCATS_HOUSE_2F, MAP_COPYCATS_HOUSE_2F
+	warp_def $7, $2, 8, SAFFRON_CITY
+	warp_def $7, $3, 8, SAFFRON_CITY
+	warp_def $0, $2, 1, COPYCATS_HOUSE_2F
 
 .XYTriggers:
 	db 0
@@ -85,6 +85,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_POKEFAN_M, 7, 6, OW_UP | $2, $0, -1, -1, $0, 0, PokefanMScript_0x18ad13, -1
-	person_event SPRITE_POKEFAN_F, 8, 9, OW_LEFT | $0, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, PokefanFScript_0x18ad16, -1
-	person_event SPRITE_CLEFAIRY, 10, 10, OW_UP | $12, $0, -1, -1, $0, 0, ClefairyScript_0x18ad2a, -1
+	person_event SPRITE_POKEFAN_M, 7, 6, $6, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x18ad13, -1
+	person_event SPRITE_POKEFAN_F, 8, 9, $8, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, PokefanFScript_0x18ad16, -1
+	person_event SPRITE_CLEFAIRY, 10, 10, $16, 0, 0, -1, -1, 0, 0, 0, ClefairyScript_0x18ad2a, -1
--- a/maps/CopycatsHouse2F.asm
+++ b/maps/CopycatsHouse2F.asm
@@ -361,7 +361,7 @@
 
 .Warps:
 	db 1
-	warp_def $0, $3, 3, GROUP_COPYCATS_HOUSE_1F, MAP_COPYCATS_HOUSE_1F
+	warp_def $0, $3, 3, COPYCATS_HOUSE_1F
 
 .XYTriggers:
 	db 0
@@ -373,9 +373,9 @@
 
 .PersonEvents:
 	db 6
-	person_event SPRITE_COPYCAT, 7, 8, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, Copycat, EVENT_COPYCAT_1
-	person_event SPRITE_MOLTRES, 8, 10, OW_UP | $12, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, CopycatsDodrio, -1
-	person_event SPRITE_FAIRY, 5, 10, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, CopycatsHouse2FDoll, EVENT_COPYCATS_HOUSE_2F_DOLL
-	person_event SPRITE_MONSTER, 5, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, CopycatsHouse2FDoll, -1
-	person_event SPRITE_BIRD, 5, 11, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, CopycatsHouse2FDoll, -1
-	person_event SPRITE_COPYCAT, 7, 8, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, Copycat, EVENT_COPYCAT_2
+	person_event SPRITE_COPYCAT, 7, 8, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, Copycat, EVENT_COPYCAT_1
+	person_event SPRITE_MOLTRES, 8, 10, $16, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, CopycatsDodrio, -1
+	person_event SPRITE_FAIRY, 5, 10, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, CopycatsHouse2FDoll, EVENT_COPYCATS_HOUSE_2F_DOLL
+	person_event SPRITE_MONSTER, 5, 6, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, CopycatsHouse2FDoll, -1
+	person_event SPRITE_BIRD, 5, 11, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, CopycatsHouse2FDoll, -1
+	person_event SPRITE_COPYCAT, 7, 8, $8, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, Copycat, EVENT_COPYCAT_2
--- a/maps/DanceTheatre.asm
+++ b/maps/DanceTheatre.asm
@@ -332,8 +332,8 @@
 
 .Warps:
 	db 2
-	warp_def $d, $5, 8, GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY
-	warp_def $d, $6, 8, GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY
+	warp_def $d, $5, 8, ECRUTEAK_CITY
+	warp_def $d, $6, 8, ECRUTEAK_CITY
 
 .XYTriggers:
 	db 0
@@ -345,12 +345,12 @@
 
 .PersonEvents:
 	db 9
-	person_event SPRITE_KIMONO_GIRL, 6, 4, OW_RIGHT | $12, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 0, TrainerKimono_girlNaoko2, -1
-	person_event SPRITE_KIMONO_GIRL, 5, 6, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 0, TrainerKimono_girlSayo, -1
-	person_event SPRITE_KIMONO_GIRL, 6, 10, OW_DOWN | $3, $0, -1, -1, (PAL_OW_RED << 4) | $82, 0, TrainerKimono_girlZuki, -1
-	person_event SPRITE_KIMONO_GIRL, 5, 13, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 0, TrainerKimono_girlKuni, -1
-	person_event SPRITE_KIMONO_GIRL, 6, 15, OW_RIGHT | $13, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 0, TrainerKimono_girlMiki, -1
-	person_event SPRITE_GENTLEMAN, 14, 11, OW_UP | $3, $0, -1, -1, $0, 0, GentlemanScript_0x994c6, -1
-	person_event SPRITE_RHYDON, 12, 10, OW_UP | $12, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, RhydonScript_0x9951b, -1
-	person_event SPRITE_COOLTRAINER_M, 14, 14, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, CooltrainerMScript_0x99525, -1
-	person_event SPRITE_GRANNY, 10, 7, OW_UP | $3, $0, -1, -1, $0, 0, GrannyScript_0x99528, -1
+	person_event SPRITE_KIMONO_GIRL, 6, 4, $1e, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 0, TrainerKimono_girlNaoko2, -1
+	person_event SPRITE_KIMONO_GIRL, 5, 6, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 0, TrainerKimono_girlSayo, -1
+	person_event SPRITE_KIMONO_GIRL, 6, 10, $3, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 0, TrainerKimono_girlZuki, -1
+	person_event SPRITE_KIMONO_GIRL, 5, 13, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 0, TrainerKimono_girlKuni, -1
+	person_event SPRITE_KIMONO_GIRL, 6, 15, $1f, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 0, TrainerKimono_girlMiki, -1
+	person_event SPRITE_GENTLEMAN, 14, 11, $7, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x994c6, -1
+	person_event SPRITE_RHYDON, 12, 10, $16, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, RhydonScript_0x9951b, -1
+	person_event SPRITE_COOLTRAINER_M, 14, 14, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, CooltrainerMScript_0x99525, -1
+	person_event SPRITE_GRANNY, 10, 7, $7, 0, 0, -1, -1, 0, 0, 0, GrannyScript_0x99528, -1
--- a/maps/DarkCaveBlackthornEntrance.asm
+++ b/maps/DarkCaveBlackthornEntrance.asm
@@ -62,8 +62,8 @@
 
 .Warps:
 	db 2
-	warp_def $3, $17, 1, GROUP_ROUTE_45, MAP_ROUTE_45
-	warp_def $19, $3, 2, GROUP_DARK_CAVE_VIOLET_ENTRANCE, MAP_DARK_CAVE_VIOLET_ENTRANCE
+	warp_def $3, $17, 1, ROUTE_45
+	warp_def $19, $3, 2, DARK_CAVE_VIOLET_ENTRANCE
 
 .XYTriggers:
 	db 0
@@ -73,6 +73,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_PHARMACIST, 7, 11, OW_DOWN | $3, $0, -1, -1, $0, 0, PharmacistScript_0x18c720, -1
-	person_event SPRITE_POKE_BALL, 28, 25, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c73b, EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_REVIVE
-	person_event SPRITE_POKE_BALL, 26, 11, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c73d, EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_TM_SNORE
+	person_event SPRITE_PHARMACIST, 7, 11, $3, 0, 0, -1, -1, 0, 0, 0, PharmacistScript_0x18c720, -1
+	person_event SPRITE_POKE_BALL, 28, 25, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c73b, EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_REVIVE
+	person_event SPRITE_POKE_BALL, 26, 11, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c73d, EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_TM_SNORE
--- a/maps/DarkCaveVioletEntrance.asm
+++ b/maps/DarkCaveVioletEntrance.asm
@@ -30,9 +30,9 @@
 
 .Warps:
 	db 3
-	warp_def $f, $3, 3, GROUP_ROUTE_31, MAP_ROUTE_31
-	warp_def $1, $11, 2, GROUP_DARK_CAVE_BLACKTHORN_ENTRANCE, MAP_DARK_CAVE_BLACKTHORN_ENTRANCE
-	warp_def $21, $23, 3, GROUP_ROUTE_46, MAP_ROUTE_46
+	warp_def $f, $3, 3, ROUTE_31
+	warp_def $1, $11, 2, DARK_CAVE_BLACKTHORN_ENTRANCE
+	warp_def $21, $23, 3, ROUTE_46
 
 .XYTriggers:
 	db 0
@@ -43,11 +43,11 @@
 
 .PersonEvents:
 	db 8
-	person_event SPRITE_POKE_BALL, 12, 10, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c68e, EVENT_DARK_CAVE_VIOLET_ENTRANCE_POTION
-	person_event SPRITE_ROCK, 18, 20, OW_LEFT | $10, $0, -1, -1, $0, 0, DarkCaveVioletEntranceRock, -1
-	person_event SPRITE_ROCK, 10, 31, OW_LEFT | $10, $0, -1, -1, $0, 0, DarkCaveVioletEntranceRock, -1
-	person_event SPRITE_ROCK, 18, 11, OW_LEFT | $10, $0, -1, -1, $0, 0, DarkCaveVioletEntranceRock, -1
-	person_event SPRITE_ROCK, 35, 40, OW_LEFT | $10, $0, -1, -1, $0, 0, DarkCaveVioletEntranceRock, -1
-	person_event SPRITE_POKE_BALL, 26, 40, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c690, EVENT_DARK_CAVE_VIOLET_ENTRANCE_FULL_HEAL
-	person_event SPRITE_POKE_BALL, 13, 39, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c692, EVENT_DARK_CAVE_VIOLET_ENTRANCE_HYPER_POTION
-	person_event SPRITE_POKE_BALL, 32, 34, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c694, EVENT_DARK_CAVE_VIOLET_ENTRANCE_DIRE_HIT
+	person_event SPRITE_POKE_BALL, 12, 10, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c68e, EVENT_DARK_CAVE_VIOLET_ENTRANCE_POTION
+	person_event SPRITE_ROCK, 18, 20, $18, 0, 0, -1, -1, 0, 0, 0, DarkCaveVioletEntranceRock, -1
+	person_event SPRITE_ROCK, 10, 31, $18, 0, 0, -1, -1, 0, 0, 0, DarkCaveVioletEntranceRock, -1
+	person_event SPRITE_ROCK, 18, 11, $18, 0, 0, -1, -1, 0, 0, 0, DarkCaveVioletEntranceRock, -1
+	person_event SPRITE_ROCK, 35, 40, $18, 0, 0, -1, -1, 0, 0, 0, DarkCaveVioletEntranceRock, -1
+	person_event SPRITE_POKE_BALL, 26, 40, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c690, EVENT_DARK_CAVE_VIOLET_ENTRANCE_FULL_HEAL
+	person_event SPRITE_POKE_BALL, 13, 39, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c692, EVENT_DARK_CAVE_VIOLET_ENTRANCE_HYPER_POTION
+	person_event SPRITE_POKE_BALL, 32, 34, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c694, EVENT_DARK_CAVE_VIOLET_ENTRANCE_DIRE_HIT
--- a/maps/DayCare.asm
+++ b/maps/DayCare.asm
@@ -160,10 +160,10 @@
 
 .Warps:
 	db 4
-	warp_def $5, $0, 3, GROUP_ROUTE_34, MAP_ROUTE_34
-	warp_def $6, $0, 4, GROUP_ROUTE_34, MAP_ROUTE_34
-	warp_def $7, $2, 5, GROUP_ROUTE_34, MAP_ROUTE_34
-	warp_def $7, $3, 5, GROUP_ROUTE_34, MAP_ROUTE_34
+	warp_def $5, $0, 3, ROUTE_34
+	warp_def $6, $0, 4, ROUTE_34
+	warp_def $7, $2, 5, ROUTE_34
+	warp_def $7, $3, 5, ROUTE_34
 
 .XYTriggers:
 	db 0
@@ -175,5 +175,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_GRAMPS, 7, 6, OW_LEFT | $1, $0, -1, -1, $0, 0, GrampsScript_0x62f8f, EVENT_DAYCARE_MAN_IN_DAYCARE
-	person_event SPRITE_GRANNY, 7, 9, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, GrannyScript_0x62fc3, -1
+	person_event SPRITE_GRAMPS, 7, 6, $9, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x62f8f, EVENT_DAYCARE_MAN_IN_DAYCARE
+	person_event SPRITE_GRANNY, 7, 9, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, GrannyScript_0x62fc3, -1
--- a/maps/DiglettsCave.asm
+++ b/maps/DiglettsCave.asm
@@ -26,12 +26,12 @@
 
 .Warps:
 	db 6
-	warp_def $21, $3, 10, GROUP_VERMILION_CITY, MAP_VERMILION_CITY
-	warp_def $1f, $5, 5, GROUP_DIGLETTS_CAVE, MAP_DIGLETTS_CAVE
-	warp_def $5, $f, 5, GROUP_ROUTE_2, MAP_ROUTE_2
-	warp_def $3, $11, 6, GROUP_DIGLETTS_CAVE, MAP_DIGLETTS_CAVE
-	warp_def $21, $11, 2, GROUP_DIGLETTS_CAVE, MAP_DIGLETTS_CAVE
-	warp_def $3, $3, 4, GROUP_DIGLETTS_CAVE, MAP_DIGLETTS_CAVE
+	warp_def $21, $3, 10, VERMILION_CITY
+	warp_def $1f, $5, 5, DIGLETTS_CAVE
+	warp_def $5, $f, 5, ROUTE_2
+	warp_def $3, $11, 6, DIGLETTS_CAVE
+	warp_def $21, $11, 2, DIGLETTS_CAVE
+	warp_def $3, $3, 4, DIGLETTS_CAVE
 
 .XYTriggers:
 	db 0
@@ -42,4 +42,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_POKEFAN_M, 35, 7, OW_UP | $2, $0, -1, -1, $0, 0, PokefanMScript_0x74002, -1
+	person_event SPRITE_POKEFAN_M, 35, 7, $6, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x74002, -1
--- a/maps/DragonShrine.asm
+++ b/maps/DragonShrine.asm
@@ -162,7 +162,7 @@
 	special RestartMapMusic
 	specialphonecall ELMCALL_MASTERBALL
 	dotrigger $1
-	domaptrigger GROUP_DRAGONS_DEN_B1F, MAP_DRAGONS_DEN_B1F, $1
+	domaptrigger DRAGONS_DEN_B1F, $1
 	writetext UnknownText_0x18d9f2
 	keeptextopen
 	writetext UnknownText_0x18da0b
@@ -670,8 +670,8 @@
 
 .Warps:
 	db 2
-	warp_def $9, $4, 2, GROUP_DRAGONS_DEN_B1F, MAP_DRAGONS_DEN_B1F
-	warp_def $9, $5, 2, GROUP_DRAGONS_DEN_B1F, MAP_DRAGONS_DEN_B1F
+	warp_def $9, $4, 2, DRAGONS_DEN_B1F
+	warp_def $9, $5, 2, DRAGONS_DEN_B1F
 
 .XYTriggers:
 	db 0
@@ -681,7 +681,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_ELDER, 5, 9, OW_UP | $2, $0, -1, -1, $0, 0, ElderScript_0x18d1a5, EVENT_GAVE_KURT_APRICORNS
-	person_event SPRITE_ELDER, 8, 6, OW_LEFT | $1, $0, -1, -1, $0, 0, ElderScript_0x18d205, EVENT_GAVE_KURT_APRICORNS
-	person_event SPRITE_ELDER, 8, 11, OW_LEFT | $0, $0, -1, -1, $0, 0, ElderScript_0x18d20d, EVENT_GAVE_KURT_APRICORNS
-	person_event SPRITE_CLAIR, 12, 8, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ObjectEvent, EVENT_DRAGON_SHRINE_CLAIR
+	person_event SPRITE_ELDER, 5, 9, $6, 0, 0, -1, -1, 0, 0, 0, ElderScript_0x18d1a5, EVENT_GAVE_KURT_APRICORNS
+	person_event SPRITE_ELDER, 8, 6, $9, 0, 0, -1, -1, 0, 0, 0, ElderScript_0x18d205, EVENT_GAVE_KURT_APRICORNS
+	person_event SPRITE_ELDER, 8, 11, $8, 0, 0, -1, -1, 0, 0, 0, ElderScript_0x18d20d, EVENT_GAVE_KURT_APRICORNS
+	person_event SPRITE_CLAIR, 12, 8, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_DRAGON_SHRINE_CLAIR
--- a/maps/DragonsDen1F.asm
+++ b/maps/DragonsDen1F.asm
@@ -11,10 +11,10 @@
 
 .Warps:
 	db 4
-	warp_def $5, $3, 8, GROUP_BLACKTHORN_CITY, MAP_BLACKTHORN_CITY
-	warp_def $3, $3, 4, GROUP_DRAGONS_DEN_1F, MAP_DRAGONS_DEN_1F
-	warp_def $f, $5, 1, GROUP_DRAGONS_DEN_B1F, MAP_DRAGONS_DEN_B1F
-	warp_def $d, $5, 2, GROUP_DRAGONS_DEN_1F, MAP_DRAGONS_DEN_1F
+	warp_def $5, $3, 8, BLACKTHORN_CITY
+	warp_def $3, $3, 4, DRAGONS_DEN_1F
+	warp_def $f, $5, 1, DRAGONS_DEN_B1F
+	warp_def $d, $5, 2, DRAGONS_DEN_1F
 
 .XYTriggers:
 	db 0
--- a/maps/DragonsDenB1F.asm
+++ b/maps/DragonsDenB1F.asm
@@ -403,8 +403,8 @@
 
 .Warps:
 	db 2
-	warp_def $3, $14, 3, GROUP_DRAGONS_DEN_1F, MAP_DRAGONS_DEN_1F
-	warp_def $1d, $13, 1, GROUP_DRAGON_SHRINE, MAP_DRAGON_SHRINE
+	warp_def $3, $14, 3, DRAGONS_DEN_1F
+	warp_def $1d, $13, 1, DRAGON_SHRINE
 
 .XYTriggers:
 	db 1
@@ -419,12 +419,12 @@
 
 .PersonEvents:
 	db 9
-	person_event SPRITE_POKE_BALL, 20, 39, OW_DOWN | $1, $0, -1, -1, $0, 0, PokeBallScript_0x18c95a, EVENT_DRAGONS_DEN_B1F_DRAGON_FANG
-	person_event SPRITE_CLAIR, 34, 18, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ObjectEvent, EVENT_DRAGONS_DEN_CLAIR
-	person_event SPRITE_SILVER, 27, 24, OW_DOWN | $2, $22, -1, -1, $0, 0, SilverScript_0x18c97e, EVENT_RIVAL_DRAGONS_DEN
-	person_event SPRITE_COOLTRAINER_M, 12, 24, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $82, 4, TrainerCooltrainermDarin, -1
-	person_event SPRITE_COOLTRAINER_F, 12, 12, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerCooltrainerfCara, -1
-	person_event SPRITE_TWIN, 21, 8, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $82, 1, TrainerTwinsLeaandpia1, -1
-	person_event SPRITE_TWIN, 22, 8, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $82, 1, TrainerTwinsLeaandpia2, -1
-	person_event SPRITE_POKE_BALL, 8, 34, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c9a1, EVENT_DRAGONS_DEN_B1F_CALCIUM
-	person_event SPRITE_POKE_BALL, 24, 9, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c9a3, EVENT_DRAGONS_DEN_B1F_MAX_ELIXER
+	person_event SPRITE_POKE_BALL, 20, 39, $1, 0, 0, -1, -1, 0, 0, 0, PokeBallScript_0x18c95a, EVENT_DRAGONS_DEN_B1F_DRAGON_FANG
+	person_event SPRITE_CLAIR, 34, 18, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_DRAGONS_DEN_CLAIR
+	person_event SPRITE_SILVER, 27, 24, $2, 2, 2, -1, -1, 0, 0, 0, SilverScript_0x18c97e, EVENT_RIVAL_DRAGONS_DEN
+	person_event SPRITE_COOLTRAINER_M, 12, 24, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 4, TrainerCooltrainermDarin, -1
+	person_event SPRITE_COOLTRAINER_F, 12, 12, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerCooltrainerfCara, -1
+	person_event SPRITE_TWIN, 21, 8, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 1, TrainerTwinsLeaandpia1, -1
+	person_event SPRITE_TWIN, 22, 8, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 1, TrainerTwinsLeaandpia2, -1
+	person_event SPRITE_POKE_BALL, 8, 34, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c9a1, EVENT_DRAGONS_DEN_B1F_CALCIUM
+	person_event SPRITE_POKE_BALL, 24, 9, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c9a3, EVENT_DRAGONS_DEN_B1F_MAX_ELIXER
--- a/maps/EarlsPokemonAcademy.asm
+++ b/maps/EarlsPokemonAcademy.asm
@@ -410,8 +410,8 @@
 
 .Warps:
 	db 2
-	warp_def $f, $3, 3, GROUP_VIOLET_CITY, MAP_VIOLET_CITY
-	warp_def $f, $4, 3, GROUP_VIOLET_CITY, MAP_VIOLET_CITY
+	warp_def $f, $3, 3, VIOLET_CITY
+	warp_def $f, $4, 3, VIOLET_CITY
 
 .XYTriggers:
 	db 0
@@ -425,9 +425,9 @@
 
 .PersonEvents:
 	db 6
-	person_event SPRITE_FISHER, 6, 8, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, AcademyEarl, EVENT_EARLS_ACADEMY_EARL
-	person_event SPRITE_YOUNGSTER, 9, 6, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, YoungsterScript_0x68a83, -1
-	person_event SPRITE_GAMEBOY_KID, 15, 7, OW_UP | $2, $0, -1, -1, $0, 0, GameboyKidScript_0x68a86, -1
-	person_event SPRITE_GAMEBOY_KID, 15, 8, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, GameboyKidScript_0x68a91, -1
-	person_event SPRITE_YOUNGSTER, 11, 8, OW_UP | $3, $0, -1, -1, $0, 0, YoungsterScript_0x68a9c, -1
-	person_event SPRITE_POKEDEX, 8, 6, OW_DOWN | $1, $0, -1, -1, $0, 0, AcademyNotebook, -1
+	person_event SPRITE_FISHER, 6, 8, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, AcademyEarl, EVENT_EARLS_ACADEMY_EARL
+	person_event SPRITE_YOUNGSTER, 9, 6, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, YoungsterScript_0x68a83, -1
+	person_event SPRITE_GAMEBOY_KID, 15, 7, $6, 0, 0, -1, -1, 0, 0, 0, GameboyKidScript_0x68a86, -1
+	person_event SPRITE_GAMEBOY_KID, 15, 8, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, GameboyKidScript_0x68a91, -1
+	person_event SPRITE_YOUNGSTER, 11, 8, $7, 0, 0, -1, -1, 0, 0, 0, YoungsterScript_0x68a9c, -1
+	person_event SPRITE_POKEDEX, 8, 6, $1, 0, 0, -1, -1, 0, 0, 0, AcademyNotebook, -1
--- a/maps/EcruteakCity.asm
+++ b/maps/EcruteakCity.asm
@@ -258,21 +258,21 @@
 
 .Warps:
 	db 15
-	warp_def $1a, $23, 1, GROUP_ROUTE_42_ECRUTEAK_GATE, MAP_ROUTE_42_ECRUTEAK_GATE
-	warp_def $1b, $23, 2, GROUP_ROUTE_42_ECRUTEAK_GATE, MAP_ROUTE_42_ECRUTEAK_GATE
-	warp_def $b, $12, 1, GROUP_ECRUTEAK_HOUSE, MAP_ECRUTEAK_HOUSE
-	warp_def $2, $14, 1, GROUP_WISE_TRIOS_ROOM, MAP_WISE_TRIOS_ROOM
-	warp_def $3, $14, 2, GROUP_WISE_TRIOS_ROOM, MAP_WISE_TRIOS_ROOM
-	warp_def $1b, $17, 1, GROUP_ECRUTEAK_POKECENTER_1F, MAP_ECRUTEAK_POKECENTER_1F
-	warp_def $15, $5, 1, GROUP_ECRUTEAK_LUGIA_SPEECH_HOUSE, MAP_ECRUTEAK_LUGIA_SPEECH_HOUSE
-	warp_def $15, $17, 1, GROUP_DANCE_THEATRE, MAP_DANCE_THEATRE
-	warp_def $15, $1d, 2, GROUP_ECRUTEAK_MART, MAP_ECRUTEAK_MART
-	warp_def $1b, $6, 1, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $1b, $d, 1, GROUP_ECRUTEAK_ITEMFINDER_HOUSE, MAP_ECRUTEAK_ITEMFINDER_HOUSE
-	warp_def $7, $25, 1, GROUP_TIN_TOWER_1F, MAP_TIN_TOWER_1F
-	warp_def $5, $5, 1, GROUP_BURNED_TOWER_1F, MAP_BURNED_TOWER_1F
-	warp_def $12, $0, 3, GROUP_ROUTE_38_ECRUTEAK_GATE, MAP_ROUTE_38_ECRUTEAK_GATE
-	warp_def $13, $0, 4, GROUP_ROUTE_38_ECRUTEAK_GATE, MAP_ROUTE_38_ECRUTEAK_GATE
+	warp_def $1a, $23, 1, ROUTE_42_ECRUTEAK_GATE
+	warp_def $1b, $23, 2, ROUTE_42_ECRUTEAK_GATE
+	warp_def $b, $12, 1, ECRUTEAK_HOUSE
+	warp_def $2, $14, 1, WISE_TRIOS_ROOM
+	warp_def $3, $14, 2, WISE_TRIOS_ROOM
+	warp_def $1b, $17, 1, ECRUTEAK_POKECENTER_1F
+	warp_def $15, $5, 1, ECRUTEAK_LUGIA_SPEECH_HOUSE
+	warp_def $15, $17, 1, DANCE_THEATRE
+	warp_def $15, $1d, 2, ECRUTEAK_MART
+	warp_def $1b, $6, 1, ECRUTEAK_GYM
+	warp_def $1b, $d, 1, ECRUTEAK_ITEMFINDER_HOUSE
+	warp_def $7, $25, 1, TIN_TOWER_1F
+	warp_def $5, $5, 1, BURNED_TOWER_1F
+	warp_def $12, $0, 3, ROUTE_38_ECRUTEAK_GATE
+	warp_def $13, $0, 4, ROUTE_38_ECRUTEAK_GATE
 
 .XYTriggers:
 	db 0
@@ -290,10 +290,10 @@
 
 .PersonEvents:
 	db 7
-	person_event SPRITE_GRAMPS, 19, 22, OW_DOWN | $2, $11, -1, -1, $0, 0, GrampsScript_0x1a4009, -1
-	person_event SPRITE_GRAMPS, 25, 24, OW_DOWN | $3, $0, -1, -1, $0, 0, GrampsScript_0x1a400c, -1
-	person_event SPRITE_LASS, 33, 25, OW_UP | $1, $2, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, LassScript_0x1a4012, -1
-	person_event SPRITE_LASS, 13, 7, OW_UP | $3, $0, -1, -1, $0, 0, LassScript_0x1a4015, -1
-	person_event SPRITE_FISHER, 26, 13, OW_UP | $1, $1, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, FisherScript_0x1a4029, -1
-	person_event SPRITE_YOUNGSTER, 18, 14, OW_DOWN | $2, $11, -1, -1, (PAL_OW_RED << 4) | $80, 0, YoungsterScript_0x1a403d, -1
-	person_event SPRITE_GRAMPS, 11, 7, OW_DOWN | $2, $11, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, GrampsScript_0x1a400f, EVENT_ECRUTEAK_CITY_GRAMPS
+	person_event SPRITE_GRAMPS, 19, 22, $2, 1, 1, -1, -1, 0, 0, 0, GrampsScript_0x1a4009, -1
+	person_event SPRITE_GRAMPS, 25, 24, $3, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x1a400c, -1
+	person_event SPRITE_LASS, 33, 25, $5, 0, 2, -1, -1, 8 + PAL_OW_BLUE, 0, 0, LassScript_0x1a4012, -1
+	person_event SPRITE_LASS, 13, 7, $7, 0, 0, -1, -1, 0, 0, 0, LassScript_0x1a4015, -1
+	person_event SPRITE_FISHER, 26, 13, $5, 0, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 0, FisherScript_0x1a4029, -1
+	person_event SPRITE_YOUNGSTER, 18, 14, $2, 1, 1, -1, -1, 8 + PAL_OW_RED, 0, 0, YoungsterScript_0x1a403d, -1
+	person_event SPRITE_GRAMPS, 11, 7, $2, 1, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 0, GrampsScript_0x1a400f, EVENT_ECRUTEAK_CITY_GRAMPS
--- a/maps/EcruteakGym.asm
+++ b/maps/EcruteakGym.asm
@@ -36,7 +36,7 @@
 	setflag ENGINE_FOGBADGE
 	checkcode VAR_BADGES
 	scall EcruteakGymTriggerRockets
-	domaptrigger GROUP_ECRUTEAK_HOUSE, MAP_ECRUTEAK_HOUSE, $1
+	domaptrigger ECRUTEAK_HOUSE, $1
 	setevent EVENT_RANG_CLEAR_BELL_1
 	setevent EVENT_RANG_CLEAR_BELL_2
 .FightDone
@@ -87,7 +87,7 @@
 	special FadeBlackBGMap
 	playsound SFX_ENTER_DOOR
 	waitbutton
-	warp GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY, $6, $1b
+	warp ECRUTEAK_CITY, $6, $1b
 	end
 
 TrainerSageJeffrey:
@@ -385,39 +385,39 @@
 
 .Warps:
 	db 33
-	warp_def $11, $4, 10, GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY
-	warp_def $11, $5, 10, GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY
-	warp_def $e, $4, 4, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $4, $2, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $4, $3, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $4, $4, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $5, $4, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $7, $6, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $4, $7, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $6, $2, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $6, $3, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $6, $4, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $6, $5, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $6, $7, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $7, $7, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $8, $4, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $8, $5, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $8, $6, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $8, $7, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $8, $2, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $9, $2, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $a, $2, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $b, $2, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $a, $4, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $a, $5, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $c, $2, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $c, $3, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $c, $4, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $c, $5, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $a, $7, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $b, $7, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $c, $7, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
-	warp_def $d, $7, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
+	warp_def $11, $4, 10, ECRUTEAK_CITY
+	warp_def $11, $5, 10, ECRUTEAK_CITY
+	warp_def $e, $4, 4, ECRUTEAK_GYM
+	warp_def $4, $2, 3, ECRUTEAK_GYM
+	warp_def $4, $3, 3, ECRUTEAK_GYM
+	warp_def $4, $4, 3, ECRUTEAK_GYM
+	warp_def $5, $4, 3, ECRUTEAK_GYM
+	warp_def $7, $6, 3, ECRUTEAK_GYM
+	warp_def $4, $7, 3, ECRUTEAK_GYM
+	warp_def $6, $2, 3, ECRUTEAK_GYM
+	warp_def $6, $3, 3, ECRUTEAK_GYM
+	warp_def $6, $4, 3, ECRUTEAK_GYM
+	warp_def $6, $5, 3, ECRUTEAK_GYM
+	warp_def $6, $7, 3, ECRUTEAK_GYM
+	warp_def $7, $7, 3, ECRUTEAK_GYM
+	warp_def $8, $4, 3, ECRUTEAK_GYM
+	warp_def $8, $5, 3, ECRUTEAK_GYM
+	warp_def $8, $6, 3, ECRUTEAK_GYM
+	warp_def $8, $7, 3, ECRUTEAK_GYM
+	warp_def $8, $2, 3, ECRUTEAK_GYM
+	warp_def $9, $2, 3, ECRUTEAK_GYM
+	warp_def $a, $2, 3, ECRUTEAK_GYM
+	warp_def $b, $2, 3, ECRUTEAK_GYM
+	warp_def $a, $4, 3, ECRUTEAK_GYM
+	warp_def $a, $5, 3, ECRUTEAK_GYM
+	warp_def $c, $2, 3, ECRUTEAK_GYM
+	warp_def $c, $3, 3, ECRUTEAK_GYM
+	warp_def $c, $4, 3, ECRUTEAK_GYM
+	warp_def $c, $5, 3, ECRUTEAK_GYM
+	warp_def $a, $7, 3, ECRUTEAK_GYM
+	warp_def $b, $7, 3, ECRUTEAK_GYM
+	warp_def $c, $7, 3, ECRUTEAK_GYM
+	warp_def $d, $7, 3, ECRUTEAK_GYM
 
 .XYTriggers:
 	db 0
@@ -429,10 +429,10 @@
 
 .PersonEvents:
 	db 7
-	person_event SPRITE_MORTY, 5, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, MortyScript_0x99d58, -1
-	person_event SPRITE_SAGE, 11, 6, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 1, TrainerSageJeffrey, -1
-	person_event SPRITE_SAGE, 17, 7, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerSagePing, -1
-	person_event SPRITE_GRANNY, 9, 11, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 1, TrainerMediumMartha, -1
-	person_event SPRITE_GRANNY, 13, 11, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 1, TrainerMediumGrace, -1
-	person_event SPRITE_GYM_GUY, 19, 11, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, EcruteakGymGuyScript, -1
-	person_event SPRITE_GRAMPS, 18, 8, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, ObjectEvent, EVENT_ECRUTEAK_GYM_GRAMPS
+	person_event SPRITE_MORTY, 5, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, MortyScript_0x99d58, -1
+	person_event SPRITE_SAGE, 11, 6, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 1, TrainerSageJeffrey, -1
+	person_event SPRITE_SAGE, 17, 7, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerSagePing, -1
+	person_event SPRITE_GRANNY, 9, 11, $8, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 1, TrainerMediumMartha, -1
+	person_event SPRITE_GRANNY, 13, 11, $8, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 1, TrainerMediumGrace, -1
+	person_event SPRITE_GYM_GUY, 19, 11, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, EcruteakGymGuyScript, -1
+	person_event SPRITE_GRAMPS, 18, 8, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, ObjectEvent, EVENT_ECRUTEAK_GYM_GRAMPS
--- a/maps/EcruteakHouse.asm
+++ b/maps/EcruteakHouse.asm
@@ -282,11 +282,11 @@
 
 .Warps:
 	db 5
-	warp_def $11, $4, 3, GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY
-	warp_def $11, $5, 3, GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY
-	warp_def $3, $5, 4, GROUP_ECRUTEAK_HOUSE, MAP_ECRUTEAK_HOUSE
-	warp_def $f, $11, 3, GROUP_ECRUTEAK_HOUSE, MAP_ECRUTEAK_HOUSE
-	warp_def $3, $11, 3, GROUP_WISE_TRIOS_ROOM, MAP_WISE_TRIOS_ROOM
+	warp_def $11, $4, 3, ECRUTEAK_CITY
+	warp_def $11, $5, 3, ECRUTEAK_CITY
+	warp_def $3, $5, 4, ECRUTEAK_HOUSE
+	warp_def $f, $11, 3, ECRUTEAK_HOUSE
+	warp_def $3, $11, 3, WISE_TRIOS_ROOM
 
 .XYTriggers:
 	db 2
@@ -298,7 +298,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_SAGE, 10, 8, OW_UP | $2, $0, -1, -1, $0, 0, SageScript_0x98062, EVENT_RANG_CLEAR_BELL_1
-	person_event SPRITE_SAGE, 10, 9, OW_UP | $2, $0, -1, -1, $0, 0, SageScript_0x98062, EVENT_RANG_CLEAR_BELL_2
-	person_event SPRITE_SAGE, 13, 10, OW_DOWN | $2, $11, -1, -1, $0, 0, SageScript_0x980b0, EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE
-	person_event SPRITE_GRAMPS, 15, 7, OW_DOWN | $2, $11, -1, -1, $0, 0, GrampsScript_0x980c4, EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE
+	person_event SPRITE_SAGE, 10, 8, $6, 0, 0, -1, -1, 0, 0, 0, SageScript_0x98062, EVENT_RANG_CLEAR_BELL_1
+	person_event SPRITE_SAGE, 10, 9, $6, 0, 0, -1, -1, 0, 0, 0, SageScript_0x98062, EVENT_RANG_CLEAR_BELL_2
+	person_event SPRITE_SAGE, 13, 10, $2, 1, 1, -1, -1, 0, 0, 0, SageScript_0x980b0, EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE
+	person_event SPRITE_GRAMPS, 15, 7, $2, 1, 1, -1, -1, 0, 0, 0, GrampsScript_0x980c4, EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE
--- a/maps/EcruteakItemfinderHouse.asm
+++ b/maps/EcruteakItemfinderHouse.asm
@@ -164,8 +164,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $3, 11, GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY
-	warp_def $7, $4, 11, GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY
+	warp_def $7, $3, 11, ECRUTEAK_CITY
+	warp_def $7, $4, 11, ECRUTEAK_CITY
 
 .XYTriggers:
 	db 0
@@ -176,5 +176,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_COOLTRAINER_M, 7, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, CooltrainerMScript_0x9a5fb, -1
-	person_event SPRITE_POKEDEX, 7, 7, OW_DOWN | $1, $0, -1, -1, $0, 0, PokedexScript_0x9a620, -1
+	person_event SPRITE_COOLTRAINER_M, 7, 6, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, CooltrainerMScript_0x9a5fb, -1
+	person_event SPRITE_POKEDEX, 7, 7, $1, 0, 0, -1, -1, 0, 0, 0, PokedexScript_0x9a620, -1
--- a/maps/EcruteakLugiaSpeechHouse.asm
+++ b/maps/EcruteakLugiaSpeechHouse.asm
@@ -46,8 +46,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $3, 7, GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY
-	warp_def $7, $4, 7, GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY
+	warp_def $7, $3, 7, ECRUTEAK_CITY
+	warp_def $7, $4, 7, ECRUTEAK_CITY
 
 .XYTriggers:
 	db 0
@@ -58,5 +58,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_GRAMPS, 7, 6, OW_DOWN | $3, $0, -1, -1, $0, 0, GrampsScript_0x99334, -1
-	person_event SPRITE_YOUNGSTER, 8, 9, OW_LEFT | $0, $0, -1, -1, $0, 0, YoungsterScript_0x99337, -1
+	person_event SPRITE_GRAMPS, 7, 6, $3, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x99334, -1
+	person_event SPRITE_YOUNGSTER, 8, 9, $8, 0, 0, -1, -1, 0, 0, 0, YoungsterScript_0x99337, -1
--- a/maps/EcruteakMart.asm
+++ b/maps/EcruteakMart.asm
@@ -46,8 +46,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 9, GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY
-	warp_def $7, $3, 9, GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY
+	warp_def $7, $2, 9, ECRUTEAK_CITY
+	warp_def $7, $3, 9, ECRUTEAK_CITY
 
 .XYTriggers:
 	db 0
@@ -57,6 +57,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 7, 5, OW_LEFT | $1, $0, -1, -1, $0, 0, ClerkScript_0x99c3b, -1
-	person_event SPRITE_SUPER_NERD, 6, 9, OW_UP | $1, $1, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, SuperNerdScript_0x99c42, -1
-	person_event SPRITE_GRANNY, 10, 10, OW_UP | $3, $0, -1, -1, $0, 0, GrannyScript_0x99c45, -1
+	person_event SPRITE_CLERK, 7, 5, $9, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x99c3b, -1
+	person_event SPRITE_SUPER_NERD, 6, 9, $5, 0, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 0, SuperNerdScript_0x99c42, -1
+	person_event SPRITE_GRANNY, 10, 10, $7, 0, 0, -1, -1, 0, 0, 0, GrannyScript_0x99c45, -1
--- a/maps/EcruteakPokeCenter1F.asm
+++ b/maps/EcruteakPokeCenter1F.asm
@@ -207,9 +207,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $3, 6, GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY
-	warp_def $7, $4, 6, GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY
-	warp_def $7, $0, 1, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
+	warp_def $7, $3, 6, ECRUTEAK_CITY
+	warp_def $7, $4, 6, ECRUTEAK_CITY
+	warp_def $7, $0, 1, POKECENTER_2F
 
 .XYTriggers:
 	db 0
@@ -219,8 +219,8 @@
 
 .PersonEvents:
 	db 5
-	person_event SPRITE_NURSE, 5, 7, OW_UP | $2, $0, -1, -1, $0, 0, NurseScript_0x98eb0, -1
-	person_event SPRITE_POKEFAN_M, 10, 11, OW_LEFT | $2, $0, -1, -1, $0, 0, PokefanMScript_0x98eb3, -1
-	person_event SPRITE_COOLTRAINER_F, 8, 5, OW_DOWN | $3, $0, -1, -1, $0, 0, CooltrainerFScript_0x98ebf, -1
-	person_event SPRITE_GYM_GUY, 5, 11, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, GymGuyScript_0x98ec2, -1
-	person_event SPRITE_BILL, 11, 4, OW_LEFT | $1, $0, -1, -1, $0, 0, ObjectEvent, EVENT_ECRUTEAK_POKE_CENTER_BILL
+	person_event SPRITE_NURSE, 5, 7, $6, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x98eb0, -1
+	person_event SPRITE_POKEFAN_M, 10, 11, $a, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x98eb3, -1
+	person_event SPRITE_COOLTRAINER_F, 8, 5, $3, 0, 0, -1, -1, 0, 0, 0, CooltrainerFScript_0x98ebf, -1
+	person_event SPRITE_GYM_GUY, 5, 11, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, GymGuyScript_0x98ec2, -1
+	person_event SPRITE_BILL, 11, 4, $9, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_ECRUTEAK_POKE_CENTER_BILL
--- a/maps/ElmsHouse.asm
+++ b/maps/ElmsHouse.asm
@@ -85,8 +85,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 4, GROUP_NEW_BARK_TOWN, MAP_NEW_BARK_TOWN
-	warp_def $7, $3, 4, GROUP_NEW_BARK_TOWN, MAP_NEW_BARK_TOWN
+	warp_def $7, $2, 4, NEW_BARK_TOWN
+	warp_def $7, $3, 4, NEW_BARK_TOWN
 
 .XYTriggers:
 	db 0
@@ -99,5 +99,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_TEACHER, 9, 5, OW_UP | $0, $10, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, ElmsWife, -1
-	person_event SPRITE_BUG_CATCHER, 8, 9, OW_UP | $3, $0, -1, -1, $0, 0, ElmsSon, -1
+	person_event SPRITE_TEACHER, 9, 5, $4, 1, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, ElmsWife, -1
+	person_event SPRITE_BUG_CATCHER, 8, 9, $7, 0, 0, -1, -1, 0, 0, 0, ElmsSon, -1
--- a/maps/ElmsLab.asm
+++ b/maps/ElmsLab.asm
@@ -272,7 +272,7 @@
 	setevent EVENT_GOT_A_POKEMON_FROM_ELM
 	setevent EVENT_RIVAL_CHERRYGROVE_CITY
 	dotrigger $5
-	domaptrigger GROUP_NEW_BARK_TOWN, MAP_NEW_BARK_TOWN, $1
+	domaptrigger NEW_BARK_TOWN, $1
 	end
 
 ElmDescribesMrPokemonScript:
@@ -338,7 +338,7 @@
 	keeptextopen
 	setevent EVENT_GAVE_MYSTERY_EGG_TO_ELM
 	setflag ENGINE_BUG_CONTEST_ON
-	domaptrigger GROUP_ROUTE_29, MAP_ROUTE_29, $1
+	domaptrigger ROUTE_29, $1
 	clearevent EVENT_ROUTE_30_YOUNGSTER_JOEY
 	setevent EVENT_ROUTE_30_BATTLE
 	writetext ElmAfterTheftText6
@@ -1373,8 +1373,8 @@
 
 .Warps:
 	db 2
-	warp_def $b, $4, 1, GROUP_NEW_BARK_TOWN, MAP_NEW_BARK_TOWN
-	warp_def $b, $5, 1, GROUP_NEW_BARK_TOWN, MAP_NEW_BARK_TOWN
+	warp_def $b, $4, 1, NEW_BARK_TOWN
+	warp_def $b, $5, 1, NEW_BARK_TOWN
 
 .XYTriggers:
 	db 8
@@ -1408,9 +1408,9 @@
 
 .PersonEvents:
 	db 6
-	person_event SPRITE_ELM, 6, 9, OW_UP | $2, $0, -1, -1, $0, 0, ProfElmScript, -1
-	person_event SPRITE_SCIENTIST, 13, 6, OW_DOWN | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ElmsAideScript, EVENT_ELMS_AIDE_IN_LAB
-	person_event SPRITE_POKE_BALL, 7, 10, OW_DOWN | $1, $0, -1, -1, $0, 0, CyndaquilPokeBallScript, EVENT_CYNDAQUIL_POKEBALL_IN_ELMS_LAB
-	person_event SPRITE_POKE_BALL, 7, 11, OW_DOWN | $1, $0, -1, -1, $0, 0, TotodilePokeBallScript, EVENT_TOTODILE_POKEBALL_IN_ELMS_LAB
-	person_event SPRITE_POKE_BALL, 7, 12, OW_DOWN | $1, $0, -1, -1, $0, 0, ChikoritaPokeBallScript, EVENT_CHIKORITA_POKEBALL_IN_ELMS_LAB
-	person_event SPRITE_OFFICER, 7, 9, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, CopScript, EVENT_COP_IN_ELMS_LAB
+	person_event SPRITE_ELM, 6, 9, $6, 0, 0, -1, -1, 0, 0, 0, ProfElmScript, -1
+	person_event SPRITE_SCIENTIST, 13, 6, $3, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ElmsAideScript, EVENT_ELMS_AIDE_IN_LAB
+	person_event SPRITE_POKE_BALL, 7, 10, $1, 0, 0, -1, -1, 0, 0, 0, CyndaquilPokeBallScript, EVENT_CYNDAQUIL_POKEBALL_IN_ELMS_LAB
+	person_event SPRITE_POKE_BALL, 7, 11, $1, 0, 0, -1, -1, 0, 0, 0, TotodilePokeBallScript, EVENT_TOTODILE_POKEBALL_IN_ELMS_LAB
+	person_event SPRITE_POKE_BALL, 7, 12, $1, 0, 0, -1, -1, 0, 0, 0, ChikoritaPokeBallScript, EVENT_CHIKORITA_POKEBALL_IN_ELMS_LAB
+	person_event SPRITE_OFFICER, 7, 9, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, CopScript, EVENT_COP_IN_ELMS_LAB
--- a/maps/FastShip1F.asm
+++ b/maps/FastShip1F.asm
@@ -27,7 +27,7 @@
 	pause 30
 	playsound SFX_BOAT
 	earthquake 30
-	blackoutmod GROUP_FAST_SHIP_CABINS_SW_SSW_NW, MAP_FAST_SHIP_CABINS_SW_SSW_NW
+	blackoutmod FAST_SHIP_CABINS_SW_SSW_NW
 	clearevent EVENT_FAST_SHIP_HAS_ARRIVED
 	checkevent EVENT_FAST_SHIP_FIRST_TIME
 	iftrue .Vermilion
@@ -67,8 +67,8 @@
 	special FadeBlackBGMap
 	waitbutton
 	setevent EVENT_VERMILION_PORT_SAILOR_AT_GANGWAY
-	domaptrigger GROUP_VERMILION_PORT, MAP_VERMILION_PORT, $1
-	warp GROUP_VERMILION_PORT, MAP_VERMILION_PORT, $7, $11
+	domaptrigger VERMILION_PORT, $1
+	warp VERMILION_PORT, $7, $11
 	end
 
 ._Olivine
@@ -80,8 +80,8 @@
 	special FadeBlackBGMap
 	waitbutton
 	setevent EVENT_OLIVINE_PORT_SAILOR_AT_GANGWAY
-	domaptrigger GROUP_OLIVINE_PORT, MAP_OLIVINE_PORT, $1
-	warp GROUP_OLIVINE_PORT, MAP_OLIVINE_PORT, $7, $17
+	domaptrigger OLIVINE_PORT, $1
+	warp OLIVINE_PORT, $7, $17
 	end
 
 .LetThePlayerOut:
@@ -287,18 +287,18 @@
 
 .Warps:
 	db 12
-	warp_def $1, $19, 255, GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F
-	warp_def $8, $1b, 1, GROUP_FAST_SHIP_CABINS_NNW_NNE_NE, MAP_FAST_SHIP_CABINS_NNW_NNE_NE
-	warp_def $8, $17, 2, GROUP_FAST_SHIP_CABINS_NNW_NNE_NE, MAP_FAST_SHIP_CABINS_NNW_NNE_NE
-	warp_def $8, $13, 3, GROUP_FAST_SHIP_CABINS_NNW_NNE_NE, MAP_FAST_SHIP_CABINS_NNW_NNE_NE
-	warp_def $8, $f, 1, GROUP_FAST_SHIP_CABINS_SW_SSW_NW, MAP_FAST_SHIP_CABINS_SW_SSW_NW
-	warp_def $f, $f, 2, GROUP_FAST_SHIP_CABINS_SW_SSW_NW, MAP_FAST_SHIP_CABINS_SW_SSW_NW
-	warp_def $f, $13, 4, GROUP_FAST_SHIP_CABINS_SW_SSW_NW, MAP_FAST_SHIP_CABINS_SW_SSW_NW
-	warp_def $f, $17, 1, GROUP_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN, MAP_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN
-	warp_def $f, $1b, 3, GROUP_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN, MAP_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN
-	warp_def $d, $3, 5, GROUP_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN, MAP_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN
-	warp_def $c, $6, 1, GROUP_FAST_SHIP_B1F, MAP_FAST_SHIP_B1F
-	warp_def $e, $1e, 2, GROUP_FAST_SHIP_B1F, MAP_FAST_SHIP_B1F
+	warp_def $1, $19, 255, FAST_SHIP_1F
+	warp_def $8, $1b, 1, FAST_SHIP_CABINS_NNW_NNE_NE
+	warp_def $8, $17, 2, FAST_SHIP_CABINS_NNW_NNE_NE
+	warp_def $8, $13, 3, FAST_SHIP_CABINS_NNW_NNE_NE
+	warp_def $8, $f, 1, FAST_SHIP_CABINS_SW_SSW_NW
+	warp_def $f, $f, 2, FAST_SHIP_CABINS_SW_SSW_NW
+	warp_def $f, $13, 4, FAST_SHIP_CABINS_SW_SSW_NW
+	warp_def $f, $17, 1, FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN
+	warp_def $f, $1b, 3, FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN
+	warp_def $d, $3, 5, FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN
+	warp_def $c, $6, 1, FAST_SHIP_B1F
+	warp_def $e, $1e, 2, FAST_SHIP_B1F
 
 .XYTriggers:
 	db 2
@@ -310,7 +310,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_SAILOR, 6, 29, OW_UP | $2, $0, -1, -1, $0, 0, SailorScript_0x75160, -1
-	person_event SPRITE_SAILOR, 11, 18, OW_LEFT | $1, $0, -1, -1, $0, 0, SailorScript_0x751d0, -1
-	person_event SPRITE_SAILOR, 21, 26, OW_UP | $1, $2, -1, -1, $0, 0, SailorScript_0x751e4, -1
-	person_event SPRITE_GENTLEMAN, 10, 23, OW_LEFT | $1, $0, -1, -1, $0, 0, ObjectEvent, EVENT_FAST_SHIP_1F_GENTLEMAN
+	person_event SPRITE_SAILOR, 6, 29, $6, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x75160, -1
+	person_event SPRITE_SAILOR, 11, 18, $9, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x751d0, -1
+	person_event SPRITE_SAILOR, 21, 26, $5, 0, 2, -1, -1, 0, 0, 0, SailorScript_0x751e4, -1
+	person_event SPRITE_GENTLEMAN, 10, 23, $9, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_FAST_SHIP_1F_GENTLEMAN
--- a/maps/FastShipB1F.asm
+++ b/maps/FastShipB1F.asm
@@ -442,8 +442,8 @@
 
 .Warps:
 	db 2
-	warp_def $b, $5, 11, GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F
-	warp_def $d, $1f, 12, GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F
+	warp_def $b, $5, 11, FAST_SHIP_1F
+	warp_def $d, $1f, 12, FAST_SHIP_1F
 
 .XYTriggers:
 	db 2
@@ -456,15 +456,15 @@
 
 .PersonEvents:
 	db 12
-	person_event SPRITE_SAILOR, 10, 34, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, SailorScript_0x76767, EVENT_FAST_SHIP_B1F_SAILOR_LEFT
-	person_event SPRITE_SAILOR, 10, 35, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, SailorScript_0x76767, EVENT_FAST_SHIP_B1F_SAILOR_RIGHT
-	person_event SPRITE_SAILOR, 15, 13, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerSailorJeff, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
-	person_event SPRITE_LASS, 8, 10, OW_UP | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 1, TrainerPicnickerDebra, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
-	person_event SPRITE_SUPER_NERD, 13, 30, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 1, TrainerJugglerFritz, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
-	person_event SPRITE_SAILOR, 8, 21, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 4, TrainerSailorGarrett, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
-	person_event SPRITE_FISHER, 12, 29, OW_UP | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 3, TrainerFisherJonah, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
-	person_event SPRITE_BLACK_BELT, 15, 19, OW_RIGHT | $13, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 3, TrainerBlackbeltWai, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
-	person_event SPRITE_SAILOR, 8, 27, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 4, TrainerSailorKenneth, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
-	person_event SPRITE_TEACHER, 15, 13, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerTeacherShirley, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
-	person_event SPRITE_YOUNGSTER, 13, 18, OW_DOWN | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 1, TrainerSchoolboyNate, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
-	person_event SPRITE_YOUNGSTER, 15, 18, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 1, TrainerSchoolboyRicky, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
+	person_event SPRITE_SAILOR, 10, 34, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, SailorScript_0x76767, EVENT_FAST_SHIP_B1F_SAILOR_LEFT
+	person_event SPRITE_SAILOR, 10, 35, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, SailorScript_0x76767, EVENT_FAST_SHIP_B1F_SAILOR_RIGHT
+	person_event SPRITE_SAILOR, 15, 13, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerSailorJeff, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
+	person_event SPRITE_LASS, 8, 10, $7, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 1, TrainerPicnickerDebra, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
+	person_event SPRITE_SUPER_NERD, 13, 30, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 1, TrainerJugglerFritz, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
+	person_event SPRITE_SAILOR, 8, 21, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 4, TrainerSailorGarrett, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
+	person_event SPRITE_FISHER, 12, 29, $7, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 3, TrainerFisherJonah, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
+	person_event SPRITE_BLACK_BELT, 15, 19, $1f, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 3, TrainerBlackbeltWai, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
+	person_event SPRITE_SAILOR, 8, 27, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 4, TrainerSailorKenneth, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
+	person_event SPRITE_TEACHER, 15, 13, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerTeacherShirley, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
+	person_event SPRITE_YOUNGSTER, 13, 18, $3, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 1, TrainerSchoolboyNate, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
+	person_event SPRITE_YOUNGSTER, 15, 18, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 1, TrainerSchoolboyRicky, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
--- a/maps/FastShipCabins_NNW_NNE_NE.asm
+++ b/maps/FastShipCabins_NNW_NNE_NE.asm
@@ -89,7 +89,7 @@
 	closetext
 	loadmovesprites
 	setevent EVENT_FAST_SHIP_LAZY_SAILOR
-	domaptrigger GROUP_FAST_SHIP_B1F, MAP_FAST_SHIP_B1F, $1
+	domaptrigger FAST_SHIP_B1F, $1
 	checkcode VAR_FACING
 	if_equal $3, UnknownScript_0x75629
 	applymovement $6, MovementData_0x75637
@@ -263,9 +263,9 @@
 
 .Warps:
 	db 3
-	warp_def $0, $2, 2, GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F
-	warp_def $c, $2, 3, GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F
-	warp_def $18, $2, 4, GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F
+	warp_def $0, $2, 2, FAST_SHIP_1F
+	warp_def $c, $2, 3, FAST_SHIP_1F
+	warp_def $18, $2, 4, FAST_SHIP_1F
 
 .XYTriggers:
 	db 0
@@ -278,10 +278,10 @@
 
 .PersonEvents:
 	db 7
-	person_event SPRITE_COOLTRAINER_M, 7, 8, OW_LEFT | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 2, TrainerCooltrainermSean, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
-	person_event SPRITE_COOLTRAINER_F, 9, 5, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerCooltrainerfCarol, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
-	person_event SPRITE_SUPER_NERD, 9, 5, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerPokemaniacEthan, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
-	person_event SPRITE_POKEFAN_M, 21, 8, OW_UP | $3, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 3, TrainerHikerNoland, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
-	person_event SPRITE_SAILOR, 30, 8, OW_DOWN | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, SailorScript_0x755f1, EVENT_FAST_SHIP_CABINS_NNW_NNE_NE_SAILOR
-	person_event SPRITE_GENTLEMAN, 34, 11, OW_DOWN | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 1, TrainerGentlemanEdward, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
-	person_event SPRITE_PHARMACIST, 34, 6, OW_UP | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 4, TrainerBurglarCorey, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
+	person_event SPRITE_COOLTRAINER_M, 7, 8, $a, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 2, TrainerCooltrainermSean, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
+	person_event SPRITE_COOLTRAINER_F, 9, 5, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerCooltrainerfCarol, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
+	person_event SPRITE_SUPER_NERD, 9, 5, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerPokemaniacEthan, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
+	person_event SPRITE_POKEFAN_M, 21, 8, $7, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 3, TrainerHikerNoland, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
+	person_event SPRITE_SAILOR, 30, 8, $3, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, SailorScript_0x755f1, EVENT_FAST_SHIP_CABINS_NNW_NNE_NE_SAILOR
+	person_event SPRITE_GENTLEMAN, 34, 11, $3, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 1, TrainerGentlemanEdward, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
+	person_event SPRITE_PHARMACIST, 34, 6, $7, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 4, TrainerBurglarCorey, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
--- a/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm
+++ b/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm
@@ -68,7 +68,7 @@
 	writetext UnknownText_0x76143
 	keeptextopen
 	setevent EVENT_VERMILION_PORT_SAILOR_AT_GANGWAY
-	domaptrigger GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F, $0
+	domaptrigger FAST_SHIP_1F, $0
 	jump UnknownScript_0x75f37
 
 GentlemanScript_0x75f1f:
@@ -81,7 +81,7 @@
 	writetext UnknownText_0x760ae
 	closetext
 	loadmovesprites
-	domaptrigger GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F, $0
+	domaptrigger FAST_SHIP_1F, $0
 	end
 
 UnknownScript_0x75f37:
@@ -455,12 +455,12 @@
 
 .Warps:
 	db 6
-	warp_def $7, $2, 8, GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F
-	warp_def $7, $3, 8, GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F
-	warp_def $13, $2, 9, GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F
-	warp_def $13, $3, 9, GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F
-	warp_def $21, $2, 10, GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F
-	warp_def $21, $3, 10, GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F
+	warp_def $7, $2, 8, FAST_SHIP_1F
+	warp_def $7, $3, 8, FAST_SHIP_1F
+	warp_def $13, $2, 9, FAST_SHIP_1F
+	warp_def $13, $3, 9, FAST_SHIP_1F
+	warp_def $21, $2, 10, FAST_SHIP_1F
+	warp_def $21, $3, 10, FAST_SHIP_1F
 
 .XYTriggers:
 	db 0
@@ -471,14 +471,14 @@
 
 .PersonEvents:
 	db 11
-	person_event SPRITE_CAPTAIN, 29, 7, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, CaptainScript_0x75ea7, -1
-	person_event SPRITE_GENTLEMAN, 21, 6, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, GentlemanScript_0x75f1f, EVENT_FAST_SHIP_CABINS_SE_SSE_GENTLEMAN
-	person_event SPRITE_TWIN, 21, 7, OW_LEFT | $2, $0, -1, -1, $0, 0, TwinScript_0x75f6d, EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_1
-	person_event SPRITE_TWIN, 29, 6, OW_LEFT | $2, $0, -1, -1, $0, 0, TwinScript_0x75ebb, EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_2
-	person_event SPRITE_POKEFAN_M, 10, 9, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $82, 5, TrainerPokefanmColin, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
-	person_event SPRITE_TWIN, 8, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 1, TrainerTwinsMegandpeg1, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
-	person_event SPRITE_TWIN, 8, 7, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 1, TrainerTwinsMegandpeg2, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
-	person_event SPRITE_SUPER_NERD, 9, 9, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 5, TrainerPsychicRodney, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
-	person_event SPRITE_POKEFAN_M, 7, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerPokefanmJeremy, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
-	person_event SPRITE_POKEFAN_F, 9, 9, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $82, 1, TrainerPokefanfGeorgia, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
-	person_event SPRITE_SUPER_NERD, 19, 5, OW_DOWN | $3, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 2, TrainerSupernerdShawn, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
+	person_event SPRITE_CAPTAIN, 29, 7, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, CaptainScript_0x75ea7, -1
+	person_event SPRITE_GENTLEMAN, 21, 6, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, GentlemanScript_0x75f1f, EVENT_FAST_SHIP_CABINS_SE_SSE_GENTLEMAN
+	person_event SPRITE_TWIN, 21, 7, $a, 0, 0, -1, -1, 0, 0, 0, TwinScript_0x75f6d, EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_1
+	person_event SPRITE_TWIN, 29, 6, $a, 0, 0, -1, -1, 0, 0, 0, TwinScript_0x75ebb, EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_2
+	person_event SPRITE_POKEFAN_M, 10, 9, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 5, TrainerPokefanmColin, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
+	person_event SPRITE_TWIN, 8, 6, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 1, TrainerTwinsMegandpeg1, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
+	person_event SPRITE_TWIN, 8, 7, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 1, TrainerTwinsMegandpeg2, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
+	person_event SPRITE_SUPER_NERD, 9, 9, $8, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 5, TrainerPsychicRodney, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
+	person_event SPRITE_POKEFAN_M, 7, 6, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerPokefanmJeremy, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
+	person_event SPRITE_POKEFAN_F, 9, 9, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 1, TrainerPokefanfGeorgia, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
+	person_event SPRITE_SUPER_NERD, 19, 5, $3, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 2, TrainerSupernerdShawn, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
--- a/maps/FastShipCabins_SW_SSW_NW.asm
+++ b/maps/FastShipCabins_SW_SSW_NW.asm
@@ -222,11 +222,11 @@
 
 .Warps:
 	db 5
-	warp_def $0, $2, 5, GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F
-	warp_def $13, $2, 6, GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F
-	warp_def $13, $3, 6, GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F
-	warp_def $1f, $2, 7, GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F
-	warp_def $1f, $3, 7, GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F
+	warp_def $0, $2, 5, FAST_SHIP_1F
+	warp_def $13, $2, 6, FAST_SHIP_1F
+	warp_def $13, $3, 6, FAST_SHIP_1F
+	warp_def $1f, $2, 7, FAST_SHIP_1F
+	warp_def $1f, $3, 7, FAST_SHIP_1F
 
 .XYTriggers:
 	db 0
@@ -239,7 +239,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_FISHER, 19, 5, OW_RIGHT | $12, $0, -1, -1, (PAL_OW_RED << 4) | $82, 2, TrainerFirebreatherLyle, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
-	person_event SPRITE_BUG_CATCHER, 19, 10, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 2, TrainerBug_catcherKen, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
-	person_event SPRITE_BUENA, 30, 5, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerBeautyCassie, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
-	person_event SPRITE_ROCKER, 32, 7, OW_RIGHT | $12, $0, -1, -1, (PAL_OW_RED << 4) | $82, 2, TrainerGuitaristClyde, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
+	person_event SPRITE_FISHER, 19, 5, $1e, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 2, TrainerFirebreatherLyle, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
+	person_event SPRITE_BUG_CATCHER, 19, 10, $a, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 2, TrainerBug_catcherKen, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
+	person_event SPRITE_BUENA, 30, 5, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerBeautyCassie, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
+	person_event SPRITE_ROCKER, 32, 7, $1e, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 2, TrainerGuitaristClyde, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
--- a/maps/FightingDojo.asm
+++ b/maps/FightingDojo.asm
@@ -44,8 +44,8 @@
 
 .Warps:
 	db 2
-	warp_def $b, $4, 1, GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY
-	warp_def $b, $5, 1, GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY
+	warp_def $b, $4, 1, SAFFRON_CITY
+	warp_def $b, $5, 1, SAFFRON_CITY
 
 .XYTriggers:
 	db 0
@@ -57,5 +57,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_BLACK_BELT, 8, 8, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, BlackBeltScript_0x189b61, -1
-	person_event SPRITE_POKE_BALL, 5, 7, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x189b6a, EVENT_PICKED_UP_FOCUS_BAND
+	person_event SPRITE_BLACK_BELT, 8, 8, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, BlackBeltScript_0x189b61, -1
+	person_event SPRITE_POKE_BALL, 5, 7, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x189b6a, EVENT_PICKED_UP_FOCUS_BAND
--- a/maps/FuchsiaBillSpeechHouse.asm
+++ b/maps/FuchsiaBillSpeechHouse.asm
@@ -29,8 +29,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 4, GROUP_FUCHSIA_CITY, MAP_FUCHSIA_CITY
-	warp_def $7, $3, 4, GROUP_FUCHSIA_CITY, MAP_FUCHSIA_CITY
+	warp_def $7, $2, 4, FUCHSIA_CITY
+	warp_def $7, $3, 4, FUCHSIA_CITY
 
 .XYTriggers:
 	db 0
@@ -40,5 +40,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_POKEFAN_F, 7, 6, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, PokefanFScript_0x1963bd, -1
-	person_event SPRITE_YOUNGSTER, 8, 10, OW_UP | $0, $10, -1, -1, $0, 0, YoungsterScript_0x1963c0, -1
+	person_event SPRITE_POKEFAN_F, 7, 6, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, PokefanFScript_0x1963bd, -1
+	person_event SPRITE_YOUNGSTER, 8, 10, $4, 1, 0, -1, -1, 0, 0, 0, YoungsterScript_0x1963c0, -1
--- a/maps/FuchsiaCity.asm
+++ b/maps/FuchsiaCity.asm
@@ -126,17 +126,17 @@
 
 .Warps:
 	db 11
-	warp_def $d, $5, 2, GROUP_FUCHSIA_MART, MAP_FUCHSIA_MART
-	warp_def $d, $16, 1, GROUP_SAFARI_ZONE_MAIN_OFFICE, MAP_SAFARI_ZONE_MAIN_OFFICE
-	warp_def $1b, $8, 1, GROUP_FUCHSIA_GYM, MAP_FUCHSIA_GYM
-	warp_def $1b, $b, 1, GROUP_FUCHSIA_BILL_SPEECH_HOUSE, MAP_FUCHSIA_BILL_SPEECH_HOUSE
-	warp_def $1b, $13, 1, GROUP_FUCHSIA_POKECENTER_1F, MAP_FUCHSIA_POKECENTER_1F
-	warp_def $1b, $1b, 1, GROUP_SAFARI_ZONE_WARDENS_HOME, MAP_SAFARI_ZONE_WARDENS_HOME
-	warp_def $3, $12, 3, GROUP_SAFARI_ZONE_FUCHSIA_GATE_BETA, MAP_SAFARI_ZONE_FUCHSIA_GATE_BETA
-	warp_def $16, $25, 1, GROUP_ROUTE_15_FUCHSIA_GATE, MAP_ROUTE_15_FUCHSIA_GATE
-	warp_def $17, $25, 2, GROUP_ROUTE_15_FUCHSIA_GATE, MAP_ROUTE_15_FUCHSIA_GATE
-	warp_def $23, $7, 1, GROUP_ROUTE_19___FUCHSIA_GATE, MAP_ROUTE_19___FUCHSIA_GATE
-	warp_def $23, $8, 2, GROUP_ROUTE_19___FUCHSIA_GATE, MAP_ROUTE_19___FUCHSIA_GATE
+	warp_def $d, $5, 2, FUCHSIA_MART
+	warp_def $d, $16, 1, SAFARI_ZONE_MAIN_OFFICE
+	warp_def $1b, $8, 1, FUCHSIA_GYM
+	warp_def $1b, $b, 1, FUCHSIA_BILL_SPEECH_HOUSE
+	warp_def $1b, $13, 1, FUCHSIA_POKECENTER_1F
+	warp_def $1b, $1b, 1, SAFARI_ZONE_WARDENS_HOME
+	warp_def $3, $12, 3, SAFARI_ZONE_FUCHSIA_GATE_BETA
+	warp_def $16, $25, 1, ROUTE_15_FUCHSIA_GATE
+	warp_def $17, $25, 2, ROUTE_15_FUCHSIA_GATE
+	warp_def $23, $7, 1, ROUTE_19___FUCHSIA_GATE
+	warp_def $23, $8, 2, ROUTE_19___FUCHSIA_GATE
 
 .XYTriggers:
 	db 0
@@ -154,7 +154,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_YOUNGSTER, 22, 27, OW_DOWN | $2, $11, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, YoungsterScript_0x194b22, -1
-	person_event SPRITE_POKEFAN_M, 12, 17, OW_DOWN | $2, $11, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, PokefanMScript_0x194b25, -1
-	person_event SPRITE_TEACHER, 18, 20, OW_DOWN | $2, $11, -1, -1, (PAL_OW_RED << 4) | $80, 0, TeacherScript_0x194b28, -1
-	person_event SPRITE_FRUIT_TREE, 5, 12, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x194b43, -1
+	person_event SPRITE_YOUNGSTER, 22, 27, $2, 1, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 0, YoungsterScript_0x194b22, -1
+	person_event SPRITE_POKEFAN_M, 12, 17, $2, 1, 1, -1, -1, 8 + PAL_OW_BROWN, 0, 0, PokefanMScript_0x194b25, -1
+	person_event SPRITE_TEACHER, 18, 20, $2, 1, 1, -1, -1, 8 + PAL_OW_RED, 0, 0, TeacherScript_0x194b28, -1
+	person_event SPRITE_FRUIT_TREE, 5, 12, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x194b43, -1
--- a/maps/FuchsiaGym.asm
+++ b/maps/FuchsiaGym.asm
@@ -378,8 +378,8 @@
 
 .Warps:
 	db 2
-	warp_def $11, $4, 3, GROUP_FUCHSIA_CITY, MAP_FUCHSIA_CITY
-	warp_def $11, $5, 3, GROUP_FUCHSIA_CITY, MAP_FUCHSIA_CITY
+	warp_def $11, $4, 3, FUCHSIA_CITY
+	warp_def $11, $5, 3, FUCHSIA_CITY
 
 .XYTriggers:
 	db 0
@@ -391,9 +391,9 @@
 
 .PersonEvents:
 	db 6
-	person_event SPRITE_JANINE, 14, 5, OW_DOWN | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, JanineScript_0x195db9, -1
-	person_event SPRITE_FUCHSIA_GYM_1, 11, 9, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, FuschiaGym1Script_0x195e1b, -1
-	person_event SPRITE_FUCHSIA_GYM_2, 15, 9, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, FuschiaGym2Script_0x195e55, -1
-	person_event SPRITE_FUCHSIA_GYM_3, 8, 13, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, FuschiaGym3Script_0x195e8f, -1
-	person_event SPRITE_FUCHSIA_GYM_4, 6, 8, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, FuschiaGym4Script_0x195ec9, -1
-	person_event SPRITE_GYM_GUY, 19, 11, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, FuchsiaGymGuyScript, -1
+	person_event SPRITE_JANINE, 14, 5, $3, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, JanineScript_0x195db9, -1
+	person_event SPRITE_FUCHSIA_GYM_1, 11, 9, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, FuschiaGym1Script_0x195e1b, -1
+	person_event SPRITE_FUCHSIA_GYM_2, 15, 9, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, FuschiaGym2Script_0x195e55, -1
+	person_event SPRITE_FUCHSIA_GYM_3, 8, 13, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, FuschiaGym3Script_0x195e8f, -1
+	person_event SPRITE_FUCHSIA_GYM_4, 6, 8, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, FuschiaGym4Script_0x195ec9, -1
+	person_event SPRITE_GYM_GUY, 19, 11, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, FuchsiaGymGuyScript, -1
--- a/maps/FuchsiaMart.asm
+++ b/maps/FuchsiaMart.asm
@@ -38,8 +38,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 1, GROUP_FUCHSIA_CITY, MAP_FUCHSIA_CITY
-	warp_def $7, $3, 1, GROUP_FUCHSIA_CITY, MAP_FUCHSIA_CITY
+	warp_def $7, $2, 1, FUCHSIA_CITY
+	warp_def $7, $3, 1, FUCHSIA_CITY
 
 .XYTriggers:
 	db 0
@@ -49,6 +49,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 7, 5, OW_LEFT | $1, $0, -1, -1, $0, 0, ClerkScript_0x195ce8, -1
-	person_event SPRITE_FISHER, 6, 7, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, FisherScript_0x195cef, -1
-	person_event SPRITE_COOLTRAINER_F, 10, 11, OW_UP | $1, $2, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, CooltrainerFScript_0x195cf2, -1
+	person_event SPRITE_CLERK, 7, 5, $9, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x195ce8, -1
+	person_event SPRITE_FISHER, 6, 7, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, FisherScript_0x195cef, -1
+	person_event SPRITE_COOLTRAINER_F, 10, 11, $5, 0, 2, -1, -1, 8 + PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x195cf2, -1
--- a/maps/FuchsiaPokeCenter1F.asm
+++ b/maps/FuchsiaPokeCenter1F.asm
@@ -90,9 +90,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $3, 5, GROUP_FUCHSIA_CITY, MAP_FUCHSIA_CITY
-	warp_def $7, $4, 5, GROUP_FUCHSIA_CITY, MAP_FUCHSIA_CITY
-	warp_def $7, $0, 1, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
+	warp_def $7, $3, 5, FUCHSIA_CITY
+	warp_def $7, $4, 5, FUCHSIA_CITY
+	warp_def $7, $0, 1, POKECENTER_2F
 
 .XYTriggers:
 	db 0
@@ -102,7 +102,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_NURSE, 5, 7, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, NurseScript_0x196459, -1
-	person_event SPRITE_COOLTRAINER_M, 8, 12, OW_UP | $1, $1, -1, -1, $0, 0, CooltrainerMScript_0x19645c, -1
-	person_event SPRITE_COOLTRAINER_F, 8, 5, OW_UP | $1, $1, -1, -1, $0, 0, CooltrainerFScript_0x19645f, -1
-	person_event SPRITE_JANINE_IMPERSONATOR, 7, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, JanineImpersonatorScript_0x196462, -1
+	person_event SPRITE_NURSE, 5, 7, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, NurseScript_0x196459, -1
+	person_event SPRITE_COOLTRAINER_M, 8, 12, $5, 0, 1, -1, -1, 0, 0, 0, CooltrainerMScript_0x19645c, -1
+	person_event SPRITE_COOLTRAINER_F, 8, 5, $5, 0, 1, -1, -1, 0, 0, 0, CooltrainerFScript_0x19645f, -1
+	person_event SPRITE_JANINE_IMPERSONATOR, 7, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, JanineImpersonatorScript_0x196462, -1
--- a/maps/FuchsiaPokeCenter2FBeta.asm
+++ b/maps/FuchsiaPokeCenter2FBeta.asm
@@ -11,7 +11,7 @@
 
 .Warps:
 	db 1
-	warp_def $7, $0, 3, GROUP_FUCHSIA_POKECENTER_1F, MAP_FUCHSIA_POKECENTER_1F
+	warp_def $7, $0, 3, FUCHSIA_POKECENTER_1F
 
 .XYTriggers:
 	db 0
--- a/maps/GoldenrodBikeShop.asm
+++ b/maps/GoldenrodBikeShop.asm
@@ -105,8 +105,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 2, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
-	warp_def $7, $3, 2, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
+	warp_def $7, $2, 2, GOLDENROD_CITY
+	warp_def $7, $3, 2, GOLDENROD_CITY
 
 .XYTriggers:
 	db 0
@@ -125,4 +125,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_CLERK, 6, 11, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, ClerkScript_0x54750, -1
+	person_event SPRITE_CLERK, 6, 11, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, ClerkScript_0x54750, -1
--- a/maps/GoldenrodBillsHouse.asm
+++ b/maps/GoldenrodBillsHouse.asm
@@ -243,8 +243,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 4, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
-	warp_def $7, $3, 4, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
+	warp_def $7, $2, 4, GOLDENROD_CITY
+	warp_def $7, $3, 4, GOLDENROD_CITY
 
 .XYTriggers:
 	db 0
@@ -257,6 +257,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_BILL, 7, 6, OW_LEFT | $1, $0, -1, -1, $0, 0, BillsHouseBill, EVENT_MET_BILL
-	person_event SPRITE_POKEFAN_F, 7, 9, OW_UP | $2, $0, -1, -1, $0, 0, BillsMom, -1
-	person_event SPRITE_TWIN, 8, 9, OW_DOWN | $2, $11, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, BillsSister, -1
+	person_event SPRITE_BILL, 7, 6, $9, 0, 0, -1, -1, 0, 0, 0, BillsHouseBill, EVENT_MET_BILL
+	person_event SPRITE_POKEFAN_F, 7, 9, $6, 0, 0, -1, -1, 0, 0, 0, BillsMom, -1
+	person_event SPRITE_TWIN, 8, 9, $2, 1, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 0, BillsSister, -1
--- a/maps/GoldenrodCity.asm
+++ b/maps/GoldenrodCity.asm
@@ -545,21 +545,21 @@
 
 .Warps:
 	db 15
-	warp_def $7, $18, 1, GROUP_GOLDENROD_GYM, MAP_GOLDENROD_GYM
-	warp_def $1d, $1d, 1, GROUP_GOLDENROD_BIKE_SHOP, MAP_GOLDENROD_BIKE_SHOP
-	warp_def $15, $1f, 1, GROUP_GOLDENROD_HAPPINESS_RATER, MAP_GOLDENROD_HAPPINESS_RATER
-	warp_def $19, $5, 1, GROUP_GOLDENROD_BILLS_HOUSE, MAP_GOLDENROD_BILLS_HOUSE
-	warp_def $d, $9, 2, GROUP_GOLDENROD_MAGNET_TRAIN_STATION, MAP_GOLDENROD_MAGNET_TRAIN_STATION
-	warp_def $5, $1d, 1, GROUP_GOLDENROD_FLOWER_SHOP, MAP_GOLDENROD_FLOWER_SHOP
-	warp_def $9, $21, 1, GROUP_GOLDENROD_PP_SPEECH_HOUSE, MAP_GOLDENROD_PP_SPEECH_HOUSE
-	warp_def $7, $f, 1, GROUP_GOLDENROD_NAME_RATERS_HOUSE, MAP_GOLDENROD_NAME_RATERS_HOUSE
-	warp_def $1b, $18, 1, GROUP_GOLDENROD_DEPT_STORE_1F, MAP_GOLDENROD_DEPT_STORE_1F
-	warp_def $15, $e, 1, GROUP_GOLDENROD_GAME_CORNER, MAP_GOLDENROD_GAME_CORNER
-	warp_def $f, $5, 1, GROUP_RADIO_TOWER_1F, MAP_RADIO_TOWER_1F
-	warp_def $1, $13, 3, GROUP_ROUTE_35_GOLDENROD_GATE, MAP_ROUTE_35_GOLDENROD_GATE
-	warp_def $5, $9, 8, GROUP_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES, MAP_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES
-	warp_def $1d, $b, 5, GROUP_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES, MAP_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES
-	warp_def $1b, $f, 1, GROUP_GOLDENROD_POKECENTER_1F, MAP_GOLDENROD_POKECENTER_1F
+	warp_def $7, $18, 1, GOLDENROD_GYM
+	warp_def $1d, $1d, 1, GOLDENROD_BIKE_SHOP
+	warp_def $15, $1f, 1, GOLDENROD_HAPPINESS_RATER
+	warp_def $19, $5, 1, GOLDENROD_BILLS_HOUSE
+	warp_def $d, $9, 2, GOLDENROD_MAGNET_TRAIN_STATION
+	warp_def $5, $1d, 1, GOLDENROD_FLOWER_SHOP
+	warp_def $9, $21, 1, GOLDENROD_PP_SPEECH_HOUSE
+	warp_def $7, $f, 1, GOLDENROD_NAME_RATERS_HOUSE
+	warp_def $1b, $18, 1, GOLDENROD_DEPT_STORE_1F
+	warp_def $15, $e, 1, GOLDENROD_GAME_CORNER
+	warp_def $f, $5, 1, RADIO_TOWER_1F
+	warp_def $1, $13, 3, ROUTE_35_GOLDENROD_GATE
+	warp_def $5, $9, 8, UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES
+	warp_def $1d, $b, 5, UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES
+	warp_def $1b, $f, 1, GOLDENROD_POKECENTER_1F
 
 .XYTriggers:
 	db 0
@@ -581,18 +581,18 @@
 
 .PersonEvents:
 	db 15
-	person_event SPRITE_POKEFAN_M, 22, 11, OW_UP | $3, $0, -1, -1, $0, 0, PokefanMScript_0x1989e3, EVENT_GOLDENROD_CITY_CIVILIANS
-	person_event SPRITE_YOUNGSTER, 21, 34, OW_DOWN | $2, $11, -1, -1, $0, 0, YoungsterScript_0x1989e6, EVENT_GOLDENROD_CITY_CIVILIANS
-	person_event SPRITE_COOLTRAINER_F, 20, 16, OW_LEFT | $0, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, CooltrainerFScript_0x1989e9, EVENT_GOLDENROD_CITY_CIVILIANS
-	person_event SPRITE_COOLTRAINER_F, 30, 24, OW_DOWN | $2, $21, -1, -1, $0, 0, CooltrainerFScript_0x1989fd, EVENT_GOLDENROD_CITY_CIVILIANS
-	person_event SPRITE_YOUNGSTER, 21, 23, OW_DOWN | $2, $11, -1, -1, (PAL_OW_RED << 4) | $80, 0, YoungsterScript_0x198a11, EVENT_GOLDENROD_CITY_CIVILIANS
-	person_event SPRITE_LASS, 14, 21, OW_UP | $1, $2, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, LassScript_0x198a14, EVENT_GOLDENROD_CITY_CIVILIANS
-	person_event SPRITE_GRAMPS, 31, 15, OW_UP | $1, $1, -1, -1, $0, 0, GrampsScript_0x198a17, EVENT_GOLDENROD_CITY_CIVILIANS
-	person_event SPRITE_ROCKET, 20, 8, OW_UP | $3, $0, -1, -1, $0, 0, RocketScript_0x198a1a, EVENT_GOLDENROD_CITY_ROCKET_SCOUT
-	person_event SPRITE_ROCKET, 24, 32, OW_UP | $3, $0, -1, -1, $0, 0, RocketScript_0x198a29, EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER
-	person_event SPRITE_ROCKET, 19, 12, OW_UP | $2, $0, -1, -1, $0, 0, RocketScript_0x198a2c, EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER
-	person_event SPRITE_ROCKET, 27, 20, OW_LEFT | $1, $0, -1, -1, $0, 0, RocketScript_0x198a2f, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
-	person_event SPRITE_ROCKET, 24, 33, OW_UP | $3, $0, -1, -1, $0, 0, RocketScript_0x198a32, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
-	person_event SPRITE_ROCKET, 11, 33, OW_UP | $2, $0, -1, -1, $0, 0, RocketScript_0x198a35, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
-	person_event SPRITE_ROCKET, 14, 35, OW_LEFT | $0, $0, -1, -1, $0, 0, RocketScript_0x198a38, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
-	person_event SPRITE_POKEFAN_M, 26, 16, OW_DOWN | $3, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, MoveTutor, EVENT_GOLDENROD_CITY_MOVE_TUTOR
+	person_event SPRITE_POKEFAN_M, 22, 11, $7, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x1989e3, EVENT_GOLDENROD_CITY_CIVILIANS
+	person_event SPRITE_YOUNGSTER, 21, 34, $2, 1, 1, -1, -1, 0, 0, 0, YoungsterScript_0x1989e6, EVENT_GOLDENROD_CITY_CIVILIANS
+	person_event SPRITE_COOLTRAINER_F, 20, 16, $8, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x1989e9, EVENT_GOLDENROD_CITY_CIVILIANS
+	person_event SPRITE_COOLTRAINER_F, 30, 24, $2, 2, 1, -1, -1, 0, 0, 0, CooltrainerFScript_0x1989fd, EVENT_GOLDENROD_CITY_CIVILIANS
+	person_event SPRITE_YOUNGSTER, 21, 23, $2, 1, 1, -1, -1, 8 + PAL_OW_RED, 0, 0, YoungsterScript_0x198a11, EVENT_GOLDENROD_CITY_CIVILIANS
+	person_event SPRITE_LASS, 14, 21, $5, 0, 2, -1, -1, 8 + PAL_OW_GREEN, 0, 0, LassScript_0x198a14, EVENT_GOLDENROD_CITY_CIVILIANS
+	person_event SPRITE_GRAMPS, 31, 15, $5, 0, 1, -1, -1, 0, 0, 0, GrampsScript_0x198a17, EVENT_GOLDENROD_CITY_CIVILIANS
+	person_event SPRITE_ROCKET, 20, 8, $7, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a1a, EVENT_GOLDENROD_CITY_ROCKET_SCOUT
+	person_event SPRITE_ROCKET, 24, 32, $7, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a29, EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER
+	person_event SPRITE_ROCKET, 19, 12, $6, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a2c, EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER
+	person_event SPRITE_ROCKET, 27, 20, $9, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a2f, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_ROCKET, 24, 33, $7, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a32, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_ROCKET, 11, 33, $6, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a35, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_ROCKET, 14, 35, $8, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a38, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_POKEFAN_M, 26, 16, $3, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, MoveTutor, EVENT_GOLDENROD_CITY_MOVE_TUTOR
--- a/maps/GoldenrodDeptStore1F.asm
+++ b/maps/GoldenrodDeptStore1F.asm
@@ -78,10 +78,10 @@
 
 .Warps:
 	db 4
-	warp_def $7, $7, 9, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
-	warp_def $7, $8, 9, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
-	warp_def $0, $f, 2, GROUP_GOLDENROD_DEPT_STORE_2F, MAP_GOLDENROD_DEPT_STORE_2F
-	warp_def $0, $2, 1, GROUP_GOLDENROD_DEPT_STORE_ELEVATOR, MAP_GOLDENROD_DEPT_STORE_ELEVATOR
+	warp_def $7, $7, 9, GOLDENROD_CITY
+	warp_def $7, $8, 9, GOLDENROD_CITY
+	warp_def $0, $f, 2, GOLDENROD_DEPT_STORE_2F
+	warp_def $0, $2, 1, GOLDENROD_DEPT_STORE_ELEVATOR
 
 .XYTriggers:
 	db 0
@@ -93,7 +93,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_RECEPTIONIST, 5, 14, OW_UP | $2, $0, -1, -1, $0, 0, ReceptionistScript_0x55981, -1
-	person_event SPRITE_POKEFAN_F, 8, 9, OW_UP | $2, $0, -1, -1, $0, 0, PokefanFScript_0x55987, -1
-	person_event SPRITE_BUG_CATCHER, 9, 9, OW_UP | $1, $1, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, BugCatcherScript_0x5598a, -1
-	person_event SPRITE_GENTLEMAN, 9, 15, OW_DOWN | $2, $11, -1, -1, $0, 0, GentlemanScript_0x55984, -1
+	person_event SPRITE_RECEPTIONIST, 5, 14, $6, 0, 0, -1, -1, 0, 0, 0, ReceptionistScript_0x55981, -1
+	person_event SPRITE_POKEFAN_F, 8, 9, $6, 0, 0, -1, -1, 0, 0, 0, PokefanFScript_0x55987, -1
+	person_event SPRITE_BUG_CATCHER, 9, 9, $5, 0, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 0, BugCatcherScript_0x5598a, -1
+	person_event SPRITE_GENTLEMAN, 9, 15, $2, 1, 1, -1, -1, 0, 0, 0, GentlemanScript_0x55984, -1
--- a/maps/GoldenrodDeptStore2F.asm
+++ b/maps/GoldenrodDeptStore2F.asm
@@ -99,9 +99,9 @@
 
 .Warps:
 	db 3
-	warp_def $0, $c, 1, GROUP_GOLDENROD_DEPT_STORE_3F, MAP_GOLDENROD_DEPT_STORE_3F
-	warp_def $0, $f, 3, GROUP_GOLDENROD_DEPT_STORE_1F, MAP_GOLDENROD_DEPT_STORE_1F
-	warp_def $0, $2, 1, GROUP_GOLDENROD_DEPT_STORE_ELEVATOR, MAP_GOLDENROD_DEPT_STORE_ELEVATOR
+	warp_def $0, $c, 1, GOLDENROD_DEPT_STORE_3F
+	warp_def $0, $f, 3, GOLDENROD_DEPT_STORE_1F
+	warp_def $0, $2, 1, GOLDENROD_DEPT_STORE_ELEVATOR
 
 .XYTriggers:
 	db 0
@@ -113,8 +113,8 @@
 
 .PersonEvents:
 	db 5
-	person_event SPRITE_CLERK, 9, 17, OW_UP | $3, $0, -1, -1, $0, 0, ClerkScript_0x55b5d, -1
-	person_event SPRITE_CLERK, 10, 17, OW_LEFT | $0, $0, -1, -1, $0, 0, ClerkScript_0x55b65, -1
-	person_event SPRITE_YOUNGSTER, 10, 13, OW_UP | $0, $10, -1, -1, $0, 0, YoungsterScript_0x55b6d, -1
-	person_event SPRITE_COOLTRAINER_F, 6, 10, OW_UP | $1, $2, -1, -1, (PAL_OW_RED << 4) | $80, 0, CooltrainerFScript_0x55b70, -1
-	person_event SPRITE_GENTLEMAN, 10, 6, OW_DOWN | $3, $0, -1, -1, $0, 0, GentlemanScript_0x55b73, -1
+	person_event SPRITE_CLERK, 9, 17, $7, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x55b5d, -1
+	person_event SPRITE_CLERK, 10, 17, $8, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x55b65, -1
+	person_event SPRITE_YOUNGSTER, 10, 13, $4, 1, 0, -1, -1, 0, 0, 0, YoungsterScript_0x55b6d, -1
+	person_event SPRITE_COOLTRAINER_F, 6, 10, $5, 0, 2, -1, -1, 8 + PAL_OW_RED, 0, 0, CooltrainerFScript_0x55b70, -1
+	person_event SPRITE_GENTLEMAN, 10, 6, $3, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x55b73, -1
--- a/maps/GoldenrodDeptStore3F.asm
+++ b/maps/GoldenrodDeptStore3F.asm
@@ -57,9 +57,9 @@
 
 .Warps:
 	db 3
-	warp_def $0, $c, 1, GROUP_GOLDENROD_DEPT_STORE_2F, MAP_GOLDENROD_DEPT_STORE_2F
-	warp_def $0, $f, 2, GROUP_GOLDENROD_DEPT_STORE_4F, MAP_GOLDENROD_DEPT_STORE_4F
-	warp_def $0, $2, 1, GROUP_GOLDENROD_DEPT_STORE_ELEVATOR, MAP_GOLDENROD_DEPT_STORE_ELEVATOR
+	warp_def $0, $c, 1, GOLDENROD_DEPT_STORE_2F
+	warp_def $0, $f, 2, GOLDENROD_DEPT_STORE_4F
+	warp_def $0, $2, 1, GOLDENROD_DEPT_STORE_ELEVATOR
 
 .XYTriggers:
 	db 0
@@ -71,6 +71,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 5, 10, OW_UP | $2, $0, -1, -1, $0, 0, ClerkScript_0x55db8, -1
-	person_event SPRITE_SUPER_NERD, 9, 16, OW_LEFT | $2, $10, -1, -1, (PAL_OW_RED << 4) | $80, 0, SuperNerdScript_0x55dc0, -1
-	person_event SPRITE_ROCKER, 9, 6, OW_UP | $0, $10, -1, -1, $0, 0, RockerScript_0x55dc3, -1
+	person_event SPRITE_CLERK, 5, 10, $6, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x55db8, -1
+	person_event SPRITE_SUPER_NERD, 9, 16, $a, 1, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, SuperNerdScript_0x55dc0, -1
+	person_event SPRITE_ROCKER, 9, 6, $4, 1, 0, -1, -1, 0, 0, 0, RockerScript_0x55dc3, -1
--- a/maps/GoldenrodDeptStore4F.asm
+++ b/maps/GoldenrodDeptStore4F.asm
@@ -77,9 +77,9 @@
 
 .Warps:
 	db 3
-	warp_def $0, $c, 1, GROUP_GOLDENROD_DEPT_STORE_5F, MAP_GOLDENROD_DEPT_STORE_5F
-	warp_def $0, $f, 2, GROUP_GOLDENROD_DEPT_STORE_3F, MAP_GOLDENROD_DEPT_STORE_3F
-	warp_def $0, $2, 1, GROUP_GOLDENROD_DEPT_STORE_ELEVATOR, MAP_GOLDENROD_DEPT_STORE_ELEVATOR
+	warp_def $0, $c, 1, GOLDENROD_DEPT_STORE_5F
+	warp_def $0, $f, 2, GOLDENROD_DEPT_STORE_3F
+	warp_def $0, $2, 1, GOLDENROD_DEPT_STORE_ELEVATOR
 
 .XYTriggers:
 	db 0
@@ -91,7 +91,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_CLERK, 9, 17, OW_UP | $3, $0, -1, -1, $0, 0, ClerkScript_0x55ee9, -1
-	person_event SPRITE_COOLTRAINER_M, 11, 15, OW_LEFT | $1, $0, -1, -1, $0, 0, CooltrainerMScript_0x55ef1, -1
-	person_event SPRITE_BUG_CATCHER, 6, 11, OW_UP | $1, $1, -1, -1, $0, 0, BugCatcherScript_0x55ef4, -1
-	person_event SPRITE_GAMEBOY_KID, 5, 9, OW_UP | $2, $0, -1, -1, $0, 0, GameboyKidScript_0x55ef7, -1
+	person_event SPRITE_CLERK, 9, 17, $7, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x55ee9, -1
+	person_event SPRITE_COOLTRAINER_M, 11, 15, $9, 0, 0, -1, -1, 0, 0, 0, CooltrainerMScript_0x55ef1, -1
+	person_event SPRITE_BUG_CATCHER, 6, 11, $5, 0, 1, -1, -1, 0, 0, 0, BugCatcherScript_0x55ef4, -1
+	person_event SPRITE_GAMEBOY_KID, 5, 9, $6, 0, 0, -1, -1, 0, 0, 0, GameboyKidScript_0x55ef7, -1
--- a/maps/GoldenrodDeptStore5F.asm
+++ b/maps/GoldenrodDeptStore5F.asm
@@ -218,9 +218,9 @@
 
 .Warps:
 	db 3
-	warp_def $0, $c, 1, GROUP_GOLDENROD_DEPT_STORE_4F, MAP_GOLDENROD_DEPT_STORE_4F
-	warp_def $0, $f, 1, GROUP_GOLDENROD_DEPT_STORE_6F, MAP_GOLDENROD_DEPT_STORE_6F
-	warp_def $0, $2, 1, GROUP_GOLDENROD_DEPT_STORE_ELEVATOR, MAP_GOLDENROD_DEPT_STORE_ELEVATOR
+	warp_def $0, $c, 1, GOLDENROD_DEPT_STORE_4F
+	warp_def $0, $f, 1, GOLDENROD_DEPT_STORE_6F
+	warp_def $0, $2, 1, GOLDENROD_DEPT_STORE_ELEVATOR
 
 .XYTriggers:
 	db 0
@@ -232,9 +232,9 @@
 
 .PersonEvents:
 	db 6
-	person_event SPRITE_CLERK, 9, 12, OW_UP | $3, $0, -1, -1, $0, 0, ClerkScript_0x5609c, -1
-	person_event SPRITE_LASS, 10, 7, OW_DOWN | $2, $11, -1, -1, $0, 0, LassScript_0x56130, -1
-	person_event SPRITE_COOLTRAINER_M, 7, 10, OW_DOWN | $3, $0, -1, -1, $0, 0, CooltrainerMScript_0x56133, -1
-	person_event SPRITE_POKEFAN_M, 9, 17, OW_DOWN | $2, $22, -1, -1, $0, 0, PokefanMScript_0x5613a, -1
-	person_event SPRITE_TWIN, 5, 13, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, TwinScript_0x56118, -1
-	person_event SPRITE_RECEPTIONIST, 9, 11, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, ReceptionistScript_0x560ce, EVENT_GOLDENROD_DEPT_STORE_5F_HAPPINESS_EVENT_LADY
+	person_event SPRITE_CLERK, 9, 12, $7, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x5609c, -1
+	person_event SPRITE_LASS, 10, 7, $2, 1, 1, -1, -1, 0, 0, 0, LassScript_0x56130, -1
+	person_event SPRITE_COOLTRAINER_M, 7, 10, $3, 0, 0, -1, -1, 0, 0, 0, CooltrainerMScript_0x56133, -1
+	person_event SPRITE_POKEFAN_M, 9, 17, $2, 2, 2, -1, -1, 0, 0, 0, PokefanMScript_0x5613a, -1
+	person_event SPRITE_TWIN, 5, 13, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, TwinScript_0x56118, -1
+	person_event SPRITE_RECEPTIONIST, 9, 11, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, ReceptionistScript_0x560ce, EVENT_GOLDENROD_DEPT_STORE_5F_HAPPINESS_EVENT_LADY
--- a/maps/GoldenrodDeptStore6F.asm
+++ b/maps/GoldenrodDeptStore6F.asm
@@ -151,9 +151,9 @@
 
 .Warps:
 	db 3
-	warp_def $0, $f, 2, GROUP_GOLDENROD_DEPT_STORE_5F, MAP_GOLDENROD_DEPT_STORE_5F
-	warp_def $0, $2, 1, GROUP_GOLDENROD_DEPT_STORE_ELEVATOR, MAP_GOLDENROD_DEPT_STORE_ELEVATOR
-	warp_def $0, $d, 1, GROUP_GOLDENROD_DEPT_STORE_ROOF, MAP_GOLDENROD_DEPT_STORE_ROOF
+	warp_def $0, $f, 2, GOLDENROD_DEPT_STORE_5F
+	warp_def $0, $2, 1, GOLDENROD_DEPT_STORE_ELEVATOR
+	warp_def $0, $d, 1, GOLDENROD_DEPT_STORE_ROOF
 
 .XYTriggers:
 	db 0
@@ -169,5 +169,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_LASS, 6, 14, OW_UP | $1, $1, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, LassScript_0x564bf, -1
-	person_event SPRITE_SUPER_NERD, 6, 12, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, SuperNerdScript_0x564c2, -1
+	person_event SPRITE_LASS, 6, 14, $5, 0, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 0, LassScript_0x564bf, -1
+	person_event SPRITE_SUPER_NERD, 6, 12, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, SuperNerdScript_0x564c2, -1
--- a/maps/GoldenrodDeptStoreB1F.asm
+++ b/maps/GoldenrodDeptStoreB1F.asm
@@ -109,9 +109,9 @@
 
 .Warps:
 	db 3
-	warp_def $2, $11, 3, GROUP_UNDERGROUND_WAREHOUSE, MAP_UNDERGROUND_WAREHOUSE
-	warp_def $4, $9, 1, GROUP_GOLDENROD_DEPT_STORE_ELEVATOR, MAP_GOLDENROD_DEPT_STORE_ELEVATOR
-	warp_def $4, $a, 2, GROUP_GOLDENROD_DEPT_STORE_ELEVATOR, MAP_GOLDENROD_DEPT_STORE_ELEVATOR
+	warp_def $2, $11, 3, UNDERGROUND_WAREHOUSE
+	warp_def $4, $9, 1, GOLDENROD_DEPT_STORE_ELEVATOR
+	warp_def $4, $a, 2, GOLDENROD_DEPT_STORE_ELEVATOR
 
 .XYTriggers:
 	db 0
@@ -121,11 +121,11 @@
 
 .PersonEvents:
 	db 8
-	person_event SPRITE_POKE_BALL, 19, 14, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7d7c3, EVENT_GOLDENROD_DEPT_STORE_B1F_ETHER
-	person_event SPRITE_POKE_BALL, 6, 18, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7d7c5, EVENT_GOLDENROD_DEPT_STORE_B1F_AMULET_COIN
-	person_event SPRITE_POKE_BALL, 7, 10, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7d7c7, EVENT_GOLDENROD_DEPT_STORE_B1F_BURN_HEAL
-	person_event SPRITE_POKE_BALL, 19, 19, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7d7c9, EVENT_GOLDENROD_DEPT_STORE_B1F_ULTRA_BALL
-	person_event SPRITE_BLACK_BELT, 14, 13, OW_UP | $0, $10, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, BlackBeltScript_0x7d7b0, -1
-	person_event SPRITE_BLACK_BELT, 12, 8, OW_DOWN | $3, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, BlackBeltScript_0x7d7b3, -1
-	person_event SPRITE_BLACK_BELT, 17, 10, OW_UP | $1, $1, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, BlackBeltScript_0x7d7b6, -1
-	person_event SPRITE_MACHOP, 11, 11, OW_UP | $12, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, MachopScript_0x7d7b9, -1
+	person_event SPRITE_POKE_BALL, 19, 14, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d7c3, EVENT_GOLDENROD_DEPT_STORE_B1F_ETHER
+	person_event SPRITE_POKE_BALL, 6, 18, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d7c5, EVENT_GOLDENROD_DEPT_STORE_B1F_AMULET_COIN
+	person_event SPRITE_POKE_BALL, 7, 10, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d7c7, EVENT_GOLDENROD_DEPT_STORE_B1F_BURN_HEAL
+	person_event SPRITE_POKE_BALL, 19, 19, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d7c9, EVENT_GOLDENROD_DEPT_STORE_B1F_ULTRA_BALL
+	person_event SPRITE_BLACK_BELT, 14, 13, $4, 1, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, BlackBeltScript_0x7d7b0, -1
+	person_event SPRITE_BLACK_BELT, 12, 8, $3, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, BlackBeltScript_0x7d7b3, -1
+	person_event SPRITE_BLACK_BELT, 17, 10, $5, 0, 1, -1, -1, 8 + PAL_OW_BLUE, 0, 0, BlackBeltScript_0x7d7b6, -1
+	person_event SPRITE_MACHOP, 11, 11, $16, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, MachopScript_0x7d7b9, -1
--- a/maps/GoldenrodDeptStoreElevator.asm
+++ b/maps/GoldenrodDeptStoreElevator.asm
@@ -46,13 +46,13 @@
 
 Elevator_0x566e0:
 	db 7 ; floors
-	db _B1F, 2, GROUP_GOLDENROD_DEPT_STORE_B1F, MAP_GOLDENROD_DEPT_STORE_B1F
-	db _1F,  4, GROUP_GOLDENROD_DEPT_STORE_1F, MAP_GOLDENROD_DEPT_STORE_1F
-	db _2F,  3, GROUP_GOLDENROD_DEPT_STORE_2F, MAP_GOLDENROD_DEPT_STORE_2F
-	db _3F,  3, GROUP_GOLDENROD_DEPT_STORE_3F, MAP_GOLDENROD_DEPT_STORE_3F
-	db _4F,  3, GROUP_GOLDENROD_DEPT_STORE_4F, MAP_GOLDENROD_DEPT_STORE_4F
-	db _5F,  3, GROUP_GOLDENROD_DEPT_STORE_5F, MAP_GOLDENROD_DEPT_STORE_5F
-	db _6F,  2, GROUP_GOLDENROD_DEPT_STORE_6F, MAP_GOLDENROD_DEPT_STORE_6F
+	elevfloor _B1F, 2, GOLDENROD_DEPT_STORE_B1F
+	elevfloor _1F,  4, GOLDENROD_DEPT_STORE_1F
+	elevfloor _2F,  3, GOLDENROD_DEPT_STORE_2F
+	elevfloor _3F,  3, GOLDENROD_DEPT_STORE_3F
+	elevfloor _4F,  3, GOLDENROD_DEPT_STORE_4F
+	elevfloor _5F,  3, GOLDENROD_DEPT_STORE_5F
+	elevfloor _6F,  2, GOLDENROD_DEPT_STORE_6F
 	db $ff ; end
 
 
@@ -62,8 +62,8 @@
 
 .Warps:
 	db 2
-	warp_def $3, $1, 255, GROUP_GOLDENROD_DEPT_STORE_1F, MAP_GOLDENROD_DEPT_STORE_1F
-	warp_def $3, $2, 255, GROUP_GOLDENROD_DEPT_STORE_1F, MAP_GOLDENROD_DEPT_STORE_1F
+	warp_def $3, $1, 255, GOLDENROD_DEPT_STORE_1F
+	warp_def $3, $2, 255, GOLDENROD_DEPT_STORE_1F
 
 .XYTriggers:
 	db 0
--- a/maps/GoldenrodDeptStoreRoof.asm
+++ b/maps/GoldenrodDeptStoreRoof.asm
@@ -211,7 +211,7 @@
 
 .Warps:
 	db 1
-	warp_def $1, $d, 3, GROUP_GOLDENROD_DEPT_STORE_6F, MAP_GOLDENROD_DEPT_STORE_6F
+	warp_def $1, $d, 3, GOLDENROD_DEPT_STORE_6F
 
 .XYTriggers:
 	db 0
@@ -225,11 +225,11 @@
 
 .PersonEvents:
 	db 8
-	person_event SPRITE_CLERK, 8, 5, OW_LEFT | $1, $0, -1, -1, $0, 0, ClerkScript_0x5673f, EVENT_GOLDENROD_SALE_OFF
-	person_event SPRITE_POKEFAN_F, 7, 14, OW_UP | $1, $1, -1, -1, (PAL_OW_RED << 4) | $80, 0, PokefanFScript_0x56746, -1
-	person_event SPRITE_FISHER, 5, 6, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, FisherScript_0x56749, -1
-	person_event SPRITE_TWIN, 8, 7, OW_DOWN | $2, $11, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, TwinScript_0x56754, EVENT_GOLDENROD_SALE_ON
-	person_event SPRITE_SUPER_NERD, 10, 18, OW_LEFT | $1, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, SuperNerdScript_0x56757, EVENT_GOLDENROD_SALE_ON
-	person_event SPRITE_POKEFAN_M, 4, 11, OW_UP | $1, $1, -1, -1, $0, 0, PokefanMScript_0x5676a, EVENT_GOLDENROD_SALE_OFF
-	person_event SPRITE_TEACHER, 7, 9, OW_DOWN | $2, $11, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, TeacherScript_0x5676d, EVENT_GOLDENROD_SALE_OFF
-	person_event SPRITE_BUG_CATCHER, 10, 5, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, BugCatcherScript_0x56770, EVENT_GOLDENROD_SALE_OFF
+	person_event SPRITE_CLERK, 8, 5, $9, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x5673f, EVENT_GOLDENROD_SALE_OFF
+	person_event SPRITE_POKEFAN_F, 7, 14, $5, 0, 1, -1, -1, 8 + PAL_OW_RED, 0, 0, PokefanFScript_0x56746, -1
+	person_event SPRITE_FISHER, 5, 6, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, FisherScript_0x56749, -1
+	person_event SPRITE_TWIN, 8, 7, $2, 1, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 0, TwinScript_0x56754, EVENT_GOLDENROD_SALE_ON
+	person_event SPRITE_SUPER_NERD, 10, 18, $9, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, SuperNerdScript_0x56757, EVENT_GOLDENROD_SALE_ON
+	person_event SPRITE_POKEFAN_M, 4, 11, $5, 0, 1, -1, -1, 0, 0, 0, PokefanMScript_0x5676a, EVENT_GOLDENROD_SALE_OFF
+	person_event SPRITE_TEACHER, 7, 9, $2, 1, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 0, TeacherScript_0x5676d, EVENT_GOLDENROD_SALE_OFF
+	person_event SPRITE_BUG_CATCHER, 10, 5, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, BugCatcherScript_0x56770, EVENT_GOLDENROD_SALE_OFF
--- a/maps/GoldenrodFlowerShop.asm
+++ b/maps/GoldenrodFlowerShop.asm
@@ -5,17 +5,17 @@
 .MapCallbacks:
 	db 0
 
-TeacherScript_0x5535d:
+FlowerShopTeacherScript:
 	checkevent EVENT_FOUGHT_SUDOWOODO
-	iftrue UnknownScript_0x5538f
+	iftrue .Lalala
 	checkevent EVENT_GOT_SQUIRTBOTTLE
-	iftrue UnknownScript_0x55399
+	iftrue .GotSquirtbottle
 	checkevent EVENT_MET_FLORIA
-	iffalse UnknownScript_0x5539f
+	iffalse .HaventMetFloria
 	checkevent EVENT_TALKED_TO_FLORIA_AT_FLOWER_SHOP
-	iffalse UnknownScript_0x5538f
+	iffalse .Lalala
 	checkflag ENGINE_PLAINBADGE
-	iffalse UnknownScript_0x5539c
+	iffalse .NoPlainBadge
 	faceplayer
 	loadfont
 	writetext UnknownText_0x554c2
@@ -27,7 +27,7 @@
 	clearevent EVENT_FLORIA_AT_FLOWER_SHOP
 	end
 
-UnknownScript_0x5538f:
+.Lalala:
 	spriteface $2, LEFT
 	loadfont
 	writetext UnknownText_0x5552e
@@ -35,22 +35,22 @@
 	loadmovesprites
 	end
 
-UnknownScript_0x55399:
+.GotSquirtbottle:
 	jumptextfaceplayer UnknownText_0x5550d
 
-UnknownScript_0x5539c:
+.NoPlainBadge:
 	jumptextfaceplayer UnknownText_0x55463
 
-UnknownScript_0x5539f:
+.HaventMetFloria:
 	jumptextfaceplayer UnknownText_0x553d4
 
-LassScript_0x553a2:
+FlowerShopFloriaScript:
 	faceplayer
 	loadfont
 	checkevent EVENT_FOUGHT_SUDOWOODO
-	iftrue UnknownScript_0x553c5
+	iftrue .FoughtSudowoodo
 	checkevent EVENT_GOT_SQUIRTBOTTLE
-	iftrue UnknownScript_0x553bf
+	iftrue .GotSquirtbottle
 	writetext UnknownText_0x55561
 	closetext
 	loadmovesprites
@@ -59,13 +59,13 @@
 	clearevent EVENT_FLORIA_AT_SUDOWOODO
 	end
 
-UnknownScript_0x553bf:
+.GotSquirtbottle:
 	writetext UnknownText_0x555e6
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x553c5:
+.FoughtSudowoodo:
 	writetext UnknownText_0x55604
 	closetext
 	loadmovesprites
@@ -161,8 +161,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 6, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
-	warp_def $7, $3, 6, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
+	warp_def $7, $2, 6, GOLDENROD_CITY
+	warp_def $7, $3, 6, GOLDENROD_CITY
 
 .XYTriggers:
 	db 0
@@ -172,5 +172,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_TEACHER, 8, 6, OW_LEFT | $1, $0, -1, -1, $0, 0, TeacherScript_0x5535d, -1
-	person_event SPRITE_LASS, 10, 9, OW_DOWN | $2, $11, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, LassScript_0x553a2, EVENT_FLORIA_AT_FLOWER_SHOP
+	person_event SPRITE_TEACHER, 8, 6, $9, 0, 0, -1, -1, 0, 0, 0, FlowerShopTeacherScript, -1
+	person_event SPRITE_LASS, 10, 9, $2, 1, 1, -1, -1, 8 + PAL_OW_BLUE, 0, 0, FlowerShopFloriaScript, EVENT_FLORIA_AT_FLOWER_SHOP
--- a/maps/GoldenrodGameCorner.asm
+++ b/maps/GoldenrodGameCorner.asm
@@ -437,8 +437,8 @@
 
 .Warps:
 	db 2
-	warp_def $d, $2, 10, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
-	warp_def $d, $3, 10, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
+	warp_def $d, $2, 10, GOLDENROD_CITY
+	warp_def $d, $3, 10, GOLDENROD_CITY
 
 .XYTriggers:
 	db 0
@@ -479,15 +479,15 @@
 
 .PersonEvents:
 	db 12
-	person_event SPRITE_CLERK, 6, 7, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, ClerkScript_0x56c25, -1
-	person_event SPRITE_RECEPTIONIST, 6, 20, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, ReceptionistScript_0x56c28, -1
-	person_event SPRITE_RECEPTIONIST, 6, 22, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, ReceptionistScript_0x56d01, -1
-	person_event SPRITE_PHARMACIST, 11, 12, OW_LEFT | $0, $0, -1, 2, (PAL_OW_BLUE << 4) | $80, 0, PharmacistScript_0x56df1, -1
-	person_event SPRITE_PHARMACIST, 11, 12, OW_LEFT | $0, $0, -1, 4, (PAL_OW_BLUE << 4) | $80, 0, PharmacistScript_0x56df1, -1
-	person_event SPRITE_POKEFAN_M, 14, 15, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, PokefanMScript_0x56dfc, -1
-	person_event SPRITE_COOLTRAINER_M, 12, 18, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, CooltrainerMScript_0x56e07, -1
-	person_event SPRITE_POKEFAN_F, 10, 21, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, PokefanFScript_0x56e12, -1
-	person_event SPRITE_COOLTRAINER_F, 7, 14, OW_DOWN | $2, $12, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, CooltrainerFScript_0x56e1d, -1
-	person_event SPRITE_GENTLEMAN, 14, 9, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, GentlemanScript_0x56e20, -1
-	person_event SPRITE_POKEFAN_M, 13, 6, OW_DOWN | $2, $11, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, PokefanMScript_0x56e2b, -1
-	person_event SPRITE_POKEFAN_M, 14, 21, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, PokefanMScript_0x56c1a, EVENT_GOLDENROD_GAME_CORNER_MOVE_TUTOR
+	person_event SPRITE_CLERK, 6, 7, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, ClerkScript_0x56c25, -1
+	person_event SPRITE_RECEPTIONIST, 6, 20, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, ReceptionistScript_0x56c28, -1
+	person_event SPRITE_RECEPTIONIST, 6, 22, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, ReceptionistScript_0x56d01, -1
+	person_event SPRITE_PHARMACIST, 11, 12, $8, 0, 0, -1, 2, 8 + PAL_OW_BLUE, 0, 0, PharmacistScript_0x56df1, -1
+	person_event SPRITE_PHARMACIST, 11, 12, $8, 0, 0, -1, 4, 8 + PAL_OW_BLUE, 0, 0, PharmacistScript_0x56df1, -1
+	person_event SPRITE_POKEFAN_M, 14, 15, $9, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, PokefanMScript_0x56dfc, -1
+	person_event SPRITE_COOLTRAINER_M, 12, 18, $8, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, CooltrainerMScript_0x56e07, -1
+	person_event SPRITE_POKEFAN_F, 10, 21, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, PokefanFScript_0x56e12, -1
+	person_event SPRITE_COOLTRAINER_F, 7, 14, $2, 1, 2, -1, -1, 8 + PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x56e1d, -1
+	person_event SPRITE_GENTLEMAN, 14, 9, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, GentlemanScript_0x56e20, -1
+	person_event SPRITE_POKEFAN_M, 13, 6, $2, 1, 1, -1, -1, 8 + PAL_OW_BROWN, 0, 0, PokefanMScript_0x56e2b, -1
+	person_event SPRITE_POKEFAN_M, 14, 21, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, PokefanMScript_0x56c1a, EVENT_GOLDENROD_GAME_CORNER_MOVE_TUTOR
--- a/maps/GoldenrodGym.asm
+++ b/maps/GoldenrodGym.asm
@@ -379,8 +379,8 @@
 
 .Warps:
 	db 2
-	warp_def $11, $2, 1, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
-	warp_def $11, $3, 1, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
+	warp_def $11, $2, 1, GOLDENROD_CITY
+	warp_def $11, $3, 1, GOLDENROD_CITY
 
 .XYTriggers:
 	db 1
@@ -393,9 +393,9 @@
 
 .PersonEvents:
 	db 6
-	person_event SPRITE_WHITNEY, 7, 12, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, WhitneyScript_0x5400c, -1
-	person_event SPRITE_LASS, 17, 13, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 4, TrainerLassCarrie, -1
-	person_event SPRITE_LASS, 10, 13, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 1, TrainerLassBridget, -1
-	person_event SPRITE_BUENA, 6, 4, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerBeautyVictoria, -1
-	person_event SPRITE_BUENA, 9, 23, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerBeautySamantha, -1
-	person_event SPRITE_GYM_GUY, 19, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, GoldenrodGymGuyScript, -1
+	person_event SPRITE_WHITNEY, 7, 12, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, WhitneyScript_0x5400c, -1
+	person_event SPRITE_LASS, 17, 13, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 4, TrainerLassCarrie, -1
+	person_event SPRITE_LASS, 10, 13, $8, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 1, TrainerLassBridget, -1
+	person_event SPRITE_BUENA, 6, 4, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerBeautyVictoria, -1
+	person_event SPRITE_BUENA, 9, 23, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerBeautySamantha, -1
+	person_event SPRITE_GYM_GUY, 19, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, GoldenrodGymGuyScript, -1
--- a/maps/GoldenrodHappinessRater.asm
+++ b/maps/GoldenrodHappinessRater.asm
@@ -137,8 +137,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 3, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
-	warp_def $7, $3, 3, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
+	warp_def $7, $2, 3, GOLDENROD_CITY
+	warp_def $7, $3, 3, GOLDENROD_CITY
 
 .XYTriggers:
 	db 0
@@ -151,6 +151,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_TEACHER, 8, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, TeacherScript_0x54953, -1
-	person_event SPRITE_POKEFAN_M, 7, 9, OW_LEFT | $0, $0, -1, -1, $0, 0, PokefanMScript_0x54997, -1
-	person_event SPRITE_TWIN, 10, 9, OW_UP | $1, $1, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, TwinScript_0x5499a, -1
+	person_event SPRITE_TEACHER, 8, 6, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, TeacherScript_0x54953, -1
+	person_event SPRITE_POKEFAN_M, 7, 9, $8, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x54997, -1
+	person_event SPRITE_TWIN, 10, 9, $5, 0, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 0, TwinScript_0x5499a, -1
--- a/maps/GoldenrodMagnetTrainStation.asm
+++ b/maps/GoldenrodMagnetTrainStation.asm
@@ -3,12 +3,12 @@
 	db 1
 
 	; triggers
-	dw UnknownScript_0x550eb, $0000
+	dw .Trigger1, $0000
 
 .MapCallbacks:
 	db 0
 
-UnknownScript_0x550eb:
+.Trigger1:
 	end
 
 OfficerScript_0x550ec:
@@ -15,18 +15,18 @@
 	faceplayer
 	loadfont
 	checkevent EVENT_RESTORED_POWER_TO_KANTO
-	iftrue UnknownScript_0x550fa
+	iftrue .MagnetTrainToSaffron
 	writetext UnknownText_0x55160
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x550fa:
+.MagnetTrainToSaffron:
 	writetext UnknownText_0x551b7
 	yesorno
-	iffalse UnknownScript_0x5512a
+	iffalse .DecidedNotToRide
 	checkitem PASS
-	iffalse UnknownScript_0x55124
+	iffalse .PassNotInBag
 	writetext UnknownText_0x551ed
 	closetext
 	loadmovesprites
@@ -36,27 +36,27 @@
 	special Special_MagnetTrain
 	warpcheck
 	newloadmap $f9
-	applymovement PLAYER, MovementData_0x55122
+	applymovement PLAYER, .MovementBoardTheTrain
 	wait $14
 	end
 
-MovementData_0x55122:
+.MovementBoardTheTrain:
 	turn_head_down
 	step_end
 
-UnknownScript_0x55124:
+.PassNotInBag:
 	writetext UnknownText_0x5522c
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x5512a:
+.DecidedNotToRide:
 	writetext UnknownText_0x5524f
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x55130:
+Script_ArriveFromSaffron:
 	applymovement $2, MovementData_0x55146
 	applymovement PLAYER, MovementData_0x55158
 	applymovement $2, MovementData_0x5514b
@@ -168,14 +168,14 @@
 
 .Warps:
 	db 4
-	warp_def $11, $8, 5, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
-	warp_def $11, $9, 5, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
-	warp_def $5, $6, 4, GROUP_SAFFRON_TRAIN_STATION, MAP_SAFFRON_TRAIN_STATION
-	warp_def $5, $b, 3, GROUP_SAFFRON_TRAIN_STATION, MAP_SAFFRON_TRAIN_STATION
+	warp_def $11, $8, 5, GOLDENROD_CITY
+	warp_def $11, $9, 5, GOLDENROD_CITY
+	warp_def $5, $6, 4, SAFFRON_TRAIN_STATION
+	warp_def $5, $b, 3, SAFFRON_TRAIN_STATION
 
 .XYTriggers:
 	db 1
-	xy_trigger 0, $6, $b, $0, UnknownScript_0x55130, $0, $0
+	xy_trigger 0, $6, $b, $0, Script_ArriveFromSaffron, $0, $0
 
 .Signposts:
 	db 0
@@ -182,5 +182,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_OFFICER, 13, 13, OW_UP | $2, $0, -1, -1, $0, 0, OfficerScript_0x550ec, -1
-	person_event SPRITE_GENTLEMAN, 18, 15, OW_DOWN | $2, $22, -1, -1, $0, 0, GentlemanScript_0x55143, EVENT_GOLDENROD_TRAIN_STATION_GENTLEMAN
+	person_event SPRITE_OFFICER, 13, 13, $6, 0, 0, -1, -1, 0, 0, 0, OfficerScript_0x550ec, -1
+	person_event SPRITE_GENTLEMAN, 18, 15, $2, 2, 2, -1, -1, 0, 0, 0, GentlemanScript_0x55143, EVENT_GOLDENROD_TRAIN_STATION_GENTLEMAN
--- a/maps/GoldenrodNameRatersHouse.asm
+++ b/maps/GoldenrodNameRatersHouse.asm
@@ -27,8 +27,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 8, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
-	warp_def $7, $3, 8, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
+	warp_def $7, $2, 8, GOLDENROD_CITY
+	warp_def $7, $3, 8, GOLDENROD_CITY
 
 .XYTriggers:
 	db 0
@@ -41,4 +41,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_GENTLEMAN, 8, 6, OW_UP | $2, $2, -1, -1, $0, 0, GentlemanScript_0x5577c, -1
+	person_event SPRITE_GENTLEMAN, 8, 6, $6, 0, 2, -1, -1, 0, 0, 0, GentlemanScript_0x5577c, -1
--- a/maps/GoldenrodPPSpeechHouse.asm
+++ b/maps/GoldenrodPPSpeechHouse.asm
@@ -53,8 +53,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 7, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
-	warp_def $7, $3, 7, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
+	warp_def $7, $2, 7, GOLDENROD_CITY
+	warp_def $7, $3, 7, GOLDENROD_CITY
 
 .XYTriggers:
 	db 0
@@ -67,5 +67,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_FISHER, 8, 6, OW_UP | $0, $10, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, FisherScript_0x5564a, -1
-	person_event SPRITE_LASS, 7, 9, OW_LEFT | $0, $10, -1, -1, $0, 0, LassScript_0x5564d, -1
+	person_event SPRITE_FISHER, 8, 6, $4, 1, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, FisherScript_0x5564a, -1
+	person_event SPRITE_LASS, 7, 9, $8, 1, 0, -1, -1, 0, 0, 0, LassScript_0x5564d, -1
--- a/maps/GoldenrodPokeCenter1F.asm
+++ b/maps/GoldenrodPokeCenter1F.asm
@@ -803,10 +803,10 @@
 
 .Warps:
 	db 4
-	warp_def $7, $3, 15, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
-	warp_def $7, $4, 15, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
-	warp_def $6, $0, 1, GROUP_GOLDENROD_POKECOM_CENTER_2F_MOBILE, MAP_GOLDENROD_POKECOM_CENTER_2F_MOBILE
-	warp_def $7, $0, 1, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
+	warp_def $7, $3, 15, GOLDENROD_CITY
+	warp_def $7, $4, 15, GOLDENROD_CITY
+	warp_def $6, $0, 1, GOLDENROD_POKECOM_CENTER_2F_MOBILE
+	warp_def $7, $0, 1, POKECENTER_2F
 
 .XYTriggers:
 	db 2
@@ -818,8 +818,8 @@
 
 .PersonEvents:
 	db 5
-	person_event SPRITE_NURSE, 5, 7, OW_UP | $2, $0, -1, -1, $0, 0, NurseScript_0x60f91, -1
-	person_event SPRITE_LINK_RECEPTIONIST, 12, 20, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ObjectEvent, -1
-	person_event SPRITE_GAMEBOY_KID, 5, 10, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, GameboyKidScript_0x6101e, -1
-	person_event SPRITE_LASS, 8, 5, OW_UP | $1, $1, -1, -1, $0, 0, LassScript_0x61021, -1
-	person_event SPRITE_POKEFAN_F, 9, 11, OW_UP | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, PokefanFScript_0x61024, -1
+	person_event SPRITE_NURSE, 5, 7, $6, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x60f91, -1
+	person_event SPRITE_LINK_RECEPTIONIST, 12, 20, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ObjectEvent, -1
+	person_event SPRITE_GAMEBOY_KID, 5, 10, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, GameboyKidScript_0x6101e, -1
+	person_event SPRITE_LASS, 8, 5, $5, 0, 1, -1, -1, 0, 0, 0, LassScript_0x61021, -1
+	person_event SPRITE_POKEFAN_F, 9, 11, $6, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, PokefanFScript_0x61024, -1
--- a/maps/GoldenrodPokeComCenter2FMobile.asm
+++ b/maps/GoldenrodPokeComCenter2FMobile.asm
@@ -269,8 +269,8 @@
 
 .Warps:
 	db 2
-	warp_def $1f, $0, 3, GROUP_GOLDENROD_POKECENTER_1F, MAP_GOLDENROD_POKECENTER_1F
-	warp_def $1f, $1, 3, GROUP_GOLDENROD_POKECENTER_1F, MAP_GOLDENROD_POKECENTER_1F
+	warp_def $1f, $0, 3, GOLDENROD_POKECENTER_1F
+	warp_def $1f, $1, 3, GOLDENROD_POKECENTER_1F
 
 .XYTriggers:
 	db 0
@@ -283,6 +283,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_SCIENTIST, 32, 8, OW_UP | $0, $10, -1, -1, (PAL_OW_RED << 4) | $80, 0, ScientistScript_0x625d1, -1
-	person_event SPRITE_SCIENTIST, 31, 11, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ScientistScript_0x625d4, -1
-	person_event SPRITE_SCIENTIST, 33, 11, OW_UP | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, ScientistScript_0x625d7, -1
+	person_event SPRITE_SCIENTIST, 32, 8, $4, 1, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, ScientistScript_0x625d1, -1
+	person_event SPRITE_SCIENTIST, 31, 11, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ScientistScript_0x625d4, -1
+	person_event SPRITE_SCIENTIST, 33, 11, $7, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, ScientistScript_0x625d7, -1
--- a/maps/GuideGentsHouse.asm
+++ b/maps/GuideGentsHouse.asm
@@ -30,8 +30,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 4, GROUP_CHERRYGROVE_CITY, MAP_CHERRYGROVE_CITY
-	warp_def $7, $3, 4, GROUP_CHERRYGROVE_CITY, MAP_CHERRYGROVE_CITY
+	warp_def $7, $2, 4, CHERRYGROVE_CITY
+	warp_def $7, $3, 4, CHERRYGROVE_CITY
 
 .XYTriggers:
 	db 0
@@ -43,4 +43,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_GRAMPS, 7, 6, OW_LEFT | $1, $0, -1, -1, $0, 0, GuideGentsHouseGuideGent, EVENT_GUIDE_GENT_VISIBLE_IN_CHERRYGROVE
+	person_event SPRITE_GRAMPS, 7, 6, $9, 0, 0, -1, -1, 0, 0, 0, GuideGentsHouseGuideGent, EVENT_GUIDE_GENT_VISIBLE_IN_CHERRYGROVE
--- a/maps/HallOfFame.asm
+++ b/maps/HallOfFame.asm
@@ -37,7 +37,7 @@
 	clearevent EVENT_RED_IN_MT_SILVER
 	setevent EVENT_OLIVINE_PORT_SPRITES_BEFORE_HALL_OF_FAME
 	clearevent EVENT_OLIVINE_PORT_SPRITES_AFTER_HALL_OF_FAME
-	domaptrigger GROUP_SPROUT_TOWER_3F, MAP_SPROUT_TOWER_3F, $1
+	domaptrigger SPROUT_TOWER_3F, $1
 	special HealParty
 	checkevent EVENT_GOT_SS_TICKET_FROM_ELM
 	iftrue .SkipPhoneCall
@@ -115,8 +115,8 @@
 
 .Warps:
 	db 2
-	warp_def $d, $4, 3, GROUP_LANCES_ROOM, MAP_LANCES_ROOM
-	warp_def $d, $5, 4, GROUP_LANCES_ROOM, MAP_LANCES_ROOM
+	warp_def $d, $4, 3, LANCES_ROOM
+	warp_def $d, $5, 4, LANCES_ROOM
 
 .XYTriggers:
 	db 0
@@ -126,4 +126,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_LANCE, 16, 8, OW_UP | $3, $0, -1, -1, PAL_OW_RED << 4 | $0, 0, ObjectEvent, -1
+	person_event SPRITE_LANCE, 16, 8, $7, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, -1
--- a/maps/IcePath1F.asm
+++ b/maps/IcePath1F.asm
@@ -20,10 +20,10 @@
 
 .Warps:
 	db 4
-	warp_def $13, $4, 1, GROUP_ROUTE_44, MAP_ROUTE_44
-	warp_def $1b, $24, 7, GROUP_BLACKTHORN_CITY, MAP_BLACKTHORN_CITY
-	warp_def $5, $25, 1, GROUP_ICE_PATH_B1F, MAP_ICE_PATH_B1F
-	warp_def $d, $25, 7, GROUP_ICE_PATH_B1F, MAP_ICE_PATH_B1F
+	warp_def $13, $4, 1, ROUTE_44
+	warp_def $1b, $24, 7, BLACKTHORN_CITY
+	warp_def $5, $25, 1, ICE_PATH_B1F
+	warp_def $d, $25, 7, ICE_PATH_B1F
 
 .XYTriggers:
 	db 0
@@ -33,6 +33,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_POKE_BALL, 11, 35, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7e472, EVENT_GOT_HM07_WATERFALL
-	person_event SPRITE_POKE_BALL, 27, 36, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7e474, EVENT_ICE_PATH_1F_PP_UP
-	person_event SPRITE_POKE_BALL, 13, 39, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7e476, EVENT_ICE_PATH_1F_PROTEIN
+	person_event SPRITE_POKE_BALL, 11, 35, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e472, EVENT_GOT_HM07_WATERFALL
+	person_event SPRITE_POKE_BALL, 27, 36, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e474, EVENT_ICE_PATH_1F_PP_UP
+	person_event SPRITE_POKE_BALL, 13, 39, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e476, EVENT_ICE_PATH_1F_PROTEIN
--- a/maps/IcePathB1F.asm
+++ b/maps/IcePathB1F.asm
@@ -89,14 +89,14 @@
 
 .Warps:
 	db 8
-	warp_def $f, $3, 3, GROUP_ICE_PATH_1F, MAP_ICE_PATH_1F
-	warp_def $3, $11, 1, GROUP_ICE_PATH_B2F_MAHOGANY_SIDE, MAP_ICE_PATH_B2F_MAHOGANY_SIDE
-	warp_def $2, $b, 3, GROUP_ICE_PATH_B2F_MAHOGANY_SIDE, MAP_ICE_PATH_B2F_MAHOGANY_SIDE
-	warp_def $7, $4, 4, GROUP_ICE_PATH_B2F_MAHOGANY_SIDE, MAP_ICE_PATH_B2F_MAHOGANY_SIDE
-	warp_def $c, $5, 5, GROUP_ICE_PATH_B2F_MAHOGANY_SIDE, MAP_ICE_PATH_B2F_MAHOGANY_SIDE
-	warp_def $d, $c, 6, GROUP_ICE_PATH_B2F_MAHOGANY_SIDE, MAP_ICE_PATH_B2F_MAHOGANY_SIDE
-	warp_def $19, $5, 4, GROUP_ICE_PATH_1F, MAP_ICE_PATH_1F
-	warp_def $1b, $b, 1, GROUP_ICE_PATH_B2F_BLACKTHORN_SIDE, MAP_ICE_PATH_B2F_BLACKTHORN_SIDE
+	warp_def $f, $3, 3, ICE_PATH_1F
+	warp_def $3, $11, 1, ICE_PATH_B2F_MAHOGANY_SIDE
+	warp_def $2, $b, 3, ICE_PATH_B2F_MAHOGANY_SIDE
+	warp_def $7, $4, 4, ICE_PATH_B2F_MAHOGANY_SIDE
+	warp_def $c, $5, 5, ICE_PATH_B2F_MAHOGANY_SIDE
+	warp_def $d, $c, 6, ICE_PATH_B2F_MAHOGANY_SIDE
+	warp_def $19, $5, 4, ICE_PATH_1F
+	warp_def $1b, $b, 1, ICE_PATH_B2F_BLACKTHORN_SIDE
 
 .XYTriggers:
 	db 0
@@ -107,8 +107,8 @@
 
 .PersonEvents:
 	db 5
-	person_event SPRITE_BOULDER, 11, 15, OW_LEFT | $11, $0, -1, -1, $0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_1
-	person_event SPRITE_BOULDER, 12, 11, OW_LEFT | $11, $0, -1, -1, $0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_2
-	person_event SPRITE_BOULDER, 13, 12, OW_LEFT | $11, $0, -1, -1, $0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_3
-	person_event SPRITE_BOULDER, 11, 21, OW_LEFT | $11, $0, -1, -1, $0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_4
-	person_event SPRITE_POKE_BALL, 39, 9, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7e50d, EVENT_ICE_PATH_B1F_IRON
+	person_event SPRITE_BOULDER, 11, 15, $19, 0, 0, -1, -1, 0, 0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_1
+	person_event SPRITE_BOULDER, 12, 11, $19, 0, 0, -1, -1, 0, 0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_2
+	person_event SPRITE_BOULDER, 13, 12, $19, 0, 0, -1, -1, 0, 0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_3
+	person_event SPRITE_BOULDER, 11, 21, $19, 0, 0, -1, -1, 0, 0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_4
+	person_event SPRITE_POKE_BALL, 39, 9, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e50d, EVENT_ICE_PATH_B1F_IRON
--- a/maps/IcePathB2FBlackthornSide.asm
+++ b/maps/IcePathB2FBlackthornSide.asm
@@ -18,8 +18,8 @@
 
 .Warps:
 	db 2
-	warp_def $f, $3, 8, GROUP_ICE_PATH_B1F, MAP_ICE_PATH_B1F
-	warp_def $3, $3, 2, GROUP_ICE_PATH_B3F, MAP_ICE_PATH_B3F
+	warp_def $f, $3, 8, ICE_PATH_B1F
+	warp_def $3, $3, 2, ICE_PATH_B3F
 
 .XYTriggers:
 	db 0
@@ -30,4 +30,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_POKE_BALL, 20, 12, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7e646, EVENT_ICE_PATH_B2F_BLACKTHORN_SIDE_TM_REST
+	person_event SPRITE_POKE_BALL, 20, 12, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e646, EVENT_ICE_PATH_B2F_BLACKTHORN_SIDE_TM_REST
--- a/maps/IcePathB2FMahoganySide.asm
+++ b/maps/IcePathB2FMahoganySide.asm
@@ -29,12 +29,12 @@
 
 .Warps:
 	db 6
-	warp_def $1, $11, 2, GROUP_ICE_PATH_B1F, MAP_ICE_PATH_B1F
-	warp_def $b, $9, 1, GROUP_ICE_PATH_B3F, MAP_ICE_PATH_B3F
-	warp_def $4, $b, 3, GROUP_ICE_PATH_B1F, MAP_ICE_PATH_B1F
-	warp_def $6, $4, 4, GROUP_ICE_PATH_B1F, MAP_ICE_PATH_B1F
-	warp_def $c, $4, 5, GROUP_ICE_PATH_B1F, MAP_ICE_PATH_B1F
-	warp_def $c, $c, 6, GROUP_ICE_PATH_B1F, MAP_ICE_PATH_B1F
+	warp_def $1, $11, 2, ICE_PATH_B1F
+	warp_def $b, $9, 1, ICE_PATH_B3F
+	warp_def $4, $b, 3, ICE_PATH_B1F
+	warp_def $6, $4, 4, ICE_PATH_B1F
+	warp_def $c, $4, 5, ICE_PATH_B1F
+	warp_def $c, $c, 6, ICE_PATH_B1F
 
 .XYTriggers:
 	db 0
@@ -45,9 +45,9 @@
 
 .PersonEvents:
 	db 6
-	person_event SPRITE_BOULDER, 7, 15, OW_DOWN | $1, $0, -1, -1, $0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_1A
-	person_event SPRITE_BOULDER, 11, 8, OW_DOWN | $1, $0, -1, -1, $0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_2A
-	person_event SPRITE_BOULDER, 16, 7, OW_DOWN | $1, $0, -1, -1, $0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_3A
-	person_event SPRITE_BOULDER, 17, 16, OW_DOWN | $1, $0, -1, -1, $0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_4A
-	person_event SPRITE_POKE_BALL, 13, 12, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7e5a6, EVENT_ICE_PATH_B2F_MAHOGANY_SIDE_FULL_HEAL
-	person_event SPRITE_POKE_BALL, 6, 4, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7e5a8, EVENT_ICE_PATH_B2F_MAHOGANY_SIDE_MAX_POTION
+	person_event SPRITE_BOULDER, 7, 15, $1, 0, 0, -1, -1, 0, 0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_1A
+	person_event SPRITE_BOULDER, 11, 8, $1, 0, 0, -1, -1, 0, 0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_2A
+	person_event SPRITE_BOULDER, 16, 7, $1, 0, 0, -1, -1, 0, 0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_3A
+	person_event SPRITE_BOULDER, 17, 16, $1, 0, 0, -1, -1, 0, 0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_4A
+	person_event SPRITE_POKE_BALL, 13, 12, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e5a6, EVENT_ICE_PATH_B2F_MAHOGANY_SIDE_FULL_HEAL
+	person_event SPRITE_POKE_BALL, 6, 4, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e5a8, EVENT_ICE_PATH_B2F_MAHOGANY_SIDE_MAX_POTION
--- a/maps/IcePathB3F.asm
+++ b/maps/IcePathB3F.asm
@@ -17,8 +17,8 @@
 
 .Warps:
 	db 2
-	warp_def $5, $3, 2, GROUP_ICE_PATH_B2F_MAHOGANY_SIDE, MAP_ICE_PATH_B2F_MAHOGANY_SIDE
-	warp_def $5, $f, 2, GROUP_ICE_PATH_B2F_BLACKTHORN_SIDE, MAP_ICE_PATH_B2F_BLACKTHORN_SIDE
+	warp_def $5, $3, 2, ICE_PATH_B2F_MAHOGANY_SIDE
+	warp_def $5, $f, 2, ICE_PATH_B2F_BLACKTHORN_SIDE
 
 .XYTriggers:
 	db 0
@@ -28,5 +28,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_POKE_BALL, 11, 9, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7e66f, EVENT_ICE_PATH_B3F_NEVERMELTICE
-	person_event SPRITE_ROCK, 10, 10, OW_LEFT | $10, $0, -1, -1, $0, 0, IcePathB3FRock, -1
+	person_event SPRITE_POKE_BALL, 11, 9, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e66f, EVENT_ICE_PATH_B3F_NEVERMELTICE
+	person_event SPRITE_ROCK, 10, 10, $18, 0, 0, -1, -1, 0, 0, 0, IcePathB3FRock, -1
--- a/maps/IlexForest.asm
+++ b/maps/IlexForest.asm
@@ -933,9 +933,9 @@
 
 .Warps:
 	db 3
-	warp_def $5, $1, 3, GROUP_ROUTE_34_ILEX_FOREST_GATE, MAP_ROUTE_34_ILEX_FOREST_GATE
-	warp_def $2a, $3, 1, GROUP_ILEX_FOREST_AZALEA_GATE, MAP_ILEX_FOREST_AZALEA_GATE
-	warp_def $2b, $3, 2, GROUP_ILEX_FOREST_AZALEA_GATE, MAP_ILEX_FOREST_AZALEA_GATE
+	warp_def $5, $1, 3, ROUTE_34_ILEX_FOREST_GATE
+	warp_def $2a, $3, 1, ILEX_FOREST_AZALEA_GATE
+	warp_def $2b, $3, 2, ILEX_FOREST_AZALEA_GATE
 
 .XYTriggers:
 	db 0
@@ -950,14 +950,14 @@
 
 .PersonEvents:
 	db 11
-	person_event SPRITE_BIRD, 35, 18, OW_DOWN | $3, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, BirdScript_0x6eb8f, EVENT_ILEX_FOREST_FARFETCHD
-	person_event SPRITE_YOUNGSTER, 32, 11, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, YoungsterScript_0x6eb7b, EVENT_ILEX_FOREST_APPRENTICE
-	person_event SPRITE_BLACK_BELT, 32, 9, OW_LEFT | $1, $0, -1, -1, $0, 0, BlackBeltScript_0x6edae, EVENT_ILEX_FOREST_CHARCOAL_MASTER
-	person_event SPRITE_ROCKER, 18, 19, OW_LEFT | $1, $0, -1, -1, $0, 0, RockerScript_0x6edde, -1
-	person_event SPRITE_POKE_BALL, 36, 24, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x6ee10, EVENT_ILEX_FOREST_REVIVE
-	person_event SPRITE_KURT, 33, 12, OW_UP | $3, $0, -1, -1, $0, 0, ObjectEvent, EVENT_ILEX_FOREST_KURT
-	person_event SPRITE_LASS, 28, 7, OW_LEFT | $1, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, LassScript_0x6ee0d, EVENT_ILEX_FOREST_LASS
-	person_event SPRITE_YOUNGSTER, 5, 16, OW_UP | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 0, TrainerBug_catcherWayne, -1
-	person_event SPRITE_POKE_BALL, 21, 13, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x6ee12, EVENT_ILEX_FOREST_X_ATTACK
-	person_event SPRITE_POKE_BALL, 11, 21, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x6ee14, EVENT_ILEX_FOREST_ANTIDOTE
-	person_event SPRITE_POKE_BALL, 5, 31, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x6ee16, EVENT_ILEX_FOREST_ETHER
+	person_event SPRITE_BIRD, 35, 18, $3, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, BirdScript_0x6eb8f, EVENT_ILEX_FOREST_FARFETCHD
+	person_event SPRITE_YOUNGSTER, 32, 11, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, YoungsterScript_0x6eb7b, EVENT_ILEX_FOREST_APPRENTICE
+	person_event SPRITE_BLACK_BELT, 32, 9, $9, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x6edae, EVENT_ILEX_FOREST_CHARCOAL_MASTER
+	person_event SPRITE_ROCKER, 18, 19, $9, 0, 0, -1, -1, 0, 0, 0, RockerScript_0x6edde, -1
+	person_event SPRITE_POKE_BALL, 36, 24, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6ee10, EVENT_ILEX_FOREST_REVIVE
+	person_event SPRITE_KURT, 33, 12, $7, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_ILEX_FOREST_KURT
+	person_event SPRITE_LASS, 28, 7, $9, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, LassScript_0x6ee0d, EVENT_ILEX_FOREST_LASS
+	person_event SPRITE_YOUNGSTER, 5, 16, $7, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 0, TrainerBug_catcherWayne, -1
+	person_event SPRITE_POKE_BALL, 21, 13, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6ee12, EVENT_ILEX_FOREST_X_ATTACK
+	person_event SPRITE_POKE_BALL, 11, 21, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6ee14, EVENT_ILEX_FOREST_ANTIDOTE
+	person_event SPRITE_POKE_BALL, 5, 31, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6ee16, EVENT_ILEX_FOREST_ETHER
--- a/maps/IlexForestAzaleaGate.asm
+++ b/maps/IlexForestAzaleaGate.asm
@@ -32,10 +32,10 @@
 
 .Warps:
 	db 4
-	warp_def $4, $0, 2, GROUP_ILEX_FOREST, MAP_ILEX_FOREST
-	warp_def $5, $0, 3, GROUP_ILEX_FOREST, MAP_ILEX_FOREST
-	warp_def $4, $9, 7, GROUP_AZALEA_TOWN, MAP_AZALEA_TOWN
-	warp_def $5, $9, 8, GROUP_AZALEA_TOWN, MAP_AZALEA_TOWN
+	warp_def $4, $0, 2, ILEX_FOREST
+	warp_def $5, $0, 3, ILEX_FOREST
+	warp_def $4, $9, 7, AZALEA_TOWN
+	warp_def $5, $9, 8, AZALEA_TOWN
 
 .XYTriggers:
 	db 0
@@ -45,5 +45,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_OFFICER, 6, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, OfficerScript_0x62c7a, -1
-	person_event SPRITE_GRANNY, 7, 5, OW_UP | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, GrannyScript_0x62c7d, -1
+	person_event SPRITE_OFFICER, 6, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, OfficerScript_0x62c7a, -1
+	person_event SPRITE_GRANNY, 7, 5, $6, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, GrannyScript_0x62c7d, -1
--- a/maps/IndigoPlateauPokeCenter1F.asm
+++ b/maps/IndigoPlateauPokeCenter1F.asm
@@ -16,12 +16,12 @@
 	end
 
 UnknownScript_0x18000a:
-	domaptrigger GROUP_WILLS_ROOM, MAP_WILLS_ROOM, $0
-	domaptrigger GROUP_KOGAS_ROOM, MAP_KOGAS_ROOM, $0
-	domaptrigger GROUP_BRUNOS_ROOM, MAP_BRUNOS_ROOM, $0
-	domaptrigger GROUP_KARENS_ROOM, MAP_KARENS_ROOM, $0
-	domaptrigger GROUP_LANCES_ROOM, MAP_LANCES_ROOM, $0
-	domaptrigger GROUP_HALL_OF_FAME, MAP_HALL_OF_FAME, $0
+	domaptrigger WILLS_ROOM, $0
+	domaptrigger KOGAS_ROOM, $0
+	domaptrigger BRUNOS_ROOM, $0
+	domaptrigger KARENS_ROOM, $0
+	domaptrigger LANCES_ROOM, $0
+	domaptrigger HALL_OF_FAME, $0
 	clearevent EVENT_WILLS_ROOM_ENTRANCE_CLOSED
 	clearevent EVENT_WILLS_ROOM_EXIT_OPEN
 	clearevent EVENT_KOGAS_ROOM_ENTRANCE_CLOSED
@@ -156,7 +156,7 @@
 	playsound SFX_WARP_TO
 	special FadeBlackBGMap
 	waitbutton
-	warp GROUP_NEW_BARK_TOWN, MAP_NEW_BARK_TOWN, $d, $6
+	warp NEW_BARK_TOWN, $d, $6
 	end
 
 .No
@@ -304,10 +304,10 @@
 
 .Warps:
 	db 4
-	warp_def $d, $5, 1, GROUP_ROUTE_23, MAP_ROUTE_23
-	warp_def $d, $6, 2, GROUP_ROUTE_23, MAP_ROUTE_23
-	warp_def $d, $0, 1, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
-	warp_def $3, $e, 1, GROUP_WILLS_ROOM, MAP_WILLS_ROOM
+	warp_def $d, $5, 1, ROUTE_23
+	warp_def $d, $6, 2, ROUTE_23
+	warp_def $d, $0, 1, POKECENTER_2F
+	warp_def $3, $e, 1, WILLS_ROOM
 
 .XYTriggers:
 	db 2
@@ -319,9 +319,9 @@
 
 .PersonEvents:
 	db 6
-	person_event SPRITE_NURSE, 11, 7, OW_UP | $2, $0, -1, -1, $0, 0, NurseScript_0x18012c, -1
-	person_event SPRITE_CLERK, 11, 15, OW_UP | $2, $0, -1, -1, $0, 0, ClerkScript_0x18012f, -1
-	person_event SPRITE_COOLTRAINER_M, 15, 15, OW_DOWN | $2, $22, -1, -1, $0, 0, CooltrainerMScript_0x180136, -1
-	person_event SPRITE_SILVER, 13, 20, OW_UP | $3, $0, -1, -1, $0, 0, ObjectEvent, EVENT_INDIGO_PLATEAU_POKECENTER_RIVAL
-	person_event SPRITE_GRAMPS, 13, 5, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, TeleportGuyScript, EVENT_TELEPORT_GUY
-	person_event SPRITE_JYNX, 13, 4, OW_UP | $12, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, AbraScript, EVENT_TELEPORT_GUY
+	person_event SPRITE_NURSE, 11, 7, $6, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x18012c, -1
+	person_event SPRITE_CLERK, 11, 15, $6, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x18012f, -1
+	person_event SPRITE_COOLTRAINER_M, 15, 15, $2, 2, 2, -1, -1, 0, 0, 0, CooltrainerMScript_0x180136, -1
+	person_event SPRITE_SILVER, 13, 20, $7, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_INDIGO_PLATEAU_POKECENTER_RIVAL
+	person_event SPRITE_GRAMPS, 13, 5, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, TeleportGuyScript, EVENT_TELEPORT_GUY
+	person_event SPRITE_JYNX, 13, 4, $16, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, AbraScript, EVENT_TELEPORT_GUY
--- a/maps/KarensRoom.asm
+++ b/maps/KarensRoom.asm
@@ -140,10 +140,10 @@
 
 .Warps:
 	db 4
-	warp_def $11, $4, 3, GROUP_BRUNOS_ROOM, MAP_BRUNOS_ROOM
-	warp_def $11, $5, 4, GROUP_BRUNOS_ROOM, MAP_BRUNOS_ROOM
-	warp_def $2, $4, 1, GROUP_LANCES_ROOM, MAP_LANCES_ROOM
-	warp_def $2, $5, 2, GROUP_LANCES_ROOM, MAP_LANCES_ROOM
+	warp_def $11, $4, 3, BRUNOS_ROOM
+	warp_def $11, $5, 4, BRUNOS_ROOM
+	warp_def $2, $4, 1, LANCES_ROOM
+	warp_def $2, $5, 2, LANCES_ROOM
 
 .XYTriggers:
 	db 0
@@ -153,4 +153,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_KAREN, 11, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, KarenScript_0x180bee, -1
+	person_event SPRITE_KAREN, 11, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, KarenScript_0x180bee, -1
--- a/maps/KogasRoom.asm
+++ b/maps/KogasRoom.asm
@@ -137,10 +137,10 @@
 
 .Warps:
 	db 4
-	warp_def $11, $4, 2, GROUP_WILLS_ROOM, MAP_WILLS_ROOM
-	warp_def $11, $5, 3, GROUP_WILLS_ROOM, MAP_WILLS_ROOM
-	warp_def $2, $4, 1, GROUP_BRUNOS_ROOM, MAP_BRUNOS_ROOM
-	warp_def $2, $5, 2, GROUP_BRUNOS_ROOM, MAP_BRUNOS_ROOM
+	warp_def $11, $4, 2, WILLS_ROOM
+	warp_def $11, $5, 3, WILLS_ROOM
+	warp_def $2, $4, 1, BRUNOS_ROOM
+	warp_def $2, $5, 2, BRUNOS_ROOM
 
 .XYTriggers:
 	db 0
@@ -150,4 +150,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_KOGA, 11, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, KogaScript_0x18075a, -1
+	person_event SPRITE_KOGA, 11, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, KogaScript_0x18075a, -1
--- a/maps/KrissHouse1F.asm
+++ b/maps/KrissHouse1F.asm
@@ -386,9 +386,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $6, 2, GROUP_NEW_BARK_TOWN, MAP_NEW_BARK_TOWN
-	warp_def $7, $7, 2, GROUP_NEW_BARK_TOWN, MAP_NEW_BARK_TOWN
-	warp_def $0, $9, 1, GROUP_KRISS_HOUSE_2F, MAP_KRISS_HOUSE_2F
+	warp_def $7, $6, 2, NEW_BARK_TOWN
+	warp_def $7, $7, 2, NEW_BARK_TOWN
+	warp_def $0, $9, 1, KRISS_HOUSE_2F
 
 .XYTriggers:
 	db 2
@@ -404,8 +404,8 @@
 
 .PersonEvents:
 	db 5
-	person_event SPRITE_MOM, 8, 11, OW_LEFT | $0, $0, -1, -1, $0, 0, MomScript_0x7a582, EVENT_KRISS_HOUSE_MOM_1
-	person_event SPRITE_MOM, 6, 6, OW_UP | $3, $0, -1, 1, $0, 0, MomScript_0x7a582, EVENT_KRISS_HOUSE_MOM_2
-	person_event SPRITE_MOM, 8, 11, OW_LEFT | $0, $0, -1, 2, $0, 0, MomScript_0x7a582, EVENT_KRISS_HOUSE_MOM_2
-	person_event SPRITE_MOM, 6, 4, OW_UP | $3, $0, -1, 4, $0, 0, MomScript_0x7a582, EVENT_KRISS_HOUSE_MOM_2
-	person_event SPRITE_POKEFAN_F, 8, 8, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, NeighborScript, EVENT_KRISS_HOUSE_1F_NEIGHBOR
+	person_event SPRITE_MOM, 8, 11, $8, 0, 0, -1, -1, 0, 0, 0, MomScript_0x7a582, EVENT_KRISS_HOUSE_MOM_1
+	person_event SPRITE_MOM, 6, 6, $7, 0, 0, -1, 1, 0, 0, 0, MomScript_0x7a582, EVENT_KRISS_HOUSE_MOM_2
+	person_event SPRITE_MOM, 8, 11, $8, 0, 0, -1, 2, 0, 0, 0, MomScript_0x7a582, EVENT_KRISS_HOUSE_MOM_2
+	person_event SPRITE_MOM, 6, 4, $7, 0, 0, -1, 4, 0, 0, 0, MomScript_0x7a582, EVENT_KRISS_HOUSE_MOM_2
+	person_event SPRITE_POKEFAN_F, 8, 8, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, NeighborScript, EVENT_KRISS_HOUSE_1F_NEIGHBOR
--- a/maps/KrissHouse2F.asm
+++ b/maps/KrissHouse2F.asm
@@ -89,7 +89,7 @@
 	loadmovesprites
 	end
 .Warp
-	warp 0, 0, $0, $0
+	warp NONE, $0, $0
 	end
 
 KrisRadioText1:
@@ -118,7 +118,7 @@
 
 .Warps:
 	db 1
-	warp_def $0, $7, 3, GROUP_KRISS_HOUSE_1F, MAP_KRISS_HOUSE_1F
+	warp_def $0, $7, 3, KRISS_HOUSE_1F
 
 .XYTriggers:
 	db 0
@@ -132,7 +132,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_CONSOLE, 6, 8, OW_DOWN | $1, $0, -1, -1, $0, 0, GameConsole, EVENT_KRISS_HOUSE_2F_CONSOLE
-	person_event SPRITE_DOLL_1, 8, 8, OW_DOWN | $1, $0, -1, -1, $0, 0, Doll1, EVENT_KRISS_HOUSE_2F_DOLL_1
-	person_event SPRITE_DOLL_2, 8, 9, OW_DOWN | $1, $0, -1, -1, $0, 0, Doll2, EVENT_KRISS_HOUSE_2F_DOLL_2
-	person_event SPRITE_BIG_DOLL, 5, 4, OW_DOWN | $21, $0, -1, -1, $0, 0, BigDoll, EVENT_KRISS_HOUSE_2F_BIG_DOLL
+	person_event SPRITE_CONSOLE, 6, 8, $1, 0, 0, -1, -1, 0, 0, 0, GameConsole, EVENT_KRISS_HOUSE_2F_CONSOLE
+	person_event SPRITE_DOLL_1, 8, 8, $1, 0, 0, -1, -1, 0, 0, 0, Doll1, EVENT_KRISS_HOUSE_2F_DOLL_1
+	person_event SPRITE_DOLL_2, 8, 9, $1, 0, 0, -1, -1, 0, 0, 0, Doll2, EVENT_KRISS_HOUSE_2F_DOLL_2
+	person_event SPRITE_BIG_DOLL, 5, 4, $21, 0, 0, -1, -1, 0, 0, 0, BigDoll, EVENT_KRISS_HOUSE_2F_BIG_DOLL
--- a/maps/KrissNeighborsHouse.asm
+++ b/maps/KrissNeighborsHouse.asm
@@ -100,8 +100,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 3, GROUP_NEW_BARK_TOWN, MAP_NEW_BARK_TOWN
-	warp_def $7, $3, 3, GROUP_NEW_BARK_TOWN, MAP_NEW_BARK_TOWN
+	warp_def $7, $2, 3, NEW_BARK_TOWN
+	warp_def $7, $3, 3, NEW_BARK_TOWN
 
 .XYTriggers:
 	db 0
@@ -114,5 +114,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_COOLTRAINER_F, 7, 6, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, KrissNeighborsDaughter, -1
-	person_event SPRITE_POKEFAN_F, 7, 9, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, KrissNeighbor, EVENT_KRISS_NEIGHBORS_HOUSE_NEIGHBOR
+	person_event SPRITE_COOLTRAINER_F, 7, 6, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, KrissNeighborsDaughter, -1
+	person_event SPRITE_POKEFAN_F, 7, 9, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, KrissNeighbor, EVENT_KRISS_NEIGHBORS_HOUSE_NEIGHBOR
--- a/maps/KurtsHouse.asm
+++ b/maps/KurtsHouse.asm
@@ -307,7 +307,7 @@
 	clearevent EVENT_AZALEA_TOWN_KURT
 	waitbutton
 	special RestartMapMusic
-	domaptrigger GROUP_AZALEA_TOWN, MAP_AZALEA_TOWN, $2
+	domaptrigger AZALEA_TOWN, $2
 	end
 
 KurtScript_0x18e3bd:
@@ -678,8 +678,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $3, 4, GROUP_AZALEA_TOWN, MAP_AZALEA_TOWN
-	warp_def $7, $4, 4, GROUP_AZALEA_TOWN, MAP_AZALEA_TOWN
+	warp_def $7, $3, 4, AZALEA_TOWN
+	warp_def $7, $4, 4, AZALEA_TOWN
 
 .XYTriggers:
 	db 0
@@ -696,8 +696,8 @@
 
 .PersonEvents:
 	db 5
-	person_event SPRITE_KURT, 6, 7, OW_UP | $2, $0, -1, -1, $0, 0, KurtScript_0x18e178, EVENT_KURTS_HOUSE_KURT_1
-	person_event SPRITE_TWIN, 7, 9, OW_DOWN | $3, $0, -1, -1, $0, 0, KurtsGranddaughter1, EVENT_KURTS_HOUSE_GRANDDAUGHTER_1
-	person_event SPRITE_SLOWPOKE, 7, 10, OW_DOWN | $1, $0, -1, -1, $0, 0, KurtsHouseSlowpoke, EVENT_KURTS_HOUSE_SLOWPOKE
-	person_event SPRITE_KURT, 7, 18, OW_UP | $3, $0, -1, -1, $0, 0, KurtScript_0x18e3bd, EVENT_KURTS_HOUSE_KURT_2
-	person_event SPRITE_TWIN, 8, 15, OW_LEFT | $1, $0, -1, -1, $0, 0, KurtsGranddaughter2, EVENT_KURTS_HOUSE_GRANDDAUGHTER_2
+	person_event SPRITE_KURT, 6, 7, $6, 0, 0, -1, -1, 0, 0, 0, KurtScript_0x18e178, EVENT_KURTS_HOUSE_KURT_1
+	person_event SPRITE_TWIN, 7, 9, $3, 0, 0, -1, -1, 0, 0, 0, KurtsGranddaughter1, EVENT_KURTS_HOUSE_GRANDDAUGHTER_1
+	person_event SPRITE_SLOWPOKE, 7, 10, $1, 0, 0, -1, -1, 0, 0, 0, KurtsHouseSlowpoke, EVENT_KURTS_HOUSE_SLOWPOKE
+	person_event SPRITE_KURT, 7, 18, $7, 0, 0, -1, -1, 0, 0, 0, KurtScript_0x18e3bd, EVENT_KURTS_HOUSE_KURT_2
+	person_event SPRITE_TWIN, 8, 15, $9, 0, 0, -1, -1, 0, 0, 0, KurtsGranddaughter2, EVENT_KURTS_HOUSE_GRANDDAUGHTER_2
--- a/maps/LakeofRage.asm
+++ b/maps/LakeofRage.asm
@@ -53,7 +53,7 @@
 	disappear $2
 	clearevent EVENT_MAHOGANY_MART_LANCE_AND_DRAGONITE
 	setevent EVENT_DECIDED_TO_HELP_LANCE
-	domaptrigger GROUP_MAHOGANY_MART_1F, MAP_MAHOGANY_MART_1F, $1
+	domaptrigger MAHOGANY_MART_1F, $1
 	end
 
 UnknownScript_0x7004e:
@@ -493,8 +493,8 @@
 
 .Warps:
 	db 2
-	warp_def $3, $7, 1, GROUP_LAKE_OF_RAGE_HIDDEN_POWER_HOUSE, MAP_LAKE_OF_RAGE_HIDDEN_POWER_HOUSE
-	warp_def $1f, $1b, 1, GROUP_LAKE_OF_RAGE_MAGIKARP_HOUSE, MAP_LAKE_OF_RAGE_MAGIKARP_HOUSE
+	warp_def $3, $7, 1, LAKE_OF_RAGE_HIDDEN_POWER_HOUSE
+	warp_def $1f, $1b, 1, LAKE_OF_RAGE_MAGIKARP_HOUSE
 
 .XYTriggers:
 	db 0
@@ -509,15 +509,15 @@
 
 .PersonEvents:
 	db 12
-	person_event SPRITE_LANCE, 32, 25, OW_UP | $3, $0, -1, -1, $0, 0, LanceScript_0x70022, EVENT_LAKE_OF_RAGE_LANCE
-	person_event SPRITE_GRAMPS, 30, 24, OW_UP | $3, $0, -1, -1, $0, 0, GrampsScript_0x7008e, -1
-	person_event SPRITE_SUPER_NERD, 17, 40, OW_LEFT | $0, $0, -1, -1, $0, 0, SuperNerdScript_0x700a2, -1
-	person_event SPRITE_COOLTRAINER_F, 33, 29, OW_UP | $1, $1, -1, -1, $0, 0, CooltrainerFScript_0x700a5, -1
-	person_event SPRITE_FISHER, 27, 34, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 1, TrainerFisherAndre, EVENT_LAKE_OF_RAGE_CIVILIANS
-	person_event SPRITE_FISHER, 30, 28, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 1, TrainerFisherRaymond, EVENT_LAKE_OF_RAGE_CIVILIANS
-	person_event SPRITE_COOLTRAINER_M, 19, 8, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $82, 1, TrainerCooltrainermAaron, EVENT_LAKE_OF_RAGE_CIVILIANS
-	person_event SPRITE_COOLTRAINER_F, 11, 40, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $82, 0, TrainerCooltrainerfLois, EVENT_LAKE_OF_RAGE_CIVILIANS
-	person_event SPRITE_GYARADOS, 26, 22, OW_UP | $12, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, GyaradosScript_0x70063, EVENT_LAKE_OF_RAGE_RED_GYARADOS
-	person_event SPRITE_SUPER_NERD, 8, 8, OW_UP | $2, $0, -1, -1, $0, 0, WesleyScript, EVENT_LAKE_OF_RAGE_WESLEY_OF_WEDNESDAY
-	person_event SPRITE_POKE_BALL, 14, 11, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x70148, EVENT_LAKE_OF_RAGE_ELIXER
-	person_event SPRITE_POKE_BALL, 6, 39, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7014a, EVENT_LAKE_OF_RAGE_TM_DETECT
+	person_event SPRITE_LANCE, 32, 25, $7, 0, 0, -1, -1, 0, 0, 0, LanceScript_0x70022, EVENT_LAKE_OF_RAGE_LANCE
+	person_event SPRITE_GRAMPS, 30, 24, $7, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x7008e, -1
+	person_event SPRITE_SUPER_NERD, 17, 40, $8, 0, 0, -1, -1, 0, 0, 0, SuperNerdScript_0x700a2, -1
+	person_event SPRITE_COOLTRAINER_F, 33, 29, $5, 0, 1, -1, -1, 0, 0, 0, CooltrainerFScript_0x700a5, -1
+	person_event SPRITE_FISHER, 27, 34, $8, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 1, TrainerFisherAndre, EVENT_LAKE_OF_RAGE_CIVILIANS
+	person_event SPRITE_FISHER, 30, 28, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 1, TrainerFisherRaymond, EVENT_LAKE_OF_RAGE_CIVILIANS
+	person_event SPRITE_COOLTRAINER_M, 19, 8, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 1, TrainerCooltrainermAaron, EVENT_LAKE_OF_RAGE_CIVILIANS
+	person_event SPRITE_COOLTRAINER_F, 11, 40, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 0, TrainerCooltrainerfLois, EVENT_LAKE_OF_RAGE_CIVILIANS
+	person_event SPRITE_GYARADOS, 26, 22, $16, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, GyaradosScript_0x70063, EVENT_LAKE_OF_RAGE_RED_GYARADOS
+	person_event SPRITE_SUPER_NERD, 8, 8, $6, 0, 0, -1, -1, 0, 0, 0, WesleyScript, EVENT_LAKE_OF_RAGE_WESLEY_OF_WEDNESDAY
+	person_event SPRITE_POKE_BALL, 14, 11, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x70148, EVENT_LAKE_OF_RAGE_ELIXER
+	person_event SPRITE_POKE_BALL, 6, 39, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7014a, EVENT_LAKE_OF_RAGE_TM_DETECT
--- a/maps/LakeofRageHiddenPowerHouse.asm
+++ b/maps/LakeofRageHiddenPowerHouse.asm
@@ -70,8 +70,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 1, GROUP_LAKE_OF_RAGE, MAP_LAKE_OF_RAGE
-	warp_def $7, $3, 1, GROUP_LAKE_OF_RAGE, MAP_LAKE_OF_RAGE
+	warp_def $7, $2, 1, LAKE_OF_RAGE
+	warp_def $7, $3, 1, LAKE_OF_RAGE
 
 .XYTriggers:
 	db 0
@@ -83,4 +83,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_FISHER, 7, 6, OW_DOWN | $3, $0, -1, -1, $0, 0, HiddenPowerGuy, -1
+	person_event SPRITE_FISHER, 7, 6, $3, 0, 0, -1, -1, 0, 0, 0, HiddenPowerGuy, -1
--- a/maps/LakeofRageMagikarpHouse.asm
+++ b/maps/LakeofRageMagikarpHouse.asm
@@ -208,8 +208,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 2, GROUP_LAKE_OF_RAGE, MAP_LAKE_OF_RAGE
-	warp_def $7, $3, 2, GROUP_LAKE_OF_RAGE, MAP_LAKE_OF_RAGE
+	warp_def $7, $2, 2, LAKE_OF_RAGE
+	warp_def $7, $3, 2, LAKE_OF_RAGE
 
 .XYTriggers:
 	db 0
@@ -221,4 +221,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_FISHING_GURU, 7, 6, OW_DOWN | $3, $0, -1, -1, $0, 0, FishingGuruScript_0x19a6ae, -1
+	person_event SPRITE_FISHING_GURU, 7, 6, $3, 0, 0, -1, -1, 0, 0, 0, FishingGuruScript_0x19a6ae, -1
--- a/maps/LancesRoom.asm
+++ b/maps/LancesRoom.asm
@@ -127,7 +127,7 @@
 	applymovement $3, MovementData_0x180f5b
 	special FadeBlackBGMap
 	pause 15
-	warpfacing $1, GROUP_HALL_OF_FAME, MAP_HALL_OF_FAME, $4, $d
+	warpfacing $1, HALL_OF_FAME, $4, $d
 	end
 
 MovementData_0x180f33:
@@ -343,10 +343,10 @@
 
 .Warps:
 	db 4
-	warp_def $17, $4, 3, GROUP_KARENS_ROOM, MAP_KARENS_ROOM
-	warp_def $17, $5, 4, GROUP_KARENS_ROOM, MAP_KARENS_ROOM
-	warp_def $1, $4, 1, GROUP_HALL_OF_FAME, MAP_HALL_OF_FAME
-	warp_def $1, $5, 2, GROUP_HALL_OF_FAME, MAP_HALL_OF_FAME
+	warp_def $17, $4, 3, KARENS_ROOM
+	warp_def $17, $5, 4, KARENS_ROOM
+	warp_def $1, $4, 1, HALL_OF_FAME
+	warp_def $1, $5, 2, HALL_OF_FAME
 
 .XYTriggers:
 	db 2
@@ -358,6 +358,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_LANCE, 7, 9, OW_UP | $2, $0, -1, -1, $0, 0, LanceScript_0x180e7b, -1
-	person_event SPRITE_TEACHER, 11, 8, OW_UP | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, ObjectEvent, EVENT_LANCES_ROOM_OAK_AND_MARY
-	person_event SPRITE_OAK, 11, 8, OW_UP | $3, $0, -1, -1, $0, 0, ObjectEvent, EVENT_LANCES_ROOM_OAK_AND_MARY
+	person_event SPRITE_LANCE, 7, 9, $6, 0, 0, -1, -1, 0, 0, 0, LanceScript_0x180e7b, -1
+	person_event SPRITE_TEACHER, 11, 8, $7, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, ObjectEvent, EVENT_LANCES_ROOM_OAK_AND_MARY
+	person_event SPRITE_OAK, 11, 8, $7, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_LANCES_ROOM_OAK_AND_MARY
--- a/maps/LavRadioTower1F.asm
+++ b/maps/LavRadioTower1F.asm
@@ -220,8 +220,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 7, GROUP_LAVENDER_TOWN, MAP_LAVENDER_TOWN
-	warp_def $7, $3, 7, GROUP_LAVENDER_TOWN, MAP_LAVENDER_TOWN
+	warp_def $7, $2, 7, LAVENDER_TOWN
+	warp_def $7, $3, 7, LAVENDER_TOWN
 
 .XYTriggers:
 	db 0
@@ -233,8 +233,8 @@
 
 .PersonEvents:
 	db 5
-	person_event SPRITE_RECEPTIONIST, 10, 10, OW_UP | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, ReceptionistScript_0x7ee63, -1
-	person_event SPRITE_OFFICER, 5, 19, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, OfficerScript_0x7ee66, -1
-	person_event SPRITE_SUPER_NERD, 7, 5, OW_DOWN | $2, $11, -1, -1, (PAL_OW_RED << 4) | $80, 0, SuperNerdScript_0x7ee69, -1
-	person_event SPRITE_GENTLEMAN, 5, 13, OW_UP | $3, $0, -1, -1, $0, 0, GentlemanScript_0x7ee6c, -1
-	person_event SPRITE_SUPER_NERD, 10, 18, OW_LEFT | $1, $0, -1, -1, $0, 0, SuperNerdScript_0x7eea2, -1
+	person_event SPRITE_RECEPTIONIST, 10, 10, $7, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, ReceptionistScript_0x7ee63, -1
+	person_event SPRITE_OFFICER, 5, 19, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, OfficerScript_0x7ee66, -1
+	person_event SPRITE_SUPER_NERD, 7, 5, $2, 1, 1, -1, -1, 8 + PAL_OW_RED, 0, 0, SuperNerdScript_0x7ee69, -1
+	person_event SPRITE_GENTLEMAN, 5, 13, $7, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x7ee6c, -1
+	person_event SPRITE_SUPER_NERD, 10, 18, $9, 0, 0, -1, -1, 0, 0, 0, SuperNerdScript_0x7eea2, -1
--- a/maps/LavenderMart.asm
+++ b/maps/LavenderMart.asm
@@ -48,8 +48,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 5, GROUP_LAVENDER_TOWN, MAP_LAVENDER_TOWN
-	warp_def $7, $3, 5, GROUP_LAVENDER_TOWN, MAP_LAVENDER_TOWN
+	warp_def $7, $2, 5, LAVENDER_TOWN
+	warp_def $7, $3, 5, LAVENDER_TOWN
 
 .XYTriggers:
 	db 0
@@ -59,6 +59,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 7, 5, OW_LEFT | $1, $0, -1, -1, $0, 0, ClerkScript_0x7eb1c, -1
-	person_event SPRITE_POKEFAN_M, 10, 10, OW_UP | $1, $2, -1, -1, (PAL_OW_RED << 4) | $80, 0, PokefanMScript_0x7eb23, -1
-	person_event SPRITE_ROCKER, 6, 13, OW_DOWN | $3, $0, -1, -1, $0, 0, RockerScript_0x7eb26, -1
+	person_event SPRITE_CLERK, 7, 5, $9, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x7eb1c, -1
+	person_event SPRITE_POKEFAN_M, 10, 10, $5, 0, 2, -1, -1, 8 + PAL_OW_RED, 0, 0, PokefanMScript_0x7eb23, -1
+	person_event SPRITE_ROCKER, 6, 13, $3, 0, 0, -1, -1, 0, 0, 0, RockerScript_0x7eb26, -1
--- a/maps/LavenderNameRater.asm
+++ b/maps/LavenderNameRater.asm
@@ -29,8 +29,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 4, GROUP_LAVENDER_TOWN, MAP_LAVENDER_TOWN
-	warp_def $7, $3, 4, GROUP_LAVENDER_TOWN, MAP_LAVENDER_TOWN
+	warp_def $7, $2, 4, LAVENDER_TOWN
+	warp_def $7, $3, 4, LAVENDER_TOWN
 
 .XYTriggers:
 	db 0
@@ -40,4 +40,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_GENTLEMAN, 7, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, LavenderNameRater, -1
+	person_event SPRITE_GENTLEMAN, 7, 6, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, LavenderNameRater, -1
--- a/maps/LavenderPokeCenter1F.asm
+++ b/maps/LavenderPokeCenter1F.asm
@@ -80,9 +80,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $3, 1, GROUP_LAVENDER_TOWN, MAP_LAVENDER_TOWN
-	warp_def $7, $4, 1, GROUP_LAVENDER_TOWN, MAP_LAVENDER_TOWN
-	warp_def $7, $0, 1, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
+	warp_def $7, $3, 1, LAVENDER_TOWN
+	warp_def $7, $4, 1, LAVENDER_TOWN
+	warp_def $7, $0, 1, POKECENTER_2F
 
 .XYTriggers:
 	db 0
@@ -92,7 +92,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_NURSE, 5, 7, OW_UP | $2, $0, -1, -1, $0, 0, NurseScript_0x7e6a0, -1
-	person_event SPRITE_GENTLEMAN, 10, 11, OW_UP | $1, $1, -1, -1, $0, 0, GentlemanScript_0x7e6a3, -1
-	person_event SPRITE_TEACHER, 7, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, TeacherScript_0x7e6a6, -1
-	person_event SPRITE_YOUNGSTER, 9, 5, OW_UP | $0, $10, -1, -1, (PAL_OW_RED << 4) | $80, 0, YoungsterScript_0x7e6a9, -1
+	person_event SPRITE_NURSE, 5, 7, $6, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x7e6a0, -1
+	person_event SPRITE_GENTLEMAN, 10, 11, $5, 0, 1, -1, -1, 0, 0, 0, GentlemanScript_0x7e6a3, -1
+	person_event SPRITE_TEACHER, 7, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, TeacherScript_0x7e6a6, -1
+	person_event SPRITE_YOUNGSTER, 9, 5, $4, 1, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, YoungsterScript_0x7e6a9, -1
--- a/maps/LavenderPokeCenter2FBeta.asm
+++ b/maps/LavenderPokeCenter2FBeta.asm
@@ -11,7 +11,7 @@
 
 .Warps:
 	db 1
-	warp_def $7, $0, 3, GROUP_LAVENDER_POKECENTER_1F, MAP_LAVENDER_POKECENTER_1F
+	warp_def $7, $0, 3, LAVENDER_POKECENTER_1F
 
 .XYTriggers:
 	db 0
--- a/maps/LavenderTown.asm
+++ b/maps/LavenderTown.asm
@@ -107,13 +107,13 @@
 
 .Warps:
 	db 7
-	warp_def $5, $5, 1, GROUP_LAVENDER_POKECENTER_1F, MAP_LAVENDER_POKECENTER_1F
-	warp_def $9, $5, 1, GROUP_MR_FUJIS_HOUSE, MAP_MR_FUJIS_HOUSE
-	warp_def $d, $3, 1, GROUP_LAVENDER_TOWN_SPEECH_HOUSE, MAP_LAVENDER_TOWN_SPEECH_HOUSE
-	warp_def $d, $7, 1, GROUP_LAVENDER_NAME_RATER, MAP_LAVENDER_NAME_RATER
-	warp_def $5, $1, 2, GROUP_LAVENDER_MART, MAP_LAVENDER_MART
-	warp_def $b, $d, 1, GROUP_SOUL_HOUSE, MAP_SOUL_HOUSE
-	warp_def $5, $e, 1, GROUP_LAV_RADIO_TOWER_1F, MAP_LAV_RADIO_TOWER_1F
+	warp_def $5, $5, 1, LAVENDER_POKECENTER_1F
+	warp_def $9, $5, 1, MR_FUJIS_HOUSE
+	warp_def $d, $3, 1, LAVENDER_TOWN_SPEECH_HOUSE
+	warp_def $d, $7, 1, LAVENDER_NAME_RATER
+	warp_def $5, $1, 2, LAVENDER_MART
+	warp_def $b, $d, 1, SOUL_HOUSE
+	warp_def $5, $e, 1, LAV_RADIO_TOWER_1F
 
 .XYTriggers:
 	db 0
@@ -129,7 +129,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_POKEFAN_M, 11, 16, OW_UP | $1, $1, -1, -1, (PAL_OW_RED << 4) | $80, 0, PokefanMScript_0x1ad6e4, -1
-	person_event SPRITE_TEACHER, 19, 6, OW_UP | $1, $1, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, TeacherScript_0x1ad6e7, -1
-	person_event SPRITE_GRAMPS, 16, 18, OW_UP | $3, $0, -1, -1, $0, 0, GrampsScript_0x1ad6ea, -1
-	person_event SPRITE_YOUNGSTER, 15, 10, OW_UP | $1, $1, -1, -1, (PAL_OW_GREEN << 4) | $80, 1, YoungsterScript_0x1ad6ed, -1
+	person_event SPRITE_POKEFAN_M, 11, 16, $5, 0, 1, -1, -1, 8 + PAL_OW_RED, 0, 0, PokefanMScript_0x1ad6e4, -1
+	person_event SPRITE_TEACHER, 19, 6, $5, 0, 1, -1, -1, 8 + PAL_OW_BLUE, 0, 0, TeacherScript_0x1ad6e7, -1
+	person_event SPRITE_GRAMPS, 16, 18, $7, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x1ad6ea, -1
+	person_event SPRITE_YOUNGSTER, 15, 10, $5, 0, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 1, YoungsterScript_0x1ad6ed, -1
--- a/maps/LavenderTownSpeechHouse.asm
+++ b/maps/LavenderTownSpeechHouse.asm
@@ -31,8 +31,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 3, GROUP_LAVENDER_TOWN, MAP_LAVENDER_TOWN
-	warp_def $7, $3, 3, GROUP_LAVENDER_TOWN, MAP_LAVENDER_TOWN
+	warp_def $7, $2, 3, LAVENDER_TOWN
+	warp_def $7, $3, 3, LAVENDER_TOWN
 
 .XYTriggers:
 	db 0
@@ -44,4 +44,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_POKEFAN_F, 7, 6, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, PokefanFScript_0x7ea47, -1
+	person_event SPRITE_POKEFAN_F, 7, 6, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, PokefanFScript_0x7ea47, -1
--- a/maps/MahoganyGym.asm
+++ b/maps/MahoganyGym.asm
@@ -369,8 +369,8 @@
 
 .Warps:
 	db 2
-	warp_def $11, $4, 3, GROUP_MAHOGANY_TOWN, MAP_MAHOGANY_TOWN
-	warp_def $11, $5, 3, GROUP_MAHOGANY_TOWN, MAP_MAHOGANY_TOWN
+	warp_def $11, $4, 3, MAHOGANY_TOWN
+	warp_def $11, $5, 3, MAHOGANY_TOWN
 
 .XYTriggers:
 	db 0
@@ -382,10 +382,10 @@
 
 .PersonEvents:
 	db 7
-	person_event SPRITE_PRYCE, 7, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, PryceScript_0x199a9e, -1
-	person_event SPRITE_BUENA, 10, 8, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 1, TrainerSkierRoxanne, -1
-	person_event SPRITE_ROCKER, 21, 4, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 1, TrainerBoarderRonald, -1
-	person_event SPRITE_BUENA, 21, 13, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $82, 1, TrainerSkierClarissa, -1
-	person_event SPRITE_ROCKER, 13, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 1, TrainerBoarderBrad, -1
-	person_event SPRITE_ROCKER, 8, 6, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 1, TrainerBoarderDouglas, -1
-	person_event SPRITE_GYM_GUY, 19, 11, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, MahoganyGymGuyScript, -1
+	person_event SPRITE_PRYCE, 7, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, PryceScript_0x199a9e, -1
+	person_event SPRITE_BUENA, 10, 8, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 1, TrainerSkierRoxanne, -1
+	person_event SPRITE_ROCKER, 21, 4, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 1, TrainerBoarderRonald, -1
+	person_event SPRITE_BUENA, 21, 13, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 1, TrainerSkierClarissa, -1
+	person_event SPRITE_ROCKER, 13, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 1, TrainerBoarderBrad, -1
+	person_event SPRITE_ROCKER, 8, 6, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 1, TrainerBoarderDouglas, -1
+	person_event SPRITE_GYM_GUY, 19, 11, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, MahoganyGymGuyScript, -1
--- a/maps/MahoganyMart1F.asm
+++ b/maps/MahoganyMart1F.asm
@@ -86,7 +86,7 @@
 	writetext UnknownText_0x6c59e
 	closetext
 	showemote EMOTE_SHOCK, $2, 10
-	playsound SFX_UNKNOWN_2A
+	playsound SFX_FAINT
 	changeblock $6, $2, $1e
 	reloadmappart
 	loadmovesprites
@@ -224,9 +224,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $3, 1, GROUP_MAHOGANY_TOWN, MAP_MAHOGANY_TOWN
-	warp_def $7, $4, 1, GROUP_MAHOGANY_TOWN, MAP_MAHOGANY_TOWN
-	warp_def $3, $7, 1, GROUP_TEAM_ROCKET_BASE_B1F, MAP_TEAM_ROCKET_BASE_B1F
+	warp_def $7, $3, 1, MAHOGANY_TOWN
+	warp_def $7, $4, 1, MAHOGANY_TOWN
+	warp_def $3, $7, 1, TEAM_ROCKET_BASE_B1F
 
 .XYTriggers:
 	db 0
@@ -236,8 +236,8 @@
 
 .PersonEvents:
 	db 5
-	person_event SPRITE_PHARMACIST, 7, 8, OW_UP | $2, $0, -1, -1, $0, 0, PharmacistScript_0x6c367, EVENT_TEAM_ROCKET_BASE_POPULATION
-	person_event SPRITE_BLACK_BELT, 10, 5, OW_DOWN | $3, $0, -1, -1, $0, 0, BlackBeltScript_0x6c37b, EVENT_TEAM_ROCKET_BASE_POPULATION
-	person_event SPRITE_LANCE, 10, 8, OW_LEFT | $0, $0, -1, -1, $0, 0, ObjectEvent, EVENT_MAHOGANY_MART_LANCE_AND_DRAGONITE
-	person_event SPRITE_DRAGON, 10, 7, OW_LEFT | $0, $0, -1, -1, $0, 0, ObjectEvent, EVENT_MAHOGANY_MART_LANCE_AND_DRAGONITE
-	person_event SPRITE_GRANNY, 7, 5, OW_LEFT | $1, $0, -1, -1, $0, 0, GrannyScript_0x6c3ee, EVENT_MAHOGANY_MART_OWNERS
+	person_event SPRITE_PHARMACIST, 7, 8, $6, 0, 0, -1, -1, 0, 0, 0, PharmacistScript_0x6c367, EVENT_TEAM_ROCKET_BASE_POPULATION
+	person_event SPRITE_BLACK_BELT, 10, 5, $3, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x6c37b, EVENT_TEAM_ROCKET_BASE_POPULATION
+	person_event SPRITE_LANCE, 10, 8, $8, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_MAHOGANY_MART_LANCE_AND_DRAGONITE
+	person_event SPRITE_DRAGON, 10, 7, $8, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_MAHOGANY_MART_LANCE_AND_DRAGONITE
+	person_event SPRITE_GRANNY, 7, 5, $9, 0, 0, -1, -1, 0, 0, 0, GrannyScript_0x6c3ee, EVENT_MAHOGANY_MART_OWNERS
--- a/maps/MahoganyPokeCenter1F.asm
+++ b/maps/MahoganyPokeCenter1F.asm
@@ -53,9 +53,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $3, 4, GROUP_MAHOGANY_TOWN, MAP_MAHOGANY_TOWN
-	warp_def $7, $4, 4, GROUP_MAHOGANY_TOWN, MAP_MAHOGANY_TOWN
-	warp_def $7, $0, 1, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
+	warp_def $7, $3, 4, MAHOGANY_TOWN
+	warp_def $7, $4, 4, MAHOGANY_TOWN
+	warp_def $7, $0, 1, POKECENTER_2F
 
 .XYTriggers:
 	db 0
@@ -65,7 +65,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_NURSE, 5, 7, OW_UP | $2, $0, -1, -1, $0, 0, NurseScript_0x19a356, -1
-	person_event SPRITE_POKEFAN_M, 6, 11, OW_DOWN | $2, $11, -1, -1, (PAL_OW_RED << 4) | $80, 0, PokefanMScript_0x19a359, -1
-	person_event SPRITE_YOUNGSTER, 7, 5, OW_LEFT | $1, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, YoungsterScript_0x19a35c, -1
-	person_event SPRITE_COOLTRAINER_F, 7, 6, OW_LEFT | $0, $0, -1, -1, $0, 0, CooltrainerFScript_0x19a35f, -1
+	person_event SPRITE_NURSE, 5, 7, $6, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x19a356, -1
+	person_event SPRITE_POKEFAN_M, 6, 11, $2, 1, 1, -1, -1, 8 + PAL_OW_RED, 0, 0, PokefanMScript_0x19a359, -1
+	person_event SPRITE_YOUNGSTER, 7, 5, $9, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, YoungsterScript_0x19a35c, -1
+	person_event SPRITE_COOLTRAINER_F, 7, 6, $8, 0, 0, -1, -1, 0, 0, 0, CooltrainerFScript_0x19a35f, -1
--- a/maps/MahoganyRedGyaradosSpeechHouse.asm
+++ b/maps/MahoganyRedGyaradosSpeechHouse.asm
@@ -62,8 +62,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 2, GROUP_MAHOGANY_TOWN, MAP_MAHOGANY_TOWN
-	warp_def $7, $3, 2, GROUP_MAHOGANY_TOWN, MAP_MAHOGANY_TOWN
+	warp_def $7, $2, 2, MAHOGANY_TOWN
+	warp_def $7, $3, 2, MAHOGANY_TOWN
 
 .XYTriggers:
 	db 0
@@ -73,5 +73,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_BLACK_BELT, 7, 6, OW_LEFT | $1, $0, -1, -1, $0, 0, BlackBeltScript_0x19997f, -1
-	person_event SPRITE_TEACHER, 9, 10, OW_UP | $0, $10, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, TeacherScript_0x199982, -1
+	person_event SPRITE_BLACK_BELT, 7, 6, $9, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x19997f, -1
+	person_event SPRITE_TEACHER, 9, 10, $4, 1, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, TeacherScript_0x199982, -1
--- a/maps/MahoganyTown.asm
+++ b/maps/MahoganyTown.asm
@@ -248,11 +248,11 @@
 
 .Warps:
 	db 5
-	warp_def $7, $b, 1, GROUP_MAHOGANY_MART_1F, MAP_MAHOGANY_MART_1F
-	warp_def $7, $11, 1, GROUP_MAHOGANY_RED_GYARADOS_SPEECH_HOUSE, MAP_MAHOGANY_RED_GYARADOS_SPEECH_HOUSE
-	warp_def $d, $6, 1, GROUP_MAHOGANY_GYM, MAP_MAHOGANY_GYM
-	warp_def $d, $f, 1, GROUP_MAHOGANY_POKECENTER_1F, MAP_MAHOGANY_POKECENTER_1F
-	warp_def $1, $9, 3, GROUP_ROUTE_43_MAHOGANY_GATE, MAP_ROUTE_43_MAHOGANY_GATE
+	warp_def $7, $b, 1, MAHOGANY_MART_1F
+	warp_def $7, $11, 1, MAHOGANY_RED_GYARADOS_SPEECH_HOUSE
+	warp_def $d, $6, 1, MAHOGANY_GYM
+	warp_def $d, $f, 1, MAHOGANY_POKECENTER_1F
+	warp_def $1, $9, 3, ROUTE_43_MAHOGANY_GATE
 
 .XYTriggers:
 	db 2
@@ -268,7 +268,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_POKEFAN_M, 12, 23, OW_UP | $2, $0, -1, -1, $0, 0, PokefanMScript_0x19002e, EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_EAST
-	person_event SPRITE_GRAMPS, 13, 10, OW_UP | $1, $1, -1, -1, $0, 0, GrampsScript_0x19007e, -1
-	person_event SPRITE_FISHER, 18, 10, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, FisherScript_0x190092, EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_GYM
-	person_event SPRITE_LASS, 12, 16, OW_UP | $2, $0, -1, -1, $0, 0, LassScript_0x190095, EVENT_MAHOGANY_MART_OWNERS
+	person_event SPRITE_POKEFAN_M, 12, 23, $6, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x19002e, EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_EAST
+	person_event SPRITE_GRAMPS, 13, 10, $5, 0, 1, -1, -1, 0, 0, 0, GrampsScript_0x19007e, -1
+	person_event SPRITE_FISHER, 18, 10, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, FisherScript_0x190092, EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_GYM
+	person_event SPRITE_LASS, 12, 16, $6, 0, 0, -1, -1, 0, 0, 0, LassScript_0x190095, EVENT_MAHOGANY_MART_OWNERS
--- a/maps/ManiasHouse.asm
+++ b/maps/ManiasHouse.asm
@@ -201,8 +201,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 1, GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY
-	warp_def $7, $3, 1, GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY
+	warp_def $7, $2, 1, CIANWOOD_CITY
+	warp_def $7, $3, 1, CIANWOOD_CITY
 
 .XYTriggers:
 	db 0
@@ -212,4 +212,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_ROCKER, 8, 6, OW_DOWN | $3, $0, -1, -1, $0, 0, RockerScript_0x9d278, -1
+	person_event SPRITE_ROCKER, 8, 6, $3, 0, 0, -1, -1, 0, 0, 0, RockerScript_0x9d278, -1
--- a/maps/MobileBattleRoom.asm
+++ b/maps/MobileBattleRoom.asm
@@ -18,7 +18,7 @@
 
 MobileBattleRoom_Initialize:
 	dotrigger $1
-	domaptrigger GROUP_POKECENTER_2F, MAP_POKECENTER_2F, $5
+	domaptrigger POKECENTER_2F, $5
 	end
 
 MapMobileBattleRoomSignpost0Script:
@@ -74,8 +74,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $4, 6, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
-	warp_def $7, $5, 6, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
+	warp_def $7, $4, 6, POKECENTER_2F
+	warp_def $7, $5, 6, POKECENTER_2F
 
 .XYTriggers:
 	db 0
--- a/maps/MobileTradeRoomMobile.asm
+++ b/maps/MobileTradeRoomMobile.asm
@@ -18,7 +18,7 @@
 
 MobileTradeRoomMobile_Initialize:
 	dotrigger $1
-	domaptrigger GROUP_POKECENTER_2F, MAP_POKECENTER_2F, $4
+	domaptrigger POKECENTER_2F, $4
 	end
 
 MapMobileTradeRoomMobileSignpost0Script:
@@ -42,8 +42,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $4, 5, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
-	warp_def $7, $5, 5, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
+	warp_def $7, $4, 5, POKECENTER_2F
+	warp_def $7, $5, 5, POKECENTER_2F
 
 .XYTriggers:
 	db 0
--- a/maps/MountMoon.asm
+++ b/maps/MountMoon.asm
@@ -165,14 +165,14 @@
 
 .Warps:
 	db 8
-	warp_def $3, $3, 1, GROUP_ROUTE_3, MAP_ROUTE_3
-	warp_def $f, $f, 1, GROUP_ROUTE_4, MAP_ROUTE_4
-	warp_def $3, $d, 7, GROUP_MOUNT_MOON, MAP_MOUNT_MOON
-	warp_def $b, $f, 8, GROUP_MOUNT_MOON, MAP_MOUNT_MOON
-	warp_def $5, $19, 1, GROUP_MOUNT_MOON_SQUARE, MAP_MOUNT_MOON_SQUARE
-	warp_def $f, $19, 2, GROUP_MOUNT_MOON_SQUARE, MAP_MOUNT_MOON_SQUARE
-	warp_def $3, $19, 3, GROUP_MOUNT_MOON, MAP_MOUNT_MOON
-	warp_def $d, $19, 4, GROUP_MOUNT_MOON, MAP_MOUNT_MOON
+	warp_def $3, $3, 1, ROUTE_3
+	warp_def $f, $f, 1, ROUTE_4
+	warp_def $3, $d, 7, MOUNT_MOON
+	warp_def $b, $f, 8, MOUNT_MOON
+	warp_def $5, $19, 1, MOUNT_MOON_SQUARE
+	warp_def $f, $19, 2, MOUNT_MOON_SQUARE
+	warp_def $3, $19, 3, MOUNT_MOON
+	warp_def $d, $19, 4, MOUNT_MOON
 
 .XYTriggers:
 	db 0
@@ -182,4 +182,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_SILVER, 7, 11, OW_LEFT | $0, $0, -1, -1, $0, 0, ObjectEvent, EVENT_MT_MOON_RIVAL
+	person_event SPRITE_SILVER, 7, 11, $8, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_MT_MOON_RIVAL
--- a/maps/MountMoonGiftShop.asm
+++ b/maps/MountMoonGiftShop.asm
@@ -27,8 +27,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $3, 3, GROUP_MOUNT_MOON_SQUARE, MAP_MOUNT_MOON_SQUARE
-	warp_def $7, $4, 3, GROUP_MOUNT_MOON_SQUARE, MAP_MOUNT_MOON_SQUARE
+	warp_def $7, $3, 3, MOUNT_MOON_SQUARE
+	warp_def $7, $4, 3, MOUNT_MOON_SQUARE
 
 .XYTriggers:
 	db 0
@@ -38,7 +38,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_GRAMPS, 7, 8, OW_UP | $2, $0, -1, 1, $0, 0, GrampsScript_0x771a8, -1
-	person_event SPRITE_GRAMPS, 6, 5, OW_LEFT | $1, $0, -1, 2, $0, 0, GrampsScript_0x771a8, -1
-	person_event SPRITE_LASS, 10, 5, OW_UP | $1, $1, -1, 1, $0, 0, LassScript_0x771b0, -1
-	person_event SPRITE_LASS, 8, 9, OW_UP | $0, $10, -1, 2, $0, 0, LassScript_0x771b0, -1
+	person_event SPRITE_GRAMPS, 7, 8, $6, 0, 0, -1, 1, 0, 0, 0, GrampsScript_0x771a8, -1
+	person_event SPRITE_GRAMPS, 6, 5, $9, 0, 0, -1, 2, 0, 0, 0, GrampsScript_0x771a8, -1
+	person_event SPRITE_LASS, 10, 5, $5, 0, 1, -1, 1, 0, 0, 0, LassScript_0x771b0, -1
+	person_event SPRITE_LASS, 8, 9, $4, 1, 0, -1, 2, 0, 0, 0, LassScript_0x771b0, -1
--- a/maps/MountMoonSquare.asm
+++ b/maps/MountMoonSquare.asm
@@ -140,9 +140,9 @@
 
 .Warps:
 	db 3
-	warp_def $5, $14, 5, GROUP_MOUNT_MOON, MAP_MOUNT_MOON
-	warp_def $b, $16, 6, GROUP_MOUNT_MOON, MAP_MOUNT_MOON
-	warp_def $7, $d, 1, GROUP_MOUNT_MOON_GIFT_SHOP, MAP_MOUNT_MOON_GIFT_SHOP
+	warp_def $5, $14, 5, MOUNT_MOON
+	warp_def $b, $16, 6, MOUNT_MOON
+	warp_def $7, $d, 1, MOUNT_MOON_GIFT_SHOP
 
 .XYTriggers:
 	db 1
@@ -155,6 +155,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_FAIRY, 10, 10, OW_UP | $2, $0, -1, -1, $0, 0, ObjectEvent, EVENT_MT_MOON_SQUARE_CLEFAIRY
-	person_event SPRITE_FAIRY, 10, 11, OW_UP | $2, $0, -1, -1, $0, 0, ObjectEvent, EVENT_MT_MOON_SQUARE_CLEFAIRY
-	person_event SPRITE_ROCK, 11, 11, OW_LEFT | $10, $0, -1, -1, $0, 0, MtMoonSquareRock, EVENT_MT_MOON_SQUARE_ROCK
+	person_event SPRITE_FAIRY, 10, 10, $6, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_MT_MOON_SQUARE_CLEFAIRY
+	person_event SPRITE_FAIRY, 10, 11, $6, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_MT_MOON_SQUARE_CLEFAIRY
+	person_event SPRITE_ROCK, 11, 11, $18, 0, 0, -1, -1, 0, 0, 0, MtMoonSquareRock, EVENT_MT_MOON_SQUARE_ROCK
--- a/maps/MountMortar1FInside.asm
+++ b/maps/MountMortar1FInside.asm
@@ -111,12 +111,12 @@
 
 .Warps:
 	db 6
-	warp_def $2f, $b, 5, GROUP_MOUNT_MORTAR_1F_OUTSIDE, MAP_MOUNT_MORTAR_1F_OUTSIDE
-	warp_def $2f, $1d, 6, GROUP_MOUNT_MORTAR_1F_OUTSIDE, MAP_MOUNT_MORTAR_1F_OUTSIDE
-	warp_def $27, $5, 8, GROUP_MOUNT_MORTAR_1F_OUTSIDE, MAP_MOUNT_MORTAR_1F_OUTSIDE
-	warp_def $29, $21, 9, GROUP_MOUNT_MORTAR_1F_OUTSIDE, MAP_MOUNT_MORTAR_1F_OUTSIDE
-	warp_def $13, $3, 1, GROUP_MOUNT_MORTAR_B1F, MAP_MOUNT_MORTAR_B1F
-	warp_def $9, $9, 2, GROUP_MOUNT_MORTAR_2F_INSIDE, MAP_MOUNT_MORTAR_2F_INSIDE
+	warp_def $2f, $b, 5, MOUNT_MORTAR_1F_OUTSIDE
+	warp_def $2f, $1d, 6, MOUNT_MORTAR_1F_OUTSIDE
+	warp_def $27, $5, 8, MOUNT_MORTAR_1F_OUTSIDE
+	warp_def $29, $21, 9, MOUNT_MORTAR_1F_OUTSIDE
+	warp_def $13, $3, 1, MOUNT_MORTAR_B1F
+	warp_def $9, $9, 2, MOUNT_MORTAR_2F_INSIDE
 
 .XYTriggers:
 	db 0
@@ -127,13 +127,13 @@
 
 .PersonEvents:
 	db 10
-	person_event SPRITE_BOULDER, 47, 25, OW_LEFT | $11, $0, -1, -1, $0, 0, MountMortar1FBoulder, -1
-	person_event SPRITE_POKE_BALL, 42, 39, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7de7c, EVENT_MOUNT_MORTAR_1F_INSIDE_ESCAPE_ROPE
-	person_event SPRITE_POKE_BALL, 14, 20, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7de7e, EVENT_MOUNT_MORTAR_1F_INSIDE_MAX_REVIVE
-	person_event SPRITE_POKE_BALL, 31, 14, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7de80, EVENT_MOUNT_MORTAR_1F_INSIDE_HYPER_POTION
-	person_event SPRITE_POKE_BALL, 24, 26, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7de82, EVENT_MOUNT_MORTAR_1F_INSIDE_MAX_POTION
-	person_event SPRITE_POKE_BALL, 23, 39, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7de84, EVENT_MOUNT_MORTAR_1F_INSIDE_NUGGET
-	person_event SPRITE_SUPER_NERD, 47, 37, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerPokemaniacMiller, -1
-	person_event SPRITE_SUPER_NERD, 32, 28, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 3, TrainerSupernerdMarkus, -1
-	person_event SPRITE_POKE_BALL, 20, 12, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7de86, EVENT_MOUNT_MORTAR_1F_INSIDE_IRON
-	person_event SPRITE_POKE_BALL, 21, 21, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7de88, EVENT_MOUNT_MORTAR_1F_INSIDE_ULTRA_BALL
+	person_event SPRITE_BOULDER, 47, 25, $19, 0, 0, -1, -1, 0, 0, 0, MountMortar1FBoulder, -1
+	person_event SPRITE_POKE_BALL, 42, 39, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de7c, EVENT_MOUNT_MORTAR_1F_INSIDE_ESCAPE_ROPE
+	person_event SPRITE_POKE_BALL, 14, 20, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de7e, EVENT_MOUNT_MORTAR_1F_INSIDE_MAX_REVIVE
+	person_event SPRITE_POKE_BALL, 31, 14, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de80, EVENT_MOUNT_MORTAR_1F_INSIDE_HYPER_POTION
+	person_event SPRITE_POKE_BALL, 24, 26, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de82, EVENT_MOUNT_MORTAR_1F_INSIDE_MAX_POTION
+	person_event SPRITE_POKE_BALL, 23, 39, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de84, EVENT_MOUNT_MORTAR_1F_INSIDE_NUGGET
+	person_event SPRITE_SUPER_NERD, 47, 37, $8, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerPokemaniacMiller, -1
+	person_event SPRITE_SUPER_NERD, 32, 28, $a, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 3, TrainerSupernerdMarkus, -1
+	person_event SPRITE_POKE_BALL, 20, 12, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de86, EVENT_MOUNT_MORTAR_1F_INSIDE_IRON
+	person_event SPRITE_POKE_BALL, 21, 21, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de88, EVENT_MOUNT_MORTAR_1F_INSIDE_ULTRA_BALL
--- a/maps/MountMortar1FOutside.asm
+++ b/maps/MountMortar1FOutside.asm
@@ -21,15 +21,15 @@
 
 .Warps:
 	db 9
-	warp_def $21, $3, 3, GROUP_ROUTE_42, MAP_ROUTE_42
-	warp_def $21, $11, 4, GROUP_ROUTE_42, MAP_ROUTE_42
-	warp_def $21, $25, 5, GROUP_ROUTE_42, MAP_ROUTE_42
-	warp_def $5, $11, 1, GROUP_MOUNT_MORTAR_2F_INSIDE, MAP_MOUNT_MORTAR_2F_INSIDE
-	warp_def $15, $b, 1, GROUP_MOUNT_MORTAR_1F_INSIDE, MAP_MOUNT_MORTAR_1F_INSIDE
-	warp_def $15, $1d, 2, GROUP_MOUNT_MORTAR_1F_INSIDE, MAP_MOUNT_MORTAR_1F_INSIDE
-	warp_def $1d, $11, 2, GROUP_MOUNT_MORTAR_B1F, MAP_MOUNT_MORTAR_B1F
-	warp_def $d, $7, 3, GROUP_MOUNT_MORTAR_1F_INSIDE, MAP_MOUNT_MORTAR_1F_INSIDE
-	warp_def $d, $21, 4, GROUP_MOUNT_MORTAR_1F_INSIDE, MAP_MOUNT_MORTAR_1F_INSIDE
+	warp_def $21, $3, 3, ROUTE_42
+	warp_def $21, $11, 4, ROUTE_42
+	warp_def $21, $25, 5, ROUTE_42
+	warp_def $5, $11, 1, MOUNT_MORTAR_2F_INSIDE
+	warp_def $15, $b, 1, MOUNT_MORTAR_1F_INSIDE
+	warp_def $15, $1d, 2, MOUNT_MORTAR_1F_INSIDE
+	warp_def $1d, $11, 2, MOUNT_MORTAR_B1F
+	warp_def $d, $7, 3, MOUNT_MORTAR_1F_INSIDE
+	warp_def $d, $21, 4, MOUNT_MORTAR_1F_INSIDE
 
 .XYTriggers:
 	db 0
@@ -40,5 +40,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_POKE_BALL, 19, 17, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7ddf6, EVENT_MOUNT_MORTAR_1F_OUTSIDE_ETHER
-	person_event SPRITE_POKE_BALL, 22, 35, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7ddf8, EVENT_MOUNT_MORTAR_1F_OUTSIDE_REVIVE
+	person_event SPRITE_POKE_BALL, 19, 17, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7ddf6, EVENT_MOUNT_MORTAR_1F_OUTSIDE_ETHER
+	person_event SPRITE_POKE_BALL, 22, 35, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7ddf8, EVENT_MOUNT_MORTAR_1F_OUTSIDE_REVIVE
--- a/maps/MountMortar2FInside.asm
+++ b/maps/MountMortar2FInside.asm
@@ -64,8 +64,8 @@
 
 .Warps:
 	db 2
-	warp_def $21, $11, 4, GROUP_MOUNT_MORTAR_1F_OUTSIDE, MAP_MOUNT_MORTAR_1F_OUTSIDE
-	warp_def $5, $3, 6, GROUP_MOUNT_MORTAR_1F_INSIDE, MAP_MOUNT_MORTAR_1F_INSIDE
+	warp_def $21, $11, 4, MOUNT_MORTAR_1F_OUTSIDE
+	warp_def $5, $3, 6, MOUNT_MORTAR_1F_INSIDE
 
 .XYTriggers:
 	db 0
@@ -76,10 +76,10 @@
 
 .PersonEvents:
 	db 7
-	person_event SPRITE_POKE_BALL, 26, 32, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7e0de, EVENT_MOUNT_MORTAR_2F_INSIDE_MAX_POTION
-	person_event SPRITE_POKE_BALL, 37, 6, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7e0e0, EVENT_MOUNT_MORTAR_2F_INSIDE_RARE_CANDY
-	person_event SPRITE_POKE_BALL, 21, 23, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7e0e2, EVENT_MOUNT_MORTAR_2F_INSIDE_TM_DEFENSE_CURL
-	person_event SPRITE_POKE_BALL, 9, 20, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7e0e4, EVENT_MOUNT_MORTAR_2F_INSIDE_DRAGON_SCALE
-	person_event SPRITE_POKE_BALL, 15, 13, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7e0e6, EVENT_MOUNT_MORTAR_2F_INSIDE_ELIXER
-	person_event SPRITE_POKE_BALL, 9, 32, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7e0e8, EVENT_MOUNT_MORTAR_2F_INSIDE_ESCAPE_ROPE
-	person_event SPRITE_SUPER_NERD, 30, 17, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 2, TrainerSupernerdHugh, -1
+	person_event SPRITE_POKE_BALL, 26, 32, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0de, EVENT_MOUNT_MORTAR_2F_INSIDE_MAX_POTION
+	person_event SPRITE_POKE_BALL, 37, 6, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e0, EVENT_MOUNT_MORTAR_2F_INSIDE_RARE_CANDY
+	person_event SPRITE_POKE_BALL, 21, 23, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e2, EVENT_MOUNT_MORTAR_2F_INSIDE_TM_DEFENSE_CURL
+	person_event SPRITE_POKE_BALL, 9, 20, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e4, EVENT_MOUNT_MORTAR_2F_INSIDE_DRAGON_SCALE
+	person_event SPRITE_POKE_BALL, 15, 13, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e6, EVENT_MOUNT_MORTAR_2F_INSIDE_ELIXER
+	person_event SPRITE_POKE_BALL, 9, 32, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e8, EVENT_MOUNT_MORTAR_2F_INSIDE_ESCAPE_ROPE
+	person_event SPRITE_SUPER_NERD, 30, 17, $a, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 2, TrainerSupernerdHugh, -1
--- a/maps/MountMortarB1F.asm
+++ b/maps/MountMortarB1F.asm
@@ -132,8 +132,8 @@
 
 .Warps:
 	db 2
-	warp_def $3, $3, 5, GROUP_MOUNT_MORTAR_1F_INSIDE, MAP_MOUNT_MORTAR_1F_INSIDE
-	warp_def $1d, $13, 7, GROUP_MOUNT_MORTAR_1F_OUTSIDE, MAP_MOUNT_MORTAR_1F_OUTSIDE
+	warp_def $3, $3, 5, MOUNT_MORTAR_1F_INSIDE
+	warp_def $1d, $13, 7, MOUNT_MORTAR_1F_OUTSIDE
 
 .XYTriggers:
 	db 0
@@ -144,10 +144,10 @@
 
 .PersonEvents:
 	db 7
-	person_event SPRITE_POKE_BALL, 16, 33, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7e240, EVENT_MOUNT_MORTAR_B1F_HYPER_POTION
-	person_event SPRITE_POKE_BALL, 20, 8, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7e242, EVENT_MOUNT_MORTAR_B1F_CARBOS
-	person_event SPRITE_BOULDER, 14, 13, OW_LEFT | $11, $0, -1, -1, $0, 0, MountMortarB1FBoulder, -1
-	person_event SPRITE_BLACK_BELT, 8, 20, OW_UP | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, BlackBeltScript_0x7e1f6, -1
-	person_event SPRITE_POKE_BALL, 28, 38, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7e244, EVENT_MOUNT_MORTAR_B1F_FULL_RESTORE
-	person_event SPRITE_POKE_BALL, 7, 36, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7e246, EVENT_MOUNT_MORTAR_B1F_MAX_ETHER
-	person_event SPRITE_POKE_BALL, 30, 25, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7e248, EVENT_MOUNT_MORTAR_B1F_PP_UP
+	person_event SPRITE_POKE_BALL, 16, 33, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e240, EVENT_MOUNT_MORTAR_B1F_HYPER_POTION
+	person_event SPRITE_POKE_BALL, 20, 8, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e242, EVENT_MOUNT_MORTAR_B1F_CARBOS
+	person_event SPRITE_BOULDER, 14, 13, $19, 0, 0, -1, -1, 0, 0, 0, MountMortarB1FBoulder, -1
+	person_event SPRITE_BLACK_BELT, 8, 20, $6, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, BlackBeltScript_0x7e1f6, -1
+	person_event SPRITE_POKE_BALL, 28, 38, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e244, EVENT_MOUNT_MORTAR_B1F_FULL_RESTORE
+	person_event SPRITE_POKE_BALL, 7, 36, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e246, EVENT_MOUNT_MORTAR_B1F_MAX_ETHER
+	person_event SPRITE_POKE_BALL, 30, 25, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e248, EVENT_MOUNT_MORTAR_B1F_PP_UP
--- a/maps/MoveDeletersHouse.asm
+++ b/maps/MoveDeletersHouse.asm
@@ -22,8 +22,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 6, GROUP_BLACKTHORN_CITY, MAP_BLACKTHORN_CITY
-	warp_def $7, $3, 6, GROUP_BLACKTHORN_CITY, MAP_BLACKTHORN_CITY
+	warp_def $7, $2, 6, BLACKTHORN_CITY
+	warp_def $7, $3, 6, BLACKTHORN_CITY
 
 .XYTriggers:
 	db 0
@@ -35,4 +35,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_SUPER_NERD, 7, 6, OW_UP | $2, $0, -1, -1, $0, 0, MoveDeleter, -1
+	person_event SPRITE_SUPER_NERD, 7, 6, $6, 0, 0, -1, -1, 0, 0, 0, MoveDeleter, -1
--- a/maps/MrFujisHouse.asm
+++ b/maps/MrFujisHouse.asm
@@ -78,8 +78,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 2, GROUP_LAVENDER_TOWN, MAP_LAVENDER_TOWN
-	warp_def $7, $3, 2, GROUP_LAVENDER_TOWN, MAP_LAVENDER_TOWN
+	warp_def $7, $2, 2, LAVENDER_TOWN
+	warp_def $7, $3, 2, LAVENDER_TOWN
 
 .XYTriggers:
 	db 0
@@ -91,8 +91,8 @@
 
 .PersonEvents:
 	db 5
-	person_event SPRITE_SUPER_NERD, 5, 8, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, SuperNerdScript_0x7e8ca, -1
-	person_event SPRITE_LASS, 8, 7, OW_DOWN | $2, $11, -1, -1, $0, 0, LassScript_0x7e8cd, -1
-	person_event SPRITE_RHYDON, 8, 11, OW_UP | $12, $0, -1, -1, $0, 0, MrFujisPsyduck, -1
-	person_event SPRITE_GROWLITHE, 9, 9, OW_UP | $12, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, MrFujisNidorino, -1
-	person_event SPRITE_MOLTRES, 7, 5, OW_UP | $12, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, MrFujisPidgey, -1
+	person_event SPRITE_SUPER_NERD, 5, 8, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, SuperNerdScript_0x7e8ca, -1
+	person_event SPRITE_LASS, 8, 7, $2, 1, 1, -1, -1, 0, 0, 0, LassScript_0x7e8cd, -1
+	person_event SPRITE_RHYDON, 8, 11, $16, 0, 0, -1, -1, 0, 0, 0, MrFujisPsyduck, -1
+	person_event SPRITE_GROWLITHE, 9, 9, $16, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, MrFujisNidorino, -1
+	person_event SPRITE_MOLTRES, 7, 5, $16, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, MrFujisPidgey, -1
--- a/maps/MrPokemonsHouse.asm
+++ b/maps/MrPokemonsHouse.asm
@@ -34,7 +34,7 @@
 	waitbutton
 	itemnotify
 	setevent EVENT_GOT_MYSTERY_EGG_FROM_MR_POKEMON
-	blackoutmod GROUP_CHERRYGROVE_CITY, MAP_CHERRYGROVE_CITY
+	blackoutmod CHERRYGROVE_CITY
 	writetext UnknownText_0x196feb
 	keeptextopen
 	spriteface $2, RIGHT
@@ -124,8 +124,8 @@
 	setevent EVENT_KRISS_HOUSE_1F_NEIGHBOR
 	clearevent EVENT_KRISS_NEIGHBORS_HOUSE_NEIGHBOR
 	dotrigger $1
-	domaptrigger GROUP_CHERRYGROVE_CITY, MAP_CHERRYGROVE_CITY, $1
-	domaptrigger GROUP_ELMS_LAB, MAP_ELMS_LAB, $3
+	domaptrigger CHERRYGROVE_CITY, $1
+	domaptrigger ELMS_LAB, $3
 	specialphonecall ELMCALL_ROBBED
 	clearevent EVENT_COP_IN_ELMS_LAB
 	checkevent EVENT_GOT_TOTODILE_FROM_ELM
@@ -376,8 +376,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 2, GROUP_ROUTE_30, MAP_ROUTE_30
-	warp_def $7, $3, 2, GROUP_ROUTE_30, MAP_ROUTE_30
+	warp_def $7, $2, 2, ROUTE_30
+	warp_def $7, $3, 2, ROUTE_30
 
 .XYTriggers:
 	db 0
@@ -392,5 +392,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_GENTLEMAN, 9, 7, OW_LEFT | $1, $0, -1, -1, $0, 0, GentlemanScript_0x196e97, -1
-	person_event SPRITE_OAK, 9, 10, OW_UP | $3, $0, -1, -1, $0, 0, ObjectEvent, EVENT_MR_POKEMONS_HOUSE_OAK
+	person_event SPRITE_GENTLEMAN, 9, 7, $9, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x196e97, -1
+	person_event SPRITE_OAK, 9, 10, $7, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_MR_POKEMONS_HOUSE_OAK
--- a/maps/MrPsychicsHouse.asm
+++ b/maps/MrPsychicsHouse.asm
@@ -50,8 +50,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 5, GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY
-	warp_def $7, $3, 5, GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY
+	warp_def $7, $2, 5, SAFFRON_CITY
+	warp_def $7, $3, 5, SAFFRON_CITY
 
 .XYTriggers:
 	db 0
@@ -63,4 +63,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_FISHING_GURU, 7, 9, OW_LEFT | $0, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, MrPsychic, -1
+	person_event SPRITE_FISHING_GURU, 7, 9, $8, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, MrPsychic, -1
--- a/maps/NationalPark.asm
+++ b/maps/NationalPark.asm
@@ -504,10 +504,10 @@
 
 .Warps:
 	db 4
-	warp_def $12, $21, 1, GROUP_ROUTE_36_NATIONAL_PARK_GATE, MAP_ROUTE_36_NATIONAL_PARK_GATE
-	warp_def $13, $21, 2, GROUP_ROUTE_36_NATIONAL_PARK_GATE, MAP_ROUTE_36_NATIONAL_PARK_GATE
-	warp_def $2f, $a, 1, GROUP_ROUTE_35_NATIONAL_PARK_GATE, MAP_ROUTE_35_NATIONAL_PARK_GATE
-	warp_def $2f, $b, 2, GROUP_ROUTE_35_NATIONAL_PARK_GATE, MAP_ROUTE_35_NATIONAL_PARK_GATE
+	warp_def $12, $21, 1, ROUTE_36_NATIONAL_PARK_GATE
+	warp_def $13, $21, 2, ROUTE_36_NATIONAL_PARK_GATE
+	warp_def $2f, $a, 1, ROUTE_35_NATIONAL_PARK_GATE
+	warp_def $2f, $b, 2, ROUTE_35_NATIONAL_PARK_GATE
 
 .XYTriggers:
 	db 0
@@ -521,17 +521,17 @@
 
 .PersonEvents:
 	db 14
-	person_event SPRITE_LASS, 28, 19, OW_UP | $1, $1, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, LassScript_0x5c002, -1
-	person_event SPRITE_POKEFAN_F, 8, 18, OW_UP | $2, $0, -1, -1, $0, 0, PokefanFScript_0x5c005, -1
-	person_event SPRITE_TEACHER, 44, 31, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, TeacherScript_0x5c008, -1
-	person_event SPRITE_YOUNGSTER, 45, 15, OW_LEFT | $0, $0, -1, -1, $0, 0, YoungsterScript_0x5c023, -1
-	person_event SPRITE_YOUNGSTER, 45, 14, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, YoungsterScript_0x5c026, -1
-	person_event SPRITE_TEACHER, 45, 21, OW_DOWN | $2, $21, -1, -1, $0, 0, TeacherScript_0x5c029, -1
-	person_event SPRITE_GROWLITHE, 44, 30, OW_UP | $12, $0, -1, -1, $0, 0, GrowlitheScript_0x5c02c, -1
-	person_event SPRITE_YOUNGSTER, 27, 31, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerSchoolboyJack1, -1
-	person_event SPRITE_POKEFAN_F, 33, 22, OW_LEFT | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 2, TrainerPokefanfBeverly1, -1
-	person_event SPRITE_POKEFAN_M, 13, 20, OW_LEFT | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 2, TrainerPokefanmWilliam, -1
-	person_event SPRITE_LASS, 18, 12, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerLassKrise, -1
-	person_event SPRITE_POKE_BALL, 16, 39, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x5c1cc, EVENT_NATIONAL_PARK_PARLYZ_HEAL
-	person_event SPRITE_GAMEBOY_KID, 10, 30, OW_UP | $2, $0, -1, -1, $0, 0, GameboyKidScript_0x5c037, -1
-	person_event SPRITE_POKE_BALL, 47, 5, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x5c1ce, EVENT_NATIONAL_PARK_TM_DIG
+	person_event SPRITE_LASS, 28, 19, $5, 0, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 0, LassScript_0x5c002, -1
+	person_event SPRITE_POKEFAN_F, 8, 18, $6, 0, 0, -1, -1, 0, 0, 0, PokefanFScript_0x5c005, -1
+	person_event SPRITE_TEACHER, 44, 31, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, TeacherScript_0x5c008, -1
+	person_event SPRITE_YOUNGSTER, 45, 15, $8, 0, 0, -1, -1, 0, 0, 0, YoungsterScript_0x5c023, -1
+	person_event SPRITE_YOUNGSTER, 45, 14, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, YoungsterScript_0x5c026, -1
+	person_event SPRITE_TEACHER, 45, 21, $2, 2, 1, -1, -1, 0, 0, 0, TeacherScript_0x5c029, -1
+	person_event SPRITE_GROWLITHE, 44, 30, $16, 0, 0, -1, -1, 0, 0, 0, GrowlitheScript_0x5c02c, -1
+	person_event SPRITE_YOUNGSTER, 27, 31, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerSchoolboyJack1, -1
+	person_event SPRITE_POKEFAN_F, 33, 22, $a, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 2, TrainerPokefanfBeverly1, -1
+	person_event SPRITE_POKEFAN_M, 13, 20, $a, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 2, TrainerPokefanmWilliam, -1
+	person_event SPRITE_LASS, 18, 12, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerLassKrise, -1
+	person_event SPRITE_POKE_BALL, 16, 39, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5c1cc, EVENT_NATIONAL_PARK_PARLYZ_HEAL
+	person_event SPRITE_GAMEBOY_KID, 10, 30, $6, 0, 0, -1, -1, 0, 0, 0, GameboyKidScript_0x5c037, -1
+	person_event SPRITE_POKE_BALL, 47, 5, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5c1ce, EVENT_NATIONAL_PARK_TM_DIG
--- a/maps/NationalParkBugContest.asm
+++ b/maps/NationalParkBugContest.asm
@@ -213,10 +213,10 @@
 
 .Warps:
 	db 4
-	warp_def $12, $21, 1, GROUP_ROUTE_36_NATIONAL_PARK_GATE, MAP_ROUTE_36_NATIONAL_PARK_GATE
-	warp_def $13, $21, 1, GROUP_ROUTE_36_NATIONAL_PARK_GATE, MAP_ROUTE_36_NATIONAL_PARK_GATE
-	warp_def $2f, $a, 1, GROUP_ROUTE_35_NATIONAL_PARK_GATE, MAP_ROUTE_35_NATIONAL_PARK_GATE
-	warp_def $2f, $b, 1, GROUP_ROUTE_35_NATIONAL_PARK_GATE, MAP_ROUTE_35_NATIONAL_PARK_GATE
+	warp_def $12, $21, 1, ROUTE_36_NATIONAL_PARK_GATE
+	warp_def $13, $21, 1, ROUTE_36_NATIONAL_PARK_GATE
+	warp_def $2f, $a, 1, ROUTE_35_NATIONAL_PARK_GATE
+	warp_def $2f, $b, 1, ROUTE_35_NATIONAL_PARK_GATE
 
 .XYTriggers:
 	db 0
@@ -230,15 +230,15 @@
 
 .PersonEvents:
 	db 12
-	person_event SPRITE_YOUNGSTER, 33, 23, OW_DOWN | $2, $22, -1, -1, (PAL_OW_RED << 4) | $80, 0, YoungsterScript_0x5c8ec, EVENT_BUG_CATCHING_CONTESTANT_1A
-	person_event SPRITE_YOUNGSTER, 26, 32, OW_DOWN | $2, $22, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, YoungsterScript_0x5c8f4, EVENT_BUG_CATCHING_CONTESTANT_2A
-	person_event SPRITE_ROCKER, 22, 13, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, RockerScript_0x5c8fc, EVENT_BUG_CATCHING_CONTESTANT_3A
-	person_event SPRITE_POKEFAN_M, 17, 11, OW_UP | $0, $1, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, PokefanMScript_0x5c904, EVENT_BUG_CATCHING_CONTESTANT_4A
-	person_event SPRITE_YOUNGSTER, 13, 27, OW_DOWN | $3, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, YoungsterScript_0x5c90c, EVENT_BUG_CATCHING_CONTESTANT_5A
-	person_event SPRITE_YOUNGSTER, 17, 31, OW_DOWN | $2, $33, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, YoungsterScript_0x5c914, EVENT_BUG_CATCHING_CONTESTANT_6A
-	person_event SPRITE_LASS, 27, 11, OW_UP | $1, $2, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, LassScript_0x5c91c, EVENT_BUG_CATCHING_CONTESTANT_7A
-	person_event SPRITE_YOUNGSTER, 31, 15, OW_DOWN | $2, $11, -1, -1, (PAL_OW_RED << 4) | $80, 0, YoungsterScript_0x5c924, EVENT_BUG_CATCHING_CONTESTANT_8A
-	person_event SPRITE_YOUNGSTER, 12, 20, OW_DOWN | $2, $11, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, YoungsterScript_0x5c92c, EVENT_BUG_CATCHING_CONTESTANT_9A
-	person_event SPRITE_YOUNGSTER, 38, 21, OW_DOWN | $2, $33, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, YoungsterScript_0x5c934, EVENT_BUG_CATCHING_CONTESTANT_10A
-	person_event SPRITE_POKE_BALL, 16, 39, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x5c945, EVENT_NATIONAL_PARK_PARLYZ_HEAL
-	person_event SPRITE_POKE_BALL, 47, 5, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x5c947, EVENT_NATIONAL_PARK_TM_DIG
+	person_event SPRITE_YOUNGSTER, 33, 23, $2, 2, 2, -1, -1, 8 + PAL_OW_RED, 0, 0, YoungsterScript_0x5c8ec, EVENT_BUG_CATCHING_CONTESTANT_1A
+	person_event SPRITE_YOUNGSTER, 26, 32, $2, 2, 2, -1, -1, 8 + PAL_OW_GREEN, 0, 0, YoungsterScript_0x5c8f4, EVENT_BUG_CATCHING_CONTESTANT_2A
+	person_event SPRITE_ROCKER, 22, 13, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, RockerScript_0x5c8fc, EVENT_BUG_CATCHING_CONTESTANT_3A
+	person_event SPRITE_POKEFAN_M, 17, 11, $4, 0, 1, -1, -1, 8 + PAL_OW_BROWN, 0, 0, PokefanMScript_0x5c904, EVENT_BUG_CATCHING_CONTESTANT_4A
+	person_event SPRITE_YOUNGSTER, 13, 27, $3, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, YoungsterScript_0x5c90c, EVENT_BUG_CATCHING_CONTESTANT_5A
+	person_event SPRITE_YOUNGSTER, 17, 31, $2, 3, 3, -1, -1, 8 + PAL_OW_GREEN, 0, 0, YoungsterScript_0x5c914, EVENT_BUG_CATCHING_CONTESTANT_6A
+	person_event SPRITE_LASS, 27, 11, $5, 0, 2, -1, -1, 8 + PAL_OW_BLUE, 0, 0, LassScript_0x5c91c, EVENT_BUG_CATCHING_CONTESTANT_7A
+	person_event SPRITE_YOUNGSTER, 31, 15, $2, 1, 1, -1, -1, 8 + PAL_OW_RED, 0, 0, YoungsterScript_0x5c924, EVENT_BUG_CATCHING_CONTESTANT_8A
+	person_event SPRITE_YOUNGSTER, 12, 20, $2, 1, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 0, YoungsterScript_0x5c92c, EVENT_BUG_CATCHING_CONTESTANT_9A
+	person_event SPRITE_YOUNGSTER, 38, 21, $2, 3, 3, -1, -1, 8 + PAL_OW_BLUE, 0, 0, YoungsterScript_0x5c934, EVENT_BUG_CATCHING_CONTESTANT_10A
+	person_event SPRITE_POKE_BALL, 16, 39, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5c945, EVENT_NATIONAL_PARK_PARLYZ_HEAL
+	person_event SPRITE_POKE_BALL, 47, 5, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5c947, EVENT_NATIONAL_PARK_TM_DIG
--- a/maps/NewBarkTown.asm
+++ b/maps/NewBarkTown.asm
@@ -286,10 +286,10 @@
 
 .Warps:
 	db 4
-	warp_def $3, $6, 1, GROUP_ELMS_LAB, MAP_ELMS_LAB
-	warp_def $5, $d, 1, GROUP_KRISS_HOUSE_1F, MAP_KRISS_HOUSE_1F
-	warp_def $b, $3, 1, GROUP_KRISS_NEIGHBORS_HOUSE, MAP_KRISS_NEIGHBORS_HOUSE
-	warp_def $d, $b, 1, GROUP_ELMS_HOUSE, MAP_ELMS_HOUSE
+	warp_def $3, $6, 1, ELMS_LAB
+	warp_def $5, $d, 1, KRISS_HOUSE_1F
+	warp_def $b, $3, 1, KRISS_NEIGHBORS_HOUSE
+	warp_def $d, $b, 1, ELMS_HOUSE
 
 .XYTriggers:
 	db 2
@@ -305,6 +305,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_TEACHER, 12, 10, OW_DOWN | $3, $1, -1, -1, $0, 0, TeacherScript_0x1a806f, -1
-	person_event SPRITE_FISHER, 13, 16, OW_UP | $0, $10, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, FisherScript_0x1a809b, -1
-	person_event SPRITE_SILVER, 6, 7, OW_LEFT | $1, $0, -1, -1, $0, 0, SilverScript_0x1a809e, EVENT_RIVAL_NEW_BARK_TOWN
+	person_event SPRITE_TEACHER, 12, 10, $3, 0, 1, -1, -1, 0, 0, 0, TeacherScript_0x1a806f, -1
+	person_event SPRITE_FISHER, 13, 16, $4, 1, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, FisherScript_0x1a809b, -1
+	person_event SPRITE_SILVER, 6, 7, $9, 0, 0, -1, -1, 0, 0, 0, SilverScript_0x1a809e, EVENT_RIVAL_NEW_BARK_TOWN
--- a/maps/OaksLab.asm
+++ b/maps/OaksLab.asm
@@ -256,8 +256,8 @@
 
 .Warps:
 	db 2
-	warp_def $b, $4, 3, GROUP_PALLET_TOWN, MAP_PALLET_TOWN
-	warp_def $b, $5, 3, GROUP_PALLET_TOWN, MAP_PALLET_TOWN
+	warp_def $b, $4, 3, PALLET_TOWN
+	warp_def $b, $5, 3, PALLET_TOWN
 
 .XYTriggers:
 	db 0
@@ -283,7 +283,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_OAK, 6, 8, OW_UP | $2, $0, -1, -1, $0, 0, Oak, -1
-	person_event SPRITE_SCIENTIST, 12, 5, OW_UP | $1, $1, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ScientistScript_0x19b40f, -1
-	person_event SPRITE_SCIENTIST, 13, 12, OW_UP | $0, $10, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ScientistScript_0x19b412, -1
-	person_event SPRITE_SCIENTIST, 8, 5, OW_DOWN | $2, $11, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ScientistScript_0x19b415, -1
+	person_event SPRITE_OAK, 6, 8, $6, 0, 0, -1, -1, 0, 0, 0, Oak, -1
+	person_event SPRITE_SCIENTIST, 12, 5, $5, 0, 1, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ScientistScript_0x19b40f, -1
+	person_event SPRITE_SCIENTIST, 13, 12, $4, 1, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ScientistScript_0x19b412, -1
+	person_event SPRITE_SCIENTIST, 8, 5, $2, 1, 1, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ScientistScript_0x19b415, -1
--- a/maps/OlivineCafe.asm
+++ b/maps/OlivineCafe.asm
@@ -79,8 +79,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 7, GROUP_OLIVINE_CITY, MAP_OLIVINE_CITY
-	warp_def $7, $3, 7, GROUP_OLIVINE_CITY, MAP_OLIVINE_CITY
+	warp_def $7, $2, 7, OLIVINE_CITY
+	warp_def $7, $3, 7, OLIVINE_CITY
 
 .XYTriggers:
 	db 0
@@ -90,6 +90,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_SAILOR, 7, 8, OW_LEFT | $0, $0, -1, -1, $0, 0, SailorScript_0x9c8c1, -1
-	person_event SPRITE_FISHING_GURU, 7, 11, OW_UP | $0, $10, -1, -1, $0, 0, FishingGuruScript_0x9c8d9, -1
-	person_event SPRITE_SAILOR, 10, 10, OW_UP | $3, $0, -1, -1, $0, 0, SailorScript_0x9c8dc, -1
+	person_event SPRITE_SAILOR, 7, 8, $8, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x9c8c1, -1
+	person_event SPRITE_FISHING_GURU, 7, 11, $4, 1, 0, -1, -1, 0, 0, 0, FishingGuruScript_0x9c8d9, -1
+	person_event SPRITE_SAILOR, 10, 10, $7, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x9c8dc, -1
--- a/maps/OlivineCity.asm
+++ b/maps/OlivineCity.asm
@@ -291,17 +291,17 @@
 
 .Warps:
 	db 11
-	warp_def $15, $d, 1, GROUP_OLIVINE_POKECENTER_1F, MAP_OLIVINE_POKECENTER_1F
-	warp_def $b, $a, 1, GROUP_OLIVINE_GYM, MAP_OLIVINE_GYM
-	warp_def $b, $19, 1, GROUP_OLIVINE_VOLTORB_HOUSE, MAP_OLIVINE_VOLTORB_HOUSE
-	warp_def $0, $0, 1, GROUP_OLIVINE_HOUSE_BETA, MAP_OLIVINE_HOUSE_BETA
-	warp_def $b, $1d, 1, GROUP_OLIVINE_PUNISHMENT_SPEECH_HOUSE, MAP_OLIVINE_PUNISHMENT_SPEECH_HOUSE
-	warp_def $f, $d, 1, GROUP_OLIVINE_GOOD_ROD_HOUSE, MAP_OLIVINE_GOOD_ROD_HOUSE
-	warp_def $15, $7, 1, GROUP_OLIVINE_CAFE, MAP_OLIVINE_CAFE
-	warp_def $11, $13, 2, GROUP_OLIVINE_MART, MAP_OLIVINE_MART
-	warp_def $1b, $1d, 1, GROUP_OLIVINE_LIGHTHOUSE_1F, MAP_OLIVINE_LIGHTHOUSE_1F
-	warp_def $1b, $13, 1, GROUP_OLIVINE_PORT_PASSAGE, MAP_OLIVINE_PORT_PASSAGE
-	warp_def $1b, $14, 2, GROUP_OLIVINE_PORT_PASSAGE, MAP_OLIVINE_PORT_PASSAGE
+	warp_def $15, $d, 1, OLIVINE_POKECENTER_1F
+	warp_def $b, $a, 1, OLIVINE_GYM
+	warp_def $b, $19, 1, OLIVINE_VOLTORB_HOUSE
+	warp_def $0, $0, 1, OLIVINE_HOUSE_BETA
+	warp_def $b, $1d, 1, OLIVINE_PUNISHMENT_SPEECH_HOUSE
+	warp_def $f, $d, 1, OLIVINE_GOOD_ROD_HOUSE
+	warp_def $15, $7, 1, OLIVINE_CAFE
+	warp_def $11, $13, 2, OLIVINE_MART
+	warp_def $1b, $1d, 1, OLIVINE_LIGHTHOUSE_1F
+	warp_def $1b, $13, 1, OLIVINE_PORT_PASSAGE
+	warp_def $1b, $14, 2, OLIVINE_PORT_PASSAGE
 
 .XYTriggers:
 	db 2
@@ -320,7 +320,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_SAILOR, 31, 30, OW_UP | $0, $10, -1, -1, $0, 0, SailorScript_0x1a88a3, -1
-	person_event SPRITE_STANDING_YOUNGSTER, 17, 24, OW_DOWN | $3, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, StandingYoungsterScript_0x1a88a6, -1
-	person_event SPRITE_SAILOR, 25, 21, OW_DOWN | $2, $11, -1, -1, $0, 0, SailorScript_0x1a88ba, -1
-	person_event SPRITE_OLIVINE_RIVAL, 15, 14, OW_UP | $2, $0, -1, -1, $0, 0, ObjectEvent, EVENT_RIVAL_OLIVINE_CITY
+	person_event SPRITE_SAILOR, 31, 30, $4, 1, 0, -1, -1, 0, 0, 0, SailorScript_0x1a88a3, -1
+	person_event SPRITE_STANDING_YOUNGSTER, 17, 24, $3, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, StandingYoungsterScript_0x1a88a6, -1
+	person_event SPRITE_SAILOR, 25, 21, $2, 1, 1, -1, -1, 0, 0, 0, SailorScript_0x1a88ba, -1
+	person_event SPRITE_OLIVINE_RIVAL, 15, 14, $6, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_OLIVINE_CITY
--- a/maps/OlivineGoodRodHouse.asm
+++ b/maps/OlivineGoodRodHouse.asm
@@ -85,8 +85,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 6, GROUP_OLIVINE_CITY, MAP_OLIVINE_CITY
-	warp_def $7, $3, 6, GROUP_OLIVINE_CITY, MAP_OLIVINE_CITY
+	warp_def $7, $2, 6, OLIVINE_CITY
+	warp_def $7, $3, 6, OLIVINE_CITY
 
 .XYTriggers:
 	db 0
@@ -96,4 +96,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_FISHING_GURU, 7, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, GoodRodGuru, -1
+	person_event SPRITE_FISHING_GURU, 7, 6, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, GoodRodGuru, -1
--- a/maps/OlivineGym.asm
+++ b/maps/OlivineGym.asm
@@ -199,8 +199,8 @@
 
 .Warps:
 	db 2
-	warp_def $f, $4, 2, GROUP_OLIVINE_CITY, MAP_OLIVINE_CITY
-	warp_def $f, $5, 2, GROUP_OLIVINE_CITY, MAP_OLIVINE_CITY
+	warp_def $f, $4, 2, OLIVINE_CITY
+	warp_def $f, $5, 2, OLIVINE_CITY
 
 .XYTriggers:
 	db 0
@@ -212,5 +212,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_JASMINE, 7, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, JasmineScript_0x9c12f, EVENT_OLIVINE_GYM_JASMINE
-	person_event SPRITE_GYM_GUY, 17, 11, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, OlivineGymGuyScript, -1
+	person_event SPRITE_JASMINE, 7, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, JasmineScript_0x9c12f, EVENT_OLIVINE_GYM_JASMINE
+	person_event SPRITE_GYM_GUY, 17, 11, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, OlivineGymGuyScript, -1
--- a/maps/OlivineHouseBeta.asm
+++ b/maps/OlivineHouseBeta.asm
@@ -41,8 +41,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 4, GROUP_OLIVINE_CITY, MAP_OLIVINE_CITY
-	warp_def $7, $3, 4, GROUP_OLIVINE_CITY, MAP_OLIVINE_CITY
+	warp_def $7, $2, 4, OLIVINE_CITY
+	warp_def $7, $3, 4, OLIVINE_CITY
 
 .XYTriggers:
 	db 0
@@ -54,5 +54,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_TEACHER, 7, 6, OW_DOWN | $3, $0, -1, -1, $0, 0, TeacherScript_0x9c58f, -1
-	person_event SPRITE_RHYDON, 8, 10, OW_UP | $0, $20, -1, -1, $0, 0, RhydonScript_0x9c592, -1
+	person_event SPRITE_TEACHER, 7, 6, $3, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x9c58f, -1
+	person_event SPRITE_RHYDON, 8, 10, $4, 2, 0, -1, -1, 0, 0, 0, RhydonScript_0x9c592, -1
--- a/maps/OlivineLighthouse1F.asm
+++ b/maps/OlivineLighthouse1F.asm
@@ -38,11 +38,11 @@
 
 .Warps:
 	db 5
-	warp_def $11, $a, 9, GROUP_OLIVINE_CITY, MAP_OLIVINE_CITY
-	warp_def $11, $b, 9, GROUP_OLIVINE_CITY, MAP_OLIVINE_CITY
-	warp_def $b, $3, 1, GROUP_OLIVINE_LIGHTHOUSE_2F, MAP_OLIVINE_LIGHTHOUSE_2F
-	warp_def $d, $10, 3, GROUP_OLIVINE_LIGHTHOUSE_2F, MAP_OLIVINE_LIGHTHOUSE_2F
-	warp_def $d, $11, 4, GROUP_OLIVINE_LIGHTHOUSE_2F, MAP_OLIVINE_LIGHTHOUSE_2F
+	warp_def $11, $a, 9, OLIVINE_CITY
+	warp_def $11, $b, 9, OLIVINE_CITY
+	warp_def $b, $3, 1, OLIVINE_LIGHTHOUSE_2F
+	warp_def $d, $10, 3, OLIVINE_LIGHTHOUSE_2F
+	warp_def $d, $11, 4, OLIVINE_LIGHTHOUSE_2F
 
 .XYTriggers:
 	db 0
@@ -52,5 +52,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_SAILOR, 6, 12, OW_UP | $2, $0, -1, -1, $0, 0, SailorScript_0x5ae67, -1
-	person_event SPRITE_POKEFAN_F, 13, 20, OW_UP | $0, $20, -1, -1, $0, 0, PokefanFScript_0x5ae6a, -1
+	person_event SPRITE_SAILOR, 6, 12, $6, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x5ae67, -1
+	person_event SPRITE_POKEFAN_F, 13, 20, $4, 2, 0, -1, -1, 0, 0, 0, PokefanFScript_0x5ae6a, -1
--- a/maps/OlivineLighthouse2F.asm
+++ b/maps/OlivineLighthouse2F.asm
@@ -206,12 +206,12 @@
 
 .Warps:
 	db 6
-	warp_def $b, $3, 3, GROUP_OLIVINE_LIGHTHOUSE_1F, MAP_OLIVINE_LIGHTHOUSE_1F
-	warp_def $3, $5, 2, GROUP_OLIVINE_LIGHTHOUSE_3F, MAP_OLIVINE_LIGHTHOUSE_3F
-	warp_def $d, $10, 4, GROUP_OLIVINE_LIGHTHOUSE_1F, MAP_OLIVINE_LIGHTHOUSE_1F
-	warp_def $d, $11, 5, GROUP_OLIVINE_LIGHTHOUSE_1F, MAP_OLIVINE_LIGHTHOUSE_1F
-	warp_def $b, $10, 4, GROUP_OLIVINE_LIGHTHOUSE_3F, MAP_OLIVINE_LIGHTHOUSE_3F
-	warp_def $b, $11, 5, GROUP_OLIVINE_LIGHTHOUSE_3F, MAP_OLIVINE_LIGHTHOUSE_3F
+	warp_def $b, $3, 3, OLIVINE_LIGHTHOUSE_1F
+	warp_def $3, $5, 2, OLIVINE_LIGHTHOUSE_3F
+	warp_def $d, $10, 4, OLIVINE_LIGHTHOUSE_1F
+	warp_def $d, $11, 5, OLIVINE_LIGHTHOUSE_1F
+	warp_def $b, $10, 4, OLIVINE_LIGHTHOUSE_3F
+	warp_def $b, $11, 5, OLIVINE_LIGHTHOUSE_3F
 
 .XYTriggers:
 	db 0
@@ -221,5 +221,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_SAILOR, 7, 13, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerSailorHuey1, -1
-	person_event SPRITE_GENTLEMAN, 12, 21, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerGentlemanAlfred, -1
+	person_event SPRITE_SAILOR, 7, 13, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerSailorHuey1, -1
+	person_event SPRITE_GENTLEMAN, 12, 21, $8, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerGentlemanAlfred, -1
--- a/maps/OlivineLighthouse3F.asm
+++ b/maps/OlivineLighthouse3F.asm
@@ -112,15 +112,15 @@
 
 .Warps:
 	db 9
-	warp_def $3, $d, 1, GROUP_OLIVINE_LIGHTHOUSE_4F, MAP_OLIVINE_LIGHTHOUSE_4F
-	warp_def $3, $5, 2, GROUP_OLIVINE_LIGHTHOUSE_2F, MAP_OLIVINE_LIGHTHOUSE_2F
-	warp_def $5, $9, 4, GROUP_OLIVINE_LIGHTHOUSE_4F, MAP_OLIVINE_LIGHTHOUSE_4F
-	warp_def $b, $10, 5, GROUP_OLIVINE_LIGHTHOUSE_2F, MAP_OLIVINE_LIGHTHOUSE_2F
-	warp_def $b, $11, 6, GROUP_OLIVINE_LIGHTHOUSE_2F, MAP_OLIVINE_LIGHTHOUSE_2F
-	warp_def $9, $10, 5, GROUP_OLIVINE_LIGHTHOUSE_4F, MAP_OLIVINE_LIGHTHOUSE_4F
-	warp_def $9, $11, 6, GROUP_OLIVINE_LIGHTHOUSE_4F, MAP_OLIVINE_LIGHTHOUSE_4F
-	warp_def $3, $8, 7, GROUP_OLIVINE_LIGHTHOUSE_4F, MAP_OLIVINE_LIGHTHOUSE_4F
-	warp_def $3, $9, 8, GROUP_OLIVINE_LIGHTHOUSE_4F, MAP_OLIVINE_LIGHTHOUSE_4F
+	warp_def $3, $d, 1, OLIVINE_LIGHTHOUSE_4F
+	warp_def $3, $5, 2, OLIVINE_LIGHTHOUSE_2F
+	warp_def $5, $9, 4, OLIVINE_LIGHTHOUSE_4F
+	warp_def $b, $10, 5, OLIVINE_LIGHTHOUSE_2F
+	warp_def $b, $11, 6, OLIVINE_LIGHTHOUSE_2F
+	warp_def $9, $10, 5, OLIVINE_LIGHTHOUSE_4F
+	warp_def $9, $11, 6, OLIVINE_LIGHTHOUSE_4F
+	warp_def $3, $8, 7, OLIVINE_LIGHTHOUSE_4F
+	warp_def $3, $9, 8, OLIVINE_LIGHTHOUSE_4F
 
 .XYTriggers:
 	db 0
@@ -130,7 +130,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_SAILOR, 6, 13, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 1, TrainerSailorTerrell, -1
-	person_event SPRITE_GENTLEMAN, 9, 17, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 4, TrainerGentlemanPreston, -1
-	person_event SPRITE_YOUNGSTER, 13, 7, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerBird_keeperTheo, -1
-	person_event SPRITE_POKE_BALL, 6, 12, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x5b279, EVENT_OLIVINE_LIGHTHOUSE_3F_ETHER
+	person_event SPRITE_SAILOR, 6, 13, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 1, TrainerSailorTerrell, -1
+	person_event SPRITE_GENTLEMAN, 9, 17, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 4, TrainerGentlemanPreston, -1
+	person_event SPRITE_YOUNGSTER, 13, 7, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerBird_keeperTheo, -1
+	person_event SPRITE_POKE_BALL, 6, 12, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5b279, EVENT_OLIVINE_LIGHTHOUSE_3F_ETHER
--- a/maps/OlivineLighthouse4F.asm
+++ b/maps/OlivineLighthouse4F.asm
@@ -83,16 +83,16 @@
 
 .Warps:
 	db 10
-	warp_def $3, $d, 1, GROUP_OLIVINE_LIGHTHOUSE_3F, MAP_OLIVINE_LIGHTHOUSE_3F
-	warp_def $5, $3, 2, GROUP_OLIVINE_LIGHTHOUSE_5F, MAP_OLIVINE_LIGHTHOUSE_5F
-	warp_def $7, $9, 3, GROUP_OLIVINE_LIGHTHOUSE_5F, MAP_OLIVINE_LIGHTHOUSE_5F
-	warp_def $5, $9, 3, GROUP_OLIVINE_LIGHTHOUSE_3F, MAP_OLIVINE_LIGHTHOUSE_3F
-	warp_def $9, $10, 6, GROUP_OLIVINE_LIGHTHOUSE_3F, MAP_OLIVINE_LIGHTHOUSE_3F
-	warp_def $9, $11, 7, GROUP_OLIVINE_LIGHTHOUSE_3F, MAP_OLIVINE_LIGHTHOUSE_3F
-	warp_def $3, $8, 8, GROUP_OLIVINE_LIGHTHOUSE_3F, MAP_OLIVINE_LIGHTHOUSE_3F
-	warp_def $3, $9, 9, GROUP_OLIVINE_LIGHTHOUSE_3F, MAP_OLIVINE_LIGHTHOUSE_3F
-	warp_def $7, $10, 4, GROUP_OLIVINE_LIGHTHOUSE_5F, MAP_OLIVINE_LIGHTHOUSE_5F
-	warp_def $7, $11, 5, GROUP_OLIVINE_LIGHTHOUSE_5F, MAP_OLIVINE_LIGHTHOUSE_5F
+	warp_def $3, $d, 1, OLIVINE_LIGHTHOUSE_3F
+	warp_def $5, $3, 2, OLIVINE_LIGHTHOUSE_5F
+	warp_def $7, $9, 3, OLIVINE_LIGHTHOUSE_5F
+	warp_def $5, $9, 3, OLIVINE_LIGHTHOUSE_3F
+	warp_def $9, $10, 6, OLIVINE_LIGHTHOUSE_3F
+	warp_def $9, $11, 7, OLIVINE_LIGHTHOUSE_3F
+	warp_def $3, $8, 8, OLIVINE_LIGHTHOUSE_3F
+	warp_def $3, $9, 9, OLIVINE_LIGHTHOUSE_3F
+	warp_def $7, $10, 4, OLIVINE_LIGHTHOUSE_5F
+	warp_def $7, $11, 5, OLIVINE_LIGHTHOUSE_5F
 
 .XYTriggers:
 	db 0
@@ -102,5 +102,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_SAILOR, 18, 11, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerSailorKent, -1
-	person_event SPRITE_LASS, 6, 15, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 1, TrainerLassConnie, -1
+	person_event SPRITE_SAILOR, 18, 11, $8, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerSailorKent, -1
+	person_event SPRITE_LASS, 6, 15, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 1, TrainerLassConnie, -1
--- a/maps/OlivineLighthouse5F.asm
+++ b/maps/OlivineLighthouse5F.asm
@@ -90,13 +90,13 @@
 
 .Warps:
 	db 7
-	warp_def $f, $9, 1, GROUP_OLIVINE_LIGHTHOUSE_6F, MAP_OLIVINE_LIGHTHOUSE_6F
-	warp_def $5, $3, 2, GROUP_OLIVINE_LIGHTHOUSE_4F, MAP_OLIVINE_LIGHTHOUSE_4F
-	warp_def $7, $9, 3, GROUP_OLIVINE_LIGHTHOUSE_4F, MAP_OLIVINE_LIGHTHOUSE_4F
-	warp_def $7, $10, 9, GROUP_OLIVINE_LIGHTHOUSE_4F, MAP_OLIVINE_LIGHTHOUSE_4F
-	warp_def $7, $11, 10, GROUP_OLIVINE_LIGHTHOUSE_4F, MAP_OLIVINE_LIGHTHOUSE_4F
-	warp_def $5, $10, 2, GROUP_OLIVINE_LIGHTHOUSE_6F, MAP_OLIVINE_LIGHTHOUSE_6F
-	warp_def $5, $11, 3, GROUP_OLIVINE_LIGHTHOUSE_6F, MAP_OLIVINE_LIGHTHOUSE_6F
+	warp_def $f, $9, 1, OLIVINE_LIGHTHOUSE_6F
+	warp_def $5, $3, 2, OLIVINE_LIGHTHOUSE_4F
+	warp_def $7, $9, 3, OLIVINE_LIGHTHOUSE_4F
+	warp_def $7, $10, 9, OLIVINE_LIGHTHOUSE_4F
+	warp_def $7, $11, 10, OLIVINE_LIGHTHOUSE_4F
+	warp_def $5, $10, 2, OLIVINE_LIGHTHOUSE_6F
+	warp_def $5, $11, 3, OLIVINE_LIGHTHOUSE_6F
 
 .XYTriggers:
 	db 0
@@ -107,8 +107,8 @@
 
 .PersonEvents:
 	db 5
-	person_event SPRITE_SAILOR, 15, 12, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerSailorErnest, -1
-	person_event SPRITE_YOUNGSTER, 7, 12, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 4, TrainerBird_keeperDenis, -1
-	person_event SPRITE_POKE_BALL, 16, 19, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x609aa, EVENT_OLIVINE_LIGHTHOUSE_5F_RARE_CANDY
-	person_event SPRITE_POKE_BALL, 19, 10, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x609ac, EVENT_OLIVINE_LIGHTHOUSE_5F_SUPER_REPEL
-	person_event SPRITE_POKE_BALL, 17, 6, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x609ae, EVENT_OLIVINE_LIGHTHOUSE_5F_TM_SWAGGER
+	person_event SPRITE_SAILOR, 15, 12, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerSailorErnest, -1
+	person_event SPRITE_YOUNGSTER, 7, 12, $8, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 4, TrainerBird_keeperDenis, -1
+	person_event SPRITE_POKE_BALL, 16, 19, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x609aa, EVENT_OLIVINE_LIGHTHOUSE_5F_RARE_CANDY
+	person_event SPRITE_POKE_BALL, 19, 10, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x609ac, EVENT_OLIVINE_LIGHTHOUSE_5F_SUPER_REPEL
+	person_event SPRITE_POKE_BALL, 17, 6, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x609ae, EVENT_OLIVINE_LIGHTHOUSE_5F_TM_SWAGGER
--- a/maps/OlivineLighthouse6F.asm
+++ b/maps/OlivineLighthouse6F.asm
@@ -258,9 +258,9 @@
 
 .Warps:
 	db 3
-	warp_def $f, $9, 1, GROUP_OLIVINE_LIGHTHOUSE_5F, MAP_OLIVINE_LIGHTHOUSE_5F
-	warp_def $5, $10, 6, GROUP_OLIVINE_LIGHTHOUSE_5F, MAP_OLIVINE_LIGHTHOUSE_5F
-	warp_def $5, $11, 7, GROUP_OLIVINE_LIGHTHOUSE_5F, MAP_OLIVINE_LIGHTHOUSE_5F
+	warp_def $f, $9, 1, OLIVINE_LIGHTHOUSE_5F
+	warp_def $5, $10, 6, OLIVINE_LIGHTHOUSE_5F
+	warp_def $5, $11, 7, OLIVINE_LIGHTHOUSE_5F
 
 .XYTriggers:
 	db 0
@@ -270,6 +270,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_JASMINE, 12, 12, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, JasmineScript_0x60b91, EVENT_OLIVINE_LIGHTHOUSE_JASMINE
-	person_event SPRITE_MONSTER, 12, 13, OW_UP | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, MonsterScript_0x60c3a, -1
-	person_event SPRITE_POKE_BALL, 8, 7, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x60c66, EVENT_OLIVINE_LIGHTHOUSE_6F_SUPER_POTION
+	person_event SPRITE_JASMINE, 12, 12, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, JasmineScript_0x60b91, EVENT_OLIVINE_LIGHTHOUSE_JASMINE
+	person_event SPRITE_MONSTER, 12, 13, $6, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, MonsterScript_0x60c3a, -1
+	person_event SPRITE_POKE_BALL, 8, 7, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x60c66, EVENT_OLIVINE_LIGHTHOUSE_6F_SUPER_POTION
--- a/maps/OlivineMart.asm
+++ b/maps/OlivineMart.asm
@@ -46,8 +46,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 8, GROUP_OLIVINE_CITY, MAP_OLIVINE_CITY
-	warp_def $7, $3, 8, GROUP_OLIVINE_CITY, MAP_OLIVINE_CITY
+	warp_def $7, $2, 8, OLIVINE_CITY
+	warp_def $7, $3, 8, OLIVINE_CITY
 
 .XYTriggers:
 	db 0
@@ -57,6 +57,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 7, 5, OW_LEFT | $1, $0, -1, -1, $0, 0, ClerkScript_0x9cac7, -1
-	person_event SPRITE_COOLTRAINER_F, 6, 10, OW_UP | $1, $2, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, CooltrainerFScript_0x9cace, -1
-	person_event SPRITE_LASS, 10, 5, OW_LEFT | $0, $0, -1, -1, $0, 0, LassScript_0x9cad1, -1
+	person_event SPRITE_CLERK, 7, 5, $9, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x9cac7, -1
+	person_event SPRITE_COOLTRAINER_F, 6, 10, $5, 0, 2, -1, -1, 8 + PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x9cace, -1
+	person_event SPRITE_LASS, 10, 5, $8, 0, 0, -1, -1, 0, 0, 0, LassScript_0x9cad1, -1
--- a/maps/OlivinePokeCenter1F.asm
+++ b/maps/OlivinePokeCenter1F.asm
@@ -47,9 +47,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $3, 1, GROUP_OLIVINE_CITY, MAP_OLIVINE_CITY
-	warp_def $7, $4, 1, GROUP_OLIVINE_CITY, MAP_OLIVINE_CITY
-	warp_def $7, $0, 1, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
+	warp_def $7, $3, 1, OLIVINE_CITY
+	warp_def $7, $4, 1, OLIVINE_CITY
+	warp_def $7, $0, 1, POKECENTER_2F
 
 .XYTriggers:
 	db 0
@@ -59,7 +59,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_NURSE, 5, 7, OW_UP | $2, $0, -1, -1, $0, 0, NurseScript_0x9c002, -1
-	person_event SPRITE_FISHING_GURU, 8, 12, OW_UP | $1, $1, -1, -1, $0, 0, FishingGuruScript_0x9c005, -1
-	person_event SPRITE_FISHER, 7, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, FisherScript_0x9c008, -1
-	person_event SPRITE_TEACHER, 5, 11, OW_UP | $2, $0, -1, -1, $0, 0, TeacherScript_0x9c00b, -1
+	person_event SPRITE_NURSE, 5, 7, $6, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x9c002, -1
+	person_event SPRITE_FISHING_GURU, 8, 12, $5, 0, 1, -1, -1, 0, 0, 0, FishingGuruScript_0x9c005, -1
+	person_event SPRITE_FISHER, 7, 6, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, FisherScript_0x9c008, -1
+	person_event SPRITE_TEACHER, 5, 11, $6, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x9c00b, -1
--- a/maps/OlivinePort.asm
+++ b/maps/OlivinePort.asm
@@ -21,7 +21,7 @@
 	appear $2
 	dotrigger $0
 	setevent EVENT_GAVE_KURT_APRICORNS
-	blackoutmod GROUP_OLIVINE_CITY, MAP_OLIVINE_CITY
+	blackoutmod OLIVINE_CITY
 	end
 
 SailorScript_0x748c0:
@@ -57,8 +57,8 @@
 UnknownScript_0x7490a:
 	clearevent EVENT_FAST_SHIP_DESTINATION_OLIVINE
 	appear $2
-	domaptrigger GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F, $1
-	warp GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F, $19, $1
+	domaptrigger FAST_SHIP_1F, $1
+	warp FAST_SHIP_1F, $19, $1
 	end
 
 UnknownScript_0x74919:
@@ -384,8 +384,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $b, 5, GROUP_OLIVINE_PORT_PASSAGE, MAP_OLIVINE_PORT_PASSAGE
-	warp_def $17, $7, 1, GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F
+	warp_def $7, $b, 5, OLIVINE_PORT_PASSAGE
+	warp_def $17, $7, 1, FAST_SHIP_1F
 
 .XYTriggers:
 	db 1
@@ -397,10 +397,10 @@
 
 .PersonEvents:
 	db 7
-	person_event SPRITE_SAILOR, 27, 11, OW_UP | $3, $0, -1, -1, $0, 0, SailorScript_0x748c0, EVENT_OLIVINE_PORT_SAILOR_AT_GANGWAY
-	person_event SPRITE_SAILOR, 19, 11, OW_UP | $3, $0, -1, -1, $0, 0, SailorScript_0x749fe, EVENT_OLIVINE_PORT_SPRITES_BEFORE_HALL_OF_FAME
-	person_event SPRITE_SAILOR, 19, 10, OW_LEFT | $1, $0, -1, -1, $0, 0, SailorScript_0x7499c, EVENT_OLIVINE_PORT_SPRITES_AFTER_HALL_OF_FAME
-	person_event SPRITE_FISHING_GURU, 18, 8, OW_UP | $3, $0, -1, -1, $0, 0, FishingGuruScript_0x74a01, EVENT_OLIVINE_PORT_SPRITES_BEFORE_HALL_OF_FAME
-	person_event SPRITE_FISHING_GURU, 18, 17, OW_UP | $3, $0, -1, -1, $0, 0, FishingGuruScript_0x74a0c, EVENT_OLIVINE_PORT_SPRITES_BEFORE_HALL_OF_FAME
-	person_event SPRITE_YOUNGSTER, 19, 8, OW_UP | $2, $0, -1, -1, $0, 0, YoungsterScript_0x74a17, EVENT_OLIVINE_PORT_SPRITES_AFTER_HALL_OF_FAME
-	person_event SPRITE_COOLTRAINER_F, 19, 15, OW_UP | $2, $0, -1, -1, $0, 0, CooltrainerFScript_0x74a22, EVENT_OLIVINE_PORT_SPRITES_AFTER_HALL_OF_FAME
+	person_event SPRITE_SAILOR, 27, 11, $7, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x748c0, EVENT_OLIVINE_PORT_SAILOR_AT_GANGWAY
+	person_event SPRITE_SAILOR, 19, 11, $7, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x749fe, EVENT_OLIVINE_PORT_SPRITES_BEFORE_HALL_OF_FAME
+	person_event SPRITE_SAILOR, 19, 10, $9, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x7499c, EVENT_OLIVINE_PORT_SPRITES_AFTER_HALL_OF_FAME
+	person_event SPRITE_FISHING_GURU, 18, 8, $7, 0, 0, -1, -1, 0, 0, 0, FishingGuruScript_0x74a01, EVENT_OLIVINE_PORT_SPRITES_BEFORE_HALL_OF_FAME
+	person_event SPRITE_FISHING_GURU, 18, 17, $7, 0, 0, -1, -1, 0, 0, 0, FishingGuruScript_0x74a0c, EVENT_OLIVINE_PORT_SPRITES_BEFORE_HALL_OF_FAME
+	person_event SPRITE_YOUNGSTER, 19, 8, $6, 0, 0, -1, -1, 0, 0, 0, YoungsterScript_0x74a17, EVENT_OLIVINE_PORT_SPRITES_AFTER_HALL_OF_FAME
+	person_event SPRITE_COOLTRAINER_F, 19, 15, $6, 0, 0, -1, -1, 0, 0, 0, CooltrainerFScript_0x74a22, EVENT_OLIVINE_PORT_SPRITES_AFTER_HALL_OF_FAME
--- a/maps/OlivinePortPassage.asm
+++ b/maps/OlivinePortPassage.asm
@@ -22,11 +22,11 @@
 
 .Warps:
 	db 5
-	warp_def $0, $f, 10, GROUP_OLIVINE_CITY, MAP_OLIVINE_CITY
-	warp_def $0, $10, 11, GROUP_OLIVINE_CITY, MAP_OLIVINE_CITY
-	warp_def $4, $f, 4, GROUP_OLIVINE_PORT_PASSAGE, MAP_OLIVINE_PORT_PASSAGE
-	warp_def $2, $3, 3, GROUP_OLIVINE_PORT_PASSAGE, MAP_OLIVINE_PORT_PASSAGE
-	warp_def $e, $3, 1, GROUP_OLIVINE_PORT, MAP_OLIVINE_PORT
+	warp_def $0, $f, 10, OLIVINE_CITY
+	warp_def $0, $10, 11, OLIVINE_CITY
+	warp_def $4, $f, 4, OLIVINE_PORT_PASSAGE
+	warp_def $2, $3, 3, OLIVINE_PORT_PASSAGE
+	warp_def $e, $3, 1, OLIVINE_PORT
 
 .XYTriggers:
 	db 0
@@ -36,4 +36,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_POKEFAN_M, 5, 21, OW_LEFT | $0, $0, -1, -1, $0, 0, PokefanMScript_0x76fac, EVENT_OLIVINE_PORT_PASSAGE_POKEFAN_M
+	person_event SPRITE_POKEFAN_M, 5, 21, $8, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x76fac, EVENT_OLIVINE_PORT_PASSAGE_POKEFAN_M
--- a/maps/OlivinePunishmentSpeechHouse.asm
+++ b/maps/OlivinePunishmentSpeechHouse.asm
@@ -41,8 +41,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 5, GROUP_OLIVINE_CITY, MAP_OLIVINE_CITY
-	warp_def $7, $3, 5, GROUP_OLIVINE_CITY, MAP_OLIVINE_CITY
+	warp_def $7, $2, 5, OLIVINE_CITY
+	warp_def $7, $3, 5, OLIVINE_CITY
 
 .XYTriggers:
 	db 0
@@ -54,5 +54,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_POKEFAN_M, 6, 5, OW_DOWN | $3, $0, -1, -1, $0, 0, OlivinePunishmentSpeechHouseDad, -1
-	person_event SPRITE_LASS, 9, 9, OW_UP | $1, $2, -1, -1, $0, 0, OlivinePunishmentSpeechHouseDaughter, -1
+	person_event SPRITE_POKEFAN_M, 6, 5, $3, 0, 0, -1, -1, 0, 0, 0, OlivinePunishmentSpeechHouseDad, -1
+	person_event SPRITE_LASS, 9, 9, $5, 0, 2, -1, -1, 0, 0, 0, OlivinePunishmentSpeechHouseDaughter, -1
--- a/maps/OlivineVoltorbHouse.asm
+++ b/maps/OlivineVoltorbHouse.asm
@@ -22,8 +22,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 3, GROUP_OLIVINE_CITY, MAP_OLIVINE_CITY
-	warp_def $7, $3, 3, GROUP_OLIVINE_CITY, MAP_OLIVINE_CITY
+	warp_def $7, $2, 3, OLIVINE_CITY
+	warp_def $7, $3, 3, OLIVINE_CITY
 
 .XYTriggers:
 	db 0
@@ -35,4 +35,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_FISHING_GURU, 7, 6, OW_DOWN | $3, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, Tim, -1
+	person_event SPRITE_FISHING_GURU, 7, 6, $3, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, Tim, -1
--- a/maps/PalletTown.asm
+++ b/maps/PalletTown.asm
@@ -73,9 +73,9 @@
 
 .Warps:
 	db 3
-	warp_def $5, $5, 1, GROUP_REDS_HOUSE_1F, MAP_REDS_HOUSE_1F
-	warp_def $5, $d, 1, GROUP_BLUES_HOUSE, MAP_BLUES_HOUSE
-	warp_def $b, $c, 1, GROUP_OAKS_LAB, MAP_OAKS_LAB
+	warp_def $5, $5, 1, REDS_HOUSE_1F
+	warp_def $5, $d, 1, BLUES_HOUSE
+	warp_def $b, $c, 1, OAKS_LAB
 
 .XYTriggers:
 	db 0
@@ -89,5 +89,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_TEACHER, 12, 7, OW_DOWN | $2, $22, -1, -1, $0, 0, TeacherScript_0x1ac6d5, -1
-	person_event SPRITE_FISHER, 18, 16, OW_UP | $1, $2, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, FisherScript_0x1ac6d8, -1
+	person_event SPRITE_TEACHER, 12, 7, $2, 2, 2, -1, -1, 0, 0, 0, TeacherScript_0x1ac6d5, -1
+	person_event SPRITE_FISHER, 18, 16, $5, 0, 2, -1, -1, 8 + PAL_OW_GREEN, 0, 0, FisherScript_0x1ac6d8, -1
--- a/maps/PewterCity.asm
+++ b/maps/PewterCity.asm
@@ -153,11 +153,11 @@
 
 .Warps:
 	db 5
-	warp_def $d, $1d, 1, GROUP_PEWTER_NIDORAN_SPEECH_HOUSE, MAP_PEWTER_NIDORAN_SPEECH_HOUSE
-	warp_def $11, $10, 1, GROUP_PEWTER_GYM, MAP_PEWTER_GYM
-	warp_def $11, $17, 2, GROUP_PEWTER_MART, MAP_PEWTER_MART
-	warp_def $19, $d, 1, GROUP_PEWTER_POKECENTER_1F, MAP_PEWTER_POKECENTER_1F
-	warp_def $1d, $7, 1, GROUP_PEWTER_SNOOZE_SPEECH_HOUSE, MAP_PEWTER_SNOOZE_SPEECH_HOUSE
+	warp_def $d, $1d, 1, PEWTER_NIDORAN_SPEECH_HOUSE
+	warp_def $11, $10, 1, PEWTER_GYM
+	warp_def $11, $17, 2, PEWTER_MART
+	warp_def $19, $d, 1, PEWTER_POKECENTER_1F
+	warp_def $1d, $7, 1, PEWTER_SNOOZE_SPEECH_HOUSE
 
 .XYTriggers:
 	db 0
@@ -174,8 +174,8 @@
 
 .PersonEvents:
 	db 5
-	person_event SPRITE_COOLTRAINER_F, 15, 23, OW_DOWN | $2, $22, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, CooltrainerFScript_0x18c009, -1
-	person_event SPRITE_BUG_CATCHER, 33, 18, OW_DOWN | $2, $22, -1, -1, (PAL_OW_RED << 4) | $80, 0, BugCatcherScript_0x18c00c, -1
-	person_event SPRITE_GRAMPS, 21, 33, OW_UP | $1, $2, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, GrampsScript_0x18c00f, -1
-	person_event SPRITE_FRUIT_TREE, 7, 36, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x18c03e, -1
-	person_event SPRITE_FRUIT_TREE, 7, 34, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x18c040, -1
+	person_event SPRITE_COOLTRAINER_F, 15, 23, $2, 2, 2, -1, -1, 8 + PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x18c009, -1
+	person_event SPRITE_BUG_CATCHER, 33, 18, $2, 2, 2, -1, -1, 8 + PAL_OW_RED, 0, 0, BugCatcherScript_0x18c00c, -1
+	person_event SPRITE_GRAMPS, 21, 33, $5, 0, 2, -1, -1, 8 + PAL_OW_BLUE, 0, 0, GrampsScript_0x18c00f, -1
+	person_event SPRITE_FRUIT_TREE, 7, 36, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x18c03e, -1
+	person_event SPRITE_FRUIT_TREE, 7, 34, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x18c040, -1
--- a/maps/PewterGym.asm
+++ b/maps/PewterGym.asm
@@ -209,8 +209,8 @@
 
 .Warps:
 	db 2
-	warp_def $d, $4, 2, GROUP_PEWTER_CITY, MAP_PEWTER_CITY
-	warp_def $d, $5, 2, GROUP_PEWTER_CITY, MAP_PEWTER_CITY
+	warp_def $d, $4, 2, PEWTER_CITY
+	warp_def $d, $5, 2, PEWTER_CITY
 
 .XYTriggers:
 	db 0
@@ -222,6 +222,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_BROCK, 5, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, BrockScript_0x1a2864, -1
-	person_event SPRITE_YOUNGSTER, 9, 6, OW_LEFT | $1, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 3, TrainerCamperJerry, -1
-	person_event SPRITE_GYM_GUY, 15, 10, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 1, PewterGymGuyScript, -1
+	person_event SPRITE_BROCK, 5, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, BrockScript_0x1a2864, -1
+	person_event SPRITE_YOUNGSTER, 9, 6, $9, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 3, TrainerCamperJerry, -1
+	person_event SPRITE_GYM_GUY, 15, 10, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 1, PewterGymGuyScript, -1
--- a/maps/PewterMart.asm
+++ b/maps/PewterMart.asm
@@ -46,8 +46,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 3, GROUP_PEWTER_CITY, MAP_PEWTER_CITY
-	warp_def $7, $3, 3, GROUP_PEWTER_CITY, MAP_PEWTER_CITY
+	warp_def $7, $2, 3, PEWTER_CITY
+	warp_def $7, $3, 3, PEWTER_CITY
 
 .XYTriggers:
 	db 0
@@ -57,6 +57,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 7, 5, OW_LEFT | $1, $0, -1, -1, $0, 0, ClerkScript_0x1a2dcb, -1
-	person_event SPRITE_YOUNGSTER, 6, 13, OW_UP | $1, $2, -1, -1, $0, 0, YoungsterScript_0x1a2dd2, -1
-	person_event SPRITE_SUPER_NERD, 10, 10, OW_DOWN | $3, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, SuperNerdScript_0x1a2dd5, -1
+	person_event SPRITE_CLERK, 7, 5, $9, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x1a2dcb, -1
+	person_event SPRITE_YOUNGSTER, 6, 13, $5, 0, 2, -1, -1, 0, 0, 0, YoungsterScript_0x1a2dd2, -1
+	person_event SPRITE_SUPER_NERD, 10, 10, $3, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, SuperNerdScript_0x1a2dd5, -1
--- a/maps/PewterNidoranSpeechHouse.asm
+++ b/maps/PewterNidoranSpeechHouse.asm
@@ -30,8 +30,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 1, GROUP_PEWTER_CITY, MAP_PEWTER_CITY
-	warp_def $7, $3, 1, GROUP_PEWTER_CITY, MAP_PEWTER_CITY
+	warp_def $7, $2, 1, PEWTER_CITY
+	warp_def $7, $3, 1, PEWTER_CITY
 
 .XYTriggers:
 	db 0
@@ -41,5 +41,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_SUPER_NERD, 9, 7, OW_LEFT | $1, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, SuperNerdScript_0x1a2807, -1
-	person_event SPRITE_GROWLITHE, 9, 8, OW_UP | $12, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, GrowlitheScript_0x1a280a, -1
+	person_event SPRITE_SUPER_NERD, 9, 7, $9, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, SuperNerdScript_0x1a2807, -1
+	person_event SPRITE_GROWLITHE, 9, 8, $16, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, GrowlitheScript_0x1a280a, -1
--- a/maps/PewterPokeCEnter2FBeta.asm
+++ b/maps/PewterPokeCEnter2FBeta.asm
@@ -11,7 +11,7 @@
 
 .Warps:
 	db 1
-	warp_def $7, $0, 3, GROUP_PEWTER_POKECENTER_1F, MAP_PEWTER_POKECENTER_1F
+	warp_def $7, $0, 3, PEWTER_POKECENTER_1F
 
 .XYTriggers:
 	db 0
--- a/maps/PewterPokeCenter1F.asm
+++ b/maps/PewterPokeCenter1F.asm
@@ -66,9 +66,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $3, 4, GROUP_PEWTER_CITY, MAP_PEWTER_CITY
-	warp_def $7, $4, 4, GROUP_PEWTER_CITY, MAP_PEWTER_CITY
-	warp_def $7, $0, 1, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
+	warp_def $7, $3, 4, PEWTER_CITY
+	warp_def $7, $4, 4, PEWTER_CITY
+	warp_def $7, $0, 1, POKECENTER_2F
 
 .XYTriggers:
 	db 0
@@ -78,8 +78,8 @@
 
 .PersonEvents:
 	db 5
-	person_event SPRITE_NURSE, 5, 7, OW_UP | $2, $0, -1, -1, $0, 0, NurseScript_0x1a2ee7, -1
-	person_event SPRITE_TEACHER, 10, 12, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, TeacherScript_0x1a2eea, -1
-	person_event SPRITE_JIGGLYPUFF, 7, 5, OW_UP | $12, $0, -1, -1, $0, 0, JigglypuffScript_0x1a2eed, -1
-	person_event SPRITE_BUG_CATCHER, 7, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, BugCatcherScript_0x1a2ef7, -1
-	person_event SPRITE_POKEFAN_M, 6, 11, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, PokefanMScript_0x1a2efa, -1
+	person_event SPRITE_NURSE, 5, 7, $6, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x1a2ee7, -1
+	person_event SPRITE_TEACHER, 10, 12, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, TeacherScript_0x1a2eea, -1
+	person_event SPRITE_JIGGLYPUFF, 7, 5, $16, 0, 0, -1, -1, 0, 0, 0, JigglypuffScript_0x1a2eed, -1
+	person_event SPRITE_BUG_CATCHER, 7, 6, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, BugCatcherScript_0x1a2ef7, -1
+	person_event SPRITE_POKEFAN_M, 6, 11, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, PokefanMScript_0x1a2efa, -1
--- a/maps/PewterSnoozeSpeechHouse.asm
+++ b/maps/PewterSnoozeSpeechHouse.asm
@@ -23,8 +23,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 5, GROUP_PEWTER_CITY, MAP_PEWTER_CITY
-	warp_def $7, $3, 5, GROUP_PEWTER_CITY, MAP_PEWTER_CITY
+	warp_def $7, $2, 5, PEWTER_CITY
+	warp_def $7, $3, 5, PEWTER_CITY
 
 .XYTriggers:
 	db 0
@@ -36,4 +36,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_GRAMPS, 7, 9, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, GrampsScript_0x1a3059, -1
+	person_event SPRITE_GRAMPS, 7, 9, $8, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, GrampsScript_0x1a3059, -1
--- a/maps/PokeCenter2F.asm
+++ b/maps/PokeCenter2F.asm
@@ -373,7 +373,7 @@
 	special Special_AbortLink
 	scall Script_CleanUpFemaleFlagAfterTrade
 	dotrigger $0
-	domaptrigger GROUP_TRADE_CENTER, MAP_TRADE_CENTER, $0
+	domaptrigger TRADE_CENTER, $0
 	end
 
 Script_LeftMobileTradeRoom:
@@ -380,7 +380,7 @@
 	special Function101220
 	scall Script_WalkOutOfMobileTradeRoom
 	dotrigger $0
-	domaptrigger GROUP_MOBILE_TRADE_ROOM_MOBILE, MAP_MOBILE_TRADE_ROOM_MOBILE, $0
+	domaptrigger MOBILE_TRADE_ROOM_MOBILE, $0
 	end
 
 Script_WalkOutOfMobileTradeRoom:
@@ -393,7 +393,7 @@
 	special Special_AbortLink
 	scall Script_CleanUpFemaleFlagAfterBattle
 	dotrigger $0
-	domaptrigger GROUP_COLOSSEUM, MAP_COLOSSEUM, $0
+	domaptrigger COLOSSEUM, $0
 	end
 
 Script_LeftMobileBattleRoom:
@@ -400,7 +400,7 @@
 	special Function101220
 	scall Script_WalkOutOfMobileBattleRoom
 	dotrigger $0
-	domaptrigger GROUP_MOBILE_BATTLE_ROOM, MAP_MOBILE_BATTLE_ROOM, $0
+	domaptrigger MOBILE_BATTLE_ROOM, $0
 	end
 
 Script_WalkOutOfMobileBattleRoom:
@@ -576,7 +576,7 @@
 	applymovement $4, MovementData_0x192d01
 .Done:
 	dotrigger $0
-	domaptrigger GROUP_TIME_CAPSULE, MAP_TIME_CAPSULE, $0
+	domaptrigger TIME_CAPSULE, $0
 	end
 
 MapPokeCenter2FSignpost0Script:
@@ -1024,12 +1024,12 @@
 
 .Warps:
 	db 6
-	warp_def $7, $0, -1, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
-	warp_def $0, $5, 1, GROUP_TRADE_CENTER, MAP_TRADE_CENTER
-	warp_def $0, $9, 1, GROUP_COLOSSEUM, MAP_COLOSSEUM
-	warp_def $2, $d, 1, GROUP_TIME_CAPSULE, MAP_TIME_CAPSULE
-	warp_def $0, $6, 1, GROUP_MOBILE_TRADE_ROOM_MOBILE, MAP_MOBILE_TRADE_ROOM_MOBILE
-	warp_def $0, $a, 1, GROUP_MOBILE_BATTLE_ROOM, MAP_MOBILE_BATTLE_ROOM
+	warp_def $7, $0, -1, POKECENTER_2F
+	warp_def $0, $5, 1, TRADE_CENTER
+	warp_def $0, $9, 1, COLOSSEUM
+	warp_def $2, $d, 1, TIME_CAPSULE
+	warp_def $0, $6, 1, MOBILE_TRADE_ROOM_MOBILE
+	warp_def $0, $a, 1, MOBILE_BATTLE_ROOM
 
 .XYTriggers:
 	db 0
@@ -1040,7 +1040,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_LINK_RECEPTIONIST, 6, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, LinkReceptionistScript_Trade, -1
-	person_event SPRITE_LINK_RECEPTIONIST, 6, 13, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, LinkReceptionistScript_Battle, -1
-	person_event SPRITE_LINK_RECEPTIONIST, 7, 17, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, LinkReceptionistScript_TimeCapsule, -1
-	person_event SPRITE_OFFICER, 5, 5, OW_UP | $2, $0, -1, -1, $0, 0, OfficerScript_0x192c9a, EVENT_MYSTERY_GIFT_DELIVERY_GUY
+	person_event SPRITE_LINK_RECEPTIONIST, 6, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, LinkReceptionistScript_Trade, -1
+	person_event SPRITE_LINK_RECEPTIONIST, 6, 13, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, LinkReceptionistScript_Battle, -1
+	person_event SPRITE_LINK_RECEPTIONIST, 7, 17, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, LinkReceptionistScript_TimeCapsule, -1
+	person_event SPRITE_OFFICER, 5, 5, $6, 0, 0, -1, -1, 0, 0, 0, OfficerScript_0x192c9a, EVENT_MYSTERY_GIFT_DELIVERY_GUY
--- a/maps/PokeSeersHouse.asm
+++ b/maps/PokeSeersHouse.asm
@@ -19,8 +19,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 7, GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY
-	warp_def $7, $3, 7, GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY
+	warp_def $7, $2, 7, CIANWOOD_CITY
+	warp_def $7, $3, 7, CIANWOOD_CITY
 
 .XYTriggers:
 	db 0
@@ -30,4 +30,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_GRANNY, 7, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, SeerScript, -1
+	person_event SPRITE_GRANNY, 7, 6, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, SeerScript, -1
--- a/maps/PokemonFanClub.asm
+++ b/maps/PokemonFanClub.asm
@@ -294,8 +294,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 3, GROUP_VERMILION_CITY, MAP_VERMILION_CITY
-	warp_def $7, $3, 3, GROUP_VERMILION_CITY, MAP_VERMILION_CITY
+	warp_def $7, $2, 3, VERMILION_CITY
+	warp_def $7, $3, 3, VERMILION_CITY
 
 .XYTriggers:
 	db 0
@@ -307,9 +307,9 @@
 
 .PersonEvents:
 	db 6
-	person_event SPRITE_GENTLEMAN, 5, 7, OW_UP | $2, $0, -1, -1, $0, 0, GentlemanScript_0x1917e9, -1
-	person_event SPRITE_RECEPTIONIST, 5, 8, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, ReceptionistScript_0x191821, -1
-	person_event SPRITE_FISHER, 7, 6, OW_LEFT | $1, $0, -1, -1, $0, 0, FisherScript_0x191824, -1
-	person_event SPRITE_TEACHER, 6, 11, OW_LEFT | $0, $0, -1, -1, $0, 0, TeacherScript_0x19186b, -1
-	person_event SPRITE_FAIRY, 8, 6, OW_UP | $2, $0, -1, -1, $0, 0, FairyScript_0x19186e, EVENT_VERMILION_FAN_CLUB_DOLL
-	person_event SPRITE_ODDISH, 7, 11, OW_UP | $12, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, OddishScript_0x191871, -1
+	person_event SPRITE_GENTLEMAN, 5, 7, $6, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x1917e9, -1
+	person_event SPRITE_RECEPTIONIST, 5, 8, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, ReceptionistScript_0x191821, -1
+	person_event SPRITE_FISHER, 7, 6, $9, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x191824, -1
+	person_event SPRITE_TEACHER, 6, 11, $8, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x19186b, -1
+	person_event SPRITE_FAIRY, 8, 6, $6, 0, 0, -1, -1, 0, 0, 0, FairyScript_0x19186e, EVENT_VERMILION_FAN_CLUB_DOLL
+	person_event SPRITE_ODDISH, 7, 11, $16, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, OddishScript_0x191871, -1
--- a/maps/PowerPlant.asm
+++ b/maps/PowerPlant.asm
@@ -141,7 +141,7 @@
 	setevent EVENT_MET_MANAGER_AT_POWER_PLANT
 	clearevent EVENT_CERULEAN_GYM_ROCKET
 	clearevent EVENT_FOUND_MACHINE_PART_IN_CERULEAN_GYM
-	domaptrigger GROUP_CERULEAN_GYM, MAP_CERULEAN_GYM, $1
+	domaptrigger CERULEAN_GYM, $1
 	dotrigger $1
 	end
 
@@ -387,8 +387,8 @@
 
 .Warps:
 	db 2
-	warp_def $11, $2, 2, GROUP_ROUTE_10_NORTH, MAP_ROUTE_10_NORTH
-	warp_def $11, $3, 2, GROUP_ROUTE_10_NORTH, MAP_ROUTE_10_NORTH
+	warp_def $11, $2, 2, ROUTE_10_NORTH
+	warp_def $11, $3, 2, ROUTE_10_NORTH
 
 .XYTriggers:
 	db 1
@@ -401,10 +401,10 @@
 
 .PersonEvents:
 	db 7
-	person_event SPRITE_OFFICER, 18, 8, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, OfficerScript_0x188df5, -1
-	person_event SPRITE_GYM_GUY, 13, 6, OW_DOWN | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, GymGuyScript_0x188e15, -1
-	person_event SPRITE_GYM_GUY, 15, 10, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, GymGuyScript_0x188e29, -1
-	person_event SPRITE_OFFICER, 7, 13, OW_LEFT | $0, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, OfficerScript_0x188e3d, -1
-	person_event SPRITE_GYM_GUY, 6, 11, OW_UP | $1, $1, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, GymGuyScript_0x188e51, -1
-	person_event SPRITE_FISHER, 14, 18, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, PowerPlantManager, -1
-	person_event SPRITE_GYM_GUY, 9, 9, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, GymGuyScript_0x188ecb, -1
+	person_event SPRITE_OFFICER, 18, 8, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, OfficerScript_0x188df5, -1
+	person_event SPRITE_GYM_GUY, 13, 6, $3, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, GymGuyScript_0x188e15, -1
+	person_event SPRITE_GYM_GUY, 15, 10, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, GymGuyScript_0x188e29, -1
+	person_event SPRITE_OFFICER, 7, 13, $8, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, OfficerScript_0x188e3d, -1
+	person_event SPRITE_GYM_GUY, 6, 11, $5, 0, 1, -1, -1, 8 + PAL_OW_BLUE, 0, 0, GymGuyScript_0x188e51, -1
+	person_event SPRITE_FISHER, 14, 18, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, PowerPlantManager, -1
+	person_event SPRITE_GYM_GUY, 9, 9, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, GymGuyScript_0x188ecb, -1
--- a/maps/RadioTower1F.asm
+++ b/maps/RadioTower1F.asm
@@ -470,9 +470,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $2, 11, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
-	warp_def $7, $3, 11, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
-	warp_def $0, $f, 2, GROUP_RADIO_TOWER_2F, MAP_RADIO_TOWER_2F
+	warp_def $7, $2, 11, GOLDENROD_CITY
+	warp_def $7, $3, 11, GOLDENROD_CITY
+	warp_def $0, $f, 2, RADIO_TOWER_2F
 
 .XYTriggers:
 	db 0
@@ -484,9 +484,9 @@
 
 .PersonEvents:
 	db 6
-	person_event SPRITE_RECEPTIONIST, 10, 9, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, ReceptionistScript_0x5cd29, -1
-	person_event SPRITE_LASS, 8, 20, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, LassScript_0x5ce51, EVENT_GOLDENROD_CITY_CIVILIANS
-	person_event SPRITE_YOUNGSTER, 8, 19, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, YoungsterScript_0x5ce54, EVENT_GOLDENROD_CITY_CIVILIANS
-	person_event SPRITE_ROCKET, 5, 18, OW_UP | $2, $0, -1, -1, $2, 3, TrainerGruntM3, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
-	person_event SPRITE_GENTLEMAN, 10, 12, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, GentlemanScript_0x5cd3d, EVENT_GOLDENROD_CITY_CIVILIANS
-	person_event SPRITE_COOLTRAINER_F, 10, 16, OW_UP | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, CooltrainerFScript_0x5cdd5, EVENT_GOLDENROD_CITY_CIVILIANS
+	person_event SPRITE_RECEPTIONIST, 10, 9, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, ReceptionistScript_0x5cd29, -1
+	person_event SPRITE_LASS, 8, 20, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, LassScript_0x5ce51, EVENT_GOLDENROD_CITY_CIVILIANS
+	person_event SPRITE_YOUNGSTER, 8, 19, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, YoungsterScript_0x5ce54, EVENT_GOLDENROD_CITY_CIVILIANS
+	person_event SPRITE_ROCKET, 5, 18, $6, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM3, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_GENTLEMAN, 10, 12, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, GentlemanScript_0x5cd3d, EVENT_GOLDENROD_CITY_CIVILIANS
+	person_event SPRITE_COOLTRAINER_F, 10, 16, $7, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x5cdd5, EVENT_GOLDENROD_CITY_CIVILIANS
--- a/maps/RadioTower2F.asm
+++ b/maps/RadioTower2F.asm
@@ -703,8 +703,8 @@
 
 .Warps:
 	db 2
-	warp_def $0, $0, 1, GROUP_RADIO_TOWER_3F, MAP_RADIO_TOWER_3F
-	warp_def $0, $f, 3, GROUP_RADIO_TOWER_1F, MAP_RADIO_TOWER_1F
+	warp_def $0, $0, 1, RADIO_TOWER_3F
+	warp_def $0, $f, 3, RADIO_TOWER_1F
 
 .XYTriggers:
 	db 0
@@ -720,14 +720,14 @@
 
 .PersonEvents:
 	db 11
-	person_event SPRITE_SUPER_NERD, 10, 10, OW_LEFT | $0, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, SuperNerdScript_0x5d6fe, EVENT_GOLDENROD_CITY_CIVILIANS
-	person_event SPRITE_TEACHER, 6, 21, OW_UP | $1, $1, -1, -1, (PAL_OW_RED << 4) | $80, 0, TeacherScript_0x5d701, -1
-	person_event SPRITE_ROCKET, 8, 5, OW_UP | $3, $0, -1, -1, $2, 3, TrainerGruntM4, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
-	person_event SPRITE_ROCKET, 8, 12, OW_UP | $2, $0, -1, -1, $2, 3, TrainerGruntM5, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
-	person_event SPRITE_ROCKET, 5, 8, OW_UP | $2, $0, -1, -1, $2, 2, TrainerGruntM6, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
-	person_event SPRITE_ROCKET_GIRL, 9, 14, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerGruntF2, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
-	person_event SPRITE_BLACK_BELT, 5, 4, OW_UP | $2, $0, -1, -1, $0, 0, BlackBeltScript_0x5d71f, EVENT_RADIO_TOWER_BLACKBELT_BLOCKS_STAIRS
-	person_event SPRITE_BLACK_BELT, 5, 5, OW_UP | $2, $0, -1, -1, $0, 0, BlackBeltScript_0x5d722, EVENT_RADIO_TOWER_CIVILIANS_AFTER
-	person_event SPRITE_JIGGLYPUFF, 5, 16, OW_UP | $12, $0, -1, -1, $0, 0, JigglypuffScript_0x5d715, -1
-	person_event SPRITE_BUENA, 9, 18, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, Buena, -1
-	person_event SPRITE_RECEPTIONIST, 11, 16, OW_LEFT | $1, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, ReceptionistScript_0x5d8ff, EVENT_GOLDENROD_CITY_CIVILIANS
+	person_event SPRITE_SUPER_NERD, 10, 10, $8, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, SuperNerdScript_0x5d6fe, EVENT_GOLDENROD_CITY_CIVILIANS
+	person_event SPRITE_TEACHER, 6, 21, $5, 0, 1, -1, -1, 8 + PAL_OW_RED, 0, 0, TeacherScript_0x5d701, -1
+	person_event SPRITE_ROCKET, 8, 5, $7, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM4, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_ROCKET, 8, 12, $6, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM5, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_ROCKET, 5, 8, $6, 0, 0, -1, -1, 0, 2, 2, TrainerGruntM6, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_ROCKET_GIRL, 9, 14, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerGruntF2, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_BLACK_BELT, 5, 4, $6, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x5d71f, EVENT_RADIO_TOWER_BLACKBELT_BLOCKS_STAIRS
+	person_event SPRITE_BLACK_BELT, 5, 5, $6, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x5d722, EVENT_RADIO_TOWER_CIVILIANS_AFTER
+	person_event SPRITE_JIGGLYPUFF, 5, 16, $16, 0, 0, -1, -1, 0, 0, 0, JigglypuffScript_0x5d715, -1
+	person_event SPRITE_BUENA, 9, 18, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, Buena, -1
+	person_event SPRITE_RECEPTIONIST, 11, 16, $9, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, ReceptionistScript_0x5d8ff, EVENT_GOLDENROD_CITY_CIVILIANS
--- a/maps/RadioTower3F.asm
+++ b/maps/RadioTower3F.asm
@@ -328,9 +328,9 @@
 
 .Warps:
 	db 3
-	warp_def $0, $0, 1, GROUP_RADIO_TOWER_2F, MAP_RADIO_TOWER_2F
-	warp_def $0, $7, 2, GROUP_RADIO_TOWER_4F, MAP_RADIO_TOWER_4F
-	warp_def $0, $11, 4, GROUP_RADIO_TOWER_4F, MAP_RADIO_TOWER_4F
+	warp_def $0, $0, 1, RADIO_TOWER_2F
+	warp_def $0, $7, 2, RADIO_TOWER_4F
+	warp_def $0, $11, 4, RADIO_TOWER_4F
 
 .XYTriggers:
 	db 0
@@ -343,10 +343,10 @@
 
 .PersonEvents:
 	db 7
-	person_event SPRITE_SUPER_NERD, 8, 11, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, SuperNerdScript_0x5e553, EVENT_RADIO_TOWER_CIVILIANS_AFTER
-	person_event SPRITE_GYM_GUY, 8, 7, OW_LEFT | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, GymGuyScript_0x5e556, -1
-	person_event SPRITE_COOLTRAINER_F, 7, 15, OW_DOWN | $2, $11, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, CooltrainerFScript_0x5e56a, -1
-	person_event SPRITE_ROCKET, 5, 9, OW_LEFT | $1, $0, -1, -1, $2, 2, TrainerGruntM7, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
-	person_event SPRITE_ROCKET, 6, 10, OW_UP | $2, $0, -1, -1, $2, 3, TrainerGruntM8, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
-	person_event SPRITE_ROCKET, 10, 20, OW_UP | $3, $0, -1, -1, $2, 3, TrainerGruntM9, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
-	person_event SPRITE_SCIENTIST, 10, 13, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 5, TrainerScientistMarc, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_SUPER_NERD, 8, 11, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, SuperNerdScript_0x5e553, EVENT_RADIO_TOWER_CIVILIANS_AFTER
+	person_event SPRITE_GYM_GUY, 8, 7, $a, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, GymGuyScript_0x5e556, -1
+	person_event SPRITE_COOLTRAINER_F, 7, 15, $2, 1, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x5e56a, -1
+	person_event SPRITE_ROCKET, 5, 9, $9, 0, 0, -1, -1, 0, 2, 2, TrainerGruntM7, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_ROCKET, 6, 10, $6, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM8, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_ROCKET, 10, 20, $7, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM9, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_SCIENTIST, 10, 13, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 5, TrainerScientistMarc, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
--- a/maps/RadioTower4F.asm
+++ b/maps/RadioTower4F.asm
@@ -242,10 +242,10 @@
 
 .Warps:
 	db 4
-	warp_def $0, $0, 1, GROUP_RADIO_TOWER_5F, MAP_RADIO_TOWER_5F
-	warp_def $0, $9, 2, GROUP_RADIO_TOWER_3F, MAP_RADIO_TOWER_3F
-	warp_def $0, $c, 2, GROUP_RADIO_TOWER_5F, MAP_RADIO_TOWER_5F
-	warp_def $0, $11, 3, GROUP_RADIO_TOWER_3F, MAP_RADIO_TOWER_3F
+	warp_def $0, $0, 1, RADIO_TOWER_5F
+	warp_def $0, $9, 2, RADIO_TOWER_3F
+	warp_def $0, $c, 2, RADIO_TOWER_5F
+	warp_def $0, $11, 3, RADIO_TOWER_3F
 
 .XYTriggers:
 	db 0
@@ -257,10 +257,10 @@
 
 .PersonEvents:
 	db 7
-	person_event SPRITE_FISHER, 8, 10, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, FisherScript_0x5eb82, EVENT_RADIO_TOWER_CIVILIANS_AFTER
-	person_event SPRITE_TEACHER, 10, 18, OW_DOWN | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, TeacherScript_0x5eb85, -1
-	person_event SPRITE_GROWLITHE, 11, 16, OW_UP | $12, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, GrowlitheScript_0x5ebb2, -1
-	person_event SPRITE_ROCKET, 10, 9, OW_RIGHT | $13, $0, -1, -1, $2, 3, TrainerGruntM10, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
-	person_event SPRITE_ROCKET, 5, 18, OW_LEFT | $0, $2, -1, -1, $2, 2, TrainerExecutivem2, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
-	person_event SPRITE_ROCKET_GIRL, 8, 16, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $82, 1, TrainerGruntF4, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
-	person_event SPRITE_SCIENTIST, 6, 8, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 4, TrainerScientistRich, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_FISHER, 8, 10, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, FisherScript_0x5eb82, EVENT_RADIO_TOWER_CIVILIANS_AFTER
+	person_event SPRITE_TEACHER, 10, 18, $3, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, TeacherScript_0x5eb85, -1
+	person_event SPRITE_GROWLITHE, 11, 16, $16, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, GrowlitheScript_0x5ebb2, -1
+	person_event SPRITE_ROCKET, 10, 9, $1f, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM10, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_ROCKET, 5, 18, $8, 0, 2, -1, -1, 0, 2, 2, TrainerExecutivem2, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_ROCKET_GIRL, 8, 16, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 1, TrainerGruntF4, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_SCIENTIST, 6, 8, $8, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 4, TrainerScientistRich, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
--- a/maps/RadioTower5F.asm
+++ b/maps/RadioTower5F.asm
@@ -122,7 +122,7 @@
 	closetext
 	loadmovesprites
 	dotrigger $2
-	domaptrigger GROUP_ECRUTEAK_HOUSE, MAP_ECRUTEAK_HOUSE, $0
+	domaptrigger ECRUTEAK_HOUSE, $0
 	setevent EVENT_GOT_CLEAR_BELL
 	setevent EVENT_TEAM_ROCKET_DISBANDED
 	jump UnknownScript_0x600f1
@@ -421,8 +421,8 @@
 
 .Warps:
 	db 2
-	warp_def $0, $0, 1, GROUP_RADIO_TOWER_4F, MAP_RADIO_TOWER_4F
-	warp_def $0, $c, 3, GROUP_RADIO_TOWER_4F, MAP_RADIO_TOWER_4F
+	warp_def $0, $0, 1, RADIO_TOWER_4F
+	warp_def $0, $c, 3, RADIO_TOWER_4F
 
 .XYTriggers:
 	db 2
@@ -439,8 +439,8 @@
 
 .PersonEvents:
 	db 5
-	person_event SPRITE_GENTLEMAN, 10, 7, OW_DOWN | $3, $0, -1, -1, $0, 0, Director, -1
-	person_event SPRITE_ROCKET, 9, 17, OW_LEFT | $0, $0, -1, -1, $0, 0, ObjectEvent, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
-	person_event SPRITE_ROCKET_GIRL, 6, 21, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $82, 1, TrainerExecutivef1, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
-	person_event SPRITE_ROCKER, 9, 17, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, Ben, EVENT_RADIO_TOWER_CIVILIANS_AFTER
-	person_event SPRITE_POKE_BALL, 9, 12, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x600fe, EVENT_RADIO_TOWER_5F_ULTRA_BALL
+	person_event SPRITE_GENTLEMAN, 10, 7, $3, 0, 0, -1, -1, 0, 0, 0, Director, -1
+	person_event SPRITE_ROCKET, 9, 17, $8, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_ROCKET_GIRL, 6, 21, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 1, TrainerExecutivef1, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_ROCKER, 9, 17, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, Ben, EVENT_RADIO_TOWER_CIVILIANS_AFTER
+	person_event SPRITE_POKE_BALL, 9, 12, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x600fe, EVENT_RADIO_TOWER_5F_ULTRA_BALL
--- a/maps/RedsHouse1F.asm
+++ b/maps/RedsHouse1F.asm
@@ -79,9 +79,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $2, 1, GROUP_PALLET_TOWN, MAP_PALLET_TOWN
-	warp_def $7, $3, 1, GROUP_PALLET_TOWN, MAP_PALLET_TOWN
-	warp_def $0, $7, 1, GROUP_REDS_HOUSE_2F, MAP_REDS_HOUSE_2F
+	warp_def $7, $2, 1, PALLET_TOWN
+	warp_def $7, $3, 1, PALLET_TOWN
+	warp_def $0, $7, 1, REDS_HOUSE_2F
 
 .XYTriggers:
 	db 0
@@ -94,4 +94,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_REDS_MOM, 7, 9, OW_LEFT | $0, $0, -1, -1, $0, 0, RedsMom, -1
+	person_event SPRITE_REDS_MOM, 7, 9, $8, 0, 0, -1, -1, 0, 0, 0, RedsMom, -1
--- a/maps/RedsHouse2F.asm
+++ b/maps/RedsHouse2F.asm
@@ -31,7 +31,7 @@
 
 .Warps:
 	db 1
-	warp_def $0, $7, 3, GROUP_REDS_HOUSE_1F, MAP_REDS_HOUSE_1F
+	warp_def $0, $7, 3, REDS_HOUSE_1F
 
 .XYTriggers:
 	db 0
--- a/maps/RockTunnel1F.asm
+++ b/maps/RockTunnel1F.asm
@@ -25,12 +25,12 @@
 
 .Warps:
 	db 6
-	warp_def $3, $f, 1, GROUP_ROUTE_9, MAP_ROUTE_9
-	warp_def $19, $b, 1, GROUP_ROUTE_10_SOUTH, MAP_ROUTE_10_SOUTH
-	warp_def $3, $5, 3, GROUP_ROCK_TUNNEL_B1F, MAP_ROCK_TUNNEL_B1F
-	warp_def $9, $f, 2, GROUP_ROCK_TUNNEL_B1F, MAP_ROCK_TUNNEL_B1F
-	warp_def $3, $1b, 4, GROUP_ROCK_TUNNEL_B1F, MAP_ROCK_TUNNEL_B1F
-	warp_def $d, $1b, 1, GROUP_ROCK_TUNNEL_B1F, MAP_ROCK_TUNNEL_B1F
+	warp_def $3, $f, 1, ROUTE_9
+	warp_def $19, $b, 1, ROUTE_10_SOUTH
+	warp_def $3, $5, 3, ROCK_TUNNEL_B1F
+	warp_def $9, $f, 2, ROCK_TUNNEL_B1F
+	warp_def $3, $1b, 4, ROCK_TUNNEL_B1F
+	warp_def $d, $1b, 1, ROCK_TUNNEL_B1F
 
 .XYTriggers:
 	db 0
@@ -42,5 +42,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_POKE_BALL, 22, 8, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x743b5, EVENT_ROCK_TUNNEL_1F_ELIXER
-	person_event SPRITE_POKE_BALL, 19, 14, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x743b7, EVENT_ROCK_TUNNEL_1F_TM_STEEL_WING
+	person_event SPRITE_POKE_BALL, 22, 8, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x743b5, EVENT_ROCK_TUNNEL_1F_ELIXER
+	person_event SPRITE_POKE_BALL, 19, 14, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x743b7, EVENT_ROCK_TUNNEL_1F_TM_STEEL_WING
--- a/maps/RockTunnelB1F.asm
+++ b/maps/RockTunnelB1F.asm
@@ -24,10 +24,10 @@
 
 .Warps:
 	db 4
-	warp_def $3, $3, 6, GROUP_ROCK_TUNNEL_1F, MAP_ROCK_TUNNEL_1F
-	warp_def $9, $11, 4, GROUP_ROCK_TUNNEL_1F, MAP_ROCK_TUNNEL_1F
-	warp_def $3, $17, 3, GROUP_ROCK_TUNNEL_1F, MAP_ROCK_TUNNEL_1F
-	warp_def $17, $19, 5, GROUP_ROCK_TUNNEL_1F, MAP_ROCK_TUNNEL_1F
+	warp_def $3, $3, 6, ROCK_TUNNEL_1F
+	warp_def $9, $11, 4, ROCK_TUNNEL_1F
+	warp_def $3, $17, 3, ROCK_TUNNEL_1F
+	warp_def $17, $19, 5, ROCK_TUNNEL_1F
 
 .XYTriggers:
 	db 0
@@ -38,6 +38,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_POKE_BALL, 29, 11, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x74409, EVENT_ROCK_TUNNEL_B1F_IRON
-	person_event SPRITE_POKE_BALL, 21, 10, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7440b, EVENT_ROCK_TUNNEL_B1F_PP_UP
-	person_event SPRITE_POKE_BALL, 6, 19, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7440d, EVENT_ROCK_TUNNEL_B1F_REVIVE
+	person_event SPRITE_POKE_BALL, 29, 11, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x74409, EVENT_ROCK_TUNNEL_B1F_IRON
+	person_event SPRITE_POKE_BALL, 21, 10, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7440b, EVENT_ROCK_TUNNEL_B1F_PP_UP
+	person_event SPRITE_POKE_BALL, 6, 19, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7440d, EVENT_ROCK_TUNNEL_B1F_REVIVE
--- a/maps/Route1.asm
+++ b/maps/Route1.asm
@@ -91,6 +91,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_YOUNGSTER, 16, 8, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 4, TrainerSchoolboyDanny, -1
-	person_event SPRITE_COOLTRAINER_F, 29, 13, OW_LEFT | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 2, TrainerCooltrainerfQuinn, -1
-	person_event SPRITE_FRUIT_TREE, 11, 7, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x1ac581, -1
+	person_event SPRITE_YOUNGSTER, 16, 8, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 4, TrainerSchoolboyDanny, -1
+	person_event SPRITE_COOLTRAINER_F, 29, 13, $a, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 2, TrainerCooltrainerfQuinn, -1
+	person_event SPRITE_FRUIT_TREE, 11, 7, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1ac581, -1
--- a/maps/Route10North.asm
+++ b/maps/Route10North.asm
@@ -21,8 +21,8 @@
 
 .Warps:
 	db 2
-	warp_def $1, $b, 1, GROUP_ROUTE_10_POKECENTER_1F, MAP_ROUTE_10_POKECENTER_1F
-	warp_def $9, $3, 1, GROUP_POWER_PLANT, MAP_POWER_PLANT
+	warp_def $1, $b, 1, ROUTE_10_POKECENTER_1F
+	warp_def $9, $3, 1, POWER_PLANT
 
 .XYTriggers:
 	db 0
--- a/maps/Route10PokeCenter1F.asm
+++ b/maps/Route10PokeCenter1F.asm
@@ -80,9 +80,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $3, 1, GROUP_ROUTE_10_NORTH, MAP_ROUTE_10_NORTH
-	warp_def $7, $4, 1, GROUP_ROUTE_10_NORTH, MAP_ROUTE_10_NORTH
-	warp_def $7, $0, 1, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
+	warp_def $7, $3, 1, ROUTE_10_NORTH
+	warp_def $7, $4, 1, ROUTE_10_NORTH
+	warp_def $7, $0, 1, POKECENTER_2F
 
 .XYTriggers:
 	db 0
@@ -92,7 +92,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_NURSE, 5, 7, OW_UP | $2, $0, -1, -1, $0, 0, NurseScript_0x188bd4, -1
-	person_event SPRITE_GENTLEMAN, 10, 11, OW_UP | $1, $1, -1, -1, (PAL_OW_RED << 4) | $80, 0, GentlemanScript_0x188bd7, -1
-	person_event SPRITE_GYM_GUY, 6, 11, OW_DOWN | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, GymGuyScript_0x188bda, -1
-	person_event SPRITE_COOLTRAINER_F, 7, 5, OW_UP | $2, $0, -1, -1, $0, 0, CooltrainerFScript_0x188bee, -1
+	person_event SPRITE_NURSE, 5, 7, $6, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x188bd4, -1
+	person_event SPRITE_GENTLEMAN, 10, 11, $5, 0, 1, -1, -1, 8 + PAL_OW_RED, 0, 0, GentlemanScript_0x188bd7, -1
+	person_event SPRITE_GYM_GUY, 6, 11, $3, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, GymGuyScript_0x188bda, -1
+	person_event SPRITE_COOLTRAINER_F, 7, 5, $6, 0, 0, -1, -1, 0, 0, 0, CooltrainerFScript_0x188bee, -1
--- a/maps/Route10PokeCenter2FBeta.asm
+++ b/maps/Route10PokeCenter2FBeta.asm
@@ -11,7 +11,7 @@
 
 .Warps:
 	db 1
-	warp_def $7, $0, 3, GROUP_ROUTE_10_POKECENTER_1F, MAP_ROUTE_10_POKECENTER_1F
+	warp_def $7, $0, 3, ROUTE_10_POKECENTER_1F
 
 .XYTriggers:
 	db 0
--- a/maps/Route10South.asm
+++ b/maps/Route10South.asm
@@ -77,7 +77,7 @@
 
 .Warps:
 	db 1
-	warp_def $1, $6, 2, GROUP_ROCK_TUNNEL_1F, MAP_ROCK_TUNNEL_1F
+	warp_def $1, $6, 2, ROCK_TUNNEL_1F
 
 .XYTriggers:
 	db 0
@@ -88,5 +88,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_POKEFAN_M, 7, 21, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 3, TrainerHikerJim, -1
-	person_event SPRITE_POKEFAN_M, 14, 12, OW_LEFT | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerPokefanmRobert, -1
+	person_event SPRITE_POKEFAN_M, 7, 21, $8, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 3, TrainerHikerJim, -1
+	person_event SPRITE_POKEFAN_M, 14, 12, $a, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerPokefanmRobert, -1
--- a/maps/Route11.asm
+++ b/maps/Route11.asm
@@ -156,8 +156,8 @@
 
 .PersonEvents:
 	db 5
-	person_event SPRITE_YOUNGSTER, 18, 26, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerYoungsterOwen, -1
-	person_event SPRITE_YOUNGSTER, 8, 24, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerYoungsterJason, -1
-	person_event SPRITE_YOUNGSTER, 11, 32, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 1, TrainerPsychicHerman, -1
-	person_event SPRITE_YOUNGSTER, 10, 12, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerPsychicFidel, -1
-	person_event SPRITE_FRUIT_TREE, 6, 36, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x68055, -1
+	person_event SPRITE_YOUNGSTER, 18, 26, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerYoungsterOwen, -1
+	person_event SPRITE_YOUNGSTER, 8, 24, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerYoungsterJason, -1
+	person_event SPRITE_YOUNGSTER, 11, 32, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 1, TrainerPsychicHerman, -1
+	person_event SPRITE_YOUNGSTER, 10, 12, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerPsychicFidel, -1
+	person_event SPRITE_FRUIT_TREE, 6, 36, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x68055, -1
--- a/maps/Route12.asm
+++ b/maps/Route12.asm
@@ -165,7 +165,7 @@
 
 .Warps:
 	db 1
-	warp_def $21, $b, 1, GROUP_ROUTE_12_SUPER_ROD_HOUSE, MAP_ROUTE_12_SUPER_ROD_HOUSE
+	warp_def $21, $b, 1, ROUTE_12_SUPER_ROD_HOUSE
 
 .XYTriggers:
 	db 0
@@ -178,9 +178,9 @@
 
 .PersonEvents:
 	db 6
-	person_event SPRITE_FISHER, 17, 9, OW_LEFT | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 1, TrainerFisherMartin, -1
-	person_event SPRITE_FISHER, 27, 18, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 1, TrainerFisherStephen, -1
-	person_event SPRITE_FISHER, 42, 14, OW_LEFT | $0, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 5, TrainerFisherBarney, -1
-	person_event SPRITE_FISHER, 11, 10, OW_LEFT | $1, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 3, TrainerFisherKyle, -1
-	person_event SPRITE_POKE_BALL, 47, 9, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x1a700b, EVENT_ROUTE_12_CALCIUM
-	person_event SPRITE_POKE_BALL, 55, 9, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x1a700d, EVENT_ROUTE_12_NUGGET
+	person_event SPRITE_FISHER, 17, 9, $a, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 1, TrainerFisherMartin, -1
+	person_event SPRITE_FISHER, 27, 18, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 1, TrainerFisherStephen, -1
+	person_event SPRITE_FISHER, 42, 14, $8, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 5, TrainerFisherBarney, -1
+	person_event SPRITE_FISHER, 11, 10, $9, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 3, TrainerFisherKyle, -1
+	person_event SPRITE_POKE_BALL, 47, 9, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a700b, EVENT_ROUTE_12_CALCIUM
+	person_event SPRITE_POKE_BALL, 55, 9, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a700d, EVENT_ROUTE_12_NUGGET
--- a/maps/Route12SuperRodHouse.asm
+++ b/maps/Route12SuperRodHouse.asm
@@ -82,8 +82,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 1, GROUP_ROUTE_12, MAP_ROUTE_12
-	warp_def $7, $3, 1, GROUP_ROUTE_12, MAP_ROUTE_12
+	warp_def $7, $2, 1, ROUTE_12
+	warp_def $7, $3, 1, ROUTE_12
 
 .XYTriggers:
 	db 0
@@ -93,4 +93,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_FISHING_GURU, 7, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, FishingGuruScript_0x7f484, -1
+	person_event SPRITE_FISHING_GURU, 7, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, FishingGuruScript_0x7f484, -1
--- a/maps/Route13.asm
+++ b/maps/Route13.asm
@@ -204,8 +204,8 @@
 
 .PersonEvents:
 	db 5
-	person_event SPRITE_YOUNGSTER, 10, 46, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 2, TrainerBird_keeperPerry, -1
-	person_event SPRITE_YOUNGSTER, 10, 47, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 2, TrainerBird_keeperBret, -1
-	person_event SPRITE_POKEFAN_M, 12, 36, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerPokefanmJoshua, -1
-	person_event SPRITE_POKEFAN_M, 14, 18, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $82, 4, TrainerHikerKenny, -1
-	person_event SPRITE_POKEFAN_M, 10, 29, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $82, 4, TrainerPokefanmAlex, -1
+	person_event SPRITE_YOUNGSTER, 10, 46, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 2, TrainerBird_keeperPerry, -1
+	person_event SPRITE_YOUNGSTER, 10, 47, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 2, TrainerBird_keeperBret, -1
+	person_event SPRITE_POKEFAN_M, 12, 36, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerPokefanmJoshua, -1
+	person_event SPRITE_POKEFAN_M, 14, 18, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 4, TrainerHikerKenny, -1
+	person_event SPRITE_POKEFAN_M, 10, 29, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 4, TrainerPokefanmAlex, -1
--- a/maps/Route14.asm
+++ b/maps/Route14.asm
@@ -124,7 +124,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_POKEFAN_M, 19, 15, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerPokefanmCarter, -1
-	person_event SPRITE_YOUNGSTER, 31, 15, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerBird_keeperRoy, -1
-	person_event SPRITE_POKEFAN_M, 15, 10, OW_LEFT | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerPokefanmTrevor, -1
-	person_event SPRITE_TEACHER, 9, 11, OW_UP | $1, $1, -1, -1, (PAL_OW_GREEN << 4) | $80, 4, TeacherScript_0x1ad47f, -1
+	person_event SPRITE_POKEFAN_M, 19, 15, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerPokefanmCarter, -1
+	person_event SPRITE_YOUNGSTER, 31, 15, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerBird_keeperRoy, -1
+	person_event SPRITE_POKEFAN_M, 15, 10, $a, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerPokefanmTrevor, -1
+	person_event SPRITE_TEACHER, 9, 11, $5, 0, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 4, TeacherScript_0x1ad47f, -1
--- a/maps/Route15.asm
+++ b/maps/Route15.asm
@@ -198,8 +198,8 @@
 
 .Warps:
 	db 2
-	warp_def $4, $2, 3, GROUP_ROUTE_15_FUCHSIA_GATE, MAP_ROUTE_15_FUCHSIA_GATE
-	warp_def $5, $2, 4, GROUP_ROUTE_15_FUCHSIA_GATE, MAP_ROUTE_15_FUCHSIA_GATE
+	warp_def $4, $2, 3, ROUTE_15_FUCHSIA_GATE
+	warp_def $5, $2, 4, ROUTE_15_FUCHSIA_GATE
 
 .XYTriggers:
 	db 0
@@ -210,10 +210,10 @@
 
 .PersonEvents:
 	db 7
-	person_event SPRITE_YOUNGSTER, 14, 14, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 4, TrainerSchoolboyKipp, -1
-	person_event SPRITE_YOUNGSTER, 17, 19, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerSchoolboyTommy, -1
-	person_event SPRITE_YOUNGSTER, 14, 37, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerSchoolboyJohnny, -1
-	person_event SPRITE_YOUNGSTER, 14, 31, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerSchoolboyBilly, -1
-	person_event SPRITE_TEACHER, 16, 34, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $82, 4, TrainerTeacherColette, -1
-	person_event SPRITE_TEACHER, 14, 24, OW_LEFT | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerTeacherHillary, -1
-	person_event SPRITE_POKE_BALL, 9, 16, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x1aa5e4, EVENT_ROUTE_15_PP_UP
+	person_event SPRITE_YOUNGSTER, 14, 14, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 4, TrainerSchoolboyKipp, -1
+	person_event SPRITE_YOUNGSTER, 17, 19, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerSchoolboyTommy, -1
+	person_event SPRITE_YOUNGSTER, 14, 37, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerSchoolboyJohnny, -1
+	person_event SPRITE_YOUNGSTER, 14, 31, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerSchoolboyBilly, -1
+	person_event SPRITE_TEACHER, 16, 34, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 4, TrainerTeacherColette, -1
+	person_event SPRITE_TEACHER, 14, 24, $a, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerTeacherHillary, -1
+	person_event SPRITE_POKE_BALL, 9, 16, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1aa5e4, EVENT_ROUTE_15_PP_UP
--- a/maps/Route15FuchsiaGate.asm
+++ b/maps/Route15FuchsiaGate.asm
@@ -22,10 +22,10 @@
 
 .Warps:
 	db 4
-	warp_def $4, $0, 8, GROUP_FUCHSIA_CITY, MAP_FUCHSIA_CITY
-	warp_def $5, $0, 9, GROUP_FUCHSIA_CITY, MAP_FUCHSIA_CITY
-	warp_def $4, $9, 1, GROUP_ROUTE_15, MAP_ROUTE_15
-	warp_def $5, $9, 2, GROUP_ROUTE_15, MAP_ROUTE_15
+	warp_def $4, $0, 8, FUCHSIA_CITY
+	warp_def $5, $0, 9, FUCHSIA_CITY
+	warp_def $4, $9, 1, ROUTE_15
+	warp_def $5, $9, 2, ROUTE_15
 
 .XYTriggers:
 	db 0
@@ -35,4 +35,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_OFFICER, 6, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, OfficerScript_0x19679e, -1
+	person_event SPRITE_OFFICER, 6, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, OfficerScript_0x19679e, -1
--- a/maps/Route16.asm
+++ b/maps/Route16.asm
@@ -37,11 +37,11 @@
 
 .Warps:
 	db 5
-	warp_def $1, $3, 1, GROUP_ROUTE_16_FUCHSIA_SPEECH_HOUSE, MAP_ROUTE_16_FUCHSIA_SPEECH_HOUSE
-	warp_def $6, $e, 3, GROUP_ROUTE_16_GATE, MAP_ROUTE_16_GATE
-	warp_def $7, $e, 4, GROUP_ROUTE_16_GATE, MAP_ROUTE_16_GATE
-	warp_def $6, $9, 1, GROUP_ROUTE_16_GATE, MAP_ROUTE_16_GATE
-	warp_def $7, $9, 2, GROUP_ROUTE_16_GATE, MAP_ROUTE_16_GATE
+	warp_def $1, $3, 1, ROUTE_16_FUCHSIA_SPEECH_HOUSE
+	warp_def $6, $e, 3, ROUTE_16_GATE
+	warp_def $7, $e, 4, ROUTE_16_GATE
+	warp_def $6, $9, 1, ROUTE_16_GATE
+	warp_def $7, $9, 2, ROUTE_16_GATE
 
 .XYTriggers:
 	db 0
--- a/maps/Route16FuchsiaSpeechHouse.asm
+++ b/maps/Route16FuchsiaSpeechHouse.asm
@@ -25,8 +25,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 1, GROUP_ROUTE_16, MAP_ROUTE_16
-	warp_def $7, $3, 1, GROUP_ROUTE_16, MAP_ROUTE_16
+	warp_def $7, $2, 1, ROUTE_16
+	warp_def $7, $3, 1, ROUTE_16
 
 .XYTriggers:
 	db 0
@@ -38,4 +38,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_SUPER_NERD, 7, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, SuperNerdScript_0x73373, -1
+	person_event SPRITE_SUPER_NERD, 7, 6, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, SuperNerdScript_0x73373, -1
--- a/maps/Route16Gate.asm
+++ b/maps/Route16Gate.asm
@@ -65,10 +65,10 @@
 
 .Warps:
 	db 4
-	warp_def $4, $0, 4, GROUP_ROUTE_16, MAP_ROUTE_16
-	warp_def $5, $0, 5, GROUP_ROUTE_16, MAP_ROUTE_16
-	warp_def $4, $9, 2, GROUP_ROUTE_16, MAP_ROUTE_16
-	warp_def $5, $9, 3, GROUP_ROUTE_16, MAP_ROUTE_16
+	warp_def $4, $0, 4, ROUTE_16
+	warp_def $5, $0, 5, ROUTE_16
+	warp_def $4, $9, 2, ROUTE_16
+	warp_def $5, $9, 3, ROUTE_16
 
 .XYTriggers:
 	db 2
@@ -80,4 +80,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_OFFICER, 6, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, OfficerScript_0x733ea, -1
+	person_event SPRITE_OFFICER, 6, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, OfficerScript_0x733ea, -1
--- a/maps/Route17.asm
+++ b/maps/Route17.asm
@@ -137,8 +137,8 @@
 
 .Warps:
 	db 2
-	warp_def $52, $11, 1, GROUP_ROUTE_17_18_GATE, MAP_ROUTE_17_18_GATE
-	warp_def $53, $11, 2, GROUP_ROUTE_17_18_GATE, MAP_ROUTE_17_18_GATE
+	warp_def $52, $11, 1, ROUTE_17_18_GATE
+	warp_def $53, $11, 2, ROUTE_17_18_GATE
 
 .XYTriggers:
 	db 0
@@ -150,7 +150,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_BIKER, 21, 8, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 4, TrainerBikerRiley, -1
-	person_event SPRITE_BIKER, 72, 13, OW_UP | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 1, TrainerBikerJoel, -1
-	person_event SPRITE_BIKER, 57, 7, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 3, TrainerBikerGlenn, -1
-	person_event SPRITE_BIKER, 84, 10, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 4, TrainerBikerCharles, -1
+	person_event SPRITE_BIKER, 21, 8, $a, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 4, TrainerBikerRiley, -1
+	person_event SPRITE_BIKER, 72, 13, $6, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 1, TrainerBikerJoel, -1
+	person_event SPRITE_BIKER, 57, 7, $a, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 3, TrainerBikerGlenn, -1
+	person_event SPRITE_BIKER, 84, 10, $9, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 4, TrainerBikerCharles, -1
--- a/maps/Route1718Gate.asm
+++ b/maps/Route1718Gate.asm
@@ -56,10 +56,10 @@
 
 .Warps:
 	db 4
-	warp_def $4, $0, 1, GROUP_ROUTE_17, MAP_ROUTE_17
-	warp_def $5, $0, 2, GROUP_ROUTE_17, MAP_ROUTE_17
-	warp_def $4, $9, 1, GROUP_ROUTE_18, MAP_ROUTE_18
-	warp_def $5, $9, 2, GROUP_ROUTE_18, MAP_ROUTE_18
+	warp_def $4, $0, 1, ROUTE_17
+	warp_def $5, $0, 2, ROUTE_17
+	warp_def $4, $9, 1, ROUTE_18
+	warp_def $5, $9, 2, ROUTE_18
 
 .XYTriggers:
 	db 2
@@ -71,4 +71,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_OFFICER, 6, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, OfficerScript_0x7360e, -1
+	person_event SPRITE_OFFICER, 6, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, OfficerScript_0x7360e, -1
--- a/maps/Route18.asm
+++ b/maps/Route18.asm
@@ -79,8 +79,8 @@
 
 .Warps:
 	db 2
-	warp_def $6, $2, 3, GROUP_ROUTE_17_18_GATE, MAP_ROUTE_17_18_GATE
-	warp_def $7, $2, 4, GROUP_ROUTE_17_18_GATE, MAP_ROUTE_17_18_GATE
+	warp_def $6, $2, 3, ROUTE_17_18_GATE
+	warp_def $7, $2, 4, ROUTE_17_18_GATE
 
 .XYTriggers:
 	db 0
@@ -91,5 +91,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_YOUNGSTER, 16, 13, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerBird_keeperBoris, -1
-	person_event SPRITE_YOUNGSTER, 10, 17, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerBird_keeperBob, -1
+	person_event SPRITE_YOUNGSTER, 16, 13, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerBird_keeperBoris, -1
+	person_event SPRITE_YOUNGSTER, 10, 17, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerBird_keeperBob, -1
--- a/maps/Route19.asm
+++ b/maps/Route19.asm
@@ -235,7 +235,7 @@
 
 .Warps:
 	db 1
-	warp_def $3, $7, 3, GROUP_ROUTE_19___FUCHSIA_GATE, MAP_ROUTE_19___FUCHSIA_GATE
+	warp_def $3, $7, 3, ROUTE_19___FUCHSIA_GATE
 
 .XYTriggers:
 	db 0
@@ -247,9 +247,9 @@
 
 .PersonEvents:
 	db 6
-	person_event SPRITE_SWIMMER_GIRL, 27, 13, OW_LEFT | $0, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 0, TrainerSwimmerfDawn, -1
-	person_event SPRITE_SWIMMER_GUY, 32, 17, OW_LEFT | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerSwimmermHarold, -1
-	person_event SPRITE_SWIMMER_GUY, 21, 15, OW_LEFT | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerSwimmermJerome, -1
-	person_event SPRITE_SWIMMER_GUY, 27, 12, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $82, 0, TrainerSwimmermTucker, -1
-	person_event SPRITE_FISHER, 9, 13, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 1, FisherScript_0x19ea4d, -1
-	person_event SPRITE_FISHER, 9, 15, OW_UP | $1, $1, -1, -1, (PAL_OW_BLUE << 4) | $80, 1, FisherScript_0x19ea61, -1
+	person_event SPRITE_SWIMMER_GIRL, 27, 13, $8, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 0, TrainerSwimmerfDawn, -1
+	person_event SPRITE_SWIMMER_GUY, 32, 17, $a, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerSwimmermHarold, -1
+	person_event SPRITE_SWIMMER_GUY, 21, 15, $a, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerSwimmermJerome, -1
+	person_event SPRITE_SWIMMER_GUY, 27, 12, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 0, TrainerSwimmermTucker, -1
+	person_event SPRITE_FISHER, 9, 13, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 1, FisherScript_0x19ea4d, -1
+	person_event SPRITE_FISHER, 9, 15, $5, 0, 1, -1, -1, 8 + PAL_OW_BLUE, 0, 1, FisherScript_0x19ea61, -1
--- a/maps/Route19FuchsiaGate.asm
+++ b/maps/Route19FuchsiaGate.asm
@@ -48,10 +48,10 @@
 
 .Warps:
 	db 4
-	warp_def $0, $4, 10, GROUP_FUCHSIA_CITY, MAP_FUCHSIA_CITY
-	warp_def $0, $5, 11, GROUP_FUCHSIA_CITY, MAP_FUCHSIA_CITY
-	warp_def $7, $4, 1, GROUP_ROUTE_19, MAP_ROUTE_19
-	warp_def $7, $5, 1, GROUP_ROUTE_19, MAP_ROUTE_19
+	warp_def $0, $4, 10, FUCHSIA_CITY
+	warp_def $0, $5, 11, FUCHSIA_CITY
+	warp_def $7, $4, 1, ROUTE_19
+	warp_def $7, $5, 1, ROUTE_19
 
 .XYTriggers:
 	db 0
@@ -61,4 +61,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_OFFICER, 8, 4, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, OfficerScript_0x1ab3f6, -1
+	person_event SPRITE_OFFICER, 8, 4, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, OfficerScript_0x1ab3f6, -1
--- a/maps/Route2.asm
+++ b/maps/Route2.asm
@@ -142,11 +142,11 @@
 
 .Warps:
 	db 5
-	warp_def $f, $f, 1, GROUP_ROUTE_2_NUGGET_SPEECH_HOUSE, MAP_ROUTE_2_NUGGET_SPEECH_HOUSE
-	warp_def $1f, $f, 3, GROUP_ROUTE_2_GATE, MAP_ROUTE_2_GATE
-	warp_def $1b, $10, 1, GROUP_ROUTE_2_GATE, MAP_ROUTE_2_GATE
-	warp_def $1b, $11, 2, GROUP_ROUTE_2_GATE, MAP_ROUTE_2_GATE
-	warp_def $7, $c, 3, GROUP_DIGLETTS_CAVE, MAP_DIGLETTS_CAVE
+	warp_def $f, $f, 1, ROUTE_2_NUGGET_SPEECH_HOUSE
+	warp_def $1f, $f, 3, ROUTE_2_GATE
+	warp_def $1b, $10, 1, ROUTE_2_GATE
+	warp_def $1b, $11, 2, ROUTE_2_GATE
+	warp_def $7, $c, 3, DIGLETTS_CAVE
 
 .XYTriggers:
 	db 0
@@ -162,11 +162,11 @@
 
 .PersonEvents:
 	db 8
-	person_event SPRITE_BUG_CATCHER, 49, 14, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 5, TrainerBug_catcherRob, -1
-	person_event SPRITE_BUG_CATCHER, 8, 10, OW_RIGHT | $13, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 3, TrainerBug_catcherEd, -1
-	person_event SPRITE_BUG_CATCHER, 44, 4, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 3, TrainerBug_catcherDoug, -1
-	person_event SPRITE_POKE_BALL, 33, 4, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x1ac2fe, EVENT_ROUTE_2_DIRE_HIT
-	person_event SPRITE_POKE_BALL, 27, 6, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x1ac300, EVENT_ROUTE_2_MAX_POTION
-	person_event SPRITE_POKE_BALL, 6, 23, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x1ac302, EVENT_ROUTE_2_CARBOS
-	person_event SPRITE_POKE_BALL, 54, 18, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x1ac304, EVENT_ROUTE_2_ELIXER
-	person_event SPRITE_FRUIT_TREE, 18, 14, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x1ac306, -1
+	person_event SPRITE_BUG_CATCHER, 49, 14, $8, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 5, TrainerBug_catcherRob, -1
+	person_event SPRITE_BUG_CATCHER, 8, 10, $1f, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 3, TrainerBug_catcherEd, -1
+	person_event SPRITE_BUG_CATCHER, 44, 4, $9, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 3, TrainerBug_catcherDoug, -1
+	person_event SPRITE_POKE_BALL, 33, 4, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ac2fe, EVENT_ROUTE_2_DIRE_HIT
+	person_event SPRITE_POKE_BALL, 27, 6, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ac300, EVENT_ROUTE_2_MAX_POTION
+	person_event SPRITE_POKE_BALL, 6, 23, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ac302, EVENT_ROUTE_2_CARBOS
+	person_event SPRITE_POKE_BALL, 54, 18, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ac304, EVENT_ROUTE_2_ELIXER
+	person_event SPRITE_FRUIT_TREE, 18, 14, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1ac306, -1
--- a/maps/Route20.asm
+++ b/maps/Route20.asm
@@ -116,7 +116,7 @@
 
 .Warps:
 	db 1
-	warp_def $7, $26, 1, GROUP_SEAFOAM_GYM, MAP_SEAFOAM_GYM
+	warp_def $7, $26, 1, SEAFOAM_GYM
 
 .XYTriggers:
 	db 0
@@ -127,6 +127,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_SWIMMER_GIRL, 12, 56, OW_LEFT | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 3, TrainerSwimmerfNicole, -1
-	person_event SPRITE_SWIMMER_GIRL, 17, 49, OW_LEFT | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 3, TrainerSwimmerfLori, -1
-	person_event SPRITE_SWIMMER_GUY, 17, 16, OW_LEFT | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerSwimmermCameron, -1
+	person_event SPRITE_SWIMMER_GIRL, 12, 56, $a, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 3, TrainerSwimmerfNicole, -1
+	person_event SPRITE_SWIMMER_GIRL, 17, 49, $a, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 3, TrainerSwimmerfLori, -1
+	person_event SPRITE_SWIMMER_GUY, 17, 16, $a, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerSwimmermCameron, -1
--- a/maps/Route21.asm
+++ b/maps/Route21.asm
@@ -99,6 +99,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_SWIMMER_GIRL, 20, 15, OW_LEFT | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 3, TrainerSwimmerfNikki, -1
-	person_event SPRITE_SWIMMER_GUY, 34, 6, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $82, 4, TrainerSwimmermSeth, -1
-	person_event SPRITE_FISHER, 26, 18, OW_UP | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 1, TrainerFisherArnold, -1
+	person_event SPRITE_SWIMMER_GIRL, 20, 15, $a, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 3, TrainerSwimmerfNikki, -1
+	person_event SPRITE_SWIMMER_GUY, 34, 6, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 4, TrainerSwimmermSeth, -1
+	person_event SPRITE_FISHER, 26, 18, $7, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 1, TrainerFisherArnold, -1
--- a/maps/Route22.asm
+++ b/maps/Route22.asm
@@ -21,7 +21,7 @@
 
 .Warps:
 	db 1
-	warp_def $5, $d, 1, GROUP_VICTORY_ROAD_GATE, MAP_VICTORY_ROAD_GATE
+	warp_def $5, $d, 1, VICTORY_ROAD_GATE
 
 .XYTriggers:
 	db 0
--- a/maps/Route23.asm
+++ b/maps/Route23.asm
@@ -30,10 +30,10 @@
 
 .Warps:
 	db 4
-	warp_def $5, $9, 1, GROUP_INDIGO_PLATEAU_POKECENTER_1F, MAP_INDIGO_PLATEAU_POKECENTER_1F
-	warp_def $5, $a, 2, GROUP_INDIGO_PLATEAU_POKECENTER_1F, MAP_INDIGO_PLATEAU_POKECENTER_1F
-	warp_def $d, $9, 10, GROUP_VICTORY_ROAD, MAP_VICTORY_ROAD
-	warp_def $d, $a, 10, GROUP_VICTORY_ROAD, MAP_VICTORY_ROAD
+	warp_def $5, $9, 1, INDIGO_PLATEAU_POKECENTER_1F
+	warp_def $5, $a, 2, INDIGO_PLATEAU_POKECENTER_1F
+	warp_def $d, $9, 10, VICTORY_ROAD
+	warp_def $d, $a, 10, VICTORY_ROAD
 
 .XYTriggers:
 	db 0
--- a/maps/Route24.asm
+++ b/maps/Route24.asm
@@ -130,4 +130,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_ROCKET, 11, 12, OW_DOWN | $3, $0, -1, -1, $0, 0, RocketScript_0x1adbfa, EVENT_ROUTE_24_ROCKET
+	person_event SPRITE_ROCKET, 11, 12, $3, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x1adbfa, EVENT_ROUTE_24_ROCKET
--- a/maps/Route25.asm
+++ b/maps/Route25.asm
@@ -425,7 +425,7 @@
 
 .Warps:
 	db 1
-	warp_def $5, $2f, 1, GROUP_BILLS_HOUSE, MAP_BILLS_HOUSE
+	warp_def $5, $2f, 1, BILLS_HOUSE
 
 .XYTriggers:
 	db 2
@@ -439,14 +439,14 @@
 
 .PersonEvents:
 	db 11
-	person_event SPRITE_MISTY, 13, 50, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, ObjectEvent, EVENT_ROUTE_25_MISTY_BOYFRIEND
-	person_event SPRITE_COOLTRAINER_M, 14, 50, OW_LEFT | $0, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, ObjectEvent, EVENT_ROUTE_25_MISTY_BOYFRIEND
-	person_event SPRITE_YOUNGSTER, 12, 16, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerSchoolboyDudley, -1
-	person_event SPRITE_LASS, 15, 20, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerLassEllen, -1
-	person_event SPRITE_YOUNGSTER, 12, 25, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 1, TrainerSchoolboyJoe, -1
-	person_event SPRITE_LASS, 10, 26, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerLassLaura, -1
-	person_event SPRITE_YOUNGSTER, 8, 29, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 2, TrainerCamperLloyd, -1
-	person_event SPRITE_LASS, 15, 32, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 1, TrainerLassShannon, -1
-	person_event SPRITE_SUPER_NERD, 11, 35, OW_UP | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 1, TrainerSupernerdPat, -1
-	person_event SPRITE_COOLTRAINER_M, 12, 41, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, CooltrainerMScript_0x19efac, -1
-	person_event SPRITE_POKE_BALL, 8, 36, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x19efe3, EVENT_ROUTE_25_PROTEIN
+	person_event SPRITE_MISTY, 13, 50, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, ObjectEvent, EVENT_ROUTE_25_MISTY_BOYFRIEND
+	person_event SPRITE_COOLTRAINER_M, 14, 50, $8, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, ObjectEvent, EVENT_ROUTE_25_MISTY_BOYFRIEND
+	person_event SPRITE_YOUNGSTER, 12, 16, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerSchoolboyDudley, -1
+	person_event SPRITE_LASS, 15, 20, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerLassEllen, -1
+	person_event SPRITE_YOUNGSTER, 12, 25, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 1, TrainerSchoolboyJoe, -1
+	person_event SPRITE_LASS, 10, 26, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerLassLaura, -1
+	person_event SPRITE_YOUNGSTER, 8, 29, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 2, TrainerCamperLloyd, -1
+	person_event SPRITE_LASS, 15, 32, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 1, TrainerLassShannon, -1
+	person_event SPRITE_SUPER_NERD, 11, 35, $6, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 1, TrainerSupernerdPat, -1
+	person_event SPRITE_COOLTRAINER_M, 12, 41, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, CooltrainerMScript_0x19efac, -1
+	person_event SPRITE_POKE_BALL, 8, 36, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19efe3, EVENT_ROUTE_25_PROTEIN
--- a/maps/Route26.asm
+++ b/maps/Route26.asm
@@ -408,9 +408,9 @@
 
 .Warps:
 	db 3
-	warp_def $5, $7, 3, GROUP_VICTORY_ROAD_GATE, MAP_VICTORY_ROAD_GATE
-	warp_def $39, $f, 1, GROUP_ROUTE_26_HEAL_SPEECH_HOUSE, MAP_ROUTE_26_HEAL_SPEECH_HOUSE
-	warp_def $47, $5, 1, GROUP_ROUTE_26_DAY_OF_WEEK_SIBLINGS_HOUSE, MAP_ROUTE_26_DAY_OF_WEEK_SIBLINGS_HOUSE
+	warp_def $5, $7, 3, VICTORY_ROAD_GATE
+	warp_def $39, $f, 1, ROUTE_26_HEAL_SPEECH_HOUSE
+	warp_def $47, $5, 1, ROUTE_26_DAY_OF_WEEK_SIBLINGS_HOUSE
 
 .XYTriggers:
 	db 0
@@ -421,11 +421,11 @@
 
 .PersonEvents:
 	db 8
-	person_event SPRITE_COOLTRAINER_M, 28, 18, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $82, 2, TrainerCooltrainermJake, -1
-	person_event SPRITE_COOLTRAINER_M, 42, 13, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerCooltrainermGaven3, -1
-	person_event SPRITE_COOLTRAINER_F, 60, 14, OW_LEFT | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerCooltrainerfJoyce, -1
-	person_event SPRITE_COOLTRAINER_F, 12, 9, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $82, 4, TrainerCooltrainerfBeth1, -1
-	person_event SPRITE_YOUNGSTER, 83, 17, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 2, TrainerPsychicRichard, -1
-	person_event SPRITE_FISHER, 96, 14, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 3, TrainerFisherScott, -1
-	person_event SPRITE_FRUIT_TREE, 58, 18, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x1a4ec2, -1
-	person_event SPRITE_POKE_BALL, 19, 13, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x1a4ec4, EVENT_ROUTE_26_MAX_ELIXER
+	person_event SPRITE_COOLTRAINER_M, 28, 18, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 2, TrainerCooltrainermJake, -1
+	person_event SPRITE_COOLTRAINER_M, 42, 13, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerCooltrainermGaven3, -1
+	person_event SPRITE_COOLTRAINER_F, 60, 14, $a, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerCooltrainerfJoyce, -1
+	person_event SPRITE_COOLTRAINER_F, 12, 9, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 4, TrainerCooltrainerfBeth1, -1
+	person_event SPRITE_YOUNGSTER, 83, 17, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 2, TrainerPsychicRichard, -1
+	person_event SPRITE_FISHER, 96, 14, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 3, TrainerFisherScott, -1
+	person_event SPRITE_FRUIT_TREE, 58, 18, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a4ec2, -1
+	person_event SPRITE_POKE_BALL, 19, 13, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a4ec4, EVENT_ROUTE_26_MAX_ELIXER
--- a/maps/Route26DayofWeekSiblingsHouse.asm
+++ b/maps/Route26DayofWeekSiblingsHouse.asm
@@ -73,8 +73,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 3, GROUP_ROUTE_26, MAP_ROUTE_26
-	warp_def $7, $3, 3, GROUP_ROUTE_26, MAP_ROUTE_26
+	warp_def $7, $2, 3, ROUTE_26
+	warp_def $7, $3, 3, ROUTE_26
 
 .XYTriggers:
 	db 0
@@ -84,4 +84,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_POKEDEX, 7, 7, OW_DOWN | $1, $0, -1, -1, $0, 0, PokedexScript_0x7b1e4, -1
+	person_event SPRITE_POKEDEX, 7, 7, $1, 0, 0, -1, -1, 0, 0, 0, PokedexScript_0x7b1e4, -1
--- a/maps/Route26HealSpeechHouse.asm
+++ b/maps/Route26HealSpeechHouse.asm
@@ -51,8 +51,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 2, GROUP_ROUTE_26, MAP_ROUTE_26
-	warp_def $7, $3, 2, GROUP_ROUTE_26, MAP_ROUTE_26
+	warp_def $7, $2, 2, ROUTE_26
+	warp_def $7, $3, 2, ROUTE_26
 
 .XYTriggers:
 	db 0
@@ -64,4 +64,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_TEACHER, 7, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, TeacherScript_0x7b125, -1
+	person_event SPRITE_TEACHER, 7, 6, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, TeacherScript_0x7b125, -1
--- a/maps/Route27.asm
+++ b/maps/Route27.asm
@@ -464,9 +464,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $21, 1, GROUP_ROUTE_27_SANDSTORM_HOUSE, MAP_ROUTE_27_SANDSTORM_HOUSE
-	warp_def $5, $1a, 1, GROUP_TOHJO_FALLS, MAP_TOHJO_FALLS
-	warp_def $5, $24, 2, GROUP_TOHJO_FALLS, MAP_TOHJO_FALLS
+	warp_def $7, $21, 1, ROUTE_27_SANDSTORM_HOUSE
+	warp_def $5, $1a, 1, TOHJO_FALLS
+	warp_def $5, $24, 2, TOHJO_FALLS
 
 .XYTriggers:
 	db 2
@@ -479,12 +479,12 @@
 
 .PersonEvents:
 	db 9
-	person_event SPRITE_COOLTRAINER_M, 11, 52, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerCooltrainermBlake, -1
-	person_event SPRITE_COOLTRAINER_M, 10, 62, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $82, 4, TrainerCooltrainermBrian, -1
-	person_event SPRITE_COOLTRAINER_F, 14, 76, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $82, 4, TrainerCooltrainerfReena, -1
-	person_event SPRITE_COOLTRAINER_F, 10, 41, OW_RIGHT | $13, $0, -1, -1, (PAL_OW_RED << 4) | $82, 2, TrainerCooltrainerfMegan, -1
-	person_event SPRITE_YOUNGSTER, 11, 69, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerPsychicGilbert, -1
-	person_event SPRITE_YOUNGSTER, 17, 62, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerBird_keeperJose2, -1
-	person_event SPRITE_POKE_BALL, 16, 64, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x1a0a62, EVENT_ROUTE_27_TM_SOLARBEAM
-	person_event SPRITE_POKE_BALL, 16, 57, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x1a0a64, EVENT_ROUTE_27_RARE_CANDY
-	person_event SPRITE_FISHER, 14, 25, OW_DOWN | $3, $0, -1, -1, $0, 3, FisherScript_0x1a089c, -1
+	person_event SPRITE_COOLTRAINER_M, 11, 52, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerCooltrainermBlake, -1
+	person_event SPRITE_COOLTRAINER_M, 10, 62, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 4, TrainerCooltrainermBrian, -1
+	person_event SPRITE_COOLTRAINER_F, 14, 76, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 4, TrainerCooltrainerfReena, -1
+	person_event SPRITE_COOLTRAINER_F, 10, 41, $1f, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 2, TrainerCooltrainerfMegan, -1
+	person_event SPRITE_YOUNGSTER, 11, 69, $8, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerPsychicGilbert, -1
+	person_event SPRITE_YOUNGSTER, 17, 62, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerBird_keeperJose2, -1
+	person_event SPRITE_POKE_BALL, 16, 64, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a0a62, EVENT_ROUTE_27_TM_SOLARBEAM
+	person_event SPRITE_POKE_BALL, 16, 57, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a0a64, EVENT_ROUTE_27_RARE_CANDY
+	person_event SPRITE_FISHER, 14, 25, $3, 0, 0, -1, -1, 0, 0, 3, FisherScript_0x1a089c, -1
--- a/maps/Route27SandstormHouse.asm
+++ b/maps/Route27SandstormHouse.asm
@@ -96,8 +96,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 1, GROUP_ROUTE_27, MAP_ROUTE_27
-	warp_def $7, $3, 1, GROUP_ROUTE_27, MAP_ROUTE_27
+	warp_def $7, $2, 1, ROUTE_27
+	warp_def $7, $3, 1, ROUTE_27
 
 .XYTriggers:
 	db 0
@@ -109,4 +109,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_GRANNY, 8, 6, OW_UP | $2, $0, -1, -1, $0, 0, SandstormHouseWoman, -1
+	person_event SPRITE_GRANNY, 8, 6, $6, 0, 0, -1, -1, 0, 0, 0, SandstormHouseWoman, -1
--- a/maps/Route28.asm
+++ b/maps/Route28.asm
@@ -22,8 +22,8 @@
 
 .Warps:
 	db 2
-	warp_def $3, $7, 1, GROUP_ROUTE_28_FAMOUS_SPEECH_HOUSE, MAP_ROUTE_28_FAMOUS_SPEECH_HOUSE
-	warp_def $5, $21, 7, GROUP_VICTORY_ROAD_GATE, MAP_VICTORY_ROAD_GATE
+	warp_def $3, $7, 1, ROUTE_28_FAMOUS_SPEECH_HOUSE
+	warp_def $5, $21, 7, VICTORY_ROAD_GATE
 
 .XYTriggers:
 	db 0
--- a/maps/Route28FamousSpeechHouse.asm
+++ b/maps/Route28FamousSpeechHouse.asm
@@ -74,8 +74,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 1, GROUP_ROUTE_28, MAP_ROUTE_28
-	warp_def $7, $3, 1, GROUP_ROUTE_28, MAP_ROUTE_28
+	warp_def $7, $2, 1, ROUTE_28
+	warp_def $7, $3, 1, ROUTE_28
 
 .XYTriggers:
 	db 0
@@ -87,5 +87,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_COOLTRAINER_F, 7, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, Celebrity, -1
-	person_event SPRITE_MOLTRES, 9, 10, OW_UP | $12, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, CelebritysFearow, -1
+	person_event SPRITE_COOLTRAINER_F, 7, 6, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, Celebrity, -1
+	person_event SPRITE_MOLTRES, 9, 10, $16, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, CelebritysFearow, -1
--- a/maps/Route29.asm
+++ b/maps/Route29.asm
@@ -416,7 +416,7 @@
 
 .Warps:
 	db 1
-	warp_def $1, $1b, 3, GROUP_ROUTE_29_46_GATE, MAP_ROUTE_29_46_GATE
+	warp_def $1, $1b, 3, ROUTE_29_46_GATE
 
 .XYTriggers:
 	db 2
@@ -430,11 +430,11 @@
 
 .PersonEvents:
 	db 8
-	person_event SPRITE_COOLTRAINER_M, 16, 54, OW_DOWN | $3, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, CooltrainerMScript_0x1a0ff1, -1
-	person_event SPRITE_YOUNGSTER, 20, 31, OW_UP | $0, $10, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, YoungsterScript_0x1a1028, -1
-	person_event SPRITE_TEACHER, 15, 19, OW_UP | $1, $1, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, TeacherScript_0x1a102b, -1
-	person_event SPRITE_FRUIT_TREE, 6, 16, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x1a1089, -1
-	person_event SPRITE_FISHER, 7, 29, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, FisherScript_0x1a102e, -1
-	person_event SPRITE_COOLTRAINER_M, 8, 17, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, CooltrainerMScript_0x1a1031, -1
-	person_event SPRITE_TEACHER, 16, 33, OW_DOWN | $3, $0, -1, -1, $0, 0, TuscanyScript, EVENT_ROUTE_29_TUSCANY_OF_TUESDAY
-	person_event SPRITE_POKE_BALL, 6, 52, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x1a108b, EVENT_ROUTE_29_POTION
+	person_event SPRITE_COOLTRAINER_M, 16, 54, $3, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, CooltrainerMScript_0x1a0ff1, -1
+	person_event SPRITE_YOUNGSTER, 20, 31, $4, 1, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, YoungsterScript_0x1a1028, -1
+	person_event SPRITE_TEACHER, 15, 19, $5, 0, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 0, TeacherScript_0x1a102b, -1
+	person_event SPRITE_FRUIT_TREE, 6, 16, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a1089, -1
+	person_event SPRITE_FISHER, 7, 29, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, FisherScript_0x1a102e, -1
+	person_event SPRITE_COOLTRAINER_M, 8, 17, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, CooltrainerMScript_0x1a1031, -1
+	person_event SPRITE_TEACHER, 16, 33, $3, 0, 0, -1, -1, 0, 0, 0, TuscanyScript, EVENT_ROUTE_29_TUSCANY_OF_TUESDAY
+	person_event SPRITE_POKE_BALL, 6, 52, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a108b, EVENT_ROUTE_29_POTION
--- a/maps/Route2946Gate.asm
+++ b/maps/Route2946Gate.asm
@@ -38,10 +38,10 @@
 
 .Warps:
 	db 4
-	warp_def $0, $4, 1, GROUP_ROUTE_46, MAP_ROUTE_46
-	warp_def $0, $5, 2, GROUP_ROUTE_46, MAP_ROUTE_46
-	warp_def $7, $4, 1, GROUP_ROUTE_29, MAP_ROUTE_29
-	warp_def $7, $5, 1, GROUP_ROUTE_29, MAP_ROUTE_29
+	warp_def $0, $4, 1, ROUTE_46
+	warp_def $0, $5, 2, ROUTE_46
+	warp_def $7, $4, 1, ROUTE_29
+	warp_def $7, $5, 1, ROUTE_29
 
 .XYTriggers:
 	db 0
@@ -51,5 +51,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_OFFICER, 8, 4, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, OfficerScript_0x7b5bb, -1
-	person_event SPRITE_YOUNGSTER, 8, 10, OW_UP | $0, $10, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, YoungsterScript_0x7b5be, -1
+	person_event SPRITE_OFFICER, 8, 4, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, OfficerScript_0x7b5bb, -1
+	person_event SPRITE_YOUNGSTER, 8, 10, $4, 1, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, YoungsterScript_0x7b5be, -1
--- a/maps/Route2Gate.asm
+++ b/maps/Route2Gate.asm
@@ -28,10 +28,10 @@
 
 .Warps:
 	db 4
-	warp_def $0, $4, 3, GROUP_ROUTE_2, MAP_ROUTE_2
-	warp_def $0, $5, 4, GROUP_ROUTE_2, MAP_ROUTE_2
-	warp_def $7, $4, 2, GROUP_ROUTE_2, MAP_ROUTE_2
-	warp_def $7, $5, 2, GROUP_ROUTE_2, MAP_ROUTE_2
+	warp_def $0, $4, 3, ROUTE_2
+	warp_def $0, $5, 4, ROUTE_2
+	warp_def $7, $4, 2, ROUTE_2
+	warp_def $7, $5, 2, ROUTE_2
 
 .XYTriggers:
 	db 0
@@ -41,4 +41,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_SCIENTIST, 8, 10, OW_UP | $0, $20, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ScientistScript_0x9b952, -1
+	person_event SPRITE_SCIENTIST, 8, 10, $4, 2, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ScientistScript_0x9b952, -1
--- a/maps/Route2NuggetSpeechHouse.asm
+++ b/maps/Route2NuggetSpeechHouse.asm
@@ -55,8 +55,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 1, GROUP_ROUTE_2, MAP_ROUTE_2
-	warp_def $7, $3, 1, GROUP_ROUTE_2, MAP_ROUTE_2
+	warp_def $7, $2, 1, ROUTE_2
+	warp_def $7, $3, 1, ROUTE_2
 
 .XYTriggers:
 	db 0
@@ -66,4 +66,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_FISHER, 8, 6, OW_UP | $0, $20, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, FisherScript_0x9b847, -1
+	person_event SPRITE_FISHER, 8, 6, $4, 2, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, FisherScript_0x9b847, -1
--- a/maps/Route3.asm
+++ b/maps/Route3.asm
@@ -132,7 +132,7 @@
 
 .Warps:
 	db 1
-	warp_def $1, $34, 1, GROUP_MOUNT_MOON, MAP_MOUNT_MOON
+	warp_def $1, $34, 1, MOUNT_MOON
 
 .XYTriggers:
 	db 0
@@ -143,7 +143,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_FISHER, 16, 30, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $82, 2, TrainerFirebreatherOtis, -1
-	person_event SPRITE_YOUNGSTER, 11, 14, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerYoungsterWarren, -1
-	person_event SPRITE_YOUNGSTER, 7, 20, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 1, TrainerYoungsterJimmy, -1
-	person_event SPRITE_FISHER, 9, 53, OW_LEFT | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerFirebreatherBurt, -1
+	person_event SPRITE_FISHER, 16, 30, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 2, TrainerFirebreatherOtis, -1
+	person_event SPRITE_YOUNGSTER, 11, 14, $8, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerYoungsterWarren, -1
+	person_event SPRITE_YOUNGSTER, 7, 20, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 1, TrainerYoungsterJimmy, -1
+	person_event SPRITE_FISHER, 9, 53, $a, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerFirebreatherBurt, -1
--- a/maps/Route30.asm
+++ b/maps/Route30.asm
@@ -400,8 +400,8 @@
 
 .Warps:
 	db 2
-	warp_def $27, $7, 1, GROUP_ROUTE_30_BERRY_SPEECH_HOUSE, MAP_ROUTE_30_BERRY_SPEECH_HOUSE
-	warp_def $5, $11, 1, GROUP_MR_POKEMONS_HOUSE, MAP_MR_POKEMONS_HOUSE
+	warp_def $27, $7, 1, ROUTE_30_BERRY_SPEECH_HOUSE
+	warp_def $5, $11, 1, MR_POKEMONS_HOUSE
 
 .XYTriggers:
 	db 0
@@ -416,14 +416,14 @@
 
 .PersonEvents:
 	db 11
-	person_event SPRITE_YOUNGSTER, 30, 9, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, YoungsterScript_0x1a1673, EVENT_ROUTE_30_BATTLE
-	person_event SPRITE_YOUNGSTER, 32, 6, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerYoungsterJoey, EVENT_ROUTE_30_YOUNGSTER_JOEY
-	person_event SPRITE_YOUNGSTER, 27, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 1, TrainerYoungsterMikey, -1
-	person_event SPRITE_BUG_CATCHER, 11, 5, OW_UP | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 3, TrainerBug_catcherDon, -1
-	person_event SPRITE_YOUNGSTER, 34, 11, OW_UP | $1, $1, -1, -1, (PAL_OW_RED << 4) | $80, 0, YoungsterScript_0x1a17d2, -1
-	person_event SPRITE_MONSTER, 28, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, ObjectEvent, EVENT_ROUTE_30_BATTLE
-	person_event SPRITE_MONSTER, 29, 9, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ObjectEvent, EVENT_ROUTE_30_BATTLE
-	person_event SPRITE_FRUIT_TREE, 43, 9, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x1a17f7, -1
-	person_event SPRITE_FRUIT_TREE, 9, 15, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x1a17f9, -1
-	person_event SPRITE_COOLTRAINER_F, 17, 6, OW_UP | $2, $0, -1, -1, $0, 0, CooltrainerFScript_0x1a17e6, -1
-	person_event SPRITE_POKE_BALL, 39, 12, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x1a17f5, EVENT_ROUTE_30_ANTIDOTE
+	person_event SPRITE_YOUNGSTER, 30, 9, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, YoungsterScript_0x1a1673, EVENT_ROUTE_30_BATTLE
+	person_event SPRITE_YOUNGSTER, 32, 6, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerYoungsterJoey, EVENT_ROUTE_30_YOUNGSTER_JOEY
+	person_event SPRITE_YOUNGSTER, 27, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 1, TrainerYoungsterMikey, -1
+	person_event SPRITE_BUG_CATCHER, 11, 5, $6, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 3, TrainerBug_catcherDon, -1
+	person_event SPRITE_YOUNGSTER, 34, 11, $5, 0, 1, -1, -1, 8 + PAL_OW_RED, 0, 0, YoungsterScript_0x1a17d2, -1
+	person_event SPRITE_MONSTER, 28, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, ObjectEvent, EVENT_ROUTE_30_BATTLE
+	person_event SPRITE_MONSTER, 29, 9, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_ROUTE_30_BATTLE
+	person_event SPRITE_FRUIT_TREE, 43, 9, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a17f7, -1
+	person_event SPRITE_FRUIT_TREE, 9, 15, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a17f9, -1
+	person_event SPRITE_COOLTRAINER_F, 17, 6, $6, 0, 0, -1, -1, 0, 0, 0, CooltrainerFScript_0x1a17e6, -1
+	person_event SPRITE_POKE_BALL, 39, 12, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a17f5, EVENT_ROUTE_30_ANTIDOTE
--- a/maps/Route30BerrySpeechHouse.asm
+++ b/maps/Route30BerrySpeechHouse.asm
@@ -49,8 +49,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 1, GROUP_ROUTE_30, MAP_ROUTE_30
-	warp_def $7, $3, 1, GROUP_ROUTE_30, MAP_ROUTE_30
+	warp_def $7, $2, 1, ROUTE_30
+	warp_def $7, $3, 1, ROUTE_30
 
 .XYTriggers:
 	db 0
@@ -62,4 +62,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_POKEFAN_M, 7, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, PokefanMScript_0x196d64, -1
+	person_event SPRITE_POKEFAN_M, 7, 6, $6, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, PokefanMScript_0x196d64, -1
--- a/maps/Route31.asm
+++ b/maps/Route31.asm
@@ -416,9 +416,9 @@
 
 .Warps:
 	db 3
-	warp_def $6, $4, 3, GROUP_ROUTE_31_VIOLET_GATE, MAP_ROUTE_31_VIOLET_GATE
-	warp_def $7, $4, 4, GROUP_ROUTE_31_VIOLET_GATE, MAP_ROUTE_31_VIOLET_GATE
-	warp_def $5, $22, 1, GROUP_DARK_CAVE_VIOLET_ENTRANCE, MAP_DARK_CAVE_VIOLET_ENTRANCE
+	warp_def $6, $4, 3, ROUTE_31_VIOLET_GATE
+	warp_def $7, $4, 4, ROUTE_31_VIOLET_GATE
+	warp_def $5, $22, 1, DARK_CAVE_VIOLET_ENTRANCE
 
 .XYTriggers:
 	db 0
@@ -430,10 +430,10 @@
 
 .PersonEvents:
 	db 7
-	person_event SPRITE_FISHER, 11, 21, OW_UP | $2, $0, -1, -1, $0, 0, FisherScript_0x1a5570, -1
-	person_event SPRITE_YOUNGSTER, 9, 13, OW_DOWN | $2, $11, -1, -1, $0, 0, YoungsterScript_0x1a55ed, -1
-	person_event SPRITE_BUG_CATCHER, 17, 25, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 5, TrainerBug_catcherWade1, -1
-	person_event SPRITE_COOLTRAINER_M, 12, 37, OW_DOWN | $2, $11, -1, -1, $0, 0, CooltrainerMScript_0x1a55f6, -1
-	person_event SPRITE_FRUIT_TREE, 11, 20, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x1a55f9, -1
-	person_event SPRITE_POKE_BALL, 9, 33, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x1a55fb, EVENT_ROUTE_31_POTION
-	person_event SPRITE_POKE_BALL, 19, 23, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x1a55fd, EVENT_ROUTE_31_POKE_BALL
+	person_event SPRITE_FISHER, 11, 21, $6, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x1a5570, -1
+	person_event SPRITE_YOUNGSTER, 9, 13, $2, 1, 1, -1, -1, 0, 0, 0, YoungsterScript_0x1a55ed, -1
+	person_event SPRITE_BUG_CATCHER, 17, 25, $8, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 5, TrainerBug_catcherWade1, -1
+	person_event SPRITE_COOLTRAINER_M, 12, 37, $2, 1, 1, -1, -1, 0, 0, 0, CooltrainerMScript_0x1a55f6, -1
+	person_event SPRITE_FRUIT_TREE, 11, 20, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a55f9, -1
+	person_event SPRITE_POKE_BALL, 9, 33, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a55fb, EVENT_ROUTE_31_POTION
+	person_event SPRITE_POKE_BALL, 19, 23, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a55fd, EVENT_ROUTE_31_POKE_BALL
--- a/maps/Route31VioletGate.asm
+++ b/maps/Route31VioletGate.asm
@@ -29,10 +29,10 @@
 
 .Warps:
 	db 4
-	warp_def $4, $0, 8, GROUP_VIOLET_CITY, MAP_VIOLET_CITY
-	warp_def $5, $0, 9, GROUP_VIOLET_CITY, MAP_VIOLET_CITY
-	warp_def $4, $9, 1, GROUP_ROUTE_31, MAP_ROUTE_31
-	warp_def $5, $9, 2, GROUP_ROUTE_31, MAP_ROUTE_31
+	warp_def $4, $0, 8, VIOLET_CITY
+	warp_def $5, $0, 9, VIOLET_CITY
+	warp_def $4, $9, 1, ROUTE_31
+	warp_def $5, $9, 2, ROUTE_31
 
 .XYTriggers:
 	db 0
@@ -42,5 +42,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_OFFICER, 6, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, OfficerScript_0x197634, -1
-	person_event SPRITE_COOLTRAINER_F, 6, 5, OW_DOWN | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, CooltrainerFScript_0x197637, -1
+	person_event SPRITE_OFFICER, 6, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, OfficerScript_0x197634, -1
+	person_event SPRITE_COOLTRAINER_F, 6, 5, $3, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, CooltrainerFScript_0x197637, -1
--- a/maps/Route32.asm
+++ b/maps/Route32.asm
@@ -925,10 +925,10 @@
 
 .Warps:
 	db 4
-	warp_def $49, $b, 1, GROUP_ROUTE_32_POKECENTER_1F, MAP_ROUTE_32_POKECENTER_1F
-	warp_def $2, $4, 3, GROUP_ROUTE_32_RUINS_OF_ALPH_GATE, MAP_ROUTE_32_RUINS_OF_ALPH_GATE
-	warp_def $3, $4, 4, GROUP_ROUTE_32_RUINS_OF_ALPH_GATE, MAP_ROUTE_32_RUINS_OF_ALPH_GATE
-	warp_def $4f, $6, 4, GROUP_UNION_CAVE_1F, MAP_UNION_CAVE_1F
+	warp_def $49, $b, 1, ROUTE_32_POKECENTER_1F
+	warp_def $2, $4, 3, ROUTE_32_RUINS_OF_ALPH_GATE
+	warp_def $3, $4, 4, ROUTE_32_RUINS_OF_ALPH_GATE
+	warp_def $4f, $6, 4, UNION_CAVE_1F
 
 .XYTriggers:
 	db 2
@@ -946,17 +946,17 @@
 
 .PersonEvents:
 	db 14
-	person_event SPRITE_FISHER, 53, 12, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 1, TrainerFisherJustin, -1
-	person_event SPRITE_FISHER, 60, 16, OW_UP | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 3, TrainerFisherRalph1, -1
-	person_event SPRITE_FISHER, 52, 10, OW_LEFT | $0, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 1, TrainerFisherHenry, -1
-	person_event SPRITE_YOUNGSTER, 26, 16, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerYoungsterAlbert, -1
-	person_event SPRITE_YOUNGSTER, 67, 8, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerYoungsterGordon, -1
-	person_event SPRITE_YOUNGSTER, 49, 7, OW_UP | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 3, TrainerCamperRoland, -1
-	person_event SPRITE_LASS, 34, 14, OW_LEFT | $0, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 1, TrainerPicnickerLiz1, -1
-	person_event SPRITE_COOLTRAINER_M, 12, 23, OW_LEFT | $0, $0, -1, -1, $0, 0, CooltrainerMScript_0x19046f, -1
-	person_event SPRITE_YOUNGSTER, 86, 15, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerBird_keeperPeter, -1
-	person_event SPRITE_FISHER, 74, 11, OW_UP | $2, $0, -1, -1, $0, 0, FisherScript_0x1904f2, EVENT_SLOWPOKE_WELL_ROCKETS
-	person_event SPRITE_POKE_BALL, 57, 10, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x190773, EVENT_ROUTE_32_GREAT_BALL
-	person_event SPRITE_FISHER, 17, 19, OW_LEFT | $1, $0, -1, -1, $0, 0, FisherScript_0x1904ce, -1
-	person_event SPRITE_LASS, 71, 16, OW_LEFT | $0, $0, -1, -1, $0, 0, FriedaScript, EVENT_ROUTE_32_FRIEDA_OF_FRIDAY
-	person_event SPRITE_POKE_BALL, 34, 7, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x190775, EVENT_ROUTE_32_REPEL
+	person_event SPRITE_FISHER, 53, 12, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 1, TrainerFisherJustin, -1
+	person_event SPRITE_FISHER, 60, 16, $7, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 3, TrainerFisherRalph1, -1
+	person_event SPRITE_FISHER, 52, 10, $8, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 1, TrainerFisherHenry, -1
+	person_event SPRITE_YOUNGSTER, 26, 16, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerYoungsterAlbert, -1
+	person_event SPRITE_YOUNGSTER, 67, 8, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerYoungsterGordon, -1
+	person_event SPRITE_YOUNGSTER, 49, 7, $7, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 3, TrainerCamperRoland, -1
+	person_event SPRITE_LASS, 34, 14, $8, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 1, TrainerPicnickerLiz1, -1
+	person_event SPRITE_COOLTRAINER_M, 12, 23, $8, 0, 0, -1, -1, 0, 0, 0, CooltrainerMScript_0x19046f, -1
+	person_event SPRITE_YOUNGSTER, 86, 15, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerBird_keeperPeter, -1
+	person_event SPRITE_FISHER, 74, 11, $6, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x1904f2, EVENT_SLOWPOKE_WELL_ROCKETS
+	person_event SPRITE_POKE_BALL, 57, 10, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x190773, EVENT_ROUTE_32_GREAT_BALL
+	person_event SPRITE_FISHER, 17, 19, $9, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x1904ce, -1
+	person_event SPRITE_LASS, 71, 16, $8, 0, 0, -1, -1, 0, 0, 0, FriedaScript, EVENT_ROUTE_32_FRIEDA_OF_FRIDAY
+	person_event SPRITE_POKE_BALL, 34, 7, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x190775, EVENT_ROUTE_32_REPEL
--- a/maps/Route32PokeCenter1F.asm
+++ b/maps/Route32PokeCenter1F.asm
@@ -95,9 +95,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $3, 1, GROUP_ROUTE_32, MAP_ROUTE_32
-	warp_def $7, $4, 1, GROUP_ROUTE_32, MAP_ROUTE_32
-	warp_def $7, $0, 1, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
+	warp_def $7, $3, 1, ROUTE_32
+	warp_def $7, $4, 1, ROUTE_32
+	warp_def $7, $0, 1, POKECENTER_2F
 
 .XYTriggers:
 	db 0
@@ -107,6 +107,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_NURSE, 5, 7, OW_UP | $2, $0, -1, -1, $0, 0, NurseScript_0x69b52, -1
-	person_event SPRITE_FISHING_GURU, 8, 5, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, FishingGuruScript_0x69b55, -1
-	person_event SPRITE_COOLTRAINER_F, 6, 10, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, CooltrainerFScript_0x69b80, -1
+	person_event SPRITE_NURSE, 5, 7, $6, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x69b52, -1
+	person_event SPRITE_FISHING_GURU, 8, 5, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, FishingGuruScript_0x69b55, -1
+	person_event SPRITE_COOLTRAINER_F, 6, 10, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, CooltrainerFScript_0x69b80, -1
--- a/maps/Route32RuinsofAlphGate.asm
+++ b/maps/Route32RuinsofAlphGate.asm
@@ -47,10 +47,10 @@
 
 .Warps:
 	db 4
-	warp_def $4, $0, 10, GROUP_RUINS_OF_ALPH_OUTSIDE, MAP_RUINS_OF_ALPH_OUTSIDE
-	warp_def $5, $0, 11, GROUP_RUINS_OF_ALPH_OUTSIDE, MAP_RUINS_OF_ALPH_OUTSIDE
-	warp_def $4, $9, 2, GROUP_ROUTE_32, MAP_ROUTE_32
-	warp_def $5, $9, 3, GROUP_ROUTE_32, MAP_ROUTE_32
+	warp_def $4, $0, 10, RUINS_OF_ALPH_OUTSIDE
+	warp_def $5, $0, 11, RUINS_OF_ALPH_OUTSIDE
+	warp_def $4, $9, 2, ROUTE_32
+	warp_def $5, $9, 3, ROUTE_32
 
 .XYTriggers:
 	db 0
@@ -60,6 +60,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_OFFICER, 6, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, OfficerScript_0x69a2d, -1
-	person_event SPRITE_POKEFAN_M, 6, 12, OW_UP | $0, $10, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, PokefanMScript_0x69a30, -1
-	person_event SPRITE_YOUNGSTER, 10, 5, OW_UP | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, YoungsterScript_0x69a33, -1
+	person_event SPRITE_OFFICER, 6, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, OfficerScript_0x69a2d, -1
+	person_event SPRITE_POKEFAN_M, 6, 12, $4, 1, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, PokefanMScript_0x69a30, -1
+	person_event SPRITE_YOUNGSTER, 10, 5, $7, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, YoungsterScript_0x69a33, -1
--- a/maps/Route33.asm
+++ b/maps/Route33.asm
@@ -195,7 +195,7 @@
 
 .Warps:
 	db 1
-	warp_def $9, $b, 3, GROUP_UNION_CAVE_1F, MAP_UNION_CAVE_1F
+	warp_def $9, $b, 3, UNION_CAVE_1F
 
 .XYTriggers:
 	db 0
@@ -206,6 +206,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_POKEFAN_M, 17, 10, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 2, TrainerHikerAnthony, -1
-	person_event SPRITE_LASS, 20, 17, OW_DOWN | $2, $11, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, LassScript_0x1ac002, -1
-	person_event SPRITE_FRUIT_TREE, 20, 18, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x1ac0ea, -1
+	person_event SPRITE_POKEFAN_M, 17, 10, $a, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 2, TrainerHikerAnthony, -1
+	person_event SPRITE_LASS, 20, 17, $2, 1, 1, -1, -1, 8 + PAL_OW_BLUE, 0, 0, LassScript_0x1ac002, -1
+	person_event SPRITE_FRUIT_TREE, 20, 18, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1ac0ea, -1
--- a/maps/Route34.asm
+++ b/maps/Route34.asm
@@ -756,11 +756,11 @@
 
 .Warps:
 	db 5
-	warp_def $25, $d, 1, GROUP_ROUTE_34_ILEX_FOREST_GATE, MAP_ROUTE_34_ILEX_FOREST_GATE
-	warp_def $25, $e, 2, GROUP_ROUTE_34_ILEX_FOREST_GATE, MAP_ROUTE_34_ILEX_FOREST_GATE
-	warp_def $e, $b, 1, GROUP_DAYCARE, MAP_DAYCARE
-	warp_def $f, $b, 2, GROUP_DAYCARE, MAP_DAYCARE
-	warp_def $f, $d, 3, GROUP_DAYCARE, MAP_DAYCARE
+	warp_def $25, $d, 1, ROUTE_34_ILEX_FOREST_GATE
+	warp_def $25, $e, 2, ROUTE_34_ILEX_FOREST_GATE
+	warp_def $e, $b, 1, DAYCARE
+	warp_def $f, $b, 2, DAYCARE
+	warp_def $f, $d, 3, DAYCARE
 
 .XYTriggers:
 	db 0
@@ -775,16 +775,16 @@
 
 .PersonEvents:
 	db 13
-	person_event SPRITE_YOUNGSTER, 11, 17, OW_LEFT | $0, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 5, TrainerCamperTodd1, -1
-	person_event SPRITE_YOUNGSTER, 36, 19, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerYoungsterSamuel, -1
-	person_event SPRITE_YOUNGSTER, 24, 15, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerYoungsterIan, -1
-	person_event SPRITE_LASS, 30, 14, OW_LEFT | $1, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 3, TrainerPicnickerGina1, -1
-	person_event SPRITE_OFFICER, 15, 13, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, OfficerScript_0x7824c, -1
-	person_event SPRITE_POKEFAN_M, 32, 22, OW_RIGHT | $12, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerPokefanmBrandon, -1
-	person_event SPRITE_GRAMPS, 20, 19, OW_UP | $2, $0, -1, -1, $0, 0, GrampsScript_0x7803d, EVENT_DAYCARE_MAN_ON_ROUTE_34
-	person_event SPRITE_DAYCARE_MON_1, 22, 18, OW_UP | $12, $22, -1, -1, $0, 0, DaycareMon1Script_0x78065, EVENT_DAYCARE_MON_1
-	person_event SPRITE_DAYCARE_MON_2, 23, 21, OW_UP | $12, $22, -1, -1, $0, 0, DaycareMon2Script_0x7806b, EVENT_DAYCARE_MON_2
-	person_event SPRITE_COOLTRAINER_F, 52, 15, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $82, 5, TrainerCooltrainerfIrene, -1
-	person_event SPRITE_COOLTRAINER_F, 52, 7, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerCooltrainerfJenn, -1
-	person_event SPRITE_COOLTRAINER_F, 55, 10, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $82, 2, TrainerCooltrainerfKate, -1
-	person_event SPRITE_POKE_BALL, 34, 11, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7832b, EVENT_ROUTE_34_NUGGET
+	person_event SPRITE_YOUNGSTER, 11, 17, $8, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 5, TrainerCamperTodd1, -1
+	person_event SPRITE_YOUNGSTER, 36, 19, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerYoungsterSamuel, -1
+	person_event SPRITE_YOUNGSTER, 24, 15, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerYoungsterIan, -1
+	person_event SPRITE_LASS, 30, 14, $9, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 3, TrainerPicnickerGina1, -1
+	person_event SPRITE_OFFICER, 15, 13, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, OfficerScript_0x7824c, -1
+	person_event SPRITE_POKEFAN_M, 32, 22, $1e, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerPokefanmBrandon, -1
+	person_event SPRITE_GRAMPS, 20, 19, $6, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x7803d, EVENT_DAYCARE_MAN_ON_ROUTE_34
+	person_event SPRITE_DAYCARE_MON_1, 22, 18, $16, 2, 2, -1, -1, 0, 0, 0, DaycareMon1Script_0x78065, EVENT_DAYCARE_MON_1
+	person_event SPRITE_DAYCARE_MON_2, 23, 21, $16, 2, 2, -1, -1, 0, 0, 0, DaycareMon2Script_0x7806b, EVENT_DAYCARE_MON_2
+	person_event SPRITE_COOLTRAINER_F, 52, 15, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 5, TrainerCooltrainerfIrene, -1
+	person_event SPRITE_COOLTRAINER_F, 52, 7, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerCooltrainerfJenn, -1
+	person_event SPRITE_COOLTRAINER_F, 55, 10, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 2, TrainerCooltrainerfKate, -1
+	person_event SPRITE_POKE_BALL, 34, 11, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7832b, EVENT_ROUTE_34_NUGGET
--- a/maps/Route34IlexForestGate.asm
+++ b/maps/Route34IlexForestGate.asm
@@ -138,10 +138,10 @@
 
 .Warps:
 	db 4
-	warp_def $0, $4, 1, GROUP_ROUTE_34, MAP_ROUTE_34
-	warp_def $0, $5, 2, GROUP_ROUTE_34, MAP_ROUTE_34
-	warp_def $7, $4, 1, GROUP_ILEX_FOREST, MAP_ILEX_FOREST
-	warp_def $7, $5, 1, GROUP_ILEX_FOREST, MAP_ILEX_FOREST
+	warp_def $0, $4, 1, ROUTE_34
+	warp_def $0, $5, 2, ROUTE_34
+	warp_def $7, $4, 1, ILEX_FOREST
+	warp_def $7, $5, 1, ILEX_FOREST
 
 .XYTriggers:
 	db 1
@@ -152,7 +152,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_TEACHER, 7, 13, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, TeacherScript_0x62d63, EVENT_ROUTE_34_ILEX_FOREST_GATE_TEACHER_BEHIND_COUNTER
-	person_event SPRITE_BUTTERFREE, 8, 13, OW_UP | $12, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, ButterfreeScript_0x62d8a, -1
-	person_event SPRITE_LASS, 8, 7, OW_UP | $0, $10, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, LassScript_0x62d94, EVENT_ROUTE_34_ILEX_FOREST_GATE_LASS
-	person_event SPRITE_TEACHER, 11, 9, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, TeacherScript_0x62d63, EVENT_ROUTE_34_ILEX_FOREST_GATE_TEACHER_IN_WALKWAY
+	person_event SPRITE_TEACHER, 7, 13, $8, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, TeacherScript_0x62d63, EVENT_ROUTE_34_ILEX_FOREST_GATE_TEACHER_BEHIND_COUNTER
+	person_event SPRITE_BUTTERFREE, 8, 13, $16, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, ButterfreeScript_0x62d8a, -1
+	person_event SPRITE_LASS, 8, 7, $4, 1, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, LassScript_0x62d94, EVENT_ROUTE_34_ILEX_FOREST_GATE_LASS
+	person_event SPRITE_TEACHER, 11, 9, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, TeacherScript_0x62d63, EVENT_ROUTE_34_ILEX_FOREST_GATE_TEACHER_IN_WALKWAY
--- a/maps/Route35.asm
+++ b/maps/Route35.asm
@@ -455,9 +455,9 @@
 
 .Warps:
 	db 3
-	warp_def $21, $9, 1, GROUP_ROUTE_35_GOLDENROD_GATE, MAP_ROUTE_35_GOLDENROD_GATE
-	warp_def $21, $a, 2, GROUP_ROUTE_35_GOLDENROD_GATE, MAP_ROUTE_35_GOLDENROD_GATE
-	warp_def $5, $3, 3, GROUP_ROUTE_35_NATIONAL_PARK_GATE, MAP_ROUTE_35_NATIONAL_PARK_GATE
+	warp_def $21, $9, 1, ROUTE_35_GOLDENROD_GATE
+	warp_def $21, $a, 2, ROUTE_35_GOLDENROD_GATE
+	warp_def $5, $3, 3, ROUTE_35_NATIONAL_PARK_GATE
 
 .XYTriggers:
 	db 0
@@ -469,14 +469,14 @@
 
 .PersonEvents:
 	db 11
-	person_event SPRITE_YOUNGSTER, 23, 8, OW_LEFT | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 2, TrainerCamperIvan, -1
-	person_event SPRITE_YOUNGSTER, 24, 12, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 3, TrainerCamperElliot, -1
-	person_event SPRITE_LASS, 24, 11, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 3, TrainerPicnickerBrooke, -1
-	person_event SPRITE_LASS, 30, 14, OW_LEFT | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 1, TrainerPicnickerKim, -1
-	person_event SPRITE_YOUNGSTER, 32, 18, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 0, TrainerBird_keeperBryan, -1
-	person_event SPRITE_FISHER, 14, 6, OW_RIGHT | $12, $0, -1, -1, (PAL_OW_RED << 4) | $82, 2, TrainerFirebreatherWalt, -1
-	person_event SPRITE_BUG_CATCHER, 11, 20, OW_UP | $2, $2, -1, -1, (PAL_OW_BROWN << 4) | $82, 3, TrainerBug_catcherArnie1, -1
-	person_event SPRITE_SUPER_NERD, 14, 9, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 2, TrainerJugglerIrwin, -1
-	person_event SPRITE_OFFICER, 10, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, OfficerScript_0x19ca49, -1
-	person_event SPRITE_FRUIT_TREE, 29, 6, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x19ca7e, -1
-	person_event SPRITE_POKE_BALL, 20, 17, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x19ca7c, EVENT_ROUTE_35_TM_ROLLOUT
+	person_event SPRITE_YOUNGSTER, 23, 8, $a, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 2, TrainerCamperIvan, -1
+	person_event SPRITE_YOUNGSTER, 24, 12, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 3, TrainerCamperElliot, -1
+	person_event SPRITE_LASS, 24, 11, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 3, TrainerPicnickerBrooke, -1
+	person_event SPRITE_LASS, 30, 14, $a, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 1, TrainerPicnickerKim, -1
+	person_event SPRITE_YOUNGSTER, 32, 18, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 0, TrainerBird_keeperBryan, -1
+	person_event SPRITE_FISHER, 14, 6, $1e, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 2, TrainerFirebreatherWalt, -1
+	person_event SPRITE_BUG_CATCHER, 11, 20, $6, 0, 2, -1, -1, 8 + PAL_OW_BROWN, 2, 3, TrainerBug_catcherArnie1, -1
+	person_event SPRITE_SUPER_NERD, 14, 9, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 2, TrainerJugglerIrwin, -1
+	person_event SPRITE_OFFICER, 10, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, OfficerScript_0x19ca49, -1
+	person_event SPRITE_FRUIT_TREE, 29, 6, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x19ca7e, -1
+	person_event SPRITE_POKE_BALL, 20, 17, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19ca7c, EVENT_ROUTE_35_TM_ROLLOUT
--- a/maps/Route35Goldenrodgate.asm
+++ b/maps/Route35Goldenrodgate.asm
@@ -196,10 +196,10 @@
 
 .Warps:
 	db 4
-	warp_def $0, $4, 1, GROUP_ROUTE_35, MAP_ROUTE_35
-	warp_def $0, $5, 2, GROUP_ROUTE_35, MAP_ROUTE_35
-	warp_def $7, $4, 12, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
-	warp_def $7, $5, 12, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
+	warp_def $0, $4, 1, ROUTE_35
+	warp_def $0, $5, 2, ROUTE_35
+	warp_def $7, $4, 12, GOLDENROD_CITY
+	warp_def $7, $5, 12, GOLDENROD_CITY
 
 .XYTriggers:
 	db 0
@@ -209,6 +209,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_OFFICER, 8, 4, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, OfficerScript_0x69d37, -1
-	person_event SPRITE_POKEFAN_F, 8, 10, OW_UP | $0, $10, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, PokefanFScript_0x69dc6, -1
-	person_event SPRITE_FISHER, 6, 7, OW_DOWN | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, FisherScript_0x69dda, -1
+	person_event SPRITE_OFFICER, 8, 4, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, OfficerScript_0x69d37, -1
+	person_event SPRITE_POKEFAN_F, 8, 10, $4, 1, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, PokefanFScript_0x69dc6, -1
+	person_event SPRITE_FISHER, 6, 7, $3, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, FisherScript_0x69dda, -1
--- a/maps/Route35NationalParkgate.asm
+++ b/maps/Route35NationalParkgate.asm
@@ -77,7 +77,7 @@
 	playsound SFX_ENTER_DOOR
 	special FadeBlackBGMap
 	waitbutton
-	warpfacing $1, GROUP_NATIONAL_PARK_BUG_CONTEST, MAP_NATIONAL_PARK_BUG_CONTEST, $a, $2f
+	warpfacing $1, NATIONAL_PARK_BUG_CONTEST, $a, $2f
 	end
 
 OfficerScript_0x6a204:
@@ -115,7 +115,7 @@
 	special FadeBlackBGMap
 	waitbutton
 	special Special_SelectRandomBugContestContestants
-	warpfacing $1, GROUP_NATIONAL_PARK_BUG_CONTEST, MAP_NATIONAL_PARK_BUG_CONTEST, $a, $2f
+	warpfacing $1, NATIONAL_PARK_BUG_CONTEST, $a, $2f
 	end
 
 Route35NationalParkgate_EnterContest:
@@ -135,7 +135,7 @@
 	if_equal 0, Route35NationalParkgate_NoRoomInBox
 
 Route35NationalParkgate_LessThanFullParty: ; 6a27d
-	special Function71ac
+	special CheckFirstMonIsEgg
 	if_equal $1, Route35NationalParkgate_FirstMonIsEgg
 	writetext UnknownText_0x6a4c6
 	yesorno
@@ -444,10 +444,10 @@
 
 .Warps:
 	db 4
-	warp_def $0, $3, 3, GROUP_NATIONAL_PARK, MAP_NATIONAL_PARK
-	warp_def $0, $4, 4, GROUP_NATIONAL_PARK, MAP_NATIONAL_PARK
-	warp_def $7, $3, 3, GROUP_ROUTE_35, MAP_ROUTE_35
-	warp_def $7, $4, 3, GROUP_ROUTE_35, MAP_ROUTE_35
+	warp_def $0, $3, 3, NATIONAL_PARK
+	warp_def $0, $4, 4, NATIONAL_PARK
+	warp_def $7, $3, 3, ROUTE_35
+	warp_def $7, $4, 3, ROUTE_35
 
 .XYTriggers:
 	db 0
@@ -458,6 +458,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_OFFICER, 5, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, OfficerScript_0x6a204, EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY
-	person_event SPRITE_YOUNGSTER, 9, 10, OW_DOWN | $2, $11, -1, -1, (PAL_OW_RED << 4) | $80, 0, YoungsterScript_0x6a2d8, EVENT_ROUTE_35_NATIONAL_PARK_GATE_YOUNGSTER
-	person_event SPRITE_OFFICER, 7, 4, OW_LEFT | $1, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, OfficerScript_0x6a2ca, EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY
+	person_event SPRITE_OFFICER, 5, 6, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, OfficerScript_0x6a204, EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY
+	person_event SPRITE_YOUNGSTER, 9, 10, $2, 1, 1, -1, -1, 8 + PAL_OW_RED, 0, 0, YoungsterScript_0x6a2d8, EVENT_ROUTE_35_NATIONAL_PARK_GATE_YOUNGSTER
+	person_event SPRITE_OFFICER, 7, 4, $9, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, OfficerScript_0x6a2ca, EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY
--- a/maps/Route36.asm
+++ b/maps/Route36.asm
@@ -40,7 +40,7 @@
 	pause 10
 	dotrigger $0
 	clearevent EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY
-	domaptrigger GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY, $1
+	domaptrigger CIANWOOD_CITY, $1
 	end
 
 WeirdTreeScript_0x19403c:
@@ -660,10 +660,10 @@
 
 .Warps:
 	db 4
-	warp_def $8, $12, 3, GROUP_ROUTE_36_NATIONAL_PARK_GATE, MAP_ROUTE_36_NATIONAL_PARK_GATE
-	warp_def $9, $12, 4, GROUP_ROUTE_36_NATIONAL_PARK_GATE, MAP_ROUTE_36_NATIONAL_PARK_GATE
-	warp_def $d, $2f, 1, GROUP_ROUTE_36_RUINS_OF_ALPH_GATE, MAP_ROUTE_36_RUINS_OF_ALPH_GATE
-	warp_def $d, $30, 2, GROUP_ROUTE_36_RUINS_OF_ALPH_GATE, MAP_ROUTE_36_RUINS_OF_ALPH_GATE
+	warp_def $8, $12, 3, ROUTE_36_NATIONAL_PARK_GATE
+	warp_def $9, $12, 4, ROUTE_36_NATIONAL_PARK_GATE
+	warp_def $d, $2f, 1, ROUTE_36_RUINS_OF_ALPH_GATE
+	warp_def $d, $30, 2, ROUTE_36_RUINS_OF_ALPH_GATE
 
 .XYTriggers:
 	db 2
@@ -679,12 +679,12 @@
 
 .PersonEvents:
 	db 9
-	person_event SPRITE_YOUNGSTER, 17, 24, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerPsychicMark, -1
-	person_event SPRITE_YOUNGSTER, 18, 35, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 5, TrainerSchoolboyAlan1, -1
-	person_event SPRITE_WEIRD_TREE, 13, 39, OW_UP | $13, $0, -1, -1, $0, 0, WeirdTreeScript_0x19403c, EVENT_ROUTE_36_SUDOWOODO
-	person_event SPRITE_LASS, 12, 55, OW_UP | $1, $2, -1, -1, $0, 0, LassScript_0x1940e0, -1
-	person_event SPRITE_FISHER, 13, 48, OW_LEFT | $0, $0, -1, -1, $0, 0, FisherScript_0x1940b9, -1
-	person_event SPRITE_FRUIT_TREE, 8, 25, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x194247, -1
-	person_event SPRITE_YOUNGSTER, 10, 50, OW_DOWN | $2, $11, -1, -1, $0, 0, ArthurScript, EVENT_ROUTE_36_ARTHUR_OF_THURSDAY
-	person_event SPRITE_LASS, 16, 37, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, LassScript_0x19408c, EVENT_FLORIA_AT_SUDOWOODO
-	person_event SPRITE_SUICUNE, 10, 25, OW_DOWN | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ObjectEvent, EVENT_SAW_SUICUNE_ON_ROUTE_36
+	person_event SPRITE_YOUNGSTER, 17, 24, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerPsychicMark, -1
+	person_event SPRITE_YOUNGSTER, 18, 35, $8, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 5, TrainerSchoolboyAlan1, -1
+	person_event SPRITE_WEIRD_TREE, 13, 39, $17, 0, 0, -1, -1, 0, 0, 0, WeirdTreeScript_0x19403c, EVENT_ROUTE_36_SUDOWOODO
+	person_event SPRITE_LASS, 12, 55, $5, 0, 2, -1, -1, 0, 0, 0, LassScript_0x1940e0, -1
+	person_event SPRITE_FISHER, 13, 48, $8, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x1940b9, -1
+	person_event SPRITE_FRUIT_TREE, 8, 25, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x194247, -1
+	person_event SPRITE_YOUNGSTER, 10, 50, $2, 1, 1, -1, -1, 0, 0, 0, ArthurScript, EVENT_ROUTE_36_ARTHUR_OF_THURSDAY
+	person_event SPRITE_LASS, 16, 37, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, LassScript_0x19408c, EVENT_FLORIA_AT_SUDOWOODO
+	person_event SPRITE_SUICUNE, 10, 25, $1, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_SAW_SUICUNE_ON_ROUTE_36
--- a/maps/Route36NationalParkgate.asm
+++ b/maps/Route36NationalParkgate.asm
@@ -3,9 +3,9 @@
 	db 3
 
 	; triggers
-	dw UnknownScript_0x6ab11, $0000
-	dw UnknownScript_0x6ab12, $0000
-	dw UnknownScript_0x6ab13, $0000
+	dw .Trigger1, $0000
+	dw .Trigger2, $0000
+	dw .Trigger3, $0000
 
 .MapCallbacks:
 	db 2
@@ -12,50 +12,50 @@
 
 	; callbacks
 
-	dbw 5, UnknownScript_0x6ab17
+	dbw 5, .CheckIfContestRunning
 
-	dbw 2, UnknownScript_0x6ab23
+	dbw 2, .CheckIfContestAvailable
 
-UnknownScript_0x6ab11:
+.Trigger1:
 	end
 
-UnknownScript_0x6ab12:
+.Trigger2:
 	end
 
-UnknownScript_0x6ab13:
-	priorityjump UnknownScript_0x6ab47
+.Trigger3:
+	priorityjump .LeftTheContestEarly
 	end
 
-UnknownScript_0x6ab17:
+.CheckIfContestRunning:
 	checkflag ENGINE_BUG_CONTEST_TIMER
-	iftrue UnknownScript_0x6ab20
+	iftrue .BugContestIsRunning
 	dotrigger $0
 	return
 
-UnknownScript_0x6ab20:
+.BugContestIsRunning:
 	dotrigger $2
 	return
 
-UnknownScript_0x6ab23:
+.CheckIfContestAvailable:
 	checkevent EVENT_WARPED_FROM_ROUTE_35_NATIONAL_PARK_GATE
-	iftrue UnknownScript_0x6ab46
+	iftrue .Return
 	checkcode VAR_WEEKDAY
-	if_equal TUESDAY, UnknownScript_0x6ab42
-	if_equal THURSDAY, UnknownScript_0x6ab42
-	if_equal SATURDAY, UnknownScript_0x6ab42
+	if_equal TUESDAY, .SetContestOfficer
+	if_equal THURSDAY, .SetContestOfficer
+	if_equal SATURDAY, .SetContestOfficer
 	checkflag ENGINE_BUG_CONTEST_TIMER
-	iftrue UnknownScript_0x6ab42
+	iftrue .SetContestOfficer
 	disappear $2
 	appear $d
 	return
 
-UnknownScript_0x6ab42:
+.SetContestOfficer:
 	appear $2
 	disappear $d
-UnknownScript_0x6ab46:
+.Return:
 	return
 
-UnknownScript_0x6ab47:
+.LeftTheContestEarly:
 	spriteface PLAYER, UP
 	loadfont
 	checkcode VAR_CONTESTMINUTES
@@ -63,13 +63,13 @@
 	RAM2MEM $0
 	writetext UnknownText_0x6b284
 	yesorno
-	iffalse UnknownScript_0x6ab76
+	iffalse .GoBackToContest
 	writetext UnknownText_0x6b2c5
 	closetext
 	loadmovesprites
 	special Special_FadeBlackQuickly
 	special Special_ReloadSpritesNoPalettes
-	scall UnknownScript_0x6ab8c
+	scall .CopyContestants
 	disappear $2
 	appear $d
 	applymovement PLAYER, MovementData_0x6add1
@@ -77,7 +77,7 @@
 	special Special_FadeInQuickly
 	jumpstd bugcontestresults
 
-UnknownScript_0x6ab76:
+.GoBackToContest:
 	writetext UnknownText_0x6b300
 	closetext
 	loadmovesprites
@@ -85,72 +85,72 @@
 	playsound SFX_EXIT_BUILDING
 	special FadeBlackBGMap
 	waitbutton
-	warpfacing $2, GROUP_NATIONAL_PARK_BUG_CONTEST, MAP_NATIONAL_PARK_BUG_CONTEST, $21, $12
+	warpfacing $2, NATIONAL_PARK_BUG_CONTEST, $21, $12
 	end
 
-UnknownScript_0x6ab8c:
+.CopyContestants:
 	checkevent EVENT_BUG_CATCHING_CONTESTANT_1A
-	iftrue UnknownScript_0x6ab94
+	iftrue .Not1
 	appear $3
-UnknownScript_0x6ab94:
+.Not1:
 	checkevent EVENT_BUG_CATCHING_CONTESTANT_2A
-	iftrue UnknownScript_0x6ab9c
+	iftrue .Not2
 	appear $4
-UnknownScript_0x6ab9c:
+.Not2:
 	checkevent EVENT_BUG_CATCHING_CONTESTANT_3A
-	iftrue UnknownScript_0x6aba4
+	iftrue .Not3
 	appear $5
-UnknownScript_0x6aba4:
+.Not3:
 	checkevent EVENT_BUG_CATCHING_CONTESTANT_4A
-	iftrue UnknownScript_0x6abac
+	iftrue .Not4
 	appear $6
-UnknownScript_0x6abac:
+.Not4:
 	checkevent EVENT_BUG_CATCHING_CONTESTANT_5A
-	iftrue UnknownScript_0x6abb4
+	iftrue .Not5
 	appear $7
-UnknownScript_0x6abb4:
+.Not5:
 	checkevent EVENT_BUG_CATCHING_CONTESTANT_6A
-	iftrue UnknownScript_0x6abbc
+	iftrue .Not6
 	appear $8
-UnknownScript_0x6abbc:
+.Not6:
 	checkevent EVENT_BUG_CATCHING_CONTESTANT_7A
-	iftrue UnknownScript_0x6abc4
+	iftrue .Not7
 	appear $9
-UnknownScript_0x6abc4:
+.Not7:
 	checkevent EVENT_BUG_CATCHING_CONTESTANT_8A
-	iftrue UnknownScript_0x6abcc
+	iftrue .Not8
 	appear $a
-UnknownScript_0x6abcc:
+.Not8:
 	checkevent EVENT_BUG_CATCHING_CONTESTANT_9A
-	iftrue UnknownScript_0x6abd4
+	iftrue .Not9
 	appear $b
-UnknownScript_0x6abd4:
+.Not9:
 	checkevent EVENT_BUG_CATCHING_CONTESTANT_10A
-	iftrue UnknownScript_0x6abdc
+	iftrue .Not10
 	appear $c
-UnknownScript_0x6abdc:
-	special DrawOnMap
+.Not10:
+	special UpdateSprites
 	end
 
-OfficerScript_0x6abe0:
+Route36OfficerScriptContest:
 	checkcode VAR_WEEKDAY
-	if_equal SUNDAY, UnknownScript_0x6acf1
-	if_equal MONDAY, UnknownScript_0x6acf1
-	if_equal WEDNESDAY, UnknownScript_0x6acf1
-	if_equal FRIDAY, UnknownScript_0x6acf1
+	if_equal SUNDAY, _ContestNotOn
+	if_equal MONDAY, _ContestNotOn
+	if_equal WEDNESDAY, _ContestNotOn
+	if_equal FRIDAY, _ContestNotOn
 	faceplayer
 	loadfont
 	checkflag ENGINE_DAILY_BUG_CONTEST
-	iftrue UnknownScript_0x6ac91
-	scall UnknownScript_0x6ad02
+	iftrue Route36Officer_ContestHasConcluded
+	scall Route36Parkgate_DayToText
 	writetext UnknownText_0x6add5
 	yesorno
-	iffalse UnknownScript_0x6ac73
+	iffalse .DecidedNotToJoinContest
 	checkcode VAR_PARTYCOUNT
-	if_greater_than $1, UnknownScript_0x6ac41
+	if_greater_than $1, .LeaveMonsWithOfficer
 	special CheckFirstMonFainted
 	clearevent EVENT_LEFT_MONS_WITH_CONTEST_OFFICER
-UnknownScript_0x6ac10:
+.ResumeStartingContest:
 	setflag ENGINE_BUG_CONTEST_TIMER
 	special PlayMapMusic
 	writetext UnknownText_0x6ae87
@@ -169,22 +169,22 @@
 	special FadeBlackBGMap
 	waitbutton
 	special Special_SelectRandomBugContestContestants
-	warpfacing $2, GROUP_NATIONAL_PARK_BUG_CONTEST, MAP_NATIONAL_PARK_BUG_CONTEST, $21, $12
+	warpfacing $2, NATIONAL_PARK_BUG_CONTEST, $21, $12
 	end
 
-UnknownScript_0x6ac41:
+.LeaveMonsWithOfficer:
 	checkcode VAR_PARTYCOUNT
-	if_less_than $6, UnknownScript_0x6ac4d
+	if_less_than $6, .ContinueLeavingMons
 	checkcode VAR_BOXSPACE
-	if_equal $0, UnknownScript_0x6ac85
-UnknownScript_0x6ac4d:
-	special Function71ac
-	if_equal $1, UnknownScript_0x6ac8b
+	if_equal $0, .BoxFull
+.ContinueLeavingMons:
+	special CheckFirstMonIsEgg
+	if_equal $1, .FirstMonIsEgg
 	writetext UnknownText_0x6afb0
 	yesorno
-	iffalse UnknownScript_0x6ac79
+	iffalse .RefusedToLeaveMons
 	special CheckFirstMonFainted
-	iftrue UnknownScript_0x6ac7f
+	iftrue .FirstMonIsFainted
 	setevent EVENT_LEFT_MONS_WITH_CONTEST_OFFICER
 	writetext UnknownText_0x6b021
 	keeptextopen
@@ -192,95 +192,95 @@
 	playsound SFX_GOT_SAFARI_BALLS
 	waitbutton
 	keeptextopen
-	jump UnknownScript_0x6ac10
+	jump .ResumeStartingContest
 
-UnknownScript_0x6ac73:
+.DecidedNotToJoinContest:
 	writetext UnknownText_0x6b0c6
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x6ac79:
+.RefusedToLeaveMons:
 	writetext UnknownText_0x6b081
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x6ac7f:
+.FirstMonIsFainted:
 	writetext UnknownText_0x6b0f2
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x6ac85:
+.BoxFull:
 	writetext UnknownText_0x6b166
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x6ac8b:
+.FirstMonIsEgg:
 	writetext UnknownText_0x6b209
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x6ac91:
+Route36Officer_ContestHasConcluded:
 	checkevent EVENT_CONTEST_OFFICER_HAS_SUN_STONE
-	iftrue UnknownScript_0x6acaf
+	iftrue .Sunstone
 	checkevent EVENT_CONTEST_OFFICER_HAS_EVERSTONE
-	iftrue UnknownScript_0x6acbe
+	iftrue .Everstone
 	checkevent EVENT_CONTEST_OFFICER_HAS_GOLD_BERRY
-	iftrue UnknownScript_0x6accd
+	iftrue .GoldBerry
 	checkevent EVENT_CONTEST_OFFICER_HAS_BERRY
-	iftrue UnknownScript_0x6acdc
+	iftrue .Berry
 	writetext UnknownText_0x6b32b
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x6acaf:
+.Sunstone:
 	writetext UnknownText_0x6b97f
 	keeptextopen
 	verbosegiveitem SUN_STONE, 1
-	iffalse UnknownScript_0x6aceb
+	iffalse .BagFull
 	clearevent EVENT_CONTEST_OFFICER_HAS_SUN_STONE
 	loadmovesprites
 	end
 
-UnknownScript_0x6acbe:
+.Everstone:
 	writetext UnknownText_0x6b97f
 	keeptextopen
 	verbosegiveitem EVERSTONE, 1
-	iffalse UnknownScript_0x6aceb
+	iffalse .BagFull
 	clearevent EVENT_CONTEST_OFFICER_HAS_EVERSTONE
 	loadmovesprites
 	end
 
-UnknownScript_0x6accd:
+.GoldBerry:
 	writetext UnknownText_0x6b97f
 	keeptextopen
 	verbosegiveitem GOLD_BERRY, 1
-	iffalse UnknownScript_0x6aceb
+	iffalse .BagFull
 	clearevent EVENT_CONTEST_OFFICER_HAS_GOLD_BERRY
 	loadmovesprites
 	end
 
-UnknownScript_0x6acdc:
+.Berry:
 	writetext UnknownText_0x6b97f
 	keeptextopen
 	verbosegiveitem BERRY, 1
-	iffalse UnknownScript_0x6aceb
+	iffalse .BagFull
 	clearevent EVENT_CONTEST_OFFICER_HAS_BERRY
 	loadmovesprites
 	end
 
-UnknownScript_0x6aceb:
+.BagFull:
 	writetext UnknownText_0x6b910
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x6acf1:
+_ContestNotOn:
 	jumptextfaceplayer UnknownText_0x6b370
 
 OfficerScript_0x6acf4:
@@ -287,13 +287,13 @@
 	faceplayer
 	loadfont
 	checkflag ENGINE_DAILY_BUG_CONTEST
-	iftrue UnknownScript_0x6ac91
+	iftrue Route36Officer_ContestHasConcluded
 	writetext UnknownText_0x6b370
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x6ad02:
+Route36Parkgate_DayToText:
 	jumpstd daytotext
 	end
 
@@ -848,10 +848,10 @@
 
 .Warps:
 	db 4
-	warp_def $4, $0, 1, GROUP_NATIONAL_PARK, MAP_NATIONAL_PARK
-	warp_def $5, $0, 2, GROUP_NATIONAL_PARK, MAP_NATIONAL_PARK
-	warp_def $4, $9, 1, GROUP_ROUTE_36, MAP_ROUTE_36
-	warp_def $5, $9, 2, GROUP_ROUTE_36, MAP_ROUTE_36
+	warp_def $4, $0, 1, NATIONAL_PARK
+	warp_def $5, $0, 2, NATIONAL_PARK
+	warp_def $4, $9, 1, ROUTE_36
+	warp_def $5, $9, 2, ROUTE_36
 
 .XYTriggers:
 	db 0
@@ -862,15 +862,15 @@
 
 .PersonEvents:
 	db 12
-	person_event SPRITE_OFFICER, 7, 4, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, OfficerScript_0x6abe0, EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY
-	person_event SPRITE_YOUNGSTER, 9, 6, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, YoungsterScript_0x6ad06, EVENT_BUG_CATCHING_CONTESTANT_1B
-	person_event SPRITE_YOUNGSTER, 9, 8, OW_UP | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, YoungsterScript_0x6ad1a, EVENT_BUG_CATCHING_CONTESTANT_2B
-	person_event SPRITE_ROCKER, 10, 6, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, RockerScript_0x6ad2e, EVENT_BUG_CATCHING_CONTESTANT_3B
-	person_event SPRITE_POKEFAN_M, 9, 10, OW_UP | $3, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, PokefanMScript_0x6ad42, EVENT_BUG_CATCHING_CONTESTANT_4B
-	person_event SPRITE_YOUNGSTER, 11, 6, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, YoungsterScript_0x6ad56, EVENT_BUG_CATCHING_CONTESTANT_5B
-	person_event SPRITE_YOUNGSTER, 10, 9, OW_UP | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, YoungsterScript_0x6ad6a, EVENT_BUG_CATCHING_CONTESTANT_6B
-	person_event SPRITE_LASS, 10, 7, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, LassScript_0x6ad7e, EVENT_BUG_CATCHING_CONTESTANT_7B
-	person_event SPRITE_YOUNGSTER, 11, 8, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, YoungsterScript_0x6ad92, EVENT_BUG_CATCHING_CONTESTANT_8B
-	person_event SPRITE_YOUNGSTER, 11, 10, OW_UP | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, YoungsterScript_0x6ada6, EVENT_BUG_CATCHING_CONTESTANT_9B
-	person_event SPRITE_YOUNGSTER, 10, 10, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, YoungsterScript_0x6adba, EVENT_BUG_CATCHING_CONTESTANT_10B
-	person_event SPRITE_OFFICER, 6, 7, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, OfficerScript_0x6acf4, EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY
+	person_event SPRITE_OFFICER, 7, 4, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, Route36OfficerScriptContest, EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY
+	person_event SPRITE_YOUNGSTER, 9, 6, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, YoungsterScript_0x6ad06, EVENT_BUG_CATCHING_CONTESTANT_1B
+	person_event SPRITE_YOUNGSTER, 9, 8, $7, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, YoungsterScript_0x6ad1a, EVENT_BUG_CATCHING_CONTESTANT_2B
+	person_event SPRITE_ROCKER, 10, 6, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, RockerScript_0x6ad2e, EVENT_BUG_CATCHING_CONTESTANT_3B
+	person_event SPRITE_POKEFAN_M, 9, 10, $7, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, PokefanMScript_0x6ad42, EVENT_BUG_CATCHING_CONTESTANT_4B
+	person_event SPRITE_YOUNGSTER, 11, 6, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, YoungsterScript_0x6ad56, EVENT_BUG_CATCHING_CONTESTANT_5B
+	person_event SPRITE_YOUNGSTER, 10, 9, $7, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, YoungsterScript_0x6ad6a, EVENT_BUG_CATCHING_CONTESTANT_6B
+	person_event SPRITE_LASS, 10, 7, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, LassScript_0x6ad7e, EVENT_BUG_CATCHING_CONTESTANT_7B
+	person_event SPRITE_YOUNGSTER, 11, 8, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, YoungsterScript_0x6ad92, EVENT_BUG_CATCHING_CONTESTANT_8B
+	person_event SPRITE_YOUNGSTER, 11, 10, $7, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, YoungsterScript_0x6ada6, EVENT_BUG_CATCHING_CONTESTANT_9B
+	person_event SPRITE_YOUNGSTER, 10, 10, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, YoungsterScript_0x6adba, EVENT_BUG_CATCHING_CONTESTANT_10B
+	person_event SPRITE_OFFICER, 6, 7, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, OfficerScript_0x6acf4, EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY
--- a/maps/Route36RuinsofAlphgate.asm
+++ b/maps/Route36RuinsofAlphgate.asm
@@ -36,10 +36,10 @@
 
 .Warps:
 	db 4
-	warp_def $0, $4, 3, GROUP_ROUTE_36, MAP_ROUTE_36
-	warp_def $0, $5, 4, GROUP_ROUTE_36, MAP_ROUTE_36
-	warp_def $7, $4, 9, GROUP_RUINS_OF_ALPH_OUTSIDE, MAP_RUINS_OF_ALPH_OUTSIDE
-	warp_def $7, $5, 9, GROUP_RUINS_OF_ALPH_OUTSIDE, MAP_RUINS_OF_ALPH_OUTSIDE
+	warp_def $0, $4, 3, ROUTE_36
+	warp_def $0, $5, 4, ROUTE_36
+	warp_def $7, $4, 9, RUINS_OF_ALPH_OUTSIDE
+	warp_def $7, $5, 9, RUINS_OF_ALPH_OUTSIDE
 
 .XYTriggers:
 	db 0
@@ -49,5 +49,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_OFFICER, 8, 4, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, OfficerScript_0x6aa1a, -1
-	person_event SPRITE_GRAMPS, 9, 11, OW_DOWN | $2, $21, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, GrampsScript_0x6aa1d, -1
+	person_event SPRITE_OFFICER, 8, 4, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, OfficerScript_0x6aa1a, -1
+	person_event SPRITE_GRAMPS, 9, 11, $2, 2, 1, -1, -1, 8 + PAL_OW_BROWN, 0, 0, GrampsScript_0x6aa1d, -1
--- a/maps/Route37.asm
+++ b/maps/Route37.asm
@@ -249,10 +249,10 @@
 
 .PersonEvents:
 	db 7
-	person_event SPRITE_WEIRD_TREE, 16, 10, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 1, TrainerTwinsAnnandanne1, -1
-	person_event SPRITE_WEIRD_TREE, 16, 11, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 1, TrainerTwinsAnnandanne2, -1
-	person_event SPRITE_YOUNGSTER, 10, 10, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 1, TrainerPsychicGreg, -1
-	person_event SPRITE_FRUIT_TREE, 9, 17, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x1a8e09, -1
-	person_event SPRITE_BUG_CATCHER, 12, 20, OW_DOWN | $2, $11, -1, -1, $0, 0, SunnyScript, EVENT_ROUTE_37_SUNNY_OF_SUNDAY
-	person_event SPRITE_FRUIT_TREE, 9, 20, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x1a8e0b, -1
-	person_event SPRITE_FRUIT_TREE, 11, 19, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x1a8e0d, -1
+	person_event SPRITE_WEIRD_TREE, 16, 10, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 1, TrainerTwinsAnnandanne1, -1
+	person_event SPRITE_WEIRD_TREE, 16, 11, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 1, TrainerTwinsAnnandanne2, -1
+	person_event SPRITE_YOUNGSTER, 10, 10, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 1, TrainerPsychicGreg, -1
+	person_event SPRITE_FRUIT_TREE, 9, 17, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a8e09, -1
+	person_event SPRITE_BUG_CATCHER, 12, 20, $2, 1, 1, -1, -1, 0, 0, 0, SunnyScript, EVENT_ROUTE_37_SUNNY_OF_SUNDAY
+	person_event SPRITE_FRUIT_TREE, 9, 20, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a8e0b, -1
+	person_event SPRITE_FRUIT_TREE, 11, 19, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a8e0d, -1
--- a/maps/Route38.asm
+++ b/maps/Route38.asm
@@ -469,8 +469,8 @@
 
 .Warps:
 	db 2
-	warp_def $8, $23, 1, GROUP_ROUTE_38_ECRUTEAK_GATE, MAP_ROUTE_38_ECRUTEAK_GATE
-	warp_def $9, $23, 2, GROUP_ROUTE_38_ECRUTEAK_GATE, MAP_ROUTE_38_ECRUTEAK_GATE
+	warp_def $8, $23, 1, ROUTE_38_ECRUTEAK_GATE
+	warp_def $9, $23, 2, ROUTE_38_ECRUTEAK_GATE
 
 .XYTriggers:
 	db 0
@@ -482,10 +482,10 @@
 
 .PersonEvents:
 	db 7
-	person_event SPRITE_STANDING_YOUNGSTER, 5, 8, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 1, TrainerSchoolboyChad1, -1
-	person_event SPRITE_LASS, 7, 19, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 2, TrainerLassDana1, -1
-	person_event SPRITE_STANDING_YOUNGSTER, 19, 16, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 1, TrainerBird_keeperToby, -1
-	person_event SPRITE_BUENA, 13, 23, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 1, TrainerBeautyValerie, -1
-	person_event SPRITE_SAILOR, 9, 28, OW_RIGHT | $12, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 2, TrainerSailorHarry, -1
-	person_event SPRITE_FRUIT_TREE, 14, 16, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x1a1f33, -1
-	person_event SPRITE_BUENA, 12, 9, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 1, TrainerBeautyOlivia, -1
+	person_event SPRITE_STANDING_YOUNGSTER, 5, 8, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 1, TrainerSchoolboyChad1, -1
+	person_event SPRITE_LASS, 7, 19, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 2, TrainerLassDana1, -1
+	person_event SPRITE_STANDING_YOUNGSTER, 19, 16, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 1, TrainerBird_keeperToby, -1
+	person_event SPRITE_BUENA, 13, 23, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 1, TrainerBeautyValerie, -1
+	person_event SPRITE_SAILOR, 9, 28, $1e, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 2, TrainerSailorHarry, -1
+	person_event SPRITE_FRUIT_TREE, 14, 16, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a1f33, -1
+	person_event SPRITE_BUENA, 12, 9, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 1, TrainerBeautyOlivia, -1
--- a/maps/Route38EcruteakGate.asm
+++ b/maps/Route38EcruteakGate.asm
@@ -27,10 +27,10 @@
 
 .Warps:
 	db 4
-	warp_def $4, $0, 1, GROUP_ROUTE_38, MAP_ROUTE_38
-	warp_def $5, $0, 2, GROUP_ROUTE_38, MAP_ROUTE_38
-	warp_def $4, $9, 14, GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY
-	warp_def $5, $9, 15, GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY
+	warp_def $4, $0, 1, ROUTE_38
+	warp_def $5, $0, 2, ROUTE_38
+	warp_def $4, $9, 14, ECRUTEAK_CITY
+	warp_def $5, $9, 15, ECRUTEAK_CITY
 
 .XYTriggers:
 	db 0
@@ -40,4 +40,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_OFFICER, 6, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, OfficerScript_0x9cbd7, -1
+	person_event SPRITE_OFFICER, 6, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, OfficerScript_0x9cbd7, -1
--- a/maps/Route39.asm
+++ b/maps/Route39.asm
@@ -338,8 +338,8 @@
 
 .Warps:
 	db 2
-	warp_def $3, $1, 1, GROUP_ROUTE_39_BARN, MAP_ROUTE_39_BARN
-	warp_def $3, $5, 1, GROUP_ROUTE_39_FARMHOUSE, MAP_ROUTE_39_FARMHOUSE
+	warp_def $3, $1, 1, ROUTE_39_BARN
+	warp_def $3, $5, 1, ROUTE_39_FARMHOUSE
 
 .XYTriggers:
 	db 0
@@ -353,13 +353,13 @@
 
 .PersonEvents:
 	db 10
-	person_event SPRITE_SAILOR, 33, 17, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 5, TrainerSailorEugene, -1
-	person_event SPRITE_POKEFAN_M, 26, 14, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $82, 4, TrainerPokefanmDerek1, -1
-	person_event SPRITE_POKEFAN_F, 23, 15, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $82, 4, TrainerPokefanfRuth, -1
-	person_event SPRITE_TAUROS, 16, 7, OW_UP | $12, $0, -1, -1, $0, 0, TaurosScript_0x1a5af5, -1
-	person_event SPRITE_TAUROS, 15, 10, OW_UP | $12, $0, -1, -1, $0, 0, TaurosScript_0x1a5af5, -1
-	person_event SPRITE_TAUROS, 19, 8, OW_UP | $12, $0, -1, -1, $0, 0, TaurosScript_0x1a5af5, -1
-	person_event SPRITE_TAUROS, 17, 12, OW_UP | $12, $0, -1, -1, $0, 0, TaurosScript_0x1a5af5, -1
-	person_event SPRITE_STANDING_YOUNGSTER, 11, 17, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 1, TrainerPsychicNorman, -1
-	person_event SPRITE_FRUIT_TREE, 7, 13, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x1a5bf4, -1
-	person_event SPRITE_POKEFAN_F, 26, 8, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, PokefanFScript_0x1a5bbe, -1
+	person_event SPRITE_SAILOR, 33, 17, $8, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 5, TrainerSailorEugene, -1
+	person_event SPRITE_POKEFAN_M, 26, 14, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 4, TrainerPokefanmDerek1, -1
+	person_event SPRITE_POKEFAN_F, 23, 15, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 4, TrainerPokefanfRuth, -1
+	person_event SPRITE_TAUROS, 16, 7, $16, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x1a5af5, -1
+	person_event SPRITE_TAUROS, 15, 10, $16, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x1a5af5, -1
+	person_event SPRITE_TAUROS, 19, 8, $16, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x1a5af5, -1
+	person_event SPRITE_TAUROS, 17, 12, $16, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x1a5af5, -1
+	person_event SPRITE_STANDING_YOUNGSTER, 11, 17, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 1, TrainerPsychicNorman, -1
+	person_event SPRITE_FRUIT_TREE, 7, 13, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a5bf4, -1
+	person_event SPRITE_POKEFAN_F, 26, 8, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, PokefanFScript_0x1a5bbe, -1
--- a/maps/Route39Barn.asm
+++ b/maps/Route39Barn.asm
@@ -189,8 +189,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $3, 1, GROUP_ROUTE_39, MAP_ROUTE_39
-	warp_def $7, $4, 1, GROUP_ROUTE_39, MAP_ROUTE_39
+	warp_def $7, $3, 1, ROUTE_39
+	warp_def $7, $4, 1, ROUTE_39
 
 .XYTriggers:
 	db 0
@@ -200,6 +200,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_TWIN, 7, 6, OW_LEFT | $1, $0, -1, -1, $0, 0, TwinScript_0x9cc76, -1
-	person_event SPRITE_TWIN, 7, 8, OW_LEFT | $0, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, TwinScript_0x9cc90, -1
-	person_event SPRITE_TAUROS, 7, 7, OW_UP | $12, $0, -1, -1, $0, 0, TaurosScript_0x9ccaa, -1
+	person_event SPRITE_TWIN, 7, 6, $9, 0, 0, -1, -1, 0, 0, 0, TwinScript_0x9cc76, -1
+	person_event SPRITE_TWIN, 7, 8, $8, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, TwinScript_0x9cc90, -1
+	person_event SPRITE_TAUROS, 7, 7, $16, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x9ccaa, -1
--- a/maps/Route39Farmhouse.asm
+++ b/maps/Route39Farmhouse.asm
@@ -194,8 +194,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 2, GROUP_ROUTE_39, MAP_ROUTE_39
-	warp_def $7, $3, 2, GROUP_ROUTE_39, MAP_ROUTE_39
+	warp_def $7, $2, 2, ROUTE_39
+	warp_def $7, $3, 2, ROUTE_39
 
 .XYTriggers:
 	db 0
@@ -207,5 +207,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_POKEFAN_M, 6, 7, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, PokefanMScript_0x9ceb4, -1
-	person_event SPRITE_POKEFAN_F, 8, 9, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, PokefanFScript_0x9cf0e, -1
+	person_event SPRITE_POKEFAN_M, 6, 7, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, PokefanMScript_0x9ceb4, -1
+	person_event SPRITE_POKEFAN_F, 8, 9, $8, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, PokefanFScript_0x9cf0e, -1
--- a/maps/Route4.asm
+++ b/maps/Route4.asm
@@ -121,7 +121,7 @@
 
 .Warps:
 	db 1
-	warp_def $5, $2, 2, GROUP_MOUNT_MOON, MAP_MOUNT_MOON
+	warp_def $5, $2, 2, MOUNT_MOON
 
 .XYTriggers:
 	db 0
@@ -133,7 +133,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_YOUNGSTER, 13, 21, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerBird_keeperHank, -1
-	person_event SPRITE_LASS, 12, 13, OW_LEFT | $0, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 4, TrainerPicnickerHope, -1
-	person_event SPRITE_LASS, 10, 25, OW_LEFT | $1, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 4, TrainerPicnickerSharon, -1
-	person_event SPRITE_POKE_BALL, 7, 30, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x1ae20f, EVENT_ROUTE_4_HP_UP
+	person_event SPRITE_YOUNGSTER, 13, 21, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerBird_keeperHank, -1
+	person_event SPRITE_LASS, 12, 13, $8, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 4, TrainerPicnickerHope, -1
+	person_event SPRITE_LASS, 10, 25, $9, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 4, TrainerPicnickerSharon, -1
+	person_event SPRITE_POKE_BALL, 7, 30, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ae20f, EVENT_ROUTE_4_HP_UP
--- a/maps/Route40.asm
+++ b/maps/Route40.asm
@@ -332,7 +332,7 @@
 
 .Warps:
 	db 1
-	warp_def $5, $9, 1, GROUP_ROUTE_40_BATTLE_TOWER_GATE, MAP_ROUTE_40_BATTLE_TOWER_GATE
+	warp_def $5, $9, 1, ROUTE_40_BATTLE_TOWER_GATE
 
 .XYTriggers:
 	db 0
@@ -344,15 +344,15 @@
 
 .PersonEvents:
 	db 12
-	person_event SPRITE_OLIVINE_RIVAL, 19, 18, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $82, 4, TrainerSwimmermSimon, -1
-	person_event SPRITE_OLIVINE_RIVAL, 34, 22, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $82, 5, TrainerSwimmermRandall, -1
-	person_event SPRITE_SWIMMER_GIRL, 23, 7, OW_LEFT | $1, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 4, TrainerSwimmerfElaine, -1
-	person_event SPRITE_SWIMMER_GIRL, 29, 14, OW_RIGHT | $13, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 3, TrainerSwimmerfPaula, -1
-	person_event SPRITE_ROCK, 15, 11, OW_LEFT | $10, $0, -1, -1, $0, 0, Route40Rock, -1
-	person_event SPRITE_ROCK, 13, 10, OW_LEFT | $10, $0, -1, -1, $0, 0, Route40Rock, -1
-	person_event SPRITE_ROCK, 12, 11, OW_LEFT | $10, $0, -1, -1, $0, 0, Route40Rock, -1
-	person_event SPRITE_LASS, 17, 15, OW_UP | $2, $0, -1, -1, $0, 0, LassScript_0x1a61c4, -1
-	person_event SPRITE_BUENA, 14, 12, OW_DOWN | $3, $0, -1, -1, $0, 0, MonicaScript, EVENT_ROUTE_40_MONICA_OF_MONDAY
-	person_event SPRITE_POKEFAN_M, 10, 11, OW_LEFT | $1, $0, -1, -1, $0, 0, PokefanMScript_0x1a61c7, -1
-	person_event SPRITE_LASS, 8, 17, OW_DOWN | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, LassScript_0x1a61d3, -1
-	person_event SPRITE_STANDING_YOUNGSTER, 13, 20, OW_DOWN | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, StandingYoungsterScript_0x1a61d6, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
+	person_event SPRITE_OLIVINE_RIVAL, 19, 18, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 4, TrainerSwimmermSimon, -1
+	person_event SPRITE_OLIVINE_RIVAL, 34, 22, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 5, TrainerSwimmermRandall, -1
+	person_event SPRITE_SWIMMER_GIRL, 23, 7, $9, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 4, TrainerSwimmerfElaine, -1
+	person_event SPRITE_SWIMMER_GIRL, 29, 14, $1f, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 3, TrainerSwimmerfPaula, -1
+	person_event SPRITE_ROCK, 15, 11, $18, 0, 0, -1, -1, 0, 0, 0, Route40Rock, -1
+	person_event SPRITE_ROCK, 13, 10, $18, 0, 0, -1, -1, 0, 0, 0, Route40Rock, -1
+	person_event SPRITE_ROCK, 12, 11, $18, 0, 0, -1, -1, 0, 0, 0, Route40Rock, -1
+	person_event SPRITE_LASS, 17, 15, $6, 0, 0, -1, -1, 0, 0, 0, LassScript_0x1a61c4, -1
+	person_event SPRITE_BUENA, 14, 12, $3, 0, 0, -1, -1, 0, 0, 0, MonicaScript, EVENT_ROUTE_40_MONICA_OF_MONDAY
+	person_event SPRITE_POKEFAN_M, 10, 11, $9, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x1a61c7, -1
+	person_event SPRITE_LASS, 8, 17, $3, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, LassScript_0x1a61d3, -1
+	person_event SPRITE_STANDING_YOUNGSTER, 13, 20, $3, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, StandingYoungsterScript_0x1a61d6, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
--- a/maps/Route40BattleTowerGate.asm
+++ b/maps/Route40BattleTowerGate.asm
@@ -75,10 +75,10 @@
 
 .Warps:
 	db 4
-	warp_def $7, $4, 1, GROUP_ROUTE_40, MAP_ROUTE_40
-	warp_def $7, $5, 1, GROUP_ROUTE_40, MAP_ROUTE_40
-	warp_def $0, $4, 1, GROUP_BATTLE_TOWER_OUTSIDE, MAP_BATTLE_TOWER_OUTSIDE
-	warp_def $0, $5, 2, GROUP_BATTLE_TOWER_OUTSIDE, MAP_BATTLE_TOWER_OUTSIDE
+	warp_def $7, $4, 1, ROUTE_40
+	warp_def $7, $5, 1, ROUTE_40
+	warp_def $0, $4, 1, BATTLE_TOWER_OUTSIDE
+	warp_def $0, $5, 2, BATTLE_TOWER_OUTSIDE
 
 .XYTriggers:
 	db 0
@@ -88,5 +88,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_ROCKER, 7, 7, OW_DOWN | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, RockerScript_0x9f669, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
-	person_event SPRITE_TWIN, 9, 11, OW_UP | $0, $10, -1, -1, (PAL_OW_RED << 4) | $80, 0, TwinScript_0x9f66c, -1
+	person_event SPRITE_ROCKER, 7, 7, $3, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, RockerScript_0x9f669, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
+	person_event SPRITE_TWIN, 9, 11, $4, 1, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, TwinScript_0x9f66c, -1
--- a/maps/Route41.asm
+++ b/maps/Route41.asm
@@ -335,10 +335,10 @@
 
 .Warps:
 	db 4
-	warp_def $11, $c, 1, GROUP_WHIRL_ISLAND_NW, MAP_WHIRL_ISLAND_NW
-	warp_def $13, $24, 1, GROUP_WHIRL_ISLAND_NE, MAP_WHIRL_ISLAND_NE
-	warp_def $25, $c, 1, GROUP_WHIRL_ISLAND_SW, MAP_WHIRL_ISLAND_SW
-	warp_def $2d, $24, 1, GROUP_WHIRL_ISLAND_SE, MAP_WHIRL_ISLAND_SE
+	warp_def $11, $c, 1, WHIRL_ISLAND_NW
+	warp_def $13, $24, 1, WHIRL_ISLAND_NE
+	warp_def $25, $c, 1, WHIRL_ISLAND_SW
+	warp_def $2d, $24, 1, WHIRL_ISLAND_SE
 
 .XYTriggers:
 	db 0
@@ -349,13 +349,13 @@
 
 .PersonEvents:
 	db 10
-	person_event SPRITE_OLIVINE_RIVAL, 10, 36, OW_LEFT | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerSwimmermCharlie, -1
-	person_event SPRITE_OLIVINE_RIVAL, 12, 50, OW_LEFT | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerSwimmermGeorge, -1
-	person_event SPRITE_OLIVINE_RIVAL, 30, 24, OW_RIGHT | $12, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerSwimmermBerke, -1
-	person_event SPRITE_OLIVINE_RIVAL, 34, 36, OW_RIGHT | $13, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerSwimmermKirk, -1
-	person_event SPRITE_OLIVINE_RIVAL, 50, 23, OW_RIGHT | $12, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerSwimmermMathew, -1
-	person_event SPRITE_SWIMMER_GIRL, 8, 21, OW_LEFT | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 3, TrainerSwimmerfKaylee, -1
-	person_event SPRITE_SWIMMER_GIRL, 23, 27, OW_UP | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 3, TrainerSwimmerfSusie, -1
-	person_event SPRITE_SWIMMER_GIRL, 38, 31, OW_LEFT | $0, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 3, TrainerSwimmerfDenise, -1
-	person_event SPRITE_SWIMMER_GIRL, 32, 48, OW_LEFT | $1, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 4, TrainerSwimmerfKara, -1
-	person_event SPRITE_SWIMMER_GIRL, 54, 13, OW_LEFT | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 2, TrainerSwimmerfWendy, -1
+	person_event SPRITE_OLIVINE_RIVAL, 10, 36, $a, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerSwimmermCharlie, -1
+	person_event SPRITE_OLIVINE_RIVAL, 12, 50, $a, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerSwimmermGeorge, -1
+	person_event SPRITE_OLIVINE_RIVAL, 30, 24, $1e, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerSwimmermBerke, -1
+	person_event SPRITE_OLIVINE_RIVAL, 34, 36, $1f, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerSwimmermKirk, -1
+	person_event SPRITE_OLIVINE_RIVAL, 50, 23, $1e, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerSwimmermMathew, -1
+	person_event SPRITE_SWIMMER_GIRL, 8, 21, $a, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 3, TrainerSwimmerfKaylee, -1
+	person_event SPRITE_SWIMMER_GIRL, 23, 27, $7, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 3, TrainerSwimmerfSusie, -1
+	person_event SPRITE_SWIMMER_GIRL, 38, 31, $8, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 3, TrainerSwimmerfDenise, -1
+	person_event SPRITE_SWIMMER_GIRL, 32, 48, $9, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 4, TrainerSwimmerfKara, -1
+	person_event SPRITE_SWIMMER_GIRL, 54, 13, $a, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 2, TrainerSwimmerfWendy, -1
--- a/maps/Route42.asm
+++ b/maps/Route42.asm
@@ -24,7 +24,7 @@
 	pause 10
 	dotrigger $0
 	clearevent EVENT_SAW_SUICUNE_ON_ROUTE_36
-	domaptrigger GROUP_ROUTE_36, MAP_ROUTE_36, $1
+	domaptrigger ROUTE_36, $1
 	end
 
 TrainerFisherTully1:
@@ -316,11 +316,11 @@
 
 .Warps:
 	db 5
-	warp_def $8, $0, 3, GROUP_ROUTE_42_ECRUTEAK_GATE, MAP_ROUTE_42_ECRUTEAK_GATE
-	warp_def $9, $0, 4, GROUP_ROUTE_42_ECRUTEAK_GATE, MAP_ROUTE_42_ECRUTEAK_GATE
-	warp_def $5, $a, 1, GROUP_MOUNT_MORTAR_1F_OUTSIDE, MAP_MOUNT_MORTAR_1F_OUTSIDE
-	warp_def $9, $1c, 2, GROUP_MOUNT_MORTAR_1F_OUTSIDE, MAP_MOUNT_MORTAR_1F_OUTSIDE
-	warp_def $7, $2e, 3, GROUP_MOUNT_MORTAR_1F_OUTSIDE, MAP_MOUNT_MORTAR_1F_OUTSIDE
+	warp_def $8, $0, 3, ROUTE_42_ECRUTEAK_GATE
+	warp_def $9, $0, 4, ROUTE_42_ECRUTEAK_GATE
+	warp_def $5, $a, 1, MOUNT_MORTAR_1F_OUTSIDE
+	warp_def $9, $1c, 2, MOUNT_MORTAR_1F_OUTSIDE
+	warp_def $7, $2e, 3, MOUNT_MORTAR_1F_OUTSIDE
 
 .XYTriggers:
 	db 1
@@ -336,12 +336,12 @@
 
 .PersonEvents:
 	db 9
-	person_event SPRITE_FISHER, 14, 44, OW_LEFT | $0, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 1, TrainerFisherTully1, -1
-	person_event SPRITE_POKEFAN_M, 13, 55, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 3, TrainerHikerBenjamin, -1
-	person_event SPRITE_SUPER_NERD, 12, 51, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerPokemaniacShane, -1
-	person_event SPRITE_FRUIT_TREE, 20, 31, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x1a934d, -1
-	person_event SPRITE_FRUIT_TREE, 20, 32, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x1a934f, -1
-	person_event SPRITE_FRUIT_TREE, 20, 33, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x1a9351, -1
-	person_event SPRITE_POKE_BALL, 8, 10, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x1a9349, EVENT_ROUTE_42_ULTRA_BALL
-	person_event SPRITE_POKE_BALL, 12, 37, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x1a934b, EVENT_ROUTE_42_SUPER_POTION
-	person_event SPRITE_SUICUNE, 20, 30, OW_DOWN | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ObjectEvent, EVENT_SAW_SUICUNE_ON_ROUTE_42
+	person_event SPRITE_FISHER, 14, 44, $8, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 1, TrainerFisherTully1, -1
+	person_event SPRITE_POKEFAN_M, 13, 55, $a, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 3, TrainerHikerBenjamin, -1
+	person_event SPRITE_SUPER_NERD, 12, 51, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerPokemaniacShane, -1
+	person_event SPRITE_FRUIT_TREE, 20, 31, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a934d, -1
+	person_event SPRITE_FRUIT_TREE, 20, 32, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a934f, -1
+	person_event SPRITE_FRUIT_TREE, 20, 33, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a9351, -1
+	person_event SPRITE_POKE_BALL, 8, 10, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a9349, EVENT_ROUTE_42_ULTRA_BALL
+	person_event SPRITE_POKE_BALL, 12, 37, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a934b, EVENT_ROUTE_42_SUPER_POTION
+	person_event SPRITE_SUICUNE, 20, 30, $1, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_SAW_SUICUNE_ON_ROUTE_42
--- a/maps/Route42EcruteakGate.asm
+++ b/maps/Route42EcruteakGate.asm
@@ -22,10 +22,10 @@
 
 .Warps:
 	db 4
-	warp_def $4, $0, 1, GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY
-	warp_def $5, $0, 2, GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY
-	warp_def $4, $9, 1, GROUP_ROUTE_42, MAP_ROUTE_42
-	warp_def $5, $9, 2, GROUP_ROUTE_42, MAP_ROUTE_42
+	warp_def $4, $0, 1, ECRUTEAK_CITY
+	warp_def $5, $0, 2, ECRUTEAK_CITY
+	warp_def $4, $9, 1, ROUTE_42
+	warp_def $5, $9, 2, ROUTE_42
 
 .XYTriggers:
 	db 0
@@ -35,4 +35,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_OFFICER, 6, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, OfficerScript_0x19a4b5, -1
+	person_event SPRITE_OFFICER, 6, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, OfficerScript_0x19a4b5, -1
--- a/maps/Route43.asm
+++ b/maps/Route43.asm
@@ -12,11 +12,11 @@
 UnknownScript_0x19d051:
 	checkevent EVENT_CLEARED_ROCKET_HIDEOUT
 	iftrue UnknownScript_0x19d05c
-	domaptrigger GROUP_ROUTE_43_GATE, MAP_ROUTE_43_GATE, $0
+	domaptrigger ROUTE_43_GATE, $0
 	return
 
 UnknownScript_0x19d05c:
-	domaptrigger GROUP_ROUTE_43_GATE, MAP_ROUTE_43_GATE, $1
+	domaptrigger ROUTE_43_GATE, $1
 	return
 
 TrainerCamperSpencer:
@@ -499,11 +499,11 @@
 
 .Warps:
 	db 5
-	warp_def $33, $9, 1, GROUP_ROUTE_43_MAHOGANY_GATE, MAP_ROUTE_43_MAHOGANY_GATE
-	warp_def $33, $a, 2, GROUP_ROUTE_43_MAHOGANY_GATE, MAP_ROUTE_43_MAHOGANY_GATE
-	warp_def $23, $11, 3, GROUP_ROUTE_43_GATE, MAP_ROUTE_43_GATE
-	warp_def $1f, $11, 1, GROUP_ROUTE_43_GATE, MAP_ROUTE_43_GATE
-	warp_def $1f, $12, 2, GROUP_ROUTE_43_GATE, MAP_ROUTE_43_GATE
+	warp_def $33, $9, 1, ROUTE_43_MAHOGANY_GATE
+	warp_def $33, $a, 2, ROUTE_43_MAHOGANY_GATE
+	warp_def $23, $11, 3, ROUTE_43_GATE
+	warp_def $1f, $11, 1, ROUTE_43_GATE
+	warp_def $1f, $12, 2, ROUTE_43_GATE
 
 .XYTriggers:
 	db 0
@@ -516,11 +516,11 @@
 
 .PersonEvents:
 	db 8
-	person_event SPRITE_SUPER_NERD, 9, 17, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 2, TrainerPokemaniacBen, -1
-	person_event SPRITE_SUPER_NERD, 24, 17, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerPokemaniacBrent1, -1
-	person_event SPRITE_SUPER_NERD, 11, 18, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 2, TrainerPokemaniacRon, -1
-	person_event SPRITE_FISHER, 20, 8, OW_LEFT | $1, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 4, TrainerFisherMarvin, -1
-	person_event SPRITE_LASS, 29, 13, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 2, TrainerPicnickerTiffany3, -1
-	person_event SPRITE_YOUNGSTER, 44, 17, OW_LEFT | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 3, TrainerCamperSpencer, -1
-	person_event SPRITE_FRUIT_TREE, 30, 5, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x19d266, -1
-	person_event SPRITE_POKE_BALL, 36, 16, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x19d268, EVENT_ROUTE_43_MAX_ETHER
+	person_event SPRITE_SUPER_NERD, 9, 17, $8, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 2, TrainerPokemaniacBen, -1
+	person_event SPRITE_SUPER_NERD, 24, 17, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerPokemaniacBrent1, -1
+	person_event SPRITE_SUPER_NERD, 11, 18, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 2, TrainerPokemaniacRon, -1
+	person_event SPRITE_FISHER, 20, 8, $9, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 4, TrainerFisherMarvin, -1
+	person_event SPRITE_LASS, 29, 13, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 2, TrainerPicnickerTiffany3, -1
+	person_event SPRITE_YOUNGSTER, 44, 17, $a, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 3, TrainerCamperSpencer, -1
+	person_event SPRITE_FRUIT_TREE, 30, 5, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x19d266, -1
+	person_event SPRITE_POKE_BALL, 36, 16, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19d268, EVENT_ROUTE_43_MAX_ETHER
--- a/maps/Route43Gate.asm
+++ b/maps/Route43Gate.asm
@@ -23,11 +23,11 @@
 UnknownScript_0x19abca:
 	checkevent EVENT_CLEARED_ROCKET_HIDEOUT
 	iftrue UnknownScript_0x19abd5
-	domaptrigger GROUP_ROUTE_43, MAP_ROUTE_43, $0
+	domaptrigger ROUTE_43, $0
 	return
 
 UnknownScript_0x19abd5:
-	domaptrigger GROUP_ROUTE_43, MAP_ROUTE_43, $1
+	domaptrigger ROUTE_43, $1
 	return
 
 UnknownScript_0x19abda:
@@ -251,10 +251,10 @@
 
 .Warps:
 	db 4
-	warp_def $0, $4, 4, GROUP_ROUTE_43, MAP_ROUTE_43
-	warp_def $0, $5, 5, GROUP_ROUTE_43, MAP_ROUTE_43
-	warp_def $7, $4, 3, GROUP_ROUTE_43, MAP_ROUTE_43
-	warp_def $7, $5, 3, GROUP_ROUTE_43, MAP_ROUTE_43
+	warp_def $0, $4, 4, ROUTE_43
+	warp_def $0, $5, 5, ROUTE_43
+	warp_def $7, $4, 3, ROUTE_43
+	warp_def $7, $5, 3, ROUTE_43
 
 .XYTriggers:
 	db 0
@@ -264,6 +264,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_OFFICER, 8, 4, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, OfficerScript_0x19ac85, EVENT_LAKE_OF_RAGE_CIVILIANS
-	person_event SPRITE_ROCKET, 8, 6, OW_UP | $2, $0, -1, -1, $0, 0, RocketScript_0x19ac82, EVENT_ROUTE_43_GATE_ROCKETS
-	person_event SPRITE_ROCKET, 8, 11, OW_UP | $3, $0, -1, -1, $0, 0, RocketScript_0x19ac82, EVENT_ROUTE_43_GATE_ROCKETS
+	person_event SPRITE_OFFICER, 8, 4, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, OfficerScript_0x19ac85, EVENT_LAKE_OF_RAGE_CIVILIANS
+	person_event SPRITE_ROCKET, 8, 6, $6, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x19ac82, EVENT_ROUTE_43_GATE_ROCKETS
+	person_event SPRITE_ROCKET, 8, 11, $7, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x19ac82, EVENT_ROUTE_43_GATE_ROCKETS
--- a/maps/Route43MahoganyGate.asm
+++ b/maps/Route43MahoganyGate.asm
@@ -41,10 +41,10 @@
 
 .Warps:
 	db 4
-	warp_def $0, $4, 1, GROUP_ROUTE_43, MAP_ROUTE_43
-	warp_def $0, $5, 2, GROUP_ROUTE_43, MAP_ROUTE_43
-	warp_def $7, $4, 5, GROUP_MAHOGANY_TOWN, MAP_MAHOGANY_TOWN
-	warp_def $7, $5, 5, GROUP_MAHOGANY_TOWN, MAP_MAHOGANY_TOWN
+	warp_def $0, $4, 1, ROUTE_43
+	warp_def $0, $5, 2, ROUTE_43
+	warp_def $7, $4, 5, MAHOGANY_TOWN
+	warp_def $7, $5, 5, MAHOGANY_TOWN
 
 .XYTriggers:
 	db 0
@@ -54,4 +54,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_OFFICER, 8, 4, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, OfficerScript_0x19ab0b, -1
+	person_event SPRITE_OFFICER, 8, 4, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, OfficerScript_0x19ab0b, -1
--- a/maps/Route44.asm
+++ b/maps/Route44.asm
@@ -500,7 +500,7 @@
 
 .Warps:
 	db 1
-	warp_def $7, $38, 1, GROUP_ICE_PATH_1F, MAP_ICE_PATH_1F
+	warp_def $7, $38, 1, ICE_PATH_1F
 
 .XYTriggers:
 	db 0
@@ -513,14 +513,14 @@
 
 .PersonEvents:
 	db 11
-	person_event SPRITE_FISHER, 7, 39, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 1, TrainerFisherWilton1, -1
-	person_event SPRITE_FISHER, 17, 23, OW_LEFT | $1, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 1, TrainerFisherEdgar, -1
-	person_event SPRITE_YOUNGSTER, 13, 14, OW_RIGHT | $13, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerPsychicPhil, -1
-	person_event SPRITE_SUPER_NERD, 6, 47, OW_RIGHT | $13, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 3, TrainerPokemaniacZach, -1
-	person_event SPRITE_YOUNGSTER, 9, 55, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 2, TrainerBird_keeperVance1, -1
-	person_event SPRITE_COOLTRAINER_M, 19, 45, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $82, 5, TrainerCooltrainermAllen, -1
-	person_event SPRITE_COOLTRAINER_F, 18, 35, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $82, 5, TrainerCooltrainerfCybil, -1
-	person_event SPRITE_FRUIT_TREE, 9, 13, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x19da40, -1
-	person_event SPRITE_POKE_BALL, 12, 34, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x19da42, EVENT_ROUTE_44_MAX_REVIVE
-	person_event SPRITE_POKE_BALL, 8, 49, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x19da44, EVENT_ROUTE_44_ULTRA_BALL
-	person_event SPRITE_POKE_BALL, 13, 18, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x19da46, EVENT_ROUTE_44_MAX_REPEL
+	person_event SPRITE_FISHER, 7, 39, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 1, TrainerFisherWilton1, -1
+	person_event SPRITE_FISHER, 17, 23, $9, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 1, TrainerFisherEdgar, -1
+	person_event SPRITE_YOUNGSTER, 13, 14, $1f, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerPsychicPhil, -1
+	person_event SPRITE_SUPER_NERD, 6, 47, $1f, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 3, TrainerPokemaniacZach, -1
+	person_event SPRITE_YOUNGSTER, 9, 55, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 2, TrainerBird_keeperVance1, -1
+	person_event SPRITE_COOLTRAINER_M, 19, 45, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 5, TrainerCooltrainermAllen, -1
+	person_event SPRITE_COOLTRAINER_F, 18, 35, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 5, TrainerCooltrainerfCybil, -1
+	person_event SPRITE_FRUIT_TREE, 9, 13, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x19da40, -1
+	person_event SPRITE_POKE_BALL, 12, 34, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19da42, EVENT_ROUTE_44_MAX_REVIVE
+	person_event SPRITE_POKE_BALL, 8, 49, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19da44, EVENT_ROUTE_44_ULTRA_BALL
+	person_event SPRITE_POKE_BALL, 13, 18, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19da46, EVENT_ROUTE_44_MAX_REPEL
--- a/maps/Route45.asm
+++ b/maps/Route45.asm
@@ -523,7 +523,7 @@
 
 .Warps:
 	db 1
-	warp_def $5, $2, 1, GROUP_DARK_CAVE_BLACKTHORN_ENTRANCE, MAP_DARK_CAVE_BLACKTHORN_ENTRANCE
+	warp_def $5, $2, 1, DARK_CAVE_BLACKTHORN_ENTRANCE
 
 .XYTriggers:
 	db 0
@@ -535,16 +535,16 @@
 
 .PersonEvents:
 	db 13
-	person_event SPRITE_POKEFAN_M, 20, 14, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 1, TrainerHikerErik, -1
-	person_event SPRITE_POKEFAN_M, 69, 19, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 2, TrainerHikerMichael, -1
-	person_event SPRITE_POKEFAN_M, 32, 9, OW_UP | $3, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 2, TrainerHikerParry, -1
-	person_event SPRITE_POKEFAN_M, 69, 13, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 1, TrainerHikerTimothy, -1
-	person_event SPRITE_BLACK_BELT, 54, 15, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 2, TrainerBlackbeltKenji, -1
-	person_event SPRITE_COOLTRAINER_M, 22, 21, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $82, 1, TrainerCooltrainermRyan, -1
-	person_event SPRITE_COOLTRAINER_F, 40, 9, OW_LEFT | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerCooltrainerfKelly, -1
-	person_event SPRITE_FRUIT_TREE, 86, 20, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x19e294, -1
-	person_event SPRITE_POKE_BALL, 55, 10, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x19e296, EVENT_ROUTE_45_NUGGET
-	person_event SPRITE_POKE_BALL, 70, 9, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x19e298, EVENT_ROUTE_45_REVIVE
-	person_event SPRITE_POKE_BALL, 24, 10, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x19e29a, EVENT_ROUTE_45_ELIXER
-	person_event SPRITE_POKE_BALL, 37, 11, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x19e29c, EVENT_ROUTE_45_MAX_POTION
-	person_event SPRITE_YOUNGSTER, 74, 8, OW_DOWN | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, YoungsterScript_0x19e269, -1
+	person_event SPRITE_POKEFAN_M, 20, 14, $9, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 1, TrainerHikerErik, -1
+	person_event SPRITE_POKEFAN_M, 69, 19, $9, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 2, TrainerHikerMichael, -1
+	person_event SPRITE_POKEFAN_M, 32, 9, $7, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 2, TrainerHikerParry, -1
+	person_event SPRITE_POKEFAN_M, 69, 13, $8, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 1, TrainerHikerTimothy, -1
+	person_event SPRITE_BLACK_BELT, 54, 15, $a, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 2, TrainerBlackbeltKenji, -1
+	person_event SPRITE_COOLTRAINER_M, 22, 21, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 1, TrainerCooltrainermRyan, -1
+	person_event SPRITE_COOLTRAINER_F, 40, 9, $a, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerCooltrainerfKelly, -1
+	person_event SPRITE_FRUIT_TREE, 86, 20, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x19e294, -1
+	person_event SPRITE_POKE_BALL, 55, 10, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19e296, EVENT_ROUTE_45_NUGGET
+	person_event SPRITE_POKE_BALL, 70, 9, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19e298, EVENT_ROUTE_45_REVIVE
+	person_event SPRITE_POKE_BALL, 24, 10, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19e29a, EVENT_ROUTE_45_ELIXER
+	person_event SPRITE_POKE_BALL, 37, 11, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19e29c, EVENT_ROUTE_45_MAX_POTION
+	person_event SPRITE_YOUNGSTER, 74, 8, $3, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, YoungsterScript_0x19e269, -1
--- a/maps/Route46.asm
+++ b/maps/Route46.asm
@@ -248,9 +248,9 @@
 
 .Warps:
 	db 3
-	warp_def $21, $7, 1, GROUP_ROUTE_29_46_GATE, MAP_ROUTE_29_46_GATE
-	warp_def $21, $8, 2, GROUP_ROUTE_29_46_GATE, MAP_ROUTE_29_46_GATE
-	warp_def $5, $e, 3, GROUP_DARK_CAVE_VIOLET_ENTRANCE, MAP_DARK_CAVE_VIOLET_ENTRANCE
+	warp_def $21, $7, 1, ROUTE_29_46_GATE
+	warp_def $21, $8, 2, ROUTE_29_46_GATE
+	warp_def $5, $e, 3, DARK_CAVE_VIOLET_ENTRANCE
 
 .XYTriggers:
 	db 0
@@ -261,9 +261,9 @@
 
 .PersonEvents:
 	db 6
-	person_event SPRITE_POKEFAN_M, 23, 16, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 2, TrainerHikerBailey, -1
-	person_event SPRITE_YOUNGSTER, 18, 8, OW_UP | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 2, TrainerCamperTed, -1
-	person_event SPRITE_LASS, 17, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 2, TrainerPicnickerErin1, -1
-	person_event SPRITE_FRUIT_TREE, 9, 11, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x1a978f, -1
-	person_event SPRITE_FRUIT_TREE, 10, 12, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x1a9791, -1
-	person_event SPRITE_POKE_BALL, 19, 5, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x1a978d, EVENT_ROUTE_46_X_SPEED
+	person_event SPRITE_POKEFAN_M, 23, 16, $8, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 2, TrainerHikerBailey, -1
+	person_event SPRITE_YOUNGSTER, 18, 8, $7, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 2, TrainerCamperTed, -1
+	person_event SPRITE_LASS, 17, 6, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 2, TrainerPicnickerErin1, -1
+	person_event SPRITE_FRUIT_TREE, 9, 11, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a978f, -1
+	person_event SPRITE_FRUIT_TREE, 10, 12, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a9791, -1
+	person_event SPRITE_POKE_BALL, 19, 5, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a978d, EVENT_ROUTE_46_X_SPEED
--- a/maps/Route5.asm
+++ b/maps/Route5.asm
@@ -42,10 +42,10 @@
 
 .Warps:
 	db 4
-	warp_def $f, $11, 1, GROUP_ROUTE_5_UNDERGROUND_ENTRANCE, MAP_ROUTE_5_UNDERGROUND_ENTRANCE
-	warp_def $11, $8, 1, GROUP_ROUTE_5_SAFFRON_CITY_GATE, MAP_ROUTE_5_SAFFRON_CITY_GATE
-	warp_def $11, $9, 2, GROUP_ROUTE_5_SAFFRON_CITY_GATE, MAP_ROUTE_5_SAFFRON_CITY_GATE
-	warp_def $b, $a, 1, GROUP_ROUTE_5_CLEANSE_TAG_SPEECH_HOUSE, MAP_ROUTE_5_CLEANSE_TAG_SPEECH_HOUSE
+	warp_def $f, $11, 1, ROUTE_5_UNDERGROUND_ENTRANCE
+	warp_def $11, $8, 1, ROUTE_5_SAFFRON_CITY_GATE
+	warp_def $11, $9, 2, ROUTE_5_SAFFRON_CITY_GATE
+	warp_def $b, $a, 1, ROUTE_5_CLEANSE_TAG_SPEECH_HOUSE
 
 .XYTriggers:
 	db 0
@@ -57,4 +57,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_POKEFAN_M, 20, 21, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, PokefanMScript_0x1adb19, EVENT_ROUTE_5_6_POKEFAN_M_BLOCKS_UNDERGROUND_PATH
+	person_event SPRITE_POKEFAN_M, 20, 21, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, PokefanMScript_0x1adb19, EVENT_ROUTE_5_6_POKEFAN_M_BLOCKS_UNDERGROUND_PATH
--- a/maps/Route5CleanseTagSpeechHouse.asm
+++ b/maps/Route5CleanseTagSpeechHouse.asm
@@ -62,8 +62,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 4, GROUP_ROUTE_5, MAP_ROUTE_5
-	warp_def $7, $3, 4, GROUP_ROUTE_5, MAP_ROUTE_5
+	warp_def $7, $2, 4, ROUTE_5
+	warp_def $7, $3, 4, ROUTE_5
 
 .XYTriggers:
 	db 0
@@ -75,5 +75,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_GRANNY, 9, 6, OW_RIGHT | $13, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, GrannyScript_0x18b634, -1
-	person_event SPRITE_TEACHER, 7, 9, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, TeacherScript_0x18b64f, -1
+	person_event SPRITE_GRANNY, 9, 6, $1f, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, GrannyScript_0x18b634, -1
+	person_event SPRITE_TEACHER, 7, 9, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, TeacherScript_0x18b64f, -1
--- a/maps/Route5SaffronCityGate.asm
+++ b/maps/Route5SaffronCityGate.asm
@@ -23,10 +23,10 @@
 
 .Warps:
 	db 4
-	warp_def $0, $4, 2, GROUP_ROUTE_5, MAP_ROUTE_5
-	warp_def $0, $5, 3, GROUP_ROUTE_5, MAP_ROUTE_5
-	warp_def $7, $4, 9, GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY
-	warp_def $7, $5, 9, GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY
+	warp_def $0, $4, 2, ROUTE_5
+	warp_def $0, $5, 3, ROUTE_5
+	warp_def $7, $4, 9, SAFFRON_CITY
+	warp_def $7, $5, 9, SAFFRON_CITY
 
 .XYTriggers:
 	db 0
@@ -36,4 +36,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_OFFICER, 8, 4, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, OfficerScript_0x18b5b9, -1
+	person_event SPRITE_OFFICER, 8, 4, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, OfficerScript_0x18b5b9, -1
--- a/maps/Route5UndergroundEntrance.asm
+++ b/maps/Route5UndergroundEntrance.asm
@@ -22,9 +22,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $3, 1, GROUP_ROUTE_5, MAP_ROUTE_5
-	warp_def $7, $4, 1, GROUP_ROUTE_5, MAP_ROUTE_5
-	warp_def $3, $4, 1, GROUP_UNDERGROUND, MAP_UNDERGROUND
+	warp_def $7, $3, 1, ROUTE_5
+	warp_def $7, $4, 1, ROUTE_5
+	warp_def $3, $4, 1, UNDERGROUND
 
 .XYTriggers:
 	db 0
@@ -34,4 +34,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_TEACHER, 6, 6, OW_DOWN | $2, $11, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, TeacherScript_0x18b555, -1
+	person_event SPRITE_TEACHER, 6, 6, $2, 1, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 0, TeacherScript_0x18b555, -1
--- a/maps/Route6.asm
+++ b/maps/Route6.asm
@@ -92,8 +92,8 @@
 
 .Warps:
 	db 2
-	warp_def $3, $11, 1, GROUP_ROUTE_6_UNDERGROUND_ENTRANCE, MAP_ROUTE_6_UNDERGROUND_ENTRANCE
-	warp_def $1, $6, 3, GROUP_ROUTE_6_SAFFRON_GATE, MAP_ROUTE_6_SAFFRON_GATE
+	warp_def $3, $11, 1, ROUTE_6_UNDERGROUND_ENTRANCE
+	warp_def $1, $6, 3, ROUTE_6_SAFFRON_GATE
 
 .XYTriggers:
 	db 0
@@ -104,6 +104,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_POKEFAN_M, 8, 21, OW_UP | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 2, PokefanMScript_0x1ad951, EVENT_ROUTE_5_6_POKEFAN_M_BLOCKS_UNDERGROUND_PATH
-	person_event SPRITE_POKEFAN_M, 16, 13, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $82, 0, TrainerPokefanmRex, -1
-	person_event SPRITE_POKEFAN_M, 16, 14, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $82, 0, TrainerPokefanmAllan, -1
+	person_event SPRITE_POKEFAN_M, 8, 21, $6, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 2, PokefanMScript_0x1ad951, EVENT_ROUTE_5_6_POKEFAN_M_BLOCKS_UNDERGROUND_PATH
+	person_event SPRITE_POKEFAN_M, 16, 13, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 0, TrainerPokefanmRex, -1
+	person_event SPRITE_POKEFAN_M, 16, 14, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 0, TrainerPokefanmAllan, -1
--- a/maps/Route6SaffronGate.asm
+++ b/maps/Route6SaffronGate.asm
@@ -62,10 +62,10 @@
 
 .Warps:
 	db 4
-	warp_def $0, $4, 12, GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY
-	warp_def $0, $5, 13, GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY
-	warp_def $7, $4, 2, GROUP_ROUTE_6, MAP_ROUTE_6
-	warp_def $7, $5, 2, GROUP_ROUTE_6, MAP_ROUTE_6
+	warp_def $0, $4, 12, SAFFRON_CITY
+	warp_def $0, $5, 13, SAFFRON_CITY
+	warp_def $7, $4, 2, ROUTE_6
+	warp_def $7, $5, 2, ROUTE_6
 
 .XYTriggers:
 	db 0
@@ -75,4 +75,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_OFFICER, 8, 4, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, OfficerScript_0x1926ea, -1
+	person_event SPRITE_OFFICER, 8, 4, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, OfficerScript_0x1926ea, -1
--- a/maps/Route6UndergroundEntrance.asm
+++ b/maps/Route6UndergroundEntrance.asm
@@ -11,9 +11,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $3, 1, GROUP_ROUTE_6, MAP_ROUTE_6
-	warp_def $7, $4, 1, GROUP_ROUTE_6, MAP_ROUTE_6
-	warp_def $3, $4, 2, GROUP_UNDERGROUND, MAP_UNDERGROUND
+	warp_def $7, $3, 1, ROUTE_6
+	warp_def $7, $4, 1, ROUTE_6
+	warp_def $3, $4, 2, UNDERGROUND
 
 .XYTriggers:
 	db 0
--- a/maps/Route7.asm
+++ b/maps/Route7.asm
@@ -40,8 +40,8 @@
 
 .Warps:
 	db 2
-	warp_def $6, $f, 1, GROUP_ROUTE_7_SAFFRON_GATE, MAP_ROUTE_7_SAFFRON_GATE
-	warp_def $7, $f, 2, GROUP_ROUTE_7_SAFFRON_GATE, MAP_ROUTE_7_SAFFRON_GATE
+	warp_def $6, $f, 1, ROUTE_7_SAFFRON_GATE
+	warp_def $7, $f, 2, ROUTE_7_SAFFRON_GATE
 
 .XYTriggers:
 	db 0
--- a/maps/Route7SaffronGate.asm
+++ b/maps/Route7SaffronGate.asm
@@ -48,10 +48,10 @@
 
 .Warps:
 	db 4
-	warp_def $4, $0, 1, GROUP_ROUTE_7, MAP_ROUTE_7
-	warp_def $5, $0, 2, GROUP_ROUTE_7, MAP_ROUTE_7
-	warp_def $4, $9, 10, GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY
-	warp_def $5, $9, 11, GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY
+	warp_def $4, $0, 1, ROUTE_7
+	warp_def $5, $0, 2, ROUTE_7
+	warp_def $4, $9, 10, SAFFRON_CITY
+	warp_def $5, $9, 11, SAFFRON_CITY
 
 .XYTriggers:
 	db 0
@@ -61,4 +61,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_OFFICER, 6, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, OfficerScript_0x73518, -1
+	person_event SPRITE_OFFICER, 6, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, OfficerScript_0x73518, -1
--- a/maps/Route8.asm
+++ b/maps/Route8.asm
@@ -170,8 +170,8 @@
 
 .Warps:
 	db 2
-	warp_def $4, $4, 3, GROUP_ROUTE_8_SAFFRON_GATE, MAP_ROUTE_8_SAFFRON_GATE
-	warp_def $5, $4, 4, GROUP_ROUTE_8_SAFFRON_GATE, MAP_ROUTE_8_SAFFRON_GATE
+	warp_def $4, $4, 3, ROUTE_8_SAFFRON_GATE
+	warp_def $5, $4, 4, ROUTE_8_SAFFRON_GATE
 
 .XYTriggers:
 	db 0
@@ -183,9 +183,9 @@
 
 .PersonEvents:
 	db 6
-	person_event SPRITE_BIKER, 12, 14, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $82, 5, TrainerBikerDwayne, -1
-	person_event SPRITE_BIKER, 13, 14, OW_LEFT | $0, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 5, TrainerBikerHarris, -1
-	person_event SPRITE_BIKER, 14, 14, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 5, TrainerBikerZeke, -1
-	person_event SPRITE_SUPER_NERD, 6, 27, OW_UP | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 3, TrainerSupernerdSam, -1
-	person_event SPRITE_SUPER_NERD, 16, 35, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 4, TrainerSupernerdTom, -1
-	person_event SPRITE_FRUIT_TREE, 9, 37, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x6c06c, -1
+	person_event SPRITE_BIKER, 12, 14, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 5, TrainerBikerDwayne, -1
+	person_event SPRITE_BIKER, 13, 14, $8, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 5, TrainerBikerHarris, -1
+	person_event SPRITE_BIKER, 14, 14, $8, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 5, TrainerBikerZeke, -1
+	person_event SPRITE_SUPER_NERD, 6, 27, $6, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 3, TrainerSupernerdSam, -1
+	person_event SPRITE_SUPER_NERD, 16, 35, $a, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 4, TrainerSupernerdTom, -1
+	person_event SPRITE_FRUIT_TREE, 9, 37, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x6c06c, -1
--- a/maps/Route8SaffronGate.asm
+++ b/maps/Route8SaffronGate.asm
@@ -22,10 +22,10 @@
 
 .Warps:
 	db 4
-	warp_def $4, $0, 14, GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY
-	warp_def $5, $0, 15, GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY
-	warp_def $4, $9, 1, GROUP_ROUTE_8, MAP_ROUTE_8
-	warp_def $5, $9, 2, GROUP_ROUTE_8, MAP_ROUTE_8
+	warp_def $4, $0, 14, SAFFRON_CITY
+	warp_def $5, $0, 15, SAFFRON_CITY
+	warp_def $4, $9, 1, ROUTE_8
+	warp_def $5, $9, 2, ROUTE_8
 
 .XYTriggers:
 	db 0
@@ -35,4 +35,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_OFFICER, 6, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, OfficerScript_0x7f416, -1
+	person_event SPRITE_OFFICER, 6, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, OfficerScript_0x7f416, -1
--- a/maps/Route9.asm
+++ b/maps/Route9.asm
@@ -204,7 +204,7 @@
 
 .Warps:
 	db 1
-	warp_def $f, $30, 1, GROUP_ROCK_TUNNEL_1F, MAP_ROCK_TUNNEL_1F
+	warp_def $f, $30, 1, ROCK_TUNNEL_1F
 
 .XYTriggers:
 	db 0
@@ -216,9 +216,9 @@
 
 .PersonEvents:
 	db 6
-	person_event SPRITE_YOUNGSTER, 15, 27, OW_LEFT | $0, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 3, TrainerCamperDean, -1
-	person_event SPRITE_LASS, 12, 43, OW_LEFT | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 3, TrainerPicnickerHeidi, -1
-	person_event SPRITE_YOUNGSTER, 8, 15, OW_LEFT | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 5, TrainerCamperSid, -1
-	person_event SPRITE_LASS, 19, 16, OW_UP | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 1, TrainerPicnickerEdna, -1
-	person_event SPRITE_POKEFAN_M, 7, 32, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 2, TrainerHikerTim, -1
-	person_event SPRITE_POKEFAN_M, 19, 40, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 4, TrainerHikerSidney, -1
+	person_event SPRITE_YOUNGSTER, 15, 27, $8, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 3, TrainerCamperDean, -1
+	person_event SPRITE_LASS, 12, 43, $a, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 3, TrainerPicnickerHeidi, -1
+	person_event SPRITE_YOUNGSTER, 8, 15, $a, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 5, TrainerCamperSid, -1
+	person_event SPRITE_LASS, 19, 16, $7, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 1, TrainerPicnickerEdna, -1
+	person_event SPRITE_POKEFAN_M, 7, 32, $9, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 2, TrainerHikerTim, -1
+	person_event SPRITE_POKEFAN_M, 19, 40, $9, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 4, TrainerHikerSidney, -1
--- a/maps/RuinsofAlphAerodactylChamber.asm
+++ b/maps/RuinsofAlphAerodactylChamber.asm
@@ -64,7 +64,7 @@
 	setevent EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS
 	setevent EVENT_SOLVED_AERODACTYL_PUZZLE
 	setflag ENGINE_UNLOCKED_UNOWNS_3
-	domaptrigger GROUP_RUINS_OF_ALPH_INNER_CHAMBER, MAP_RUINS_OF_ALPH_INNER_CHAMBER, $1
+	domaptrigger RUINS_OF_ALPH_INNER_CHAMBER, $1
 	earthquake 30
 	showemote EMOTE_SHOCK, PLAYER, 15
 	changeblock $2, $2, $18
@@ -154,11 +154,11 @@
 
 .Warps:
 	db 5
-	warp_def $9, $3, 4, GROUP_RUINS_OF_ALPH_OUTSIDE, MAP_RUINS_OF_ALPH_OUTSIDE
-	warp_def $9, $4, 4, GROUP_RUINS_OF_ALPH_OUTSIDE, MAP_RUINS_OF_ALPH_OUTSIDE
-	warp_def $3, $3, 8, GROUP_RUINS_OF_ALPH_INNER_CHAMBER, MAP_RUINS_OF_ALPH_INNER_CHAMBER
-	warp_def $3, $4, 9, GROUP_RUINS_OF_ALPH_INNER_CHAMBER, MAP_RUINS_OF_ALPH_INNER_CHAMBER
-	warp_def $0, $4, 1, GROUP_RUINS_OF_ALPH_AERODACTYL_ITEM_ROOM, MAP_RUINS_OF_ALPH_AERODACTYL_ITEM_ROOM
+	warp_def $9, $3, 4, RUINS_OF_ALPH_OUTSIDE
+	warp_def $9, $4, 4, RUINS_OF_ALPH_OUTSIDE
+	warp_def $3, $3, 8, RUINS_OF_ALPH_INNER_CHAMBER
+	warp_def $3, $4, 9, RUINS_OF_ALPH_INNER_CHAMBER
+	warp_def $0, $4, 1, RUINS_OF_ALPH_AERODACTYL_ITEM_ROOM
 
 .XYTriggers:
 	db 0
--- a/maps/RuinsofAlphAerodactylItemRoom.asm
+++ b/maps/RuinsofAlphAerodactylItemRoom.asm
@@ -32,10 +32,10 @@
 
 .Warps:
 	db 4
-	warp_def $9, $3, 5, GROUP_RUINS_OF_ALPH_AERODACTYL_CHAMBER, MAP_RUINS_OF_ALPH_AERODACTYL_CHAMBER
-	warp_def $9, $4, 5, GROUP_RUINS_OF_ALPH_AERODACTYL_CHAMBER, MAP_RUINS_OF_ALPH_AERODACTYL_CHAMBER
-	warp_def $1, $3, 1, GROUP_RUINS_OF_ALPH_AERODACTYL_WORD_ROOM, MAP_RUINS_OF_ALPH_AERODACTYL_WORD_ROOM
-	warp_def $1, $4, 2, GROUP_RUINS_OF_ALPH_AERODACTYL_WORD_ROOM, MAP_RUINS_OF_ALPH_AERODACTYL_WORD_ROOM
+	warp_def $9, $3, 5, RUINS_OF_ALPH_AERODACTYL_CHAMBER
+	warp_def $9, $4, 5, RUINS_OF_ALPH_AERODACTYL_CHAMBER
+	warp_def $1, $3, 1, RUINS_OF_ALPH_AERODACTYL_WORD_ROOM
+	warp_def $1, $4, 2, RUINS_OF_ALPH_AERODACTYL_WORD_ROOM
 
 .XYTriggers:
 	db 0
@@ -47,7 +47,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_POKE_BALL, 10, 6, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x59ab6, EVENT_PICKED_UP_GOLD_BERRY_FROM_AERODACTYL_ITEM_ROOM
-	person_event SPRITE_POKE_BALL, 10, 9, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x59ab8, EVENT_PICKED_UP_MOON_STONE_FROM_AERODACTYL_ITEM_ROOM
-	person_event SPRITE_POKE_BALL, 8, 6, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x59aba, EVENT_PICKED_UP_HEAL_POWDER_FROM_AERODACTYL_ITEM_ROOM
-	person_event SPRITE_POKE_BALL, 8, 9, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x59abc, EVENT_PICKED_UP_ENERGY_ROOT_FROM_AERODACTYL_ITEM_ROOM
+	person_event SPRITE_POKE_BALL, 10, 6, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59ab6, EVENT_PICKED_UP_GOLD_BERRY_FROM_AERODACTYL_ITEM_ROOM
+	person_event SPRITE_POKE_BALL, 10, 9, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59ab8, EVENT_PICKED_UP_MOON_STONE_FROM_AERODACTYL_ITEM_ROOM
+	person_event SPRITE_POKE_BALL, 8, 6, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59aba, EVENT_PICKED_UP_HEAL_POWDER_FROM_AERODACTYL_ITEM_ROOM
+	person_event SPRITE_POKE_BALL, 8, 9, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59abc, EVENT_PICKED_UP_ENERGY_ROOT_FROM_AERODACTYL_ITEM_ROOM
--- a/maps/RuinsofAlphAerodactylWordRoom.asm
+++ b/maps/RuinsofAlphAerodactylWordRoom.asm
@@ -11,9 +11,9 @@
 
 .Warps:
 	db 3
-	warp_def $5, $9, 3, GROUP_RUINS_OF_ALPH_AERODACTYL_ITEM_ROOM, MAP_RUINS_OF_ALPH_AERODACTYL_ITEM_ROOM
-	warp_def $5, $a, 4, GROUP_RUINS_OF_ALPH_AERODACTYL_ITEM_ROOM, MAP_RUINS_OF_ALPH_AERODACTYL_ITEM_ROOM
-	warp_def $b, $11, 8, GROUP_RUINS_OF_ALPH_INNER_CHAMBER, MAP_RUINS_OF_ALPH_INNER_CHAMBER
+	warp_def $5, $9, 3, RUINS_OF_ALPH_AERODACTYL_ITEM_ROOM
+	warp_def $5, $a, 4, RUINS_OF_ALPH_AERODACTYL_ITEM_ROOM
+	warp_def $b, $11, 8, RUINS_OF_ALPH_INNER_CHAMBER
 
 .XYTriggers:
 	db 0
--- a/maps/RuinsofAlphHoOhChamber.asm
+++ b/maps/RuinsofAlphHoOhChamber.asm
@@ -65,7 +65,7 @@
 	setevent EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS
 	setevent EVENT_SOLVED_HO_OH_PUZZLE
 	setflag ENGINE_UNLOCKED_UNOWNS_4
-	domaptrigger GROUP_RUINS_OF_ALPH_INNER_CHAMBER, MAP_RUINS_OF_ALPH_INNER_CHAMBER, $1
+	domaptrigger RUINS_OF_ALPH_INNER_CHAMBER, $1
 	earthquake 30
 	showemote EMOTE_SHOCK, PLAYER, 15
 	changeblock $2, $2, $18
@@ -155,11 +155,11 @@
 
 .Warps:
 	db 5
-	warp_def $9, $3, 1, GROUP_RUINS_OF_ALPH_OUTSIDE, MAP_RUINS_OF_ALPH_OUTSIDE
-	warp_def $9, $4, 1, GROUP_RUINS_OF_ALPH_OUTSIDE, MAP_RUINS_OF_ALPH_OUTSIDE
-	warp_def $3, $3, 2, GROUP_RUINS_OF_ALPH_INNER_CHAMBER, MAP_RUINS_OF_ALPH_INNER_CHAMBER
-	warp_def $3, $4, 3, GROUP_RUINS_OF_ALPH_INNER_CHAMBER, MAP_RUINS_OF_ALPH_INNER_CHAMBER
-	warp_def $0, $4, 1, GROUP_RUINS_OF_ALPH_HO_OH_ITEM_ROOM, MAP_RUINS_OF_ALPH_HO_OH_ITEM_ROOM
+	warp_def $9, $3, 1, RUINS_OF_ALPH_OUTSIDE
+	warp_def $9, $4, 1, RUINS_OF_ALPH_OUTSIDE
+	warp_def $3, $3, 2, RUINS_OF_ALPH_INNER_CHAMBER
+	warp_def $3, $4, 3, RUINS_OF_ALPH_INNER_CHAMBER
+	warp_def $0, $4, 1, RUINS_OF_ALPH_HO_OH_ITEM_ROOM
 
 .XYTriggers:
 	db 0
--- a/maps/RuinsofAlphHoOhItemRoom.asm
+++ b/maps/RuinsofAlphHoOhItemRoom.asm
@@ -32,10 +32,10 @@
 
 .Warps:
 	db 4
-	warp_def $9, $3, 5, GROUP_RUINS_OF_ALPH_HO_OH_CHAMBER, MAP_RUINS_OF_ALPH_HO_OH_CHAMBER
-	warp_def $9, $4, 5, GROUP_RUINS_OF_ALPH_HO_OH_CHAMBER, MAP_RUINS_OF_ALPH_HO_OH_CHAMBER
-	warp_def $1, $3, 1, GROUP_RUINS_OF_ALPH_HO_OH_WORD_ROOM, MAP_RUINS_OF_ALPH_HO_OH_WORD_ROOM
-	warp_def $1, $4, 2, GROUP_RUINS_OF_ALPH_HO_OH_WORD_ROOM, MAP_RUINS_OF_ALPH_HO_OH_WORD_ROOM
+	warp_def $9, $3, 5, RUINS_OF_ALPH_HO_OH_CHAMBER
+	warp_def $9, $4, 5, RUINS_OF_ALPH_HO_OH_CHAMBER
+	warp_def $1, $3, 1, RUINS_OF_ALPH_HO_OH_WORD_ROOM
+	warp_def $1, $4, 2, RUINS_OF_ALPH_HO_OH_WORD_ROOM
 
 .XYTriggers:
 	db 0
@@ -47,7 +47,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_POKE_BALL, 10, 6, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x59918, EVENT_PICKED_UP_GOLD_BERRY_FROM_HO_OH_ITEM_ROOM
-	person_event SPRITE_POKE_BALL, 10, 9, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x5991a, EVENT_PICKED_UP_MYSTERYBERRY_FROM_HO_OH_ITEM_ROOM
-	person_event SPRITE_POKE_BALL, 8, 6, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x5991c, EVENT_PICKED_UP_REVIVAL_HERB_FROM_HO_OH_ITEM_ROOM
-	person_event SPRITE_POKE_BALL, 8, 9, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x5991e, EVENT_PICKED_UP_CHARCOAL_FROM_HO_OH_ITEM_ROOM
+	person_event SPRITE_POKE_BALL, 10, 6, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59918, EVENT_PICKED_UP_GOLD_BERRY_FROM_HO_OH_ITEM_ROOM
+	person_event SPRITE_POKE_BALL, 10, 9, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5991a, EVENT_PICKED_UP_MYSTERYBERRY_FROM_HO_OH_ITEM_ROOM
+	person_event SPRITE_POKE_BALL, 8, 6, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5991c, EVENT_PICKED_UP_REVIVAL_HERB_FROM_HO_OH_ITEM_ROOM
+	person_event SPRITE_POKE_BALL, 8, 9, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5991e, EVENT_PICKED_UP_CHARCOAL_FROM_HO_OH_ITEM_ROOM
--- a/maps/RuinsofAlphHoOhWordRoom.asm
+++ b/maps/RuinsofAlphHoOhWordRoom.asm
@@ -11,9 +11,9 @@
 
 .Warps:
 	db 3
-	warp_def $9, $9, 3, GROUP_RUINS_OF_ALPH_HO_OH_ITEM_ROOM, MAP_RUINS_OF_ALPH_HO_OH_ITEM_ROOM
-	warp_def $9, $a, 4, GROUP_RUINS_OF_ALPH_HO_OH_ITEM_ROOM, MAP_RUINS_OF_ALPH_HO_OH_ITEM_ROOM
-	warp_def $15, $11, 2, GROUP_RUINS_OF_ALPH_INNER_CHAMBER, MAP_RUINS_OF_ALPH_INNER_CHAMBER
+	warp_def $9, $9, 3, RUINS_OF_ALPH_HO_OH_ITEM_ROOM
+	warp_def $9, $a, 4, RUINS_OF_ALPH_HO_OH_ITEM_ROOM
+	warp_def $15, $11, 2, RUINS_OF_ALPH_INNER_CHAMBER
 
 .XYTriggers:
 	db 0
--- a/maps/RuinsofAlphInnerChamber.asm
+++ b/maps/RuinsofAlphInnerChamber.asm
@@ -81,15 +81,15 @@
 
 .Warps:
 	db 9
-	warp_def $d, $a, 5, GROUP_RUINS_OF_ALPH_OUTSIDE, MAP_RUINS_OF_ALPH_OUTSIDE
-	warp_def $f, $3, 3, GROUP_RUINS_OF_ALPH_HO_OH_CHAMBER, MAP_RUINS_OF_ALPH_HO_OH_CHAMBER
-	warp_def $f, $4, 4, GROUP_RUINS_OF_ALPH_HO_OH_CHAMBER, MAP_RUINS_OF_ALPH_HO_OH_CHAMBER
-	warp_def $3, $f, 3, GROUP_RUINS_OF_ALPH_KABUTO_CHAMBER, MAP_RUINS_OF_ALPH_KABUTO_CHAMBER
-	warp_def $3, $10, 4, GROUP_RUINS_OF_ALPH_KABUTO_CHAMBER, MAP_RUINS_OF_ALPH_KABUTO_CHAMBER
-	warp_def $15, $3, 3, GROUP_RUINS_OF_ALPH_OMANYTE_CHAMBER, MAP_RUINS_OF_ALPH_OMANYTE_CHAMBER
-	warp_def $15, $4, 4, GROUP_RUINS_OF_ALPH_OMANYTE_CHAMBER, MAP_RUINS_OF_ALPH_OMANYTE_CHAMBER
-	warp_def $18, $f, 3, GROUP_RUINS_OF_ALPH_AERODACTYL_CHAMBER, MAP_RUINS_OF_ALPH_AERODACTYL_CHAMBER
-	warp_def $18, $10, 4, GROUP_RUINS_OF_ALPH_AERODACTYL_CHAMBER, MAP_RUINS_OF_ALPH_AERODACTYL_CHAMBER
+	warp_def $d, $a, 5, RUINS_OF_ALPH_OUTSIDE
+	warp_def $f, $3, 3, RUINS_OF_ALPH_HO_OH_CHAMBER
+	warp_def $f, $4, 4, RUINS_OF_ALPH_HO_OH_CHAMBER
+	warp_def $3, $f, 3, RUINS_OF_ALPH_KABUTO_CHAMBER
+	warp_def $3, $10, 4, RUINS_OF_ALPH_KABUTO_CHAMBER
+	warp_def $15, $3, 3, RUINS_OF_ALPH_OMANYTE_CHAMBER
+	warp_def $15, $4, 4, RUINS_OF_ALPH_OMANYTE_CHAMBER
+	warp_def $18, $f, 3, RUINS_OF_ALPH_AERODACTYL_CHAMBER
+	warp_def $18, $10, 4, RUINS_OF_ALPH_AERODACTYL_CHAMBER
 
 .XYTriggers:
 	db 0
@@ -125,6 +125,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_FISHER, 11, 7, OW_DOWN | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, FisherScript_0x58f7d, EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS
-	person_event SPRITE_TEACHER, 17, 18, OW_DOWN | $2, $11, -1, -1, $0, 0, TeacherScript_0x58f80, EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS
-	person_event SPRITE_GRAMPS, 23, 15, OW_UP | $3, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, GrampsScript_0x58f83, EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS
+	person_event SPRITE_FISHER, 11, 7, $3, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, FisherScript_0x58f7d, EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS
+	person_event SPRITE_TEACHER, 17, 18, $2, 1, 1, -1, -1, 0, 0, 0, TeacherScript_0x58f80, EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS
+	person_event SPRITE_GRAMPS, 23, 15, $7, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, GrampsScript_0x58f83, EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS
--- a/maps/RuinsofAlphKabutoChamber.asm
+++ b/maps/RuinsofAlphKabutoChamber.asm
@@ -70,7 +70,7 @@
 	setevent EVENT_SOLVED_KABUTO_PUZZLE
 	setflag ENGINE_UNLOCKED_UNOWNS_1
 	setevent EVENT_RUINS_OF_ALPH_KABUTO_CHAMBER_RECEPTIONIST
-	domaptrigger GROUP_RUINS_OF_ALPH_INNER_CHAMBER, MAP_RUINS_OF_ALPH_INNER_CHAMBER, $1
+	domaptrigger RUINS_OF_ALPH_INNER_CHAMBER, $1
 	earthquake 30
 	showemote EMOTE_SHOCK, PLAYER, 15
 	changeblock $2, $2, $18
@@ -264,11 +264,11 @@
 
 .Warps:
 	db 5
-	warp_def $9, $3, 2, GROUP_RUINS_OF_ALPH_OUTSIDE, MAP_RUINS_OF_ALPH_OUTSIDE
-	warp_def $9, $4, 2, GROUP_RUINS_OF_ALPH_OUTSIDE, MAP_RUINS_OF_ALPH_OUTSIDE
-	warp_def $3, $3, 4, GROUP_RUINS_OF_ALPH_INNER_CHAMBER, MAP_RUINS_OF_ALPH_INNER_CHAMBER
-	warp_def $3, $4, 5, GROUP_RUINS_OF_ALPH_INNER_CHAMBER, MAP_RUINS_OF_ALPH_INNER_CHAMBER
-	warp_def $0, $4, 1, GROUP_RUINS_OF_ALPH_KABUTO_ITEM_ROOM, MAP_RUINS_OF_ALPH_KABUTO_ITEM_ROOM
+	warp_def $9, $3, 2, RUINS_OF_ALPH_OUTSIDE
+	warp_def $9, $4, 2, RUINS_OF_ALPH_OUTSIDE
+	warp_def $3, $3, 4, RUINS_OF_ALPH_INNER_CHAMBER
+	warp_def $3, $4, 5, RUINS_OF_ALPH_INNER_CHAMBER
+	warp_def $0, $4, 1, RUINS_OF_ALPH_KABUTO_ITEM_ROOM
 
 .XYTriggers:
 	db 0
@@ -284,5 +284,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_RECEPTIONIST, 9, 9, OW_UP | $2, $0, -1, -1, $0, 0, ReceptionistScript_0x58769, EVENT_RUINS_OF_ALPH_KABUTO_CHAMBER_RECEPTIONIST
-	person_event SPRITE_SCIENTIST, 5, 7, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ScientistScript_0x587a8, -1
+	person_event SPRITE_RECEPTIONIST, 9, 9, $6, 0, 0, -1, -1, 0, 0, 0, ReceptionistScript_0x58769, EVENT_RUINS_OF_ALPH_KABUTO_CHAMBER_RECEPTIONIST
+	person_event SPRITE_SCIENTIST, 5, 7, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ScientistScript_0x587a8, -1
--- a/maps/RuinsofAlphKabutoItemRoom.asm
+++ b/maps/RuinsofAlphKabutoItemRoom.asm
@@ -32,10 +32,10 @@
 
 .Warps:
 	db 4
-	warp_def $9, $3, 5, GROUP_RUINS_OF_ALPH_KABUTO_CHAMBER, MAP_RUINS_OF_ALPH_KABUTO_CHAMBER
-	warp_def $9, $4, 5, GROUP_RUINS_OF_ALPH_KABUTO_CHAMBER, MAP_RUINS_OF_ALPH_KABUTO_CHAMBER
-	warp_def $1, $3, 1, GROUP_RUINS_OF_ALPH_KABUTO_WORD_ROOM, MAP_RUINS_OF_ALPH_KABUTO_WORD_ROOM
-	warp_def $1, $4, 2, GROUP_RUINS_OF_ALPH_KABUTO_WORD_ROOM, MAP_RUINS_OF_ALPH_KABUTO_WORD_ROOM
+	warp_def $9, $3, 5, RUINS_OF_ALPH_KABUTO_CHAMBER
+	warp_def $9, $4, 5, RUINS_OF_ALPH_KABUTO_CHAMBER
+	warp_def $1, $3, 1, RUINS_OF_ALPH_KABUTO_WORD_ROOM
+	warp_def $1, $4, 2, RUINS_OF_ALPH_KABUTO_WORD_ROOM
 
 .XYTriggers:
 	db 0
@@ -47,7 +47,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_POKE_BALL, 10, 6, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x599a2, EVENT_PICKED_UP_BERRY_FROM_KABUTO_ITEM_ROOM
-	person_event SPRITE_POKE_BALL, 10, 9, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x599a4, EVENT_PICKED_UP_PSNCUREBERRY_FROM_KABUTO_ITEM_ROOM
-	person_event SPRITE_POKE_BALL, 8, 6, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x599a6, EVENT_PICKED_UP_HEAL_POWDER_FROM_KABUTO_ITEM_ROOM
-	person_event SPRITE_POKE_BALL, 8, 9, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x599a8, EVENT_PICKED_UP_ENERGYPOWDER_FROM_KABUTO_ITEM_ROOM
+	person_event SPRITE_POKE_BALL, 10, 6, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x599a2, EVENT_PICKED_UP_BERRY_FROM_KABUTO_ITEM_ROOM
+	person_event SPRITE_POKE_BALL, 10, 9, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x599a4, EVENT_PICKED_UP_PSNCUREBERRY_FROM_KABUTO_ITEM_ROOM
+	person_event SPRITE_POKE_BALL, 8, 6, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x599a6, EVENT_PICKED_UP_HEAL_POWDER_FROM_KABUTO_ITEM_ROOM
+	person_event SPRITE_POKE_BALL, 8, 9, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x599a8, EVENT_PICKED_UP_ENERGYPOWDER_FROM_KABUTO_ITEM_ROOM
--- a/maps/RuinsofAlphKabutoWordRoom.asm
+++ b/maps/RuinsofAlphKabutoWordRoom.asm
@@ -11,9 +11,9 @@
 
 .Warps:
 	db 3
-	warp_def $5, $9, 3, GROUP_RUINS_OF_ALPH_KABUTO_ITEM_ROOM, MAP_RUINS_OF_ALPH_KABUTO_ITEM_ROOM
-	warp_def $5, $a, 4, GROUP_RUINS_OF_ALPH_KABUTO_ITEM_ROOM, MAP_RUINS_OF_ALPH_KABUTO_ITEM_ROOM
-	warp_def $b, $11, 4, GROUP_RUINS_OF_ALPH_INNER_CHAMBER, MAP_RUINS_OF_ALPH_INNER_CHAMBER
+	warp_def $5, $9, 3, RUINS_OF_ALPH_KABUTO_ITEM_ROOM
+	warp_def $5, $a, 4, RUINS_OF_ALPH_KABUTO_ITEM_ROOM
+	warp_def $b, $11, 4, RUINS_OF_ALPH_INNER_CHAMBER
 
 .XYTriggers:
 	db 0
--- a/maps/RuinsofAlphOmanyteChamber.asm
+++ b/maps/RuinsofAlphOmanyteChamber.asm
@@ -65,7 +65,7 @@
 	setevent EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS
 	setevent EVENT_SOLVED_OMANYTE_PUZZLE
 	setflag ENGINE_UNLOCKED_UNOWNS_2
-	domaptrigger GROUP_RUINS_OF_ALPH_INNER_CHAMBER, MAP_RUINS_OF_ALPH_INNER_CHAMBER, $1
+	domaptrigger RUINS_OF_ALPH_INNER_CHAMBER, $1
 	earthquake 30
 	showemote EMOTE_SHOCK, PLAYER, 15
 	changeblock $2, $2, $18
@@ -155,11 +155,11 @@
 
 .Warps:
 	db 5
-	warp_def $9, $3, 3, GROUP_RUINS_OF_ALPH_OUTSIDE, MAP_RUINS_OF_ALPH_OUTSIDE
-	warp_def $9, $4, 3, GROUP_RUINS_OF_ALPH_OUTSIDE, MAP_RUINS_OF_ALPH_OUTSIDE
-	warp_def $3, $3, 6, GROUP_RUINS_OF_ALPH_INNER_CHAMBER, MAP_RUINS_OF_ALPH_INNER_CHAMBER
-	warp_def $3, $4, 7, GROUP_RUINS_OF_ALPH_INNER_CHAMBER, MAP_RUINS_OF_ALPH_INNER_CHAMBER
-	warp_def $0, $4, 1, GROUP_RUINS_OF_ALPH_OMANYTE_ITEM_ROOM, MAP_RUINS_OF_ALPH_OMANYTE_ITEM_ROOM
+	warp_def $9, $3, 3, RUINS_OF_ALPH_OUTSIDE
+	warp_def $9, $4, 3, RUINS_OF_ALPH_OUTSIDE
+	warp_def $3, $3, 6, RUINS_OF_ALPH_INNER_CHAMBER
+	warp_def $3, $4, 7, RUINS_OF_ALPH_INNER_CHAMBER
+	warp_def $0, $4, 1, RUINS_OF_ALPH_OMANYTE_ITEM_ROOM
 
 .XYTriggers:
 	db 0
--- a/maps/RuinsofAlphOmanyteItemRoom.asm
+++ b/maps/RuinsofAlphOmanyteItemRoom.asm
@@ -32,10 +32,10 @@
 
 .Warps:
 	db 4
-	warp_def $9, $3, 5, GROUP_RUINS_OF_ALPH_OMANYTE_CHAMBER, MAP_RUINS_OF_ALPH_OMANYTE_CHAMBER
-	warp_def $9, $4, 5, GROUP_RUINS_OF_ALPH_OMANYTE_CHAMBER, MAP_RUINS_OF_ALPH_OMANYTE_CHAMBER
-	warp_def $1, $3, 1, GROUP_RUINS_OF_ALPH_OMANYTE_WORD_ROOM, MAP_RUINS_OF_ALPH_OMANYTE_WORD_ROOM
-	warp_def $1, $4, 2, GROUP_RUINS_OF_ALPH_OMANYTE_WORD_ROOM, MAP_RUINS_OF_ALPH_OMANYTE_WORD_ROOM
+	warp_def $9, $3, 5, RUINS_OF_ALPH_OMANYTE_CHAMBER
+	warp_def $9, $4, 5, RUINS_OF_ALPH_OMANYTE_CHAMBER
+	warp_def $1, $3, 1, RUINS_OF_ALPH_OMANYTE_WORD_ROOM
+	warp_def $1, $4, 2, RUINS_OF_ALPH_OMANYTE_WORD_ROOM
 
 .XYTriggers:
 	db 0
@@ -47,7 +47,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_POKE_BALL, 10, 6, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x59a2c, EVENT_PICKED_UP_MYSTERYBERRY_FROM_OMANYTE_ITEM_ROOM
-	person_event SPRITE_POKE_BALL, 10, 9, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x59a2e, EVENT_PICKED_UP_MYSTIC_WATER_FROM_OMANYTE_ITEM_ROOM
-	person_event SPRITE_POKE_BALL, 8, 6, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x59a30, EVENT_PICKED_UP_STARDUST_FROM_OMANYTE_ITEM_ROOM
-	person_event SPRITE_POKE_BALL, 8, 9, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x59a32, EVENT_PICKED_UP_STAR_PIECE_FROM_OMANYTE_ITEM_ROOM
+	person_event SPRITE_POKE_BALL, 10, 6, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59a2c, EVENT_PICKED_UP_MYSTERYBERRY_FROM_OMANYTE_ITEM_ROOM
+	person_event SPRITE_POKE_BALL, 10, 9, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59a2e, EVENT_PICKED_UP_MYSTIC_WATER_FROM_OMANYTE_ITEM_ROOM
+	person_event SPRITE_POKE_BALL, 8, 6, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59a30, EVENT_PICKED_UP_STARDUST_FROM_OMANYTE_ITEM_ROOM
+	person_event SPRITE_POKE_BALL, 8, 9, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59a32, EVENT_PICKED_UP_STAR_PIECE_FROM_OMANYTE_ITEM_ROOM
--- a/maps/RuinsofAlphOmanyteWordRoom.asm
+++ b/maps/RuinsofAlphOmanyteWordRoom.asm
@@ -11,9 +11,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $9, 3, GROUP_RUINS_OF_ALPH_OMANYTE_ITEM_ROOM, MAP_RUINS_OF_ALPH_OMANYTE_ITEM_ROOM
-	warp_def $7, $a, 4, GROUP_RUINS_OF_ALPH_OMANYTE_ITEM_ROOM, MAP_RUINS_OF_ALPH_OMANYTE_ITEM_ROOM
-	warp_def $d, $11, 6, GROUP_RUINS_OF_ALPH_INNER_CHAMBER, MAP_RUINS_OF_ALPH_INNER_CHAMBER
+	warp_def $7, $9, 3, RUINS_OF_ALPH_OMANYTE_ITEM_ROOM
+	warp_def $7, $a, 4, RUINS_OF_ALPH_OMANYTE_ITEM_ROOM
+	warp_def $d, $11, 6, RUINS_OF_ALPH_INNER_CHAMBER
 
 .XYTriggers:
 	db 0
--- a/maps/RuinsofAlphOutside.asm
+++ b/maps/RuinsofAlphOutside.asm
@@ -64,7 +64,7 @@
 	disappear $3
 	stopfollow
 	applymovement PLAYER, MovementData_0x580c5
-	domaptrigger GROUP_RUINS_OF_ALPH_RESEARCH_CENTER, MAP_RUINS_OF_ALPH_RESEARCH_CENTER, $1
+	domaptrigger RUINS_OF_ALPH_RESEARCH_CENTER, $1
 	warpcheck
 	end
 
@@ -286,17 +286,17 @@
 
 .Warps:
 	db 11
-	warp_def $11, $2, 1, GROUP_RUINS_OF_ALPH_HO_OH_CHAMBER, MAP_RUINS_OF_ALPH_HO_OH_CHAMBER
-	warp_def $7, $e, 1, GROUP_RUINS_OF_ALPH_KABUTO_CHAMBER, MAP_RUINS_OF_ALPH_KABUTO_CHAMBER
-	warp_def $1d, $2, 1, GROUP_RUINS_OF_ALPH_OMANYTE_CHAMBER, MAP_RUINS_OF_ALPH_OMANYTE_CHAMBER
-	warp_def $21, $10, 1, GROUP_RUINS_OF_ALPH_AERODACTYL_CHAMBER, MAP_RUINS_OF_ALPH_AERODACTYL_CHAMBER
-	warp_def $d, $a, 1, GROUP_RUINS_OF_ALPH_INNER_CHAMBER, MAP_RUINS_OF_ALPH_INNER_CHAMBER
-	warp_def $b, $11, 1, GROUP_RUINS_OF_ALPH_RESEARCH_CENTER, MAP_RUINS_OF_ALPH_RESEARCH_CENTER
-	warp_def $13, $6, 1, GROUP_UNION_CAVE_B1F, MAP_UNION_CAVE_B1F
-	warp_def $1b, $6, 2, GROUP_UNION_CAVE_B1F, MAP_UNION_CAVE_B1F
-	warp_def $5, $7, 3, GROUP_ROUTE_36_RUINS_OF_ALPH_GATE, MAP_ROUTE_36_RUINS_OF_ALPH_GATE
-	warp_def $14, $d, 1, GROUP_ROUTE_32_RUINS_OF_ALPH_GATE, MAP_ROUTE_32_RUINS_OF_ALPH_GATE
-	warp_def $15, $d, 2, GROUP_ROUTE_32_RUINS_OF_ALPH_GATE, MAP_ROUTE_32_RUINS_OF_ALPH_GATE
+	warp_def $11, $2, 1, RUINS_OF_ALPH_HO_OH_CHAMBER
+	warp_def $7, $e, 1, RUINS_OF_ALPH_KABUTO_CHAMBER
+	warp_def $1d, $2, 1, RUINS_OF_ALPH_OMANYTE_CHAMBER
+	warp_def $21, $10, 1, RUINS_OF_ALPH_AERODACTYL_CHAMBER
+	warp_def $d, $a, 1, RUINS_OF_ALPH_INNER_CHAMBER
+	warp_def $b, $11, 1, RUINS_OF_ALPH_RESEARCH_CENTER
+	warp_def $13, $6, 1, UNION_CAVE_B1F
+	warp_def $1b, $6, 2, UNION_CAVE_B1F
+	warp_def $5, $7, 3, ROUTE_36_RUINS_OF_ALPH_GATE
+	warp_def $14, $d, 1, ROUTE_32_RUINS_OF_ALPH_GATE
+	warp_def $15, $d, 2, ROUTE_32_RUINS_OF_ALPH_GATE
 
 .XYTriggers:
 	db 2
@@ -311,8 +311,8 @@
 
 .PersonEvents:
 	db 5
-	person_event SPRITE_YOUNGSTER, 24, 8, OW_UP | $2, $0, -1, -1, $2, 1, TrainerPsychicNathan, -1
-	person_event SPRITE_SCIENTIST, 19, 15, OW_UP | $3, $0, -1, -1, $0, 0, ScientistScript_0x58043, EVENT_RUINS_OF_ALPH_OUTSIDE_SCIENTIST
-	person_event SPRITE_FISHER, 21, 17, OW_DOWN | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, FisherScript_0x58061, EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_FISHER
-	person_event SPRITE_YOUNGSTER, 15, 18, OW_DOWN | $2, $11, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, YoungsterScript_0x58076, EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_YOUNGSTERS
-	person_event SPRITE_YOUNGSTER, 12, 16, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, YoungsterScript_0x5807e, EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_YOUNGSTERS
+	person_event SPRITE_YOUNGSTER, 24, 8, $6, 0, 0, -1, -1, 0, 2, 1, TrainerPsychicNathan, -1
+	person_event SPRITE_SCIENTIST, 19, 15, $7, 0, 0, -1, -1, 0, 0, 0, ScientistScript_0x58043, EVENT_RUINS_OF_ALPH_OUTSIDE_SCIENTIST
+	person_event SPRITE_FISHER, 21, 17, $3, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, FisherScript_0x58061, EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_FISHER
+	person_event SPRITE_YOUNGSTER, 15, 18, $2, 1, 1, -1, -1, 8 + PAL_OW_BROWN, 0, 0, YoungsterScript_0x58076, EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_YOUNGSTERS
+	person_event SPRITE_YOUNGSTER, 12, 16, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, YoungsterScript_0x5807e, EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_YOUNGSTERS
--- a/maps/RuinsofAlphResearchCenter.asm
+++ b/maps/RuinsofAlphResearchCenter.asm
@@ -398,8 +398,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 6, GROUP_RUINS_OF_ALPH_OUTSIDE, MAP_RUINS_OF_ALPH_OUTSIDE
-	warp_def $7, $3, 6, GROUP_RUINS_OF_ALPH_OUTSIDE, MAP_RUINS_OF_ALPH_OUTSIDE
+	warp_def $7, $2, 6, RUINS_OF_ALPH_OUTSIDE
+	warp_def $7, $3, 6, RUINS_OF_ALPH_OUTSIDE
 
 .XYTriggers:
 	db 0
@@ -412,6 +412,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_SCIENTIST, 9, 8, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ScientistScript_0x591e5, -1
-	person_event SPRITE_SCIENTIST, 6, 9, OW_DOWN | $2, $12, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ScientistScript_0x59214, -1
-	person_event SPRITE_SCIENTIST, 9, 6, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ScientistScript_0x591d1, EVENT_RUINS_OF_ALPH_RESEARCH_CENTER_SCIENTIST
+	person_event SPRITE_SCIENTIST, 9, 8, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ScientistScript_0x591e5, -1
+	person_event SPRITE_SCIENTIST, 6, 9, $2, 1, 2, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ScientistScript_0x59214, -1
+	person_event SPRITE_SCIENTIST, 9, 6, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ScientistScript_0x591d1, EVENT_RUINS_OF_ALPH_RESEARCH_CENTER_SCIENTIST
--- a/maps/SafariZoneBeta.asm
+++ b/maps/SafariZoneBeta.asm
@@ -11,8 +11,8 @@
 
 .Warps:
 	db 2
-	warp_def $17, $9, 1, GROUP_SAFARI_ZONE_FUCHSIA_GATE_BETA, MAP_SAFARI_ZONE_FUCHSIA_GATE_BETA
-	warp_def $17, $a, 2, GROUP_SAFARI_ZONE_FUCHSIA_GATE_BETA, MAP_SAFARI_ZONE_FUCHSIA_GATE_BETA
+	warp_def $17, $9, 1, SAFARI_ZONE_FUCHSIA_GATE_BETA
+	warp_def $17, $a, 2, SAFARI_ZONE_FUCHSIA_GATE_BETA
 
 .XYTriggers:
 	db 0
--- a/maps/SafariZoneFuchsiaGateBeta.asm
+++ b/maps/SafariZoneFuchsiaGateBeta.asm
@@ -11,10 +11,10 @@
 
 .Warps:
 	db 4
-	warp_def $0, $4, 1, GROUP_SAFARI_ZONE_BETA, MAP_SAFARI_ZONE_BETA
-	warp_def $0, $5, 2, GROUP_SAFARI_ZONE_BETA, MAP_SAFARI_ZONE_BETA
-	warp_def $7, $4, 7, GROUP_FUCHSIA_CITY, MAP_FUCHSIA_CITY
-	warp_def $7, $5, 7, GROUP_FUCHSIA_CITY, MAP_FUCHSIA_CITY
+	warp_def $0, $4, 1, SAFARI_ZONE_BETA
+	warp_def $0, $5, 2, SAFARI_ZONE_BETA
+	warp_def $7, $4, 7, FUCHSIA_CITY
+	warp_def $7, $5, 7, FUCHSIA_CITY
 
 .XYTriggers:
 	db 0
--- a/maps/SafariZoneMainOffice.asm
+++ b/maps/SafariZoneMainOffice.asm
@@ -11,8 +11,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 2, GROUP_FUCHSIA_CITY, MAP_FUCHSIA_CITY
-	warp_def $7, $3, 2, GROUP_FUCHSIA_CITY, MAP_FUCHSIA_CITY
+	warp_def $7, $2, 2, FUCHSIA_CITY
+	warp_def $7, $3, 2, FUCHSIA_CITY
 
 .XYTriggers:
 	db 0
--- a/maps/SafariZoneWardensHome.asm
+++ b/maps/SafariZoneWardensHome.asm
@@ -79,8 +79,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 6, GROUP_FUCHSIA_CITY, MAP_FUCHSIA_CITY
-	warp_def $7, $3, 6, GROUP_FUCHSIA_CITY, MAP_FUCHSIA_CITY
+	warp_def $7, $2, 6, FUCHSIA_CITY
+	warp_def $7, $3, 6, FUCHSIA_CITY
 
 .XYTriggers:
 	db 0
@@ -94,4 +94,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_LASS, 8, 6, OW_LEFT | $1, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, WardensGranddaughter, -1
+	person_event SPRITE_LASS, 8, 6, $9, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, WardensGranddaughter, -1
--- a/maps/SaffronCity.asm
+++ b/maps/SaffronCity.asm
@@ -263,21 +263,21 @@
 
 .Warps:
 	db 15
-	warp_def $3, $1a, 1, GROUP_FIGHTING_DOJO, MAP_FIGHTING_DOJO
-	warp_def $3, $22, 1, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $b, $19, 2, GROUP_SAFFRON_MART, MAP_SAFFRON_MART
-	warp_def $1d, $9, 1, GROUP_SAFFRON_POKECENTER_1F, MAP_SAFFRON_POKECENTER_1F
-	warp_def $1d, $1b, 1, GROUP_MR_PSYCHICS_HOUSE, MAP_MR_PSYCHICS_HOUSE
-	warp_def $3, $8, 2, GROUP_SAFFRON_TRAIN_STATION, MAP_SAFFRON_TRAIN_STATION
-	warp_def $15, $12, 1, GROUP_SILPH_CO_1F, MAP_SILPH_CO_1F
-	warp_def $b, $9, 1, GROUP_COPYCATS_HOUSE_1F, MAP_COPYCATS_HOUSE_1F
-	warp_def $3, $12, 3, GROUP_ROUTE_5_SAFFRON_CITY_GATE, MAP_ROUTE_5_SAFFRON_CITY_GATE
-	warp_def $18, $0, 3, GROUP_ROUTE_7_SAFFRON_GATE, MAP_ROUTE_7_SAFFRON_GATE
-	warp_def $19, $0, 4, GROUP_ROUTE_7_SAFFRON_GATE, MAP_ROUTE_7_SAFFRON_GATE
-	warp_def $21, $10, 1, GROUP_ROUTE_6_SAFFRON_GATE, MAP_ROUTE_6_SAFFRON_GATE
-	warp_def $21, $11, 2, GROUP_ROUTE_6_SAFFRON_GATE, MAP_ROUTE_6_SAFFRON_GATE
-	warp_def $16, $27, 1, GROUP_ROUTE_8_SAFFRON_GATE, MAP_ROUTE_8_SAFFRON_GATE
-	warp_def $17, $27, 2, GROUP_ROUTE_8_SAFFRON_GATE, MAP_ROUTE_8_SAFFRON_GATE
+	warp_def $3, $1a, 1, FIGHTING_DOJO
+	warp_def $3, $22, 1, SAFFRON_GYM
+	warp_def $b, $19, 2, SAFFRON_MART
+	warp_def $1d, $9, 1, SAFFRON_POKECENTER_1F
+	warp_def $1d, $1b, 1, MR_PSYCHICS_HOUSE
+	warp_def $3, $8, 2, SAFFRON_TRAIN_STATION
+	warp_def $15, $12, 1, SILPH_CO_1F
+	warp_def $b, $9, 1, COPYCATS_HOUSE_1F
+	warp_def $3, $12, 3, ROUTE_5_SAFFRON_CITY_GATE
+	warp_def $18, $0, 3, ROUTE_7_SAFFRON_GATE
+	warp_def $19, $0, 4, ROUTE_7_SAFFRON_GATE
+	warp_def $21, $10, 1, ROUTE_6_SAFFRON_GATE
+	warp_def $21, $11, 2, ROUTE_6_SAFFRON_GATE
+	warp_def $16, $27, 1, ROUTE_8_SAFFRON_GATE
+	warp_def $17, $27, 2, ROUTE_8_SAFFRON_GATE
 
 .XYTriggers:
 	db 0
@@ -295,11 +295,11 @@
 
 .PersonEvents:
 	db 8
-	person_event SPRITE_LASS, 18, 11, OW_UP | $1, $2, -1, -1, (PAL_OW_RED << 4) | $80, 0, LassScript_0x19932a, -1
-	person_event SPRITE_POKEFAN_M, 34, 23, OW_UP | $1, $2, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, PokefanMScript_0x19933e, -1
-	person_event SPRITE_COOLTRAINER_M, 11, 36, OW_UP | $1, $1, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, CooltrainerMScript_0x199352, -1
-	person_event SPRITE_COOLTRAINER_F, 28, 24, OW_UP | $1, $2, -1, -1, (PAL_OW_RED << 4) | $80, 0, CooltrainerFScript_0x199355, -1
-	person_event SPRITE_FISHER, 16, 31, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, FisherScript_0x199358, -1
-	person_event SPRITE_YOUNGSTER, 23, 19, OW_UP | $0, $10, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, YoungsterScript_0x19936c, -1
-	person_event SPRITE_YOUNGSTER, 26, 39, OW_DOWN | $2, $11, -1, -1, (PAL_OW_RED << 4) | $80, 0, YoungsterScript_0x19936f, -1
-	person_event SPRITE_LASS, 12, 23, OW_DOWN | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, LassScript_0x199372, -1
+	person_event SPRITE_LASS, 18, 11, $5, 0, 2, -1, -1, 8 + PAL_OW_RED, 0, 0, LassScript_0x19932a, -1
+	person_event SPRITE_POKEFAN_M, 34, 23, $5, 0, 2, -1, -1, 8 + PAL_OW_BROWN, 0, 0, PokefanMScript_0x19933e, -1
+	person_event SPRITE_COOLTRAINER_M, 11, 36, $5, 0, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 0, CooltrainerMScript_0x199352, -1
+	person_event SPRITE_COOLTRAINER_F, 28, 24, $5, 0, 2, -1, -1, 8 + PAL_OW_RED, 0, 0, CooltrainerFScript_0x199355, -1
+	person_event SPRITE_FISHER, 16, 31, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, FisherScript_0x199358, -1
+	person_event SPRITE_YOUNGSTER, 23, 19, $4, 1, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, YoungsterScript_0x19936c, -1
+	person_event SPRITE_YOUNGSTER, 26, 39, $2, 1, 1, -1, -1, 8 + PAL_OW_RED, 0, 0, YoungsterScript_0x19936f, -1
+	person_event SPRITE_LASS, 12, 23, $3, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, LassScript_0x199372, -1
--- a/maps/SaffronGym.asm
+++ b/maps/SaffronGym.asm
@@ -288,38 +288,38 @@
 
 .Warps:
 	db 32
-	warp_def $11, $8, 2, GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY
-	warp_def $11, $9, 2, GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY
-	warp_def $f, $b, 18, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $f, $13, 19, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $b, $13, 20, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $b, $1, 21, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $3, $5, 22, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $5, $b, 23, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $f, $1, 24, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $3, $13, 25, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $11, $f, 26, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $11, $5, 27, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $9, $5, 28, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $3, $9, 29, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $9, $f, 30, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $5, $f, 31, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $5, $1, 32, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $11, $13, 3, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $9, $13, 4, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $9, $1, 5, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $5, $5, 6, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $3, $b, 7, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $11, $1, 8, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $5, $13, 9, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $f, $f, 10, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $f, $5, 11, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $b, $5, 12, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $5, $9, 13, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $b, $f, 14, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $3, $f, 15, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $3, $1, 16, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
-	warp_def $9, $b, 17, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
+	warp_def $11, $8, 2, SAFFRON_CITY
+	warp_def $11, $9, 2, SAFFRON_CITY
+	warp_def $f, $b, 18, SAFFRON_GYM
+	warp_def $f, $13, 19, SAFFRON_GYM
+	warp_def $b, $13, 20, SAFFRON_GYM
+	warp_def $b, $1, 21, SAFFRON_GYM
+	warp_def $3, $5, 22, SAFFRON_GYM
+	warp_def $5, $b, 23, SAFFRON_GYM
+	warp_def $f, $1, 24, SAFFRON_GYM
+	warp_def $3, $13, 25, SAFFRON_GYM
+	warp_def $11, $f, 26, SAFFRON_GYM
+	warp_def $11, $5, 27, SAFFRON_GYM
+	warp_def $9, $5, 28, SAFFRON_GYM
+	warp_def $3, $9, 29, SAFFRON_GYM
+	warp_def $9, $f, 30, SAFFRON_GYM
+	warp_def $5, $f, 31, SAFFRON_GYM
+	warp_def $5, $1, 32, SAFFRON_GYM
+	warp_def $11, $13, 3, SAFFRON_GYM
+	warp_def $9, $13, 4, SAFFRON_GYM
+	warp_def $9, $1, 5, SAFFRON_GYM
+	warp_def $5, $5, 6, SAFFRON_GYM
+	warp_def $3, $b, 7, SAFFRON_GYM
+	warp_def $11, $1, 8, SAFFRON_GYM
+	warp_def $5, $13, 9, SAFFRON_GYM
+	warp_def $f, $f, 10, SAFFRON_GYM
+	warp_def $f, $5, 11, SAFFRON_GYM
+	warp_def $b, $5, 12, SAFFRON_GYM
+	warp_def $5, $9, 13, SAFFRON_GYM
+	warp_def $b, $f, 14, SAFFRON_GYM
+	warp_def $3, $f, 15, SAFFRON_GYM
+	warp_def $3, $1, 16, SAFFRON_GYM
+	warp_def $9, $b, 17, SAFFRON_GYM
 
 .XYTriggers:
 	db 0
@@ -330,9 +330,9 @@
 
 .PersonEvents:
 	db 6
-	person_event SPRITE_SABRINA, 12, 13, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, SabrinaScript_0x189c2e, -1
-	person_event SPRITE_GRANNY, 20, 21, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 3, TrainerMediumRebecca, -1
-	person_event SPRITE_YOUNGSTER, 20, 7, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerPsychicFranklin, -1
-	person_event SPRITE_GRANNY, 8, 7, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 2, TrainerMediumDoris, -1
-	person_event SPRITE_YOUNGSTER, 8, 21, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 2, TrainerPsychicJared, -1
-	person_event SPRITE_GYM_GUY, 18, 13, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, SaffronGymGuyScript, -1
+	person_event SPRITE_SABRINA, 12, 13, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, SabrinaScript_0x189c2e, -1
+	person_event SPRITE_GRANNY, 20, 21, $a, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 3, TrainerMediumRebecca, -1
+	person_event SPRITE_YOUNGSTER, 20, 7, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerPsychicFranklin, -1
+	person_event SPRITE_GRANNY, 8, 7, $a, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 2, TrainerMediumDoris, -1
+	person_event SPRITE_YOUNGSTER, 8, 21, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 2, TrainerPsychicJared, -1
+	person_event SPRITE_GYM_GUY, 18, 13, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, SaffronGymGuyScript, -1
--- a/maps/SaffronMart.asm
+++ b/maps/SaffronMart.asm
@@ -38,8 +38,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 3, GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY
-	warp_def $7, $3, 3, GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY
+	warp_def $7, $2, 3, SAFFRON_CITY
+	warp_def $7, $3, 3, SAFFRON_CITY
 
 .XYTriggers:
 	db 0
@@ -49,6 +49,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 7, 5, OW_LEFT | $1, $0, -1, -1, $0, 0, ClerkScript_0x18a3bf, -1
-	person_event SPRITE_COOLTRAINER_M, 6, 11, OW_DOWN | $3, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, CooltrainerMScript_0x18a3c6, -1
-	person_event SPRITE_COOLTRAINER_F, 10, 11, OW_UP | $1, $1, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, CooltrainerFScript_0x18a3c9, -1
+	person_event SPRITE_CLERK, 7, 5, $9, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x18a3bf, -1
+	person_event SPRITE_COOLTRAINER_M, 6, 11, $3, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, CooltrainerMScript_0x18a3c6, -1
+	person_event SPRITE_COOLTRAINER_F, 10, 11, $5, 0, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x18a3c9, -1
--- a/maps/SaffronPokeCenter1F.asm
+++ b/maps/SaffronPokeCenter1F.asm
@@ -111,9 +111,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $3, 4, GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY
-	warp_def $7, $4, 4, GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY
-	warp_def $7, $0, 1, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
+	warp_def $7, $3, 4, SAFFRON_CITY
+	warp_def $7, $4, 4, SAFFRON_CITY
+	warp_def $7, $0, 1, POKECENTER_2F
 
 .XYTriggers:
 	db 0
@@ -123,7 +123,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_NURSE, 5, 7, OW_UP | $2, $0, -1, -1, $0, 0, NurseScript_0x18a47d, -1
-	person_event SPRITE_TEACHER, 6, 11, OW_DOWN | $2, $11, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, TeacherScript_0x18a480, -1
-	person_event SPRITE_FISHER, 10, 12, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, FisherScript_0x18a48c, -1
-	person_event SPRITE_YOUNGSTER, 8, 5, OW_DOWN | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, YoungsterScript_0x18a4a0, -1
+	person_event SPRITE_NURSE, 5, 7, $6, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x18a47d, -1
+	person_event SPRITE_TEACHER, 6, 11, $2, 1, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 0, TeacherScript_0x18a480, -1
+	person_event SPRITE_FISHER, 10, 12, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, FisherScript_0x18a48c, -1
+	person_event SPRITE_YOUNGSTER, 8, 5, $3, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, YoungsterScript_0x18a4a0, -1
--- a/maps/SaffronPokeCenter2FBeta.asm
+++ b/maps/SaffronPokeCenter2FBeta.asm
@@ -11,7 +11,7 @@
 
 .Warps:
 	db 1
-	warp_def $7, $0, 3, GROUP_SAFFRON_POKECENTER_1F, MAP_SAFFRON_POKECENTER_1F
+	warp_def $7, $0, 3, SAFFRON_POKECENTER_1F
 
 .XYTriggers:
 	db 0
--- a/maps/SaffronTrainStation.asm
+++ b/maps/SaffronTrainStation.asm
@@ -3,12 +3,12 @@
 	db 1
 
 	; triggers
-	dw UnknownScript_0x18a81d, $0000
+	dw .Trigger1, $0000
 
 .MapCallbacks:
 	db 0
 
-UnknownScript_0x18a81d:
+.Trigger1:
 	end
 
 OfficerScript_0x18a81e:
@@ -15,18 +15,18 @@
 	faceplayer
 	loadfont
 	checkevent EVENT_RESTORED_POWER_TO_KANTO
-	iftrue UnknownScript_0x18a82c
+	iftrue .MagnetTrainToGoldenrod
 	writetext UnknownText_0x18a8a9
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x18a82c:
+.MagnetTrainToGoldenrod:
 	writetext UnknownText_0x18a8dd
 	yesorno
-	iffalse UnknownScript_0x18a85c
+	iffalse .DecidedNotToRide
 	checkitem PASS
-	iffalse UnknownScript_0x18a856
+	iffalse .PassNotInBag
 	writetext UnknownText_0x18a917
 	closetext
 	loadmovesprites
@@ -36,27 +36,27 @@
 	special Special_MagnetTrain
 	warpcheck
 	newloadmap $f9
-	applymovement PLAYER, MovementData_0x18a854
+	applymovement PLAYER, .MovementBoardTheTrain
 	wait $14
 	end
 
-MovementData_0x18a854:
+.MovementBoardTheTrain:
 	turn_head_down
 	step_end
 
-UnknownScript_0x18a856:
+.PassNotInBag:
 	writetext UnknownText_0x18a956
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x18a85c:
+.DecidedNotToRide:
 	writetext UnknownText_0x18a978
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x18a862:
+Script_ArriveFromGoldenrod:
 	applymovement $2, MovementData_0x18a88f
 	applymovement PLAYER, MovementData_0x18a8a1
 	applymovement $2, MovementData_0x18a894
@@ -217,14 +217,14 @@
 
 .Warps:
 	db 4
-	warp_def $11, $8, 6, GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY
-	warp_def $11, $9, 6, GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY
-	warp_def $5, $6, 4, GROUP_GOLDENROD_MAGNET_TRAIN_STATION, MAP_GOLDENROD_MAGNET_TRAIN_STATION
-	warp_def $5, $b, 3, GROUP_GOLDENROD_MAGNET_TRAIN_STATION, MAP_GOLDENROD_MAGNET_TRAIN_STATION
+	warp_def $11, $8, 6, SAFFRON_CITY
+	warp_def $11, $9, 6, SAFFRON_CITY
+	warp_def $5, $6, 4, GOLDENROD_MAGNET_TRAIN_STATION
+	warp_def $5, $b, 3, GOLDENROD_MAGNET_TRAIN_STATION
 
 .XYTriggers:
 	db 1
-	xy_trigger 0, $6, $b, $0, UnknownScript_0x18a862, $0, $0
+	xy_trigger 0, $6, $b, $0, Script_ArriveFromGoldenrod, $0, $0
 
 .Signposts:
 	db 0
@@ -231,7 +231,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_OFFICER, 13, 13, OW_UP | $2, $0, -1, -1, $0, 0, OfficerScript_0x18a81e, -1
-	person_event SPRITE_GYM_GUY, 18, 14, OW_DOWN | $2, $11, -1, -1, $0, 0, GymGuyScript_0x18a875, -1
-	person_event SPRITE_TEACHER, 15, 10, OW_LEFT | $1, $0, -1, -1, $0, 0, TeacherScript_0x18a889, EVENT_SAFFRON_TRAIN_STATION_POPULATION
-	person_event SPRITE_LASS, 14, 10, OW_UP | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, LassScript_0x18a88c, EVENT_SAFFRON_TRAIN_STATION_POPULATION
+	person_event SPRITE_OFFICER, 13, 13, $6, 0, 0, -1, -1, 0, 0, 0, OfficerScript_0x18a81e, -1
+	person_event SPRITE_GYM_GUY, 18, 14, $2, 1, 1, -1, -1, 0, 0, 0, GymGuyScript_0x18a875, -1
+	person_event SPRITE_TEACHER, 15, 10, $9, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x18a889, EVENT_SAFFRON_TRAIN_STATION_POPULATION
+	person_event SPRITE_LASS, 14, 10, $7, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, LassScript_0x18a88c, EVENT_SAFFRON_TRAIN_STATION_POPULATION
--- a/maps/SeafoamGym.asm
+++ b/maps/SeafoamGym.asm
@@ -161,7 +161,7 @@
 
 .Warps:
 	db 1
-	warp_def $5, $5, 1, GROUP_ROUTE_20, MAP_ROUTE_20
+	warp_def $5, $5, 1, ROUTE_20
 
 .XYTriggers:
 	db 0
@@ -171,5 +171,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_BLAINE, 6, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, BlaineScript_0x1ab4fb, -1
-	person_event SPRITE_GYM_GUY, 9, 10, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, SeafoamGymGuyScript, EVENT_SEAFOAM_GYM_GYM_GUY
+	person_event SPRITE_BLAINE, 6, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, BlaineScript_0x1ab4fb, -1
+	person_event SPRITE_GYM_GUY, 9, 10, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, SeafoamGymGuyScript, EVENT_SEAFOAM_GYM_GYM_GUY
--- a/maps/SilphCo1F.asm
+++ b/maps/SilphCo1F.asm
@@ -57,8 +57,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 7, GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY
-	warp_def $7, $3, 7, GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY
+	warp_def $7, $2, 7, SAFFRON_CITY
+	warp_def $7, $3, 7, SAFFRON_CITY
 
 .XYTriggers:
 	db 0
@@ -68,5 +68,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_RECEPTIONIST, 6, 8, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ReceptionistScript_0x18abe5, -1
-	person_event SPRITE_OFFICER, 5, 17, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, OfficerScript_0x18abe8, -1
+	person_event SPRITE_RECEPTIONIST, 6, 8, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ReceptionistScript_0x18abe5, -1
+	person_event SPRITE_OFFICER, 5, 17, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, OfficerScript_0x18abe8, -1
--- a/maps/SilverCaveItemRooms.asm
+++ b/maps/SilverCaveItemRooms.asm
@@ -17,8 +17,8 @@
 
 .Warps:
 	db 2
-	warp_def $3, $d, 3, GROUP_SILVER_CAVE_ROOM_2, MAP_SILVER_CAVE_ROOM_2
-	warp_def $f, $7, 4, GROUP_SILVER_CAVE_ROOM_2, MAP_SILVER_CAVE_ROOM_2
+	warp_def $3, $d, 3, SILVER_CAVE_ROOM_2
+	warp_def $f, $7, 4, SILVER_CAVE_ROOM_2
 
 .XYTriggers:
 	db 0
@@ -28,5 +28,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_POKE_BALL, 7, 10, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c65e, EVENT_SILVER_CAVE_ITEM_ROOMS_MAX_REVIVE
-	person_event SPRITE_POKE_BALL, 15, 19, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c660, EVENT_SILVER_CAVE_ITEM_ROOMS_FULL_RESTORE
+	person_event SPRITE_POKE_BALL, 7, 10, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c65e, EVENT_SILVER_CAVE_ITEM_ROOMS_MAX_REVIVE
+	person_event SPRITE_POKE_BALL, 15, 19, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c660, EVENT_SILVER_CAVE_ITEM_ROOMS_FULL_RESTORE
--- a/maps/SilverCaveOutside.asm
+++ b/maps/SilverCaveOutside.asm
@@ -31,8 +31,8 @@
 
 .Warps:
 	db 2
-	warp_def $13, $17, 1, GROUP_SILVER_CAVE_POKECENTER_1F, MAP_SILVER_CAVE_POKECENTER_1F
-	warp_def $b, $12, 1, GROUP_SILVER_CAVE_ROOM_1, MAP_SILVER_CAVE_ROOM_1
+	warp_def $13, $17, 1, SILVER_CAVE_POKECENTER_1F
+	warp_def $b, $12, 1, SILVER_CAVE_ROOM_1
 
 .XYTriggers:
 	db 0
--- a/maps/SilverCavePokeCenter1F.asm
+++ b/maps/SilverCavePokeCenter1F.asm
@@ -31,9 +31,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $3, 1, GROUP_SILVER_CAVE_OUTSIDE, MAP_SILVER_CAVE_OUTSIDE
-	warp_def $7, $4, 1, GROUP_SILVER_CAVE_OUTSIDE, MAP_SILVER_CAVE_OUTSIDE
-	warp_def $7, $0, 1, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
+	warp_def $7, $3, 1, SILVER_CAVE_OUTSIDE
+	warp_def $7, $4, 1, SILVER_CAVE_OUTSIDE
+	warp_def $7, $0, 1, POKECENTER_2F
 
 .XYTriggers:
 	db 0
@@ -43,5 +43,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_NURSE, 5, 7, OW_UP | $2, $0, -1, -1, $0, 0, NurseScript_0x1ae59a, -1
-	person_event SPRITE_GRANNY, 9, 5, OW_LEFT | $0, $12, -1, -1, $0, 0, GrannyScript_0x1ae59d, -1
+	person_event SPRITE_NURSE, 5, 7, $6, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x1ae59a, -1
+	person_event SPRITE_GRANNY, 9, 5, $8, 1, 2, -1, -1, 0, 0, 0, GrannyScript_0x1ae59d, -1
--- a/maps/SilverCaveRoom1.asm
+++ b/maps/SilverCaveRoom1.asm
@@ -31,8 +31,8 @@
 
 .Warps:
 	db 2
-	warp_def $21, $9, 2, GROUP_SILVER_CAVE_OUTSIDE, MAP_SILVER_CAVE_OUTSIDE
-	warp_def $1, $f, 1, GROUP_SILVER_CAVE_ROOM_2, MAP_SILVER_CAVE_ROOM_2
+	warp_def $21, $9, 2, SILVER_CAVE_OUTSIDE
+	warp_def $1, $f, 1, SILVER_CAVE_ROOM_2
 
 .XYTriggers:
 	db 0
@@ -44,7 +44,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_POKE_BALL, 13, 8, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c554, EVENT_SILVER_CAVE_ROOM_1_MAX_ELIXER
-	person_event SPRITE_POKE_BALL, 33, 19, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c556, EVENT_SILVER_CAVE_ROOM_1_PROTEIN
-	person_event SPRITE_POKE_BALL, 34, 9, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c558, EVENT_SILVER_CAVE_ROOM_1_ESCAPE_ROPE
-	person_event SPRITE_POKE_BALL, 22, 11, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c55a, EVENT_SILVER_CAVE_ROOM_1_ULTRA_BALL
+	person_event SPRITE_POKE_BALL, 13, 8, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c554, EVENT_SILVER_CAVE_ROOM_1_MAX_ELIXER
+	person_event SPRITE_POKE_BALL, 33, 19, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c556, EVENT_SILVER_CAVE_ROOM_1_PROTEIN
+	person_event SPRITE_POKE_BALL, 34, 9, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c558, EVENT_SILVER_CAVE_ROOM_1_ESCAPE_ROPE
+	person_event SPRITE_POKE_BALL, 22, 11, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c55a, EVENT_SILVER_CAVE_ROOM_1_ULTRA_BALL
--- a/maps/SilverCaveRoom2.asm
+++ b/maps/SilverCaveRoom2.asm
@@ -24,10 +24,10 @@
 
 .Warps:
 	db 4
-	warp_def $1f, $11, 2, GROUP_SILVER_CAVE_ROOM_1, MAP_SILVER_CAVE_ROOM_1
-	warp_def $5, $b, 1, GROUP_SILVER_CAVE_ROOM_3, MAP_SILVER_CAVE_ROOM_3
-	warp_def $15, $d, 1, GROUP_SILVER_CAVE_ITEM_ROOMS, MAP_SILVER_CAVE_ITEM_ROOMS
-	warp_def $3, $17, 2, GROUP_SILVER_CAVE_ITEM_ROOMS, MAP_SILVER_CAVE_ITEM_ROOMS
+	warp_def $1f, $11, 2, SILVER_CAVE_ROOM_1
+	warp_def $5, $b, 1, SILVER_CAVE_ROOM_3
+	warp_def $15, $d, 1, SILVER_CAVE_ITEM_ROOMS
+	warp_def $3, $17, 2, SILVER_CAVE_ITEM_ROOMS
 
 .XYTriggers:
 	db 0
@@ -38,6 +38,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_POKE_BALL, 14, 28, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c5b2, EVENT_SILVER_CAVE_ROOM_2_CALCIUM
-	person_event SPRITE_POKE_BALL, 28, 26, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c5b4, EVENT_SILVER_CAVE_ROOM_2_ULTRA_BALL
-	person_event SPRITE_POKE_BALL, 24, 8, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c5b6, EVENT_SILVER_CAVE_ROOM_2_PP_UP
+	person_event SPRITE_POKE_BALL, 14, 28, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c5b2, EVENT_SILVER_CAVE_ROOM_2_CALCIUM
+	person_event SPRITE_POKE_BALL, 28, 26, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c5b4, EVENT_SILVER_CAVE_ROOM_2_ULTRA_BALL
+	person_event SPRITE_POKE_BALL, 24, 8, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c5b6, EVENT_SILVER_CAVE_ROOM_2_PP_UP
--- a/maps/SilverCaveRoom3.asm
+++ b/maps/SilverCaveRoom3.asm
@@ -53,7 +53,7 @@
 
 .Warps:
 	db 1
-	warp_def $21, $9, 2, GROUP_SILVER_CAVE_ROOM_2, MAP_SILVER_CAVE_ROOM_2
+	warp_def $21, $9, 2, SILVER_CAVE_ROOM_2
 
 .XYTriggers:
 	db 0
@@ -63,4 +63,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_RED, 14, 13, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, RedScript_0x18c603, EVENT_RED_IN_MT_SILVER
+	person_event SPRITE_RED, 14, 13, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, RedScript_0x18c603, EVENT_RED_IN_MT_SILVER
--- a/maps/SlowpokeWellB1F.asm
+++ b/maps/SlowpokeWellB1F.asm
@@ -46,7 +46,7 @@
 	loadmovesprites
 	setevent EVENT_CLEARED_SLOWPOKE_WELL
 	variablesprite SPRITE_AZALEA_ROCKET, SPRITE_SILVER
-	domaptrigger GROUP_AZALEA_TOWN, MAP_AZALEA_TOWN, $1
+	domaptrigger AZALEA_TOWN, $1
 	clearevent EVENT_ILEX_FOREST_APPRENTICE
 	clearevent EVENT_ILEX_FOREST_FARFETCHD
 	setevent EVENT_CHARCOAL_KILN_FARFETCH_D
@@ -59,7 +59,7 @@
 	special FadeBlackBGMap
 	special HealParty
 	pause 15
-	warp GROUP_KURTS_HOUSE, MAP_KURTS_HOUSE, $3, $3
+	warp KURTS_HOUSE, $3, $3
 	end
 
 TrainerGruntM2:
@@ -315,8 +315,8 @@
 
 .Warps:
 	db 2
-	warp_def $f, $11, 6, GROUP_AZALEA_TOWN, MAP_AZALEA_TOWN
-	warp_def $b, $7, 1, GROUP_SLOWPOKE_WELL_B2F, MAP_SLOWPOKE_WELL_B2F
+	warp_def $f, $11, 6, AZALEA_TOWN
+	warp_def $b, $7, 1, SLOWPOKE_WELL_B2F
 
 .XYTriggers:
 	db 0
@@ -326,12 +326,12 @@
 
 .PersonEvents:
 	db 9
-	person_event SPRITE_ROCKET, 11, 19, OW_UP | $2, $0, -1, -1, $2, 3, TrainerGruntM29, EVENT_SLOWPOKE_WELL_ROCKETS
-	person_event SPRITE_ROCKET, 6, 9, OW_UP | $2, $0, -1, -1, $2, 1, TrainerGruntM1, EVENT_SLOWPOKE_WELL_ROCKETS
-	person_event SPRITE_ROCKET, 10, 9, OW_LEFT | $1, $0, -1, -1, $2, 2, TrainerGruntM2, EVENT_SLOWPOKE_WELL_ROCKETS
-	person_event SPRITE_ROCKET_GIRL, 8, 14, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $82, 4, TrainerGruntF1, EVENT_SLOWPOKE_WELL_ROCKETS
-	person_event SPRITE_SLOWPOKE, 8, 11, OW_DOWN | $1, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, SlowpokeScript_0x5a681, EVENT_SLOWPOKE_WELL_SLOWPOKES
-	person_event SPRITE_SLOWPOKE, 6, 10, OW_DOWN | $1, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, SlowpokeScript_0x5a695, EVENT_SLOWPOKE_WELL_SLOWPOKES
-	person_event SPRITE_KURT, 18, 20, OW_UP | $3, $0, -1, -1, $0, 0, KurtScript_0x5a5d5, EVENT_SLOWPOKE_WELL_KURT
-	person_event SPRITE_BOULDER, 6, 7, OW_LEFT | $11, $0, -1, -1, $0, 0, SlowpokeWellB1FBoulder, -1
-	person_event SPRITE_POKE_BALL, 7, 14, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x5a6a3, EVENT_SLOWPOKE_WELL_B1F_SUPER_POTION
+	person_event SPRITE_ROCKET, 11, 19, $6, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM29, EVENT_SLOWPOKE_WELL_ROCKETS
+	person_event SPRITE_ROCKET, 6, 9, $6, 0, 0, -1, -1, 0, 2, 1, TrainerGruntM1, EVENT_SLOWPOKE_WELL_ROCKETS
+	person_event SPRITE_ROCKET, 10, 9, $9, 0, 0, -1, -1, 0, 2, 2, TrainerGruntM2, EVENT_SLOWPOKE_WELL_ROCKETS
+	person_event SPRITE_ROCKET_GIRL, 8, 14, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 4, TrainerGruntF1, EVENT_SLOWPOKE_WELL_ROCKETS
+	person_event SPRITE_SLOWPOKE, 8, 11, $1, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, SlowpokeScript_0x5a681, EVENT_SLOWPOKE_WELL_SLOWPOKES
+	person_event SPRITE_SLOWPOKE, 6, 10, $1, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, SlowpokeScript_0x5a695, EVENT_SLOWPOKE_WELL_SLOWPOKES
+	person_event SPRITE_KURT, 18, 20, $7, 0, 0, -1, -1, 0, 0, 0, KurtScript_0x5a5d5, EVENT_SLOWPOKE_WELL_KURT
+	person_event SPRITE_BOULDER, 6, 7, $19, 0, 0, -1, -1, 0, 0, 0, SlowpokeWellB1FBoulder, -1
+	person_event SPRITE_POKE_BALL, 7, 14, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a6a3, EVENT_SLOWPOKE_WELL_B1F_SUPER_POTION
--- a/maps/SlowpokeWellB2F.asm
+++ b/maps/SlowpokeWellB2F.asm
@@ -63,7 +63,7 @@
 
 .Warps:
 	db 1
-	warp_def $b, $9, 2, GROUP_SLOWPOKE_WELL_B1F, MAP_SLOWPOKE_WELL_B1F
+	warp_def $b, $9, 2, SLOWPOKE_WELL_B1F
 
 .XYTriggers:
 	db 0
@@ -73,5 +73,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_GYM_GUY, 8, 9, OW_DOWN | $2, $21, -1, -1, $0, 1, GymGuyScript_0x5ad0b, -1
-	person_event SPRITE_POKE_BALL, 9, 19, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x5ad28, EVENT_SLOWPOKE_WELL_B2F_TM_RAIN_DANCE
+	person_event SPRITE_GYM_GUY, 8, 9, $2, 2, 1, -1, -1, 0, 0, 1, GymGuyScript_0x5ad0b, -1
+	person_event SPRITE_POKE_BALL, 9, 19, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5ad28, EVENT_SLOWPOKE_WELL_B2F_TM_RAIN_DANCE
--- a/maps/SoulHouse.asm
+++ b/maps/SoulHouse.asm
@@ -72,8 +72,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $4, 6, GROUP_LAVENDER_TOWN, MAP_LAVENDER_TOWN
-	warp_def $7, $5, 6, GROUP_LAVENDER_TOWN, MAP_LAVENDER_TOWN
+	warp_def $7, $4, 6, LAVENDER_TOWN
+	warp_def $7, $5, 6, LAVENDER_TOWN
 
 .XYTriggers:
 	db 0
@@ -83,7 +83,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_GRAMPS, 6, 8, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, GrampsScript_0x7ec47, -1
-	person_event SPRITE_TEACHER, 7, 11, OW_UP | $1, $1, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, TeacherScript_0x7ec4a, -1
-	person_event SPRITE_LASS, 9, 6, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, LassScript_0x7ec4d, -1
-	person_event SPRITE_GRANNY, 7, 5, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, GrannyScript_0x7ec50, -1
+	person_event SPRITE_GRAMPS, 6, 8, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, GrampsScript_0x7ec47, -1
+	person_event SPRITE_TEACHER, 7, 11, $5, 0, 1, -1, -1, 8 + PAL_OW_BLUE, 0, 0, TeacherScript_0x7ec4a, -1
+	person_event SPRITE_LASS, 9, 6, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, LassScript_0x7ec4d, -1
+	person_event SPRITE_GRANNY, 7, 5, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, GrannyScript_0x7ec50, -1
--- a/maps/SproutTower1F.asm
+++ b/maps/SproutTower1F.asm
@@ -100,11 +100,11 @@
 
 .Warps:
 	db 5
-	warp_def $f, $9, 7, GROUP_VIOLET_CITY, MAP_VIOLET_CITY
-	warp_def $f, $a, 7, GROUP_VIOLET_CITY, MAP_VIOLET_CITY
-	warp_def $4, $6, 1, GROUP_SPROUT_TOWER_2F, MAP_SPROUT_TOWER_2F
-	warp_def $6, $2, 2, GROUP_SPROUT_TOWER_2F, MAP_SPROUT_TOWER_2F
-	warp_def $3, $11, 3, GROUP_SPROUT_TOWER_2F, MAP_SPROUT_TOWER_2F
+	warp_def $f, $9, 7, VIOLET_CITY
+	warp_def $f, $a, 7, VIOLET_CITY
+	warp_def $4, $6, 1, SPROUT_TOWER_2F
+	warp_def $6, $2, 2, SPROUT_TOWER_2F
+	warp_def $3, $11, 3, SPROUT_TOWER_2F
 
 .XYTriggers:
 	db 0
@@ -116,9 +116,9 @@
 
 .PersonEvents:
 	db 6
-	person_event SPRITE_SAGE, 8, 11, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, SageScript_0x1844fe, -1
-	person_event SPRITE_SAGE, 11, 10, OW_DOWN | $2, $11, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, SageScript_0x184501, -1
-	person_event SPRITE_GRANNY, 16, 15, OW_LEFT | $0, $0, -1, -1, $0, 0, GrannyScript_0x184504, -1
-	person_event SPRITE_TEACHER, 13, 13, OW_UP | $3, $0, -1, -1, $0, 0, TeacherScript_0x184507, -1
-	person_event SPRITE_SAGE, 9, 7, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 4, TrainerSageChow, -1
-	person_event SPRITE_POKE_BALL, 11, 20, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18451e, EVENT_SPROUT_TOWER1F_PARLYZ_HEAL
+	person_event SPRITE_SAGE, 8, 11, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, SageScript_0x1844fe, -1
+	person_event SPRITE_SAGE, 11, 10, $2, 1, 1, -1, -1, 8 + PAL_OW_BLUE, 0, 0, SageScript_0x184501, -1
+	person_event SPRITE_GRANNY, 16, 15, $8, 0, 0, -1, -1, 0, 0, 0, GrannyScript_0x184504, -1
+	person_event SPRITE_TEACHER, 13, 13, $7, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x184507, -1
+	person_event SPRITE_SAGE, 9, 7, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 4, TrainerSageChow, -1
+	person_event SPRITE_POKE_BALL, 11, 20, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18451e, EVENT_SPROUT_TOWER1F_PARLYZ_HEAL
--- a/maps/SproutTower2F.asm
+++ b/maps/SproutTower2F.asm
@@ -85,10 +85,10 @@
 
 .Warps:
 	db 4
-	warp_def $4, $6, 3, GROUP_SPROUT_TOWER_1F, MAP_SPROUT_TOWER_1F
-	warp_def $6, $2, 4, GROUP_SPROUT_TOWER_1F, MAP_SPROUT_TOWER_1F
-	warp_def $3, $11, 5, GROUP_SPROUT_TOWER_1F, MAP_SPROUT_TOWER_1F
-	warp_def $e, $a, 1, GROUP_SPROUT_TOWER_3F, MAP_SPROUT_TOWER_3F
+	warp_def $4, $6, 3, SPROUT_TOWER_1F
+	warp_def $6, $2, 4, SPROUT_TOWER_1F
+	warp_def $3, $11, 5, SPROUT_TOWER_1F
+	warp_def $e, $a, 1, SPROUT_TOWER_3F
 
 .XYTriggers:
 	db 0
@@ -99,6 +99,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_SAGE, 7, 16, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 4, TrainerSageNico, -1
-	person_event SPRITE_SAGE, 18, 13, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 5, TrainerSageEdmond, -1
-	person_event SPRITE_POKE_BALL, 5, 7, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x1847a7, EVENT_SPROUT_TOWER2F_X_ACCURACY
+	person_event SPRITE_SAGE, 7, 16, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 4, TrainerSageNico, -1
+	person_event SPRITE_SAGE, 18, 13, $8, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 5, TrainerSageEdmond, -1
+	person_event SPRITE_POKE_BALL, 5, 7, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1847a7, EVENT_SPROUT_TOWER2F_X_ACCURACY
--- a/maps/SproutTower3F.asm
+++ b/maps/SproutTower3F.asm
@@ -328,7 +328,7 @@
 
 .Warps:
 	db 1
-	warp_def $e, $a, 4, GROUP_SPROUT_TOWER_2F, MAP_SPROUT_TOWER_2F
+	warp_def $e, $a, 4, SPROUT_TOWER_2F
 
 .XYTriggers:
 	db 1
@@ -345,10 +345,10 @@
 
 .PersonEvents:
 	db 7
-	person_event SPRITE_SAGE, 17, 12, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerSageJin, -1
-	person_event SPRITE_SAGE, 12, 12, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 2, TrainerSageTroy, -1
-	person_event SPRITE_SAGE, 6, 14, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, SageLiScript, -1
-	person_event SPRITE_SAGE, 15, 15, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerSageNeal, -1
-	person_event SPRITE_POKE_BALL, 18, 10, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x184a19, EVENT_SPROUT_TOWER_3F_POTION
-	person_event SPRITE_POKE_BALL, 5, 18, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x184a1b, EVENT_SPROUT_TOWER_3F_ESCAPE_ROPE
-	person_event SPRITE_SILVER, 8, 14, OW_UP | $3, $0, -1, -1, $0, 0, ObjectEvent, EVENT_RIVAL_SPROUT_TOWER
+	person_event SPRITE_SAGE, 17, 12, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerSageJin, -1
+	person_event SPRITE_SAGE, 12, 12, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 2, TrainerSageTroy, -1
+	person_event SPRITE_SAGE, 6, 14, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, SageLiScript, -1
+	person_event SPRITE_SAGE, 15, 15, $8, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerSageNeal, -1
+	person_event SPRITE_POKE_BALL, 18, 10, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x184a19, EVENT_SPROUT_TOWER_3F_POTION
+	person_event SPRITE_POKE_BALL, 5, 18, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x184a1b, EVENT_SPROUT_TOWER_3F_ESCAPE_ROPE
+	person_event SPRITE_SILVER, 8, 14, $7, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_SPROUT_TOWER
--- a/maps/TeamRocketBaseB1F.asm
+++ b/maps/TeamRocketBaseB1F.asm
@@ -730,10 +730,10 @@
 
 .Warps:
 	db 4
-	warp_def $2, $1b, 3, GROUP_MAHOGANY_MART_1F, MAP_MAHOGANY_MART_1F
-	warp_def $e, $3, 1, GROUP_TEAM_ROCKET_BASE_B2F, MAP_TEAM_ROCKET_BASE_B2F
-	warp_def $f, $5, 4, GROUP_TEAM_ROCKET_BASE_B1F, MAP_TEAM_ROCKET_BASE_B1F
-	warp_def $2, $19, 3, GROUP_TEAM_ROCKET_BASE_B1F, MAP_TEAM_ROCKET_BASE_B1F
+	warp_def $2, $1b, 3, MAHOGANY_MART_1F
+	warp_def $e, $3, 1, TEAM_ROCKET_BASE_B2F
+	warp_def $f, $5, 4, TEAM_ROCKET_BASE_B1F
+	warp_def $2, $19, 3, TEAM_ROCKET_BASE_B1F
 
 .XYTriggers:
 	db 30
@@ -786,9 +786,9 @@
 
 .PersonEvents:
 	db 6
-	person_event SPRITE_ROCKET, 4, 4, OW_UP | $2, $0, -1, -1, $0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_SECURITY_GRUNTS
-	person_event SPRITE_ROCKET, 8, 6, OW_LEFT | $1, $0, -1, -1, $2, 3, TrainerGruntM16, EVENT_TEAM_ROCKET_BASE_POPULATION
-	person_event SPRITE_SCIENTIST, 16, 22, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerScientistJed, EVENT_TEAM_ROCKET_BASE_POPULATION
-	person_event SPRITE_POKE_BALL, 10, 31, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x6cac4, EVENT_TEAM_ROCKET_BASE_B1F_HYPER_POTION
-	person_event SPRITE_POKE_BALL, 19, 18, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x6cac6, EVENT_TEAM_ROCKET_BASE_B1F_NUGGET
-	person_event SPRITE_POKE_BALL, 16, 25, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x6cac8, EVENT_TEAM_ROCKET_BASE_B1F_GUARD_SPEC
+	person_event SPRITE_ROCKET, 4, 4, $6, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_SECURITY_GRUNTS
+	person_event SPRITE_ROCKET, 8, 6, $9, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM16, EVENT_TEAM_ROCKET_BASE_POPULATION
+	person_event SPRITE_SCIENTIST, 16, 22, $8, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerScientistJed, EVENT_TEAM_ROCKET_BASE_POPULATION
+	person_event SPRITE_POKE_BALL, 10, 31, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6cac4, EVENT_TEAM_ROCKET_BASE_B1F_HYPER_POTION
+	person_event SPRITE_POKE_BALL, 19, 18, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6cac6, EVENT_TEAM_ROCKET_BASE_B1F_NUGGET
+	person_event SPRITE_POKE_BALL, 16, 25, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6cac8, EVENT_TEAM_ROCKET_BASE_B1F_GUARD_SPEC
--- a/maps/TeamRocketBaseB2F.asm
+++ b/maps/TeamRocketBaseB2F.asm
@@ -906,11 +906,11 @@
 
 .Warps:
 	db 5
-	warp_def $e, $3, 2, GROUP_TEAM_ROCKET_BASE_B1F, MAP_TEAM_ROCKET_BASE_B1F
-	warp_def $2, $3, 1, GROUP_TEAM_ROCKET_BASE_B3F, MAP_TEAM_ROCKET_BASE_B3F
-	warp_def $2, $1b, 2, GROUP_TEAM_ROCKET_BASE_B3F, MAP_TEAM_ROCKET_BASE_B3F
-	warp_def $6, $3, 3, GROUP_TEAM_ROCKET_BASE_B3F, MAP_TEAM_ROCKET_BASE_B3F
-	warp_def $e, $1b, 4, GROUP_TEAM_ROCKET_BASE_B3F, MAP_TEAM_ROCKET_BASE_B3F
+	warp_def $e, $3, 2, TEAM_ROCKET_BASE_B1F
+	warp_def $2, $3, 1, TEAM_ROCKET_BASE_B3F
+	warp_def $2, $1b, 2, TEAM_ROCKET_BASE_B3F
+	warp_def $6, $3, 3, TEAM_ROCKET_BASE_B3F
+	warp_def $e, $1b, 4, TEAM_ROCKET_BASE_B3F
 
 .XYTriggers:
 	db 9
@@ -952,17 +952,17 @@
 
 .PersonEvents:
 	db 14
-	person_event SPRITE_ROCKET, 20, 24, OW_UP | $3, $0, -1, -1, $0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_GRUNT_WITH_EXECUTIVE
-	person_event SPRITE_ROCKET_GIRL, 20, 24, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_EXECUTIVE
-	person_event SPRITE_LANCE, 17, 9, OW_UP | $2, $0, -1, -1, $0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_LANCE
-	person_event SPRITE_DRAGON, 17, 13, OW_LEFT | $1, $0, -1, -1, $0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_DRAGONITE
-	person_event SPRITE_VOLTORB, 9, 11, OW_UP | $12, $0, -1, -1, $0, 0, VoltorbScript_0x6d101, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_1
-	person_event SPRITE_VOLTORB, 11, 11, OW_UP | $12, $0, -1, -1, $0, 0, VoltorbScript_0x6d12c, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_2
-	person_event SPRITE_VOLTORB, 13, 11, OW_UP | $12, $0, -1, -1, $0, 0, VoltorbScript_0x6d157, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_3
-	person_event SPRITE_VOLTORB, 9, 26, OW_UP | $12, $0, -1, -1, $0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_1
-	person_event SPRITE_VOLTORB, 11, 26, OW_UP | $12, $0, -1, -1, $0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_2
-	person_event SPRITE_VOLTORB, 13, 26, OW_UP | $12, $0, -1, -1, $0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_3
-	person_event SPRITE_ROCKET, 17, 29, OW_UP | $2, $0, -1, -1, $2, 3, TrainerGruntM17, EVENT_TEAM_ROCKET_BASE_POPULATION
-	person_event SPRITE_ROCKET, 5, 8, OW_LEFT | $2, $0, -1, -1, $2, 1, TrainerGruntM18, EVENT_TEAM_ROCKET_BASE_POPULATION
-	person_event SPRITE_ROCKET, 18, 25, OW_LEFT | $0, $0, -1, -1, $2, 4, TrainerGruntM19, EVENT_TEAM_ROCKET_BASE_POPULATION
-	person_event SPRITE_POKE_BALL, 14, 7, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x6d20d, EVENT_TEAM_ROCKET_BASE_B2F_TM_THIEF
+	person_event SPRITE_ROCKET, 20, 24, $7, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_GRUNT_WITH_EXECUTIVE
+	person_event SPRITE_ROCKET_GIRL, 20, 24, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_EXECUTIVE
+	person_event SPRITE_LANCE, 17, 9, $6, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_LANCE
+	person_event SPRITE_DRAGON, 17, 13, $9, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_DRAGONITE
+	person_event SPRITE_VOLTORB, 9, 11, $16, 0, 0, -1, -1, 0, 0, 0, VoltorbScript_0x6d101, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_1
+	person_event SPRITE_VOLTORB, 11, 11, $16, 0, 0, -1, -1, 0, 0, 0, VoltorbScript_0x6d12c, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_2
+	person_event SPRITE_VOLTORB, 13, 11, $16, 0, 0, -1, -1, 0, 0, 0, VoltorbScript_0x6d157, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_3
+	person_event SPRITE_VOLTORB, 9, 26, $16, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_1
+	person_event SPRITE_VOLTORB, 11, 26, $16, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_2
+	person_event SPRITE_VOLTORB, 13, 26, $16, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_3
+	person_event SPRITE_ROCKET, 17, 29, $6, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM17, EVENT_TEAM_ROCKET_BASE_POPULATION
+	person_event SPRITE_ROCKET, 5, 8, $a, 0, 0, -1, -1, 0, 2, 1, TrainerGruntM18, EVENT_TEAM_ROCKET_BASE_POPULATION
+	person_event SPRITE_ROCKET, 18, 25, $8, 0, 0, -1, -1, 0, 2, 4, TrainerGruntM19, EVENT_TEAM_ROCKET_BASE_POPULATION
+	person_event SPRITE_POKE_BALL, 14, 7, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6d20d, EVENT_TEAM_ROCKET_BASE_B2F_TM_THIEF
--- a/maps/TeamRocketBaseB3F.asm
+++ b/maps/TeamRocketBaseB3F.asm
@@ -561,10 +561,10 @@
 
 .Warps:
 	db 4
-	warp_def $2, $3, 2, GROUP_TEAM_ROCKET_BASE_B2F, MAP_TEAM_ROCKET_BASE_B2F
-	warp_def $2, $1b, 3, GROUP_TEAM_ROCKET_BASE_B2F, MAP_TEAM_ROCKET_BASE_B2F
-	warp_def $6, $3, 4, GROUP_TEAM_ROCKET_BASE_B2F, MAP_TEAM_ROCKET_BASE_B2F
-	warp_def $e, $1b, 5, GROUP_TEAM_ROCKET_BASE_B2F, MAP_TEAM_ROCKET_BASE_B2F
+	warp_def $2, $3, 2, TEAM_ROCKET_BASE_B2F
+	warp_def $2, $1b, 3, TEAM_ROCKET_BASE_B2F
+	warp_def $6, $3, 4, TEAM_ROCKET_BASE_B2F
+	warp_def $e, $1b, 5, TEAM_ROCKET_BASE_B2F
 
 .XYTriggers:
 	db 3
@@ -587,17 +587,17 @@
 
 .PersonEvents:
 	db 14
-	person_event SPRITE_LANCE, 18, 29, OW_UP | $2, $0, -1, -1, $0, 0, LanceScript_0x6dffc, EVENT_TEAM_ROCKET_BASE_B3F_LANCE_PASSWORDS
-	person_event SPRITE_ROCKET, 7, 12, OW_UP | $3, $0, -1, -1, $0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B3F_EXECUTIVE
-	person_event SPRITE_MOLTRES, 6, 11, OW_UP | $12, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, MoltresScript_0x6e091, EVENT_TEAM_ROCKET_BASE_POPULATION
-	person_event SPRITE_ROCKET_GIRL, 11, 25, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $82, 0, TrainerGruntF5, EVENT_TEAM_ROCKET_BASE_POPULATION
-	person_event SPRITE_ROCKET, 18, 9, OW_LEFT | $2, $0, -1, -1, $2, 3, TrainerGruntM28, EVENT_TEAM_ROCKET_BASE_POPULATION
-	person_event SPRITE_SCIENTIST, 15, 27, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 0, TrainerScientistRoss, EVENT_TEAM_ROCKET_BASE_POPULATION
-	person_event SPRITE_SCIENTIST, 19, 15, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerScientistMitch, EVENT_TEAM_ROCKET_BASE_POPULATION
-	person_event SPRITE_ROCKET, 18, 28, OW_UP | $2, $0, -1, -1, $0, 0, RocketScript_0x6e048, EVENT_TEAM_ROCKET_BASE_POPULATION
-	person_event SPRITE_SILVER, 9, 8, OW_UP | $2, $0, -1, -1, $0, 0, ObjectEvent, EVENT_RIVAL_TEAM_ROCKET_BASE
-	person_event SPRITE_POKE_BALL, 16, 5, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x6e120, EVENT_TEAM_ROCKET_BASE_B3F_PROTEIN
-	person_event SPRITE_POKE_BALL, 16, 7, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x6e122, EVENT_TEAM_ROCKET_BASE_B3F_X_SPECIAL
-	person_event SPRITE_POKE_BALL, 13, 32, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x6e124, EVENT_TEAM_ROCKET_BASE_B3F_FULL_HEAL
-	person_event SPRITE_POKE_BALL, 6, 21, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x6e126, EVENT_TEAM_ROCKET_BASE_B3F_ICE_HEAL
-	person_event SPRITE_POKE_BALL, 14, 18, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x6e128, EVENT_TEAM_ROCKET_BASE_B3F_ULTRA_BALL
+	person_event SPRITE_LANCE, 18, 29, $6, 0, 0, -1, -1, 0, 0, 0, LanceScript_0x6dffc, EVENT_TEAM_ROCKET_BASE_B3F_LANCE_PASSWORDS
+	person_event SPRITE_ROCKET, 7, 12, $7, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B3F_EXECUTIVE
+	person_event SPRITE_MOLTRES, 6, 11, $16, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, MoltresScript_0x6e091, EVENT_TEAM_ROCKET_BASE_POPULATION
+	person_event SPRITE_ROCKET_GIRL, 11, 25, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 0, TrainerGruntF5, EVENT_TEAM_ROCKET_BASE_POPULATION
+	person_event SPRITE_ROCKET, 18, 9, $a, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM28, EVENT_TEAM_ROCKET_BASE_POPULATION
+	person_event SPRITE_SCIENTIST, 15, 27, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 0, TrainerScientistRoss, EVENT_TEAM_ROCKET_BASE_POPULATION
+	person_event SPRITE_SCIENTIST, 19, 15, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerScientistMitch, EVENT_TEAM_ROCKET_BASE_POPULATION
+	person_event SPRITE_ROCKET, 18, 28, $6, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x6e048, EVENT_TEAM_ROCKET_BASE_POPULATION
+	person_event SPRITE_SILVER, 9, 8, $6, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_TEAM_ROCKET_BASE
+	person_event SPRITE_POKE_BALL, 16, 5, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e120, EVENT_TEAM_ROCKET_BASE_B3F_PROTEIN
+	person_event SPRITE_POKE_BALL, 16, 7, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e122, EVENT_TEAM_ROCKET_BASE_B3F_X_SPECIAL
+	person_event SPRITE_POKE_BALL, 13, 32, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e124, EVENT_TEAM_ROCKET_BASE_B3F_FULL_HEAL
+	person_event SPRITE_POKE_BALL, 6, 21, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e126, EVENT_TEAM_ROCKET_BASE_B3F_ICE_HEAL
+	person_event SPRITE_POKE_BALL, 14, 18, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e128, EVENT_TEAM_ROCKET_BASE_B3F_ULTRA_BALL
--- a/maps/TimeCapsule.asm
+++ b/maps/TimeCapsule.asm
@@ -34,7 +34,7 @@
 
 TimeCapsule_Initialize:
 	dotrigger $1
-	domaptrigger GROUP_POKECENTER_2F, MAP_POKECENTER_2F, $3
+	domaptrigger POKECENTER_2F, $3
 	end
 
 MapTimeCapsuleSignpost1Script:
@@ -60,8 +60,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $4, 4, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
-	warp_def $7, $5, 4, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
+	warp_def $7, $4, 4, POKECENTER_2F
+	warp_def $7, $5, 4, POKECENTER_2F
 
 .XYTriggers:
 	db 0
@@ -73,5 +73,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_CHRIS, 8, 7, OW_LEFT | $1, $0, -1, -1, $0, 0, ChrisScript_0x19351a, EVENT_GAVE_KURT_APRICORNS
-	person_event SPRITE_CHRIS, 8, 10, OW_LEFT | $0, $0, -1, -1, $0, 0, ChrisScript_0x19351a, EVENT_RECEIVED_BALLS_FROM_KURT
+	person_event SPRITE_CHRIS, 8, 7, $9, 0, 0, -1, -1, 0, 0, 0, ChrisScript_0x19351a, EVENT_GAVE_KURT_APRICORNS
+	person_event SPRITE_CHRIS, 8, 10, $8, 0, 0, -1, -1, 0, 0, 0, ChrisScript_0x19351a, EVENT_RECEIVED_BALLS_FROM_KURT
--- a/maps/TinTower1F.asm
+++ b/maps/TinTower1F.asm
@@ -119,11 +119,11 @@
 	disappear $2
 	setevent EVENT_FOUGHT_SUICUNE
 	setevent EVENT_SAW_SUICUNE_ON_ROUTE_42
-	domaptrigger GROUP_ROUTE_42, MAP_ROUTE_42, $0
+	domaptrigger ROUTE_42, $0
 	setevent EVENT_SAW_SUICUNE_ON_ROUTE_36
-	domaptrigger GROUP_ROUTE_36, MAP_ROUTE_36, $0
+	domaptrigger ROUTE_36, $0
 	setevent EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY
-	domaptrigger GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY, $0
+	domaptrigger CIANWOOD_CITY, $0
 	dotrigger $1
 	clearevent EVENT_SET_WHEN_FOUGHT_HO_OH
 	returnafterbattle
@@ -522,9 +522,9 @@
 
 .Warps:
 	db 3
-	warp_def $f, $9, 12, GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY
-	warp_def $f, $a, 12, GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY
-	warp_def $2, $a, 2, GROUP_TIN_TOWER_2F, MAP_TIN_TOWER_2F
+	warp_def $f, $9, 12, ECRUTEAK_CITY
+	warp_def $f, $a, 12, ECRUTEAK_CITY
+	warp_def $2, $a, 2, TIN_TOWER_2F
 
 .XYTriggers:
 	db 0
@@ -534,13 +534,13 @@
 
 .PersonEvents:
 	db 10
-	person_event SPRITE_SUICUNE, 13, 13, OW_DOWN | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ObjectEvent, EVENT_TIN_TOWER_1F_SUICUNE
-	person_event SPRITE_RAIKOU, 13, 11, OW_DOWN | $1, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, ObjectEvent, EVENT_TIN_TOWER_1F_RAIKOU
-	person_event SPRITE_ENTEI, 13, 16, OW_DOWN | $1, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, ObjectEvent, EVENT_TIN_TOWER_1F_ENTEI
-	person_event SPRITE_SUPER_NERD, 7, 12, OW_DOWN | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, SuperNerdScript_0x1851c8, EVENT_TIN_TOWER_1F_EUSINE
-	person_event SPRITE_SAGE, 13, 9, OW_DOWN | $3, $0, -1, -1, $0, 0, SageScript_0x185173, EVENT_TIN_TOWER_1F_WISE_TRIO_1
-	person_event SPRITE_SAGE, 15, 15, OW_DOWN | $3, $0, -1, -1, $0, 0, SageScript_0x185176, EVENT_TIN_TOWER_1F_WISE_TRIO_1
-	person_event SPRITE_SAGE, 10, 18, OW_DOWN | $3, $0, -1, -1, $0, 0, SageScript_0x185179, EVENT_TIN_TOWER_1F_WISE_TRIO_1
-	person_event SPRITE_SAGE, 6, 8, OW_UP | $0, $10, -1, -1, $0, 0, SageScript_0x18517c, EVENT_TIN_TOWER_1F_WISE_TRIO_2
-	person_event SPRITE_SAGE, 5, 13, OW_UP | $2, $0, -1, -1, $0, 0, SageScript_0x185188, EVENT_TIN_TOWER_1F_WISE_TRIO_2
-	person_event SPRITE_SAGE, 6, 18, OW_UP | $1, $1, -1, -1, $0, 0, SageScript_0x1851bc, EVENT_TIN_TOWER_1F_WISE_TRIO_2
+	person_event SPRITE_SUICUNE, 13, 13, $1, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_TIN_TOWER_1F_SUICUNE
+	person_event SPRITE_RAIKOU, 13, 11, $1, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, ObjectEvent, EVENT_TIN_TOWER_1F_RAIKOU
+	person_event SPRITE_ENTEI, 13, 16, $1, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, ObjectEvent, EVENT_TIN_TOWER_1F_ENTEI
+	person_event SPRITE_SUPER_NERD, 7, 12, $3, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, SuperNerdScript_0x1851c8, EVENT_TIN_TOWER_1F_EUSINE
+	person_event SPRITE_SAGE, 13, 9, $3, 0, 0, -1, -1, 0, 0, 0, SageScript_0x185173, EVENT_TIN_TOWER_1F_WISE_TRIO_1
+	person_event SPRITE_SAGE, 15, 15, $3, 0, 0, -1, -1, 0, 0, 0, SageScript_0x185176, EVENT_TIN_TOWER_1F_WISE_TRIO_1
+	person_event SPRITE_SAGE, 10, 18, $3, 0, 0, -1, -1, 0, 0, 0, SageScript_0x185179, EVENT_TIN_TOWER_1F_WISE_TRIO_1
+	person_event SPRITE_SAGE, 6, 8, $4, 1, 0, -1, -1, 0, 0, 0, SageScript_0x18517c, EVENT_TIN_TOWER_1F_WISE_TRIO_2
+	person_event SPRITE_SAGE, 5, 13, $6, 0, 0, -1, -1, 0, 0, 0, SageScript_0x185188, EVENT_TIN_TOWER_1F_WISE_TRIO_2
+	person_event SPRITE_SAGE, 6, 18, $5, 0, 1, -1, -1, 0, 0, 0, SageScript_0x1851bc, EVENT_TIN_TOWER_1F_WISE_TRIO_2
--- a/maps/TinTower2F.asm
+++ b/maps/TinTower2F.asm
@@ -11,8 +11,8 @@
 
 .Warps:
 	db 2
-	warp_def $e, $a, 1, GROUP_TIN_TOWER_3F, MAP_TIN_TOWER_3F
-	warp_def $2, $a, 3, GROUP_TIN_TOWER_1F, MAP_TIN_TOWER_1F
+	warp_def $e, $a, 1, TIN_TOWER_3F
+	warp_def $2, $a, 3, TIN_TOWER_1F
 
 .XYTriggers:
 	db 0
--- a/maps/TinTower3F.asm
+++ b/maps/TinTower3F.asm
@@ -14,8 +14,8 @@
 
 .Warps:
 	db 2
-	warp_def $e, $a, 1, GROUP_TIN_TOWER_2F, MAP_TIN_TOWER_2F
-	warp_def $2, $10, 2, GROUP_TIN_TOWER_4F, MAP_TIN_TOWER_4F
+	warp_def $e, $a, 1, TIN_TOWER_2F
+	warp_def $2, $10, 2, TIN_TOWER_4F
 
 .XYTriggers:
 	db 0
@@ -25,4 +25,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_POKE_BALL, 18, 7, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x185a37, EVENT_TIN_TOWER_3F_FULL_HEAL
+	person_event SPRITE_POKE_BALL, 18, 7, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185a37, EVENT_TIN_TOWER_3F_FULL_HEAL
--- a/maps/TinTower4F.asm
+++ b/maps/TinTower4F.asm
@@ -24,10 +24,10 @@
 
 .Warps:
 	db 4
-	warp_def $4, $2, 2, GROUP_TIN_TOWER_5F, MAP_TIN_TOWER_5F
-	warp_def $2, $10, 2, GROUP_TIN_TOWER_3F, MAP_TIN_TOWER_3F
-	warp_def $e, $2, 3, GROUP_TIN_TOWER_5F, MAP_TIN_TOWER_5F
-	warp_def $f, $11, 4, GROUP_TIN_TOWER_5F, MAP_TIN_TOWER_5F
+	warp_def $4, $2, 2, TIN_TOWER_5F
+	warp_def $2, $10, 2, TIN_TOWER_3F
+	warp_def $e, $2, 3, TIN_TOWER_5F
+	warp_def $f, $11, 4, TIN_TOWER_5F
 
 .XYTriggers:
 	db 0
@@ -38,6 +38,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_POKE_BALL, 14, 18, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x185a58, EVENT_TIN_TOWER_4F_ULTRA_BALL
-	person_event SPRITE_POKE_BALL, 18, 21, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x185a5a, EVENT_TIN_TOWER_4F_PP_UP
-	person_event SPRITE_POKE_BALL, 16, 6, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x185a5c, EVENT_TIN_TOWER_4F_ESCAPE_ROPE
+	person_event SPRITE_POKE_BALL, 14, 18, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185a58, EVENT_TIN_TOWER_4F_ULTRA_BALL
+	person_event SPRITE_POKE_BALL, 18, 21, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185a5a, EVENT_TIN_TOWER_4F_PP_UP
+	person_event SPRITE_POKE_BALL, 16, 6, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185a5c, EVENT_TIN_TOWER_4F_ESCAPE_ROPE
--- a/maps/TinTower5F.asm
+++ b/maps/TinTower5F.asm
@@ -22,10 +22,10 @@
 
 .Warps:
 	db 4
-	warp_def $f, $b, 2, GROUP_TIN_TOWER_6F, MAP_TIN_TOWER_6F
-	warp_def $4, $2, 1, GROUP_TIN_TOWER_4F, MAP_TIN_TOWER_4F
-	warp_def $e, $2, 3, GROUP_TIN_TOWER_4F, MAP_TIN_TOWER_4F
-	warp_def $f, $11, 4, GROUP_TIN_TOWER_4F, MAP_TIN_TOWER_4F
+	warp_def $f, $b, 2, TIN_TOWER_6F
+	warp_def $4, $2, 1, TIN_TOWER_4F
+	warp_def $e, $2, 3, TIN_TOWER_4F
+	warp_def $f, $11, 4, TIN_TOWER_4F
 
 .XYTriggers:
 	db 0
@@ -37,4 +37,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_POKE_BALL, 13, 13, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x185aa9, EVENT_TIN_TOWER_5F_RARE_CANDY
+	person_event SPRITE_POKE_BALL, 13, 13, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185aa9, EVENT_TIN_TOWER_5F_RARE_CANDY
--- a/maps/TinTower6F.asm
+++ b/maps/TinTower6F.asm
@@ -14,8 +14,8 @@
 
 .Warps:
 	db 2
-	warp_def $9, $3, 1, GROUP_TIN_TOWER_7F, MAP_TIN_TOWER_7F
-	warp_def $f, $b, 1, GROUP_TIN_TOWER_5F, MAP_TIN_TOWER_5F
+	warp_def $9, $3, 1, TIN_TOWER_7F
+	warp_def $f, $b, 1, TIN_TOWER_5F
 
 .XYTriggers:
 	db 0
@@ -25,4 +25,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_POKE_BALL, 12, 12, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x185ae4, EVENT_TIN_TOWER_6F_MAX_POTION
+	person_event SPRITE_POKE_BALL, 12, 12, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185ae4, EVENT_TIN_TOWER_6F_MAX_POTION
--- a/maps/TinTower7F.asm
+++ b/maps/TinTower7F.asm
@@ -14,11 +14,11 @@
 
 .Warps:
 	db 5
-	warp_def $9, $3, 1, GROUP_TIN_TOWER_6F, MAP_TIN_TOWER_6F
-	warp_def $f, $a, 1, GROUP_TIN_TOWER_8F, MAP_TIN_TOWER_8F
-	warp_def $7, $c, 4, GROUP_TIN_TOWER_7F, MAP_TIN_TOWER_7F
-	warp_def $3, $8, 3, GROUP_TIN_TOWER_7F, MAP_TIN_TOWER_7F
-	warp_def $9, $6, 5, GROUP_TIN_TOWER_9F, MAP_TIN_TOWER_9F
+	warp_def $9, $3, 1, TIN_TOWER_6F
+	warp_def $f, $a, 1, TIN_TOWER_8F
+	warp_def $7, $c, 4, TIN_TOWER_7F
+	warp_def $3, $8, 3, TIN_TOWER_7F
+	warp_def $9, $6, 5, TIN_TOWER_9F
 
 .XYTriggers:
 	db 0
@@ -28,4 +28,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_POKE_BALL, 5, 20, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x185b05, EVENT_TIN_TOWER_7F_MAX_REVIVE
+	person_event SPRITE_POKE_BALL, 5, 20, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b05, EVENT_TIN_TOWER_7F_MAX_REVIVE
--- a/maps/TinTower8F.asm
+++ b/maps/TinTower8F.asm
@@ -20,12 +20,12 @@
 
 .Warps:
 	db 6
-	warp_def $5, $2, 2, GROUP_TIN_TOWER_7F, MAP_TIN_TOWER_7F
-	warp_def $b, $2, 1, GROUP_TIN_TOWER_9F, MAP_TIN_TOWER_9F
-	warp_def $7, $10, 2, GROUP_TIN_TOWER_9F, MAP_TIN_TOWER_9F
-	warp_def $3, $a, 3, GROUP_TIN_TOWER_9F, MAP_TIN_TOWER_9F
-	warp_def $f, $e, 6, GROUP_TIN_TOWER_9F, MAP_TIN_TOWER_9F
-	warp_def $9, $6, 7, GROUP_TIN_TOWER_9F, MAP_TIN_TOWER_9F
+	warp_def $5, $2, 2, TIN_TOWER_7F
+	warp_def $b, $2, 1, TIN_TOWER_9F
+	warp_def $7, $10, 2, TIN_TOWER_9F
+	warp_def $3, $a, 3, TIN_TOWER_9F
+	warp_def $f, $e, 6, TIN_TOWER_9F
+	warp_def $9, $6, 7, TIN_TOWER_9F
 
 .XYTriggers:
 	db 0
@@ -35,6 +35,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_POKE_BALL, 17, 11, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x185b35, EVENT_TIN_TOWER_8F_NUGGET
-	person_event SPRITE_POKE_BALL, 10, 15, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x185b37, EVENT_TIN_TOWER_8F_MAX_ELIXER
-	person_event SPRITE_POKE_BALL, 5, 7, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x185b39, EVENT_TIN_TOWER_8F_FULL_RESTORE
+	person_event SPRITE_POKE_BALL, 17, 11, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b35, EVENT_TIN_TOWER_8F_NUGGET
+	person_event SPRITE_POKE_BALL, 10, 15, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b37, EVENT_TIN_TOWER_8F_MAX_ELIXER
+	person_event SPRITE_POKE_BALL, 5, 7, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b39, EVENT_TIN_TOWER_8F_FULL_RESTORE
--- a/maps/TinTower9F.asm
+++ b/maps/TinTower9F.asm
@@ -22,13 +22,13 @@
 
 .Warps:
 	db 7
-	warp_def $3, $c, 2, GROUP_TIN_TOWER_8F, MAP_TIN_TOWER_8F
-	warp_def $5, $2, 3, GROUP_TIN_TOWER_8F, MAP_TIN_TOWER_8F
-	warp_def $7, $c, 4, GROUP_TIN_TOWER_8F, MAP_TIN_TOWER_8F
-	warp_def $9, $7, 1, GROUP_TIN_TOWER_ROOF, MAP_TIN_TOWER_ROOF
-	warp_def $7, $10, 5, GROUP_TIN_TOWER_7F, MAP_TIN_TOWER_7F
-	warp_def $d, $6, 5, GROUP_TIN_TOWER_8F, MAP_TIN_TOWER_8F
-	warp_def $d, $8, 6, GROUP_TIN_TOWER_8F, MAP_TIN_TOWER_8F
+	warp_def $3, $c, 2, TIN_TOWER_8F
+	warp_def $5, $2, 3, TIN_TOWER_8F
+	warp_def $7, $c, 4, TIN_TOWER_8F
+	warp_def $9, $7, 1, TIN_TOWER_ROOF
+	warp_def $7, $10, 5, TIN_TOWER_7F
+	warp_def $d, $6, 5, TIN_TOWER_8F
+	warp_def $d, $8, 6, TIN_TOWER_8F
 
 .XYTriggers:
 	db 0
@@ -38,4 +38,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_POKE_BALL, 5, 13, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x185b88, EVENT_TIN_TOWER_9F_HP_UP
+	person_event SPRITE_POKE_BALL, 5, 13, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b88, EVENT_TIN_TOWER_9F_HP_UP
--- a/maps/TinTowerRoof.asm
+++ b/maps/TinTowerRoof.asm
@@ -50,7 +50,7 @@
 
 .Warps:
 	db 1
-	warp_def $d, $9, 4, GROUP_TIN_TOWER_9F, MAP_TIN_TOWER_9F
+	warp_def $d, $9, 4, TIN_TOWER_9F
 
 .XYTriggers:
 	db 0
@@ -60,4 +60,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_HO_OH, 9, 13, OW_UP | $12, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, HoOhScript_0x77244, EVENT_TIN_TOWER_ROOF_HO_OH
+	person_event SPRITE_HO_OH, 9, 13, $16, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, HoOhScript_0x77244, EVENT_TIN_TOWER_ROOF_HO_OH
--- a/maps/TohjoFalls.asm
+++ b/maps/TohjoFalls.asm
@@ -14,8 +14,8 @@
 
 .Warps:
 	db 2
-	warp_def $f, $d, 2, GROUP_ROUTE_27, MAP_ROUTE_27
-	warp_def $f, $19, 3, GROUP_ROUTE_27, MAP_ROUTE_27
+	warp_def $f, $d, 2, ROUTE_27
+	warp_def $f, $19, 3, ROUTE_27
 
 .XYTriggers:
 	db 0
@@ -25,4 +25,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_POKE_BALL, 10, 6, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18db02, EVENT_TOHJO_FALLS_MOON_STONE
+	person_event SPRITE_POKE_BALL, 10, 6, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18db02, EVENT_TOHJO_FALLS_MOON_STONE
--- a/maps/TradeCenter.asm
+++ b/maps/TradeCenter.asm
@@ -34,7 +34,7 @@
 
 TradeCenter_Initialize:
 	dotrigger $1
-	domaptrigger GROUP_POKECENTER_2F, MAP_POKECENTER_2F, $1
+	domaptrigger POKECENTER_2F, $1
 	end
 
 MapTradeCenterSignpost1Script:
@@ -60,8 +60,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $4, 2, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
-	warp_def $7, $5, 2, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
+	warp_def $7, $4, 2, POKECENTER_2F
+	warp_def $7, $5, 2, POKECENTER_2F
 
 .XYTriggers:
 	db 0
@@ -73,5 +73,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_CHRIS, 8, 7, OW_LEFT | $1, $0, -1, -1, $0, 0, ChrisScript_0x193499, EVENT_GAVE_KURT_APRICORNS
-	person_event SPRITE_CHRIS, 8, 10, OW_LEFT | $0, $0, -1, -1, $0, 0, ChrisScript_0x193499, EVENT_RECEIVED_BALLS_FROM_KURT
+	person_event SPRITE_CHRIS, 8, 7, $9, 0, 0, -1, -1, 0, 0, 0, ChrisScript_0x193499, EVENT_GAVE_KURT_APRICORNS
+	person_event SPRITE_CHRIS, 8, 10, $8, 0, 0, -1, -1, 0, 0, 0, ChrisScript_0x193499, EVENT_RECEIVED_BALLS_FROM_KURT
--- a/maps/TrainerHouse1F.asm
+++ b/maps/TrainerHouse1F.asm
@@ -136,9 +136,9 @@
 
 .Warps:
 	db 3
-	warp_def $d, $2, 3, GROUP_VIRIDIAN_CITY, MAP_VIRIDIAN_CITY
-	warp_def $d, $3, 3, GROUP_VIRIDIAN_CITY, MAP_VIRIDIAN_CITY
-	warp_def $2, $8, 1, GROUP_TRAINER_HOUSE_B1F, MAP_TRAINER_HOUSE_B1F
+	warp_def $d, $2, 3, VIRIDIAN_CITY
+	warp_def $d, $3, 3, VIRIDIAN_CITY
+	warp_def $2, $8, 1, TRAINER_HOUSE_B1F
 
 .XYTriggers:
 	db 0
@@ -151,8 +151,8 @@
 
 .PersonEvents:
 	db 5
-	person_event SPRITE_RECEPTIONIST, 15, 4, OW_LEFT | $1, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, ReceptionistScript_0x9af67, -1
-	person_event SPRITE_COOLTRAINER_M, 15, 11, OW_UP | $3, $0, -1, -1, $0, 0, CooltrainerMScript_0x9af6a, -1
-	person_event SPRITE_COOLTRAINER_F, 6, 10, OW_UP | $2, $2, -1, -1, (PAL_OW_RED << 4) | $80, 0, CooltrainerFScript_0x9af6d, -1
-	person_event SPRITE_YOUNGSTER, 12, 8, OW_UP | $1, $2, -1, -1, (PAL_OW_RED << 4) | $80, 0, YoungsterScript_0x9af70, -1
-	person_event SPRITE_GENTLEMAN, 8, 6, OW_LEFT | $1, $0, -1, -1, $0, 0, GentlemanScript_0x9af73, -1
+	person_event SPRITE_RECEPTIONIST, 15, 4, $9, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, ReceptionistScript_0x9af67, -1
+	person_event SPRITE_COOLTRAINER_M, 15, 11, $7, 0, 0, -1, -1, 0, 0, 0, CooltrainerMScript_0x9af6a, -1
+	person_event SPRITE_COOLTRAINER_F, 6, 10, $6, 0, 2, -1, -1, 8 + PAL_OW_RED, 0, 0, CooltrainerFScript_0x9af6d, -1
+	person_event SPRITE_YOUNGSTER, 12, 8, $5, 0, 2, -1, -1, 8 + PAL_OW_RED, 0, 0, YoungsterScript_0x9af70, -1
+	person_event SPRITE_GENTLEMAN, 8, 6, $9, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x9af73, -1
--- a/maps/TrainerHouseB1F.asm
+++ b/maps/TrainerHouseB1F.asm
@@ -173,7 +173,7 @@
 
 .Warps:
 	db 1
-	warp_def $4, $9, 3, GROUP_TRAINER_HOUSE_1F, MAP_TRAINER_HOUSE_1F
+	warp_def $4, $9, 3, TRAINER_HOUSE_1F
 
 .XYTriggers:
 	db 1
@@ -184,5 +184,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_RECEPTIONIST, 5, 11, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, ObjectEvent, -1
-	person_event SPRITE_CHRIS, 15, 10, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, ObjectEvent, -1
+	person_event SPRITE_RECEPTIONIST, 5, 11, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, ObjectEvent, -1
+	person_event SPRITE_CHRIS, 15, 10, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, ObjectEvent, -1
--- a/maps/Underground.asm
+++ b/maps/Underground.asm
@@ -19,8 +19,8 @@
 
 .Warps:
 	db 2
-	warp_def $2, $3, 3, GROUP_ROUTE_5_UNDERGROUND_ENTRANCE, MAP_ROUTE_5_UNDERGROUND_ENTRANCE
-	warp_def $18, $3, 3, GROUP_ROUTE_6_UNDERGROUND_ENTRANCE, MAP_ROUTE_6_UNDERGROUND_ENTRANCE
+	warp_def $2, $3, 3, ROUTE_5_UNDERGROUND_ENTRANCE
+	warp_def $18, $3, 3, ROUTE_6_UNDERGROUND_ENTRANCE
 
 .XYTriggers:
 	db 0
--- a/maps/UndergroundPathSwitchRoomEntrances.asm
+++ b/maps/UndergroundPathSwitchRoomEntrances.asm
@@ -119,7 +119,7 @@
 	checkevent EVENT_RIVAL_BURNED_TOWER
 	iftrue UnknownScript_0x7cae1
 	setevent EVENT_RIVAL_BURNED_TOWER
-	domaptrigger GROUP_BURNED_TOWER_1F, MAP_BURNED_TOWER_1F, $1
+	domaptrigger BURNED_TOWER_1F, $1
 UnknownScript_0x7cae1:
 	playmusic MUSIC_RIVAL_ENCOUNTER
 	loadfont
@@ -897,15 +897,15 @@
 
 .Warps:
 	db 9
-	warp_def $3, $17, 6, GROUP_WAREHOUSE_ENTRANCE, MAP_WAREHOUSE_ENTRANCE
-	warp_def $a, $16, 1, GROUP_UNDERGROUND_WAREHOUSE, MAP_UNDERGROUND_WAREHOUSE
-	warp_def $a, $17, 2, GROUP_UNDERGROUND_WAREHOUSE, MAP_UNDERGROUND_WAREHOUSE
-	warp_def $19, $5, 2, GROUP_WAREHOUSE_ENTRANCE, MAP_WAREHOUSE_ENTRANCE
-	warp_def $1d, $4, 14, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
-	warp_def $1d, $5, 14, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
-	warp_def $19, $15, 1, GROUP_WAREHOUSE_ENTRANCE, MAP_WAREHOUSE_ENTRANCE
-	warp_def $1d, $14, 13, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
-	warp_def $1d, $15, 13, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
+	warp_def $3, $17, 6, WAREHOUSE_ENTRANCE
+	warp_def $a, $16, 1, UNDERGROUND_WAREHOUSE
+	warp_def $a, $17, 2, UNDERGROUND_WAREHOUSE
+	warp_def $19, $5, 2, WAREHOUSE_ENTRANCE
+	warp_def $1d, $4, 14, GOLDENROD_CITY
+	warp_def $1d, $5, 14, GOLDENROD_CITY
+	warp_def $19, $15, 1, WAREHOUSE_ENTRANCE
+	warp_def $1d, $14, 13, GOLDENROD_CITY
+	warp_def $1d, $15, 13, GOLDENROD_CITY
 
 .XYTriggers:
 	db 2
@@ -923,14 +923,14 @@
 
 .PersonEvents:
 	db 11
-	person_event SPRITE_PHARMACIST, 16, 13, OW_LEFT | $1, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 2, TrainerBurglarDuncan, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
-	person_event SPRITE_PHARMACIST, 12, 8, OW_LEFT | $0, $0, -1, -1, (PAL_OW_GREEN << 4) | $82, 2, TrainerBurglarEddie, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
-	person_event SPRITE_ROCKET, 6, 21, OW_UP | $2, $0, -1, -1, $2, 3, TrainerGruntM13, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
-	person_event SPRITE_ROCKET, 6, 15, OW_UP | $2, $0, -1, -1, $2, 3, TrainerGruntM11, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
-	person_event SPRITE_ROCKET, 6, 7, OW_UP | $2, $0, -1, -1, $2, 3, TrainerGruntM25, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
-	person_event SPRITE_ROCKET_GIRL, 16, 23, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 1, TrainerGruntF3, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
-	person_event SPRITE_TEACHER, 31, 7, OW_UP | $2, $0, -1, -1, $0, 0, TeacherScript_0x7ca7d, -1
-	person_event SPRITE_SUPER_NERD, 31, 23, OW_UP | $2, $0, -1, -1, $0, 0, SuperNerdScript_0x7ca7a, -1
-	person_event SPRITE_POKE_BALL, 16, 5, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7ce7d, EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_SMOKE_BALL
-	person_event SPRITE_POKE_BALL, 13, 18, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7ce7f, EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_FULL_HEAL
-	person_event SPRITE_SILVER, 7, 27, OW_UP | $2, $0, -1, -1, $0, 0, ObjectEvent, EVENT_RIVAL_UNDERGROUND_PATH
+	person_event SPRITE_PHARMACIST, 16, 13, $9, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 2, TrainerBurglarDuncan, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_PHARMACIST, 12, 8, $8, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 2, 2, TrainerBurglarEddie, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_ROCKET, 6, 21, $6, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM13, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_ROCKET, 6, 15, $6, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM11, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_ROCKET, 6, 7, $6, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM25, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_ROCKET_GIRL, 16, 23, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 1, TrainerGruntF3, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_TEACHER, 31, 7, $6, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x7ca7d, -1
+	person_event SPRITE_SUPER_NERD, 31, 23, $6, 0, 0, -1, -1, 0, 0, 0, SuperNerdScript_0x7ca7a, -1
+	person_event SPRITE_POKE_BALL, 16, 5, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7ce7d, EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_SMOKE_BALL
+	person_event SPRITE_POKE_BALL, 13, 18, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7ce7f, EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_FULL_HEAL
+	person_event SPRITE_SILVER, 7, 27, $6, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_UNDERGROUND_PATH
--- a/maps/UndergroundWarehouse.asm
+++ b/maps/UndergroundWarehouse.asm
@@ -210,9 +210,9 @@
 
 .Warps:
 	db 3
-	warp_def $c, $2, 2, GROUP_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES, MAP_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES
-	warp_def $c, $3, 3, GROUP_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES, MAP_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES
-	warp_def $2, $11, 1, GROUP_GOLDENROD_DEPT_STORE_B1F, MAP_GOLDENROD_DEPT_STORE_B1F
+	warp_def $c, $2, 2, UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES
+	warp_def $c, $3, 3, UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES
+	warp_def $2, $11, 1, GOLDENROD_DEPT_STORE_B1F
 
 .XYTriggers:
 	db 0
@@ -222,10 +222,10 @@
 
 .PersonEvents:
 	db 7
-	person_event SPRITE_ROCKET, 12, 13, OW_UP | $3, $0, -1, -1, $2, 3, TrainerGruntM24, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
-	person_event SPRITE_ROCKET, 19, 12, OW_UP | $3, $0, -1, -1, $2, 3, TrainerGruntM14, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
-	person_event SPRITE_ROCKET, 7, 18, OW_LEFT | $1, $0, -1, -1, $2, 4, TrainerGruntM15, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
-	person_event SPRITE_GENTLEMAN, 12, 16, OW_DOWN | $3, $0, -1, -1, $0, 0, GentlemanScript_0x7d9bf, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
-	person_event SPRITE_POKE_BALL, 19, 22, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7d9e4, EVENT_UNDERGROUND_WAREHOUSE_MAX_ETHER
-	person_event SPRITE_POKE_BALL, 13, 17, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7d9e6, EVENT_UNDERGROUND_WAREHOUSE_TM_SLEEP_TALK
-	person_event SPRITE_POKE_BALL, 5, 6, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7d9e8, EVENT_UNDERGROUND_WAREHOUSE_ULTRA_BALL
+	person_event SPRITE_ROCKET, 12, 13, $7, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM24, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_ROCKET, 19, 12, $7, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM14, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_ROCKET, 7, 18, $9, 0, 0, -1, -1, 0, 2, 4, TrainerGruntM15, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_GENTLEMAN, 12, 16, $3, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x7d9bf, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	person_event SPRITE_POKE_BALL, 19, 22, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d9e4, EVENT_UNDERGROUND_WAREHOUSE_MAX_ETHER
+	person_event SPRITE_POKE_BALL, 13, 17, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d9e6, EVENT_UNDERGROUND_WAREHOUSE_TM_SLEEP_TALK
+	person_event SPRITE_POKE_BALL, 5, 6, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d9e8, EVENT_UNDERGROUND_WAREHOUSE_ULTRA_BALL
--- a/maps/UnionCave1F.asm
+++ b/maps/UnionCave1F.asm
@@ -194,10 +194,10 @@
 
 .Warps:
 	db 4
-	warp_def $13, $5, 3, GROUP_UNION_CAVE_B1F, MAP_UNION_CAVE_B1F
-	warp_def $21, $3, 4, GROUP_UNION_CAVE_B1F, MAP_UNION_CAVE_B1F
-	warp_def $1f, $11, 1, GROUP_ROUTE_33, MAP_ROUTE_33
-	warp_def $3, $11, 4, GROUP_ROUTE_32, MAP_ROUTE_32
+	warp_def $13, $5, 3, UNION_CAVE_B1F
+	warp_def $21, $3, 4, UNION_CAVE_B1F
+	warp_def $1f, $11, 1, ROUTE_33
+	warp_def $3, $11, 4, ROUTE_32
 
 .XYTriggers:
 	db 0
@@ -207,12 +207,12 @@
 
 .PersonEvents:
 	db 9
-	person_event SPRITE_POKEFAN_M, 10, 7, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 2, TrainerHikerDaniel, -1
-	person_event SPRITE_SUPER_NERD, 25, 8, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerPokemaniacLarry, -1
-	person_event SPRITE_POKEFAN_M, 12, 15, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 1, TrainerHikerRussell, -1
-	person_event SPRITE_FISHER, 31, 19, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $82, 4, TrainerFirebreatherRay, -1
-	person_event SPRITE_FISHER, 23, 18, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $82, 4, TrainerFirebreatherBill, -1
-	person_event SPRITE_POKE_BALL, 25, 21, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x59c00, EVENT_UNION_CAVE_1F_GREAT_BALL
-	person_event SPRITE_POKE_BALL, 6, 8, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x59c02, EVENT_UNION_CAVE_1F_X_ATTACK
-	person_event SPRITE_POKE_BALL, 21, 8, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x59c04, EVENT_UNION_CAVE_1F_POTION
-	person_event SPRITE_POKE_BALL, 37, 16, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x59c06, EVENT_UNION_CAVE_1F_AWAKENING
+	person_event SPRITE_POKEFAN_M, 10, 7, $9, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 2, TrainerHikerDaniel, -1
+	person_event SPRITE_SUPER_NERD, 25, 8, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerPokemaniacLarry, -1
+	person_event SPRITE_POKEFAN_M, 12, 15, $a, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 1, TrainerHikerRussell, -1
+	person_event SPRITE_FISHER, 31, 19, $8, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 4, TrainerFirebreatherRay, -1
+	person_event SPRITE_FISHER, 23, 18, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 4, TrainerFirebreatherBill, -1
+	person_event SPRITE_POKE_BALL, 25, 21, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59c00, EVENT_UNION_CAVE_1F_GREAT_BALL
+	person_event SPRITE_POKE_BALL, 6, 8, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59c02, EVENT_UNION_CAVE_1F_X_ATTACK
+	person_event SPRITE_POKE_BALL, 21, 8, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59c04, EVENT_UNION_CAVE_1F_POTION
+	person_event SPRITE_POKE_BALL, 37, 16, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59c06, EVENT_UNION_CAVE_1F_AWAKENING
--- a/maps/UnionCaveB1F.asm
+++ b/maps/UnionCaveB1F.asm
@@ -149,11 +149,11 @@
 
 .Warps:
 	db 5
-	warp_def $3, $3, 7, GROUP_RUINS_OF_ALPH_OUTSIDE, MAP_RUINS_OF_ALPH_OUTSIDE
-	warp_def $b, $3, 8, GROUP_RUINS_OF_ALPH_OUTSIDE, MAP_RUINS_OF_ALPH_OUTSIDE
-	warp_def $13, $7, 1, GROUP_UNION_CAVE_1F, MAP_UNION_CAVE_1F
-	warp_def $21, $3, 2, GROUP_UNION_CAVE_1F, MAP_UNION_CAVE_1F
-	warp_def $1f, $11, 1, GROUP_UNION_CAVE_B2F, MAP_UNION_CAVE_B2F
+	warp_def $3, $3, 7, RUINS_OF_ALPH_OUTSIDE
+	warp_def $b, $3, 8, RUINS_OF_ALPH_OUTSIDE
+	warp_def $13, $7, 1, UNION_CAVE_1F
+	warp_def $21, $3, 2, UNION_CAVE_1F
+	warp_def $1f, $11, 1, UNION_CAVE_B2F
 
 .XYTriggers:
 	db 0
@@ -163,10 +163,10 @@
 
 .PersonEvents:
 	db 7
-	person_event SPRITE_POKEFAN_M, 8, 13, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 3, TrainerHikerPhillip, -1
-	person_event SPRITE_POKEFAN_M, 11, 20, OW_UP | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 3, TrainerHikerLeonard, -1
-	person_event SPRITE_SUPER_NERD, 36, 9, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerPokemaniacAndrew, -1
-	person_event SPRITE_SUPER_NERD, 34, 21, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerPokemaniacCalvin, -1
-	person_event SPRITE_POKE_BALL, 20, 6, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x5a016, EVENT_UNION_CAVE_B1F_TM_SWIFT
-	person_event SPRITE_BOULDER, 14, 11, OW_LEFT | $11, $0, -1, -1, $0, 0, UnionCaveB1FBoulder, -1
-	person_event SPRITE_POKE_BALL, 27, 21, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x5a018, EVENT_UNION_CAVE_B1F_X_DEFEND
+	person_event SPRITE_POKEFAN_M, 8, 13, $a, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 3, TrainerHikerPhillip, -1
+	person_event SPRITE_POKEFAN_M, 11, 20, $6, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 3, TrainerHikerLeonard, -1
+	person_event SPRITE_SUPER_NERD, 36, 9, $8, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerPokemaniacAndrew, -1
+	person_event SPRITE_SUPER_NERD, 34, 21, $8, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerPokemaniacCalvin, -1
+	person_event SPRITE_POKE_BALL, 20, 6, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a016, EVENT_UNION_CAVE_B1F_TM_SWIFT
+	person_event SPRITE_BOULDER, 14, 11, $19, 0, 0, -1, -1, 0, 0, 0, UnionCaveB1FBoulder, -1
+	person_event SPRITE_POKE_BALL, 27, 21, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a018, EVENT_UNION_CAVE_B1F_X_DEFEND
--- a/maps/UnionCaveB2F.asm
+++ b/maps/UnionCaveB2F.asm
@@ -142,7 +142,7 @@
 
 .Warps:
 	db 1
-	warp_def $3, $5, 5, GROUP_UNION_CAVE_B1F, MAP_UNION_CAVE_B1F
+	warp_def $3, $5, 5, UNION_CAVE_B1F
 
 .XYTriggers:
 	db 0
@@ -152,9 +152,9 @@
 
 .PersonEvents:
 	db 6
-	person_event SPRITE_ROCKER, 23, 19, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerCooltrainermNick, -1
-	person_event SPRITE_COOLTRAINER_F, 17, 9, OW_LEFT | $2, $0, -1, -1, (PAL_OW_RED << 4) | $82, 1, TrainerCooltrainerfGwen, -1
-	person_event SPRITE_COOLTRAINER_F, 34, 7, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerCooltrainerfEmma, -1
-	person_event SPRITE_POKE_BALL, 6, 20, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x5a36a, EVENT_UNION_CAVE_B2F_ELIXER
-	person_event SPRITE_POKE_BALL, 23, 16, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x5a36c, EVENT_UNION_CAVE_B2F_HYPER_POTION
-	person_event SPRITE_SURF, 35, 15, OW_UP | $20, $11, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, SurfScript_0x5a31f, EVENT_UNION_CAVE_B2F_LAPRAS
+	person_event SPRITE_ROCKER, 23, 19, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerCooltrainermNick, -1
+	person_event SPRITE_COOLTRAINER_F, 17, 9, $a, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 1, TrainerCooltrainerfGwen, -1
+	person_event SPRITE_COOLTRAINER_F, 34, 7, $7, 0, 0, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerCooltrainerfEmma, -1
+	person_event SPRITE_POKE_BALL, 6, 20, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a36a, EVENT_UNION_CAVE_B2F_ELIXER
+	person_event SPRITE_POKE_BALL, 23, 16, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a36c, EVENT_UNION_CAVE_B2F_HYPER_POTION
+	person_event SPRITE_SURF, 35, 15, $24, 1, 1, -1, -1, 8 + PAL_OW_BLUE, 0, 0, SurfScript_0x5a31f, EVENT_UNION_CAVE_B2F_LAPRAS
--- a/maps/VermilionCity.asm
+++ b/maps/VermilionCity.asm
@@ -267,16 +267,16 @@
 
 .Warps:
 	db 10
-	warp_def $5, $5, 1, GROUP_VERMILION_HOUSE_FISHING_SPEECH_HOUSE, MAP_VERMILION_HOUSE_FISHING_SPEECH_HOUSE
-	warp_def $5, $9, 1, GROUP_VERMILION_POKECENTER_1F, MAP_VERMILION_POKECENTER_1F
-	warp_def $d, $7, 1, GROUP_POKEMON_FAN_CLUB, MAP_POKEMON_FAN_CLUB
-	warp_def $d, $d, 1, GROUP_VERMILION_MAGNET_TRAIN_SPEECH_HOUSE, MAP_VERMILION_MAGNET_TRAIN_SPEECH_HOUSE
-	warp_def $d, $15, 2, GROUP_VERMILION_MART, MAP_VERMILION_MART
-	warp_def $11, $15, 1, GROUP_VERMILION_HOUSE_DIGLETTS_CAVE_SPEECH_HOUSE, MAP_VERMILION_HOUSE_DIGLETTS_CAVE_SPEECH_HOUSE
-	warp_def $13, $a, 1, GROUP_VERMILION_GYM, MAP_VERMILION_GYM
-	warp_def $1f, $13, 1, GROUP_VERMILION_PORT_PASSAGE, MAP_VERMILION_PORT_PASSAGE
-	warp_def $1f, $14, 2, GROUP_VERMILION_PORT_PASSAGE, MAP_VERMILION_PORT_PASSAGE
-	warp_def $7, $22, 1, GROUP_DIGLETTS_CAVE, MAP_DIGLETTS_CAVE
+	warp_def $5, $5, 1, VERMILION_HOUSE_FISHING_SPEECH_HOUSE
+	warp_def $5, $9, 1, VERMILION_POKECENTER_1F
+	warp_def $d, $7, 1, POKEMON_FAN_CLUB
+	warp_def $d, $d, 1, VERMILION_MAGNET_TRAIN_SPEECH_HOUSE
+	warp_def $d, $15, 2, VERMILION_MART
+	warp_def $11, $15, 1, VERMILION_HOUSE_DIGLETTS_CAVE_SPEECH_HOUSE
+	warp_def $13, $a, 1, VERMILION_GYM
+	warp_def $1f, $13, 1, VERMILION_PORT_PASSAGE
+	warp_def $1f, $14, 2, VERMILION_PORT_PASSAGE
+	warp_def $7, $22, 1, DIGLETTS_CAVE
 
 .XYTriggers:
 	db 0
@@ -294,9 +294,9 @@
 
 .PersonEvents:
 	db 6
-	person_event SPRITE_TEACHER, 13, 22, OW_DOWN | $2, $11, -1, -1, $0, 0, TeacherScript_0x1aa983, -1
-	person_event SPRITE_GRAMPS, 10, 27, OW_LEFT | $1, $0, -1, -1, $0, 0, GrampsScript_0x1aa986, -1
-	person_event SPRITE_MACHOP, 11, 30, OW_UP | $12, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, VermilionMachop, -1
-	person_event SPRITE_SUPER_NERD, 20, 18, OW_DOWN | $2, $11, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, SuperNerdScript_0x1aa99b, -1
-	person_event SPRITE_BIG_SNORLAX, 12, 38, OW_UP | $11, $0, -1, -1, $0, 0, VermilionSnorlax, EVENT_VERMILION_CITY_SNORLAX
-	person_event SPRITE_POKEFAN_M, 16, 35, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, VermilionGymBadgeGuy, -1
+	person_event SPRITE_TEACHER, 13, 22, $2, 1, 1, -1, -1, 0, 0, 0, TeacherScript_0x1aa983, -1
+	person_event SPRITE_GRAMPS, 10, 27, $9, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x1aa986, -1
+	person_event SPRITE_MACHOP, 11, 30, $16, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, VermilionMachop, -1
+	person_event SPRITE_SUPER_NERD, 20, 18, $2, 1, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 0, SuperNerdScript_0x1aa99b, -1
+	person_event SPRITE_BIG_SNORLAX, 12, 38, $15, 0, 0, -1, -1, 0, 0, 0, VermilionSnorlax, EVENT_VERMILION_CITY_SNORLAX
+	person_event SPRITE_POKEFAN_M, 16, 35, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, VermilionGymBadgeGuy, -1
--- a/maps/VermilionGym.asm
+++ b/maps/VermilionGym.asm
@@ -259,8 +259,8 @@
 
 .Warps:
 	db 2
-	warp_def $11, $4, 7, GROUP_VERMILION_CITY, MAP_VERMILION_CITY
-	warp_def $11, $5, 7, GROUP_VERMILION_CITY, MAP_VERMILION_CITY
+	warp_def $11, $4, 7, VERMILION_CITY
+	warp_def $11, $5, 7, VERMILION_CITY
 
 .XYTriggers:
 	db 0
@@ -287,8 +287,8 @@
 
 .PersonEvents:
 	db 5
-	person_event SPRITE_SURGE, 6, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, SurgeScript_0x1920a5, -1
-	person_event SPRITE_GENTLEMAN, 12, 12, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 4, TrainerGentlemanGregory, -1
-	person_event SPRITE_ROCKER, 11, 8, OW_UP | $2, $3, -1, -1, (PAL_OW_RED << 4) | $82, 3, TrainerGuitaristVincent, -1
-	person_event SPRITE_SUPER_NERD, 14, 4, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 4, TrainerJugglerHorton, -1
-	person_event SPRITE_GYM_GUY, 19, 11, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 1, VermilionGymGuyScript, -1
+	person_event SPRITE_SURGE, 6, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, SurgeScript_0x1920a5, -1
+	person_event SPRITE_GENTLEMAN, 12, 12, $8, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 4, TrainerGentlemanGregory, -1
+	person_event SPRITE_ROCKER, 11, 8, $6, 0, 3, -1, -1, 8 + PAL_OW_RED, 2, 3, TrainerGuitaristVincent, -1
+	person_event SPRITE_SUPER_NERD, 14, 4, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 4, TrainerJugglerHorton, -1
+	person_event SPRITE_GYM_GUY, 19, 11, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 1, VermilionGymGuyScript, -1
--- a/maps/VermilionHouseDiglettsCaveSpeechHouse.asm
+++ b/maps/VermilionHouseDiglettsCaveSpeechHouse.asm
@@ -23,8 +23,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 6, GROUP_VERMILION_CITY, MAP_VERMILION_CITY
-	warp_def $7, $3, 6, GROUP_VERMILION_CITY, MAP_VERMILION_CITY
+	warp_def $7, $2, 6, VERMILION_CITY
+	warp_def $7, $3, 6, VERMILION_CITY
 
 .XYTriggers:
 	db 0
@@ -34,4 +34,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_GENTLEMAN, 7, 5, OW_UP | $0, $10, -1, -1, (PAL_OW_RED << 4) | $80, 0, GentlemanScript_0x192031, -1
+	person_event SPRITE_GENTLEMAN, 7, 5, $4, 1, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, GentlemanScript_0x192031, -1
--- a/maps/VermilionHouseFishingSpeechHouse.asm
+++ b/maps/VermilionHouseFishingSpeechHouse.asm
@@ -53,8 +53,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 1, GROUP_VERMILION_CITY, MAP_VERMILION_CITY
-	warp_def $7, $3, 1, GROUP_VERMILION_CITY, MAP_VERMILION_CITY
+	warp_def $7, $2, 1, VERMILION_CITY
+	warp_def $7, $3, 1, VERMILION_CITY
 
 .XYTriggers:
 	db 0
@@ -65,4 +65,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_FISHING_GURU, 8, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, FishingDude, -1
+	person_event SPRITE_FISHING_GURU, 8, 6, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, FishingDude, -1
--- a/maps/VermilionMagnetTrainSpeechHouse.asm
+++ b/maps/VermilionMagnetTrainSpeechHouse.asm
@@ -35,8 +35,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 4, GROUP_VERMILION_CITY, MAP_VERMILION_CITY
-	warp_def $7, $3, 4, GROUP_VERMILION_CITY, MAP_VERMILION_CITY
+	warp_def $7, $2, 4, VERMILION_CITY
+	warp_def $7, $3, 4, VERMILION_CITY
 
 .XYTriggers:
 	db 0
@@ -48,5 +48,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_POKEFAN_F, 7, 6, OW_LEFT | $0, $0, -1, -1, $0, 0, PokefanFScript_0x191eb7, -1
-	person_event SPRITE_YOUNGSTER, 7, 4, OW_LEFT | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, YoungsterScript_0x191eba, -1
+	person_event SPRITE_POKEFAN_F, 7, 6, $8, 0, 0, -1, -1, 0, 0, 0, PokefanFScript_0x191eb7, -1
+	person_event SPRITE_YOUNGSTER, 7, 4, $a, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, YoungsterScript_0x191eba, -1
--- a/maps/VermilionMart.asm
+++ b/maps/VermilionMart.asm
@@ -37,8 +37,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 5, GROUP_VERMILION_CITY, MAP_VERMILION_CITY
-	warp_def $7, $3, 5, GROUP_VERMILION_CITY, MAP_VERMILION_CITY
+	warp_def $7, $2, 5, VERMILION_CITY
+	warp_def $7, $3, 5, VERMILION_CITY
 
 .XYTriggers:
 	db 0
@@ -48,6 +48,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 7, 5, OW_LEFT | $1, $0, -1, -1, $0, 0, ClerkScript_0x191f7e, -1
-	person_event SPRITE_SUPER_NERD, 6, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, SuperNerdScript_0x191f85, -1
-	person_event SPRITE_BUENA, 10, 12, OW_UP | $1, $1, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, BuenaScript_0x191f88, -1
+	person_event SPRITE_CLERK, 7, 5, $9, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x191f7e, -1
+	person_event SPRITE_SUPER_NERD, 6, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, SuperNerdScript_0x191f85, -1
+	person_event SPRITE_BUENA, 10, 12, $5, 0, 1, -1, -1, 8 + PAL_OW_GREEN, 0, 0, BuenaScript_0x191f88, -1
--- a/maps/VermilionPokeCenter1F.asm
+++ b/maps/VermilionPokeCenter1F.asm
@@ -76,9 +76,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $3, 2, GROUP_VERMILION_CITY, MAP_VERMILION_CITY
-	warp_def $7, $4, 2, GROUP_VERMILION_CITY, MAP_VERMILION_CITY
-	warp_def $7, $0, 1, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
+	warp_def $7, $3, 2, VERMILION_CITY
+	warp_def $7, $4, 2, VERMILION_CITY
+	warp_def $7, $0, 1, POKECENTER_2F
 
 .XYTriggers:
 	db 0
@@ -88,7 +88,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_NURSE, 5, 7, OW_UP | $2, $0, -1, -1, $0, 0, NurseScript_0x191603, -1
-	person_event SPRITE_FISHING_GURU, 6, 11, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, FishingGuruScript_0x191606, -1
-	person_event SPRITE_SAILOR, 9, 10, OW_UP | $0, $10, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, SailorScript_0x19161a, -1
-	person_event SPRITE_BUG_CATCHER, 9, 5, OW_DOWN | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, BugCatcherScript_0x19161d, -1
+	person_event SPRITE_NURSE, 5, 7, $6, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x191603, -1
+	person_event SPRITE_FISHING_GURU, 6, 11, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, FishingGuruScript_0x191606, -1
+	person_event SPRITE_SAILOR, 9, 10, $4, 1, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, SailorScript_0x19161a, -1
+	person_event SPRITE_BUG_CATCHER, 9, 5, $3, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, BugCatcherScript_0x19161d, -1
--- a/maps/VermilionPokeCenter2FBeta.asm
+++ b/maps/VermilionPokeCenter2FBeta.asm
@@ -11,7 +11,7 @@
 
 .Warps:
 	db 1
-	warp_def $7, $0, 3, GROUP_VERMILION_POKECENTER_1F, MAP_VERMILION_POKECENTER_1F
+	warp_def $7, $0, 3, VERMILION_POKECENTER_1F
 
 .XYTriggers:
 	db 0
--- a/maps/VermilionPort.asm
+++ b/maps/VermilionPort.asm
@@ -33,7 +33,7 @@
 	clearevent EVENT_OLIVINE_PORT_PASSAGE_POKEFAN_M
 	setevent EVENT_FAST_SHIP_FIRST_TIME
 	setevent EVENT_GAVE_KURT_APRICORNS
-	blackoutmod GROUP_VERMILION_CITY, MAP_VERMILION_CITY
+	blackoutmod VERMILION_CITY
 	end
 
 SailorScript_0x74dc4:
@@ -67,8 +67,8 @@
 	clearevent EVENT_BEAT_SCHOOLBOY_RICKY
 	setevent EVENT_FAST_SHIP_DESTINATION_OLIVINE
 	appear $2
-	domaptrigger GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F, $1
-	warp GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F, $19, $1
+	domaptrigger FAST_SHIP_1F, $1
+	warp FAST_SHIP_1F, $19, $1
 	end
 
 UnknownScript_0x74e1a:
@@ -304,8 +304,8 @@
 
 .Warps:
 	db 2
-	warp_def $5, $9, 5, GROUP_VERMILION_PORT_PASSAGE, MAP_VERMILION_PORT_PASSAGE
-	warp_def $11, $7, 1, GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F
+	warp_def $5, $9, 5, VERMILION_PORT_PASSAGE
+	warp_def $11, $7, 1, FAST_SHIP_1F
 
 .XYTriggers:
 	db 1
@@ -317,6 +317,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_SAILOR, 21, 11, OW_UP | $3, $0, -1, -1, $0, 0, SailorScript_0x74dc4, EVENT_VERMILION_PORT_SAILOR_AT_GANGWAY
-	person_event SPRITE_SAILOR, 15, 10, OW_LEFT | $1, $0, -1, -1, $0, 0, SailorScript_0x74e97, -1
-	person_event SPRITE_SUPER_NERD, 15, 15, OW_UP | $1, $2, -1, -1, $0, 0, SuperNerdScript_0x74ee6, -1
+	person_event SPRITE_SAILOR, 21, 11, $7, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x74dc4, EVENT_VERMILION_PORT_SAILOR_AT_GANGWAY
+	person_event SPRITE_SAILOR, 15, 10, $9, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x74e97, -1
+	person_event SPRITE_SUPER_NERD, 15, 15, $5, 0, 2, -1, -1, 0, 0, 0, SuperNerdScript_0x74ee6, -1
--- a/maps/VermilionPortPassage.asm
+++ b/maps/VermilionPortPassage.asm
@@ -21,11 +21,11 @@
 
 .Warps:
 	db 5
-	warp_def $0, $f, 8, GROUP_VERMILION_CITY, MAP_VERMILION_CITY
-	warp_def $0, $10, 9, GROUP_VERMILION_CITY, MAP_VERMILION_CITY
-	warp_def $4, $f, 4, GROUP_VERMILION_PORT_PASSAGE, MAP_VERMILION_PORT_PASSAGE
-	warp_def $2, $3, 3, GROUP_VERMILION_PORT_PASSAGE, MAP_VERMILION_PORT_PASSAGE
-	warp_def $e, $3, 1, GROUP_VERMILION_PORT, MAP_VERMILION_PORT
+	warp_def $0, $f, 8, VERMILION_CITY
+	warp_def $0, $10, 9, VERMILION_CITY
+	warp_def $4, $f, 4, VERMILION_PORT_PASSAGE
+	warp_def $2, $3, 3, VERMILION_PORT_PASSAGE
+	warp_def $e, $3, 1, VERMILION_PORT
 
 .XYTriggers:
 	db 0
@@ -35,4 +35,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_TEACHER, 5, 21, OW_LEFT | $0, $0, -1, -1, $0, 0, TeacherScript_0x7701a, -1
+	person_event SPRITE_TEACHER, 5, 21, $8, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x7701a, -1
--- a/maps/VictoryRoad.asm
+++ b/maps/VictoryRoad.asm
@@ -240,16 +240,16 @@
 
 .Warps:
 	db 10
-	warp_def $43, $9, 5, GROUP_VICTORY_ROAD_GATE, MAP_VICTORY_ROAD_GATE
-	warp_def $31, $1, 3, GROUP_VICTORY_ROAD, MAP_VICTORY_ROAD
-	warp_def $23, $1, 2, GROUP_VICTORY_ROAD, MAP_VICTORY_ROAD
-	warp_def $1f, $d, 5, GROUP_VICTORY_ROAD, MAP_VICTORY_ROAD
-	warp_def $11, $d, 4, GROUP_VICTORY_ROAD, MAP_VICTORY_ROAD
-	warp_def $21, $11, 7, GROUP_VICTORY_ROAD, MAP_VICTORY_ROAD
-	warp_def $13, $11, 6, GROUP_VICTORY_ROAD, MAP_VICTORY_ROAD
-	warp_def $b, $0, 9, GROUP_VICTORY_ROAD, MAP_VICTORY_ROAD
-	warp_def $1b, $0, 8, GROUP_VICTORY_ROAD, MAP_VICTORY_ROAD
-	warp_def $5, $d, 3, GROUP_ROUTE_23, MAP_ROUTE_23
+	warp_def $43, $9, 5, VICTORY_ROAD_GATE
+	warp_def $31, $1, 3, VICTORY_ROAD
+	warp_def $23, $1, 2, VICTORY_ROAD
+	warp_def $1f, $d, 5, VICTORY_ROAD
+	warp_def $11, $d, 4, VICTORY_ROAD
+	warp_def $21, $11, 7, VICTORY_ROAD
+	warp_def $13, $11, 6, VICTORY_ROAD
+	warp_def $b, $0, 9, VICTORY_ROAD
+	warp_def $1b, $0, 8, VICTORY_ROAD
+	warp_def $5, $d, 3, ROUTE_23
 
 .XYTriggers:
 	db 2
@@ -263,9 +263,9 @@
 
 .PersonEvents:
 	db 6
-	person_event SPRITE_SILVER, 17, 22, OW_UP | $3, $0, -1, -1, $0, 0, ObjectEvent, EVENT_RIVAL_VICTORY_ROAD
-	person_event SPRITE_POKE_BALL, 32, 7, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x74529, EVENT_VICTORY_ROAD_TM_EARTHQUAKE
-	person_event SPRITE_POKE_BALL, 52, 16, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7452b, EVENT_VICTORY_ROAD_MAX_REVIVE
-	person_event SPRITE_POKE_BALL, 33, 22, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7452d, EVENT_VICTORY_ROAD_FULL_RESTORE
-	person_event SPRITE_POKE_BALL, 52, 19, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7452f, EVENT_VICTORY_ROAD_FULL_HEAL
-	person_event SPRITE_POKE_BALL, 42, 11, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x74531, EVENT_VICTORY_ROAD_HP_UP
+	person_event SPRITE_SILVER, 17, 22, $7, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_VICTORY_ROAD
+	person_event SPRITE_POKE_BALL, 32, 7, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x74529, EVENT_VICTORY_ROAD_TM_EARTHQUAKE
+	person_event SPRITE_POKE_BALL, 52, 16, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7452b, EVENT_VICTORY_ROAD_MAX_REVIVE
+	person_event SPRITE_POKE_BALL, 33, 22, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7452d, EVENT_VICTORY_ROAD_FULL_RESTORE
+	person_event SPRITE_POKE_BALL, 52, 19, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7452f, EVENT_VICTORY_ROAD_FULL_HEAL
+	person_event SPRITE_POKE_BALL, 42, 11, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x74531, EVENT_VICTORY_ROAD_HP_UP
--- a/maps/VictoryRoadGate.asm
+++ b/maps/VictoryRoadGate.asm
@@ -100,14 +100,14 @@
 
 .Warps:
 	db 8
-	warp_def $7, $11, 1, GROUP_ROUTE_22, MAP_ROUTE_22
-	warp_def $7, $12, 1, GROUP_ROUTE_22, MAP_ROUTE_22
-	warp_def $11, $9, 1, GROUP_ROUTE_26, MAP_ROUTE_26
-	warp_def $11, $a, 1, GROUP_ROUTE_26, MAP_ROUTE_26
-	warp_def $0, $9, 1, GROUP_VICTORY_ROAD, MAP_VICTORY_ROAD
-	warp_def $0, $a, 1, GROUP_VICTORY_ROAD, MAP_VICTORY_ROAD
-	warp_def $7, $1, 2, GROUP_ROUTE_28, MAP_ROUTE_28
-	warp_def $7, $2, 2, GROUP_ROUTE_28, MAP_ROUTE_28
+	warp_def $7, $11, 1, ROUTE_22
+	warp_def $7, $12, 1, ROUTE_22
+	warp_def $11, $9, 1, ROUTE_26
+	warp_def $11, $a, 1, ROUTE_26
+	warp_def $0, $9, 1, VICTORY_ROAD
+	warp_def $0, $a, 1, VICTORY_ROAD
+	warp_def $7, $1, 2, ROUTE_28
+	warp_def $7, $2, 2, ROUTE_28
 
 .XYTriggers:
 	db 1
@@ -118,6 +118,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_OFFICER, 15, 12, OW_LEFT | $1, $0, -1, -1, $0, 0, OfficerScript_0x9ba03, -1
-	person_event SPRITE_BLACK_BELT, 9, 11, OW_LEFT | $1, $0, -1, -1, $0, 0, BlackBeltScript_0x9ba21, EVENT_OPENED_MT_SILVER
-	person_event SPRITE_BLACK_BELT, 9, 16, OW_LEFT | $0, $0, -1, -1, $0, 0, BlackBeltScript_0x9ba24, EVENT_FOUGHT_SNORLAX
+	person_event SPRITE_OFFICER, 15, 12, $9, 0, 0, -1, -1, 0, 0, 0, OfficerScript_0x9ba03, -1
+	person_event SPRITE_BLACK_BELT, 9, 11, $9, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x9ba21, EVENT_OPENED_MT_SILVER
+	person_event SPRITE_BLACK_BELT, 9, 16, $8, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x9ba24, EVENT_FOUGHT_SNORLAX
--- a/maps/VioletCity.asm
+++ b/maps/VioletCity.asm
@@ -276,15 +276,15 @@
 
 .Warps:
 	db 9
-	warp_def $11, $9, 2, GROUP_VIOLET_MART, MAP_VIOLET_MART
-	warp_def $11, $12, 1, GROUP_VIOLET_GYM, MAP_VIOLET_GYM
-	warp_def $11, $1e, 1, GROUP_EARLS_POKEMON_ACADEMY, MAP_EARLS_POKEMON_ACADEMY
-	warp_def $f, $3, 1, GROUP_VIOLET_NICKNAME_SPEECH_HOUSE, MAP_VIOLET_NICKNAME_SPEECH_HOUSE
-	warp_def $19, $1f, 1, GROUP_VIOLET_POKECENTER_1F, MAP_VIOLET_POKECENTER_1F
-	warp_def $1d, $15, 1, GROUP_VIOLET_ONIX_TRADE_HOUSE, MAP_VIOLET_ONIX_TRADE_HOUSE
-	warp_def $5, $17, 1, GROUP_SPROUT_TOWER_1F, MAP_SPROUT_TOWER_1F
-	warp_def $18, $27, 1, GROUP_ROUTE_31_VIOLET_GATE, MAP_ROUTE_31_VIOLET_GATE
-	warp_def $19, $27, 2, GROUP_ROUTE_31_VIOLET_GATE, MAP_ROUTE_31_VIOLET_GATE
+	warp_def $11, $9, 2, VIOLET_MART
+	warp_def $11, $12, 1, VIOLET_GYM
+	warp_def $11, $1e, 1, EARLS_POKEMON_ACADEMY
+	warp_def $f, $3, 1, VIOLET_NICKNAME_SPEECH_HOUSE
+	warp_def $19, $1f, 1, VIOLET_POKECENTER_1F
+	warp_def $1d, $15, 1, VIOLET_ONIX_TRADE_HOUSE
+	warp_def $5, $17, 1, SPROUT_TOWER_1F
+	warp_def $18, $27, 1, ROUTE_31_VIOLET_GATE
+	warp_def $19, $27, 2, ROUTE_31_VIOLET_GATE
 
 .XYTriggers:
 	db 0
@@ -301,11 +301,11 @@
 
 .PersonEvents:
 	db 8
-	person_event SPRITE_FISHER, 20, 17, OW_DOWN | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, FisherScript_0x1a83bb, EVENT_VIOLET_CITY_EARL
-	person_event SPRITE_LASS, 32, 32, OW_DOWN | $2, $22, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, LassScript_0x1a8403, -1
-	person_event SPRITE_SUPER_NERD, 18, 28, OW_DOWN | $2, $21, -1, -1, (PAL_OW_RED << 4) | $80, 0, SuperNerdScript_0x1a8406, -1
-	person_event SPRITE_GRAMPS, 24, 21, OW_UP | $1, $1, -1, -1, $0, 0, GrampsScript_0x1a8409, -1
-	person_event SPRITE_YOUNGSTER, 22, 9, OW_DOWN | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, YoungsterScript_0x1a840c, -1
-	person_event SPRITE_FRUIT_TREE, 33, 18, OW_DOWN | $1, $0, -1, -1, $0, 0, FruitTreeScript_0x1a8425, -1
-	person_event SPRITE_POKE_BALL, 5, 8, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x1a8421, EVENT_VIOLET_CITY_PP_UP
-	person_event SPRITE_POKE_BALL, 9, 39, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x1a8423, EVENT_VIOLET_CITY_RARE_CANDY
+	person_event SPRITE_FISHER, 20, 17, $3, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, FisherScript_0x1a83bb, EVENT_VIOLET_CITY_EARL
+	person_event SPRITE_LASS, 32, 32, $2, 2, 2, -1, -1, 8 + PAL_OW_GREEN, 0, 0, LassScript_0x1a8403, -1
+	person_event SPRITE_SUPER_NERD, 18, 28, $2, 2, 1, -1, -1, 8 + PAL_OW_RED, 0, 0, SuperNerdScript_0x1a8406, -1
+	person_event SPRITE_GRAMPS, 24, 21, $5, 0, 1, -1, -1, 0, 0, 0, GrampsScript_0x1a8409, -1
+	person_event SPRITE_YOUNGSTER, 22, 9, $3, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, YoungsterScript_0x1a840c, -1
+	person_event SPRITE_FRUIT_TREE, 33, 18, $1, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a8425, -1
+	person_event SPRITE_POKE_BALL, 5, 8, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a8421, EVENT_VIOLET_CITY_PP_UP
+	person_event SPRITE_POKE_BALL, 9, 39, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a8423, EVENT_VIOLET_CITY_RARE_CANDY
--- a/maps/VioletGym.asm
+++ b/maps/VioletGym.asm
@@ -30,7 +30,7 @@
 	iftrue .SpeechAfterTM
 	setevent EVENT_BEAT_BIRD_KEEPER_ROD
 	setevent EVENT_BEAT_BIRD_KEEPER_ABE
-	domaptrigger GROUP_ELMS_LAB, MAP_ELMS_LAB, $2
+	domaptrigger ELMS_LAB, $2
 	specialphonecall ELMCALL_ASSISTANT
 	writetext UnknownText_0x685c8
 	keeptextopen
@@ -281,8 +281,8 @@
 
 .Warps:
 	db 2
-	warp_def $f, $4, 2, GROUP_VIOLET_CITY, MAP_VIOLET_CITY
-	warp_def $f, $5, 2, GROUP_VIOLET_CITY, MAP_VIOLET_CITY
+	warp_def $f, $4, 2, VIOLET_CITY
+	warp_def $f, $5, 2, VIOLET_CITY
 
 .XYTriggers:
 	db 0
@@ -294,7 +294,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_FALKNER, 5, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, FalknerScript_0x683c2, -1
-	person_event SPRITE_YOUNGSTER, 10, 11, OW_LEFT | $0, $2, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerBird_keeperRod, -1
-	person_event SPRITE_YOUNGSTER, 14, 6, OW_LEFT | $1, $2, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerBird_keeperAbe, -1
-	person_event SPRITE_GYM_GUY, 17, 11, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, VioletGymGuyScript, -1
+	person_event SPRITE_FALKNER, 5, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, FalknerScript_0x683c2, -1
+	person_event SPRITE_YOUNGSTER, 10, 11, $8, 0, 2, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerBird_keeperRod, -1
+	person_event SPRITE_YOUNGSTER, 14, 6, $9, 0, 2, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerBird_keeperAbe, -1
+	person_event SPRITE_GYM_GUY, 17, 11, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, VioletGymGuyScript, -1
--- a/maps/VioletMart.asm
+++ b/maps/VioletMart.asm
@@ -49,8 +49,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 1, GROUP_VIOLET_CITY, MAP_VIOLET_CITY
-	warp_def $7, $3, 1, GROUP_VIOLET_CITY, MAP_VIOLET_CITY
+	warp_def $7, $2, 1, VIOLET_CITY
+	warp_def $7, $3, 1, VIOLET_CITY
 
 .XYTriggers:
 	db 0
@@ -60,6 +60,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 7, 5, OW_LEFT | $1, $0, -1, -1, $0, 0, ClerkScript_0x68295, -1
-	person_event SPRITE_GRANNY, 10, 11, OW_UP | $1, $1, -1, -1, $0, 0, GrannyScript_0x6829c, -1
-	person_event SPRITE_COOLTRAINER_M, 6, 9, OW_DOWN | $3, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, CooltrainerMScript_0x6829f, -1
+	person_event SPRITE_CLERK, 7, 5, $9, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x68295, -1
+	person_event SPRITE_GRANNY, 10, 11, $5, 0, 1, -1, -1, 0, 0, 0, GrannyScript_0x6829c, -1
+	person_event SPRITE_COOLTRAINER_M, 6, 9, $3, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, CooltrainerMScript_0x6829f, -1
--- a/maps/VioletNicknameSpeechHouse.asm
+++ b/maps/VioletNicknameSpeechHouse.asm
@@ -45,8 +45,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $3, 4, GROUP_VIOLET_CITY, MAP_VIOLET_CITY
-	warp_def $7, $4, 4, GROUP_VIOLET_CITY, MAP_VIOLET_CITY
+	warp_def $7, $3, 4, VIOLET_CITY
+	warp_def $7, $4, 4, VIOLET_CITY
 
 .XYTriggers:
 	db 0
@@ -56,6 +56,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_TEACHER, 7, 6, OW_LEFT | $1, $0, -1, -1, $0, 0, TeacherScript_0x693e9, -1
-	person_event SPRITE_LASS, 8, 10, OW_UP | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, LassScript_0x693ec, -1
-	person_event SPRITE_BIRD, 6, 9, OW_UP | $1, $1, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, BirdScript_0x693ef, -1
+	person_event SPRITE_TEACHER, 7, 6, $9, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x693e9, -1
+	person_event SPRITE_LASS, 8, 10, $7, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, LassScript_0x693ec, -1
+	person_event SPRITE_BIRD, 6, 9, $5, 0, 1, -1, -1, 8 + PAL_OW_BROWN, 0, 0, BirdScript_0x693ef, -1
--- a/maps/VioletOnixTradeHouse.asm
+++ b/maps/VioletOnixTradeHouse.asm
@@ -34,8 +34,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $3, 6, GROUP_VIOLET_CITY, MAP_VIOLET_CITY
-	warp_def $7, $4, 6, GROUP_VIOLET_CITY, MAP_VIOLET_CITY
+	warp_def $7, $3, 6, VIOLET_CITY
+	warp_def $7, $4, 6, VIOLET_CITY
 
 .XYTriggers:
 	db 0
@@ -45,5 +45,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_POKEFAN_M, 7, 6, OW_DOWN | $3, $0, -1, -1, $0, 0, PokefanMScript_0x6998d, -1
-	person_event SPRITE_YOUNGSTER, 9, 10, OW_UP | $0, $20, -1, -1, (PAL_OW_RED << 4) | $80, 0, YoungsterScript_0x69990, -1
+	person_event SPRITE_POKEFAN_M, 7, 6, $3, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x6998d, -1
+	person_event SPRITE_YOUNGSTER, 9, 10, $4, 2, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, YoungsterScript_0x69990, -1
--- a/maps/VioletPokeCenter1F.asm
+++ b/maps/VioletPokeCenter1F.asm
@@ -25,7 +25,7 @@
 	setevent EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE
 	clearevent EVENT_ELMS_AIDE_IN_LAB
 	clearevent EVENT_TOGEPI_HATCHED
-	domaptrigger GROUP_ROUTE_32, MAP_ROUTE_32, $1
+	domaptrigger ROUTE_32, $1
 	writetext UnknownText_0x695c5
 	closetext
 	loadmovesprites
@@ -214,9 +214,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $3, 5, GROUP_VIOLET_CITY, MAP_VIOLET_CITY
-	warp_def $7, $4, 5, GROUP_VIOLET_CITY, MAP_VIOLET_CITY
-	warp_def $7, $0, 1, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
+	warp_def $7, $3, 5, VIOLET_CITY
+	warp_def $7, $4, 5, VIOLET_CITY
+	warp_def $7, $0, 1, POKECENTER_2F
 
 .XYTriggers:
 	db 0
@@ -226,8 +226,8 @@
 
 .PersonEvents:
 	db 5
-	person_event SPRITE_NURSE, 5, 7, OW_UP | $2, $0, -1, -1, $0, 0, NurseScript_0x694c9, -1
-	person_event SPRITE_GAMEBOY_KID, 10, 11, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, GameboyKidScript_0x69540, -1
-	person_event SPRITE_GENTLEMAN, 8, 5, OW_DOWN | $3, $0, -1, -1, $0, 0, GentlemanScript_0x69543, -1
-	person_event SPRITE_YOUNGSTER, 5, 12, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, YoungsterScript_0x69546, -1
-	person_event SPRITE_SCIENTIST, 7, 8, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ScientistScript_0x694cc, EVENT_ELMS_AIDE_IN_VIOLET_POKEMON_CENTER
+	person_event SPRITE_NURSE, 5, 7, $6, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x694c9, -1
+	person_event SPRITE_GAMEBOY_KID, 10, 11, $6, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, GameboyKidScript_0x69540, -1
+	person_event SPRITE_GENTLEMAN, 8, 5, $3, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x69543, -1
+	person_event SPRITE_YOUNGSTER, 5, 12, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, YoungsterScript_0x69546, -1
+	person_event SPRITE_SCIENTIST, 7, 8, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ScientistScript_0x694cc, EVENT_ELMS_AIDE_IN_VIOLET_POKEMON_CENTER
--- a/maps/ViridianCity.asm
+++ b/maps/ViridianCity.asm
@@ -217,11 +217,11 @@
 
 .Warps:
 	db 5
-	warp_def $7, $20, 1, GROUP_VIRIDIAN_GYM, MAP_VIRIDIAN_GYM
-	warp_def $9, $15, 1, GROUP_VIRIDIAN_NICKNAME_SPEECH_HOUSE, MAP_VIRIDIAN_NICKNAME_SPEECH_HOUSE
-	warp_def $f, $17, 1, GROUP_TRAINER_HOUSE_1F, MAP_TRAINER_HOUSE_1F
-	warp_def $13, $1d, 2, GROUP_VIRIDIAN_MART, MAP_VIRIDIAN_MART
-	warp_def $19, $17, 1, GROUP_VIRIDIAN_POKECENTER_1F, MAP_VIRIDIAN_POKECENTER_1F
+	warp_def $7, $20, 1, VIRIDIAN_GYM
+	warp_def $9, $15, 1, VIRIDIAN_NICKNAME_SPEECH_HOUSE
+	warp_def $f, $17, 1, TRAINER_HOUSE_1F
+	warp_def $13, $1d, 2, VIRIDIAN_MART
+	warp_def $19, $17, 1, VIRIDIAN_POKECENTER_1F
 
 .XYTriggers:
 	db 0
@@ -237,7 +237,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_GRAMPS, 9, 22, OW_DOWN | $2, $22, -1, -1, $0, 0, GrampsScript_0x1a9a4c, -1
-	person_event SPRITE_GRAMPS, 12, 34, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, GrampsScript_0x1a9a61, -1
-	person_event SPRITE_FISHER, 27, 10, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, FisherScript_0x1a9a75, -1
-	person_event SPRITE_YOUNGSTER, 25, 21, OW_DOWN | $2, $33, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, YoungsterScript_0x1a9a90, -1
+	person_event SPRITE_GRAMPS, 9, 22, $2, 2, 2, -1, -1, 0, 0, 0, GrampsScript_0x1a9a4c, -1
+	person_event SPRITE_GRAMPS, 12, 34, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, GrampsScript_0x1a9a61, -1
+	person_event SPRITE_FISHER, 27, 10, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, FisherScript_0x1a9a75, -1
+	person_event SPRITE_YOUNGSTER, 25, 21, $2, 3, 3, -1, -1, 8 + PAL_OW_GREEN, 0, 0, YoungsterScript_0x1a9a90, -1
--- a/maps/ViridianGym.asm
+++ b/maps/ViridianGym.asm
@@ -170,8 +170,8 @@
 
 .Warps:
 	db 2
-	warp_def $11, $4, 1, GROUP_VIRIDIAN_CITY, MAP_VIRIDIAN_CITY
-	warp_def $11, $5, 1, GROUP_VIRIDIAN_CITY, MAP_VIRIDIAN_CITY
+	warp_def $11, $4, 1, VIRIDIAN_CITY
+	warp_def $11, $5, 1, VIRIDIAN_CITY
 
 .XYTriggers:
 	db 0
@@ -183,5 +183,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_BLUE, 7, 9, OW_UP | $2, $0, -1, -1, $0, 0, BlueScript_0x9aa26, EVENT_VIRIDIAN_GYM_BLUE
-	person_event SPRITE_GYM_GUY, 17, 11, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ViridianGymGuyScript, EVENT_VIRIDIAN_GYM_BLUE
+	person_event SPRITE_BLUE, 7, 9, $6, 0, 0, -1, -1, 0, 0, 0, BlueScript_0x9aa26, EVENT_VIRIDIAN_GYM_BLUE
+	person_event SPRITE_GYM_GUY, 17, 11, $6, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, ViridianGymGuyScript, EVENT_VIRIDIAN_GYM_BLUE
--- a/maps/ViridianMart.asm
+++ b/maps/ViridianMart.asm
@@ -37,8 +37,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 4, GROUP_VIRIDIAN_CITY, MAP_VIRIDIAN_CITY
-	warp_def $7, $3, 4, GROUP_VIRIDIAN_CITY, MAP_VIRIDIAN_CITY
+	warp_def $7, $2, 4, VIRIDIAN_CITY
+	warp_def $7, $3, 4, VIRIDIAN_CITY
 
 .XYTriggers:
 	db 0
@@ -48,6 +48,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 7, 5, OW_LEFT | $1, $0, -1, -1, $0, 0, ClerkScript_0x9b5e7, -1
-	person_event SPRITE_LASS, 6, 11, OW_UP | $1, $2, -1, -1, $0, 0, LassScript_0x9b5ee, -1
-	person_event SPRITE_COOLTRAINER_M, 10, 5, OW_UP | $3, $0, -1, -1, $0, 0, CooltrainerMScript_0x9b5f1, -1
+	person_event SPRITE_CLERK, 7, 5, $9, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x9b5e7, -1
+	person_event SPRITE_LASS, 6, 11, $5, 0, 2, -1, -1, 0, 0, 0, LassScript_0x9b5ee, -1
+	person_event SPRITE_COOLTRAINER_M, 10, 5, $7, 0, 0, -1, -1, 0, 0, 0, CooltrainerMScript_0x9b5f1, -1
--- a/maps/ViridianNicknameSpeechHouse.asm
+++ b/maps/ViridianNicknameSpeechHouse.asm
@@ -61,8 +61,8 @@
 
 .Warps:
 	db 2
-	warp_def $7, $2, 2, GROUP_VIRIDIAN_CITY, MAP_VIRIDIAN_CITY
-	warp_def $7, $3, 2, GROUP_VIRIDIAN_CITY, MAP_VIRIDIAN_CITY
+	warp_def $7, $2, 2, VIRIDIAN_CITY
+	warp_def $7, $3, 2, VIRIDIAN_CITY
 
 .XYTriggers:
 	db 0
@@ -72,7 +72,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_POKEFAN_M, 8, 6, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, PokefanMScript_0x9ae3a, -1
-	person_event SPRITE_LASS, 8, 9, OW_UP | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, LassScript_0x9ae3d, -1
-	person_event SPRITE_MOLTRES, 6, 9, OW_UP | $12, $2, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, MoltresScript_0x9ae40, -1
-	person_event SPRITE_GROWLITHE, 7, 10, OW_UP | $12, $2, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, GrowlitheScript_0x9ae4a, -1
+	person_event SPRITE_POKEFAN_M, 8, 6, $9, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, PokefanMScript_0x9ae3a, -1
+	person_event SPRITE_LASS, 8, 9, $7, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, LassScript_0x9ae3d, -1
+	person_event SPRITE_MOLTRES, 6, 9, $16, 0, 2, -1, -1, 8 + PAL_OW_BROWN, 0, 0, MoltresScript_0x9ae40, -1
+	person_event SPRITE_GROWLITHE, 7, 10, $16, 0, 2, -1, -1, 8 + PAL_OW_BLUE, 0, 0, GrowlitheScript_0x9ae4a, -1
--- a/maps/ViridianPokeCenter1F.asm
+++ b/maps/ViridianPokeCenter1F.asm
@@ -71,9 +71,9 @@
 
 .Warps:
 	db 3
-	warp_def $7, $3, 5, GROUP_VIRIDIAN_CITY, MAP_VIRIDIAN_CITY
-	warp_def $7, $4, 5, GROUP_VIRIDIAN_CITY, MAP_VIRIDIAN_CITY
-	warp_def $7, $0, 1, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
+	warp_def $7, $3, 5, VIRIDIAN_CITY
+	warp_def $7, $4, 5, VIRIDIAN_CITY
+	warp_def $7, $0, 1, POKECENTER_2F
 
 .XYTriggers:
 	db 0
@@ -83,7 +83,7 @@
 
 .PersonEvents:
 	db 4
-	person_event SPRITE_NURSE, 5, 7, OW_UP | $2, $0, -1, -1, $0, 0, NurseScript_0x9b690, -1
-	person_event SPRITE_COOLTRAINER_M, 8, 12, OW_UP | $1, $1, -1, -1, (PAL_OW_RED << 4) | $80, 0, CooltrainerMScript_0x9b693, -1
-	person_event SPRITE_COOLTRAINER_F, 7, 9, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, CooltrainerFScript_0x9b6a7, -1
-	person_event SPRITE_BUG_CATCHER, 10, 5, OW_LEFT | $1, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, BugCatcherScript_0x9b6aa, -1
+	person_event SPRITE_NURSE, 5, 7, $6, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x9b690, -1
+	person_event SPRITE_COOLTRAINER_M, 8, 12, $5, 0, 1, -1, -1, 8 + PAL_OW_RED, 0, 0, CooltrainerMScript_0x9b693, -1
+	person_event SPRITE_COOLTRAINER_F, 7, 9, $7, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, CooltrainerFScript_0x9b6a7, -1
+	person_event SPRITE_BUG_CATCHER, 10, 5, $9, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, BugCatcherScript_0x9b6aa, -1
--- a/maps/ViridianPokeCenter2FBeta.asm
+++ b/maps/ViridianPokeCenter2FBeta.asm
@@ -11,7 +11,7 @@
 
 .Warps:
 	db 1
-	warp_def $7, $0, 3, GROUP_VIRIDIAN_POKECENTER_1F, MAP_VIRIDIAN_POKECENTER_1F
+	warp_def $7, $0, 3, VIRIDIAN_POKECENTER_1F
 
 .XYTriggers:
 	db 0
--- a/maps/WarehouseEntrance.asm
+++ b/maps/WarehouseEntrance.asm
@@ -649,12 +649,12 @@
 
 .Warps:
 	db 6
-	warp_def $2, $3, 7, GROUP_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES, MAP_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES
-	warp_def $22, $3, 4, GROUP_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES, MAP_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES
-	warp_def $6, $12, 4, GROUP_WAREHOUSE_ENTRANCE, MAP_WAREHOUSE_ENTRANCE
-	warp_def $1f, $15, 3, GROUP_WAREHOUSE_ENTRANCE, MAP_WAREHOUSE_ENTRANCE
-	warp_def $1f, $16, 3, GROUP_WAREHOUSE_ENTRANCE, MAP_WAREHOUSE_ENTRANCE
-	warp_def $1b, $16, 1, GROUP_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES, MAP_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES
+	warp_def $2, $3, 7, UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES
+	warp_def $22, $3, 4, UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES
+	warp_def $6, $12, 4, WAREHOUSE_ENTRANCE
+	warp_def $1f, $15, 3, WAREHOUSE_ENTRANCE
+	warp_def $1f, $16, 3, WAREHOUSE_ENTRANCE
+	warp_def $1b, $16, 1, UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES
 
 .XYTriggers:
 	db 0
@@ -669,12 +669,12 @@
 
 .PersonEvents:
 	db 9
-	person_event SPRITE_SUPER_NERD, 35, 9, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 3, TrainerSupernerdEric, -1
-	person_event SPRITE_SUPER_NERD, 13, 10, OW_UP | $3, $0, -1, -1, (PAL_OW_BROWN << 4) | $82, 2, TrainerSupernerdTeru, -1
-	person_event SPRITE_SUPER_NERD, 31, 7, OW_LEFT | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 2, TrainerPokemaniacIssac, -1
-	person_event SPRITE_SUPER_NERD, 10, 6, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $82, 3, TrainerPokemaniacDonald, -1
-	person_event SPRITE_POKE_BALL, 29, 11, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x7c306, EVENT_WAREHOUSE_ENTRANCE_COIN_CASE
-	person_event SPRITE_GRAMPS, 15, 11, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, GrampsScript_0x7c146, EVENT_WAREHOUSE_ENTRANCE_GRAMPS
-	person_event SPRITE_SUPER_NERD, 18, 11, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, OlderHaircutBrotherScript, EVENT_WAREHOUSE_ENTRANCE_OLDER_HAIRCUT_BROTHER
-	person_event SPRITE_SUPER_NERD, 19, 11, OW_LEFT | $0, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, YoungerHaircutBrotherScript, EVENT_WAREHOUSE_ENTRANCE_YOUNGER_HAIRCUT_BROTHER
-	person_event SPRITE_GRANNY, 25, 11, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, GrannyScript_0x7c132, EVENT_WAREHOUSE_ENTRANCE_GRANNY
+	person_event SPRITE_SUPER_NERD, 35, 9, $8, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 3, TrainerSupernerdEric, -1
+	person_event SPRITE_SUPER_NERD, 13, 10, $7, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 2, 2, TrainerSupernerdTeru, -1
+	person_event SPRITE_SUPER_NERD, 31, 7, $a, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 2, TrainerPokemaniacIssac, -1
+	person_event SPRITE_SUPER_NERD, 10, 6, $9, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 2, 3, TrainerPokemaniacDonald, -1
+	person_event SPRITE_POKE_BALL, 29, 11, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7c306, EVENT_WAREHOUSE_ENTRANCE_COIN_CASE
+	person_event SPRITE_GRAMPS, 15, 11, $8, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, GrampsScript_0x7c146, EVENT_WAREHOUSE_ENTRANCE_GRAMPS
+	person_event SPRITE_SUPER_NERD, 18, 11, $8, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, OlderHaircutBrotherScript, EVENT_WAREHOUSE_ENTRANCE_OLDER_HAIRCUT_BROTHER
+	person_event SPRITE_SUPER_NERD, 19, 11, $8, 0, 0, -1, -1, 8 + PAL_OW_GREEN, 0, 0, YoungerHaircutBrotherScript, EVENT_WAREHOUSE_ENTRANCE_YOUNGER_HAIRCUT_BROTHER
+	person_event SPRITE_GRANNY, 25, 11, $8, 0, 0, -1, -1, 8 + PAL_OW_BROWN, 0, 0, GrannyScript_0x7c132, EVENT_WAREHOUSE_ENTRANCE_GRANNY
--- a/maps/WhirlIslandB1F.asm
+++ b/maps/WhirlIslandB1F.asm
@@ -41,15 +41,15 @@
 
 .Warps:
 	db 9
-	warp_def $5, $5, 2, GROUP_WHIRL_ISLAND_NW, MAP_WHIRL_ISLAND_NW
-	warp_def $3, $23, 2, GROUP_WHIRL_ISLAND_NE, MAP_WHIRL_ISLAND_NE
-	warp_def $9, $1d, 3, GROUP_WHIRL_ISLAND_NE, MAP_WHIRL_ISLAND_NE
-	warp_def $1f, $9, 3, GROUP_WHIRL_ISLAND_SW, MAP_WHIRL_ISLAND_SW
-	warp_def $1f, $17, 2, GROUP_WHIRL_ISLAND_SW, MAP_WHIRL_ISLAND_SW
-	warp_def $1d, $1f, 2, GROUP_WHIRL_ISLAND_SE, MAP_WHIRL_ISLAND_SE
-	warp_def $15, $19, 1, GROUP_WHIRL_ISLAND_B2F, MAP_WHIRL_ISLAND_B2F
-	warp_def $1b, $d, 2, GROUP_WHIRL_ISLAND_B2F, MAP_WHIRL_ISLAND_B2F
-	warp_def $15, $11, 1, GROUP_WHIRL_ISLAND_CAVE, MAP_WHIRL_ISLAND_CAVE
+	warp_def $5, $5, 2, WHIRL_ISLAND_NW
+	warp_def $3, $23, 2, WHIRL_ISLAND_NE
+	warp_def $9, $1d, 3, WHIRL_ISLAND_NE
+	warp_def $1f, $9, 3, WHIRL_ISLAND_SW
+	warp_def $1f, $17, 2, WHIRL_ISLAND_SW
+	warp_def $1d, $1f, 2, WHIRL_ISLAND_SE
+	warp_def $15, $19, 1, WHIRL_ISLAND_B2F
+	warp_def $1b, $d, 2, WHIRL_ISLAND_B2F
+	warp_def $15, $11, 1, WHIRL_ISLAND_CAVE
 
 .XYTriggers:
 	db 0
@@ -62,9 +62,9 @@
 
 .PersonEvents:
 	db 6
-	person_event SPRITE_POKE_BALL, 17, 11, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c410, EVENT_WHIRL_ISLAND_B1F_FULL_RESTORE
-	person_event SPRITE_POKE_BALL, 22, 6, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c412, EVENT_WHIRL_ISLAND_B1F_CARBOS
-	person_event SPRITE_POKE_BALL, 27, 37, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c414, EVENT_WHIRL_ISLAND_B1F_CALCIUM
-	person_event SPRITE_POKE_BALL, 12, 21, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c416, EVENT_WHIRL_ISLAND_B1F_NUGGET
-	person_event SPRITE_POKE_BALL, 30, 23, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c418, EVENT_WHIRL_ISLAND_B1F_ESCAPE_ROPE
-	person_event SPRITE_BOULDER, 30, 27, OW_LEFT | $11, $0, -1, -1, $0, 0, WhirlIslandB1FBoulder, -1
+	person_event SPRITE_POKE_BALL, 17, 11, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c410, EVENT_WHIRL_ISLAND_B1F_FULL_RESTORE
+	person_event SPRITE_POKE_BALL, 22, 6, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c412, EVENT_WHIRL_ISLAND_B1F_CARBOS
+	person_event SPRITE_POKE_BALL, 27, 37, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c414, EVENT_WHIRL_ISLAND_B1F_CALCIUM
+	person_event SPRITE_POKE_BALL, 12, 21, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c416, EVENT_WHIRL_ISLAND_B1F_NUGGET
+	person_event SPRITE_POKE_BALL, 30, 23, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c418, EVENT_WHIRL_ISLAND_B1F_ESCAPE_ROPE
+	person_event SPRITE_BOULDER, 30, 27, $19, 0, 0, -1, -1, 0, 0, 0, WhirlIslandB1FBoulder, -1
--- a/maps/WhirlIslandB2F.asm
+++ b/maps/WhirlIslandB2F.asm
@@ -20,10 +20,10 @@
 
 .Warps:
 	db 4
-	warp_def $5, $b, 7, GROUP_WHIRL_ISLAND_B1F, MAP_WHIRL_ISLAND_B1F
-	warp_def $b, $7, 8, GROUP_WHIRL_ISLAND_B1F, MAP_WHIRL_ISLAND_B1F
-	warp_def $19, $7, 1, GROUP_WHIRL_ISLAND_LUGIA_CHAMBER, MAP_WHIRL_ISLAND_LUGIA_CHAMBER
-	warp_def $1f, $d, 5, GROUP_WHIRL_ISLAND_SW, MAP_WHIRL_ISLAND_SW
+	warp_def $5, $b, 7, WHIRL_ISLAND_B1F
+	warp_def $b, $7, 8, WHIRL_ISLAND_B1F
+	warp_def $19, $7, 1, WHIRL_ISLAND_LUGIA_CHAMBER
+	warp_def $1f, $d, 5, WHIRL_ISLAND_SW
 
 .XYTriggers:
 	db 0
@@ -33,6 +33,6 @@
 
 .PersonEvents:
 	db 3
-	person_event SPRITE_POKE_BALL, 15, 14, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c4b8, EVENT_WHIRL_ISLAND_B2F_FULL_RESTORE
-	person_event SPRITE_POKE_BALL, 8, 10, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c4ba, EVENT_WHIRL_ISLAND_B2F_MAX_REVIVE
-	person_event SPRITE_POKE_BALL, 16, 9, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c4bc, EVENT_WHIRL_ISLAND_B2F_MAX_ELIXER
+	person_event SPRITE_POKE_BALL, 15, 14, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c4b8, EVENT_WHIRL_ISLAND_B2F_FULL_RESTORE
+	person_event SPRITE_POKE_BALL, 8, 10, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c4ba, EVENT_WHIRL_ISLAND_B2F_MAX_REVIVE
+	person_event SPRITE_POKE_BALL, 16, 9, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c4bc, EVENT_WHIRL_ISLAND_B2F_MAX_ELIXER
--- a/maps/WhirlIslandCave.asm
+++ b/maps/WhirlIslandCave.asm
@@ -11,8 +11,8 @@
 
 .Warps:
 	db 2
-	warp_def $5, $7, 9, GROUP_WHIRL_ISLAND_B1F, MAP_WHIRL_ISLAND_B1F
-	warp_def $d, $3, 4, GROUP_WHIRL_ISLAND_NW, MAP_WHIRL_ISLAND_NW
+	warp_def $5, $7, 9, WHIRL_ISLAND_B1F
+	warp_def $d, $3, 4, WHIRL_ISLAND_NW
 
 .XYTriggers:
 	db 0
--- a/maps/WhirlIslandLugiaChamber.asm
+++ b/maps/WhirlIslandLugiaChamber.asm
@@ -49,7 +49,7 @@
 
 .Warps:
 	db 1
-	warp_def $d, $9, 3, GROUP_WHIRL_ISLAND_B2F, MAP_WHIRL_ISLAND_B2F
+	warp_def $d, $9, 3, WHIRL_ISLAND_B2F
 
 .XYTriggers:
 	db 0
@@ -59,4 +59,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_LUGIA, 9, 13, OW_UP | $12, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, LugiaScript_0x18c518, EVENT_WHIRL_ISLAND_LUGIA_CHAMBER_LUGIA
+	person_event SPRITE_LUGIA, 9, 13, $16, 0, 0, -1, -1, 8 + PAL_OW_BLUE, 0, 0, LugiaScript_0x18c518, EVENT_WHIRL_ISLAND_LUGIA_CHAMBER_LUGIA
--- a/maps/WhirlIslandNE.asm
+++ b/maps/WhirlIslandNE.asm
@@ -14,9 +14,9 @@
 
 .Warps:
 	db 3
-	warp_def $d, $3, 2, GROUP_ROUTE_41, MAP_ROUTE_41
-	warp_def $3, $11, 2, GROUP_WHIRL_ISLAND_B1F, MAP_WHIRL_ISLAND_B1F
-	warp_def $b, $d, 3, GROUP_WHIRL_ISLAND_B1F, MAP_WHIRL_ISLAND_B1F
+	warp_def $d, $3, 2, ROUTE_41
+	warp_def $3, $11, 2, WHIRL_ISLAND_B1F
+	warp_def $b, $d, 3, WHIRL_ISLAND_B1F
 
 .XYTriggers:
 	db 0
@@ -26,4 +26,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_POKE_BALL, 15, 15, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c396, EVENT_WHIRL_ISLAND_NE_ULTRA_BALL
+	person_event SPRITE_POKE_BALL, 15, 15, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c396, EVENT_WHIRL_ISLAND_NE_ULTRA_BALL
--- a/maps/WhirlIslandNW.asm
+++ b/maps/WhirlIslandNW.asm
@@ -11,10 +11,10 @@
 
 .Warps:
 	db 4
-	warp_def $7, $5, 1, GROUP_ROUTE_41, MAP_ROUTE_41
-	warp_def $3, $5, 1, GROUP_WHIRL_ISLAND_B1F, MAP_WHIRL_ISLAND_B1F
-	warp_def $f, $3, 4, GROUP_WHIRL_ISLAND_SW, MAP_WHIRL_ISLAND_SW
-	warp_def $f, $7, 2, GROUP_WHIRL_ISLAND_CAVE, MAP_WHIRL_ISLAND_CAVE
+	warp_def $7, $5, 1, ROUTE_41
+	warp_def $3, $5, 1, WHIRL_ISLAND_B1F
+	warp_def $f, $3, 4, WHIRL_ISLAND_SW
+	warp_def $f, $7, 2, WHIRL_ISLAND_CAVE
 
 .XYTriggers:
 	db 0
--- a/maps/WhirlIslandSE.asm
+++ b/maps/WhirlIslandSE.asm
@@ -11,8 +11,8 @@
 
 .Warps:
 	db 2
-	warp_def $d, $5, 4, GROUP_ROUTE_41, MAP_ROUTE_41
-	warp_def $3, $5, 6, GROUP_WHIRL_ISLAND_B1F, MAP_WHIRL_ISLAND_B1F
+	warp_def $d, $5, 4, ROUTE_41
+	warp_def $3, $5, 6, WHIRL_ISLAND_B1F
 
 .XYTriggers:
 	db 0
--- a/maps/WhirlIslandSW.asm
+++ b/maps/WhirlIslandSW.asm
@@ -14,11 +14,11 @@
 
 .Warps:
 	db 5
-	warp_def $7, $5, 3, GROUP_ROUTE_41, MAP_ROUTE_41
-	warp_def $3, $11, 5, GROUP_WHIRL_ISLAND_B1F, MAP_WHIRL_ISLAND_B1F
-	warp_def $3, $3, 4, GROUP_WHIRL_ISLAND_B1F, MAP_WHIRL_ISLAND_B1F
-	warp_def $f, $3, 3, GROUP_WHIRL_ISLAND_NW, MAP_WHIRL_ISLAND_NW
-	warp_def $f, $11, 4, GROUP_WHIRL_ISLAND_B2F, MAP_WHIRL_ISLAND_B2F
+	warp_def $7, $5, 3, ROUTE_41
+	warp_def $3, $11, 5, WHIRL_ISLAND_B1F
+	warp_def $3, $3, 4, WHIRL_ISLAND_B1F
+	warp_def $f, $3, 3, WHIRL_ISLAND_NW
+	warp_def $f, $11, 4, WHIRL_ISLAND_B2F
 
 .XYTriggers:
 	db 0
@@ -28,4 +28,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_POKE_BALL, 6, 19, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c3bc, EVENT_WHIRL_ISLAND_SW_ULTRA_BALL
+	person_event SPRITE_POKE_BALL, 6, 19, $1, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c3bc, EVENT_WHIRL_ISLAND_SW_ULTRA_BALL
--- a/maps/WillsRoom.asm
+++ b/maps/WillsRoom.asm
@@ -136,9 +136,9 @@
 
 .Warps:
 	db 3
-	warp_def $11, $5, 4, GROUP_INDIGO_PLATEAU_POKECENTER_1F, MAP_INDIGO_PLATEAU_POKECENTER_1F
-	warp_def $2, $4, 1, GROUP_KOGAS_ROOM, MAP_KOGAS_ROOM
-	warp_def $2, $5, 2, GROUP_KOGAS_ROOM, MAP_KOGAS_ROOM
+	warp_def $11, $5, 4, INDIGO_PLATEAU_POKECENTER_1F
+	warp_def $2, $4, 1, KOGAS_ROOM
+	warp_def $2, $5, 2, KOGAS_ROOM
 
 .XYTriggers:
 	db 0
@@ -148,4 +148,4 @@
 
 .PersonEvents:
 	db 1
-	person_event SPRITE_WILL, 11, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, WillScript_0x1804f8, -1
+	person_event SPRITE_WILL, 11, 9, $6, 0, 0, -1, -1, 8 + PAL_OW_RED, 0, 0, WillScript_0x1804f8, -1
--- a/maps/WiseTriosRoom.asm
+++ b/maps/WiseTriosRoom.asm
@@ -347,9 +347,9 @@
 
 .Warps:
 	db 3
-	warp_def $4, $7, 4, GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY
-	warp_def $5, $7, 5, GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY
-	warp_def $4, $1, 5, GROUP_ECRUTEAK_HOUSE, MAP_ECRUTEAK_HOUSE
+	warp_def $4, $7, 4, ECRUTEAK_CITY
+	warp_def $5, $7, 5, ECRUTEAK_CITY
+	warp_def $4, $1, 5, ECRUTEAK_HOUSE
 
 .XYTriggers:
 	db 1
@@ -360,9 +360,9 @@
 
 .PersonEvents:
 	db 6
-	person_event SPRITE_SAGE, 6, 10, OW_DOWN | $3, $0, -1, -1, $0, 0, SageScript_0x9859a, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
-	person_event SPRITE_SAGE, 11, 10, OW_UP | $1, $1, -1, -1, $0, 0, SageScript_0x9859d, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
-	person_event SPRITE_SAGE, 9, 11, OW_LEFT | $0, $0, -1, -1, $0, 0, SageScript_0x985a0, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
-	person_event SPRITE_SAGE, 6, 8, OW_UP | $2, $0, -1, -1, $2, 2, TrainerSageGaku, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2
-	person_event SPRITE_SAGE, 10, 8, OW_UP | $3, $0, -1, -1, $2, 2, TrainerSageMasa, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2
-	person_event SPRITE_SAGE, 8, 10, OW_LEFT | $0, $0, -1, -1, $2, 2, TrainerSageKoji, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2
+	person_event SPRITE_SAGE, 6, 10, $3, 0, 0, -1, -1, 0, 0, 0, SageScript_0x9859a, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
+	person_event SPRITE_SAGE, 11, 10, $5, 0, 1, -1, -1, 0, 0, 0, SageScript_0x9859d, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
+	person_event SPRITE_SAGE, 9, 11, $8, 0, 0, -1, -1, 0, 0, 0, SageScript_0x985a0, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
+	person_event SPRITE_SAGE, 6, 8, $6, 0, 0, -1, -1, 0, 2, 2, TrainerSageGaku, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2
+	person_event SPRITE_SAGE, 10, 8, $7, 0, 0, -1, -1, 0, 2, 2, TrainerSageMasa, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2
+	person_event SPRITE_SAGE, 8, 10, $8, 0, 0, -1, -1, 0, 2, 2, TrainerSageKoji, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2
--- a/misc/crystal_misc.asm
+++ b/misc/crystal_misc.asm
@@ -645,7 +645,7 @@
 	call Function17aae3
 	ld c, a
 	ld b, $0
-	ld hl, AttrMap ; AttrMap + 0 + 0 * SCREEN_WIDTH
+	hlcoord 0, 0, AttrMap
 	add hl, bc
 	push hl
 	ld a, $4
@@ -766,7 +766,7 @@
 Function17ac0c: ; 17ac0c (5e:6c0c)
 	call Function17ac1d
 	call Function17ac2a
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld b, $2
 	ld c, $12
 	call Function17ac46
--- a/misc/mobile_40.asm
+++ b/misc/mobile_40.asm
@@ -173,7 +173,7 @@
 	xor a
 	ld [InLinkBattle], a
 	ld a, $4
-	ld [wc319], a
+	ld [wPartyMonMenuIconAnims + 5], a
 	callba Function11619d
 	ld hl, wcd29
 	set 6, [hl]
@@ -327,7 +327,7 @@
 	push de
 	callba Function106464
 	call Function3f20
-	call DrawOnMap
+	call UpdateSprites
 	hlcoord 1, 2
 	pop de
 	call PlaceString
@@ -797,7 +797,7 @@
 Function100504: ; 100504
 	push de
 	call Function3f20
-	call DrawOnMap
+	call UpdateSprites
 	pop de
 	hlcoord 4, 2
 	call PlaceString
@@ -830,7 +830,7 @@
 
 Function100534: ; 100534
 	call Function100513
-	call DrawOnMap
+	call UpdateSprites
 	call Function321c
 	ld a, [wcd28]
 	inc a
@@ -1514,10 +1514,10 @@
 
 
 Function100970: ; 100970
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld de, wdc00
 	call Function1009a5
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld de, $dd68
 	call Function1009a5
 	call Function1009d2
@@ -1527,18 +1527,18 @@
 
 Function100989: ; 100989
 	ld hl, wdc00
-	ld de, TileMap
+	decoord 0, 0
 	call Function1009a5
 	call Function1009ae
 	callba Function104061
 	ld hl, $dd68
-	ld de, AttrMap
+	decoord 0, 0, AttrMap
 	call Function1009a5
 	ret
 ; 1009a5
 
 Function1009a5: ; 1009a5
-	ld bc, $0168
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	ld a, $3
 	call FarCopyWRAM
 	ret
@@ -1550,7 +1550,7 @@
 	ld a, $3
 	ld [rSVBK], a
 	ld hl, $d800
-	ld de, AttrMap
+	decoord 0, 0, AttrMap
 	ld c, $14
 	ld b, $12
 .asm_1009bf
@@ -1829,7 +1829,7 @@
 	rst FarCall
 	callba Function24085
 	callba MobileTextBorder
-	call DrawOnMap
+	call UpdateSprites
 	call Function321c
 	callba Function2411a
 	ld hl, wcfa5
@@ -2084,7 +2084,7 @@
 	xor a
 	ld [hBGMapMode], a
 	call Function1cbb
-	call DrawOnMap
+	call UpdateSprites
 	call Function1c89
 	call WaitBGMap
 	call Function1c66
@@ -2812,7 +2812,7 @@
 ; 101251
 
 Function101251: ; 101251
-	call DrawOnMap
+	call UpdateSprites
 	call ResetWindow
 	ld hl, UnknownText_0x1021f4
 	call Function1021e0
@@ -2829,7 +2829,7 @@
 ; 10126c
 
 Function10126c: ; 10126c
-	call DrawOnMap
+	call UpdateSprites
 	callba Script_reloadmappart
 	ld hl, UnknownText_0x1021f4
 	call Function1021e0
@@ -3018,7 +3018,7 @@
 	call Function1d7d
 	call Function2bae
 	callba Function106464
-	call DrawOnMap
+	call UpdateSprites
 	call Function2b5c
 	ret
 ; 1013c0
@@ -4174,7 +4174,7 @@
 	call Function101ee4
 	ld hl, wcd29
 	set 5, [hl]
-	call DrawOnMap
+	call UpdateSprites
 	ld a, [wcd25]
 	inc a
 	ld [wcd25], a
@@ -4356,7 +4356,7 @@
 
 Function101cc8: ; 101cc8
 	ld a, $1
-	ld [wc314], a
+	ld [wPartyMonMenuIconAnims], a
 	ld a, $1
 	ld [wc30d], a
 	ld hl, wcd29
@@ -4369,7 +4369,7 @@
 
 Function101cdf: ; 101cdf
 	ld a, $6
-	ld [wc314], a
+	ld [wPartyMonMenuIconAnims], a
 	ld a, $1
 	ld [wc30d], a
 	ld hl, wcd29
@@ -4382,7 +4382,7 @@
 
 Function101cf6: ; 101cf6
 	ld a, $b
-	ld [wc315], a
+	ld [wPartyMonMenuIconAnims + 1], a
 	ld a, [wcd25]
 	inc a
 	ld [wcd25], a
@@ -4391,7 +4391,7 @@
 
 Function101d03: ; 101d03
 	ld a, $e
-	ld [wc315], a
+	ld [wPartyMonMenuIconAnims + 1], a
 	ld a, [wcd25]
 	inc a
 	ld [wcd25], a
@@ -6747,11 +6747,11 @@
 Function102d9a: ; 102d9a
 	ld a, $7f
 	ld hl, SpritesEnd
-	ld bc, $0168
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call ByteFill
 	ld a, $7
-	ld hl, AttrMap
-	ld bc, $0168
+	hlcoord 0, 0, AttrMap
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call ByteFill
 	callba Function104000
 	ret
@@ -7321,7 +7321,7 @@
 	ld a, [hl]
 	ld [wd1ee], a
 	call Function1034be
-	call DrawOnMap
+	call UpdateSprites
 	callba Function104000
 	ld a, $1
 	ld [wd1f0], a
@@ -7566,7 +7566,7 @@
 	ld [wd1f2], a
 
 Function1034f7: ; 10134f7
-	ld hl, TileMap
+	hlcoord 0, 0
 	add hl, bc
 	ld a, [wd1ef]
 	ld bc, SCREEN_WIDTH
--- a/misc/mobile_42.asm
+++ b/misc/mobile_42.asm
@@ -497,7 +497,7 @@
 	call Function3b2a
 	ld de, SFX_BALL_POOF
 	call PlaySFX
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $00f0
 	ld a, $7f
 	call ByteFill
@@ -632,7 +632,7 @@
 	call Function3b2a
 	ld de, SFX_BALL_POOF
 	call PlaySFX
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $00f0
 	ld a, $7f
 	call ByteFill
@@ -1386,8 +1386,8 @@
 ; 108ac8
 
 Function108ac8: ; 108ac8
-	ld hl, TileMap
-	ld bc, $0168
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	ld a, $7f
 	call ByteFill
 	ret
--- a/misc/mobile_45.asm
+++ b/misc/mobile_45.asm
@@ -5588,14 +5588,14 @@
 Function11615a: ; 11615a
 	xor a
 	ld [wc30d], a
-	ld [wc319], a
+	ld [wPartyMonMenuIconAnims + 5], a
 	ld [wc310], a
 	ld [wc311], a
 	ld [wc312], a
 	ld [wc313], a
-	ld [wc314], a
-	ld [wc315], a
-	ld [wc318], a
+	ld [wPartyMonMenuIconAnims], a
+	ld [wPartyMonMenuIconAnims + 1], a
+	ld [wPartyMonMenuIconAnims + 4], a
 	ld [wc3f6], a
 	ld [wc3f8], a
 	ld [wc3f2], a
@@ -5617,7 +5617,7 @@
 	ld a, [wc30d]
 	and a
 	ret z
-	ld a, [wc319]
+	ld a, [wPartyMonMenuIconAnims + 5]
 	cp $2
 	jr c, .asm_1161b4
 	ld a, $a0
@@ -5631,7 +5631,7 @@
 ; 1161b8
 
 Function1161b8: ; 1161b8
-	ld a, [wc319]
+	ld a, [wPartyMonMenuIconAnims + 5]
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_1161c7
@@ -5758,9 +5758,9 @@
 	ld [wc2a9], a
 	ld a, d
 	ld [wc2aa], a
-	ld a, [wc319]
+	ld a, [wPartyMonMenuIconAnims + 5]
 	inc a
-	ld [wc319], a
+	ld [wPartyMonMenuIconAnims + 5], a
 	ret
 ; 11628c
 
@@ -5774,15 +5774,15 @@
 
 Function116294: ; 116294
 	callba Function170d02
-	ld a, [wc319]
+	ld a, [wPartyMonMenuIconAnims + 5]
 	inc a
-	ld [wc319], a
+	ld [wPartyMonMenuIconAnims + 5], a
 	ld a, [rSVBK]
 	push af
 	ld a, $5
 	ld [rSVBK], a
 	ld hl, wd030
-	ld de, wc320
+	ld de, wPartyMonMenuIconAnims + 12
 	ld bc, $0010
 	call CopyBytes
 	ld hl, Palette_11734e
@@ -5799,9 +5799,9 @@
 
 Function1162cb: ; 1162cb
 	callba Function170cc6
-	ld a, [wc319]
+	ld a, [wPartyMonMenuIconAnims + 5]
 	inc a
-	ld [wc319], a
+	ld [wPartyMonMenuIconAnims + 5], a
 	ld a, [rSVBK]
 	push af
 	ld a, $5
@@ -5838,7 +5838,7 @@
 	ld c, a
 	ld a, [wc30f]
 	ld b, a
-	ld a, [wc318]
+	ld a, [wPartyMonMenuIconAnims + 4]
 	ld e, a
 	ld a, [hli]
 	sub e
@@ -5928,7 +5928,7 @@
 	call ByteFill
 	ld a, $90
 	ld [hWY], a
-	call DrawOnMap
+	call UpdateSprites
 	pop af
 	ld [rSVBK], a
 	callba Function104061
@@ -5939,7 +5939,7 @@
 	xor a
 	ld [wc2aa], a
 	xor a
-	ld [wc319], a
+	ld [wPartyMonMenuIconAnims + 5], a
 	ld [wc30d], a
 	ret
 ; 1163c0
@@ -5961,7 +5961,7 @@
 	push af
 	ld a, $5
 	ld [rSVBK], a
-	ld hl, wc320
+	ld hl, wPartyMonMenuIconAnims + 12
 	ld de, wd030
 	ld bc, $0010
 	call CopyBytes
@@ -5971,7 +5971,7 @@
 	call DelayFrame
 	ld a, $90
 	ld [hWY], a
-	call DrawOnMap
+	call UpdateSprites
 	callba Function14157
 	pop af
 	ld [rSVBK], a
@@ -5997,7 +5997,7 @@
 
 .asm_116439
 	xor a
-	ld [wc319], a
+	ld [wPartyMonMenuIconAnims + 5], a
 	ld [wc30d], a
 	ret
 ; 116441
@@ -6014,7 +6014,7 @@
 	xor a
 	ld [wc2aa], a
 	xor a
-	ld [wc319], a
+	ld [wPartyMonMenuIconAnims + 5], a
 	ld [wc30d], a
 	ret
 ; 116468
@@ -6021,7 +6021,7 @@
 
 Function116468: ; 116468
 	call Function116567
-	ld a, [wc314]
+	ld a, [wPartyMonMenuIconAnims]
 	cp $d
 	jr nz, .asm_1164a8
 	ld hl, wc30e
@@ -6213,7 +6213,7 @@
 ; 11659d
 
 Function11659d: ; 11659d
-	ld a, [wc314]
+	ld a, [wPartyMonMenuIconAnims]
 	cp $12
 	ret nc
 	ld e, a
@@ -6289,7 +6289,7 @@
 	call Function116780
 	ret c
 	ld a, $2
-	ld [wc314], a
+	ld [wPartyMonMenuIconAnims], a
 	ret
 ; 116615
 
@@ -6332,17 +6332,17 @@
 	call Function116780
 	ret c
 	ld a, $7
-	ld [wc314], a
+	ld [wPartyMonMenuIconAnims], a
 	ret
 ; 116655
 
 Function116655: ; 116655
 	xor a
-	ld [wc317], a
+	ld [wPartyMonMenuIconAnims + 3], a
 	call Function11678e
 
 Function11665c:
-	ld hl, wc317
+	ld hl, wPartyMonMenuIconAnims + 3
 	ld a, $1
 	xor [hl]
 	ld [hl], a
@@ -6349,7 +6349,7 @@
 	add $4
 	ld c, a
 	call Function11679c
-	ld a, [wc317]
+	ld a, [wPartyMonMenuIconAnims + 3]
 	and a
 	jr nz, .asm_116673
 	ld a, $48
@@ -6378,7 +6378,7 @@
 	call Function116780
 	ret c
 	ld a, $c
-	ld [wc314], a
+	ld [wPartyMonMenuIconAnims], a
 	ret
 ; 11669f
 
@@ -6393,9 +6393,9 @@
 	ld [wc30f], a
 	ld [wc3f3], a
 	ld a, $ff
-	ld [wc316], a
+	ld [wPartyMonMenuIconAnims + 2], a
 	xor a
-	ld [wc317], a
+	ld [wPartyMonMenuIconAnims + 3], a
 	ld a, $0
 	ld c, a
 	call Function11679c
@@ -6417,7 +6417,7 @@
 	cp $48
 	jr nz, .asm_1166e4
 	xor a
-	ld [wc316], a
+	ld [wPartyMonMenuIconAnims + 2], a
 
 .asm_1166e4
 	ld a, [wc311]
@@ -6424,9 +6424,9 @@
 	cp $ff
 	ret nz
 	ld a, $4
-	ld [wc319], a
+	ld [wPartyMonMenuIconAnims + 5], a
 	xor a
-	ld [wc314], a
+	ld [wPartyMonMenuIconAnims], a
 	ret
 ; 1166f4
 
@@ -6433,9 +6433,9 @@
 Function1166f4: ; 1166f4
 	ld [wc30e], a
 	ld a, b
-	ld [wc316], a
+	ld [wPartyMonMenuIconAnims + 2], a
 	xor a
-	ld [wc317], a
+	ld [wPartyMonMenuIconAnims + 3], a
 	ld hl, wc30f
 .asm_116702
 	call Random
@@ -6460,9 +6460,9 @@
 Function11671f: ; 11671f
 	ld [wc30f], a
 	ld a, b
-	ld [wc317], a
+	ld [wPartyMonMenuIconAnims + 3], a
 	xor a
-	ld [wc316], a
+	ld [wPartyMonMenuIconAnims + 2], a
 	ld hl, wc30e
 .asm_11672d
 	call Random
@@ -6482,11 +6482,11 @@
 
 Function116747: ; 116747
 	ld hl, wc30e
-	ld a, [wc316]
+	ld a, [wPartyMonMenuIconAnims + 2]
 	add [hl]
 	ld [hl], a
 	ld hl, wc30f
-	ld a, [wc317]
+	ld a, [wPartyMonMenuIconAnims + 3]
 	add [hl]
 	ld [hl], a
 	ret
@@ -6518,7 +6518,7 @@
 	ld a, $4
 
 .asm_11677a
-	ld [wc318], a
+	ld [wPartyMonMenuIconAnims + 4], a
 	ret
 ; 11677e
 
@@ -6526,11 +6526,11 @@
 	ld a, $0
 
 Function116780:
-	ld hl, wc315
+	ld hl, wPartyMonMenuIconAnims + 1
 	cp [hl]
 	jr z, .asm_11678c
 	ld a, [hl]
-	ld [wc314], a
+	ld [wPartyMonMenuIconAnims], a
 	scf
 	ret
 
@@ -6540,15 +6540,15 @@
 ; 11678e
 
 Function11678e: ; 11678e
-	ld hl, wc314
+	ld hl, wPartyMonMenuIconAnims
 	ld a, [hl]
-	ld [wc315], a
+	ld [wPartyMonMenuIconAnims + 1], a
 	inc [hl]
 	ret
 ; 116797
 
 Function116797: ; 116797
-	ld hl, wc314
+	ld hl, wPartyMonMenuIconAnims
 	inc [hl]
 	ret
 ; 11679c
@@ -8456,11 +8456,11 @@
 	db   "@"
 
 MobileStadiumEntryText: ; 0x117cd3
-	TX_FAR _MobileStadiumEntryText
+	text_jump _MobileStadiumEntryText
 	db "@"
 
 MobileStadiumSuccessText: ; 0x117cd8
-	TX_FAR _MobileStadiumSuccessText
+	text_jump _MobileStadiumSuccessText
 	db "@"
 
 Function117cdd: ; 0x117cdd
@@ -8938,7 +8938,7 @@
 	ld [wcd66], a
 	ld [wcd67], a
 	ld [wcd68], a
-	ld [wc31a], a
+	ld [wPartyMonMenuIconAnims + 6], a
 	ld [wcd89], a
 	ld [wcd8a], a
 	ld [wcd8b], a
@@ -9527,7 +9527,7 @@
 	ld a, $a
 	call Function3e32
 	ld a, [wc3f0]
-	ld [wc319], a
+	ld [wPartyMonMenuIconAnims + 5], a
 	ld a, [wcd34]
 	ld [wcf66], a
 	ret
@@ -9571,13 +9571,13 @@
 	ld a, $a
 	call Function3e32
 	ld a, [wc3f0]
-	ld [wc319], a
+	ld [wPartyMonMenuIconAnims + 5], a
 	ld a, [wcd34]
 	ld [wcf66], a
 	ret
 
 Function118821: ; 118821 (46:4821)
-	ld a, [wc319]
+	ld a, [wPartyMonMenuIconAnims + 5]
 	cp $3
 	jr c, .asm_11884a
 	cp $4
@@ -9590,7 +9590,7 @@
 	ld a, $a
 	ld [wc300], a
 	ld a, [wc3f0]
-	ld [wc319], a
+	ld [wPartyMonMenuIconAnims + 5], a
 	ld a, [wcd34]
 	ld [wcf66], a
 	scf
@@ -9669,7 +9669,7 @@
 ; 1188b0
 
 Function1188b0: ; 1188b0 (46:48b0)
-	ld de, wc346
+	ld de, wPartyMonMenuIconAnims + 48 + 2
 	ld a, $c
 	jp Function119e2b
 
@@ -9701,7 +9701,7 @@
 	jp Function119e2b
 
 Function1188e7: ; 1188e7 (46:48e7)
-	ld de, wc346
+	ld de, wPartyMonMenuIconAnims + 48 + 2
 	ld a, $5
 	call GetSRAMBank
 	ld a, [$aa4a]
@@ -9721,7 +9721,7 @@
 
 Function118903: ; 118903 (46:4903)
 	ld a, [wc3f0]
-	ld [wc319], a
+	ld [wPartyMonMenuIconAnims + 5], a
 	ld c, $1
 	callba Function115e18
 	ld a, $8
@@ -9750,7 +9750,7 @@
 	call Function119e2e
 
 Function118936:
-	ld a, [wc31a]
+	ld a, [wPartyMonMenuIconAnims + 6]
 	and a
 	ret nz
 	ld hl, MenuDataHeader_119cf7
@@ -10032,7 +10032,7 @@
 	jp Function119e2b
 
 Function118b24: ; 118b24 (46:4b24)
-	ld hl, wc346
+	ld hl, wPartyMonMenuIconAnims + 48 + 2
 	ld a, $8
 	ld [hli], a
 	ld a, $c7
@@ -10045,7 +10045,7 @@
 	call Function119ec2
 	ld a, $80
 	ld [wcd89], a
-	ld hl, wc346
+	ld hl, wPartyMonMenuIconAnims + 48 + 2
 	ret
 ; 118b42 (46:4b42)
 
@@ -10380,22 +10380,22 @@
 	call Function118440
 	call SpeechTextBox
 	ld hl, $d80e
-	ld de, wc320
+	ld de, wPartyMonMenuIconAnims + 12
 	ld bc, $0026
 	call CopyBytes
 	xor a
-	ld [wc31f], a
+	ld [wPartyMonMenuIconAnims + 11], a
 	ld a, $20
-	ld [wc31b], a
+	ld [wPartyMonMenuIconAnims + 7], a
 	ld a, $c3
-	ld [wc31c], a
+	ld [wPartyMonMenuIconAnims + 8], a
 	hlcoord 1, 14
 	ld a, l
-	ld [wc31d], a
+	ld [wPartyMonMenuIconAnims + 9], a
 	ld a, h
-	ld [wc31e], a
+	ld [wPartyMonMenuIconAnims + 10], a
 	ld a, $2
-	ld [wc31a], a
+	ld [wPartyMonMenuIconAnims + 6], a
 	ld a, $1d
 	ld [wcd3c], a
 	ld a, $24
@@ -10468,7 +10468,7 @@
 	ld a, [wcc60]
 	and a
 	jr z, .asm_118fba
-	ld hl, wc346
+	ld hl, wPartyMonMenuIconAnims + 48 + 2
 	ld a, $c608 % $100
 	ld [hli], a
 	ld a, $c608 / $100
@@ -10489,7 +10489,7 @@
 	call Function119ec2
 	ld a, $40
 	ld [wcd89], a
-	ld hl, wc346
+	ld hl, wPartyMonMenuIconAnims + 48 + 2
 	ld de, $de00
 	ld bc, $0200
 	ld a, $2c
@@ -10549,7 +10549,7 @@
 	ld de, wcc60
 	call Function1191ad
 	ret c
-	ld hl, wc346
+	ld hl, wPartyMonMenuIconAnims + 48 + 2
 	ld a, $8
 	ld [hli], a
 	ld a, $c6
@@ -10570,7 +10570,7 @@
 	call Function119ec2
 	ld a, $40
 	ld [wcd89], a
-	ld hl, wc346
+	ld hl, wPartyMonMenuIconAnims + 48 + 2
 	ld de, Unkn1Pals
 	ld bc, $1000
 	ld a, $2c
@@ -11097,7 +11097,7 @@
 	ld a, $8
 	ld [wcd3c], a
 	call Function119ed8
-	ld hl, wc346
+	ld hl, wPartyMonMenuIconAnims + 48 + 2
 	ld a, wd000 % $100
 	ld [hli], a
 	ld a, wd000 / $100
@@ -11118,7 +11118,7 @@
 	call Function119ec2
 	ld a, $40
 	ld [wcd89], a
-	ld hl, wc346
+	ld hl, wPartyMonMenuIconAnims + 48 + 2
 	ld de, $de00
 	ld bc, $0200
 	ld a, $2c
@@ -11920,7 +11920,7 @@
 	call Function119e2e
 
 Function1198f7:
-	ld a, [wc31a]
+	ld a, [wPartyMonMenuIconAnims + 6]
 	and a
 	ret nz
 	ld hl, $c608 + 2
@@ -12466,7 +12466,7 @@
 	call Function119e2e
 
 Function119cab:
-	ld a, [wc31a]
+	ld a, [wPartyMonMenuIconAnims + 6]
 	and a
 	ret nz
 	ld a, $80
@@ -12503,7 +12503,7 @@
 	call Function119e2e
 
 Function119cdf:
-	ld a, [wc31a]
+	ld a, [wPartyMonMenuIconAnims + 6]
 	and a
 	ret nz
 	ld a, $f
@@ -12949,7 +12949,7 @@
 	ld a, $1
 	ld [wc30d], a
 	ld a, $1
-	ld [wc314], a
+	ld [wPartyMonMenuIconAnims], a
 	callba Function104061
 	and a
 	ret
@@ -13131,7 +13131,7 @@
 	call Function11a63c
 	call Function11a1e6
 	hlcoord 4, 2
-	ld de, wc346
+	ld de, wPartyMonMenuIconAnims + 48 + 2
 	call PlaceString
 	call Function11a5f5
 	xor a
@@ -13185,7 +13185,7 @@
 
 Function11a1e6: ; 11a1e6
 	ld hl, String_11a706
-	ld de, wc346
+	ld de, wPartyMonMenuIconAnims + 48 + 2
 	call Function11a1ff
 	ld hl, wcd85
 	call Function11a1ff
@@ -13734,15 +13734,15 @@
 	ld a, $5
 	ld [wcf84], a
 	call Function1c00
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld b, $6
 	ld c, $14
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld b, $4
 	ld c, $12
 	call Function3eea
 	callba Function104061
-	call DrawOnMap
+	call UpdateSprites
 	ld c, $0
 	callba Function115e18
 	ld a, $1
@@ -14011,7 +14011,7 @@
 ; 11a8fa
 
 Function11a8fa: ; 11a8fa
-	ld a, [wc31a]
+	ld a, [wPartyMonMenuIconAnims + 6]
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_11a909
@@ -14035,14 +14035,14 @@
 	ld [rSVBK], a
 	call SpeechTextBox
 	ld a, $50
-	ld hl, wc320
+	ld hl, wPartyMonMenuIconAnims + 12
 	ld bc, $008c
 	call ByteFill
-	ld a, [wc31b]
+	ld a, [wPartyMonMenuIconAnims + 7]
 	ld l, a
-	ld a, [wc31c]
+	ld a, [wPartyMonMenuIconAnims + 8]
 	ld h, a
-	ld de, wc320
+	ld de, wPartyMonMenuIconAnims + 12
 .asm_11a92c
 	ld a, [hli]
 	cp $57
@@ -14073,17 +14073,17 @@
 
 .asm_11a94f
 	xor a
-	ld [wc31f], a
+	ld [wPartyMonMenuIconAnims + 11], a
 	ld a, $20
-	ld [wc31b], a
+	ld [wPartyMonMenuIconAnims + 7], a
 	ld a, $c3
-	ld [wc31c], a
+	ld [wPartyMonMenuIconAnims + 8], a
 	hlcoord 1, 14
 	ld a, l
-	ld [wc31d], a
+	ld [wPartyMonMenuIconAnims + 9], a
 	ld a, h
-	ld [wc31e], a
-	ld hl, wc31a
+	ld [wPartyMonMenuIconAnims + 10], a
+	ld hl, wPartyMonMenuIconAnims + 6
 	inc [hl]
 	ld a, $3
 	ld [rSVBK], a
@@ -14093,7 +14093,7 @@
 ; 11a971
 
 Function11a971: ; 11a971
-	ld hl, wc31f
+	ld hl, wPartyMonMenuIconAnims + 11
 	ld a, [hJoyDown]
 	and a
 	jr nz, .asm_11a97f
@@ -14108,34 +14108,34 @@
 	and $7
 	ld [hl], a
 	ld hl, wcd8d
-	ld a, [wc31b]
+	ld a, [wPartyMonMenuIconAnims + 7]
 	ld e, a
-	ld a, [wc31c]
+	ld a, [wPartyMonMenuIconAnims + 8]
 	ld d, a
 	ld a, [de]
 	inc de
 	ld [hli], a
 	ld a, e
-	ld [wc31b], a
+	ld [wPartyMonMenuIconAnims + 7], a
 	ld a, d
-	ld [wc31c], a
+	ld [wPartyMonMenuIconAnims + 8], a
 	ld a, $50
 	ld [hl], a
-	ld a, [wc31d]
+	ld a, [wPartyMonMenuIconAnims + 9]
 	ld l, a
-	ld a, [wc31e]
+	ld a, [wPartyMonMenuIconAnims + 10]
 	ld h, a
 	ld de, wcd8d
 	call PlaceString
 	ld a, c
-	ld [wc31d], a
+	ld [wPartyMonMenuIconAnims + 9], a
 	ld a, b
-	ld [wc31e], a
+	ld [wPartyMonMenuIconAnims + 10], a
 	ld a, [wcd8d]
 	cp $50
 	jr nz, .asm_11a9bf
 	xor a
-	ld [wc31a], a
+	ld [wPartyMonMenuIconAnims + 6], a
 
 .asm_11a9bf
 	ret
@@ -14143,11 +14143,11 @@
 
 Function11a9c0: ; 11a9c0
 	ld a, l
-	ld [wc31b], a
+	ld [wPartyMonMenuIconAnims + 7], a
 	ld a, h
-	ld [wc31c], a
+	ld [wPartyMonMenuIconAnims + 8], a
 	ld a, $1
-	ld [wc31a], a
+	ld [wPartyMonMenuIconAnims + 6], a
 	ret
 ; 11a9ce
 
@@ -14159,7 +14159,7 @@
 	callba Function106464
 	call Functiond90
 	callba Function2b5c
-	call DrawOnMap
+	call UpdateSprites
 	ret
 ; 11a9f0
 
@@ -15200,9 +15200,9 @@
 ; 11b1f7
 
 Function11b1f7: ; 11b1f7
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld a, $32
-	ld bc, $0168
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call ByteFill
 	ret
 ; 11b203
@@ -16576,7 +16576,7 @@
 	bccoord 1, 14
 	pop af
 	ld [rSVBK], a
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	ret
 ; 11c05d
 
@@ -16759,7 +16759,7 @@
 	ld [hl], $57
 	pop bc
 	ld hl, $c608 + 16
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	pop hl
 	ld a, l
 	ld [wcf63], a
@@ -18804,7 +18804,7 @@
 ; 11cfce
 
 Function11cfce: ; 11cfce (47:4fce)
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $14
 	ld a, [de]
 	inc de
@@ -18895,7 +18895,7 @@
 	ret
 
 Function11d035: ; 11d035 (47:5035)
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $14
 	ld a, [de]
 	inc de
@@ -21492,7 +21492,7 @@
 ; 16c145
 
 Function16c145: ; 16c145
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, 20
 	xor a
 	call ByteFill
@@ -21504,7 +21504,7 @@
 ; 16c15c
 
 Function16c15c: ; 16c15c
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, $0014
 	xor a
 	call ByteFill
@@ -22099,12 +22099,12 @@
 	ld a, $0
 	ld [rVBK], a
 	push hl
-	ld de, TileMap
+	decoord 0, 0
 	call Function16cc90
 	pop hl
 	ld a, $1
 	ld [rVBK], a
-	ld de, AttrMap
+	decoord 0, 0, AttrMap
 	call Function16cc90
 	pop af
 	ld [rVBK], a
@@ -22169,8 +22169,8 @@
 
 Function16d42e: ; 16d42e
 	ld hl, Tilemap_16d465
-	ld de, TileMap
-	ld bc, $0168
+	decoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call CopyBytes
 	ret
 ; 16d43b
@@ -22310,7 +22310,7 @@
 Function16d6ae: ; 16d6ae
 	call Function16d42e
 	ld hl, Tilemap_16d5cd
-	ld de, TileMap
+	decoord 0, 0
 	ld bc, $0028
 	call CopyBytes
 	ld hl, Tilemap_16d5f5
@@ -24856,11 +24856,11 @@
 	call Decompress
 	call EnableLCD
 	ld hl, Tilemap_172491
-	ld de, TileMap
+	decoord 0, 0
 	ld bc, $168
 	call CopyBytes
 	ld hl, Attrmap_1727ed
-	ld de, AttrMap
+	decoord 0, 0, AttrMap
 	ld bc, $168
 	call CopyBytes
 	hlcoord 3, 2
@@ -24928,11 +24928,11 @@
 	call Decompress
 	call EnableLCD
 	ld hl, Tilemap_172685
-	ld de, TileMap
+	decoord 0, 0
 	ld bc, $168
 	call CopyBytes
 	ld hl, Attrmap_172955
-	ld de, AttrMap
+	decoord 0, 0, AttrMap
 	ld bc, $168
 	call CopyBytes
 	hlcoord 2, 2
@@ -25010,11 +25010,11 @@
 
 Function172e78: ; 172e78 (5c:6e78)
 	ld a, $7f
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $168
 	call ByteFill
 	ld a, $7
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, $168
 	call ByteFill
 	call DisableLCD
@@ -25024,11 +25024,11 @@
 	call CopyBytes
 	call EnableLCD
 	ld hl, Tilemap_1733af
-	ld de, TileMap
+	decoord 0, 0
 	ld bc, $168
 	call CopyBytes
 	ld hl, Attrmap_173517
-	ld de, AttrMap
+	decoord 0, 0, AttrMap
 	ld bc, $168
 	call CopyBytes
 	ret
--- a/misc/mobile_5f.asm
+++ b/misc/mobile_5f.asm
@@ -14,8 +14,8 @@
 	call Functione5f
 
 	ld hl, HaveWantMap
-	ld de, TileMap
-	ld bc, AttrMap
+	decoord 0, 0
+	bccoord 0, 0, AttrMap
 
 	ld a, SCREEN_HEIGHT
 .y
@@ -746,8 +746,8 @@
 	ld bc, $0040
 	call CopyBytes
 	ld hl, TileAttrmap_17eb8e
-	ld de, TileMap
-	ld bc, AttrMap
+	decoord 0, 0
+	bccoord 0, 0, AttrMap
 	ld a, $12
 .asm_17d4a4
 	push af
@@ -862,7 +862,7 @@
 	ld b, a
 	push hl
 	pop de
-	ld hl, TileMap
+	hlcoord 0, 0
 	add hl, bc
 	call PlaceString
 	push de
@@ -1310,7 +1310,7 @@
 	call Function17e447
 	ld e, l
 	ld d, h
-	ld hl, TileMap
+	hlcoord 0, 0
 	add hl, bc
 	call PlaceString
 	ret
@@ -1335,7 +1335,7 @@
 	call Function17e43d
 	ld c, l
 	ld b, h
-	ld hl, TileMap
+	hlcoord 0, 0
 	add hl, de
 	ld e, l
 	ld d, h
@@ -1505,7 +1505,7 @@
 	ld h, a
 	ld a, [wc70b]
 	ld c, a
-	ld de, TileMap
+	decoord 0, 0
 	add hl, de
 	ld e, l
 	ld d, h
@@ -1543,7 +1543,7 @@
 	ld de, VTiles2
 	callba GetTrainerPic
 	pop hl
-	ld de, TileMap
+	decoord 0, 0
 	add hl, de
 	ld bc, $0707
 	predef FillBox
@@ -2051,12 +2051,12 @@
 	call Function17e41e
 	call Function17e447
 	push hl
-	ld hl, TileMap
+	hlcoord 0, 0
 	add hl, bc
 	push hl
 	pop bc
 	pop hl
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	ret
 ; 17dd30
 
@@ -2073,7 +2073,7 @@
 	push af
 	call Function17e41e
 	pop af
-	ld hl, TileMap
+	hlcoord 0, 0
 	add hl, de
 	call Function17e600
 	ret
@@ -3230,7 +3230,7 @@
 	add hl, bc
 endr
 	push hl
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $0014
 	ld a, [wcd23]
 	call AddNTimes
@@ -3308,7 +3308,7 @@
 	and $1
 	ret z
 	ld a, [wcd29]
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $0014
 	call AddNTimes
 	ld a, [wcd28]
@@ -3345,7 +3345,7 @@
 	sub [hl]
 	inc a
 	ld [wcd4f], a
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $0014
 	ld a, [wcd23]
 	dec a
@@ -3395,7 +3395,7 @@
 
 Function17e571: ; 17e571
 	push af
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $0014
 	ld a, [wcd23]
 	call AddNTimes
@@ -3437,7 +3437,7 @@
 	ld l, a
 	ld a, [wcd44]
 	ld h, a
-	ld bc, TileMap
+	bccoord 0, 0
 	add hl, bc
 	ld bc, $ffec
 	add hl, bc
@@ -3471,7 +3471,7 @@
 	ld l, a
 	ld a, [wcd44]
 	ld h, a
-	ld bc, TileMap
+	bccoord 0, 0
 	add hl, bc
 	call PlaceString
 	ret
@@ -3496,7 +3496,7 @@
 
 Function17e613: ; 17e613
 	push hl
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $0014
 	ld a, [de]
 	inc de
@@ -3633,7 +3633,7 @@
 	push af
 	push hl
 	push hl
-	ld bc, TileMap
+	bccoord 0, 0
 	add hl, bc
 	ld a, [hl]
 	cp $7f
@@ -3648,7 +3648,7 @@
 
 .asm_17e6c7
 	pop hl
-	ld bc, AttrMap
+	bccoord 0, 0, AttrMap
 	add hl, bc
 	ld [hl], a
 	pop hl
@@ -3672,7 +3672,7 @@
 	ld l, a
 	ld a, [wc709]
 	ld h, a
-	ld de, AttrMap
+	decoord 0, 0, AttrMap
 	add hl, de
 	pop af
 	ld b, $7
@@ -4456,7 +4456,7 @@
 	jr .asm_17f42c
 
 .asm_17f439
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld de, SCREEN_WIDTH
 	ld a, c
 .asm_17f440
@@ -4769,12 +4769,12 @@
 	ld a, d
 	ld [MusicFadeIDHi], a
 	ld a, " "
-	ld hl, TileMap
-	ld bc, $0168
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call ByteFill
 	ld a, $6
-	ld hl, AttrMap
-	ld bc, $0168
+	hlcoord 0, 0, AttrMap
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call ByteFill
 	hlcoord 2, 1
 	ld b, $1
--- a/predef/cgb.asm
+++ b/predef/cgb.asm
@@ -6,7 +6,7 @@
 	ret
 ; 8d59
 
-Function8d59: ; 8d59
+Predef_LoadSGBLayoutCGB: ; 8d59
 	ld a, b
 	cp $ff
 	jr nz, .asm_8d61
@@ -13,7 +13,7 @@
 	ld a, [SGBPredef]
 
 .asm_8d61
-	cp $fc
+	cp -4
 	jp z, Function96f3
 	call Function9673
 	ld l, a
@@ -121,8 +121,8 @@
 
 Function8e23: ; 8e23
 	call Function8e85
-	ld hl, AttrMap
-	ld bc, $0168
+	hlcoord 0, 0, AttrMap
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	ld a, $2
 	call ByteFill
 	hlcoord 0, 4, AttrMap
@@ -133,7 +133,7 @@
 	ld bc, $070a
 	ld a, $1
 	call Function9663
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, $040a
 	ld a, $2
 	call Function9663
@@ -233,7 +233,7 @@
 	ld a, $5
 	call FarCopyWRAM
 	call Function9699
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, $0814
 	ld a, $1
 	call Function9663
@@ -717,8 +717,8 @@
 	ld a, $24
 	call Function9625
 	call Function9630
-	ld hl, AttrMap
-	ld bc, $0168
+	hlcoord 0, 0, AttrMap
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	ld a, [PlayerGender]
 	and a
 	ld a, $1
@@ -864,7 +864,7 @@
 	ld a, $5
 	call FarCopyWRAM
 	call Function9699
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, $010a
 	ld a, $1
 	call Function9663
@@ -948,7 +948,7 @@
 Function9499: ; 9499
 	call Function91c8
 	ld de, $0014
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld a, [wcf82]
 .asm_94a5
 	and a
@@ -1093,7 +1093,7 @@
 	ld bc, $0112
 	ld a, $1
 	call Function9663
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, $1102
 	ld a, $1
 	call Function9663
--- a/predef/sgb.asm
+++ b/predef/sgb.asm
@@ -1,7 +1,7 @@
-Function864c: ; 864c
+Predef_LoadSGBLayout: ; 864c
 ; LoadSGBLayout
 	call CheckCGB
-	jp nz, Function8d59
+	jp nz, Predef_LoadSGBLayoutCGB
 
 	ld a, b
 	cp $ff
@@ -14,57 +14,57 @@
 	ld l, a
 	ld h, 0
 	add hl, hl
-	ld de, Table866f
+	ld de, .Jumptable
 	add hl, de
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
-	ld de, Function8a60
+	ld de, .Finish
 	push de
 	jp [hl]
 ; 866f
 
-Table866f: ; 866f
-	dw Function86ad
-	dw Function86b4
-	dw Function875c
-	dw Function8763
-	dw Function87b2
-	dw Function8852
-	dw Function8859
-	dw Function8867
-	dw Function8860
-	dw Function88b1
-	dw Function87ab
-	dw Function88cd
-	dw Function8884
-	dw Function891a
-	dw Function873c
-	dw Function8897
-	dw Function882a
-	dw Function889e
-	dw Function8928
-	dw Function8890
-	dw Function884b
-	dw Function891a
-	dw Function8823
-	dw Function87e9
-	dw Function8921
-	dw Function89a6
-	dw Function89ad
-	dw Function89d9
-	dw Function89e0
-	dw Function8860
-	dw Function8969
+.Jumptable: ; 866f
+	dw .SGB00
+	dw .SGB01
+	dw .SGB02
+	dw .SGB03
+	dw .SGB04
+	dw .SGB05
+	dw .SGB06
+	dw .SGB07
+	dw .SGB08_1d
+	dw .SGB09
+	dw .SGB0a
+	dw .SGB0b
+	dw .SGB0c
+	dw .SGB0d_15
+	dw .SGB0e
+	dw .SGB0f
+	dw .SGB10
+	dw .SGB11
+	dw .SGB12
+	dw .SGB13
+	dw .SGB14
+	dw .SGB0d_15
+	dw .SGB16
+	dw .SGB17
+	dw .SGB18
+	dw .SGB19
+	dw .SGB1a
+	dw .SGB1b
+	dw .SGB1c
+	dw .SGB08_1d
+	dw .SGB1e
 ; 86ad
 
-Function86ad: ; 86ad
+.SGB00: ; 86ad
 	ld hl, PalPacket_9c66
 	ld de, BlkPacket_9aa6
 	ret
 ; 86b4
 
-Function86b4: ; 86b4
+.SGB01: ; 86b4
 	ld hl, BlkPacket_9aa6
 	call Function9809
 	ld hl, PalPacket_9ce6
@@ -132,7 +132,7 @@
 	ret
 ; 873c
 
-Function873c: ; 873c
+.SGB0e: ; 873c
 	ld hl, PalPacket_9bd6
 	ld de, wcda9
 	ld bc, $0010
@@ -150,13 +150,13 @@
 	ret
 ; 875c
 
-Function875c: ; 875c
+.SGB02: ; 875c
 	ld hl, PalPacket_9c76
 	ld de, BlkPacket_9a86
 	ret
 ; 8763
 
-Function8763: ; 8763
+.SGB03: ; 8763
 	ld hl, PalPacket_9ce6
 	ld de, wcda9
 	ld bc, $0010
@@ -193,13 +193,13 @@
 	ret
 ; 87ab
 
-Function87ab: ; 87ab
+.SGB0a: ; 87ab
 	ld hl, PalPacket_9c56
 	ld de, wcda9 + 1
 	ret
 ; 87b2
 
-Function87b2: ; 87b2
+.SGB04: ; 87b2
 	ld hl, PalPacket_9ce6
 	ld de, wcda9
 	ld bc, $0010
@@ -227,7 +227,7 @@
 	ret
 ; 87e9
 
-Function87e9: ; 87e9
+.SGB17: ; 87e9
 	ld hl, PalPacket_9ce6
 	ld de, wcda9
 	ld bc, $0010
@@ -256,13 +256,13 @@
 	ret
 ; 8823
 
-Function8823: ; 8823
-	call Function87b2
+.SGB16: ; 8823
+	call .SGB04
 	ld de, BlkPacket_9af6
 	ret
 ; 882a
 
-Function882a: ; 882a
+.SGB10: ; 882a
 	ld hl, PalPacket_9ce6
 	ld de, wcda9
 	ld bc, $0010
@@ -280,33 +280,33 @@
 	ret
 ; 884b
 
-Function884b: ; 884b
+.SGB14: ; 884b
 	ld hl, PalPacket_9c36
 	ld de, BlkPacket_9a86
 	ret
 ; 8852
 
-Function8852: ; 8852
+.SGB05: ; 8852
 	ld hl, PalPacket_9c96
 	ld de, BlkPacket_9b06
 	ret
 ; 8859
 
-Function8859: ; 8859
+.SGB06: ; 8859
 	ld hl, PalPacket_9ca6
 	ld de, BlkPacket_9b76
 	ret
 ; 8860
 
-Function8860: ; 8860
+.SGB08_1d: ; 8860
 	ld hl, PalPacket_9cb6
 	ld de, BlkPacket_9a86
 	ret
 ; 8867
 
-Function8867: ; 8867
+.SGB07: ; 8867
 	ld b, 0
-	ld hl, Unknown_8878
+	ld hl, .BlkPacketTable_SGB07
 rept 4
 	add hl, bc
 endr
@@ -320,13 +320,13 @@
 	ret
 ; 8878
 
-Unknown_8878: ; 8878
+.BlkPacketTable_SGB07: ; 8878
 	dw BlkPacket_9a86, PalPacket_9be6
 	dw BlkPacket_9a96, PalPacket_9c06
 	dw BlkPacket_9a86, PalPacket_9c16
 ; 8884
 
-Function8884: ; 8884
+.SGB0c: ; 8884
 	ld hl, PalPacket_9b96
 	ld de, BlkPacket_9b56
 	ld a, $8
@@ -334,19 +334,19 @@
 	ret
 ; 8890
 
-Function8890: ; 8890
+.SGB13: ; 8890
 	ld hl, PalPacket_9ba6
 	ld de, BlkPacket_9b86
 	ret
 ; 8897
 
-Function8897: ; 8897
+.SGB0f: ; 8897
 	ld hl, PalPacket_9c46
 	ld de, BlkPacket_9a86
 	ret
 ; 889e
 
-Function889e: ; 889e
+.SGB11: ; 889e
 	ld hl, BlkPacket_9a86
 	ld de, PlayerLightScreenCount
 	ld bc, $0010
@@ -356,12 +356,12 @@
 	ret
 ; 88b1
 
-Function88b1: ; 88b1
+.SGB09: ; 88b1
 	ld hl, PalPacket_9bd6
 	ld de, wcda9
 	ld bc, $0010
 	call CopyBytes
-	call Function8a0c
+	call .GetPermission
 	ld hl, wcda9 + 1
 	ld [hld], a
 	ld de, BlkPacket_9a86
@@ -370,7 +370,7 @@
 	ret
 ; 88cd
 
-Function88cd: ; 88cd
+.SGB0b: ; 88cd
 	push bc
 	ld hl, PalPacket_9ce6
 	ld de, wcda9
@@ -414,19 +414,19 @@
 	ret
 ; 891a
 
-Function891a: ; 891a
+.SGB0d_15: ; 891a
 	ld hl, PalPacket_9cb6
 	ld de, BlkPacket_9a86
 	ret
 ; 8921
 
-Function8921: ; 8921
+.SGB18: ; 8921
 	ld hl, PalPacket_9bc6
 	ld de, BlkPacket_9a86
 	ret
 ; 8928
 
-Function8928: ; 8928
+.SGB12: ; 8928
 	ld hl, PalPacket_9bd6
 	ld de, wcda9
 	ld bc, $0010
@@ -435,7 +435,7 @@
 	ld de, wcda9 + $10
 	ld bc, $0010
 	call CopyBytes
-	call Function8a0c
+	call .GetPermission
 	ld hl, wcda9 + 1
 	ld [hl], a
 	ld hl, wcda9 + 3
@@ -456,7 +456,7 @@
 	ret
 ; 8969
 
-Function8969: ; 8969
+.SGB1e: ; 8969
 	ld hl, PalPacket_9ce6
 	ld de, wcda9
 	ld bc, $0010
@@ -489,13 +489,13 @@
 	ret
 ; 89a6
 
-Function89a6: ; 89a6
+.SGB19: ; 89a6
 	ld hl, PalPacket_9cd6
 	ld de, BlkPacket_9a86
 	ret
 ; 89ad
 
-Function89ad: ; 89ad
+.SGB1a: ; 89ad
 	ld hl, PalPacket_9ce6
 	ld de, wcda9
 	ld bc, $0010
@@ -516,13 +516,13 @@
 	ret
 ; 89d9
 
-Function89d9: ; 89d9
+.SGB1b: ; 89d9
 	ld hl, PalPacket_9cc6
 	ld de, BlkPacket_9a86
 	ret
 ; 89e0
 
-Function89e0: ; 89e0
+.SGB1c: ; 89e0
 	ld hl, PalPacket_9ce6
 	ld de, wcda9
 	ld bc, $0010
@@ -543,7 +543,7 @@
 	ret
 ; 8a0c
 
-Function8a0c: ; 8a0c
+.GetPermission: ; 8a0c
 	ld a, [TimeOfDayPal]
 	cp $2
 	jr c, .asm_8a16
@@ -565,7 +565,7 @@
 	ld a, [MapGroup]
 	ld e, a
 	ld d, 0
-	ld hl, Unknown_8a45
+	ld hl, .Unknown_8a45
 	add hl, de
 	ld a, [hl]
 	ret
@@ -587,7 +587,7 @@
 	ret
 ; 8a45
 
-Unknown_8a45: ; 8a45
+.Unknown_8a45: ; 8a45
 	db $00
 	db $12
 	db $14
@@ -617,7 +617,7 @@
 	db $0d
 ; 8a60
 
-Function8a60: ; 8a60
+.Finish: ; 8a60
 	push de
 	call Function9809
 	pop hl
--- a/text/phone/bill.asm
+++ b/text/phone/bill.asm
@@ -44,7 +44,7 @@
 
 	para "<PLAY_G>, your BOX"
 	line "has room for @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ""
 	cont "more #MON."
 
@@ -59,7 +59,7 @@
 	para "<PLAY_G>, your BOX"
 	line "has room for only"
 	cont "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " more #MON."
 
 	para "Maybe you should"
--- a/text/phone/mom.asm
+++ b/text/phone/mom.asm
@@ -8,12 +8,12 @@
 UnknownText_0x1b4021: ; 0x1b4021
 	text "Oh, so you're in"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Isn't that where"
 	line "@"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text ""
 	para "is? Did you go"
 	line "take a look?"
@@ -22,7 +22,7 @@
 MomPhoneGenericAreaText: ; 0x1b406b
 	text "Really, you're in"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "?"
 
 	para "I've never gone"
@@ -33,7 +33,7 @@
 MomPhoneNewBarkText: ; 0x1b40b1
 	text "What? You're in"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "?"
 
 	para "Come see your MOM"
@@ -43,7 +43,7 @@
 MomPhoneCherrygroveText: ; 0x1b40e4
 	text "You're visiting"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "?"
 
 	para "How about coming"
@@ -53,7 +53,7 @@
 UnknownText_0x1b411c: ; 0x1b411c
 	text "Wow, you're in"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "?"
 
 	para "Good luck on your"
@@ -74,7 +74,7 @@
 UnknownText_0x1b41a7: ; 0x1b41a7
 	text "By the way, you've"
 	line "saved up ¥@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Do you want to"
@@ -97,7 +97,7 @@
 UnknownText_0x1b4249: ; 0x1b4249
 	text "By the way, you've"
 	line "saved up ¥@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Want to start"
--- a/text/phone/trainers1.asm
+++ b/text/phone/trainers1.asm
@@ -1,7 +1,7 @@
 UnknownText_0x1b4dc5: ; 0x1b4dc5
 	text "Hello. This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Good morning,"
@@ -11,7 +11,7 @@
 UnknownText_0x1b4ded: ; 0x1b4ded
 	text "Hello. This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "How's it going,"
@@ -21,7 +21,7 @@
 UnknownText_0x1b4e16: ; 0x1b4e16
 	text "Hello. This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Good evening,"
@@ -33,7 +33,7 @@
 	line "morning!"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "How are you doing?"
 	done
@@ -42,7 +42,7 @@
 	text "<PLAY_G>, howdy!"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "Isn't it nice out?"
 	done
@@ -52,7 +52,7 @@
 	line "evening!"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "Got a minute?"
 	done
@@ -62,7 +62,7 @@
 	line "#MON doing?"
 
 	para "My @"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text " is"
 	line "so curious, it's a"
 
@@ -73,7 +73,7 @@
 UnknownText_0x1b4f21: ; 0x1b4f21
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Oh! Good morning,"
@@ -83,7 +83,7 @@
 UnknownText_0x1b4f4d: ; 0x1b4f4d
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Oh! Good day,"
@@ -93,7 +93,7 @@
 UnknownText_0x1b4f75: ; 0x1b4f75
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Oh! Good evening,"
@@ -105,7 +105,7 @@
 	line "Good morning."
 
 	para "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "Were you asleep?"
 	done
@@ -113,7 +113,7 @@
 UnknownText_0x1b4fda: ; 0x1b4fda
 	text "Hi, <PLAYER>."
 	line "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "How are you doing?"
@@ -122,7 +122,7 @@
 UnknownText_0x1b5004: ; 0x1b5004
 	text "Hi, <PLAYER>."
 	line "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Were you awake?"
@@ -133,7 +133,7 @@
 	line "#MON happy?"
 
 	para "My @"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text " is"
 	line "healthy. It eats a"
 	cont "lot every day."
@@ -142,7 +142,7 @@
 UnknownText_0x1b5073: ; 0x1b5073
 	text "Yeah, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Huh? What's up,"
@@ -152,7 +152,7 @@
 UnknownText_0x1b509b: ; 0x1b509b
 	text "Yeah, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Huh? What's up"
@@ -162,7 +162,7 @@
 UnknownText_0x1b50c2: ; 0x1b50c2
 	text "Yeah, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Huh? What's up"
@@ -174,7 +174,7 @@
 	line "You awake?"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	line "How's it going?"
 	done
@@ -184,7 +184,7 @@
 	line "free right now?"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	line "How's it going?"
 	done
@@ -194,7 +194,7 @@
 	line "Were you asleep?"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	line "How's it going?"
 	done
@@ -207,7 +207,7 @@
 	line "bit too energetic."
 
 	para "@"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text ","
 	line "especially."
 
@@ -221,7 +221,7 @@
 
 UnknownText_0x1b522b: ; 0x1b522b
 	text "My @"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text "'s"
 	line "looking tougher"
 	cont "than ever."
@@ -233,7 +233,7 @@
 UnknownText_0x1b5270: ; 0x1b5270
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " speaking…"
 
 	para "Hi, <PLAY_G>!"
@@ -243,7 +243,7 @@
 UnknownText_0x1b52a5: ; 0x1b52a5
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " speaking…"
 
 	para "Hi, <PLAY_G>!"
@@ -252,7 +252,7 @@
 UnknownText_0x1b52cc: ; 0x1b52cc
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " speaking…"
 
 	para "Hi, <PLAY_G>!"
@@ -264,7 +264,7 @@
 	line "morning!"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "How are you doing?"
 	done
@@ -273,7 +273,7 @@
 	text "Hi, <PLAY_G>!"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "How are you doing?"
 	done
@@ -283,7 +283,7 @@
 	line "evening!"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "How are you doing?"
 	done
@@ -293,7 +293,7 @@
 	line "#MON doing?"
 
 	para "My @"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text "'s"
 	line "doing as great as"
 	cont "ever."
@@ -306,7 +306,7 @@
 UnknownText_0x1b53f7: ; 0x1b53f7
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	para "Oh, <PLAY_G>."
 	line "Good morning."
@@ -316,7 +316,7 @@
 UnknownText_0x1b5424: ; 0x1b5424
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Oh. Hi, <PLAY_G>."
@@ -325,7 +325,7 @@
 UnknownText_0x1b5446: ; 0x1b5446
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Oh, <PLAY_G>."
@@ -337,7 +337,7 @@
 	line "<PLAY_G>!"
 
 	para "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "Were you sleeping?"
 	done
@@ -345,7 +345,7 @@
 UnknownText_0x1b54a6: ; 0x1b54a6
 	text "<PLAY_G>, hi!"
 	line "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Do you have some"
@@ -357,7 +357,7 @@
 	line "Good evening."
 
 	para "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "I hope you were"
@@ -384,7 +384,7 @@
 UnknownText_0x1b55ae: ; 0x1b55ae
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Oh, <PLAY_G>?"
@@ -394,7 +394,7 @@
 UnknownText_0x1b55da: ; 0x1b55da
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Oh, <PLAY_G>? Hi!"
@@ -403,7 +403,7 @@
 UnknownText_0x1b55fc: ; 0x1b55fc
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Oh, <PLAY_G>?"
@@ -415,7 +415,7 @@
 
 	para "Tweet! Yeah, it's"
 	line "me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	done
 
@@ -424,7 +424,7 @@
 
 	para "Tweet! Yeah, it's"
 	line "me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	done
 
@@ -433,7 +433,7 @@
 
 	para "Tweet! Yeah, it's"
 	line "me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	done
 
@@ -442,7 +442,7 @@
 	line "still cooking?"
 
 	para "My @"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text " has"
 	line "too much energy."
 
@@ -454,7 +454,7 @@
 UnknownText_0x1b5702: ; 0x1b5702
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Oh. Hi, <PLAYER>."
@@ -464,7 +464,7 @@
 UnknownText_0x1b572e: ; 0x1b572e
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Oh, hi, <PLAYER>,"
@@ -474,7 +474,7 @@
 UnknownText_0x1b575a: ; 0x1b575a
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Oh, hi, <PLAYER>,"
@@ -486,7 +486,7 @@
 	line "up and answer!"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
@@ -495,7 +495,7 @@
 	line "up and answer!"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
@@ -504,7 +504,7 @@
 	line "up and answer!"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
@@ -526,7 +526,7 @@
 
 UnknownText_0x1b589a: ; 0x1b589a
 	text "Hi, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here!"
 
 	para "Oh, <PLAYER>? You"
@@ -535,7 +535,7 @@
 
 UnknownText_0x1b58c2: ; 0x1b58c2
 	text "Hi, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here!"
 
 	para "Oh, <PLAYER>? You"
@@ -544,7 +544,7 @@
 
 UnknownText_0x1b58ea: ; 0x1b58ea
 	text "Hi, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here!"
 
 	para "Oh, <PLAYER>? You"
@@ -556,7 +556,7 @@
 	line "How're you doing?"
 
 	para "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ","
 	line "got a minute?"
 	done
@@ -566,7 +566,7 @@
 	line "it going?"
 
 	para "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "Got a minute?"
 	done
@@ -576,7 +576,7 @@
 	line "How're you doing?"
 
 	para "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ","
 	line "got a minute?"
 	done
@@ -586,7 +586,7 @@
 	line "#MON doing?"
 
 	para "My @"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text "'s"
 	line "raring to go, just"
 	cont "like always."
@@ -601,7 +601,7 @@
 UnknownText_0x1b5a3b: ; 0x1b5a3b
 	text "Hello? This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " speaking."
 
 	para "Oh. Hi, <PLAY_G>!"
@@ -611,7 +611,7 @@
 UnknownText_0x1b5a74: ; 0x1b5a74
 	text "Hello? This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " speaking."
 
 	para "Oh, hi, <PLAY_G>!"
@@ -620,7 +620,7 @@
 UnknownText_0x1b5a9f: ; 0x1b5a9f
 	text "Hello? This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " speaking."
 
 	para "Oh, hi, <PLAY_G>!"
@@ -632,7 +632,7 @@
 	line "morning!"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "Isn't it nice out?"
 	done
@@ -641,7 +641,7 @@
 	text "<PLAY_G>, howdy!"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "Isn't it nice out?"
 	done
@@ -651,7 +651,7 @@
 	line "<PLAY_G>!"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "Were you awake?"
 	done
@@ -668,7 +668,7 @@
 
 	para "Of all my #MON,"
 	line "@"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text " is the"
 	cont "hardest to handle."
 
@@ -709,7 +709,7 @@
 UnknownText_0x1b5d09: ; 0x1b5d09
 	text "Hiya, it's Uncle"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	done
 
@@ -716,7 +716,7 @@
 UnknownText_0x1b5d21: ; 0x1b5d21
 	text "Hiya, it's Uncle"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	done
 
@@ -723,7 +723,7 @@
 UnknownText_0x1b5d39: ; 0x1b5d39
 	text "Hiya, it's Uncle"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	done
 
@@ -738,7 +738,7 @@
 
 UnknownText_0x1b5d9f: ; 0x1b5d9f
 	text "Hello, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ""
 	line "speaking."
 
@@ -748,7 +748,7 @@
 
 UnknownText_0x1b5dcc: ; 0x1b5dcc
 	text "Hello, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ""
 	line "speaking."
 
@@ -758,7 +758,7 @@
 
 UnknownText_0x1b5df8: ; 0x1b5df8
 	text "Hello, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ""
 	line "speaking."
 
@@ -771,7 +771,7 @@
 	line "<PLAY_G>."
 
 	para "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "Were you sleeping?"
 	done
@@ -779,7 +779,7 @@
 UnknownText_0x1b5e59: ; 0x1b5e59
 	text "Hi, <PLAY_G>."
 	line "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "How are things"
@@ -791,7 +791,7 @@
 	line "<PLAY_G>."
 
 	para "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "Are you awake?"
 	done
@@ -805,7 +805,7 @@
 
 	para "Me, I take my"
 	line "@"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text " to the"
 
 	para "#MON CENTER in"
@@ -820,7 +820,7 @@
 
 UnknownText_0x1b5f7a: ; 0x1b5f7a
 	text "Yeah, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " the"
 	line "HIKER here."
 
@@ -829,7 +829,7 @@
 
 UnknownText_0x1b5f9e: ; 0x1b5f9e
 	text "Yeah, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " the"
 	line "HIKER here."
 
@@ -839,7 +839,7 @@
 
 UnknownText_0x1b5fc9: ; 0x1b5fc9
 	text "Yeah, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " the"
 	line "HIKER here."
 
@@ -851,7 +851,7 @@
 	text "Yo, <PLAYER>?"
 
 	para "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ""
 	line "the HIKER!"
 	done
@@ -861,7 +861,7 @@
 	line "<PLAYER>?"
 
 	para "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ""
 	line "the HIKER!"
 	done
@@ -871,7 +871,7 @@
 	line "awake?"
 
 	para "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ""
 	line "the HIKER!"
 	done
@@ -881,7 +881,7 @@
 	line "as feisty as ever?"
 
 	para "My @"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text " and"
 	line "me--we have energy"
 
@@ -895,7 +895,7 @@
 UnknownText_0x1b60f5: ; 0x1b60f5
 	text "Yes? This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " speaking."
 
 	para "Hey, <PLAY_G>!"
@@ -904,7 +904,7 @@
 UnknownText_0x1b611b: ; 0x1b611b
 	text "Yes? This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " speaking."
 
 	para "This must be"
@@ -914,7 +914,7 @@
 UnknownText_0x1b6149: ; 0x1b6149
 	text "Yes? This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " speaking."
 
 	para "Ah, <PLAY_G>!"
@@ -923,7 +923,7 @@
 UnknownText_0x1b616e: ; 0x1b616e
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "<PLAY_G>, right?"
@@ -932,7 +932,7 @@
 UnknownText_0x1b618f: ; 0x1b618f
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "<PLAY_G>, what are"
@@ -942,7 +942,7 @@
 UnknownText_0x1b61bd: ; 0x1b61bd
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "<PLAY_G>, sorry to"
@@ -966,7 +966,7 @@
 UnknownText_0x1b626a: ; 0x1b626a
 	text "Hello? This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Oh, <PLAY_G>!"
@@ -976,7 +976,7 @@
 UnknownText_0x1b6296: ; 0x1b6296
 	text "Hello? This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Oh, <PLAY_G>!"
@@ -986,7 +986,7 @@
 UnknownText_0x1b62c5: ; 0x1b62c5
 	text "Hello? This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Oh, <PLAY_G>!"
@@ -997,7 +997,7 @@
 	text "<PLAY_G>?"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "Good morning!"
 	done
@@ -1006,7 +1006,7 @@
 	text "<PLAY_G>?"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ". Is"
 	line "this a bad time?"
 	done
@@ -1015,7 +1015,7 @@
 	text "<PLAY_G>?"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "Got time to chat?"
 	done
@@ -1026,13 +1026,13 @@
 
 	para "I train every day"
 	line "with @"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text "."
 	done
 
 UnknownText_0x1b638c: ; 0x1b638c
 	text "Hello? @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ""
 	line "here…"
 
@@ -1041,7 +1041,7 @@
 
 UnknownText_0x1b63a8: ; 0x1b63a8
 	text "Hello? @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ""
 	line "here…"
 
@@ -1050,7 +1050,7 @@
 
 UnknownText_0x1b63c4: ; 0x1b63c4
 	text "Hello? @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ""
 	line "here…"
 
@@ -1063,7 +1063,7 @@
 
 	para "It's your pal,"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
@@ -1073,7 +1073,7 @@
 
 	para "It's your buddy"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
@@ -1083,7 +1083,7 @@
 
 	para "It's your sidekick"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
@@ -1090,7 +1090,7 @@
 UnknownText_0x1b6454: ; 0x1b6454
 	text "Yeah, hello."
 	line "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "…Huh, <PLAY_G>? Yo!"
@@ -1099,7 +1099,7 @@
 UnknownText_0x1b647e: ; 0x1b647e
 	text "Yeah, hello, you"
 	line "got @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "…Huh, <PLAY_G>? Yo!"
@@ -1108,7 +1108,7 @@
 UnknownText_0x1b64a8: ; 0x1b64a8
 	text "Yeah, hello, you"
 	line "got @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "…Huh, <PLAY_G>? Yo!"
@@ -1117,7 +1117,7 @@
 UnknownText_0x1b64d2: ; 0x1b64d2
 	text "Yeah, hello?"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " calling."
 
 	para "What are you up"
@@ -1127,7 +1127,7 @@
 UnknownText_0x1b6506: ; 0x1b6506
 	text "Yeah, hello?"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " calling."
 
 	para "Where are you now,"
@@ -1137,7 +1137,7 @@
 UnknownText_0x1b6539: ; 0x1b6539
 	text "Yeah, hello?"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " calling."
 
 	para "Are you awake now,"
@@ -1152,7 +1152,7 @@
 
 UnknownText_0x1b659d: ; 0x1b659d
 	text "Yup, it's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 
 	para "Is this <PLAY_G>?"
@@ -1161,7 +1161,7 @@
 
 UnknownText_0x1b65c7: ; 0x1b65c7
 	text "Yup, it's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 
 	para "Is that <PLAY_G>?"
@@ -1169,7 +1169,7 @@
 
 UnknownText_0x1b65e3: ; 0x1b65e3
 	text "Yup, it's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 
 	para "Is that <PLAY_G>?"
@@ -1179,7 +1179,7 @@
 UnknownText_0x1b660d: ; 0x1b660d
 	text "Hello! It's me,"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
@@ -1186,7 +1186,7 @@
 UnknownText_0x1b6624: ; 0x1b6624
 	text "Hello! It's me,"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
@@ -1193,7 +1193,7 @@
 UnknownText_0x1b663b: ; 0x1b663b
 	text "Hello! It's me,"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
@@ -1212,7 +1212,7 @@
 
 UnknownText_0x1b66c8: ; 0x1b66c8
 	text "Hi, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " on the"
 	line "line."
 
@@ -1221,7 +1221,7 @@
 
 UnknownText_0x1b66ec: ; 0x1b66ec
 	text "Hi, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " on the"
 	line "line."
 
@@ -1231,7 +1231,7 @@
 
 UnknownText_0x1b6713: ; 0x1b6713
 	text "Hi, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " on the"
 	line "line."
 
@@ -1244,7 +1244,7 @@
 
 	para "It's me!"
 	line "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
@@ -1253,7 +1253,7 @@
 
 	para "It's me!"
 	line "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
@@ -1262,13 +1262,13 @@
 
 	para "It's me!"
 	line "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
 UnknownText_0x1b6795: ; 0x1b6795
 	text "My @"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text " is"
 	line "so full of energy,"
 
@@ -1282,7 +1282,7 @@
 UnknownText_0x1b67e2: ; 0x1b67e2
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Hi, <PLAY_G>!"
@@ -1292,7 +1292,7 @@
 UnknownText_0x1b680e: ; 0x1b680e
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Hi, <PLAY_G>, good"
@@ -1302,7 +1302,7 @@
 UnknownText_0x1b6836: ; 0x1b6836
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Hi, <PLAY_G>, good"
@@ -1314,7 +1314,7 @@
 	line "morning!"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "How are you?"
 	done
@@ -1324,7 +1324,7 @@
 	line "day!"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "How are you?"
 	done
@@ -1334,7 +1334,7 @@
 	line "evening!"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "How are you?"
 	done
@@ -1384,7 +1384,7 @@
 	line "morning!"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ", how"
 	line "pika are you?"
 	done
@@ -1394,7 +1394,7 @@
 	line "pika day!"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ", how"
 	line "pika are you?"
 	done
@@ -1404,7 +1404,7 @@
 	line "evening!"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ". Were"
 	line "you pika awake?"
 	done
@@ -1414,7 +1414,7 @@
 	line "this! My lovable"
 
 	para "@"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text " looked"
 	line "at me and grinned!"
 
@@ -1426,7 +1426,7 @@
 UnknownText_0x1b6b39: ; 0x1b6b39
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Oh, Good morning,"
@@ -1436,7 +1436,7 @@
 UnknownText_0x1b6b65: ; 0x1b6b65
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "That voice…"
@@ -1446,7 +1446,7 @@
 UnknownText_0x1b6b92: ; 0x1b6b92
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "This must be"
@@ -1456,7 +1456,7 @@
 UnknownText_0x1b6bb9: ; 0x1b6bb9
 	text "Hello!"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here…"
 
 	para "Good morning! The"
@@ -1466,7 +1466,7 @@
 UnknownText_0x1b6bef: ; 0x1b6bef
 	text "Hello!"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here…"
 
 	para "What a perfect day"
@@ -1476,7 +1476,7 @@
 UnknownText_0x1b6c23: ; 0x1b6c23
 	text "Hello!"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here…"
 
 	para "It's a great night"
@@ -1493,7 +1493,7 @@
 
 UnknownText_0x1b6c96: ; 0x1b6c96
 	text "Yes? @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here…"
 
 	para "Ah, <PLAYER>. What"
@@ -1502,7 +1502,7 @@
 
 UnknownText_0x1b6cc6: ; 0x1b6cc6
 	text "Yes? @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here…"
 
 	para "Ah, <PLAYER>. What"
@@ -1511,7 +1511,7 @@
 
 UnknownText_0x1b6cf6: ; 0x1b6cf6
 	text "Yes? @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here…"
 
 	para "Ah, <PLAYER>. What"
@@ -1524,7 +1524,7 @@
 
 	para "Hey! It's me,"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	done
 
@@ -1534,7 +1534,7 @@
 
 	para "Hey, it's me,"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	done
 
@@ -1544,7 +1544,7 @@
 
 	para "Hey, it's me,"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	done
 
@@ -1562,7 +1562,7 @@
 	line "I'm impressed."
 
 	para "Heh, my @"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text ""
 	line "is so tough, it"
 
@@ -1574,7 +1574,7 @@
 UnknownText_0x1b6e7c: ; 0x1b6e7c
 	text "Yes? This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Oh, <PLAY_G>."
@@ -1584,7 +1584,7 @@
 UnknownText_0x1b6ea6: ; 0x1b6ea6
 	text "Yes? This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Oh, <PLAY_G>."
@@ -1594,7 +1594,7 @@
 UnknownText_0x1b6ec9: ; 0x1b6ec9
 	text "Yes? This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Oh, <PLAY_G>, good"
@@ -1606,7 +1606,7 @@
 
 	para "Good morning. This"
 	line "is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	done
 
@@ -1614,7 +1614,7 @@
 	text "Is this <PLAY_G>?"
 
 	para "Hi, it's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	done
 
@@ -1623,7 +1623,7 @@
 
 	para "Good evening. This"
 	line "is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	done
 
@@ -1639,7 +1639,7 @@
 	line "too hard."
 
 	para "My @"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text " is"
 	line "cute and lively"
 
@@ -1653,7 +1653,7 @@
 UnknownText_0x1b7019: ; 0x1b7019
 	text "Yes, hello?"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here!"
 
 	para "Morning, <PLAY_G>!"
@@ -1665,7 +1665,7 @@
 UnknownText_0x1b7057: ; 0x1b7057
 	text "Yes, hello?"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here!"
 
 	para "Hi, <PLAY_G>!"
@@ -1677,7 +1677,7 @@
 UnknownText_0x1b7092: ; 0x1b7092
 	text "Yes, hello?"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here!"
 
 	para "Evening, <PLAY_G>!"
@@ -1692,7 +1692,7 @@
 	line "<PLAY_G>!"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	line "Good morning!"
 	done
@@ -1701,7 +1701,7 @@
 	text "Hi, <PLAY_G>!"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	line "Remember me?"
 	done
@@ -1711,7 +1711,7 @@
 	line "<PLAY_G>!"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	line "Are you free now?"
 	done
@@ -1721,7 +1721,7 @@
 	line "#MON fine?"
 
 	para "My @"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text ""
 	line "looks like it will"
 
@@ -1735,7 +1735,7 @@
 UnknownText_0x1b71d5: ; 0x1b71d5
 	text "Hello, you have"
 	line "reached @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Ah, <PLAY_G>."
@@ -1744,7 +1744,7 @@
 UnknownText_0x1b71fc: ; 0x1b71fc
 	text "Hello, you have"
 	line "reached @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Ah, <PLAY_G>, is"
@@ -1754,7 +1754,7 @@
 UnknownText_0x1b722a: ; 0x1b722a
 	text "Hello, you have"
 	line "reached @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Ah, if it isn't"
@@ -1763,7 +1763,7 @@
 
 UnknownText_0x1b725c: ; 0x1b725c
 	text "Ah, it's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Have you got a"
@@ -1772,7 +1772,7 @@
 
 UnknownText_0x1b7283: ; 0x1b7283
 	text "Ah, it's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Can you talk now?"
@@ -1780,7 +1780,7 @@
 
 UnknownText_0x1b72a5: ; 0x1b72a5
 	text "Ah, it's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Sorry for calling"
@@ -1792,13 +1792,13 @@
 	line "grown any?"
 
 	para "My @"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text " has"
 	line "grown quite a bit."
 	done
 
 UnknownText_0x1b730b: ; 0x1b730b
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here…"
 
 	para "<PLAYER>! Beautiful"
@@ -1806,7 +1806,7 @@
 	done
 
 UnknownText_0x1b7331: ; 0x1b7331
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here…"
 
 	para "<PLAYER>! Beautiful"
@@ -1814,7 +1814,7 @@
 	done
 
 UnknownText_0x1b7357: ; 0x1b7357
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here…"
 
 	para "<PLAYER>! Beautiful"
@@ -1824,7 +1824,7 @@
 UnknownText_0x1b737f: ; 0x1b737f
 	text "Hey, <PLAYER>!"
 	line "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
@@ -1831,7 +1831,7 @@
 UnknownText_0x1b7397: ; 0x1b7397
 	text "Hey, <PLAYER>!"
 	line "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
@@ -1838,7 +1838,7 @@
 UnknownText_0x1b73af: ; 0x1b73af
 	text "Hey, <PLAYER>!"
 	line "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
@@ -1845,7 +1845,7 @@
 UnknownText_0x1b73c7: ; 0x1b73c7
 	text "Yup, yup!"
 	line "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 
 	para "Hah, and here's"
@@ -1855,7 +1855,7 @@
 UnknownText_0x1b73ef: ; 0x1b73ef
 	text "Yup, yup!"
 	line "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 
 	para "Hah, and here's"
@@ -1865,7 +1865,7 @@
 UnknownText_0x1b7417: ; 0x1b7417
 	text "Yup, yup!"
 	line "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 
 	para "Hah, and here's"
@@ -1875,7 +1875,7 @@
 UnknownText_0x1b743f: ; 0x1b743f
 	text "<PLAY_G>, it's"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 
 	para "Have you had a"
@@ -1885,7 +1885,7 @@
 UnknownText_0x1b746f: ; 0x1b746f
 	text "<PLAY_G>, it's"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 
 	para "Have you had a"
@@ -1895,7 +1895,7 @@
 UnknownText_0x1b749b: ; 0x1b749b
 	text "<PLAY_G>, it's"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 
 	para "Have you had a"
@@ -1907,7 +1907,7 @@
 	line "looking good?"
 
 	para "My @"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text " and"
 	line "me--we're looking"
 
@@ -1918,7 +1918,7 @@
 UnknownText_0x1b751a: ; 0x1b751a
 	text "Yes, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Oh. Hi, <PLAY_G>!"
@@ -1928,7 +1928,7 @@
 UnknownText_0x1b7548: ; 0x1b7548
 	text "Yes, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Oh, hi, <PLAY_G>!"
@@ -1938,7 +1938,7 @@
 UnknownText_0x1b756f: ; 0x1b756f
 	text "Yes, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Oh, hi, <PLAY_G>!"
@@ -1948,7 +1948,7 @@
 	text "<PLAY_G>!"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	line "Good morning!"
 	done
@@ -1957,7 +1957,7 @@
 	text "<PLAY_G>!"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	line "Working hard?"
 	done
@@ -1966,7 +1966,7 @@
 	text "<PLAY_G>!"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	line "Were you up?"
 	done
@@ -1976,10 +1976,10 @@
 	line "your #MON?"
 
 	para "Hey, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "'s"
 	line "@"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text " is"
 	cont "looking good!"
 	done
--- a/trainers/attributes.asm
+++ b/trainers/attributes.asm
@@ -1,20 +1,22 @@
-NO_AI          EQU 0
-AI_BASIC       EQU 1 << 0
-AI_SETUP       EQU 1 << 1
-AI_TYPES       EQU 1 << 2
-AI_OFFENSIVE   EQU 1 << 3
-AI_SMART       EQU 1 << 4
-AI_OPPORTUNIST EQU 1 << 5
-AI_AGGRESSIVE  EQU 1 << 6
-AI_CAUTIOUS    EQU 1 << 7
-AI_STATUS      EQU 1 << 8
-AI_RISKY       EQU 1 << 9
-AI_10          EQU 1 << 10
-AI_11          EQU 1 << 11
-AI_12          EQU 1 << 12
-AI_13          EQU 1 << 13
-AI_14          EQU 1 << 14
-AI_15          EQU 1 << 15
+	const_def
+	const       NO_AI
+const_value = 0
+	shift_const AI_BASIC
+	shift_const AI_SETUP
+	shift_const AI_TYPES
+	shift_const AI_OFFENSIVE
+	shift_const AI_SMART
+	shift_const AI_OPPORTUNIST
+	shift_const AI_AGGRESSIVE
+	shift_const AI_CAUTIOUS
+	shift_const AI_STATUS
+	shift_const AI_RISKY
+	shift_const AI_10
+	shift_const AI_11
+	shift_const AI_12
+	shift_const AI_13
+	shift_const AI_14
+	shift_const AI_15
 
 
 TrainerClassAttributes: ; 3959c
--- a/wram.asm
+++ b/wram.asm
@@ -356,24 +356,11 @@
 wc311:: ds 1
 wc312:: ds 1
 wc313:: ds 1
-wc314:: ds 1
-wc315:: ds 1
-wc316:: ds 1
-wc317:: ds 1
-wc318:: ds 1
-wc319:: ds 1
-wc31a:: ds 1
-wc31b:: ds 1
-wc31c:: ds 1
-wc31d:: ds 1
-wc31e:: ds 1
-wc31f:: ds 1
-wc320:: ds 4
-wc324:: ds 34
-wc346:: ds 94
-wc3a4:: ds 8
-wc3ac:: ds 8
-wc3b4:: ds 1
+wPartyMonMenuIconAnims:: ds 96 ; c314
+wc374:: ds 48 ; c374
+wc3a4:: ds 8 ; c3b4
+wc3ac:: ds 8 ; c3bc
+wc3b4:: ds 1 ; c3
 wc3b5:: ds 1
 
 CurIcon:: ; c3b6
@@ -1719,7 +1706,7 @@
 ; 2: trainer battle
 	ds 1
 
-wd22e:: ds 1
+TempWildMonSpecies:: ds 1
 OtherTrainerClass:: ; d22f
 ; class (Youngster, Bug Catcher, etc.) of opposing trainer
 ; 0 if opponent is a wild Pokémon, not a trainer
@@ -2288,7 +2275,7 @@
 wCurrentMapTriggerPointer:: ; dbf7
 	ds 2
 
-wdbf9:: ds 2
+wCurrentCaller:: ds 2
 wdbfb:: ds 1
 wdbfc:: ds 1
 wdbfd:: ds 1
@@ -2361,10 +2348,10 @@
 wdc42:: ds 8
 wdc4a:: ds 1
 wdc4b:: ds 1
-wdc4c:: ds 4
-wdc50:: ds 4
-wdc54:: ds 4
-wdc58:: ds 2
+wDailyRematchFlags:: ds 4
+wDailyPhoneItemFlags:: ds 4
+wDailyPhoneTimeOfDayFlags:: ds 4
+wdc58:: ds 2
 wdc5a:: ds 1
 wdc5b:: ds 1
 wdc5c:: ds 3
@@ -2600,7 +2587,14 @@
 	ds SCREEN_HEIGHT_PX
 LYOverridesEnd::
 
-	ds $100 - SCREEN_HEIGHT_PX
+	ds 1
+w5_d191:: ds 1
+w5_d192:: ds 1
+w5_d193:: ds 1
+w5_d194:: ds 1
+w5_d195:: ds 1
+
+ds 106
 
 LYOverridesBackup:: ; d200
 	ds SCREEN_HEIGHT_PX