shithub: pokecrystal

Download patch

ref: 973721491c38aa3014f5b28982227a618d2f6b59
parent: a3c6931fa8edd09fcea678fd8d2e9988951380de
parent: 0b5471f385d3cc66bb4ae7aa4191ce3af9f50cac
author: yenatch <yenatch@gmail.com>
date: Mon Jul 20 19:05:28 EDT 2015

Merge remote-tracking branch 'kanzure/master' into gfx-script

--- a/audio/engine.asm
+++ b/audio/engine.asm
@@ -413,10 +413,9 @@
 	; hl << 4
 	; each wavepattern is $0f bytes long
 	; so seeking is done in $10s
+rept 4
 	add hl, hl
-	add hl, hl
-	add hl, hl
-	add hl, hl
+endr
 	ld de, WaveSamples
 	add hl, de
 	; load wavepattern into $ff30-$ff3f
@@ -1292,8 +1291,9 @@
 	ld d, $00
 	; load ptr to noise sample set in hl
 	ld hl, Drumkits
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -1306,8 +1306,9 @@
 	; use 'pitch' to seek noise sample set
 	ld e, a
 	ld d, $00
+rept 2
 	add hl, de
-	add hl, de
+endr
 	; load sample pointer into NoiseSampleAddress
 	ld a, [hli]
 	ld [NoiseSampleAddressLo], a
@@ -1328,8 +1329,9 @@
 	ld d, $00
 	; seek command pointer
 	ld hl, MusicCommands
+rept 2
 	add hl, de
-	add hl, de
+endr
 	; jump to the new pointer
 	ld a, [hli]
 	ld h, [hl]
@@ -1572,8 +1574,9 @@
 	inc hl
 	ld d, [hl]
 	; skip pointer
+rept 2
 	inc de
-	inc de
+endr
 	; update address
 	ld [hl], d
 	dec hl
@@ -1623,8 +1626,9 @@
 	inc hl
 	ld d, [hl]
 	; skip pointer
+rept 2
 	inc de
-	inc de
+endr
 	; update address
 	ld [hl], d
 	dec hl
@@ -2378,9 +2382,9 @@
 	
 ; 3-byte pointers (bank, address)
 	ld hl, Cries
+rept 3
 	add hl, de
-	add hl, de
-	add hl, de
+endr
 	
 	ld a, [hli]
 	ld [MusicBank], a
@@ -2595,9 +2599,9 @@
 	
 ; get sfx ptr
 	ld hl, SFX
+rept 3
 	add hl, de
-	add hl, de
-	add hl, de
+endr
 	
 ; bank
 	ld a, [hli]
@@ -2692,8 +2696,9 @@
 	ld c, a
 	ld b, $00
 	ld hl, ChannelPointers
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld c, [hl]
 	inc hl
 	ld b, [hl] ; bc = channel pointer
@@ -3157,8 +3162,9 @@
 ; doesn't seem to be used, but functionally identical to SoundRestart
 	ld hl, rNR50
 	xor a
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ld a, $80
 	ld [hli], a
 	ld hl, rNR10
--- a/audio/music/goldenrodcity.asm
+++ b/audio/music/goldenrodcity.asm
@@ -275,8 +275,9 @@
 	vibrato $8, $23
 	notetype $c, $25
 Music_GoldenrodCity_branch_eb58c: ; eb58c
+rept 2
 	callchannel Music_GoldenrodCity_branch_eb5aa
-	callchannel Music_GoldenrodCity_branch_eb5aa
+endr
 	callchannel Music_GoldenrodCity_branch_eb5d2
 	note __, 3
 	octave 3
--- a/audio/music/johtowildbattle.asm
+++ b/audio/music/johtowildbattle.asm
@@ -492,8 +492,9 @@
 	note G_, 2
 	loopchannel 7, Music_JohtoWildBattle_branch_f5fdb
 	note F#, 4
+rept 2
 	callchannel Music_JohtoWildBattle_branch_f6055
-	callchannel Music_JohtoWildBattle_branch_f6055
+endr
 Music_JohtoWildBattle_branch_f5fe8: ; f5fe8
 	note D_, 2
 	note G_, 2
--- a/audio/music/kantowildbattle.asm
+++ b/audio/music/kantowildbattle.asm
@@ -325,22 +325,25 @@
 	note F_, 1
 	note F#, 1
 	notetype $6, $b7
+rept 2
 	callchannel Music_KantoWildBattle_branch_ed307
-	callchannel Music_KantoWildBattle_branch_ed307
+endr
 	forceoctave $1
+rept 2
 	callchannel Music_KantoWildBattle_branch_ed307
-	callchannel Music_KantoWildBattle_branch_ed307
+endr
 	forceoctave $0
+rept 4
 	callchannel Music_KantoWildBattle_branch_ed307
-	callchannel Music_KantoWildBattle_branch_ed307
-	callchannel Music_KantoWildBattle_branch_ed307
-	callchannel Music_KantoWildBattle_branch_ed307
+endr
 	forceoctave $1
+rept 2
 	callchannel Music_KantoWildBattle_branch_ed307
-	callchannel Music_KantoWildBattle_branch_ed307
+endr
 	forceoctave $0
+rept 2
 	callchannel Music_KantoWildBattle_branch_ed307
-	callchannel Music_KantoWildBattle_branch_ed307
+endr
 	note __, 16
 	octave 3
 	note A#, 16
--- a/battle/ai/items.asm
+++ b/battle/ai/items.asm
@@ -193,9 +193,9 @@
 	jr z, .has_item
 
 	dec de
+rept 3
 	inc hl
-	inc hl
-	inc hl
+endr
 	jr .loop
 
 .has_item
@@ -213,8 +213,9 @@
 	pop de
 	pop hl
 
+rept 2
 	inc hl
-	inc hl
+endr
 	jr c, .loop
 
 .used_item
--- a/battle/ai/scoring.asm
+++ b/battle/ai/scoring.asm
@@ -133,8 +133,9 @@
 	call AI_50_50
 	jr c, .checkmove
 
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	jr .checkmove
 
 .discourage
@@ -141,8 +142,9 @@
 	call Random
 	cp 30
 	jr c, .checkmove
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	jr .checkmove
 ; 38635
 
@@ -151,7 +153,7 @@
 AI_Types: ; 38635
 ; Dismiss any move that the player is immune to.
 ; Encourage super-effective moves.
-; Discourage not very effective moves unless 
+; Discourage not very effective moves unless
 ; all damaging moves are of the same type.
 
 	ld hl, Buffer1 - 1
@@ -262,8 +264,9 @@
 	and a
 	jr nz, .checkmove
 
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	jr .checkmove
 ; 386be
 
@@ -417,8 +420,9 @@
 .asm_387f0
 	call AI_50_50
 	ret c
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 ; 387f7
 
@@ -529,8 +533,9 @@
 	call AI_50_50
 	ret c
 
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 
 .asm_38882
@@ -555,8 +560,9 @@
 	cp 180
 	jr nc, .asm_3888b
 
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	jr .asm_3888b
 
 .asm_388a2
@@ -596,9 +602,9 @@
 	ret c
 
 .asm_388c6
+rept 3
 	inc [hl]
-	inc [hl]
-	inc [hl]
+endr
 	ret
 ; 388ca
 
@@ -610,9 +616,9 @@
 	call Random
 	cp 25
 	ret c
+rept 3
 	dec [hl]
-	dec [hl]
-	dec [hl]
+endr
 	ret
 ; 388d4
 
@@ -639,8 +645,9 @@
 	jr nc, .asm_38911
 
 .asm_388ef
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 
 .asm_388f2
@@ -669,8 +676,9 @@
 	jr c, .asm_38911
 
 .asm_3890f
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 
 ; 30% chance to end up here if enemy's HP is full and player is not badly poisoned.	
 ; 77% chance to end up here if enemy's HP is above 50% but not full.
@@ -714,8 +722,9 @@
 	call Random
 	cp $50
 	ret c
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 
 ; Player is seeded.
@@ -747,8 +756,9 @@
 	call AI_80_20
 	ret c
 
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 ; 3895b
 
@@ -818,8 +828,9 @@
 	jr nc, .asm_389bf
 
 .asm_3899d
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 
 .asm_389a0
@@ -848,8 +859,9 @@
 	jr c, .asm_389bf
 
 .asm_389bd
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 
 ; We only end up here if the move has not been already encouraged.	
 .asm_389bf
@@ -888,8 +900,9 @@
 	call Random
 	cp $50
 	ret c
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 
 ; Player is seeded.
@@ -963,9 +976,9 @@
 AI_Smart_Whirlwind: ; 38a2a
 ; Whirlwind, Roar.
 
-; Discourage this move if the player has not shown 
+; Discourage this move if the player has not shown
 ; a super-effective move against the enemy.
-; Consider player's type(s) if its moves are unknown. 
+; Consider player's type(s) if its moves are unknown.
 
 	push hl
 	callab Function3484e
@@ -997,8 +1010,9 @@
 	call Random
 	cp $19
 	ret c
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 ; 38a4e
 
@@ -1079,8 +1093,9 @@
 	ret nc
 	call AI_50_50
 	ret c
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 ; 38a9c
 
@@ -1185,8 +1200,9 @@
 .asm_38b09
 	call AI_80_20
 	ret c
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 
 .asm_38b10
@@ -1208,9 +1224,9 @@
 	call AICompareSpeed
 	ret nc
 	
+rept 3
 	dec [hl]
-	dec [hl]
-	dec [hl]
+endr
 	ret
 ; 38b20
 
@@ -1231,7 +1247,7 @@
 	call AICheckPlayerQuarterHP
 	jr nc, .asm_38b3a
 	
-; 80% chance to greatly encourage this move 
+; 80% chance to greatly encourage this move
 ; if enemy is slower than player and its HP is above 25%.	
 	call AICompareSpeed
 	ret c
@@ -1239,8 +1255,9 @@
 	ret nc
 	call AI_80_20
 	ret c
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 
 .asm_38b3a
@@ -1272,8 +1289,9 @@
 	call Random
 	cp 30
 	ret c
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 ; 38b5c
 
@@ -1510,14 +1528,15 @@
 	call Random
 	cp $46
 	ret c
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 
 .asm_38c81
+rept 3
 	inc [hl]
-	inc [hl]
-	inc [hl]
+endr
 	ret
 
 .EncoreMoves:
@@ -1587,15 +1606,15 @@
 	cp $1
 	jr z, .asm_38cc7
 
+rept 3
 	dec [hl]
-	dec [hl]
-	dec [hl]
+endr
 	ret
 
 .asm_38cc7
+rept 3
 	inc [hl]
-	inc [hl]
-	inc [hl]
+endr
 	ret
 ; 38ccb
 
@@ -1607,9 +1626,9 @@
 	ld a, [EnemyMonStatus]
 	and $20
 	ret z
+rept 3
 	dec [hl]
-	dec [hl]
-	dec [hl]
+endr
 	ret
 ; 38cd5
 
@@ -1666,8 +1685,9 @@
 	call Random
 	cp $64
 	ret c
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 ; 38d16
 
@@ -1708,9 +1728,9 @@
 	jr z, .next
 
 	; status
+rept 3
 	dec hl
-	dec hl
-	dec hl
+endr
 	ld a, [hl]
 	or c
 	ld c, a
@@ -1735,8 +1755,9 @@
 	ret z
 	call AI_50_50
 	ret c
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 
 .no_status
@@ -1774,9 +1795,9 @@
 	ld a, [BattleMonHP]
 	sbc b
 	ret nc
+rept 3
 	dec [hl]
-	dec [hl]
-	dec [hl]
+endr
 	ret
 ; 38d93
 
@@ -1879,7 +1900,7 @@
 	bit SUBSTATUS_TOXIC, a
 	jr nz, .asm_38e26
 
-; 80% chance to greatly encourage this move if the player is either 
+; 80% chance to greatly encourage this move if the player is either
 ; in love, identified, stuck in Rollout, or has a Nightmare.	
 	ld a, [PlayerSubStatus1]
 	and 1<<SUBSTATUS_IN_LOVE | 1<<SUBSTATUS_ROLLOUT | 1<<SUBSTATUS_IDENTIFIED | 1<<SUBSTATUS_NIGHTMARE
@@ -1900,9 +1921,9 @@
 .asm_38e26
 	call AI_80_20
 	ret c
+rept 3
 	dec [hl]
-	dec [hl]
-	dec [hl]
+endr
 	ret
 ; 38e2e
 
@@ -1952,11 +1973,9 @@
 	ld a, [EnemyMonStatus]
 	bit FRZ, a
 	ret z
+rept 5
 	dec [hl]
-	dec [hl]
-	dec [hl]
-	dec [hl]
-	dec [hl]
+endr
 	ret
 ; 38e5c
 
@@ -1988,13 +2007,15 @@
 	ret nc
 	call AI_80_20
 	ret c
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 
 .asm_38e90
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 .asm_38e92
 	inc [hl]
 .asm_38e93
@@ -2044,8 +2065,9 @@
 	call AI_50_50
 	ret c
 
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 ; 38ed2
 
@@ -2097,8 +2119,9 @@
 	call Random
 	cp 20
 	ret c
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	ret
 ; 38f1d
 
@@ -2128,8 +2151,9 @@
 	call Random
 	cp 100
 	ret c
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 ; 38f4a
 
@@ -2235,9 +2259,9 @@
 	call AI_80_20
 	ret c
 
+rept 3
 	dec [hl]
-	dec [hl]
-	dec [hl]
+endr
 	ret
 
 .asm_38fcb
@@ -2248,8 +2272,9 @@
 	call AI_50_50
 	ret c
 
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 
 .asm_38fd8
@@ -2271,14 +2296,15 @@
 
 	cp 2
 	jr c, .end
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 
 	cp 3
 	jr c, .end
+rept 3
 	dec [hl]
-	dec [hl]
-	dec [hl]
+endr
 
 .end
 
@@ -2318,8 +2344,9 @@
 	call Random
 	cp 200
 	ret nc
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 
 .asm_39020
@@ -2379,8 +2406,9 @@
 
 	call AICompareSpeed
 	ret nc
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 
 .could_dig
@@ -2427,8 +2455,9 @@
 .asm_3907d
 	call AI_50_50
 	ret c
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 ; 39084
 
@@ -2453,8 +2482,9 @@
 	call AI_80_20
 	ret c
 
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 ; 3909e
 
@@ -2581,9 +2611,9 @@
 ; 3911e
 
 AIBadWeatherType: ; 3911e
+rept 3
 	inc [hl]
-	inc [hl]
-	inc [hl]
+endr
 	ret
 ; 39122
 
@@ -2606,8 +2636,9 @@
 	ret nz
 
 .good
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 ; 39134
 
@@ -2702,8 +2733,9 @@
 	ret
 
 .asm_39188
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	ret
 ; 3918b
 
@@ -2788,8 +2820,9 @@
 	call AICompareSpeed
 	ret nc
 
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 
 ; Try to predict if the player will use Fly this turn.	
@@ -2816,8 +2849,9 @@
 	and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
 	ret z
 
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 ; 39200
 
@@ -2852,8 +2886,9 @@
 	cp 25 ; 1/10
 	ret c
 
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	ret
 
 .asm_3921e
@@ -2860,8 +2895,9 @@
 	call AI_80_20
 	ret c
 
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 ; 39225
 
@@ -2955,8 +2991,9 @@
 	ld c, [hl]
 	sla c
 	rl b
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [hld]
 	cp c
 	ld a, [hl]
@@ -2976,8 +3013,9 @@
 	ld c, [hl]
 	sla c
 	rl b
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [hld]
 	cp c
 	ld a, [hl]
@@ -3001,8 +3039,9 @@
 	rl b
 	sla c
 	rl b
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [hld]
 	cp c
 	ld a, [hl]
@@ -3024,8 +3063,9 @@
 	rl b
 	sla c
 	rl b
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [hld]
 	cp c
 	ld a, [hl]
@@ -3292,7 +3332,7 @@
 	call AIGetEnemyMove
 
 ; Ignore this move if its power is 0 or 1.
-; Moves such as Seismic Toss, Hidden Power, 
+; Moves such as Seismic Toss, Hidden Power,
 ; Counter and Fissure have a base power of 1.	
 	ld a, [wEnemyMoveStruct + MOVE_POWER]
 	cp 2
@@ -3529,11 +3569,9 @@
 	jr nc, .nextmove
 
 	pop hl
+rept 5
 	dec [hl]
-	dec [hl]
-	dec [hl]
-	dec [hl]
-	dec [hl]
+endr
 	push hl
 
 .nextmove
--- a/battle/anim_commands.asm
+++ b/battle/anim_commands.asm
@@ -265,9 +265,9 @@
 	ld a, [hl]
 	and $f0
 	ld [hli], a
+rept 3
 	inc hl
-	inc hl
-	inc hl
+endr
 	dec c
 	jr nz, .asm_cc249
 	ret
@@ -341,8 +341,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, BattleAnimCommands
+rept 2
 	add hl, de
-	add hl, de
+endr
 
 	ld a, [hli]
 	ld h, [hl]
@@ -488,8 +489,9 @@
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
+rept 2
 	inc de
-	inc de
+endr
 	ld [hl], d
 	dec hl
 	ld [hl], e
@@ -517,8 +519,9 @@
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
+rept 2
 	inc de
-	inc de
+endr
 	ld [hl], d
 	dec hl
 	ld [hl], e
@@ -544,8 +547,9 @@
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
+rept 2
 	inc de
-	inc de
+endr
 	ld [hl], d
 	dec hl
 	ld [hl], e
@@ -572,8 +576,9 @@
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
+rept 2
 	inc de
-	inc de
+endr
 	ld [hl], d
 	dec hl
 	ld [hl], e
@@ -601,8 +606,9 @@
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
+rept 2
 	inc de
-	inc de
+endr
 	ld [hl], d
 	dec hl
 	ld [hl], e
@@ -700,10 +706,9 @@
 	push hl
 	ld l, a
 	ld h, $0
+rept 4
 	add hl, hl
-	add hl, hl
-	add hl, hl
-	add hl, hl
+endr
 	ld de, $8310
 	add hl, de
 	ld a, [BattleAnimByte]
@@ -797,8 +802,9 @@
 	ld a, [hl]
 	and a
 	jr z, .asm_cc537
+rept 2
 	inc hl
-	inc hl
+endr
 	jr .asm_cc52f
 
 .asm_cc537
@@ -852,8 +858,9 @@
 	ld a, [hl]
 	and a
 	jr z, .asm_cc589
+rept 2
 	inc hl
-	inc hl
+endr
 	jr .asm_cc581
 
 .asm_cc589
@@ -1243,10 +1250,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Datacc871
+rept 4
 	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
+endr
 
 	ld a, [rSVBK] ; $ff00+$70
 	push af
@@ -1392,8 +1398,9 @@
 	inc hl
 	ld d, [hl]
 	ld hl, BattleAnimations
+rept 2
 	add hl, de
-	add hl, de
+endr
 	call Function3ae1
 	call BattleAnimAssignPals
 	call BattleAnimDelayFrame
--- a/battle/anim_objects.asm
+++ b/battle/anim_objects.asm
@@ -36,12 +36,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, BattleAnimObjects
+rept 6
 	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
+endr
 	ld e, l
 	ld d, h
 	ld hl, $0
@@ -71,8 +68,9 @@
 	ld a, [BattleAnimTemps + 2]
 	ld [hli], a
 	xor a
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ld a, [BattleAnimTemps + 3]
 	ld [hli], a
 	xor a
@@ -80,8 +78,9 @@
 	dec a
 	ld [hli], a
 	xor a
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 	ret
 
@@ -516,8 +515,9 @@
 	ld e, [hl]
 	ld d, 0
 	ld hl, Jumptable_ccfce
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -670,10 +670,9 @@
 	ld hl, $f
 	add hl, bc
 	ld a, [hl]
+rept 4
 	inc [hl]
-	inc [hl]
-	inc [hl]
-	inc [hl]
+endr
 	ld d, $10
 	push af
 	push de
@@ -937,8 +936,9 @@
 	ld [hl], a
 	ld hl, $7
 	add hl, bc
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 .asm_cd245
 	call Functioncc9bd
@@ -1739,8 +1739,9 @@
 	ld [hl], a
 	ld hl, $f
 	add hl, bc
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 
 Functioncd6c5: ; cd6c5 (33:56c5)
 	ret
@@ -1760,8 +1761,9 @@
 	call Functioncc9bd
 	ret
 asm_cd6da: ; cd6da (33:56da)
+rept 2
 	inc a
-	inc a
+endr
 	ld [hl], a
 	sub $10
 	ret c
@@ -2128,8 +2130,9 @@
 	call Functionce7bf
 	ld hl, $f
 	add hl, bc
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	ld a, [hl]
 	and $1f
 	ret nz
@@ -2550,8 +2553,9 @@
 	ld a, [hl]
 	cp $98
 	ret nc
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	ld hl, $1
 	add hl, bc
 	set 0, [hl]
@@ -2587,8 +2591,9 @@
 	ld a, [hl]
 	cp $98
 	ret nc
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	ld hl, $f
 	add hl, bc
 	ld a, [hl]
@@ -2722,8 +2727,9 @@
 	ld hl, $f
 	add hl, bc
 	ld a, [hl]
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	ld d, $2
 	call Functionce734
 	ld hl, $9
@@ -2871,8 +2877,9 @@
 	ld hl, $10
 	add hl, bc
 	ld a, [hl]
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	ld d, $10
 	call Functionce734
 	ld d, a
@@ -3083,8 +3090,9 @@
 	ld hl, $f
 	add hl, bc
 	ld a, [hl]
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	ld d, $4
 	call Functionce734
 	ld hl, $9
@@ -3112,8 +3120,9 @@
 	ld hl, $f
 	add hl, bc
 	ld a, [hl]
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ld d, $10
 	call Functionce734
 	ld hl, $a
@@ -3353,8 +3362,9 @@
 	ld [hl], a
 	ld hl, $b
 	add hl, bc
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	ld a, [hl]
 	and $7
 	ret nz
@@ -3394,8 +3404,9 @@
 	ld [hl], a
 	ld hl, $b
 	add hl, bc
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	ld a, [hl]
 	and $3
 	ret nz
@@ -3404,8 +3415,9 @@
 	ld a, [hl]
 	cp $d0
 	jr z, .asm_ce007
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 .asm_ce007
 	call Functioncc9bd
@@ -3930,8 +3942,9 @@
 	ld [hl], a
 	ld hl, $10
 	add hl, bc
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ret
 
 Functionce2fd: ; ce2fd (33:62fd)
@@ -4077,8 +4090,9 @@
 	ld hl, $f
 	add hl, bc
 	ld a, [hl]
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	push af
 	ld d, $2
 	call Functionce734
@@ -4317,8 +4331,9 @@
 	ld a, [hl]
 	cp $10
 	jr nc, .asm_ce52e
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	ld d, a
 	ld hl, $b
 	add hl, bc
@@ -4428,12 +4443,14 @@
 	jr c, .asm_ce5b0
 	ld hl, $7
 	add hl, bc
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ld hl, $8
 	add hl, bc
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	ret
 .asm_ce5b0
 	call Functioncc9bd
@@ -4446,8 +4463,9 @@
 	ld hl, $b
 	add hl, bc
 	ld a, [hl]
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	push af
 	push de
 	call Functionce734
@@ -4474,10 +4492,9 @@
 	ld a, [hl]
 	cp $d0
 	jr z, .asm_ce5ea
+rept 4
 	dec [hl]
-	dec [hl]
-	dec [hl]
-	dec [hl]
+endr
 	ret
 .asm_ce5ea
 	call Functioncc9bd
@@ -4510,10 +4527,9 @@
 	ld a, [hl]
 	cp $4
 	jr z, Functionce618
+rept 4
 	inc [hl]
-	inc [hl]
-	inc [hl]
-	inc [hl]
+endr
 	ret
 
 Functionce618: ; ce618 (33:6618)
@@ -4529,10 +4545,9 @@
 	ld a, [hl]
 	cp $d8
 	ret z
+rept 4
 	dec [hl]
-	dec [hl]
-	dec [hl]
-	dec [hl]
+endr
 	ret
 
 Functionce62f: ; ce62f (33:662f)
@@ -4567,8 +4582,9 @@
 	ld [hl], a
 	ld hl, $9
 	add hl, bc
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	ret
 
 Functionce65c: ; ce65c (33:665c)
@@ -4754,8 +4770,9 @@
 	ld a, d
 	ld d, 0
 	ld hl, Unknown_ce77f
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
@@ -4864,8 +4881,9 @@
 	ld [hl], a
 	ld hl, $000d
 	add hl, bc
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	jr .asm_ce7d1
 
 .asm_ce815
@@ -4886,8 +4904,9 @@
 	ld e, [hl]
 	ld d, 0
 	ld hl, Unknown_ce85e
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
@@ -4904,8 +4923,9 @@
 	ld l, a
 	ld h, 0
 	ld de, Unknown_ceeae
+rept 2
 	add hl, hl
-	add hl, hl
+endr
 	add hl, de
 	ret
 ; ce846
@@ -4915,8 +4935,9 @@
 	push hl
 	ld l, a
 	ld h, 0
+rept 2
 	add hl, hl
-	add hl, hl
+endr
 	ld de, AnimObjGFX
 	add hl, de
 	ld c, [hl]
--- a/battle/bg_effects.asm
+++ b/battle/bg_effects.asm
@@ -61,8 +61,9 @@
 	ld e, [hl]
 	ld d, 0
 	ld hl, BattleBGEffects
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -708,9 +709,9 @@
 	ld l, a
 	ld a, [BattleAnimTemps + 2]
 	ld h, a
+rept 3
 	add hl, de
-	add hl, de
-	add hl, de
+endr
 	ld a, [hl]
 	cp $ff
 	jr z, Functionc8434
@@ -756,8 +757,9 @@
 	ld e, [hl]
 	ld d, 0
 	ld hl, Unknown_c849c
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -771,9 +773,9 @@
 	ld e, [hl]
 	ld d, 0
 	ld hl, Unknown_c84a8
+rept 3
 	add hl, de
-	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld b, a
 	and $f
@@ -793,8 +795,9 @@
 	ld e, [hl]
 	ld d, 0
 	ld hl, Unknown_c849c
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -1012,8 +1015,9 @@
 	ld a, [hl]
 	cp $20
 	jr nc, .asm_c85fc
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	call Functionc8f9a
 	ret
 .asm_c85fc
@@ -1388,8 +1392,9 @@
 	call Functionc901b
 	ld hl, $2
 	add hl, bc
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	ret
 
 Functionc8801: ; c8801 (32:4801)
@@ -1792,8 +1797,9 @@
 	call Functionc901b
 	ld hl, $3
 	add hl, bc
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	ret
 
 Functionc8a36: ; c8a36 (32:4a36)
@@ -1877,8 +1883,9 @@
 	ld h, $d2
 .asm_c8aa5
 	ld [hl], e
+rept 2
 	inc hl
-	inc hl
+endr
 	dec a
 	jr nz, .asm_c8aa5
 	ret
--- a/battle/core.asm
+++ b/battle/core.asm
@@ -469,13 +469,13 @@
 	cp $2
 	jr z, .asm_3c341
 	call BattleRandom
-	cp $80
+	cp 1 + (50 percent)
 	jp c, .asm_3c3f1
 	jp Function3c3f3
 
 .asm_3c341
 	call BattleRandom
-	cp $80
+	cp 1 + (50 percent)
 	jp c, Function3c3f3
 	jp .asm_3c3f1
 
@@ -555,13 +555,13 @@
 	cp $2
 	jr z, .asm_3c3e9
 	call BattleRandom
-	cp $80
+	cp 1 + (50 percent)
 	jp c, .asm_3c3f1
 	jp Function3c3f3
 
 .asm_3c3e9
 	call BattleRandom
-	cp $80
+	cp 1 + (50 percent)
 	jp c, Function3c3f3
 .asm_3c3f1
 	scf
@@ -798,7 +798,7 @@
 
 	call BattleRandom
 	ld b, a
-	cp $80
+	cp 1 + (50 percent)
 	jr nc, .Stay
 
 	push bc
@@ -810,7 +810,7 @@
 	jr c, .Flee
 
 	ld a, b
-	cp $1a
+	cp 1 + (10 percent)
 	jr nc, .Stay
 
 	ld a, [TempEnemyMonSpecies]
@@ -1607,7 +1607,7 @@
 	and a
 	ret nz
 	call BattleRandom
-	cp $19
+	cp 10 percent
 	ret nc
 	xor a
 	ld [BattleMonStatus], a
@@ -1628,7 +1628,7 @@
 	and a
 	ret nz
 	call BattleRandom
-	cp $19
+	cp 10 percent
 	ret nc
 	xor a
 	ld [EnemyMonStatus], a
@@ -1840,8 +1840,9 @@
 	dec a
 	ld c, a
 	ld b, 0
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -2452,7 +2453,7 @@
 	and a
 	ld a, b
 	call z, Function3d0ea
-	callab Function39939
+	callab Battle_GetTrainerName
 	ld hl, BattleText_0x809da
 	call StdBattleTextBox
 	call IsMobileBattle
@@ -2493,7 +2494,7 @@
 	call DelayFrames
 	call EmptyBattleTextBox
 	ld c, $3
-	callba Function11c000
+	callba StoreText
 	call Functiona80
 	ld hl, wPayDayMoney
 	ld a, [hli]
@@ -2552,8 +2553,9 @@
 	dec a
 	ld c, a
 	ld b, 0
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -2591,8 +2593,9 @@
 	rl [hl]
 	ret nc
 	ld a, $ff
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 	ret
 ; 3d0ab
@@ -2882,7 +2885,7 @@
 	call ClearSprites
 	call WhiteBGMap
 	call Function3eda6
-	call Function1c07
+	call ExitMenu
 	call Function309d
 	call WaitBGMap
 	call ClearSGB
@@ -2903,7 +2906,7 @@
 	call ClearPalettes
 	call DelayFrame
 	call Function3eda6
-	call Function1c17
+	call WriteBackup
 	call ClearSGB
 	call Function32f9
 	call Function3f26d
@@ -3100,7 +3103,7 @@
 
 	call EmptyBattleTextBox
 	ld c, 2
-	callba Function11c000
+	callba StoreText
 	call Functiona80
 	call ClearTileMap
 	call WhiteBGMap
@@ -3644,7 +3647,7 @@
 Function3d74b: ; 3d74b
 	ld a, [CurPartyMon]
 	push af
-	callab Function39939
+	callab Battle_GetTrainerName
 	ld hl, BattleText_0x80aca
 	call StdBattleTextBox
 	lb bc, 1, 7
@@ -3685,7 +3688,7 @@
 Function3d7a0: ; 3d7a0
 	xor a
 	ld [hBGMapMode], a
-	call Function1c07
+	call ExitMenu
 	call ClearSprites
 	hlcoord 1, 0
 	lb bc, 4, 10
@@ -3695,7 +3698,7 @@
 ; 3d7b8
 
 Function3d7b8: ; 3d7b8
-	callab Function39939
+	callab Battle_GetTrainerName
 	ld hl, BattleText_0x80af8
 	call StdBattleTextBox
 	jp WaitBGMap
@@ -3756,10 +3759,9 @@
 	ld [LastPlayerCounterMove], a
 	ld [LastEnemyMove], a
 	ld hl, EnemySubStatus1
+rept 4
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 	ld [EnemyDisableCount], a
 	ld [EnemyFuryCutterCount], a
@@ -4033,9 +4035,9 @@
 	ld de, BattleMonDVs
 	ld bc, 2 + NUM_MOVES + 1 ; DVs, PP, happiness ; BattleMonLevel - BattleMonDVs
 	call CopyBytes
+rept 3
 	inc hl
-	inc hl
-	inc hl
+endr
 	ld de, BattleMonLevel
 	ld bc, 1 + 1 + 1 + 2 + 2 * 6 ; level, status, unused, stats
 	call CopyBytes
@@ -4125,9 +4127,9 @@
 	ld de, EnemyMonDVs
 	ld bc, 2 + NUM_MOVES + 1
 	call CopyBytes
+rept 3
 	inc hl
-	inc hl
-	inc hl
+endr
 	ld de, EnemyMonLevel
 	ld bc, 1 + 1 + 1 + 2 + 2 * 6
 	call CopyBytes
@@ -4250,15 +4252,14 @@
 	ld [LastPlayerCounterMove], a
 	ld [LastPlayerMove], a
 	ld hl, PlayerSubStatus1
+rept 4
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 	ld hl, PlayerUsedMoves
+rept 3
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 	ld [PlayerDisableCount], a
 	ld [PlayerFuryCutterCount], a
@@ -4359,7 +4360,7 @@
 	jr z, .asm_3dcc0
 
 	ld a, [wc71a]
-	call Function399f
+	call UpdateBattleMon
 	ld hl, BattleMonHP
 	ld a, [hli]
 	or [hl]
@@ -4694,8 +4695,9 @@
 	ld a, [hli]
 	cp $ff
 	jr z, .asm_3def9
+rept 2
 	inc hl
-	inc hl
+endr
 	cp b
 	jr nz, .asm_3dec7
 	pop bc
@@ -4702,8 +4704,9 @@
 	ld a, [bc]
 	ld [wd265], a
 	push bc
+rept 2
 	dec hl
-	dec hl
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -5211,7 +5214,7 @@
 	call Function3ed9f
 	call Function3f43d
 	call Function3f47c
-	call Function1c07
+	call ExitMenu
 	call WaitBGMap
 	call Function3ee27
 	call Function309d
@@ -5248,7 +5251,7 @@
 	call Function3f47c
 	ld a, $1
 	ld [wcfa9], a
-	call Function1c07
+	call ExitMenu
 	call Function3df2c
 	call WaitBGMap
 	call Function309d
@@ -5272,7 +5275,7 @@
 BattleMenu_PKMN: ; 3e28d
 	call Function1d6e
 Function3e290:
-	call Function1c07
+	call ExitMenu
 	call Function1d6e
 	call WhiteBGMap
 Function3e299:
@@ -5312,7 +5315,7 @@
 	call ClearPalettes
 	call DelayFrame
 	call Function3eda6
-	call Function1c17
+	call WriteBackup
 	call Function309d
 	call ClearSGB
 	call Function32f9
@@ -5395,7 +5398,7 @@
 	call DelayFrame
 	call ClearSprites
 	call Function3eda6
-	call Function1c17
+	call WriteBackup
 	call ClearSGB
 	call Function32f9
 	ld a, [CurPartyMon]
@@ -5411,7 +5414,7 @@
 	jr z, .asm_3e3c1
 	call Function1d6e
 	call Function3e8e4
-	call Function1c17
+	call WriteBackup
 
 .asm_3e3c1
 	call Function3e7c1
@@ -5769,8 +5772,9 @@
 	ld a, [wcfa9]
 	ld b, a
 	ld a, [wd0eb]
+rept 2
 	inc a
-	inc a
+endr
 	cp b
 	jp nz, .asm_3e57a
 	ld a, $1
@@ -5953,8 +5957,9 @@
 	ld bc, $0102
 	call PrintNum
 	pop hl
+rept 2
 	inc hl
-	inc hl
+endr
 	ld [hl], "/"
 	inc hl
 	ld de, wd265
@@ -6202,26 +6207,26 @@
 	ld hl, EnemyMonSpecies
 	ld bc, EnemyMonEnd - EnemyMon
 	call ByteFill
-	
+
 ; We don't need to be here if we're in a link battle
 	ld a, [InLinkBattle]
 	and a
 	jp nz, Function3dabd
-	
+
 	ld a, [wcfc0] ; ????
 	bit 0, a
 	jp nz, Function3dabd
-	
+
 ; Make sure everything knows what species we're working with
 	ld a, [TempEnemyMonSpecies]
 	ld [EnemyMonSpecies], a
 	ld [CurSpecies], a
 	ld [CurPartySpecies], a
-	
+
 ; Grab the BaseData for this species
 	call GetBaseData
-	
 
+
 ; Let's get the item:
 
 ; Is the item predetermined?
@@ -6228,7 +6233,7 @@
 	ld a, [IsInBattle]
 	dec a
 	jr z, .WildItem
-	
+
 ; If we're in a trainer battle, the item is in the party struct
 	ld a, [CurPartyMon]
 	ld hl, OTPartyMon1Item
@@ -6235,8 +6240,8 @@
 	call GetPartyLocation ; bc = PartyMon[CurPartyMon] - PartyMons
 	ld a, [hl]
 	jr .UpdateItem
-	
-	
+
+
 .WildItem
 ; In a wild battle, we pull from the item slots in BaseData
 
@@ -6246,7 +6251,7 @@
 	cp BATTLETYPE_FORCEITEM
 	ld a, [BaseItems]
 	jr z, .UpdateItem
-	
+
 ; Failing that, it's all up to chance
 ;  Effective chances:
 ;    75% None
@@ -6255,33 +6260,33 @@
 
 ; 25% chance of getting an item
 	call BattleRandom
-	cp a, $c0
+	cp a, 1 + (75 percent)
 	ld a, NO_ITEM
 	jr c, .UpdateItem
-	
+
 ; From there, an 8% chance for Item2
 	call BattleRandom
-	cp a, $14 ; 8% of 25% = 2% Item2
+	cp a, 8 percent ; 8% of 25% = 2% Item2
 	ld a, [BaseItems]
 	jr nc, .UpdateItem
 	ld a, [BaseItems+1]
-	
-	
+
+
 .UpdateItem
 	ld [EnemyMonItem], a
-	
-	
+
+
 ; Initialize DVs
-	
+
 ; If we're in a trainer battle, DVs are predetermined
 	ld a, [IsInBattle]
 	and a
 	jr z, .InitDVs
-	
+
 	ld a, [EnemySubStatus5]
 	bit SUBSTATUS_TRANSFORMED, a
 	jr z, .InitDVs
-	
+
 ; Unknown
 	ld hl, wc6f2
 	ld de, EnemyMonDVs
@@ -6291,12 +6296,12 @@
 	ld a, [hl]
 	ld [de], a
 	jp .Happiness
-	
-	
+
+
 .InitDVs
-	
+
 ; Trainer DVs
-	
+
 ; All trainers have preset DVs, determined by class
 ; See GetTrainerDVs for more on that
 	callba GetTrainerDVs
@@ -6304,8 +6309,8 @@
 	ld a, [IsInBattle]
 	dec a
 	jr nz, .UpdateDVs
-	
-	
+
+
 ; Wild DVs
 ; Here's where the fun starts
 
@@ -6314,7 +6319,7 @@
 	ld a, [BattleType]
 	cp a, BATTLETYPE_ROAMING
 	jr nz, .NotRoaming
-	
+
 ; Grab HP
 	call GetRoamMonHP
 	ld a, [hl]
@@ -6322,7 +6327,7 @@
 	and a
 ; We'll do something with the result in a minute
 	push af
-	
+
 ; Grab DVs
 	call GetRoamMonDVs
 	inc hl
@@ -6334,7 +6339,7 @@
 	pop af
 ; If the RoamMon struct has already been initialized, we're done
 	jr nz, .UpdateDVs
-	
+
 ; If it hasn't, we need to initialize the DVs
 ; (HP is initialized at the end of the battle)
 	call GetRoamMonDVs
@@ -6348,7 +6353,7 @@
 ; We're done with DVs
 	jr .UpdateDVs
 
-	
+
 .NotRoaming
 ; Register a contains BattleType
 
@@ -6360,7 +6365,7 @@
 	ld b, ATKDEFDV_SHINY ; $ea
 	ld c, SPDSPCDV_SHINY ; $aa
 	jr .UpdateDVs
-	
+
 .GenerateDVs
 ; Generate new random DVs
 	call BattleRandom
@@ -6367,7 +6372,7 @@
 	ld b, a
 	call BattleRandom
 	ld c, a
-	
+
 .UpdateDVs
 ; Input DVs in register bc
 	ld hl, EnemyMonDVs
@@ -6374,22 +6379,22 @@
 	ld a, b
 	ld [hli], a
 	ld [hl], c
-	
-	
+
+
 ; We've still got more to do if we're dealing with a wild monster
 	ld a, [IsInBattle]
 	dec a
 	jr nz, .Happiness
-	
-	
+
+
 ; Species-specfic:
-	
-	
+
+
 ; Unown
 	ld a, [TempEnemyMonSpecies]
 	cp a, UNOWN
 	jr nz, .Magikarp
-	
+
 ; Get letter based on DVs
 	ld hl, EnemyMonDVs
 	predef GetUnownLetter
@@ -6397,25 +6402,25 @@
 ; If combined with forced shiny battletype, causes an infinite loop
 	call CheckUnownLetter
 	jr c, .GenerateDVs ; try again
-	
-	
+
+
 .Magikarp
 ; Skimming this part recommended
-	
+
 	ld a, [TempEnemyMonSpecies]
 	cp a, MAGIKARP
 	jr nz, .Happiness
-	
+
 ; Get Magikarp's length
 	ld de, EnemyMonDVs
 	ld bc, PlayerID
 	callab CalcMagikarpLength
-	
+
 ; We're clear if the length is < 1536
 	ld a, [MagikarpLength]
 	cp a, $06 ; $600 = 1536
 	jr nz, .CheckMagikarpArea
-	
+
 ; 5% chance of skipping size checks
 	call Random
 	cp a, $0c ; / $100
@@ -6424,7 +6429,7 @@
 	ld a, [MagikarpLength + 1]
 	cp a, $50
 	jr nc, .GenerateDVs
-	
+
 ; 20% chance of skipping this check
 	call Random
 	cp a, $32 ; / $100
@@ -6433,15 +6438,15 @@
 	ld a, [MagikarpLength + 1]
 	cp a, $40
 	jr nc, .GenerateDVs
-	
+
 .CheckMagikarpArea
 ; The z checks are supposed to be nz
 ; Instead, all maps in GROUP_LAKE_OF_RAGE (mahogany area)
 ; and routes 20 and 44 are treated as Lake of Rage
-	
+
 ; This also means Lake of Rage Magikarp can be smaller than ones
 ; caught elsewhere rather than the other way around
-	
+
 ; Intended behavior enforces a minimum size at Lake of Rage
 ; The real behavior prevents size flooring in the Lake of Rage area
 	ld a, [MapGroup]
@@ -6458,10 +6463,10 @@
 	ld a, [MagikarpLength]
 	cp a, 1024 >> 8
 	jr c, .GenerateDVs ; try again
-	
-	
+
+
 ; Finally done with DVs
-	
+
 .Happiness
 ; Set happiness
 	ld a, BASE_HAPPINESS
@@ -6474,21 +6479,21 @@
 	ld b, $00
 	ld hl, LinkBattleRNs + 7 ; ?
 	predef Functione167
-	
+
 ; If we're in a trainer battle,
 ; get the rest of the parameters from the party struct
 	ld a, [IsInBattle]
 	cp a, TRAINER_BATTLE
 	jr z, .OpponentParty
-	
+
 ; If we're in a wild battle, check wild-specific stuff
 	and a
 	jr z, .TreeMon
-	
+
 	ld a, [EnemySubStatus5]
 	bit SUBSTATUS_TRANSFORMED, a
 	jp nz, .Moves
-	
+
 .TreeMon
 ; If we're headbutting trees, some monsters enter battle asleep
 	call CheckSleepingTreeMon
@@ -6496,26 +6501,26 @@
 	jr c, .UpdateStatus
 ; Otherwise, no status
 	xor a
-	
+
 .UpdateStatus
 	ld hl, EnemyMonStatus
 	ld [hli], a
-	
+
 ; Unused byte
 	xor a
 	ld [hli], a
-	
+
 ; Full HP...
 	ld a, [EnemyMonMaxHP]
 	ld [hli], a
 	ld a, [EnemyMonMaxHP + 1]
 	ld [hl], a
-	
+
 ; ...unless it's a RoamMon
 	ld a, [BattleType]
 	cp a, BATTLETYPE_ROAMING
 	jr nz, .Moves
-	
+
 ; Grab HP
 	call GetRoamMonHP
 	ld a, [hl]
@@ -6526,7 +6531,7 @@
 	ld a, [hl]
 	ld [EnemyMonHP + 1], a
 	jr .Moves
-	
+
 .InitRoamHP
 ; HP only uses the lo byte in the RoamMon struct since
 ; Raikou/Entei/Suicune will have < 256 hp at level 40
@@ -6533,8 +6538,8 @@
 	ld a, [EnemyMonHP + 1]
 	ld [hl], a
 	jr .Moves
-	
-	
+
+
 .OpponentParty
 ; Get HP from the party struct
 	ld hl, (OTPartyMon1HP + 1)
@@ -6544,17 +6549,17 @@
 	ld [EnemyMonHP + 1], a
 	ld a, [hld]
 	ld [EnemyMonHP], a
-	
+
 ; Make sure everything knows which monster the opponent is using
 	ld a, [CurPartyMon]
 	ld [CurOTMon], a
-	
+
 ; Get status from the party struct
 	dec hl
 	ld a, [hl] ; OTPartyMonStatus
 	ld [EnemyMonStatus], a
-	
-	
+
+
 .Moves
 	ld hl, BaseType1
 	ld de, EnemyMonType1
@@ -6563,7 +6568,7 @@
 	inc de
 	ld a, [hl]
 	ld [de], a
-	
+
 ; Get moves
 	ld de, EnemyMonMoves
 ; Are we in a trainer battle?
@@ -6577,33 +6582,33 @@
 	ld bc, NUM_MOVES
 	call CopyBytes
 	jr .PP
-	
+
 .WildMoves
 ; Clear EnemyMonMoves
 	xor a
 	ld h, d
 	ld l, e
+rept 3
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 ; Make sure the predef knows this isn't a partymon
 	ld [MagikarpLength], a
 ; Fill moves based on level
 	predef FillMoves
-	
+
 .PP
 ; Trainer battle?
 	ld a, [IsInBattle]
 	cp a, TRAINER_BATTLE
 	jr z, .TrainerPP
-	
+
 ; Fill wild PP
 	ld hl, EnemyMonMoves
 	ld de, EnemyMonPP
 	predef FillPP
 	jr .Finish
-	
+
 .TrainerPP
 ; Copy PP from the party struct
 	ld hl, OTPartyMon1PP
@@ -6612,7 +6617,7 @@
 	ld de, EnemyMonPP
 	ld bc, NUM_MOVES
 	call CopyBytes
-	
+
 .Finish
 ; Only the first five base stats are copied...
 	ld hl, BaseStats
@@ -6673,7 +6678,7 @@
 	ld a, [BattleType]
 	cp a, BATTLETYPE_TREE
 	jr nz, .NotSleeping
-	
+
 ; Get list for the time of day
 	ld hl, .Morn
 	ld a, [TimeOfDay]
@@ -6682,7 +6687,7 @@
 	ld hl, .Day
 	jr z, .Check
 	ld hl, .Nite
-	
+
 .Check
 	ld a, [TempEnemyMonSpecies]
 	ld de, 1 ; length of species id
@@ -6689,7 +6694,7 @@
 	call IsInArray
 ; If it's a match, the opponent is asleep
 	ret c
-	
+
 .NotSleeping
 	and a
 	ret
@@ -6728,17 +6733,17 @@
 
 CheckUnownLetter: ; 3eb75
 ; Return carry if the Unown letter hasn't been unlocked yet
-	
+
 	ld a, [UnlockedUnowns]
 	ld c, a
 	ld de, 0
-	
+
 .loop
-	
+
 ; Don't check this set unless it's been unlocked
 	srl c
 	jr nc, .next
-	
+
 ; Is our letter in the set?
 	ld hl, .LetterSets
 	add hl, de
@@ -6745,7 +6750,7 @@
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
-	
+
 	push de
 	ld a, [UnownLetter]
 	ld de, 1
@@ -6753,32 +6758,33 @@
 	call IsInArray
 	pop bc
 	pop de
-	
+
 	jr c, .match
-	
+
 .next
 ; Make sure we haven't gone past the end of the table
+rept 2
 	inc e
-	inc e
+endr
 	ld a, e
 	cp a, .Set1 - .LetterSets
 	jr c, .loop
-	
+
 ; Hasn't been unlocked, or the letter is invalid
 	scf
 	ret
-	
+
 .match
 ; Valid letter
 	and a
 	ret
-	
+
 .LetterSets
 	dw .Set1
 	dw .Set2
 	dw .Set3
 	dw .Set4
-	
+
 .Set1
 	;  A   B   C   D   E   F   G   H   I   J   K
 	db 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, $ff
@@ -6791,7 +6797,7 @@
 .Set4
 	;  X   Y   Z
 	db 24, 25, 26, $ff
-	
+
 ; 3ebc7
 
 
@@ -7109,8 +7115,9 @@
 ; Swap badges 3 (PlainBadge) and 5 (MineralBadge).
 	ld d, a
 	and %00000100
+rept 2
 	add a
-	add a
+endr
 	ld b, a
 	ld a, d
 	and %00010000
@@ -7129,8 +7136,9 @@
 	ld a, b
 	srl b
 	call c, BoostStat
+rept 2
 	inc hl
-	inc hl
+endr
 ; Check every other badge.
 	srl b
 	dec c
@@ -7259,8 +7267,9 @@
 
 	; a * 5 + 1
 	ld c, a
+rept 2
 	add a
-	add a
+endr
 	add c
 	inc a
 
@@ -7392,8 +7401,9 @@
 	ld [de], a
 
 .asm_3eea9
+rept 2
 	inc de
-	inc de
+endr
 	dec c
 	jr nz, .asm_3ee7c
 	xor a
@@ -7468,8 +7478,9 @@
 	inc [hl]
 	jr nz, .asm_3ef3d
 	ld a, $ff
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 
 .asm_3ef3d
@@ -7607,7 +7618,7 @@
 	ld [hBGMapMode], a
 
 .asm_3f035
-	callba Function2709e
+	callba LevelUpHappinessMod
 	ld a, [CurBattleMon]
 	ld b, a
 	ld a, [CurPartyMon]
@@ -7797,8 +7808,9 @@
 	inc [hl]
 	jr nz, .asm_3f186
 	ld a, $ff
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 
 .asm_3f186
@@ -8690,8 +8702,9 @@
 	rl [hl]
 	jr nc, .asm_3f73d
 	ld a, $ff
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 
 .asm_3f73d
@@ -8990,7 +9003,7 @@
 	ret nz
 
 .asm_3f9ca
-	callab Function2a30d
+	callab UpdateRoamMons
 	ret
 ; 3f9d1
 
@@ -9083,11 +9096,13 @@
 	ld d, $5
 .asm_3fa62
 	push hl
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [hl]
+rept 2
 	dec hl
-	dec hl
+endr
 	and a
 	jr z, .asm_3fa85
 	push de
@@ -9187,8 +9202,9 @@
 	ld c, $1
 .asm_3faed
 	ld a, b
+rept 2
 	add b
-	add b
+endr
 	ld e, a
 	ld d, $0
 	ld hl, DefaultFlypoint
@@ -9195,8 +9211,9 @@
 	add hl, de
 	push hl
 	ld a, c
+rept 2
 	add c
-	add c
+endr
 	ld e, a
 	ld d, $0
 	ld hl, DefaultFlypoint
@@ -9455,7 +9472,7 @@
 	ld c, 20
 	call DelayFrames
 
-	callba Function39939
+	callba Battle_GetTrainerName
 
 	ld hl, WantsToBattleText
 	jr .asm_3fd0e
--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -50,8 +50,9 @@
 	ld c, a
 	ld b, 0
 	ld hl, MoveEffectsPointers
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, BANK(MoveEffectsPointers)
 	call GetFarHalfword
 
@@ -100,8 +101,9 @@
 	ld c, a
 	ld b, 0
 	ld hl, BattleCommandPointers
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	pop bc
 
 	ld a, BANK(BattleCommandPointers)
@@ -1062,8 +1064,9 @@
 	jp nz, EndMoveEffect
 
 	; SubStatus5
+rept 2
 	inc de
-	inc de
+endr
 
 	ld a, [de]
 	bit SUBSTATUS_TRANSFORMED, a
@@ -1259,8 +1262,9 @@
 	jr nc, .ScopeLens
 
 ; +2 critical level
+rept 2
 	inc c
-	inc c
+endr
 
 .ScopeLens
 	push bc
@@ -1500,8 +1504,9 @@
 	pop hl
 
 .asm_347b3
+rept 2
 	inc hl
-	inc hl
+endr
 	jr .asm_34743
 
 .end
@@ -1746,11 +1751,9 @@
 	jr c, .loop
 
 	; neutral
+rept 5
 	inc c
-	inc c
-	inc c
-	inc c
-	inc c
+endr
 	cp 10
 	jr z, .loop
 
@@ -2239,8 +2242,9 @@
 	ld b, [hl]
 	inc hl
 	ld c, [hl]
+rept 2
 	inc hl
-	inc hl
+endr
 	srl c
 	rl b
 	srl c
@@ -3344,8 +3348,9 @@
 	ld a, [BattleScriptBufferLoc + 1]
 	ld h, a
 	ld a, $ff
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 	ret
 ; 352b1
@@ -3983,9 +3988,9 @@
 	sla c
 	rl b
 .asm_35604
+rept 3
 	dec hl
-	dec hl
-	dec hl
+endr
 	ld a, [hli]
 	ld l, [hl]
 	ld h, a
@@ -4039,8 +4044,9 @@
 
 	xor a
 	ld hl, hDividend
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 
 ; Level * 2
@@ -4061,8 +4067,9 @@
 	pop bc
 
 ; + 2
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 
 ; * bp
 	inc hl
@@ -4523,9 +4530,9 @@
 	set SUBSTATUS_ENCORED, [hl]
 	call BattleRandom
 	and $3
+rept 3
 	inc a
-	inc a
-	inc a
+endr
 	ld [de], a
 	call Function36abf
 	jr nz, .asm_3591a
@@ -4650,8 +4657,9 @@
 	ld [wd1ec], a
 	ld a, [hl]
 	ld [wd1ed], a
+rept 2
 	dec de
-	dec de
+endr
 	ld a, [de]
 	dec de
 	add b
@@ -4664,12 +4672,12 @@
 	ld a, [CurDamage + 1]
 	rr a
 	ld [CurDamage + 1], a
+rept 3
 	inc hl
-	inc hl
-	inc hl
+endr
+rept 3
 	inc de
-	inc de
-	inc de
+endr
 
 	; fallthrough
 ; 359ac
@@ -5142,8 +5150,9 @@
 	call GetMoveName
 	call BattleRandom
 	and 3
+rept 2
 	inc a
-	inc a
+endr
 	ld b, a
 	ld a, [hl]
 	and $3f
@@ -6854,8 +6863,9 @@
 	dec c
 	ld b, 0
 	ld hl, Table0x364e6
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 
 	xor a
 	ld [hMultiplicand], a
@@ -7009,8 +7019,9 @@
 	ld [wEnemyMoveStruct + MOVE_EFFECT], a
 	call BattleRandom
 	and 1
+rept 2
 	inc a
-	inc a
+endr
 	ld [bc], a
 	ld a, 1
 	ld [wc689], a
@@ -7046,8 +7057,9 @@
 	set 7, [hl]
 	call BattleRandom
 	and $1
+rept 2
 	inc a
-	inc a
+endr
 	inc de
 	ld [de], a
 .asm_3674c
@@ -7885,9 +7897,9 @@
 	ret nz
 	call BattleRandom
 	and 3
+rept 3
 	inc a
-	inc a
-	inc a
+endr
 	ld [hl], a
 	ld a, BATTLE_VARS_MOVE_ANIM
 	call GetBattleVar
@@ -7899,8 +7911,9 @@
 	ld a, [hli]
 	cp b
 	jr z, .asm_36c69
+rept 2
 	inc hl
-	inc hl
+endr
 	jr .asm_36c61
 
 .asm_36c69
@@ -7981,8 +7994,9 @@
 	ld [Buffer2], a
 	ld a, [hl]
 	ld [Buffer1], a
+rept 2
 	dec hl
-	dec hl
+endr
 	ld a, [hl]
 	ld [wd1ec], a
 	sub c
@@ -8083,8 +8097,9 @@
 	set SUBSTATUS_CONFUSED, [hl]
 	call BattleRandom
 	and 3
+rept 2
 	inc a
-	inc a
+endr
 	ld [bc], a
 
 	ld a, BATTLE_VARS_MOVE_EFFECT
@@ -8263,8 +8278,9 @@
 	rr b
 	srl a
 	rr b
+rept 2
 	dec hl
-	dec hl
+endr
 	ld a, b
 	ld [de], a
 	ld a, [hld]
@@ -8853,8 +8869,9 @@
 	ld a, [hli]
 	ld [de], a
 	inc hl
+rept 2
 	inc de
-	inc de
+endr
 	ld bc, NUM_MOVES
 	call CopyBytes
 	ld a, [hBattleTurn]
@@ -9655,8 +9672,9 @@
 	ld a, [hli]
 	cp b
 	jr nc, .ok
+rept 2
 	inc hl
-	inc hl
+endr
 	jr .loop
 .ok
 	ld d, [hl]
@@ -9710,7 +9728,7 @@
 ; Return to battle scene
 	call ClearPalettes
 	callba Function3ed9f
-	call Function1c17
+	call WriteBackup
 	call ClearSprites
 	hlcoord 1, 0
 	lb bc, 4, 10
@@ -9779,7 +9797,7 @@
 	call Function1d6e
 	ld hl, Function3e8e4
 	call CallBattleCore
-	call Function1c17
+	call WriteBackup
 
 	xor a
 	ld [wd0ec], a
@@ -9810,7 +9828,7 @@
 	add NUM_MOVES
 	ld [wBattleAction], a
 .asm_37aa8
-	jp Function1c17
+	jp WriteBackup
 ; 37aab
 
 
@@ -10045,14 +10063,16 @@
 	inc c
 	cp WEATHER_SUN
 	jr z, .Heal
+rept 2
 	dec c
-	dec c
+endr
 
 .Heal
 	ld b, 0
 	ld hl, .Multipliers
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 
 	ld a, [hli]
 	ld h, [hl]
--- a/battle/hidden_power.asm
+++ b/battle/hidden_power.asm
@@ -45,8 +45,9 @@
 
 ; Multiply by 5
 	ld b, a
+rept 2
 	add a
-	add a
+endr
 	add b
 
 ; Add Special & 3
@@ -74,8 +75,9 @@
 	ld a, [hl]
 	and 3 << 4
 	swap a
+rept 2
 	add a
-	add a
+endr
 	or b
 
 ; Skip Normal
--- a/battle/magikarp_length.asm
+++ b/battle/magikarp_length.asm
@@ -141,8 +141,9 @@
 	; hl = de * 10
 	ld h, d
 	ld l, e
+rept 2
 	add hl, hl
-	add hl, hl
+endr
 	add hl, de
 	add hl, hl
 
--- a/constants.asm
+++ b/constants.asm
@@ -5,7 +5,6 @@
 INCLUDE "hram.asm"
 
 INCLUDE "constants/wram_constants.asm"
-
 INCLUDE "constants/pokemon_constants.asm"
 INCLUDE "constants/type_constants.asm"
 INCLUDE "constants/move_constants.asm"
@@ -20,7 +19,9 @@
 INCLUDE "constants/music_constants.asm"
 INCLUDE "constants/sfx_constants.asm"
 INCLUDE "constants/animation_constants.asm"
+INCLUDE "constants/phone_constants.asm"
 INCLUDE "constants/gfx_constants.asm"
 INCLUDE "constants/pokemon_data_constants.asm"
 INCLUDE "constants/misc_constants.asm"
 INCLUDE "constants/std_constants.asm"
+INCLUDE "constants/deco_constants.asm"
--- a/constants/battle_constants.asm
+++ b/constants/battle_constants.asm
@@ -5,32 +5,35 @@
 
 REST_TURNS EQU 2
 
-ATTACK EQU 0
-DEFENSE EQU 1
-SPEED EQU 2
-SP_ATTACK EQU 3
-SP_DEFENSE EQU 4
-ACCURACY EQU 5
-EVASION EQU 6
+	const_def
+	const ATTACK
+	const DEFENSE
+	const SPEED
+	const SP_ATTACK
+	const SP_DEFENSE
+	const ACCURACY
+	const EVASION
 
 ; move struct
-MOVE_LENGTH EQU 7
-MOVE_ANIM EQU 0
-MOVE_EFFECT EQU 1
-MOVE_POWER EQU 2
-MOVE_TYPE EQU 3
-MOVE_ACC EQU 4
-MOVE_PP EQU 5
-MOVE_CHANCE EQU 6
+	const_def
+	const MOVE_ANIM
+	const MOVE_EFFECT
+	const MOVE_POWER
+	const MOVE_TYPE
+	const MOVE_ACC
+	const MOVE_PP
+	const MOVE_CHANCE
+	const MOVE_LENGTH
 
 ; stat constants
-NUM_STATS EQU 6
-STAT_HP EQU 1
-STAT_ATK EQU 2
-STAT_DEF EQU 3
-STAT_SPD EQU 4
-STAT_SATK EQU 5
-STAT_SDEF EQU 6
+const_value SET 1
+	const STAT_HP
+	const STAT_ATK
+	const STAT_DEF
+	const STAT_SPD
+	const STAT_SATK
+	const STAT_SDEF
+NUM_STATS EQU const_value
 STAT_MIN_NORMAL EQU 5
 STAT_MIN_HP EQU 10
 
@@ -39,263 +42,276 @@
 SPDSPCDV_SHINY EQU $AA
 
 ; battle classes
-WILD_BATTLE EQU 1
-TRAINER_BATTLE EQU 2
+const_value SET 1
+	const WILD_BATTLE
+	const TRAINER_BATTLE
 
 ; battle types
-BATTLETYPE_NORMAL EQU $00
-BATTLETYPE_CANLOSE EQU $01
-BATTLETYPE_TUTORIAL EQU $03
-BATTLETYPE_FISH EQU $04
-BATTLETYPE_ROAMING EQU $05
-BATTLETYPE_CONTEST EQU $06
-BATTLETYPE_SHINY EQU $07
-BATTLETYPE_TREE EQU $08
-BATTLETYPE_TRAP EQU $09
-BATTLETYPE_FORCEITEM EQU $0a
-BATTLETYPE_CELEBI EQU $0b
-BATTLETYPE_SUICUNE EQU $0c
+	const_def
+	const BATTLETYPE_NORMAL
+	const BATTLETYPE_CANLOSE
+	const BATTLETYPE_DEBUG
+	const BATTLETYPE_TUTORIAL
+	const BATTLETYPE_FISH
+	const BATTLETYPE_ROAMING
+	const BATTLETYPE_CONTEST
+	const BATTLETYPE_SHINY
+	const BATTLETYPE_TREE
+	const BATTLETYPE_TRAP
+	const BATTLETYPE_FORCEITEM
+	const BATTLETYPE_CELEBI
+	const BATTLETYPE_SUICUNE
 
 ; battle variables
-BATTLE_VARS_SUBSTATUS1 EQU 0
-BATTLE_VARS_SUBSTATUS2 EQU 1
-BATTLE_VARS_SUBSTATUS3 EQU 2
-BATTLE_VARS_SUBSTATUS4 EQU 3
-BATTLE_VARS_SUBSTATUS5 EQU 4
-BATTLE_VARS_SUBSTATUS1_OPP EQU 5
-BATTLE_VARS_SUBSTATUS2_OPP EQU 6
-BATTLE_VARS_SUBSTATUS3_OPP EQU 7
-BATTLE_VARS_SUBSTATUS4_OPP EQU 8
-BATTLE_VARS_SUBSTATUS5_OPP EQU 9
-BATTLE_VARS_STATUS EQU 10
-BATTLE_VARS_STATUS_OPP EQU 11
-BATTLE_VARS_MOVE_ANIM EQU 12
-BATTLE_VARS_MOVE_EFFECT EQU 13
-BATTLE_VARS_MOVE_POWER EQU 14
-BATTLE_VARS_MOVE_TYPE EQU 15
-BATTLE_VARS_MOVE EQU 16
-BATTLE_VARS_LAST_COUNTER_MOVE EQU 17
-BATTLE_VARS_LAST_COUNTER_MOVE_OPP EQU 18
-BATTLE_VARS_LAST_MOVE EQU 19
-BATTLE_VARS_LAST_MOVE_OPP EQU 20
+	const_def
+	const BATTLE_VARS_SUBSTATUS1
+	const BATTLE_VARS_SUBSTATUS2
+	const BATTLE_VARS_SUBSTATUS3
+	const BATTLE_VARS_SUBSTATUS4
+	const BATTLE_VARS_SUBSTATUS5
+	const BATTLE_VARS_SUBSTATUS1_OPP
+	const BATTLE_VARS_SUBSTATUS2_OPP
+	const BATTLE_VARS_SUBSTATUS3_OPP
+	const BATTLE_VARS_SUBSTATUS4_OPP
+	const BATTLE_VARS_SUBSTATUS5_OPP
+	const BATTLE_VARS_STATUS
+	const BATTLE_VARS_STATUS_OPP
+	const BATTLE_VARS_MOVE_ANIM
+	const BATTLE_VARS_MOVE_EFFECT
+	const BATTLE_VARS_MOVE_POWER
+	const BATTLE_VARS_MOVE_TYPE
+	const BATTLE_VARS_MOVE
+	const BATTLE_VARS_LAST_COUNTER_MOVE
+	const BATTLE_VARS_LAST_COUNTER_MOVE_OPP
+	const BATTLE_VARS_LAST_MOVE
+	const BATTLE_VARS_LAST_MOVE_OPP
 
 ; status
-SLP EQU 7 ; 7 turns
-PSN EQU 3
-BRN EQU 4
-FRZ EQU 5
-PAR EQU 6
+const_value SET 3
+	const PSN
+	const BRN
+	const FRZ
+	const PAR
+	const SLP ; 7 turns
 
 ; substatus
-SUBSTATUS_IN_LOVE      EQU 7
-SUBSTATUS_ROLLOUT      EQU 6
-SUBSTATUS_ENDURE       EQU 5
-SUBSTATUS_PERISH       EQU 4
-SUBSTATUS_IDENTIFIED   EQU 3
-SUBSTATUS_PROTECT      EQU 2
-SUBSTATUS_CURSE        EQU 1
-SUBSTATUS_NIGHTMARE    EQU 0
+	enum_start 7, -1
+	enum SUBSTATUS_IN_LOVE
+	enum SUBSTATUS_ROLLOUT
+	enum SUBSTATUS_ENDURE
+	enum SUBSTATUS_PERISH
+	enum SUBSTATUS_IDENTIFIED
+	enum SUBSTATUS_PROTECT
+	enum SUBSTATUS_CURSE
+	enum SUBSTATUS_NIGHTMARE
 
 SUBSTATUS_CURLED       EQU 0
 
-SUBSTATUS_CONFUSED     EQU 7
-SUBSTATUS_FLYING       EQU 6
-SUBSTATUS_UNDERGROUND  EQU 5
-SUBSTATUS_CHARGED      EQU 4
-SUBSTATUS_FLINCHED     EQU 3
-SUBSTATUS_IN_LOOP      EQU 2
-SUBSTATUS_RAMPAGE      EQU 1
-SUBSTATUS_BIDE         EQU 0
+	enum_start 7, -1
+	enum SUBSTATUS_CONFUSED
+	enum SUBSTATUS_FLYING
+	enum SUBSTATUS_UNDERGROUND
+	enum SUBSTATUS_CHARGED
+	enum SUBSTATUS_FLINCHED
+	enum SUBSTATUS_IN_LOOP
+	enum SUBSTATUS_RAMPAGE
+	enum SUBSTATUS_BIDE
 
-SUBSTATUS_LEECH_SEED   EQU 7
-SUBSTATUS_RAGE         EQU 6
-SUBSTATUS_RECHARGE     EQU 5
-SUBSTATUS_SUBSTITUTE   EQU 4
-;                      EQU 3
-SUBSTATUS_FOCUS_ENERGY EQU 2
-SUBSTATUS_MIST         EQU 1
-SUBSTATUS_X_ACCURACY   EQU 0
+	enum_start 7, -1
+	enum SUBSTATUS_LEECH_SEED
+	enum SUBSTATUS_RAGE
+	enum SUBSTATUS_RECHARGE
+	enum SUBSTATUS_SUBSTITUTE
+	enum SUBSTATUS_UNKNOWN_1
+	enum SUBSTATUS_FOCUS_ENERGY
+	enum SUBSTATUS_MIST
+	enum SUBSTATUS_X_ACCURACY
 
-SUBSTATUS_CANT_RUN     EQU 7
-SUBSTATUS_DESTINY_BOND EQU 6
-SUBSTATUS_LOCK_ON      EQU 5
-SUBSTATUS_ENCORED      EQU 4
-SUBSTATUS_TRANSFORMED  EQU 3
-;                      EQU 2
-;                      EQU 1
-SUBSTATUS_TOXIC        EQU 0
+	enum_start 7, -1
+	enum SUBSTATUS_CANT_RUN
+	enum SUBSTATUS_DESTINY_BOND
+	enum SUBSTATUS_LOCK_ON
+	enum SUBSTATUS_ENCORED
+	enum SUBSTATUS_TRANSFORMED
+	enum SUBSTATUS_UNKNOWN_2
+	enum SUBSTATUS_UNKNOWN_3
+	enum SUBSTATUS_TOXIC
 
 ; environmental
-SCREENS_REFLECT      EQU 4
-SCREENS_LIGHT_SCREEN EQU 3
-SCREENS_SAFEGUARD    EQU 2
-SCREENS_SPIKES       EQU 0
+	enum_start 4, -1
+	enum SCREENS_REFLECT
+	enum SCREENS_LIGHT_SCREEN
+	enum SCREENS_SAFEGUARD
+	enum SCREENS_UNUSED
+	enum SCREENS_SPIKES
 
 ; weather
-WEATHER_NONE EQU 0
-WEATHER_RAIN EQU 1
-WEATHER_SUN EQU 2
-WEATHER_SANDSTORM EQU 3
-WEATHER_RAIN_END EQU 4
-WEATHER_SUN_END EQU 5
-WEATHER_SANDSTORM_END EQU 6
+	const_def
+	const WEATHER_NONE
+	const WEATHER_RAIN
+	const WEATHER_SUN
+	const WEATHER_SANDSTORM
+	const WEATHER_RAIN_END
+	const WEATHER_SUN_END
+	const WEATHER_SANDSTORM_END
 
 
 ; move effects
-EFFECT_NORMAL_HIT          EQU $00
-EFFECT_SLEEP               EQU $01
-EFFECT_POISON_HIT          EQU $02
-EFFECT_LEECH_HIT           EQU $03
-EFFECT_BURN_HIT            EQU $04
-EFFECT_FREEZE_HIT          EQU $05
-EFFECT_PARALYZE_HIT        EQU $06
-EFFECT_EXPLOSION           EQU $07
-EFFECT_DREAM_EATER         EQU $08
-EFFECT_MIRROR_MOVE         EQU $09
-EFFECT_ATTACK_UP           EQU $0a
-EFFECT_DEFENSE_UP          EQU $0b
-EFFECT_SPEED_UP            EQU $0c
-EFFECT_SP_ATK_UP           EQU $0d
-EFFECT_SP_DEF_UP           EQU $0e
-EFFECT_ACCURACY_UP         EQU $0f
-EFFECT_EVASION_UP          EQU $10
-EFFECT_ALWAYS_HIT          EQU $11
-EFFECT_ATTACK_DOWN         EQU $12
-EFFECT_DEFENSE_DOWN        EQU $13
-EFFECT_SPEED_DOWN          EQU $14
-EFFECT_SP_ATK_DOWN         EQU $15
-EFFECT_SP_DEF_DOWN         EQU $16
-EFFECT_ACCURACY_DOWN       EQU $17
-EFFECT_EVASION_DOWN        EQU $18
-EFFECT_HAZE                EQU $19
-EFFECT_BIDE                EQU $1a
-EFFECT_RAMPAGE             EQU $1b
-EFFECT_WHIRLWIND           EQU $1c
-EFFECT_MULTI_HIT           EQU $1d
-EFFECT_CONVERSION          EQU $1e
-EFFECT_FLINCH_HIT          EQU $1f
-EFFECT_HEAL                EQU $20
-EFFECT_TOXIC               EQU $21
-EFFECT_PAY_DAY             EQU $22
-EFFECT_LIGHT_SCREEN        EQU $23
-EFFECT_TRI_ATTACK          EQU $24
-EFFECT_UNUSED_25           EQU $25 ; unused
-EFFECT_OHKO                EQU $26
-EFFECT_RAZOR_WIND          EQU $27
-EFFECT_SUPER_FANG          EQU $28
-EFFECT_STATIC_DAMAGE       EQU $29
-EFFECT_BIND                EQU $2a
-EFFECT_UNUSED_2B           EQU $2b ; unused
-EFFECT_DOUBLE_HIT          EQU $2c
-EFFECT_JUMP_KICK           EQU $2d
-EFFECT_MIST                EQU $2e
-EFFECT_FOCUS_ENERGY        EQU $2f
-EFFECT_RECOIL_HIT          EQU $30
-EFFECT_CONFUSE             EQU $31
-EFFECT_ATTACK_UP_2         EQU $32
-EFFECT_DEFENSE_UP_2        EQU $33
-EFFECT_SPEED_UP_2          EQU $34
-EFFECT_SP_ATK_UP_2         EQU $35
-EFFECT_SP_DEF_UP_2         EQU $36
-EFFECT_ACCURACY_UP_2       EQU $37
-EFFECT_EVASION_UP_2        EQU $38
-EFFECT_TRANSFORM           EQU $39
-EFFECT_ATTACK_DOWN_2       EQU $3a
-EFFECT_DEFENSE_DOWN_2      EQU $3b
-EFFECT_SPEED_DOWN_2        EQU $3c
-EFFECT_SP_ATK_DOWN_2       EQU $3d
-EFFECT_SP_DEF_DOWN_2       EQU $3e
-EFFECT_ACCURACY_DOWN_2     EQU $3f
-EFFECT_EVASION_DOWN_2      EQU $40
-EFFECT_REFLECT             EQU $41
-EFFECT_POISON              EQU $42
-EFFECT_PARALYZE            EQU $43
-EFFECT_ATTACK_DOWN_HIT     EQU $44
-EFFECT_DEFENSE_DOWN_HIT    EQU $45
-EFFECT_SPEED_DOWN_HIT      EQU $46
-EFFECT_SP_ATK_DOWN_HIT     EQU $47
-EFFECT_SP_DEF_DOWN_HIT     EQU $48
-EFFECT_ACCURACY_DOWN_HIT   EQU $49
-EFFECT_EVASION_DOWN_HIT    EQU $4a
-EFFECT_SKY_ATTACK          EQU $4b
-EFFECT_CONFUSE_HIT         EQU $4c
-EFFECT_TWINEEDLE           EQU $4d
-EFFECT_UNUSED_4E           EQU $4e ; unused
-EFFECT_SUBSTITUTE          EQU $4f
-EFFECT_HYPER_BEAM          EQU $50
-EFFECT_RAGE                EQU $51
-EFFECT_MIMIC               EQU $52
-EFFECT_METRONOME           EQU $53
-EFFECT_LEECH_SEED          EQU $54
-EFFECT_SPLASH              EQU $55
-EFFECT_DISABLE             EQU $56
-EFFECT_LEVEL_DAMAGE        EQU $57
-EFFECT_PSYWAVE             EQU $58
-EFFECT_COUNTER             EQU $59
-EFFECT_ENCORE              EQU $5a
-EFFECT_PAIN_SPLIT          EQU $5b
-EFFECT_SNORE               EQU $5c
-EFFECT_CONVERSION2         EQU $5d
-EFFECT_LOCK_ON             EQU $5e
-EFFECT_SKETCH              EQU $5f
-EFFECT_DEFROST_OPPONENT    EQU $60
-EFFECT_SLEEP_TALK          EQU $61
-EFFECT_DESTINY_BOND        EQU $62
-EFFECT_REVERSAL            EQU $63
-EFFECT_SPITE               EQU $64
-EFFECT_FALSE_SWIPE         EQU $65
-EFFECT_HEAL_BELL           EQU $66
-EFFECT_PRIORITY_HIT        EQU $67
-EFFECT_TRIPLE_KICK         EQU $68
-EFFECT_THIEF               EQU $69
-EFFECT_MEAN_LOOK           EQU $6a
-EFFECT_NIGHTMARE           EQU $6b
-EFFECT_FLAME_WHEEL         EQU $6c
-EFFECT_CURSE               EQU $6d
-EFFECT_UNUSED_6E           EQU $6e ; unused
-EFFECT_PROTECT             EQU $6f
-EFFECT_SPIKES              EQU $70
-EFFECT_FORESIGHT           EQU $71
-EFFECT_PERISH_SONG         EQU $72
-EFFECT_SANDSTORM           EQU $73
-EFFECT_ENDURE              EQU $74
-EFFECT_ROLLOUT             EQU $75
-EFFECT_SWAGGER             EQU $76
-EFFECT_FURY_CUTTER         EQU $77
-EFFECT_ATTRACT             EQU $78
-EFFECT_RETURN              EQU $79
-EFFECT_PRESENT             EQU $7a
-EFFECT_FRUSTRATION         EQU $7b
-EFFECT_SAFEGUARD           EQU $7c
-EFFECT_SACRED_FIRE         EQU $7d
-EFFECT_MAGNITUDE           EQU $7e
-EFFECT_BATON_PASS          EQU $7f
-EFFECT_PURSUIT             EQU $80
-EFFECT_RAPID_SPIN          EQU $81
-EFFECT_UNUSED_82           EQU $82 ; unused
-EFFECT_UNUSED_83           EQU $83 ; unused
-EFFECT_MORNING_SUN         EQU $84
-EFFECT_SYNTHESIS           EQU $85
-EFFECT_MOONLIGHT           EQU $86
-EFFECT_HIDDEN_POWER        EQU $87
-EFFECT_RAIN_DANCE          EQU $88
-EFFECT_SUNNY_DAY           EQU $89
-EFFECT_STEEL_WING          EQU $8a
-EFFECT_METAL_CLAW          EQU $8b
-EFFECT_ANCIENTPOWER        EQU $8c
-EFFECT_FAKE_OUT            EQU $8d
-EFFECT_BELLY_DRUM          EQU $8e
-EFFECT_PSYCH_UP            EQU $8f
-EFFECT_MIRROR_COAT         EQU $90
-EFFECT_SKULL_BASH          EQU $91
-EFFECT_TWISTER             EQU $92
-EFFECT_EARTHQUAKE          EQU $93
-EFFECT_FUTURE_SIGHT        EQU $94
-EFFECT_GUST                EQU $95
-EFFECT_STOMP               EQU $96
-EFFECT_SOLARBEAM           EQU $97
-EFFECT_THUNDER             EQU $98
-EFFECT_TELEPORT            EQU $99
-EFFECT_BEAT_UP             EQU $9a
-EFFECT_FLY                 EQU $9b
-EFFECT_DEFENSE_CURL        EQU $9c
+	const_def
+	const EFFECT_NORMAL_HIT
+	const EFFECT_SLEEP
+	const EFFECT_POISON_HIT
+	const EFFECT_LEECH_HIT
+	const EFFECT_BURN_HIT
+	const EFFECT_FREEZE_HIT
+	const EFFECT_PARALYZE_HIT
+	const EFFECT_EXPLOSION
+	const EFFECT_DREAM_EATER
+	const EFFECT_MIRROR_MOVE
+	const EFFECT_ATTACK_UP
+	const EFFECT_DEFENSE_UP
+	const EFFECT_SPEED_UP
+	const EFFECT_SP_ATK_UP
+	const EFFECT_SP_DEF_UP
+	const EFFECT_ACCURACY_UP
+	const EFFECT_EVASION_UP
+	const EFFECT_ALWAYS_HIT
+	const EFFECT_ATTACK_DOWN
+	const EFFECT_DEFENSE_DOWN
+	const EFFECT_SPEED_DOWN
+	const EFFECT_SP_ATK_DOWN
+	const EFFECT_SP_DEF_DOWN
+	const EFFECT_ACCURACY_DOWN
+	const EFFECT_EVASION_DOWN
+	const EFFECT_HAZE
+	const EFFECT_BIDE
+	const EFFECT_RAMPAGE
+	const EFFECT_WHIRLWIND
+	const EFFECT_MULTI_HIT
+	const EFFECT_CONVERSION
+	const EFFECT_FLINCH_HIT
+	const EFFECT_HEAL
+	const EFFECT_TOXIC
+	const EFFECT_PAY_DAY
+	const EFFECT_LIGHT_SCREEN
+	const EFFECT_TRI_ATTACK
+	const EFFECT_UNUSED_25
+	const EFFECT_OHKO
+	const EFFECT_RAZOR_WIND
+	const EFFECT_SUPER_FANG
+	const EFFECT_STATIC_DAMAGE
+	const EFFECT_BIND
+	const EFFECT_UNUSED_2B
+	const EFFECT_DOUBLE_HIT
+	const EFFECT_JUMP_KICK
+	const EFFECT_MIST
+	const EFFECT_FOCUS_ENERGY
+	const EFFECT_RECOIL_HIT
+	const EFFECT_CONFUSE
+	const EFFECT_ATTACK_UP_2
+	const EFFECT_DEFENSE_UP_2
+	const EFFECT_SPEED_UP_2
+	const EFFECT_SP_ATK_UP_2
+	const EFFECT_SP_DEF_UP_2
+	const EFFECT_ACCURACY_UP_2
+	const EFFECT_EVASION_UP_2
+	const EFFECT_TRANSFORM
+	const EFFECT_ATTACK_DOWN_2
+	const EFFECT_DEFENSE_DOWN_2
+	const EFFECT_SPEED_DOWN_2
+	const EFFECT_SP_ATK_DOWN_2
+	const EFFECT_SP_DEF_DOWN_2
+	const EFFECT_ACCURACY_DOWN_2
+	const EFFECT_EVASION_DOWN_2
+	const EFFECT_REFLECT
+	const EFFECT_POISON
+	const EFFECT_PARALYZE
+	const EFFECT_ATTACK_DOWN_HIT
+	const EFFECT_DEFENSE_DOWN_HIT
+	const EFFECT_SPEED_DOWN_HIT
+	const EFFECT_SP_ATK_DOWN_HIT
+	const EFFECT_SP_DEF_DOWN_HIT
+	const EFFECT_ACCURACY_DOWN_HIT
+	const EFFECT_EVASION_DOWN_HIT
+	const EFFECT_SKY_ATTACK
+	const EFFECT_CONFUSE_HIT
+	const EFFECT_TWINEEDLE
+	const EFFECT_UNUSED_4E
+	const EFFECT_SUBSTITUTE
+	const EFFECT_HYPER_BEAM
+	const EFFECT_RAGE
+	const EFFECT_MIMIC
+	const EFFECT_METRONOME
+	const EFFECT_LEECH_SEED
+	const EFFECT_SPLASH
+	const EFFECT_DISABLE
+	const EFFECT_LEVEL_DAMAGE
+	const EFFECT_PSYWAVE
+	const EFFECT_COUNTER
+	const EFFECT_ENCORE
+	const EFFECT_PAIN_SPLIT
+	const EFFECT_SNORE
+	const EFFECT_CONVERSION2
+	const EFFECT_LOCK_ON
+	const EFFECT_SKETCH
+	const EFFECT_DEFROST_OPPONENT
+	const EFFECT_SLEEP_TALK
+	const EFFECT_DESTINY_BOND
+	const EFFECT_REVERSAL
+	const EFFECT_SPITE
+	const EFFECT_FALSE_SWIPE
+	const EFFECT_HEAL_BELL
+	const EFFECT_PRIORITY_HIT
+	const EFFECT_TRIPLE_KICK
+	const EFFECT_THIEF
+	const EFFECT_MEAN_LOOK
+	const EFFECT_NIGHTMARE
+	const EFFECT_FLAME_WHEEL
+	const EFFECT_CURSE
+	const EFFECT_UNUSED_6E
+	const EFFECT_PROTECT
+	const EFFECT_SPIKES
+	const EFFECT_FORESIGHT
+	const EFFECT_PERISH_SONG
+	const EFFECT_SANDSTORM
+	const EFFECT_ENDURE
+	const EFFECT_ROLLOUT
+	const EFFECT_SWAGGER
+	const EFFECT_FURY_CUTTER
+	const EFFECT_ATTRACT
+	const EFFECT_RETURN
+	const EFFECT_PRESENT
+	const EFFECT_FRUSTRATION
+	const EFFECT_SAFEGUARD
+	const EFFECT_SACRED_FIRE
+	const EFFECT_MAGNITUDE
+	const EFFECT_BATON_PASS
+	const EFFECT_PURSUIT
+	const EFFECT_RAPID_SPIN
+	const EFFECT_UNUSED_82
+	const EFFECT_UNUSED_83
+	const EFFECT_MORNING_SUN
+	const EFFECT_SYNTHESIS
+	const EFFECT_MOONLIGHT
+	const EFFECT_HIDDEN_POWER
+	const EFFECT_RAIN_DANCE
+	const EFFECT_SUNNY_DAY
+	const EFFECT_STEEL_WING
+	const EFFECT_METAL_CLAW
+	const EFFECT_ANCIENTPOWER
+	const EFFECT_FAKE_OUT
+	const EFFECT_BELLY_DRUM
+	const EFFECT_PSYCH_UP
+	const EFFECT_MIRROR_COAT
+	const EFFECT_SKULL_BASH
+	const EFFECT_TWISTER
+	const EFFECT_EARTHQUAKE
+	const EFFECT_FUTURE_SIGHT
+	const EFFECT_GUST
+	const EFFECT_STOMP
+	const EFFECT_SOLARBEAM
+	const EFFECT_THUNDER
+	const EFFECT_TELEPORT
+	const EFFECT_BEAT_UP
+	const EFFECT_FLY
+	const EFFECT_DEFENSE_CURL
--- /dev/null
+++ b/constants/deco_constants.asm
@@ -1,0 +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
--- a/constants/engine_flags.asm
+++ b/constants/engine_flags.asm
@@ -1,162 +1,164 @@
-ENGINE_RADIO_CARD                            EQU $00
-ENGINE_MAP_CARD                              EQU $01
-ENGINE_PHONE_CARD                            EQU $02
-ENGINE_EXPN_CARD                             EQU $03
-ENGINE_POKEGEAR                              EQU $04
-ENGINE_DAYCARE_MONS_ARE_COMPATIBLE           EQU $05
-ENGINE_DAYCARE_MAN_HAS_MON                   EQU $06
-ENGINE_DAYCARE_LADY_HAS_MON                  EQU $07
-ENGINE_MOM_SAVING_MONEY                      EQU $08
-ENGINE_DST                                   EQU $09
-ENGINE_0A                                    EQU $0a
-ENGINE_POKEDEX                               EQU $0b
-ENGINE_UNOWN_DEX                             EQU $0c
-ENGINE_POKERUS                               EQU $0d
-ENGINE_ROCKET_SIGNAL_ON_CH20                 EQU $0e
-ENGINE_CREDITS_SKIP                          EQU $0f
-ENGINE_BUG_CONTEST_ON                        EQU $10
-ENGINE_BUG_CONTEST_TIMER                     EQU $11
-ENGINE_ROCKETS_IN_RADIO_TOWER                EQU $12
-ENGINE_BIKE_SHOP_CALL_ENABLED                EQU $13
-ENGINE_14                                    EQU $14
-ENGINE_GIVE_POKERUS                          EQU $15
-ENGINE_16                                    EQU $16
-ENGINE_ROCKETS_IN_MAHOGANY                   EQU $17
-ENGINE_STRENGTH_ACTIVE                       EQU $18
-ENGINE_ALWAYS_ON_BIKE                        EQU $19
-ENGINE_DOWNHILL                              EQU $1a
-ENGINE_ZEPHYRBADGE                           EQU $1b
-ENGINE_HIVEBADGE                             EQU $1c
-ENGINE_PLAINBADGE                            EQU $1d
-ENGINE_FOGBADGE                              EQU $1e
-ENGINE_MINERALBADGE                          EQU $1f
-ENGINE_STORMBADGE                            EQU $20
-ENGINE_GLACIERBADGE                          EQU $21
-ENGINE_RISINGBADGE                           EQU $22
-ENGINE_BOULDERBADGE                          EQU $23
-ENGINE_CASCADEBADGE                          EQU $24
-ENGINE_THUNDERBADGE                          EQU $25
-ENGINE_RAINBOWBADGE                          EQU $26
-ENGINE_SOULBADGE                             EQU $27
-ENGINE_MARSHBADGE                            EQU $28
-ENGINE_VOLCANOBADGE                          EQU $29
-ENGINE_EARTHBADGE                            EQU $2a
-ENGINE_UNLOCKED_UNOWNS_1                     EQU $2b
-ENGINE_UNLOCKED_UNOWNS_2                     EQU $2c
-ENGINE_UNLOCKED_UNOWNS_3                     EQU $2d
-ENGINE_UNLOCKED_UNOWNS_4                     EQU $2e
-ENGINE_UNLOCKED_UNOWNS_5                     EQU $2f
-ENGINE_UNLOCKED_UNOWNS_6                     EQU $30
-ENGINE_UNLOCKED_UNOWNS_7                     EQU $31
-ENGINE_UNLOCKED_UNOWNS_8                     EQU $32
-ENGINE_FLYPOINT_KRISS_HOUSE                  EQU $33
-ENGINE_FLYPOINT_VIRIDIAN_POKECENTER          EQU $34
-ENGINE_FLYPOINT_PALLET                       EQU $35
-ENGINE_FLYPOINT_VIRIDIAN                     EQU $36
-ENGINE_FLYPOINT_PEWTER                       EQU $37
-ENGINE_FLYPOINT_CERULEAN                     EQU $38
-ENGINE_FLYPOINT_ROCK_TUNNEL                  EQU $39
-ENGINE_FLYPOINT_VERMILION                    EQU $3a
-ENGINE_FLYPOINT_LAVENDER                     EQU $3b
-ENGINE_FLYPOINT_SAFFRON                      EQU $3c
-ENGINE_FLYPOINT_CELADON                      EQU $3d
-ENGINE_FLYPOINT_FUCHSIA                      EQU $3e
-ENGINE_FLYPOINT_CINNABAR                     EQU $3f
-ENGINE_FLYPOINT_INDIGO_PLATEAU               EQU $40
-ENGINE_FLYPOINT_NEW_BARK                     EQU $41
-ENGINE_FLYPOINT_CHERRYGROVE                  EQU $42
-ENGINE_FLYPOINT_VIOLET                       EQU $43
-ENGINE_FLYPOINT_AZALEA                       EQU $44
-ENGINE_FLYPOINT_CIANWOOD                     EQU $45
-ENGINE_FLYPOINT_GOLDENROD                    EQU $46
-ENGINE_FLYPOINT_OLIVINE                      EQU $47
-ENGINE_FLYPOINT_ECRUTEAK                     EQU $48
-ENGINE_FLYPOINT_MAHOGANY                     EQU $49
-ENGINE_FLYPOINT_LAKE_OF_RAGE                 EQU $4a
-ENGINE_FLYPOINT_BLACKTHORN                   EQU $4b
-ENGINE_FLYPOINT_SILVER_CAVE                  EQU $4c
-ENGINE_FLYPOINT_UNUSED                       EQU $4d
-ENGINE_LUCKY_NUMBER_SHOW                     EQU $4e
-ENGINE_4F                                    EQU $4f
-ENGINE_KURT_MAKING_BALLS                     EQU $50
-ENGINE_51                                    EQU $51
-ENGINE_SPECIAL_WILDDATA                      EQU $52
-ENGINE_TIME_CAPSULE                          EQU $53
-ENGINE_ALL_FRUIT_TREES                       EQU $54
-ENGINE_SHUCKLE_GIVEN                         EQU $55
-ENGINE_GOLDENROD_UNDERGROUND_MERCHANT_CLOSED EQU $56
-ENGINE_FOUGHT_IN_TRAINER_HALL_TODAY          EQU $57
-ENGINE_MT_MOON_SQUARE_CLEFAIRY               EQU $58
-ENGINE_UNION_CAVE_LAPRAS                     EQU $59
-ENGINE_GOLDENROD_UNDERGROUND_GOT_HAIRCUT     EQU $5a
-ENGINE_GOLDENROD_MALL_5F_HAPPINESS_EVENT     EQU $5b
-ENGINE_TEA_IN_BLUES_HOUSE                    EQU $5c
-ENGINE_INDIGO_PLATEAU_RIVAL_FIGHT            EQU $5d
-ENGINE_5E                                    EQU $5e
-ENGINE_5F                                    EQU $5f
-ENGINE_60                                    EQU $60
-ENGINE_GOLDENROD_DEPT_STORE_SALE_IS_ON       EQU $61
-ENGINE_62                                    EQU $62
-ENGINE_PLAYER_IS_FEMALE                      EQU $63
-ENGINE_HAVE_EXAMINED_GS_BALL                 EQU $64
-ENGINE_JACK                                  EQU $65
-ENGINE_HUEY                                  EQU $66
-ENGINE_GAVEN                                 EQU $67
-ENGINE_BETH                                  EQU $68
-ENGINE_JOSE                                  EQU $69
-ENGINE_REENA                                 EQU $6a
-ENGINE_JOEY                                  EQU $6b
-ENGINE_WADE                                  EQU $6c
-ENGINE_RALPH                                 EQU $6d
-ENGINE_LIZ                                   EQU $6e
-ENGINE_ANTHONY                               EQU $6f
-ENGINE_TODD                                  EQU $70
-ENGINE_GINA                                  EQU $71
-ENGINE_ARNIE                                 EQU $72
-ENGINE_ALAN                                  EQU $73
-ENGINE_DANA                                  EQU $74
-ENGINE_CHAD                                  EQU $75
-ENGINE_TULLY                                 EQU $76
-ENGINE_BRENT                                 EQU $77
-ENGINE_TIFFANY                               EQU $78
-ENGINE_VANCE                                 EQU $79
-ENGINE_WILTON                                EQU $7a
-ENGINE_PARRY                                 EQU $7b
-ENGINE_ERIN                                  EQU $7c
-ENGINE_BEVERLY_HAS_NUGGET                    EQU $7d
-ENGINE_JOSE_HAS_STAR_PIECE                   EQU $7e
-ENGINE_WADE_HAS_ITEM                         EQU $7f
-ENGINE_GINA_HAS_LEAF_STONE                   EQU $80
-ENGINE_ALAN_HAS_FIRE_STONE                   EQU $81
-ENGINE_LIZ_HAS_THUNDERSTONE                  EQU $82
-ENGINE_DEREK_HAS_NUGGET                      EQU $83
-ENGINE_TULLY_HAS_WATER_STONE                 EQU $84
-ENGINE_TIFFANY_HAS_PINK_BOW                  EQU $85
-ENGINE_WILTON_HAS_ITEM                       EQU $86
-ENGINE_87                                    EQU $87
-ENGINE_88                                    EQU $88
-ENGINE_89                                    EQU $89
-ENGINE_8A                                    EQU $8a
-ENGINE_8B                                    EQU $8b
-ENGINE_8C                                    EQU $8c
-ENGINE_8D                                    EQU $8d
-ENGINE_8E                                    EQU $8e
-ENGINE_8F                                    EQU $8f
-ENGINE_90                                    EQU $90
-ENGINE_91                                    EQU $91
-ENGINE_92                                    EQU $92
-ENGINE_93                                    EQU $93
-ENGINE_94                                    EQU $94
-ENGINE_95                                    EQU $95
-ENGINE_96                                    EQU $96
-ENGINE_97                                    EQU $97
-ENGINE_98                                    EQU $98
-ENGINE_99                                    EQU $99
-ENGINE_9A                                    EQU $9a
-ENGINE_9B                                    EQU $9b
-ENGINE_9C                                    EQU $9c
-ENGINE_9D                                    EQU $9d
-ENGINE_9E                                    EQU $9e
-ENGINE_KRIS_IN_CABLE_CLUB                    EQU $9f
-ENGINE_DUNSPARCE_SWARM                       EQU $a0
-ENGINE_YANMA_SWARM                           EQU $a1
+	const_def
+
+	const ENGINE_RADIO_CARD
+	const ENGINE_MAP_CARD
+	const ENGINE_PHONE_CARD
+	const ENGINE_EXPN_CARD
+	const ENGINE_POKEGEAR
+	const ENGINE_DAYCARE_MONS_ARE_COMPATIBLE
+	const ENGINE_DAYCARE_MAN_HAS_MON
+	const ENGINE_DAYCARE_LADY_HAS_MON
+	const ENGINE_MOM_SAVING_MONEY
+	const ENGINE_DST
+	const ENGINE_0A
+	const ENGINE_POKEDEX
+	const ENGINE_UNOWN_DEX
+	const ENGINE_POKERUS
+	const ENGINE_ROCKET_SIGNAL_ON_CH20
+	const ENGINE_CREDITS_SKIP
+	const ENGINE_BUG_CONTEST_ON ; 10
+	const ENGINE_BUG_CONTEST_TIMER
+	const ENGINE_12
+	const ENGINE_ROCKETS_IN_RADIO_TOWER
+	const ENGINE_BIKE_SHOP_CALL_ENABLED
+	const ENGINE_GIVE_POKERUS
+	const ENGINE_FLORIA
+	const ENGINE_ROCKETS_IN_MAHOGANY
+	const ENGINE_STRENGTH_ACTIVE
+	const ENGINE_ALWAYS_ON_BIKE
+	const ENGINE_DOWNHILL
+	const ENGINE_ZEPHYRBADGE
+	const ENGINE_HIVEBADGE
+	const ENGINE_PLAINBADGE
+	const ENGINE_FOGBADGE
+	const ENGINE_MINERALBADGE
+	const ENGINE_STORMBADGE ; 20
+	const ENGINE_GLACIERBADGE
+	const ENGINE_RISINGBADGE
+	const ENGINE_BOULDERBADGE
+	const ENGINE_CASCADEBADGE
+	const ENGINE_THUNDERBADGE
+	const ENGINE_RAINBOWBADGE
+	const ENGINE_SOULBADGE
+	const ENGINE_MARSHBADGE
+	const ENGINE_VOLCANOBADGE
+	const ENGINE_EARTHBADGE
+	const ENGINE_UNLOCKED_UNOWNS_1
+	const ENGINE_UNLOCKED_UNOWNS_2
+	const ENGINE_UNLOCKED_UNOWNS_3
+	const ENGINE_UNLOCKED_UNOWNS_4
+	const ENGINE_UNLOCKED_UNOWNS_5
+	const ENGINE_UNLOCKED_UNOWNS_6 ; 30
+	const ENGINE_UNLOCKED_UNOWNS_7
+	const ENGINE_UNLOCKED_UNOWNS_8
+	const ENGINE_FLYPOINT_KRISS_HOUSE
+	const ENGINE_FLYPOINT_VIRIDIAN_POKECENTER
+	const ENGINE_FLYPOINT_PALLET
+	const ENGINE_FLYPOINT_VIRIDIAN
+	const ENGINE_FLYPOINT_PEWTER
+	const ENGINE_FLYPOINT_CERULEAN
+	const ENGINE_FLYPOINT_ROCK_TUNNEL
+	const ENGINE_FLYPOINT_VERMILION
+	const ENGINE_FLYPOINT_LAVENDER
+	const ENGINE_FLYPOINT_SAFFRON
+	const ENGINE_FLYPOINT_CELADON
+	const ENGINE_FLYPOINT_FUCHSIA
+	const ENGINE_FLYPOINT_CINNABAR
+	const ENGINE_FLYPOINT_INDIGO_PLATEAU ; 40
+	const ENGINE_FLYPOINT_NEW_BARK
+	const ENGINE_FLYPOINT_CHERRYGROVE
+	const ENGINE_FLYPOINT_VIOLET
+	const ENGINE_FLYPOINT_AZALEA
+	const ENGINE_FLYPOINT_CIANWOOD
+	const ENGINE_FLYPOINT_GOLDENROD
+	const ENGINE_FLYPOINT_OLIVINE
+	const ENGINE_FLYPOINT_ECRUTEAK
+	const ENGINE_FLYPOINT_MAHOGANY
+	const ENGINE_FLYPOINT_LAKE_OF_RAGE
+	const ENGINE_FLYPOINT_BLACKTHORN
+	const ENGINE_FLYPOINT_SILVER_CAVE
+	const ENGINE_FLYPOINT_UNUSED
+	const ENGINE_LUCKY_NUMBER_SHOW
+	const ENGINE_4F
+	const ENGINE_KURT_MAKING_BALLS ; 50
+	const ENGINE_DAILY_BUG_CONTEST
+	const ENGINE_SPECIAL_WILDDATA
+	const ENGINE_TIME_CAPSULE
+	const ENGINE_ALL_FRUIT_TREES
+	const ENGINE_SHUCKLE_GIVEN
+	const ENGINE_GOLDENROD_UNDERGROUND_MERCHANT_CLOSED
+	const ENGINE_FOUGHT_IN_TRAINER_HALL_TODAY
+	const ENGINE_MT_MOON_SQUARE_CLEFAIRY
+	const ENGINE_UNION_CAVE_LAPRAS
+	const ENGINE_GOLDENROD_UNDERGROUND_GOT_HAIRCUT
+	const ENGINE_GOLDENROD_MALL_5F_HAPPINESS_EVENT
+	const ENGINE_TEA_IN_BLUES_HOUSE
+	const ENGINE_INDIGO_PLATEAU_RIVAL_FIGHT
+	const ENGINE_DAILY_MOVE_TUTOR
+	const ENGINE_BUENAS_PASSWORD
+	const ENGINE_BUENAS_PASSWORD_2 ; 60
+	const ENGINE_GOLDENROD_DEPT_STORE_SALE_IS_ON
+	const ENGINE_62
+	const ENGINE_PLAYER_IS_FEMALE
+	const ENGINE_HAVE_EXAMINED_GS_BALL
+	const ENGINE_JACK
+	const ENGINE_HUEY
+	const ENGINE_GAVEN
+	const ENGINE_BETH
+	const ENGINE_JOSE
+	const ENGINE_REENA
+	const ENGINE_JOEY
+	const ENGINE_WADE
+	const ENGINE_RALPH
+	const ENGINE_LIZ
+	const ENGINE_ANTHONY
+	const ENGINE_TODD ; 70
+	const ENGINE_GINA
+	const ENGINE_ARNIE
+	const ENGINE_ALAN
+	const ENGINE_DANA
+	const ENGINE_CHAD
+	const ENGINE_TULLY
+	const ENGINE_BRENT
+	const ENGINE_TIFFANY
+	const ENGINE_VANCE
+	const ENGINE_WILTON
+	const ENGINE_PARRY
+	const ENGINE_ERIN
+	const ENGINE_BEVERLY_HAS_NUGGET
+	const ENGINE_JOSE_HAS_STAR_PIECE
+	const ENGINE_WADE_HAS_ITEM
+	const ENGINE_GINA_HAS_LEAF_STONE ; 80
+	const ENGINE_ALAN_HAS_FIRE_STONE
+	const ENGINE_DANA_HAS_THUNDERSTONE
+	const ENGINE_DEREK_HAS_NUGGET
+	const ENGINE_TULLY_HAS_WATER_STONE
+	const ENGINE_TIFFANY_HAS_PINK_BOW
+	const ENGINE_WILTON_HAS_ITEM
+	const ENGINE_JACK_MONDAY_MORNING
+	const ENGINE_HUEY_WEDNESDAY_NIGHT
+	const ENGINE_GAVEN_THURSDAY_MORNING
+	const ENGINE_BETH_FRIDAY_AFTERNOON
+	const ENGINE_JOSE_SATURDAY_NIGHT
+	const ENGINE_REENA_SUNDAY_MORNING
+	const ENGINE_JOEY_MONDAY_AFTERNOON
+	const ENGINE_WADE_TUESDAY_NIGHT
+	const ENGINE_RALPH_WEDNESDAY_MORNING
+	const ENGINE_LIZ_THURSDAY_AFTERNOON ; 90
+	const ENGINE_ANTHONY_FRIDAY_NIGHT
+	const ENGINE_TODD_SATURDAY_MORNING
+	const ENGINE_GINA_SUNDAY_AFTERNOON
+	const ENGINE_ARNIE_TUESDAY_MORNING
+	const ENGINE_ALAN_WEDNESDAY_AFTERNOON
+	const ENGINE_DANA_THURSDAY_NIGHT
+	const ENGINE_CHAD_FRIDAY_MORNING
+	const ENGINE_TULLY_SUNDAY_NIGHT
+	const ENGINE_BRENT_MONDAY_MORNING
+	const ENGINE_TIFFANY_TUESDAY_AFTERNOON
+	const ENGINE_VANCE_WEDNESDAY_NIGHT
+	const ENGINE_WILTON_THRUSDAY_MORNING
+	const ENGINE_PARRY_FRIDAY_AFTERNOON
+	const ENGINE_ERIN_SATURDAY_NIGHT
+	const ENGINE_KRIS_IN_CABLE_CLUB
+	const ENGINE_DUNSPARCE_SWARM ; a0
+	const ENGINE_YANMA_SWARM
--- a/constants/event_flags.asm
+++ b/constants/event_flags.asm
@@ -1,608 +1,2073 @@
-EVENT_GOT_TM31_MUD_SLAP                                EQU $008
-EVENT_GOT_TM49_FURY_CUTTER                             EQU $009
-EVENT_GOT_TM01_DYNAMICPUNCH                            EQU $00a
-EVENT_GOT_TM45_ATTRACT                                 EQU $00b
-EVENT_GOT_TM30_SHADOW_BALL                             EQU $00c
-EVENT_GOT_TM23_IRON_TAIL                               EQU $00d
-EVENT_GOT_TM16_ICY_WIND                                EQU $00e
-EVENT_GOT_TM24_DRAGONBREATH                            EQU $00f
-EVENT_GOT_HM01_CUT                                     EQU $010
-EVENT_GOT_HM02_FLY                                     EQU $011
-EVENT_GOT_HM03_SURF                                    EQU $012
-EVENT_GOT_HM04_STRENGTH                                EQU $013
-EVENT_GOT_HM05_FLASH                                   EQU $014
-EVENT_GOT_HM06_WHIRLPOOL                               EQU $015
-EVENT_GOT_OLD_ROD                                      EQU $017
-EVENT_GOT_GOOD_ROD                                     EQU $018
-EVENT_GOT_SUPER_ROD                                    EQU $019
-EVENT_GOT_A_POKEMON_FROM_ELM                           EQU $01a
-EVENT_GOT_CYNDAQUIL_FROM_ELM                           EQU $01b
-EVENT_GOT_TOTODILE_FROM_ELM                            EQU $01c
-EVENT_GOT_CHIKORITA_FROM_ELM                           EQU $01d
-EVENT_GOT_MYSTERY_EGG_FROM_MR_POKEMON                  EQU $01e
-EVENT_GAVE_MYSTERY_EGG_TO_ELM                          EQU $01f
-EVENT_JASMINE_RETURNED_TO_GYM                          EQU $020
-EVENT_CLEARED_RADIO_TOWER                              EQU $021
-EVENT_CLEARED_ROCKET_HIDEOUT                           EQU $022
-EVENT_GOT_SECRETPOTION_FROM_PHARMACY                   EQU $023
-EVENT_GOT_SS_TICKET_FROM_ELM                           EQU $024
-EVENT_USED_THE_CARD_KEY_IN_THE_RADIO_TOWER             EQU $025
-EVENT_REFUSED_TO_HELP_LANCE_AT_LAKE_OF_RAGE            EQU $026
-EVENT_GOT_BERRY_FROM_ROUTE_30_HOUSE                    EQU $027
-EVENT_MADE_WHITNEY_CRY                                 EQU $028
-EVENT_FOUGHT_SUDOWOODO                                 EQU $02a
-EVENT_CLEARED_SLOWPOKE_WELL                            EQU $02b
-EVENT_REFUSED_TO_TAKE_EGG_FROM_ELMS_AIDE               EQU $02c
-EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE                    EQU $02d
-EVENT_MADE_UNOWN_APPEAR_IN_RUINS                       EQU $02e
-EVENT_HEALED_MOOMOO                                    EQU $03d
-EVENT_GOT_TM13_SNORE_FROM_MOOMOO_FARM                  EQU $03e
-EVENT_TALKED_TO_FARMER_ABOUT_MOOMOO                    EQU $03f
-EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST            EQU $040
-EVENT_DUDE_TALKED_TO_YOU                               EQU $041
-EVENT_LEARNED_TO_CATCH_POKEMON                         EQU $042
-EVENT_ELM_CALLED_ABOUT_STOLEN_POKEMON                  EQU $043
-EVENT_BEAT_ELITE_FOUR                                  EQU $044
-EVENT_GOT_SHUCKIE                                      EQU $045
-EVENT_MANIA_TOOK_SHUCKIE_OR_LET_YOU_KEEP_HIM           EQU $046
-EVENT_GOT_SUNNY_DAY_FROM_RADIO_TOWER                   EQU $047
-EVENT_GOT_PINK_BOW_FROM_MARY                           EQU $048
-EVENT_USED_BASEMENT_KEY                                EQU $049
-EVENT_GOT_TM08_ROCK_SMASH                              EQU $04b
-EVENT_GOT_MYSTIC_WATER_IN_CHERRYGROVE                  EQU $04d
-EVENT_GOT_TM05_ROAR                                    EQU $04e
-EVENT_GOT_EEVEE                                        EQU $04f
-EVENT_GOT_KENYA                                        EQU $050
-EVENT_GAVE_KENYA                                       EQU $051
-EVENT_GOT_HP_UP_FROM_RANDY                             EQU $052
-EVENT_GOT_TM50_NIGHTMARE                               EQU $053
-EVENT_TOGEPI_HATCHED                                   EQU $054
-EVENT_SHOWED_TOGEPI_TO_ELM                             EQU $055
-EVENT_GOT_EVERSTONE_FROM_ELM                           EQU $056
-EVENT_GOT_QUICK_CLAW                                   EQU $057
-EVENT_GOT_TM10_HIDDEN_POWER                            EQU $058
-EVENT_GOT_TM36_SLUDGE_BOMB                             EQU $059
-EVENT_GOT_ITEMFINDER                                   EQU $05a
-EVENT_GOT_BICYCLE                                      EQU $05b
-EVENT_GOT_SQUIRTBOTTLE                                 EQU $05c
-EVENT_GOT_MIRACLE_SEED_IN_ROUTE_32                     EQU $05d
-EVENT_GOT_CHARCOAL_IN_CHARCOAL_KILN                    EQU $05e
-EVENT_GOT_TM02_HEADBUTT                                EQU $05f
-EVENT_DECIDED_TO_HELP_LANCE                            EQU $060
-EVENT_GOT_TYROGUE_FROM_KIYO                            EQU $061
-EVENT_MET_FRIEDA_OF_FRIDAY                             EQU $062
-EVENT_GOT_POISON_BARB_FROM_FRIEDA                      EQU $063
-EVENT_MET_TUSCANY_OF_TUESDAY                           EQU $064
-EVENT_GOT_PINK_BOW_FROM_TUSCANY                        EQU $065
-EVENT_MET_ARTHUR_OF_THURSDAY                           EQU $066
-EVENT_GOT_HARD_STONE_FROM_ARTHUR                       EQU $067
-EVENT_MET_SUNNY_OF_SUNDAY                              EQU $068
-EVENT_GOT_MAGNET_FROM_SUNNY                            EQU $069
-EVENT_MET_WESLEY_OF_WEDNESDAY                          EQU $06a
-EVENT_GOT_BLACKBELT_FROM_WESLEY                        EQU $06b
-EVENT_MET_SANTOS_OF_SATURDAY                           EQU $06c
-EVENT_GOT_SPELL_TAG_FROM_SANTOS                        EQU $06d
-EVENT_MET_MONICA_OF_MONDAY                             EQU $06e
-EVENT_GOT_SHARP_BEAK_FROM_MONICA                       EQU $06f
-EVENT_GOT_SOFT_SAND_FROM_KATE                          EQU $070
-EVENT_GOT_METAL_COAT_FROM_GRANDPA_ON_SS_AQUA           EQU $071
-EVENT_GOT_BLACKGLASSES_IN_DARK_CAVE                    EQU $072
-EVENT_GOT_KINGS_ROCK_IN_SLOWPOKE_WELL                  EQU $073
-EVENT_GOT_TM47_STEEL_WING                              EQU $074
-EVENT_GOT_TM37_SANDSTORM                               EQU $075
-EVENT_TOLD_ELM_ABOUT_TOGEPI_OVER_THE_PHONE             EQU $077
-EVENT_GOT_CLEAR_BELL                                   EQU $078
-EVENT_GOT_SILVER_WING                                  EQU $079
-EVENT_GOT_TM12_SWEET_SCENT                             EQU $07a
-EVENT_RELEASED_THE_BEASTS                              EQU $07b
-EVENT_GOT_MASTER_BALL_FROM_ELM                         EQU $07c
-EVENT_FOUND_REVIVE_IN_ROCKET_BASE_B1F                  EQU $086
-EVENT_MET_FLORIA                                       EQU $0b9
-EVENT_CAN_GIVE_GS_BALL_TO_KURT                         EQU $0be
-EVENT_RETURNED_MACHINE_PART                            EQU $0c9
-EVENT_MET_MANAGER_AT_POWER_PLANT                       EQU $0ca
-EVENT_MET_ROCKET_GRUNT_AT_CERULEAN_GYM                 EQU $0cb
-EVENT_MET_REDS_MOM                                     EQU $0cc
-EVENT_RESTORED_POWER_TO_KANTO                          EQU $0cd
-EVENT_GOT_COINS_FROM_GAMBLER_AT_CELADON                EQU $0ce
-EVENT_MET_COPYCAT_FOUND_OUT_ABOUT_LOST_ITEM            EQU $0cf
-EVENT_RETURNED_LOST_ITEM_TO_COPYCAT                    EQU $0d0
-EVENT_GOT_PASS_FROM_COPYCAT                            EQU $0d1
-EVENT_GOT_LOST_ITEM_FROM_FAN_CLUB                      EQU $0d2
-EVENT_LISTENED_TO_FAN_CLUB_PRESIDENT_BUT_BAG_WAS_FULL  EQU $0d3
-EVENT_LISTENED_TO_FAN_CLUB_PRESIDENT                   EQU $0d4
-EVENT_TALKED_TO_SEAFOAM_GYM_GUY_ONCE                   EQU $0d5
-EVENT_ENABLE_DIPLOMA_PRINTING                          EQU $0d6
-EVENT_CLEARED_NUGGET_BRIDGE                            EQU $0d8
-EVENT_TALKED_TO_WARDENS_GRANDDAUGHTER                  EQU $0d9
-EVENT_GOT_TM03_CURSE                                   EQU $0da
-EVENT_GOT_CLEANSE_TAG                                  EQU $0db
-EVENT_GOT_TM19_GIGA_DRAIN                              EQU $0dc
-EVENT_GOT_TM06_TOXIC                                   EQU $0dd
-EVENT_GOT_UP_GRADE                                     EQU $0de
-EVENT_GOT_TM07_ZAP_CANNON                              EQU $0df
-EVENT_GOT_TM42_DREAM_EATER                             EQU $0e0
-EVENT_TALKED_TO_OAK_IN_KANTO                           EQU $0e1
-EVENT_GOT_HP_UP_FROM_VERMILION_GUY                     EQU $0e2
-EVENT_GOT_TM29_PSYCHIC                                 EQU $0e3
-EVENT_FOUND_LEFTOVERS_IN_CELADON_CAFE                  EQU $0f9
-EVENT_FOUND_MACHINE_PART_IN_CERULEAN_GYM               EQU $0fb
-EVENT_SHOWED_BEVERLY_MARILL                            EQU $261
-EVENT_SHOWED_DEREK_PIKACHU                             EQU $28d
-EVENT_SHOWED_TIFFANY_CLEFAIRY                          EQU $293
-EVENT_BUENA_OFFERED_HER_PHONE_NUMBER_NO_BLUE_CARD      EQU $29e
-EVENT_SWITCH_1                                         EQU $2d3
-EVENT_SWITCH_2                                         EQU $2d4
-EVENT_SWITCH_3                                         EQU $2d5
-EVENT_EMERGENCY_SWITCH                                 EQU $2d6
-EVENT_SWITCH_4                                         EQU $2d7
-EVENT_SWITCH_5                                         EQU $2d8
-EVENT_SWITCH_6                                         EQU $2d9
-EVENT_SWITCH_7                                         EQU $2da
-EVENT_SWITCH_8                                         EQU $2db
-EVENT_SWITCH_9                                         EQU $2dc
-EVENT_SWITCH_10                                        EQU $2dd
-EVENT_SWITCH_11                                        EQU $2de
-EVENT_SWITCH_12                                        EQU $2df
-EVENT_SWITCH_13                                        EQU $2e0
-EVENT_SWITCH_14                                        EQU $2e1
-EVENT_UNCOVERED_STAIRCASE_IN_MAHOGANY_MART             EQU $2e2
-EVENT_TURNED_OFF_SECURITY_CAMERAS                      EQU $2e3
-EVENT_SECURITY_CAMERA_1                                EQU $2e4
-EVENT_SECURITY_CAMERA_2                                EQU $2e5
-EVENT_SECURITY_CAMERA_3                                EQU $2e6
-EVENT_SECURITY_CAMERA_4                                EQU $2e7
-EVENT_SECURITY_CAMERA_5                                EQU $2e8
-EVENT_EXPLODING_TRAP_1                                 EQU $2e9
-EVENT_EXPLODING_TRAP_2                                 EQU $2ea
-EVENT_EXPLODING_TRAP_3                                 EQU $2eb
-EVENT_EXPLODING_TRAP_4                                 EQU $2ec
-EVENT_EXPLODING_TRAP_5                                 EQU $2ed
-EVENT_EXPLODING_TRAP_6                                 EQU $2ee
-EVENT_EXPLODING_TRAP_7                                 EQU $2ef
-EVENT_EXPLODING_TRAP_8                                 EQU $2f0
-EVENT_EXPLODING_TRAP_9                                 EQU $2f1
-EVENT_EXPLODING_TRAP_10                                EQU $2f2
-EVENT_EXPLODING_TRAP_11                                EQU $2f3
-EVENT_EXPLODING_TRAP_12                                EQU $2f4
-EVENT_EXPLODING_TRAP_13                                EQU $2f5
-EVENT_EXPLODING_TRAP_14                                EQU $2f6
-EVENT_EXPLODING_TRAP_15                                EQU $2f7
-EVENT_EXPLODING_TRAP_16                                EQU $2f8
-EVENT_EXPLODING_TRAP_17                                EQU $2f9
-EVENT_EXPLODING_TRAP_18                                EQU $2fa
-EVENT_EXPLODING_TRAP_19                                EQU $2fb
-EVENT_EXPLODING_TRAP_20                                EQU $2fc
-EVENT_EXPLODING_TRAP_21                                EQU $2fd
-EVENT_EXPLODING_TRAP_22                                EQU $2fe
-EVENT_LEARNED_HAIL_GIOVANNI                            EQU $2ff
-EVENT_OPENED_DOOR_TO_ROCKET_HIDEOUT_TRANSMITTER        EQU $300
-EVENT_WILLS_ROOM_EXIT_OPEN                             EQU $30a
-EVENT_WILLS_ROOM_ENTRANCE_CLOSED                       EQU $30b
-EVENT_KOGAS_ROOM_EXIT_OPEN                             EQU $30c
-EVENT_KOGAS_ROOM_ENTRANCE_CLOSED                       EQU $30d
-EVENT_BRUNOS_ROOM_EXIT_OPEN                            EQU $30e
-EVENT_KARENS_ROOM_ENTRANCE_CLOSED                      EQU $30f
-EVENT_KARENS_ROOM_EXIT_OPEN                            EQU $310
-EVENT_LANCES_ROOM_ENTRANCE_CLOSED                      EQU $311
-EVENT_FOUGHT_HO_OH                                     EQU $317
-EVENT_FOUGHT_LUGIA                                     EQU $318
-EVENT_BEAT_RIVAL_IN_MT_MOON                            EQU $319
-EVENT_MET_BILLS_GRANDPA                                EQU $31a
-EVENT_SHOWED_LICKITUNG_TO_BILLS_GRANDPA                EQU $31b
-EVENT_SHOWED_ODDISH_TO_BILLS_GRANDPA                   EQU $31c
-EVENT_SHOWED_STARYU_TO_BILLS_GRANDPA                   EQU $31d
-EVENT_SHOWED_GROWLITHE_VULPIX_TO_BILLS_GRANDPA         EQU $31e
-EVENT_SHOWED_PICHU_TO_BILLS_GRANDPA                    EQU $31f
-EVENT_GOT_EVERSTONE_FROM_BILLS_GRANDPA                 EQU $320
-EVENT_GOT_LEAF_STONE_FROM_BILLS_GRANDPA                EQU $321
-EVENT_GOT_WATER_STONE_FROM_BILLS_GRANDPA               EQU $322
-EVENT_GOT_FIRE_STONE_FROM_BILLS_GRANDPA                EQU $323
-EVENT_GOT_THUNDERSTONE_FROM_BILLS_GRANDPA              EQU $324
-EVENT_LISTENED_TO_INITIAL_RADIO                        EQU $325
-EVENT_WALL_OPENED_IN_HO_OH_CHAMBER                     EQU $326
-EVENT_WALL_OPENED_IN_KABUTO_CHAMBER                    EQU $327
-EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER                   EQU $328
-EVENT_WALL_OPENED_IN_AERODACTYL_CHAMBER                EQU $329
-EVENT_WELCOMED_TO_POKECOM_CENTER                       EQU $32a
-EVENT_WADE_HAS_BERRY                                   EQU $32b
-EVENT_WADE_HAS_PSNCUREBERRY                            EQU $32c
-EVENT_WADE_HAS_PRZCUREBERRY                            EQU $32d
-EVENT_WADE_HAS_BITTER_BERRY                            EQU $32e
-EVENT_WILTON_HAS_ULTRA_BALL                            EQU $32f
-EVENT_WILTON_HAS_GREAT_BALL                            EQU $330
-EVENT_WILTON_HAS_POKE_BALL                             EQU $331
-EVENT_KOJI_ALLOWS_YOU_PASSAGE_TO_TIN_TOWER             EQU $334
-EVENT_FOUGHT_SUICUNE                                   EQU $335
-EVENT_GOT_RAINBOW_WING                                 EQU $336
-EVENT_HUEY_PROTEIN                                     EQU $337
-EVENT_JOEY_HP_UP                                       EQU $338
-EVENT_VANCE_CARBOS                                     EQU $339
-EVENT_PARRY_IRON                                       EQU $33a
-EVENT_ERIN_CALCIUM                                     EQU $33b
-EVENT_BUENA_OFFERED_HER_PHONE_NUMBER                   EQU $33c
-EVENT_MET_BUENA                                        EQU $33d
-EVENT_GOT_ODD_EGG                                      EQU $33e
-EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER                  EQU $340
-EVENT_BEAT_SWIMMERF_ELAINE                             EQU $3e8
-EVENT_BEAT_SWIMMERF_PAULA                              EQU $3e9
-EVENT_BEAT_SWIMMERF_KAYLEE                             EQU $3ea
-EVENT_BEAT_SWIMMERF_SUSIE                              EQU $3eb
-EVENT_BEAT_SWIMMERF_DENISE                             EQU $3ec
-EVENT_BEAT_SWIMMERF_KARA                               EQU $3ed
-EVENT_BEAT_SWIMMERF_WENDY                              EQU $3ee
-EVENT_BEAT_SWIMMERF_DAWN                               EQU $3f3
-EVENT_BEAT_SWIMMERF_NICOLE                             EQU $3f5
-EVENT_BEAT_SWIMMERF_LORI                               EQU $3f6
-EVENT_BEAT_SWIMMERF_NIKKI                              EQU $3f8
-EVENT_BEAT_SWIMMERF_DIANA                              EQU $3f9
-EVENT_BEAT_SWIMMERF_BRIANA                             EQU $3fa
-EVENT_BEAT_BIRD_KEEPER_ROD                             EQU $3fb
-EVENT_BEAT_BIRD_KEEPER_ABE                             EQU $3fc
-EVENT_BEAT_BIRD_KEEPER_BRYAN                           EQU $3fd
-EVENT_BEAT_BIRD_KEEPER_THEO                            EQU $3fe
-EVENT_BEAT_BIRD_KEEPER_TOBY                            EQU $3ff
-EVENT_BEAT_BIRD_KEEPER_DENIS                           EQU $400
-EVENT_BEAT_BIRD_KEEPER_VANCE_1                         EQU $401
-EVENT_BEAT_BIRD_KEEPER_HANK                            EQU $402
-EVENT_BEAT_BIRD_KEEPER_ROY                             EQU $403
-EVENT_BEAT_BIRD_KEEPER_BORIS                           EQU $404
-EVENT_BEAT_BIRD_KEEPER_BOB                             EQU $405
-EVENT_BEAT_BIRD_KEEPER_PETER                           EQU $407
-EVENT_BEAT_BIRD_KEEPER_JOSE                            EQU $408
-EVENT_BEAT_BIRD_KEEPER_PERRY                           EQU $409
-EVENT_BEAT_BIRD_KEEPER_BRET                            EQU $40a
-EVENT_BEAT_BOARDER_RONALD                              EQU $40e
-EVENT_BEAT_BOARDER_BRAD                                EQU $40f
-EVENT_BEAT_BOARDER_DOUGLAS                             EQU $410
-EVENT_BEAT_SAGE_CHOW                                   EQU $411
-EVENT_BEAT_SAGE_NICO                                   EQU $412
-EVENT_BEAT_SAGE_JIN                                    EQU $413
-EVENT_BEAT_SAGE_TROY                                   EQU $414
-EVENT_BEAT_SAGE_JEFFREY                                EQU $415
-EVENT_BEAT_SAGE_PING                                   EQU $416
-EVENT_BEAT_SAGE_EDMOND                                 EQU $417
-EVENT_BEAT_SAGE_NEAL                                   EQU $418
-EVENT_BEAT_SAGE_LI                                     EQU $419
-EVENT_BEAT_CAMPER_ROLAND                               EQU $41a
-EVENT_BEAT_CAMPER_TODD_1                               EQU $41b
-EVENT_BEAT_CAMPER_IVAN                                 EQU $41c
-EVENT_BEAT_CAMPER_ELLIOT                               EQU $41d
-EVENT_BEAT_CAMPER_LLOYD                                EQU $41f
-EVENT_BEAT_CAMPER_DEAN                                 EQU $420
-EVENT_BEAT_CAMPER_SID                                  EQU $421
-EVENT_BEAT_CAMPER_TED                                  EQU $424
-EVENT_BEAT_CAMPER_JERRY                                EQU $42b
-EVENT_BEAT_CAMPER_SPENCER                              EQU $42c
-EVENT_BEAT_BURGLAR_DUNCAN                              EQU $42d
-EVENT_BEAT_BURGLAR_EDDIE                               EQU $42e
-EVENT_BEAT_BURGLAR_COREY                               EQU $42f
-EVENT_BEAT_BIKER_DWAYNE                                EQU $433
-EVENT_BEAT_BIKER_HARRIS                                EQU $434
-EVENT_BEAT_BIKER_ZEKE                                  EQU $435
-EVENT_BEAT_BIKER_CHARLES                               EQU $436
-EVENT_BEAT_BIKER_RILEY                                 EQU $437
-EVENT_BEAT_BIKER_JOEL                                  EQU $438
-EVENT_BEAT_BIKER_GLENN                                 EQU $439
-EVENT_BEAT_PSYCHIC_NATHAN                              EQU $43a
-EVENT_BEAT_PSYCHIC_FRANKLIN                            EQU $43b
-EVENT_BEAT_PSYCHIC_HERMAN                              EQU $43c
-EVENT_BEAT_PSYCHIC_FIDEL                               EQU $43d
-EVENT_BEAT_PSYCHIC_GREG                                EQU $43e
-EVENT_BEAT_PSYCHIC_NORMAN                              EQU $43f
-EVENT_BEAT_PSYCHIC_MARK                                EQU $440
-EVENT_BEAT_PSYCHIC_PHIL                                EQU $441
-EVENT_BEAT_PSYCHIC_RICHARD                             EQU $442
-EVENT_BEAT_PSYCHIC_GILBERT                             EQU $443
-EVENT_BEAT_PSYCHIC_JARED                               EQU $444
-EVENT_BEAT_PSYCHIC_RODNEY                              EQU $445
-EVENT_BEAT_FIREBREATHER_OTIS                           EQU $446
-EVENT_BEAT_FIREBREATHER_BURT                           EQU $449
-EVENT_BEAT_FIREBREATHER_BILL                           EQU $44a
-EVENT_BEAT_FIREBREATHER_WALT                           EQU $44b
-EVENT_BEAT_FIREBREATHER_RAY                            EQU $44c
-EVENT_BEAT_FIREBREATHER_LYLE                           EQU $44d
-EVENT_BEAT_FISHER_JUSTIN                               EQU $44e
-EVENT_BEAT_FISHER_RALPH_1                              EQU $44f
-EVENT_BEAT_FISHER_ARNOLD                               EQU $450
-EVENT_BEAT_FISHER_KYLE                                 EQU $451
-EVENT_BEAT_FISHER_HENRY                                EQU $452
-EVENT_BEAT_FISHER_MARVIN                               EQU $453
-EVENT_BEAT_FISHER_TULLY_1                              EQU $454
-EVENT_BEAT_FISHER_ANDRE                                EQU $455
-EVENT_BEAT_FISHER_RAYMOND                              EQU $456
-EVENT_BEAT_FISHER_WILTON_1                             EQU $457
-EVENT_BEAT_FISHER_EDGAR                                EQU $458
-EVENT_BEAT_FISHER_JONAH                                EQU $459
-EVENT_BEAT_FISHER_MARTIN                               EQU $45a
-EVENT_BEAT_FISHER_STEPHEN                              EQU $45b
-EVENT_BEAT_FISHER_BARNEY                               EQU $45c
-EVENT_BEAT_FISHER_SCOTT                                EQU $462
-EVENT_BEAT_TWINS_AMY_AND_MAY                           EQU $464
-EVENT_BEAT_TWINS_ANN_AND_ANNE                          EQU $465
-EVENT_BEAT_TWINS_JO_AND_ZOE                            EQU $468
-EVENT_BEAT_TWINS_MEG_AND_PEG                           EQU $46a
-EVENT_BEAT_SCHOOLBOY_JACK_1                            EQU $46c
-EVENT_BEAT_SCHOOLBOY_KIP                               EQU $46d
-EVENT_BEAT_SCHOOLBOY_ALAN                              EQU $46e
-EVENT_BEAT_SCHOOLBOY_JOHNNY                            EQU $46f
-EVENT_BEAT_SCHOOLBOY_DANNY                             EQU $470
-EVENT_BEAT_SCHOOLBOY_TOMMY                             EQU $471
-EVENT_BEAT_SCHOOLBOY_DUDLEY                            EQU $472
-EVENT_BEAT_SCHOOLBOY_JOE                               EQU $473
-EVENT_BEAT_SCHOOLBOY_BILLY                             EQU $474
-EVENT_BEAT_SCHOOLBOY_CHAD_1                            EQU $475
-EVENT_BEAT_SCHOOLBOY_NATE                              EQU $476
-EVENT_BEAT_SCHOOLBOY_RICKY                             EQU $477
-EVENT_BEAT_PICNICKER_LIZ_1                             EQU $47e
-EVENT_BEAT_PICNICKER_GINA_1                            EQU $47f
-EVENT_BEAT_PICNICKER_BROOKE                            EQU $480
-EVENT_BEAT_PICNICKER_KIM                               EQU $481
-EVENT_BEAT_PICNICKER_HOPE                              EQU $483
-EVENT_BEAT_PICNICKER_SHARON                            EQU $484
-EVENT_BEAT_PICNICKER_DEBRA                             EQU $485
-EVENT_BEAT_PICNICKER_ERIN_1                            EQU $487
-EVENT_BEAT_PICNICKER_HEIDI                             EQU $48a
-EVENT_BEAT_PICNICKER_EDNA                              EQU $48b
-EVENT_BEAT_PICNICKER_TANYA                             EQU $490
-EVENT_BEAT_PICNICKER_TIFFANY_3                         EQU $491
-EVENT_BEAT_GUITARIST_CLYDE                             EQU $493
-EVENT_BEAT_GUITARIST_VINCENT                           EQU $494
-EVENT_BEAT_JUGGLER_IRWIN_1                             EQU $495
-EVENT_BEAT_JUGGLER_FRITZ                               EQU $496
-EVENT_BEAT_JUGGLER_HORTON                              EQU $497
-EVENT_BEAT_GENTLEMAN_PRESTON                           EQU $49a
-EVENT_BEAT_GENTLEMAN_EDWARD                            EQU $49b
-EVENT_BEAT_GENTLEMAN_GREGORY                           EQU $49c
-EVENT_BEAT_GENTLEMAN_ALFRED                            EQU $49e
-EVENT_BEAT_SCIENTIST_ROSS                              EQU $49f
-EVENT_BEAT_SCIENTIST_MITCH                             EQU $4a0
-EVENT_BEAT_SCIENTIST_JED                               EQU $4a1
-EVENT_BEAT_SCIENTIST_MARC                              EQU $4a2
-EVENT_BEAT_SCIENTIST_RICH                              EQU $4a3
-EVENT_BEAT_BLACKBELT_YOSHI                             EQU $4a5
-EVENT_BEAT_BLACKBELT_LAO                               EQU $4a7
-EVENT_BEAT_BLACKBELT_NOB                               EQU $4a8
-EVENT_BEAT_BLACKBELT_LUNG                              EQU $4aa
-EVENT_BEAT_BLACKBELT_KENJI_3                           EQU $4ab
-EVENT_BEAT_BLACKBELT_WAI                               EQU $4ac
-EVENT_BEAT_BEAUTY_VICTORIA                             EQU $4ad
-EVENT_BEAT_BEAUTY_SAMANTHA                             EQU $4ae
-EVENT_BEAT_BEAUTY_CASSIE                               EQU $4b2
-EVENT_BEAT_BEAUTY_JULIA                                EQU $4ba
-EVENT_BEAT_BEAUTY_VALERIE                              EQU $4bc
-EVENT_BEAT_FALKNER                                     EQU $4bd
-EVENT_BEAT_BUGSY                                       EQU $4be
-EVENT_BEAT_WHITNEY                                     EQU $4bf
-EVENT_BEAT_MORTY                                       EQU $4c0
-EVENT_BEAT_JASMINE                                     EQU $4c1
-EVENT_BEAT_CHUCK                                       EQU $4c2
-EVENT_BEAT_PRYCE                                       EQU $4c3
-EVENT_BEAT_CLAIR                                       EQU $4c4
-EVENT_BEAT_BROCK                                       EQU $4c5
-EVENT_BEAT_MISTY                                       EQU $4c6
-EVENT_BEAT_LTSURGE                                     EQU $4c7
-EVENT_BEAT_JANINE                                      EQU $4c9
-EVENT_BEAT_SABRINA                                     EQU $4ca
-EVENT_BEAT_BLUE                                        EQU $4cc
-EVENT_BEAT_POKEFANM_WILLIAM                            EQU $4cd
-EVENT_BEAT_POKEFANM_DEREK                              EQU $4ce
-EVENT_BEAT_POKEFANM_ROBERT                             EQU $4cf
-EVENT_BEAT_POKEFANM_JOSHUA                             EQU $4d0
-EVENT_BEAT_POKEFANM_CARTER                             EQU $4d1
-EVENT_BEAT_POKEFANM_TREVOR                             EQU $4d2
-EVENT_BEAT_POKEFANM_BRANDON                            EQU $4d3
-EVENT_BEAT_POKEFANM_JEREMY                             EQU $4d4
-EVENT_BEAT_POKEFANM_COLIN                              EQU $4d5
-EVENT_BEAT_POKEFANM_ALEX                               EQU $4d8
-EVENT_BEAT_POKEFANF_BEVERLY                            EQU $4d9
-EVENT_BEAT_POKEFANF_RUTH                               EQU $4da
-EVENT_BEAT_POKEFANF_GEORGIA                            EQU $4dd
-EVENT_BEAT_KIMONO_GIRL_NAOKO                           EQU $4df
-EVENT_BEAT_KIMONO_GIRL_SAYO                            EQU $4e0
-EVENT_BEAT_KIMONO_GIRL_ZUKI                            EQU $4e1
-EVENT_BEAT_KIMONO_GIRL_KUNI                            EQU $4e2
-EVENT_BEAT_KIMONO_GIRL_MIKI                            EQU $4e3
-EVENT_BEAT_POKEMANIAC_LARRY                            EQU $4e4
-EVENT_BEAT_POKEMANIAC_ANDREW                           EQU $4e5
-EVENT_BEAT_POKEMANIAC_CALVIN                           EQU $4e6
-EVENT_BEAT_POKEMANIAC_SHANE                            EQU $4e7
-EVENT_BEAT_POKEMANIAC_BEN                              EQU $4e8
-EVENT_BEAT_POKEMANIAC_BRENT                            EQU $4e9
-EVENT_BEAT_POKEMANIAC_RON                              EQU $4ea
-EVENT_BEAT_POKEMANIAC_ETHAN                            EQU $4eb
-EVENT_BEAT_POKEMANIAC_ISSAC                            EQU $4ee
-EVENT_BEAT_POKEMANIAC_DONALD                           EQU $4ef
-EVENT_BEAT_POKEMANIAC_ZACH                             EQU $4f0
-EVENT_BEAT_ROCKET_GRUNTM_1                             EQU $4f1
-EVENT_BEAT_ROCKET_GRUNTM_2                             EQU $4f2
-EVENT_BEAT_ROCKET_GRUNTM_3                             EQU $4f3
-EVENT_BEAT_ROCKET_GRUNTM_4                             EQU $4f4
-EVENT_BEAT_ROCKET_GRUNTM_5                             EQU $4f5
-EVENT_BEAT_ROCKET_GRUNTM_6                             EQU $4f6
-EVENT_BEAT_ROCKET_GRUNTM_7                             EQU $4f7
-EVENT_BEAT_ROCKET_GRUNTM_8                             EQU $4f8
-EVENT_BEAT_ROCKET_GRUNTM_9                             EQU $4f9
-EVENT_BEAT_ROCKET_GRUNTM_10                            EQU $4fa
-EVENT_BEAT_ROCKET_GRUNTM_11                            EQU $4fb
-EVENT_BEAT_ROCKET_GRUNTM_12                            EQU $4fd
-EVENT_BEAT_ROCKET_GRUNTM_13                            EQU $4fe
-EVENT_BEAT_ROCKET_GRUNTM_14                            EQU $4ff
-EVENT_BEAT_ROCKET_GRUNTM_15                            EQU $500
-EVENT_BEAT_ROCKET_GRUNTM_16                            EQU $501
-EVENT_BEAT_ROCKET_GRUNTM_17                            EQU $502
-EVENT_BEAT_ROCKET_GRUNTM_18                            EQU $503
-EVENT_BEAT_ROCKET_GRUNTM_19                            EQU $508
-EVENT_BEAT_ROCKET_GRUNTM_20                            EQU $509
-EVENT_BEAT_ROCKET_GRUNTM_21                            EQU $50c
-EVENT_BEAT_ROCKET_GRUNTM_22                            EQU $50d
-EVENT_BEAT_ROCKET_GRUNTF_1                             EQU $510
-EVENT_BEAT_ROCKET_GRUNTF_2                             EQU $511
-EVENT_BEAT_ROCKET_GRUNTF_3                             EQU $512
-EVENT_BEAT_ROCKET_GRUNTF_4                             EQU $513
-EVENT_BEAT_ROCKET_GRUNTF_5                             EQU $514
-EVENT_BEAT_LASS_CARRIE                                 EQU $515
-EVENT_BEAT_LASS_BRIDGET                                EQU $516
-EVENT_BEAT_LASS_KRISE                                  EQU $518
-EVENT_BEAT_LASS_CONNIE_1                               EQU $519
-EVENT_BEAT_LASS_LAURA                                  EQU $51b
-EVENT_BEAT_LASS_SHANNON                                EQU $51c
-EVENT_BEAT_LASS_MICHELLE                               EQU $51d
-EVENT_BEAT_LASS_DANA                                   EQU $51e
-EVENT_BEAT_LASS_ELLEN                                  EQU $51f
-EVENT_BEAT_HIKER_RUSSELL                               EQU $525
-EVENT_BEAT_HIKER_PHILLIP                               EQU $526
-EVENT_BEAT_HIKER_LEONARD                               EQU $527
-EVENT_BEAT_HIKER_ANTHONY_2                             EQU $528
-EVENT_BEAT_HIKER_BENJAMIN                              EQU $529
-EVENT_BEAT_HIKER_ERIK                                  EQU $52a
-EVENT_BEAT_HIKER_MICHAEL                               EQU $52b
-EVENT_BEAT_HIKER_PARRY_3                               EQU $52c
-EVENT_BEAT_HIKER_TIMOTHY                               EQU $52d
-EVENT_BEAT_HIKER_BAILEY                                EQU $52e
-EVENT_BEAT_HIKER_TIM                                   EQU $530
-EVENT_BEAT_HIKER_NOLAND                                EQU $531
-EVENT_BEAT_HIKER_SIDNEY                                EQU $532
-EVENT_BEAT_HIKER_KENNY                                 EQU $533
-EVENT_BEAT_HIKER_JIM                                   EQU $534
-EVENT_BEAT_HIKER_DANIEL                                EQU $535
-EVENT_BEAT_BUG_CATCHER_DON                             EQU $538
-EVENT_BEAT_BUG_CATCHER_ROB                             EQU $539
-EVENT_BEAT_BUG_CATCHER_ED                              EQU $53a
-EVENT_BEAT_BUG_CATCHER_WADE_1                          EQU $53b
-EVENT_BEAT_BUG_CATCHER_BENNY                           EQU $53c
-EVENT_BEAT_BUG_CATCHER_AL                              EQU $53d
-EVENT_BEAT_BUG_CATCHER_JOSH                            EQU $53e
-EVENT_BEAT_BUG_CATCHER_ARNIE_1                         EQU $53f
-EVENT_BEAT_BUG_CATCHER_KEN                             EQU $540
-EVENT_BEAT_BUG_CATCHER_DOUG                            EQU $543
-EVENT_BEAT_COOLTRAINERM_NICK                           EQU $548
-EVENT_BEAT_COOLTRAINERM_AARON                          EQU $549
-EVENT_BEAT_COOLTRAINERM_PAUL                           EQU $54a
-EVENT_BEAT_COOLTRAINERM_CODY                           EQU $54b
-EVENT_BEAT_COOLTRAINERM_MIKE                           EQU $54c
-EVENT_BEAT_COOLTRAINERM_RYAN                           EQU $54f
-EVENT_BEAT_COOLTRAINERM_JAKE                           EQU $550
-EVENT_BEAT_COOLTRAINERM_GAVEN_3                        EQU $551
-EVENT_BEAT_COOLTRAINERM_BLAKE                          EQU $552
-EVENT_BEAT_COOLTRAINERM_BRIAN                          EQU $553
-EVENT_BEAT_COOLTRAINERM_SEAN                           EQU $557
-EVENT_BEAT_COOLTRAINERM_ALLEN                          EQU $55a
-EVENT_BEAT_COOLTRAINERF_GWEN                           EQU $55b
-EVENT_BEAT_COOLTRAINERF_LOIS                           EQU $55c
-EVENT_BEAT_COOLTRAINERF_FRAN                           EQU $55d
-EVENT_BEAT_COOLTRAINERF_LOLA                           EQU $55e
-EVENT_BEAT_COOLTRAINERF_KATE                           EQU $55f
-EVENT_BEAT_COOLTRAINERF_IRENE                          EQU $560
-EVENT_BEAT_COOLTRAINERF_KELLY                          EQU $561
-EVENT_BEAT_COOLTRAINERF_JOYCE                          EQU $562
-EVENT_BEAT_COOLTRAINERF_BETH_1                         EQU $563
-EVENT_BEAT_COOLTRAINERF_REENA_1                        EQU $564
-EVENT_BEAT_COOLTRAINERF_MEGAN                          EQU $565
-EVENT_BEAT_COOLTRAINERF_CAROL                          EQU $567
-EVENT_BEAT_COOLTRAINERF_QUINN                          EQU $568
-EVENT_BEAT_COOLTRAINERF_EMMA                           EQU $569
-EVENT_BEAT_COOLTRAINERF_CYBIL                          EQU $56a
-EVENT_BEAT_COOLTRAINERF_JENN                           EQU $56b
-EVENT_BEAT_ROCKET_EXECUTIVEF                           EQU $56f
-EVENT_BEAT_ROCKET_EXECUTIVEM                           EQU $572
-EVENT_BEAT_SAILOR_EUGENE                               EQU $575
-EVENT_BEAT_SAILOR_HUEY_1                               EQU $576
-EVENT_BEAT_SAILOR_TERRELL                              EQU $577
-EVENT_BEAT_SAILOR_KENT                                 EQU $578
-EVENT_BEAT_SAILOR_ERNEST                               EQU $579
-EVENT_BEAT_SAILOR_JEFF                                 EQU $57a
-EVENT_BEAT_SAILOR_GARRETT                              EQU $57b
-EVENT_BEAT_SAILOR_KENNETH                              EQU $57c
-EVENT_BEAT_SAILOR_HARRY                                EQU $57e
-EVENT_BEAT_SUPER_NERD_ERIC                             EQU $582
-EVENT_BEAT_SUPER_NERD_SAM                              EQU $586
-EVENT_BEAT_SUPER_NERD_TOM                              EQU $587
-EVENT_BEAT_SUPER_NERD_PAT                              EQU $588
-EVENT_BEAT_SUPER_NERD_SHAWN                            EQU $589
-EVENT_BEAT_SUPER_NERD_TERU                             EQU $58a
-EVENT_BEAT_MEDIUM_MARTHA                               EQU $58b
-EVENT_BEAT_MEDIUM_GRACE                                EQU $58c
-EVENT_BEAT_MEDIUM_REBECCA                              EQU $590
-EVENT_BEAT_MEDIUM_DORIS                                EQU $591
-EVENT_BEAT_SKIER_ROXANNE                               EQU $592
-EVENT_BEAT_SKIER_CLARISSA                              EQU $593
-EVENT_BEAT_SWIMMERM_HAROLD                             EQU $594
-EVENT_BEAT_SWIMMERM_SIMON                              EQU $595
-EVENT_BEAT_SWIMMERM_RANDALL                            EQU $596
-EVENT_BEAT_SWIMMERM_CHARLIE                            EQU $597
-EVENT_BEAT_SWIMMERM_GEORGE                             EQU $598
-EVENT_BEAT_SWIMMERM_BERKE                              EQU $599
-EVENT_BEAT_SWIMMERM_KIRK                               EQU $59a
-EVENT_BEAT_SWIMMERM_MATHEW                             EQU $59b
-EVENT_BEAT_SWIMMERM_JEROME                             EQU $5a1
-EVENT_BEAT_SWIMMERM_TUCKER                             EQU $5a2
-EVENT_BEAT_SWIMMERM_CAMERON                            EQU $5a4
-EVENT_BEAT_SWIMMERM_SETH                               EQU $5a5
-EVENT_BEAT_SWIMMERM_PARKER                             EQU $5a8
-EVENT_BEAT_YOUNGSTER_JOEY_1                            EQU $5a9
-EVENT_BEAT_YOUNGSTER_MIKEY                             EQU $5aa
-EVENT_BEAT_YOUNGSTER_ALBERT                            EQU $5ab
-EVENT_BEAT_YOUNGSTER_GORDON                            EQU $5ac
-EVENT_BEAT_YOUNGSTER_SAMUEL                            EQU $5ad
-EVENT_BEAT_YOUNGSTER_IAN                               EQU $5ae
-EVENT_BEAT_YOUNGSTER_WARREN                            EQU $5b1
-EVENT_BEAT_YOUNGSTER_JIMMY                             EQU $5b2
-EVENT_BEAT_YOUNGSTER_OWEN                              EQU $5b3
-EVENT_BEAT_YOUNGSTER_JASON                             EQU $5b4
-EVENT_BEAT_TEACHER_COLETTE                             EQU $5b5
-EVENT_BEAT_TEACHER_HILLARY                             EQU $5b6
-EVENT_BEAT_TEACHER_SHIRLEY                             EQU $5b7
-EVENT_BEAT_ELITE_4_KAREN                               EQU $5bb
-EVENT_BEAT_CHAMPION_LANCE                              EQU $5bc
-EVENT_BEAT_COOLTRAINERM_DARIN                          EQU $5bd
-EVENT_BEAT_COOLTRAINERF_CARA                           EQU $5be
-EVENT_BEAT_TWINS_LEA_AND_PIA                           EQU $5bf
-EVENT_BEAT_BUG_CATCHER_WAYNE                           EQU $5c0
-EVENT_BEAT_BEAUTY_OLIVIA                               EQU $5c1
-EVENT_BEAT_POKEMANIAC_MILER                            EQU $5c4
-EVENT_BEAT_SUPER_NERD_HUGH                             EQU $5c5
-EVENT_BEAT_SUPER_NERD_MARKUS                           EQU $5c6
-EVENT_BEAT_POKEFANM_REX                                EQU $5c7
-EVENT_BEAT_POKEFANM_ALLAN                              EQU $5c8
-EVENT_BEAT_SAGE_GAKU                                   EQU $5c9
-EVENT_BEAT_SAGE_MASA                                   EQU $5ca
-EVENT_BEAT_SAGE_KOJI                                   EQU $5cb
-EVENT_RIVAL_SPROUT_TOWER                               EQU $6c4
-EVENT_GUIDE_GENT_VISIBLE_IN_CHERRYGROVE                EQU $6ff
-EVENT_ELMS_AIDE_IN_VIOLET_POKEMON_CENTER               EQU $700
-EVENT_ELMS_AIDE_IN_LAB                                 EQU $701
-EVENT_BOULDER_IN_BLACKTHORN_GYM_1                      EQU $706
-EVENT_BOULDER_IN_BLACKTHORN_GYM_2                      EQU $707
-EVENT_BOULDER_IN_BLACKTHORN_GYM_3                      EQU $708
-EVENT_BOULDER_IN_ICE_PATH_1                            EQU $70d
-EVENT_BOULDER_IN_ICE_PATH_2                            EQU $70e
-EVENT_BOULDER_IN_ICE_PATH_3                            EQU $70f
-EVENT_BOULDER_IN_ICE_PATH_4                            EQU $710
-EVENT_OPENED_MT_SILVER                                 EQU $74f
-EVENT_FOUGHT_SNORLAX                                   EQU $750
-EVENT_RED_IN_MT_SILVER                                 EQU $762
-EVENT_FLORIA_AT_SUDOWOODO                              EQU $769
-EVENT_TRAINERS_IN_CERULEAN_GYM                         EQU $76f
-EVENT_TELEPORT_GUY                                     EQU $77c
-EVENT_PICKED_UP_FOCUS_BAND                             EQU $77d
-EVENT_PICKED_UP_GOLD_BERRY_FROM_HO_OH_ITEM_ROOM        EQU $794
-EVENT_PICKED_UP_MYSTERYBERRY_FROM_HO_OH_ITEM_ROOM      EQU $795
-EVENT_PICKED_UP_REVIVAL_HERB_FROM_HO_OH_ITEM_ROOM      EQU $796
-EVENT_PICKED_UP_CHARCOAL_FROM_HO_OH_ITEM_ROOM          EQU $797
-EVENT_PICKED_UP_BERRY_FROM_KABUTO_ITEM_ROOM            EQU $798
-EVENT_PICKED_UP_PSNCUREBERRY_FROM_KABUTO_ITEM_ROOM     EQU $799
-EVENT_PICKED_UP_HEAL_POWDER_FROM_KABUTO_ITEM_ROOM      EQU $79a
-EVENT_PICKED_UP_ENERGYPOWDER_FROM_KABUTO_ITEM_ROOM     EQU $79b
-EVENT_PICKED_UP_MYSTERYBERRY_FROM_OMANYTE_ITEM_ROOM    EQU $79c
-EVENT_PICKED_UP_MYSTIC_WATER_FROM_OMANYTE_ITEM_ROOM    EQU $79d
-EVENT_PICKED_UP_STARDUST_FROM_OMANYTE_ITEM_ROOM        EQU $79e
-EVENT_PICKED_UP_STAR_PIECE_FROM_OMANYTE_ITEM_ROOM      EQU $79f
-EVENT_PICKED_UP_GOLD_BERRY_FROM_AERODACTYL_ITEM_ROOM   EQU $7a0
-EVENT_PICKED_UP_MOON_STONE_FROM_AERODACTYL_ITEM_ROOM   EQU $7a1
-EVENT_PICKED_UP_HEAL_POWDER_FROM_AERODACTYL_ITEM_ROOM  EQU $7a2
-EVENT_PICKED_UP_ENERGY_ROOT_FROM_AERODACTYL_ITEM_ROOM  EQU $7a3
-EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY                     EQU $7ae
-EVENT_SAW_SUICUNE_ON_ROUTE_42                          EQU $7af
-EVENT_SAW_SUICUNE_ON_ROUTE_36                          EQU $7b0
-EVENT_SET_WHEN_FOUGHT_HO_OH                            EQU $7b7
+
+	const_def
+
+; These first eight flags are reset upon reloading the map.
+	const EVENT_GAVE_KURT_APRICORNS ; 000
+	const EVENT_RECEIVED_BALLS_FROM_KURT
+	const EVENT_DRAGON_SHRINE_QUESTION_2
+	const EVENT_DRAGON_SHRINE_QUESTION_3
+	const EVENT_DRAGON_SHRINE_QUESTION_4
+	const EVENT_DRAGON_SHRINE_QUESTION_5
+	const EVENT_JUST_RECEIVED_DRATINI
+	const EVENT_IN_YOUR_ROOM
+; Johto story events
+	const EVENT_GOT_TM31_MUD_SLAP
+	const EVENT_GOT_TM49_FURY_CUTTER
+	const EVENT_GOT_TM01_DYNAMICPUNCH
+	const EVENT_GOT_TM45_ATTRACT
+	const EVENT_GOT_TM30_SHADOW_BALL
+	const EVENT_GOT_TM23_IRON_TAIL
+	const EVENT_GOT_TM16_ICY_WIND
+	const EVENT_GOT_TM24_DRAGONBREATH
+	const EVENT_GOT_HM01_CUT
+	const EVENT_GOT_HM02_FLY
+	const EVENT_GOT_HM03_SURF
+	const EVENT_GOT_HM04_STRENGTH
+	const EVENT_GOT_HM05_FLASH
+	const EVENT_GOT_HM06_WHIRLPOOL
+	const EVENT_016
+	const EVENT_GOT_OLD_ROD
+	const EVENT_GOT_GOOD_ROD
+	const EVENT_GOT_SUPER_ROD
+	const EVENT_GOT_A_POKEMON_FROM_ELM
+	const EVENT_GOT_CYNDAQUIL_FROM_ELM
+	const EVENT_GOT_TOTODILE_FROM_ELM
+	const EVENT_GOT_CHIKORITA_FROM_ELM
+	const EVENT_GOT_MYSTERY_EGG_FROM_MR_POKEMON
+	const EVENT_GAVE_MYSTERY_EGG_TO_ELM
+	const EVENT_JASMINE_RETURNED_TO_GYM
+	const EVENT_CLEARED_RADIO_TOWER
+	const EVENT_CLEARED_ROCKET_HIDEOUT
+	const EVENT_GOT_SECRETPOTION_FROM_PHARMACY
+	const EVENT_GOT_SS_TICKET_FROM_ELM
+	const EVENT_USED_THE_CARD_KEY_IN_THE_RADIO_TOWER
+	const EVENT_REFUSED_TO_HELP_LANCE_AT_LAKE_OF_RAGE
+	const EVENT_GOT_BERRY_FROM_ROUTE_30_HOUSE
+	const EVENT_MADE_WHITNEY_CRY
+	const EVENT_HERDED_FARFETCHD
+	const EVENT_FOUGHT_SUDOWOODO
+	const EVENT_CLEARED_SLOWPOKE_WELL
+	const EVENT_REFUSED_TO_TAKE_EGG_FROM_ELMS_AIDE
+	const EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE
+	const EVENT_MADE_UNOWN_APPEAR_IN_RUINS
+	const EVENT_FAST_SHIP_DESTINATION_OLIVINE
+	const EVENT_FAST_SHIP_FIRST_TIME
+	const EVENT_FAST_SHIP_HAS_ARRIVED
+	const EVENT_FAST_SHIP_FOUND_GIRL
+	const EVENT_FAST_SHIP_LAZY_SAILOR
+	const EVENT_FAST_SHIP_INFORMED_ABOUT_LAZY_SAILOR
+	const EVENT_KURT_GAVE_YOU_LURE_BALL
+	const EVENT_INITIALIZED_EVENTS
+	const EVENT_JASMINE_EXPLAINED_AMPHYS_SICKNESS
+	const EVENT_LAKE_OF_RAGE_EXPLAINED_WEIRD_MAGIKARP
+	const EVENT_LAKE_OF_RAGE_ASKED_FOR_MAGIKARP
+	const EVENT_LAKE_OF_RAGE_ELIXIR_ON_STANDBY
+	const EVENT_03B
+	const EVENT_03C
+	const EVENT_HEALED_MOOMOO
+	const EVENT_GOT_TM13_SNORE_FROM_MOOMOO_FARM
+	const EVENT_TALKED_TO_FARMER_ABOUT_MOOMOO
+	const EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST ; 040
+	const EVENT_DUDE_TALKED_TO_YOU
+	const EVENT_LEARNED_TO_CATCH_POKEMON
+	const EVENT_ELM_CALLED_ABOUT_STOLEN_POKEMON
+	const EVENT_BEAT_ELITE_FOUR
+	const EVENT_GOT_SHUCKIE
+	const EVENT_MANIA_TOOK_SHUCKIE_OR_LET_YOU_KEEP_HIM
+	const EVENT_GOT_SUNNY_DAY_FROM_RADIO_TOWER
+	const EVENT_GOT_PINK_BOW_FROM_MARY
+	const EVENT_USED_BASEMENT_KEY
+	const EVENT_RECEIVED_CARD_KEY
+	const EVENT_GOT_TM08_ROCK_SMASH
+	const EVENT_LANCE_HEALED_YOU_IN_TEAM_ROCKET_BASE
+	const EVENT_GOT_MYSTIC_WATER_IN_CHERRYGROVE
+	const EVENT_GOT_TM05_ROAR
+	const EVENT_GOT_EEVEE
+	const EVENT_GOT_KENYA ; 050
+	const EVENT_GAVE_KENYA
+	const EVENT_GOT_HP_UP_FROM_RANDY
+	const EVENT_GOT_TM50_NIGHTMARE
+	const EVENT_TOGEPI_HATCHED
+	const EVENT_SHOWED_TOGEPI_TO_ELM
+	const EVENT_GOT_EVERSTONE_FROM_ELM
+	const EVENT_GOT_QUICK_CLAW
+	const EVENT_GOT_TM10_HIDDEN_POWER
+	const EVENT_GOT_TM36_SLUDGE_BOMB
+	const EVENT_GOT_ITEMFINDER
+	const EVENT_GOT_BICYCLE
+	const EVENT_GOT_SQUIRTBOTTLE
+	const EVENT_GOT_MIRACLE_SEED_IN_ROUTE_32
+	const EVENT_GOT_CHARCOAL_IN_CHARCOAL_KILN
+	const EVENT_GOT_TM02_HEADBUTT
+	const EVENT_DECIDED_TO_HELP_LANCE ; 060
+	const EVENT_GOT_TYROGUE_FROM_KIYO
+	const EVENT_MET_FRIEDA_OF_FRIDAY
+	const EVENT_GOT_POISON_BARB_FROM_FRIEDA
+	const EVENT_MET_TUSCANY_OF_TUESDAY
+	const EVENT_GOT_PINK_BOW_FROM_TUSCANY
+	const EVENT_MET_ARTHUR_OF_THURSDAY
+	const EVENT_GOT_HARD_STONE_FROM_ARTHUR
+	const EVENT_MET_SUNNY_OF_SUNDAY
+	const EVENT_GOT_MAGNET_FROM_SUNNY
+	const EVENT_MET_WESLEY_OF_WEDNESDAY
+	const EVENT_GOT_BLACKBELT_FROM_WESLEY
+	const EVENT_MET_SANTOS_OF_SATURDAY
+	const EVENT_GOT_SPELL_TAG_FROM_SANTOS
+	const EVENT_MET_MONICA_OF_MONDAY
+	const EVENT_GOT_SHARP_BEAK_FROM_MONICA ; 070
+	const EVENT_GOT_SOFT_SAND_FROM_KATE
+	const EVENT_GOT_METAL_COAT_FROM_GRANDPA_ON_SS_AQUA
+	const EVENT_GOT_BLACKGLASSES_IN_DARK_CAVE
+	const EVENT_GOT_KINGS_ROCK_IN_SLOWPOKE_WELL
+	const EVENT_GOT_TM47_STEEL_WING
+	const EVENT_GOT_TM37_SANDSTORM
+	const EVENT_FIRST_TIME_BANKING_WITH_MOM
+	const EVENT_TOLD_ELM_ABOUT_TOGEPI_OVER_THE_PHONE
+	const EVENT_GOT_CLEAR_BELL
+	const EVENT_GOT_SILVER_WING
+	const EVENT_GOT_TM12_SWEET_SCENT
+	const EVENT_RELEASED_THE_BEASTS
+	const EVENT_GOT_MASTER_BALL_FROM_ELM
+; Johto Signpost Items
+	const EVENT_TIN_TOWER_4F_HIDDEN_MAX_POTION
+	const EVENT_TIN_TOWER_5F_HIDDEN_FULL_RESTORE
+	const EVENT_TIN_TOWER_5F_HIDDEN_CARBOS
+	const EVENT_BURNED_TOWER_1F_HIDDEN_ETHER ; 080
+	const EVENT_081
+	const EVENT_082
+	const EVENT_083
+	const EVENT_NATIONAL_PARK_HIDDEN_FULL_HEAL
+	const EVENT_OLIVINE_LIGHTHOUSE_5F_HIDDEN_HYPER_POTION
+	const EVENT_TEAM_ROCKET_BASE_B1F_HIDDEN_REVIVE
+	const EVENT_TEAM_ROCKET_BASE_B2F_HIDDEN_FULL_HEAL
+	const EVENT_ILEX_FOREST_HIDDEN_ETHER
+	const EVENT_ILEX_FOREST_HIDDEN_SUPER_POTION
+	const EVENT_ILEX_FOREST_HIDDEN_FULL_HEAL
+	const EVENT_WAREHOUSE_ENTRANCE_HIDDEN_PARLYZ_HEAL
+	const EVENT_WAREHOUSE_ENTRANCE_HIDDEN_SUPER_POTION
+	const EVENT_WAREHOUSE_ENTRANCE_HIDDEN_ANTIDOTE
+	const EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_HIDDEN_MAX_POTION
+	const EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_HIDDEN_REVIVE
+	const EVENT_MOUNT_MORTAR_1F_OUTSIDE_HIDDEN_HYPER_POTION
+	const EVENT_MOUNT_MORTAR_1F_INSIDE_HIDDEN_MAX_REPEL
+	const EVENT_MOUNT_MORTAR_2F_INSIDE_HIDDEN_FULL_RESTORE
+	const EVENT_MOUNT_MORTAR_B1F_HIDDEN_MAX_REVIVE
+	const EVENT_ICE_PATH_B1F_HIDDEN_MAX_POTION
+	const EVENT_ICE_PATH_B2F_MAHOGANY_SIDE_HIDDEN_CARBOS
+	const EVENT_ICE_PATH_B2F_BLACKTHORN_SIDE_HIDDEN_ICE_HEAL
+	const EVENT_WHIRL_ISLAND_B1F_HIDDEN_RARE_CANDY
+	const EVENT_WHIRL_ISLAND_B1F_HIDDEN_ULTRA_BALL
+	const EVENT_WHIRL_ISLAND_B1F_HIDDEN_FULL_RESTORE
+	const EVENT_SILVER_CAVE_ROOM_1_HIDDEN_DIRE_HIT
+	const EVENT_SILVER_CAVE_ROOM_1_HIDDEN_ULTRA_BALL
+	const EVENT_SILVER_CAVE_ROOM_2_HIDDEN_MAX_POTION
+	const EVENT_DARK_CAVE_VIOLET_ENTRANCE_HIDDEN_ELIXER
+	const EVENT_VICTORY_ROAD_HIDDEN_MAX_POTION
+	const EVENT_VICTORY_ROAD_HIDDEN_FULL_HEAL
+	const EVENT_DRAGONS_DEN_B1F_HIDDEN_REVIVE
+	const EVENT_DRAGONS_DEN_B1F_HIDDEN_MAX_POTION
+	const EVENT_DRAGONS_DEN_B1F_HIDDEN_MAX_ELIXER
+	const EVENT_ROUTE_28_HIDDEN_RARE_CANDY
+	const EVENT_ROUTE_30_HIDDEN_POTION
+	const EVENT_ROUTE_32_HIDDEN_GREAT_BALL
+	const EVENT_ROUTE_32_HIDDEN_SUPER_POTION
+	const EVENT_ROUTE_34_HIDDEN_RARE_CANDY
+	const EVENT_ROUTE_34_HIDDEN_SUPER_POTION
+	const EVENT_ROUTE_37_HIDDEN_ETHER
+	const EVENT_ROUTE_39_HIDDEN_NUGGET
+	const EVENT_ROUTE_40_HIDDEN_HYPER_POTION
+	const EVENT_ROUTE_41_HIDDEN_MAX_ETHER
+	const EVENT_ROUTE_42_HIDDEN_MAX_POTION
+	const EVENT_ROUTE_44_HIDDEN_ELIXER
+	const EVENT_ROUTE_45_HIDDEN_PP_UP
+	const EVENT_VIOLET_CITY_HIDDEN_HYPER_POTION
+	const EVENT_AZALEA_TOWN_HIDDEN_FULL_HEAL
+	const EVENT_CIANWOOD_CITY_HIDDEN_REVIVE
+	const EVENT_CIANWOOD_CITY_HIDDEN_MAX_ETHER
+	const EVENT_ECRUTEAK_CITY_HIDDEN_HYPER_POTION
+	const EVENT_LAKE_OF_RAGE_HIDDEN_FULL_RESTORE
+	const EVENT_LAKE_OF_RAGE_HIDDEN_RARE_CANDY
+	const EVENT_LAKE_OF_RAGE_HIDDEN_MAX_POTION
+	const EVENT_SILVER_CAVE_OUTSIDE_HIDDEN_FULL_RESTORE
+; Crystal-exclusive events in Johto
+	const EVENT_MET_FLORIA
+	const EVENT_TALKED_TO_FLORIA_AT_FLOWER_SHOP
+	const EVENT_BUGGING_KURT_TOO_MUCH
+	const EVENT_TALKED_TO_RUINS_COWARD
+	const EVENT_GOT_DRATINI
+	const EVENT_CAN_GIVE_GS_BALL_TO_KURT
+	const EVENT_GAVE_GS_BALL_TO_KURT
+	const EVENT_FOREST_IS_RESTLESS
+	const EVENT_ANSWERED_DRAGON_MASTER_QUIZ_WRONG
+	const EVENT_0C2
+	const EVENT_0C3
+	const EVENT_0C4
+	const EVENT_0C5
+	const EVENT_0C6
+	const EVENT_0C7
+; Kanto story events
+	const EVENT_GOT_NUGGET_FROM_GUY
+	const EVENT_RETURNED_MACHINE_PART
+	const EVENT_MET_MANAGER_AT_POWER_PLANT
+	const EVENT_MET_ROCKET_GRUNT_AT_CERULEAN_GYM
+	const EVENT_MET_REDS_MOM
+	const EVENT_RESTORED_POWER_TO_KANTO
+	const EVENT_GOT_COINS_FROM_GAMBLER_AT_CELADON
+	const EVENT_MET_COPYCAT_FOUND_OUT_ABOUT_LOST_ITEM
+	const EVENT_RETURNED_LOST_ITEM_TO_COPYCAT
+	const EVENT_GOT_PASS_FROM_COPYCAT
+	const EVENT_GOT_LOST_ITEM_FROM_FAN_CLUB
+	const EVENT_LISTENED_TO_FAN_CLUB_PRESIDENT_BUT_BAG_WAS_FULL
+	const EVENT_LISTENED_TO_FAN_CLUB_PRESIDENT
+	const EVENT_TALKED_TO_SEAFOAM_GYM_GUY_ONCE
+	const EVENT_ENABLE_DIPLOMA_PRINTING
+	const EVENT_CINNABAR_ROCKS_CLEARED
+	const EVENT_CLEARED_NUGGET_BRIDGE
+	const EVENT_TALKED_TO_WARDENS_GRANDDAUGHTER
+	const EVENT_GOT_TM03_CURSE
+	const EVENT_GOT_CLEANSE_TAG
+	const EVENT_GOT_TM19_GIGA_DRAIN
+	const EVENT_GOT_TM06_TOXIC
+	const EVENT_GOT_UP_GRADE
+	const EVENT_GOT_TM07_ZAP_CANNON
+	const EVENT_GOT_TM42_DREAM_EATER
+	const EVENT_TALKED_TO_OAK_IN_KANTO
+	const EVENT_GOT_HP_UP_FROM_VERMILION_GUY
+	const EVENT_GOT_TM29_PSYCHIC
+; Kanto Signpost Items
+	const EVENT_DIGLETTS_CAVE_HIDDEN_MAX_REVIVE
+	const EVENT_UNDERGROUND_HIDDEN_FULL_RESTORE
+	const EVENT_UNDERGROUND_HIDDEN_X_SPECIAL
+	const EVENT_ROCK_TUNNEL_1F_HIDDEN_X_ACCURACY
+	const EVENT_ROCK_TUNNEL_1F_HIDDEN_X_DEFEND
+	const EVENT_ROCK_TUNNEL_B1F_HIDDEN_MAX_POTION
+	const EVENT_OLIVINE_PORT_HIDDEN_PROTEIN
+	const EVENT_VERMILION_PORT_HIDDEN_IRON
+	const EVENT_MOUNT_MOON_SQUARE_HIDDEN_MOON_STONE
+	const EVENT_ROUTE_2_HIDDEN_MAX_ETHER
+	const EVENT_ROUTE_2_HIDDEN_FULL_HEAL
+	const EVENT_ROUTE_2_HIDDEN_FULL_RESTORE
+	const EVENT_ROUTE_2_HIDDEN_REVIVE
+	const EVENT_ROUTE_4_HIDDEN_ULTRA_BALL
+	const EVENT_ROUTE_9_HIDDEN_ETHER
+	const EVENT_ROUTE_12_HIDDEN_ELIXER
+	const EVENT_ROUTE_13_HIDDEN_CALCIUM
+	const EVENT_ROUTE_11_HIDDEN_REVIVE
+	const EVENT_ROUTE_17_HIDDEN_MAX_ETHER
+	const EVENT_ROUTE_17_HIDDEN_MAX_ELIXER
+	const EVENT_ROUTE_25_HIDDEN_POTION
+	const EVENT_FOUND_LEFTOVERS_IN_CELADON_CAFE
+	const EVENT_FOUND_BERSERK_GENE_IN_CERULEAN_CITY
+	const EVENT_FOUND_MACHINE_PART_IN_CERULEAN_GYM
+	const EVENT_VERMILION_CITY_HIDDEN_FULL_HEAL
+	const EVENT_CELADON_CITY_HIDDEN_PP_UP
+	const EVENT_CINNABAR_ISLAND_HIDDEN_RARE_CANDY
+	const EVENT_BURNED_TOWER_1F_HIDDEN_ULTRA_BALL
+	const EVENT_GINA_GAVE_LEAF_STONE
+	const EVENT_ALAN_GAVE_FIRE_STONE
+	const EVENT_DANA_GAVE_THUNDERSTONE
+	const EVENT_TULLY_GAVE_WATER_STONE
+	const EVENT_TIFFANY_GAVE_PINK_BOW
+; ???
+	const EVENT_105
+	const EVENT_106
+	const EVENT_107
+	const EVENT_108
+	const EVENT_109
+	const EVENT_10A
+	const EVENT_10B
+	const EVENT_10C
+	const EVENT_10D
+	const EVENT_10E
+	const EVENT_10F
+	const EVENT_110
+	const EVENT_111
+	const EVENT_112
+	const EVENT_113
+	const EVENT_114
+	const EVENT_115
+	const EVENT_116
+	const EVENT_117
+	const EVENT_118
+	const EVENT_119
+	const EVENT_11A
+	const EVENT_11B
+	const EVENT_11C
+	const EVENT_11D
+	const EVENT_11E
+	const EVENT_11F
+	const EVENT_120
+	const EVENT_121
+	const EVENT_122
+	const EVENT_123
+	const EVENT_124
+	const EVENT_125
+	const EVENT_126
+	const EVENT_127
+	const EVENT_128
+	const EVENT_129
+	const EVENT_12A
+	const EVENT_12B
+	const EVENT_12C
+	const EVENT_12D
+	const EVENT_12E
+	const EVENT_12F
+	const EVENT_130
+	const EVENT_131
+	const EVENT_132
+	const EVENT_133
+	const EVENT_134
+	const EVENT_135
+	const EVENT_136
+	const EVENT_137
+	const EVENT_138
+	const EVENT_139
+	const EVENT_13A
+	const EVENT_13B
+	const EVENT_13C
+	const EVENT_13D
+	const EVENT_13E
+	const EVENT_13F
+	const EVENT_140
+	const EVENT_141
+	const EVENT_142
+	const EVENT_143
+	const EVENT_144
+	const EVENT_145
+	const EVENT_146
+	const EVENT_147
+	const EVENT_148
+	const EVENT_149
+	const EVENT_14A
+	const EVENT_14B
+	const EVENT_14C
+	const EVENT_14D
+	const EVENT_14E
+	const EVENT_14F
+	const EVENT_150
+	const EVENT_151
+	const EVENT_152
+	const EVENT_153
+	const EVENT_154
+	const EVENT_155
+	const EVENT_156
+	const EVENT_157
+	const EVENT_158
+	const EVENT_159
+	const EVENT_15A
+	const EVENT_15B
+	const EVENT_15C
+	const EVENT_15D
+	const EVENT_15E
+	const EVENT_15F
+	const EVENT_160
+	const EVENT_161
+	const EVENT_162
+	const EVENT_163
+	const EVENT_164
+	const EVENT_165
+	const EVENT_166
+	const EVENT_167
+	const EVENT_168
+	const EVENT_169
+	const EVENT_16A
+	const EVENT_16B
+	const EVENT_16C
+	const EVENT_16D
+	const EVENT_16E
+	const EVENT_16F
+	const EVENT_170
+	const EVENT_171
+	const EVENT_172
+	const EVENT_173
+	const EVENT_174
+	const EVENT_175
+	const EVENT_176
+	const EVENT_177
+	const EVENT_178
+	const EVENT_179
+	const EVENT_17A
+	const EVENT_17B
+	const EVENT_17C
+	const EVENT_17D
+	const EVENT_17E
+	const EVENT_17F
+	const EVENT_180
+	const EVENT_181
+	const EVENT_182
+	const EVENT_183
+	const EVENT_184
+	const EVENT_185
+	const EVENT_186
+	const EVENT_187
+	const EVENT_188
+	const EVENT_189
+	const EVENT_18A
+	const EVENT_18B
+	const EVENT_18C
+	const EVENT_18D
+	const EVENT_18E
+	const EVENT_18F
+	const EVENT_190
+	const EVENT_191
+	const EVENT_192
+	const EVENT_193
+	const EVENT_194
+	const EVENT_195
+	const EVENT_196
+	const EVENT_197
+	const EVENT_198
+	const EVENT_199
+	const EVENT_19A
+	const EVENT_19B
+	const EVENT_19C
+	const EVENT_19D
+	const EVENT_19E
+	const EVENT_19F
+	const EVENT_1A0
+	const EVENT_1A1
+	const EVENT_1A2
+	const EVENT_1A3
+	const EVENT_1A4
+	const EVENT_1A5
+	const EVENT_1A6
+	const EVENT_1A7
+	const EVENT_1A8
+	const EVENT_1A9
+	const EVENT_1AA
+	const EVENT_1AB
+	const EVENT_1AC
+	const EVENT_1AD
+	const EVENT_1AE
+	const EVENT_1AF
+	const EVENT_1B0
+	const EVENT_1B1
+	const EVENT_1B2
+	const EVENT_1B3
+	const EVENT_1B4
+	const EVENT_1B5
+	const EVENT_1B6
+	const EVENT_1B7
+	const EVENT_1B8
+	const EVENT_1B9
+	const EVENT_1BA
+	const EVENT_1BB
+	const EVENT_1BC
+	const EVENT_1BD
+	const EVENT_1BE
+	const EVENT_1BF
+	const EVENT_1C0
+	const EVENT_1C1
+	const EVENT_1C2
+	const EVENT_1C3
+	const EVENT_1C4
+	const EVENT_1C5
+	const EVENT_1C6
+	const EVENT_1C7
+	const EVENT_1C8
+	const EVENT_1C9
+	const EVENT_1CA
+	const EVENT_1CB
+	const EVENT_1CC
+	const EVENT_1CD
+	const EVENT_1CE
+	const EVENT_1CF
+	const EVENT_1D0
+	const EVENT_1D1
+	const EVENT_1D2
+	const EVENT_1D3
+	const EVENT_1D4
+	const EVENT_1D5
+	const EVENT_1D6
+	const EVENT_1D7
+	const EVENT_1D8
+	const EVENT_1D9
+	const EVENT_1DA
+	const EVENT_1DB
+	const EVENT_1DC
+	const EVENT_1DD
+	const EVENT_1DE
+	const EVENT_1DF
+	const EVENT_1E0
+	const EVENT_1E1
+	const EVENT_1E2
+	const EVENT_1E3
+	const EVENT_1E4
+	const EVENT_1E5
+	const EVENT_1E6
+	const EVENT_1E7
+	const EVENT_1E8
+	const EVENT_1E9
+	const EVENT_1EA
+	const EVENT_1EB
+	const EVENT_1EC
+	const EVENT_1ED
+	const EVENT_1EE
+	const EVENT_1EF
+	const EVENT_1F0
+	const EVENT_1F1
+	const EVENT_1F2
+	const EVENT_1F3
+	const EVENT_1F4
+	const EVENT_1F5
+	const EVENT_1F6
+	const EVENT_1F7
+	const EVENT_1F8
+	const EVENT_1F9
+	const EVENT_1FA
+	const EVENT_1FB
+	const EVENT_1FC
+	const EVENT_1FD
+	const EVENT_1FE
+	const EVENT_1FF
+	const EVENT_200
+	const EVENT_201
+	const EVENT_202
+	const EVENT_203
+	const EVENT_204
+	const EVENT_205
+	const EVENT_206
+	const EVENT_207
+	const EVENT_208
+	const EVENT_209
+	const EVENT_20A
+	const EVENT_20B
+	const EVENT_20C
+	const EVENT_20D
+	const EVENT_20E
+	const EVENT_20F
+	const EVENT_210
+	const EVENT_211
+	const EVENT_212
+	const EVENT_213
+	const EVENT_214
+	const EVENT_215
+	const EVENT_216
+	const EVENT_217
+	const EVENT_218
+	const EVENT_219
+	const EVENT_21A
+	const EVENT_21B
+	const EVENT_21C
+	const EVENT_21D
+	const EVENT_21E
+	const EVENT_21F
+	const EVENT_220
+	const EVENT_221
+	const EVENT_222
+	const EVENT_223
+	const EVENT_224
+	const EVENT_225
+	const EVENT_226
+	const EVENT_227
+	const EVENT_228
+	const EVENT_229
+	const EVENT_22A
+	const EVENT_22B
+	const EVENT_22C
+	const EVENT_22D
+	const EVENT_22E
+	const EVENT_22F
+	const EVENT_230
+	const EVENT_231
+	const EVENT_232
+	const EVENT_233
+	const EVENT_234
+	const EVENT_235
+	const EVENT_236
+	const EVENT_237
+	const EVENT_238
+	const EVENT_239
+	const EVENT_23A
+	const EVENT_23B
+	const EVENT_23C
+	const EVENT_23D
+	const EVENT_23E
+	const EVENT_23F
+	const EVENT_240
+	const EVENT_241
+	const EVENT_242
+	const EVENT_243
+	const EVENT_244
+	const EVENT_245
+	const EVENT_246
+	const EVENT_247
+	const EVENT_248
+	const EVENT_249
+	const EVENT_24A
+	const EVENT_24B
+	const EVENT_24C
+	const EVENT_24D
+	const EVENT_24E
+	const EVENT_24F
+	const EVENT_250
+	const EVENT_251
+	const EVENT_252
+	const EVENT_253
+	const EVENT_254
+	const EVENT_255
+	const EVENT_256
+	const EVENT_257
+; Kurt events
+	const EVENT_GAVE_KURT_RED_APRICORN
+	const EVENT_GAVE_KURT_BLU_APRICORN
+	const EVENT_GAVE_KURT_YLW_APRICORN
+	const EVENT_GAVE_KURT_GRN_APRICORN
+	const EVENT_GAVE_KURT_WHT_APRICORN
+	const EVENT_GAVE_KURT_BLK_APRICORN
+	const EVENT_GAVE_KURT_PNK_APRICORN
+; Phone events
+	const EVENT_JACK_ASKED_FOR_PHONE_NUMBER
+	const EVENT_260
+	const EVENT_BEVERLY_ASKED_FOR_PHONE_NUMBER
+	const EVENT_262
+	const EVENT_HUEY_ASKED_FOR_PHONE_NUMBER
+	const EVENT_264
+	const EVENT_GOT_PROTEIN_FROM_HUEY
+	const EVENT_GOT_HP_UP_FROM_JOEY
+	const EVENT_GOT_CARBOS_FROM_VANCE
+	const EVENT_GOT_IRON_FROM_PARRY
+	const EVENT_GOT_CALCIUM_FROM_ERIN
+	const EVENT_KENJI_ON_BREAK
+	const EVENT_GAVEN_ASKED_FOR_PHONE_NUMBER
+	const EVENT_26C
+	const EVENT_BETH_ASKED_FOR_PHONE_NUMBER
+	const EVENT_26E
+	const EVENT_JOSE_ASKED_FOR_PHONE_NUMBER
+	const EVENT_270
+	const EVENT_REENA_ASKED_FOR_PHONE_NUMBER
+	const EVENT_272
+	const EVENT_JOEY_ASKED_FOR_PHONE_NUMBER
+	const EVENT_274
+	const EVENT_WADE_ASKED_FOR_PHONE_NUMBER
+	const EVENT_276
+	const EVENT_RALPH_ASKED_FOR_PHONE_NUMBER
+	const EVENT_278
+	const EVENT_LIZ_ASKED_FOR_PHONE_NUMBER
+	const EVENT_27A
+	const EVENT_ANTHONY_ASKED_FOR_PHONE_NUMBER
+	const EVENT_27C
+	const EVENT_TODD_ASKED_FOR_PHONE_NUMBER
+	const EVENT_27E
+	const EVENT_GINA_ASKED_FOR_PHONE_NUMBER
+	const EVENT_280 ; 280
+	const EVENT_IRWIN_ASKED_FOR_PHONE_NUMBER
+	const EVENT_282
+	const EVENT_ARNIE_ASKED_FOR_PHONE_NUMBER
+	const EVENT_284
+	const EVENT_ALAN_ASKED_FOR_PHONE_NUMBER
+	const EVENT_286
+	const EVENT_287
+	const EVENT_288
+	const EVENT_DANA_ASKED_FOR_PHONE_NUMBER
+	const EVENT_28A
+	const EVENT_CHAD_ASKED_FOR_PHONE_NUMBER
+	const EVENT_28C
+	const EVENT_DEREK_ASKED_FOR_PHONE_NUMBER
+	const EVENT_28E
+	const EVENT_TULLY_ASKED_FOR_PHONE_NUMBER
+	const EVENT_290 ; 290
+	const EVENT_BRENT_ASKED_FOR_PHONE_NUMBER
+	const EVENT_292
+	const EVENT_TIFFANY_ASKED_FOR_PHONE_NUMBER
+	const EVENT_294
+	const EVENT_VANCE_ASKED_FOR_PHONE_NUMBER
+	const EVENT_296
+	const EVENT_WILTON_ASKED_FOR_PHONE_NUMBER
+	const EVENT_298
+	const EVENT_KENJI_ASKED_FOR_PHONE_NUMBER
+	const EVENT_29A
+	const EVENT_PARRY_ASKED_FOR_PHONE_NUMBER
+	const EVENT_29C
+	const EVENT_ERIN_ASKED_FOR_PHONE_NUMBER
+	const EVENT_BUENA_OFFERED_HER_PHONE_NUMBER_NO_BLUE_CARD
+	const EVENT_29F
+; Ruins Of Alph puzzles
+	const EVENT_SOLVED_HO_OH_PUZZLE ; 2a0
+	const EVENT_SOLVED_KABUTO_PUZZLE
+	const EVENT_SOLVED_OMANYTE_PUZZLE
+	const EVENT_SOLVED_AERODACTYL_PUZZLE
+; Decorations
+	const EVENT_DECO_BED_1
+	const EVENT_DECO_BED_2
+	const EVENT_DECO_BED_3
+	const EVENT_DECO_BED_4
+	const EVENT_DECO_CARPET_1
+	const EVENT_DECO_CARPET_2
+	const EVENT_DECO_CARPET_3
+	const EVENT_DECO_CARPET_4
+	const EVENT_DECO_PLANT_1
+	const EVENT_DECO_PLANT_2
+	const EVENT_DECO_PLANT_3
+	const EVENT_DECO_PLANT_4
+	const EVENT_DECO_POSTER_1 ; 2b0
+	const EVENT_DECO_POSTER_2
+	const EVENT_DECO_POSTER_3
+	const EVENT_DECO_FAMICOM
+	const EVENT_DECO_SNES
+	const EVENT_DECO_N64
+	const EVENT_DECO_VIRTUAL_BOY
+	const EVENT_DECO_PIKACHU_DOLL
+	const EVENT_DECO_SURFING_PIKACHU_DOLL
+	const EVENT_DECO_CLEFAIRY_DOLL
+	const EVENT_DECO_JIGGLYPUFF_DOLL
+	const EVENT_DECO_BULBASAUR_DOLL
+	const EVENT_DECO_CHARMANDER_DOLL
+	const EVENT_DECO_SQUIRTLE_DOLL
+	const EVENT_DECO_POLIWAG_DOLL
+	const EVENT_DECO_DIGLETT_DOLL
+	const EVENT_DECO_STARMIE_DOLL ; 2c0
+	const EVENT_DECO_MAGIKARP_DOLL
+	const EVENT_DECO_ODDISH_DOLL
+	const EVENT_DECO_GENGAR_DOLL
+	const EVENT_DECO_SHELLDER_DOLL
+	const EVENT_DECO_GRIMER_DOLL
+	const EVENT_DECO_VOLTORB_DOLL
+	const EVENT_DECO_WEEDLE_DOLL
+	const EVENT_DECO_UNOWN_DOLL
+	const EVENT_DECO_GEODUDE_DOLL
+	const EVENT_DECO_MACHOP_DOLL
+	const EVENT_DECO_TENTACOOL_DOLL
+	const EVENT_KRISS_ROOM_POSTER
+	const EVENT_DECO_GOLD_TROPHY
+	const EVENT_DECO_SILVER_TROPHY
+	const EVENT_DECO_BIG_SNORLAX_DOLL
+	const EVENT_DECO_BIG_ONIX_DOLL ; 2d0
+	const EVENT_DECO_BIG_LAPRAS_DOLL
+; More Johto events
+	const EVENT_WARPED_FROM_ROUTE_35_NATIONAL_PARK_GATE
+	const EVENT_SWITCH_1
+	const EVENT_SWITCH_2
+	const EVENT_SWITCH_3
+	const EVENT_EMERGENCY_SWITCH
+	const EVENT_SWITCH_4
+	const EVENT_SWITCH_5
+	const EVENT_SWITCH_6
+	const EVENT_SWITCH_7
+	const EVENT_SWITCH_8
+	const EVENT_SWITCH_9
+	const EVENT_SWITCH_10
+	const EVENT_SWITCH_11
+	const EVENT_SWITCH_12
+	const EVENT_SWITCH_13 ; 2e0
+	const EVENT_SWITCH_14
+	const EVENT_UNCOVERED_STAIRCASE_IN_MAHOGANY_MART
+	const EVENT_TURNED_OFF_SECURITY_CAMERAS
+	const EVENT_SECURITY_CAMERA_1
+	const EVENT_SECURITY_CAMERA_2
+	const EVENT_SECURITY_CAMERA_3
+	const EVENT_SECURITY_CAMERA_4
+	const EVENT_SECURITY_CAMERA_5
+	const EVENT_EXPLODING_TRAP_1
+	const EVENT_EXPLODING_TRAP_2
+	const EVENT_EXPLODING_TRAP_3
+	const EVENT_EXPLODING_TRAP_4
+	const EVENT_EXPLODING_TRAP_5
+	const EVENT_EXPLODING_TRAP_6
+	const EVENT_EXPLODING_TRAP_7
+	const EVENT_EXPLODING_TRAP_8 ; 2f0
+	const EVENT_EXPLODING_TRAP_9
+	const EVENT_EXPLODING_TRAP_10
+	const EVENT_EXPLODING_TRAP_11
+	const EVENT_EXPLODING_TRAP_12
+	const EVENT_EXPLODING_TRAP_13
+	const EVENT_EXPLODING_TRAP_14
+	const EVENT_EXPLODING_TRAP_15
+	const EVENT_EXPLODING_TRAP_16
+	const EVENT_EXPLODING_TRAP_17
+	const EVENT_EXPLODING_TRAP_18
+	const EVENT_EXPLODING_TRAP_19
+	const EVENT_EXPLODING_TRAP_20
+	const EVENT_EXPLODING_TRAP_21
+	const EVENT_EXPLODING_TRAP_22
+	const EVENT_LEARNED_HAIL_GIOVANNI
+	const EVENT_OPENED_DOOR_TO_ROCKET_HIDEOUT_TRANSMITTER ; 300
+	const EVENT_LEARNED_SLOWPOKETAIL
+	const EVENT_LEARNED_RATICATE_TAIL
+	const EVENT_OPENED_DOOR_TO_GIOVANNIS_OFFICE
+	const EVENT_WAREHOUSE_LAYOUT_1
+	const EVENT_WAREHOUSE_LAYOUT_2
+	const EVENT_WAREHOUSE_LAYOUT_3
+	const EVENT_WAREHOUSE_BLOCKED_OFF
+	const EVENT_LEFT_MONS_WITH_CONTEST_OFFICER
+	const EVENT_WILLS_ROOM_ENTRANCE_CLOSED
+	const EVENT_WILLS_ROOM_EXIT_OPEN
+	const EVENT_KOGAS_ROOM_ENTRANCE_CLOSED
+	const EVENT_KOGAS_ROOM_EXIT_OPEN
+	const EVENT_BRUNOS_ROOM_ENTRANCE_CLOSED
+	const EVENT_BRUNOS_ROOM_EXIT_OPEN
+	const EVENT_KARENS_ROOM_ENTRANCE_CLOSED
+	const EVENT_KARENS_ROOM_EXIT_OPEN ; 310
+	const EVENT_LANCES_ROOM_ENTRANCE_CLOSED
+	const EVENT_LANCES_ROOM_EXIT_OPEN
+	const EVENT_CONTEST_OFFICER_HAS_SUN_STONE
+	const EVENT_CONTEST_OFFICER_HAS_EVERSTONE
+	const EVENT_CONTEST_OFFICER_HAS_GOLD_BERRY
+	const EVENT_CONTEST_OFFICER_HAS_BERRY
+	const EVENT_FOUGHT_HO_OH
+	const EVENT_FOUGHT_LUGIA
+	const EVENT_BEAT_RIVAL_IN_MT_MOON
+	const EVENT_MET_BILLS_GRANDPA
+	const EVENT_SHOWED_LICKITUNG_TO_BILLS_GRANDPA
+	const EVENT_SHOWED_ODDISH_TO_BILLS_GRANDPA
+	const EVENT_SHOWED_STARYU_TO_BILLS_GRANDPA
+	const EVENT_SHOWED_GROWLITHE_VULPIX_TO_BILLS_GRANDPA
+	const EVENT_SHOWED_PICHU_TO_BILLS_GRANDPA
+	const EVENT_GOT_EVERSTONE_FROM_BILLS_GRANDPA ; 320
+	const EVENT_GOT_LEAF_STONE_FROM_BILLS_GRANDPA
+	const EVENT_GOT_WATER_STONE_FROM_BILLS_GRANDPA
+	const EVENT_GOT_FIRE_STONE_FROM_BILLS_GRANDPA
+	const EVENT_GOT_THUNDERSTONE_FROM_BILLS_GRANDPA
+; More Crystal-specific events
+	const EVENT_LISTENED_TO_INITIAL_RADIO
+	const EVENT_WALL_OPENED_IN_HO_OH_CHAMBER
+	const EVENT_WALL_OPENED_IN_KABUTO_CHAMBER
+	const EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER
+	const EVENT_WALL_OPENED_IN_AERODACTYL_CHAMBER
+	const EVENT_WELCOMED_TO_POKECOM_CENTER
+	const EVENT_WADE_HAS_BERRY
+	const EVENT_WADE_HAS_PSNCUREBERRY
+	const EVENT_WADE_HAS_PRZCUREBERRY
+	const EVENT_WADE_HAS_BITTER_BERRY
+	const EVENT_WILTON_HAS_ULTRA_BALL
+	const EVENT_WILTON_HAS_GREAT_BALL
+	const EVENT_WILTON_HAS_POKE_BALL
+	const EVENT_HOLE_IN_BURNED_TOWER
+	const EVENT_FOUGHT_EUSINE
+	const EVENT_KOJI_ALLOWS_YOU_PASSAGE_TO_TIN_TOWER
+	const EVENT_FOUGHT_SUICUNE
+	const EVENT_GOT_RAINBOW_WING
+	const EVENT_HUEY_PROTEIN
+	const EVENT_JOEY_HP_UP
+	const EVENT_VANCE_CARBOS
+	const EVENT_PARRY_IRON
+	const EVENT_ERIN_CALCIUM
+	const EVENT_BUENA_OFFERED_HER_PHONE_NUMBER
+	const EVENT_MET_BUENA
+	const EVENT_GOT_ODD_EGG
+	const EVENT_33F
+	const EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER
+; ???
+	const EVENT_341
+	const EVENT_342
+	const EVENT_343
+	const EVENT_344
+	const EVENT_345
+	const EVENT_346
+	const EVENT_347
+	const EVENT_348
+	const EVENT_349
+	const EVENT_34A
+	const EVENT_34B
+	const EVENT_34C
+	const EVENT_34D
+	const EVENT_34E
+	const EVENT_34F
+	const EVENT_350
+	const EVENT_351
+	const EVENT_352
+	const EVENT_353
+	const EVENT_354
+	const EVENT_355
+	const EVENT_356
+	const EVENT_357
+	const EVENT_358
+	const EVENT_359
+	const EVENT_35A
+	const EVENT_35B
+	const EVENT_35C
+	const EVENT_35D
+	const EVENT_35E
+	const EVENT_35F
+	const EVENT_360
+	const EVENT_361
+	const EVENT_362
+	const EVENT_363
+	const EVENT_364
+	const EVENT_365
+	const EVENT_366
+	const EVENT_367
+	const EVENT_368
+	const EVENT_369
+	const EVENT_36A
+	const EVENT_36B
+	const EVENT_36C
+	const EVENT_36D
+	const EVENT_36E
+	const EVENT_36F
+	const EVENT_370
+	const EVENT_371
+	const EVENT_372
+	const EVENT_373
+	const EVENT_374
+	const EVENT_375
+	const EVENT_376
+	const EVENT_377
+	const EVENT_378
+	const EVENT_379
+	const EVENT_37A
+	const EVENT_37B
+	const EVENT_37C
+	const EVENT_37D
+	const EVENT_37E
+	const EVENT_37F
+	const EVENT_380
+	const EVENT_381
+	const EVENT_382
+	const EVENT_383
+	const EVENT_384
+	const EVENT_385
+	const EVENT_386
+	const EVENT_387
+	const EVENT_388
+	const EVENT_389
+	const EVENT_38A
+	const EVENT_38B
+	const EVENT_38C
+	const EVENT_38D
+	const EVENT_38E
+	const EVENT_38F
+	const EVENT_390
+	const EVENT_391
+	const EVENT_392
+	const EVENT_393
+	const EVENT_394
+	const EVENT_395
+	const EVENT_396
+	const EVENT_397
+	const EVENT_398
+	const EVENT_399
+	const EVENT_39A
+	const EVENT_39B
+	const EVENT_39C
+	const EVENT_39D
+	const EVENT_39E
+	const EVENT_39F
+	const EVENT_3A0
+	const EVENT_3A1
+	const EVENT_3A2
+	const EVENT_3A3
+	const EVENT_3A4
+	const EVENT_3A5
+	const EVENT_3A6
+	const EVENT_3A7
+	const EVENT_3A8
+	const EVENT_3A9
+	const EVENT_3AA
+	const EVENT_3AB
+	const EVENT_3AC
+	const EVENT_3AD
+	const EVENT_3AE
+	const EVENT_3AF
+	const EVENT_3B0
+	const EVENT_3B1
+	const EVENT_3B2
+	const EVENT_3B3
+	const EVENT_3B4
+	const EVENT_3B5
+	const EVENT_3B6
+	const EVENT_3B7
+	const EVENT_3B8
+	const EVENT_3B9
+	const EVENT_3BA
+	const EVENT_3BB
+	const EVENT_3BC
+	const EVENT_3BD
+	const EVENT_3BE
+	const EVENT_3BF
+	const EVENT_3C0
+	const EVENT_3C1
+	const EVENT_3C2
+	const EVENT_3C3
+	const EVENT_3C4
+	const EVENT_3C5
+	const EVENT_3C6
+	const EVENT_3C7
+	const EVENT_3C8
+	const EVENT_3C9
+	const EVENT_3CA
+	const EVENT_3CB
+	const EVENT_3CC
+	const EVENT_3CD
+	const EVENT_3CE
+	const EVENT_3CF
+	const EVENT_3D0
+	const EVENT_3D1
+	const EVENT_3D2
+	const EVENT_3D3
+	const EVENT_3D4
+	const EVENT_3D5
+	const EVENT_3D6
+	const EVENT_3D7
+	const EVENT_3D8
+	const EVENT_3D9
+	const EVENT_3DA
+	const EVENT_3DB
+	const EVENT_3DC
+	const EVENT_3DD
+	const EVENT_3DE
+	const EVENT_3DF
+	const EVENT_3E0
+	const EVENT_3E1
+	const EVENT_3E2
+	const EVENT_3E3
+	const EVENT_3E4
+	const EVENT_3E5
+	const EVENT_3E6
+	const EVENT_3E7
+; Trainer Flags
+; Swimmer F
+	const EVENT_BEAT_SWIMMERF_ELAINE
+	const EVENT_BEAT_SWIMMERF_PAULA
+	const EVENT_BEAT_SWIMMERF_KAYLEE
+	const EVENT_BEAT_SWIMMERF_SUSIE
+	const EVENT_BEAT_SWIMMERF_DENISE
+	const EVENT_BEAT_SWIMMERF_KARA
+	const EVENT_BEAT_SWIMMERF_WENDY
+	const EVENT_BEAT_SWIMMERF_LISA
+	const EVENT_BEAT_SWIMMERF_JILL
+	const EVENT_BEAT_SWIMMERF_MARY
+	const EVENT_BEAT_SWIMMERF_KATIE
+	const EVENT_BEAT_SWIMMERF_DAWN
+	const EVENT_BEAT_SWIMMERF_TARA
+	const EVENT_BEAT_SWIMMERF_NICOLE
+	const EVENT_BEAT_SWIMMERF_LORI
+	const EVENT_BEAT_SWIMMERF_JODY
+	const EVENT_BEAT_SWIMMERF_NIKKI
+	const EVENT_BEAT_SWIMMERF_DIANA
+	const EVENT_BEAT_SWIMMERF_BRIANA
+; Bird Keeper
+	const EVENT_BEAT_BIRD_KEEPER_ROD
+	const EVENT_BEAT_BIRD_KEEPER_ABE
+	const EVENT_BEAT_BIRD_KEEPER_BRYAN
+	const EVENT_BEAT_BIRD_KEEPER_THEO
+	const EVENT_BEAT_BIRD_KEEPER_TOBY
+	const EVENT_BEAT_BIRD_KEEPER_DENIS
+	const EVENT_BEAT_BIRD_KEEPER_VANCE
+	const EVENT_BEAT_BIRD_KEEPER_HANK
+	const EVENT_BEAT_BIRD_KEEPER_ROY
+	const EVENT_BEAT_BIRD_KEEPER_BORIS
+	const EVENT_BEAT_BIRD_KEEPER_BOB
+	const EVENT_BEAT_BIRD_KEEPER_JOSE
+	const EVENT_BEAT_BIRD_KEEPER_PETER
+	const EVENT_BEAT_BIRD_KEEPER_JOSE2
+	const EVENT_BEAT_BIRD_KEEPER_PERRY
+	const EVENT_BEAT_BIRD_KEEPER_BRET
+	const EVENT_BEAT_BIRD_KEEPER_JOSE3
+	const EVENT_BEAT_BIRD_KEEPER_VANCE2
+	const EVENT_BEAT_BIRD_KEEPER_VANCE3
+; Boarder
+	const EVENT_BEAT_BOARDER_RONALD
+	const EVENT_BEAT_BOARDER_BRAD
+	const EVENT_BEAT_BOARDER_DOUGLAS
+; Sage
+	const EVENT_BEAT_SAGE_CHOW
+	const EVENT_BEAT_SAGE_NICO
+	const EVENT_BEAT_SAGE_JIN
+	const EVENT_BEAT_SAGE_TROY
+	const EVENT_BEAT_SAGE_JEFFREY
+	const EVENT_BEAT_SAGE_PING
+	const EVENT_BEAT_SAGE_EDMOND
+	const EVENT_BEAT_SAGE_NEAL
+	const EVENT_BEAT_SAGE_LI
+; Camper
+	const EVENT_BEAT_CAMPER_ROLAND
+	const EVENT_BEAT_CAMPER_TODD
+	const EVENT_BEAT_CAMPER_IVAN
+	const EVENT_BEAT_CAMPER_ELLIOT
+	const EVENT_BEAT_CAMPER_BARRY
+	const EVENT_BEAT_CAMPER_LLOYD
+	const EVENT_BEAT_CAMPER_DEAN
+	const EVENT_BEAT_CAMPER_SID
+	const EVENT_BEAT_CAMPER_HERVEY
+	const EVENT_BEAT_CAMPER_DALE
+	const EVENT_BEAT_CAMPER_TED
+	const EVENT_BEAT_CAMPER_TODD2
+	const EVENT_BEAT_CAMPER_TODD3
+	const EVENT_BEAT_CAMPER_THOMAS
+	const EVENT_BEAT_CAMPER_LEROY
+	const EVENT_BEAT_CAMPER_DAVID
+	const EVENT_BEAT_CAMPER_JOHN
+	const EVENT_BEAT_CAMPER_JERRY
+	const EVENT_BEAT_CAMPER_SPENCER
+; Burglar
+	const EVENT_BEAT_BURGLAR_DUNCAN
+	const EVENT_BEAT_BURGLAR_EDDIE
+	const EVENT_BEAT_BURGLAR_COREY
+; Unknown
+	const EVENT_430
+; Biker
+	const EVENT_BEAT_BIKER_BENNY
+	const EVENT_BEAT_BIKER_KAZU
+	const EVENT_BEAT_BIKER_DWAYNE
+	const EVENT_BEAT_BIKER_HARRIS
+	const EVENT_BEAT_BIKER_ZEKE
+	const EVENT_BEAT_BIKER_CHARLES
+	const EVENT_BEAT_BIKER_RILEY
+	const EVENT_BEAT_BIKER_JOEL
+	const EVENT_BEAT_BIKER_GLENN
+; Psychic
+	const EVENT_BEAT_PSYCHIC_NATHAN
+	const EVENT_BEAT_PSYCHIC_FRANKLIN
+	const EVENT_BEAT_PSYCHIC_HERMAN
+	const EVENT_BEAT_PSYCHIC_FIDEL
+	const EVENT_BEAT_PSYCHIC_GREG
+	const EVENT_BEAT_PSYCHIC_NORMAN
+	const EVENT_BEAT_PSYCHIC_MARK
+	const EVENT_BEAT_PSYCHIC_PHIL
+	const EVENT_BEAT_PSYCHIC_RICHARD
+	const EVENT_BEAT_PSYCHIC_GILBERT
+	const EVENT_BEAT_PSYCHIC_JARED
+	const EVENT_BEAT_PSYCHIC_RODNEY
+; Firebreather
+	const EVENT_BEAT_FIREBREATHER_OTIS
+	const EVENT_BEAT_FIREBREATHER_DICK
+	const EVENT_BEAT_FIREBREATHER_NED
+	const EVENT_BEAT_FIREBREATHER_BURT
+	const EVENT_BEAT_FIREBREATHER_BILL
+	const EVENT_BEAT_FIREBREATHER_WALT
+	const EVENT_BEAT_FIREBREATHER_RAY
+	const EVENT_BEAT_FIREBREATHER_LYLE
+; Fisher
+	const EVENT_BEAT_FISHER_JUSTIN
+	const EVENT_BEAT_FISHER_RALPH
+	const EVENT_BEAT_FISHER_ARNOLD
+	const EVENT_BEAT_FISHER_KYLE
+	const EVENT_BEAT_FISHER_HENRY
+	const EVENT_BEAT_FISHER_MARVIN
+	const EVENT_BEAT_FISHER_TULLY
+	const EVENT_BEAT_FISHER_ANDRE
+	const EVENT_BEAT_FISHER_RAYMOND
+	const EVENT_BEAT_FISHER_WILTON
+	const EVENT_BEAT_FISHER_EDGAR
+	const EVENT_BEAT_FISHER_JONAH
+	const EVENT_BEAT_FISHER_MARTIN
+	const EVENT_BEAT_FISHER_STEPHEN
+	const EVENT_BEAT_FISHER_BARNEY
+	const EVENT_BEAT_FISHER_RALPH2
+	const EVENT_BEAT_FISHER_RALPH3
+	const EVENT_BEAT_FISHER_TULLY2
+	const EVENT_BEAT_FISHER_TULLY3
+	const EVENT_BEAT_FISHER_WILTON2
+	const EVENT_BEAT_FISHER_SCOTT
+	const EVENT_BEAT_FISHER_WILTON3
+; Twins
+	const EVENT_BEAT_TWINS_AMY_AND_MAY
+	const EVENT_BEAT_TWINS_ANN_AND_ANNE
+	const EVENT_BEAT_TWINS_ANN_AND_ANNE2
+	const EVENT_BEAT_TWINS_AMY_AND_MAY2
+	const EVENT_BEAT_TWINS_JO_AND_ZOE
+	const EVENT_BEAT_TWINS_JO_AND_ZOE2
+	const EVENT_BEAT_TWINS_MEG_AND_PEG
+	const EVENT_BEAT_TWINS_MEG_AND_PEG2
+; Schoolboy
+	const EVENT_BEAT_SCHOOLBOY_JACK
+	const EVENT_BEAT_SCHOOLBOY_KIP
+	const EVENT_BEAT_SCHOOLBOY_ALAN
+	const EVENT_BEAT_SCHOOLBOY_JOHNNY
+	const EVENT_BEAT_SCHOOLBOY_DANNY
+	const EVENT_BEAT_SCHOOLBOY_TOMMY
+	const EVENT_BEAT_SCHOOLBOY_DUDLEY
+	const EVENT_BEAT_SCHOOLBOY_JOE
+	const EVENT_BEAT_SCHOOLBOY_BILLY
+	const EVENT_BEAT_SCHOOLBOY_CHAD
+	const EVENT_BEAT_SCHOOLBOY_NATE
+	const EVENT_BEAT_SCHOOLBOY_RICKY
+	const EVENT_BEAT_SCHOOLBOY_JACK2
+	const EVENT_BEAT_SCHOOLBOY_JACK3
+	const EVENT_BEAT_SCHOOLBOY_ALAN2
+	const EVENT_BEAT_SCHOOLBOY_ALAN3
+	const EVENT_BEAT_SCHOOLBOY_CHAD2
+	const EVENT_BEAT_SCHOOLBOY_CHAD3
+; Picnicker
+	const EVENT_BEAT_PICNICKER_LIZ
+	const EVENT_BEAT_PICNICKER_GINA
+	const EVENT_BEAT_PICNICKER_BROOKE
+	const EVENT_BEAT_PICNICKER_KIM
+	const EVENT_BEAT_PICNICKER_CINDY
+	const EVENT_BEAT_PICNICKER_HOPE
+	const EVENT_BEAT_PICNICKER_SHARON
+	const EVENT_BEAT_PICNICKER_DEBRA
+	const EVENT_BEAT_PICNICKER_GINA2
+	const EVENT_BEAT_PICNICKER_ERIN
+	const EVENT_BEAT_PICNICKER_LIZ2
+	const EVENT_BEAT_PICNICKER_LIZ3
+	const EVENT_BEAT_PICNICKER_HEIDI
+	const EVENT_BEAT_PICNICKER_EDNA
+	const EVENT_BEAT_PICNICKER_GINA3
+	const EVENT_BEAT_PICNICKER_TIFFANY2
+	const EVENT_BEAT_PICNICKER_TIFFANY3
+	const EVENT_BEAT_PICNICKER_ERIN2
+	const EVENT_BEAT_PICNICKER_TANYA
+	const EVENT_BEAT_PICNICKER_TIFFANY
+	const EVENT_BEAT_PICNICKER_ERIN3
+; Guitarist
+	const EVENT_BEAT_GUITARIST_CLYDE
+	const EVENT_BEAT_GUITARIST_VINCENT
+; Juggler
+	const EVENT_BEAT_JUGGLER_IRWIN
+	const EVENT_BEAT_JUGGLER_FRITZ
+	const EVENT_BEAT_JUGGLER_HORTON
+	const EVENT_BEAT_JUGGLER_IRWIN2
+	const EVENT_BEAT_JUGGLER_IRWIN3
+; Gentleman
+	const EVENT_BEAT_GENTLEMAN_PRESTON
+	const EVENT_BEAT_GENTLEMAN_EDWARD
+	const EVENT_BEAT_GENTLEMAN_GREGORY
+	const EVENT_BEAT_GENTLEMAN_VIRGIL
+	const EVENT_BEAT_GENTLEMAN_ALFRED
+; Scientist
+	const EVENT_BEAT_SCIENTIST_ROSS
+	const EVENT_BEAT_SCIENTIST_MITCH
+	const EVENT_BEAT_SCIENTIST_JED
+	const EVENT_BEAT_SCIENTIST_MARC
+	const EVENT_BEAT_SCIENTIST_RICH
+; Blackbelt
+	const EVENT_BEAT_BLACKBELT_KENJI2
+	const EVENT_BEAT_BLACKBELT_YOSHI
+	const EVENT_BEAT_BLACKBELT_KENJI3
+	const EVENT_BEAT_BLACKBELT_LAO
+	const EVENT_BEAT_BLACKBELT_NOB
+	const EVENT_BEAT_BLACKBELT_KIYO
+	const EVENT_BEAT_BLACKBELT_LUNG
+	const EVENT_BEAT_BLACKBELT_KENJI
+	const EVENT_BEAT_BLACKBELT_WAI
+; Beauti
+	const EVENT_BEAT_BEAUTY_VICTORIA
+	const EVENT_BEAT_BEAUTY_SAMANTHA
+	const EVENT_BEAT_BEAUTY_JULIE
+	const EVENT_BEAT_BEAUTY_JACLYN
+	const EVENT_BEAT_BEAUTY_BRENDA
+	const EVENT_BEAT_BEAUTY_CASSIE
+	const EVENT_BEAT_BEAUTY_CAROLINE
+	const EVENT_BEAT_BEAUTY_CARLENE
+	const EVENT_BEAT_BEAUTY_JESSICA
+	const EVENT_BEAT_BEAUTY_RACHAEL
+	const EVENT_BEAT_BEAUTY_ANGELICA
+	const EVENT_BEAT_BEAUTY_KENDRA
+	const EVENT_BEAT_BEAUTY_VERONICA
+	const EVENT_BEAT_BEAUTY_JULIA
+	const EVENT_BEAT_BEAUTY_THERESA
+	const EVENT_BEAT_BEAUTY_VALERIE
+; Johto Gym Leaders
+	const EVENT_BEAT_FALKNER
+	const EVENT_BEAT_BUGSY
+	const EVENT_BEAT_WHITNEY
+	const EVENT_BEAT_MORTY
+	const EVENT_BEAT_JASMINE
+	const EVENT_BEAT_CHUCK
+	const EVENT_BEAT_PRYCE
+	const EVENT_BEAT_CLAIR
+; Kanto Gym Leaders
+	const EVENT_BEAT_BROCK
+	const EVENT_BEAT_MISTY
+	const EVENT_BEAT_LTSURGE
+	const EVENT_BEAT_ERIKA
+	const EVENT_BEAT_JANINE
+	const EVENT_BEAT_SABRINA
+	const EVENT_BEAT_BLAINE
+	const EVENT_BEAT_BLUE
+; PokefanM
+	const EVENT_BEAT_POKEFANM_WILLIAM
+	const EVENT_BEAT_POKEFANM_DEREK
+	const EVENT_BEAT_POKEFANM_ROBERT
+	const EVENT_BEAT_POKEFANM_JOSHUA
+	const EVENT_BEAT_POKEFANM_CARTER
+	const EVENT_BEAT_POKEFANM_TREVOR
+	const EVENT_BEAT_POKEFANM_BRANDON
+	const EVENT_BEAT_POKEFANM_JEREMY
+	const EVENT_BEAT_POKEFANM_COLIN
+	const EVENT_BEAT_POKEFANM_DEREK2
+	const EVENT_BEAT_POKEFANM_DEREK3
+	const EVENT_BEAT_POKEFANM_ALEX
+; PokefanF
+	const EVENT_BEAT_POKEFANF_BEVERLY
+	const EVENT_BEAT_POKEFANF_RUTH
+	const EVENT_BEAT_POKEFANF_BEVERLY2
+	const EVENT_BEAT_POKEFANF_BEVERLY3
+	const EVENT_BEAT_POKEFANF_GEORGIA
+; Unknown
+	const EVENT_4DE
+; Kimono Girl
+	const EVENT_BEAT_KIMONO_GIRL_NAOKO
+	const EVENT_BEAT_KIMONO_GIRL_SAYO
+	const EVENT_BEAT_KIMONO_GIRL_ZUKI
+	const EVENT_BEAT_KIMONO_GIRL_KUNI
+	const EVENT_BEAT_KIMONO_GIRL_MIKI
+; Pokemaniac
+	const EVENT_BEAT_POKEMANIAC_LARRY
+	const EVENT_BEAT_POKEMANIAC_ANDREW
+	const EVENT_BEAT_POKEMANIAC_CALVIN
+	const EVENT_BEAT_POKEMANIAC_SHANE
+	const EVENT_BEAT_POKEMANIAC_BEN
+	const EVENT_BEAT_POKEMANIAC_BRENT
+	const EVENT_BEAT_POKEMANIAC_RON
+	const EVENT_BEAT_POKEMANIAC_ETHAN
+	const EVENT_BEAT_POKEMANIAC_BRENT2
+	const EVENT_BEAT_POKEMANIAC_BRENT3
+	const EVENT_BEAT_POKEMANIAC_ISSAC
+	const EVENT_BEAT_POKEMANIAC_DONALD
+	const EVENT_BEAT_POKEMANIAC_ZACH
+; GruntM
+	const EVENT_BEAT_ROCKET_GRUNTM_1
+	const EVENT_BEAT_ROCKET_GRUNTM_2
+	const EVENT_BEAT_ROCKET_GRUNTM_3
+	const EVENT_BEAT_ROCKET_GRUNTM_4
+	const EVENT_BEAT_ROCKET_GRUNTM_5
+	const EVENT_BEAT_ROCKET_GRUNTM_6
+	const EVENT_BEAT_ROCKET_GRUNTM_7
+	const EVENT_BEAT_ROCKET_GRUNTM_8
+	const EVENT_BEAT_ROCKET_GRUNTM_9
+	const EVENT_BEAT_ROCKET_GRUNTM_10
+	const EVENT_BEAT_ROCKET_GRUNTM_11
+	const EVENT_BEAT_ROCKET_GRUNTM_12
+	const EVENT_BEAT_ROCKET_GRUNTM_13
+	const EVENT_BEAT_ROCKET_GRUNTM_14
+	const EVENT_BEAT_ROCKET_GRUNTM_15
+	const EVENT_BEAT_ROCKET_GRUNTM_16
+	const EVENT_BEAT_ROCKET_GRUNTM_17
+	const EVENT_BEAT_ROCKET_GRUNTM_18
+	const EVENT_BEAT_ROCKET_GRUNTM_19
+	const EVENT_BEAT_ROCKET_GRUNTM_20
+	const EVENT_BEAT_ROCKET_GRUNTM_21
+	const EVENT_BEAT_ROCKET_GRUNTM_22
+	const EVENT_BEAT_ROCKET_GRUNTM_23
+	const EVENT_BEAT_ROCKET_GRUNTM_24
+	const EVENT_BEAT_ROCKET_GRUNTM_25
+	const EVENT_BEAT_ROCKET_GRUNTM_26
+	const EVENT_BEAT_ROCKET_GRUNTM_27
+	const EVENT_BEAT_ROCKET_GRUNTM_28
+	const EVENT_BEAT_ROCKET_GRUNTM_29
+	const EVENT_BEAT_ROCKET_GRUNTM_30
+	const EVENT_BEAT_ROCKET_GRUNTM_31
+; GruntF
+	const EVENT_BEAT_ROCKET_GRUNTF_1
+	const EVENT_BEAT_ROCKET_GRUNTF_2
+	const EVENT_BEAT_ROCKET_GRUNTF_3
+	const EVENT_BEAT_ROCKET_GRUNTF_4
+	const EVENT_BEAT_ROCKET_GRUNTF_5
+; Lass
+	const EVENT_BEAT_LASS_CARRIE
+	const EVENT_BEAT_LASS_BRIDGET
+	const EVENT_BEAT_LASS_ALICE
+	const EVENT_BEAT_LASS_KRISE
+	const EVENT_BEAT_LASS_CONNIE
+	const EVENT_BEAT_LASS_LINDA
+	const EVENT_BEAT_LASS_LAURA
+	const EVENT_BEAT_LASS_SHANNON
+	const EVENT_BEAT_LASS_MICHELLE
+	const EVENT_BEAT_LASS_DANA
+	const EVENT_BEAT_LASS_ELLEN
+	const EVENT_BEAT_LASS_CONNIE2
+	const EVENT_BEAT_LASS_CONNIE3
+	const EVENT_BEAT_LASS_DANA2
+	const EVENT_BEAT_LASS_DANA3
+; Hiker
+	const EVENT_BEAT_HIKER_ANTHONY2
+	const EVENT_BEAT_HIKER_RUSSELL
+	const EVENT_BEAT_HIKER_PHILLIP
+	const EVENT_BEAT_HIKER_LEONARD
+	const EVENT_BEAT_HIKER_ANTHONY
+	const EVENT_BEAT_HIKER_BENJAMIN
+	const EVENT_BEAT_HIKER_ERIK
+	const EVENT_BEAT_HIKER_MICHAEL
+	const EVENT_BEAT_HIKER_PARRY
+	const EVENT_BEAT_HIKER_TIMOTHY
+	const EVENT_BEAT_HIKER_BAILEY
+	const EVENT_BEAT_HIKER_ANTHONY3
+	const EVENT_BEAT_HIKER_TIM
+	const EVENT_BEAT_HIKER_NOLAND
+	const EVENT_BEAT_HIKER_SIDNEY
+	const EVENT_BEAT_HIKER_KENNY
+	const EVENT_BEAT_HIKER_JIM
+	const EVENT_BEAT_HIKER_DANIEL
+	const EVENT_BEAT_HIKER_PARRY2
+	const EVENT_BEAT_HIKER_PARRY3
+; Bug Catcher
+	const EVENT_BEAT_BUG_CATCHER_DON
+	const EVENT_BEAT_BUG_CATCHER_ROB
+	const EVENT_BEAT_BUG_CATCHER_ED
+	const EVENT_BEAT_BUG_CATCHER_WADE
+	const EVENT_BEAT_BUG_CATCHER_BENNY
+	const EVENT_BEAT_BUG_CATCHER_AL
+	const EVENT_BEAT_BUG_CATCHER_JOSH
+	const EVENT_BEAT_BUG_CATCHER_ARNIE
+	const EVENT_BEAT_BUG_CATCHER_KEN
+	const EVENT_BEAT_BUG_CATCHER_WADE2
+	const EVENT_BEAT_BUG_CATCHER_WADE3
+	const EVENT_BEAT_BUG_CATCHER_DOUG
+	const EVENT_BEAT_BUG_CATCHER_ARNIE2
+	const EVENT_BEAT_BUG_CATCHER_ARNIE3
+; Officer
+	const EVENT_BEAT_OFFICER_KEITH
+	const EVENT_BEAT_OFFICER_DIRK
+; CooltrainerM
+	const EVENT_BEAT_COOLTRAINERM_NICK
+	const EVENT_BEAT_COOLTRAINERM_AARON
+	const EVENT_BEAT_COOLTRAINERM_PAUL
+	const EVENT_BEAT_COOLTRAINERM_CODY
+	const EVENT_BEAT_COOLTRAINERM_MIKE
+	const EVENT_BEAT_COOLTRAINERM_GAVEN2
+	const EVENT_BEAT_COOLTRAINERM_GAVEN3
+	const EVENT_BEAT_COOLTRAINERM_RYAN
+	const EVENT_BEAT_COOLTRAINERM_JAKE
+	const EVENT_BEAT_COOLTRAINERM_GAVEN
+	const EVENT_BEAT_COOLTRAINERM_BLAKE
+	const EVENT_BEAT_COOLTRAINERM_BRIAN
+	const EVENT_BEAT_COOLTRAINERM_ERICK
+	const EVENT_BEAT_COOLTRAINERM_ANDY
+	const EVENT_BEAT_COOLTRAINERM_TYLER
+	const EVENT_BEAT_COOLTRAINERM_SEAN
+	const EVENT_BEAT_COOLTRAINERM_KEVIN
+	const EVENT_BEAT_COOLTRAINERM_STEVE
+	const EVENT_BEAT_COOLTRAINERM_ALLEN
+; CooltrainerF
+	const EVENT_BEAT_COOLTRAINERF_GWEN
+	const EVENT_BEAT_COOLTRAINERF_LOIS
+	const EVENT_BEAT_COOLTRAINERF_FRAN
+	const EVENT_BEAT_COOLTRAINERF_LOLA
+	const EVENT_BEAT_COOLTRAINERF_KATE
+	const EVENT_BEAT_COOLTRAINERF_IRENE
+	const EVENT_BEAT_COOLTRAINERF_KELLY
+	const EVENT_BEAT_COOLTRAINERF_JOYCE
+	const EVENT_BEAT_COOLTRAINERF_BETH
+	const EVENT_BEAT_COOLTRAINERF_REENA
+	const EVENT_BEAT_COOLTRAINERF_MEGAN
+	const EVENT_BEAT_COOLTRAINERF_BETH2
+	const EVENT_BEAT_COOLTRAINERF_CAROL
+	const EVENT_BEAT_COOLTRAINERF_QUINN
+	const EVENT_BEAT_COOLTRAINERF_EMMA
+	const EVENT_BEAT_COOLTRAINERF_CYBIL
+	const EVENT_BEAT_COOLTRAINERF_JENN
+	const EVENT_BEAT_COOLTRAINERF_BETH3
+	const EVENT_BEAT_COOLTRAINERF_REENA2
+	const EVENT_BEAT_COOLTRAINERF_REENA3
+; ExecutiveF
+	const EVENT_BEAT_ROCKET_EXECUTIVEF_1
+	const EVENT_BEAT_ROCKET_EXECUTIVEF_2
+; ExecutiveM
+	const EVENT_BEAT_ROCKET_EXECUTIVEM_1
+	const EVENT_BEAT_ROCKET_EXECUTIVEM_2
+	const EVENT_BEAT_ROCKET_EXECUTIVEM_3
+	const EVENT_BEAT_ROCKET_EXECUTIVEM_4
+; Sailor
+	const EVENT_BEAT_SAILOR_EUGENE
+	const EVENT_BEAT_SAILOR_HUEY
+	const EVENT_BEAT_SAILOR_TERRELL
+	const EVENT_BEAT_SAILOR_KENT
+	const EVENT_BEAT_SAILOR_ERNEST
+	const EVENT_BEAT_SAILOR_JEFF
+	const EVENT_BEAT_SAILOR_GARRETT
+	const EVENT_BEAT_SAILOR_KENNETH
+	const EVENT_BEAT_SAILOR_STANLY
+	const EVENT_BEAT_SAILOR_HARRY
+	const EVENT_BEAT_SAILOR_HUEY2
+	const EVENT_BEAT_SAILOR_HUEY3
+; Super Nerd
+	const EVENT_BEAT_SUPER_NERD_STAN
+	const EVENT_BEAT_SUPER_NERD_ERIC
+	const EVENT_BEAT_SUPER_NERD_GREGG
+	const EVENT_BEAT_SUPER_NERD_JAY
+	const EVENT_BEAY_SUPER_NERD_DAVE
+	const EVENT_BEAT_SUPER_NERD_SAM
+	const EVENT_BEAT_SUPER_NERD_TOM
+	const EVENT_BEAT_SUPER_NERD_PAT
+	const EVENT_BEAT_SUPER_NERD_SHAWN
+	const EVENT_BEAT_SUPER_NERD_TERU
+; Medium
+	const EVENT_BEAT_MEDIUM_MARTHA
+	const EVENT_BEAT_MEDIUM_GRACE
+	const EVENT_BEAT_MEDIUM_BETHANY
+	const EVENT_BEAT_MEDIUM_MARGRET
+	const EVENT_BEAT_MEDIUM_ETHEL
+	const EVENT_BEAT_MEDIUM_REBECCA
+	const EVENT_BEAT_MEDIUM_DORIS
+; Skier
+	const EVENT_BEAT_SKIER_ROXANNE
+	const EVENT_BEAT_SKIER_CLARISSA
+; SwimmerM
+	const EVENT_BEAT_SWIMMERM_HAROLD
+	const EVENT_BEAT_SWIMMERM_SIMON
+	const EVENT_BEAT_SWIMMERM_RANDALL
+	const EVENT_BEAT_SWIMMERM_CHARLIE
+	const EVENT_BEAT_SWIMMERM_GEORGE
+	const EVENT_BEAT_SWIMMERM_BERKE
+	const EVENT_BEAT_SWIMMERM_KIRK
+	const EVENT_BEAT_SWIMMERM_MATHEW
+	const EVENT_BEAT_SWIMMERM_HAL
+	const EVENT_BEAT_SWIMMERM_PATON
+	const EVENT_BEAT_SWIMMERM_DARYL
+	const EVENT_BEAT_SWIMMERM_WALTER
+	const EVENT_BEAT_SWIMMERM_TONY
+	const EVENT_BEAT_SWIMMERM_JEROME
+	const EVENT_BEAT_SWIMMERM_TUCKER
+	const EVENT_BEAT_SWIMMERM_RICK
+	const EVENT_BEAT_SWIMMERM_CAMERON
+	const EVENT_BEAT_SWIMMERM_SETH
+	const EVENT_BEAT_SWIMMERM_JAMES
+	const EVENT_BEAT_SWIMMERM_LEWIS
+	const EVENT_BEAT_SWIMMERM_PARKER
+; Youngster
+	const EVENT_BEAT_YOUNGSTER_JOEY
+	const EVENT_BEAT_YOUNGSTER_MIKEY
+	const EVENT_BEAT_YOUNGSTER_ALBERT
+	const EVENT_BEAT_YOUNGSTER_GORDON
+	const EVENT_BEAT_YOUNGSTER_SAMUEL
+	const EVENT_BEAT_YOUNGSTER_IAN
+	const EVENT_BEAT_YOUNGSTER_JOEY2
+	const EVENT_BEAT_YOUNGSTER_JOEY3
+	const EVENT_BEAT_YOUNGSTER_WARREN
+	const EVENT_BEAT_YOUNGSTER_JIMMY
+	const EVENT_BEAT_YOUNGSTER_OWEN
+	const EVENT_BEAT_YOUNGSTER_JASON
+; Teacher
+	const EVENT_BEAT_TEACHER_COLETTE
+	const EVENT_BEAT_TEACHER_HILLARY
+	const EVENT_BEAT_TEACHER_SHIRLEY
+; Elite Four and Champion
+	const EVENT_BEAT_ELITE_4_WILL
+	const EVENT_BEAT_ELITE_4_KOGA
+	const EVENT_BEAT_ELITE_4_BRUNO
+	const EVENT_BEAT_ELITE_4_KAREN
+	const EVENT_BEAT_CHAMPION_LANCE
+; New to Crystal
+	const EVENT_BEAT_COOLTRAINERM_DARIN
+	const EVENT_BEAT_COOLTRAINERF_CARA
+	const EVENT_BEAT_TWINS_LEA_AND_PIA
+	const EVENT_BEAT_BUG_CATCHER_WAYNE
+	const EVENT_BEAT_BEAUTY_OLIVIA
+	const EVENT_BEAT_POKEFANF_JAIME
+	const EVENT_BEAT_CAMPER_QUENTIN
+	const EVENT_BEAT_POKEMANIAC_MILLER
+	const EVENT_BEAT_SUPER_NERD_HUGH
+	const EVENT_BEAT_SUPER_NERD_MARKUS
+	const EVENT_BEAT_POKEFANM_REX
+	const EVENT_BEAT_POKEFANM_ALLAN
+	const EVENT_BEAT_SAGE_GAKU
+	const EVENT_BEAT_SAGE_MASA
+	const EVENT_BEAT_SAGE_KOJI
+; ???
+	const EVENT_5CC
+	const EVENT_5CD
+	const EVENT_5CE
+	const EVENT_5CF
+	const EVENT_5D0
+	const EVENT_5D1
+	const EVENT_5D2
+	const EVENT_5D3
+	const EVENT_5D4
+	const EVENT_5D5
+	const EVENT_5D6
+	const EVENT_5D7
+	const EVENT_5D8
+	const EVENT_5D9
+	const EVENT_5DA
+	const EVENT_5DB
+	const EVENT_5DC
+	const EVENT_5DD
+	const EVENT_5DE
+	const EVENT_5DF
+	const EVENT_5E0
+	const EVENT_5E1
+	const EVENT_5E2
+	const EVENT_5E3
+	const EVENT_5E4
+	const EVENT_5E5
+	const EVENT_5E6
+	const EVENT_5E7
+	const EVENT_5E8
+	const EVENT_5E9
+	const EVENT_5EA
+	const EVENT_5EB
+	const EVENT_5EC
+	const EVENT_5ED
+	const EVENT_5EE
+	const EVENT_5EF
+	const EVENT_5F0
+	const EVENT_5F1
+	const EVENT_5F2
+	const EVENT_5F3
+	const EVENT_5F4
+	const EVENT_5F5
+	const EVENT_5F6
+	const EVENT_5F7
+	const EVENT_5F8
+	const EVENT_5F9
+	const EVENT_5FA
+	const EVENT_5FB
+	const EVENT_5FC
+	const EVENT_5FD
+	const EVENT_5FE
+	const EVENT_5FF
+	const EVENT_600
+	const EVENT_601
+	const EVENT_602
+	const EVENT_603
+	const EVENT_604
+	const EVENT_605
+	const EVENT_606
+	const EVENT_607
+	const EVENT_608
+	const EVENT_609
+	const EVENT_60A
+	const EVENT_60B
+	const EVENT_60C
+	const EVENT_60D
+	const EVENT_60E
+	const EVENT_60F
+	const EVENT_610
+	const EVENT_611
+	const EVENT_612
+	const EVENT_613
+	const EVENT_614
+	const EVENT_615
+	const EVENT_616
+	const EVENT_617
+	const EVENT_618
+	const EVENT_619
+	const EVENT_61A
+	const EVENT_61B
+	const EVENT_61C
+	const EVENT_61D
+	const EVENT_61E
+	const EVENT_61F
+	const EVENT_620
+	const EVENT_621
+	const EVENT_622
+	const EVENT_623
+	const EVENT_624
+	const EVENT_625
+	const EVENT_626
+	const EVENT_627
+	const EVENT_628
+	const EVENT_629
+	const EVENT_62A
+	const EVENT_62B
+	const EVENT_62C
+	const EVENT_62D
+	const EVENT_62E
+	const EVENT_62F
+	const EVENT_630
+	const EVENT_631
+	const EVENT_632
+	const EVENT_633
+	const EVENT_634
+	const EVENT_635
+	const EVENT_636
+	const EVENT_637
+	const EVENT_638
+	const EVENT_639
+	const EVENT_63A
+	const EVENT_63B
+	const EVENT_63C
+	const EVENT_63D
+	const EVENT_63E
+	const EVENT_63F
+; Sprite visibility: When these events are cleared, the sprite becomes visible; when set, the sprite is hidden.
+; The map script command macros `disappear` and `appear` set/clear these flags and immediately apply the effect on visibility.
+; The map script command macros `setevent` and `clearevent` set/clear these flags, and their effects will be seen when the map is reloaded.
+; Johto items: 0x640
+	const EVENT_CYNDAQUIL_POKEBALL_IN_ELMS_LAB
+	const EVENT_TOTODILE_POKEBALL_IN_ELMS_LAB
+	const EVENT_CHIKORITA_POKEBALL_IN_ELMS_LAB
+	const EVENT_VIOLET_CITY_PP_UP
+	const EVENT_VIOLET_CITY_RARE_CANDY
+	const EVENT_LAKE_OF_RAGE_ELIXER
+	const EVENT_LAKE_OF_RAGE_TM_DETECT
+	const EVENT_SPROUT_TOWER1F_PARLYZ_HEAL
+	const EVENT_SPROUT_TOWER2F_X_ACCURACY
+	const EVENT_SPROUT_TOWER_3F_POTION
+	const EVENT_SPROUT_TOWER_3F_ESCAPE_ROPE
+	const EVENT_TIN_TOWER_3F_FULL_HEAL
+	const EVENT_TIN_TOWER_4F_ULTRA_BALL
+	const EVENT_TIN_TOWER_4F_PP_UP
+	const EVENT_TIN_TOWER_4F_ESCAPE_ROPE
+	const EVENT_TIN_TOWER_5F_RARE_CANDY
+	const EVENT_TIN_TOWER_7F_MAX_REVIVE
+	const EVENT_TIN_TOWER_8F_NUGGET
+	const EVENT_TIN_TOWER_8F_MAX_ELIXER
+	const EVENT_TIN_TOWER_8F_FULL_RESTORE
+	const EVENT_TEAM_ROCKET_BASE_B3F_ULTRA_BALL
+	const EVENT_UNDERGROUND_WAREHOUSE_ULTRA_BALL
+	const EVENT_BURNED_TOWER_1F_HP_UP
+	const EVENT_BURNED_TOWER_B1F_TM_ENDURE
+	const EVENT_NATIONAL_PARK_PARLYZ_HEAL
+	const EVENT_NATIONAL_PARK_TM_DIG
+	const EVENT_UNION_CAVE_1F_GREAT_BALL
+	const EVENT_UNION_CAVE_1F_X_ATTACK
+	const EVENT_UNION_CAVE_1F_POTION
+	const EVENT_UNION_CAVE_1F_AWAKENING
+	const EVENT_UNION_CAVE_B1F_TM_SWIFT
+	const EVENT_UNION_CAVE_B1F_X_DEFEND
+	const EVENT_UNION_CAVE_B2F_ELIXER
+	const EVENT_UNION_CAVE_B2F_HYPER_POTION
+	const EVENT_SLOWPOKE_WELL_B1F_SUPER_POTION
+	const EVENT_SLOWPOKE_WELL_B2F_TM_RAIN_DANCE
+	const EVENT_OLIVINE_LIGHTHOUSE_3F_ETHER
+	const EVENT_OLIVINE_LIGHTHOUSE_5F_RARE_CANDY
+	const EVENT_OLIVINE_LIGHTHOUSE_5F_SUPER_REPEL
+	const EVENT_OLIVINE_LIGHTHOUSE_5F_TM_SWAGGER
+	const EVENT_OLIVINE_LIGHTHOUSE_6F_SUPER_POTION
+	const EVENT_TEAM_ROCKET_BASE_B1F_HYPER_POTION
+	const EVENT_TEAM_ROCKET_BASE_B1F_NUGGET
+	const EVENT_TEAM_ROCKET_BASE_B1F_GUARD_SPEC
+	const EVENT_TEAM_ROCKET_BASE_B2F_TM_THIEF
+	const EVENT_TEAM_ROCKET_BASE_B3F_PROTEIN
+	const EVENT_TEAM_ROCKET_BASE_B3F_X_SPECIAL
+	const EVENT_TEAM_ROCKET_BASE_B3F_FULL_HEAL
+	const EVENT_TEAM_ROCKET_BASE_B3F_ICE_HEAL
+	const EVENT_ILEX_FOREST_REVIVE
+	const EVENT_WAREHOUSE_ENTRANCE_COIN_CASE
+	const EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_SMOKE_BALL
+	const EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_FULL_HEAL
+	const EVENT_GOLDENROD_DEPT_STORE_B1F_ETHER
+	const EVENT_GOLDENROD_DEPT_STORE_B1F_AMULET_COIN
+	const EVENT_GOLDENROD_DEPT_STORE_B1F_BURN_HEAL
+	const EVENT_GOLDENROD_DEPT_STORE_B1F_ULTRA_BALL
+	const EVENT_UNDERGROUND_WAREHOUSE_MAX_ETHER
+	const EVENT_UNDERGROUND_WAREHOUSE_TM_SLEEP_TALK
+	const EVENT_MOUNT_MORTAR_1F_OUTSIDE_ETHER
+	const EVENT_MOUNT_MORTAR_1F_OUTSIDE_REVIVE
+	const EVENT_MOUNT_MORTAR_1F_INSIDE_ESCAPE_ROPE
+	const EVENT_MOUNT_MORTAR_1F_INSIDE_MAX_REVIVE
+	const EVENT_MOUNT_MORTAR_1F_INSIDE_HYPER_POTION
+	const EVENT_MOUNT_MORTAR_2F_INSIDE_MAX_POTION
+	const EVENT_MOUNT_MORTAR_2F_INSIDE_RARE_CANDY
+	const EVENT_MOUNT_MORTAR_2F_INSIDE_TM_DEFENSE_CURL
+	const EVENT_MOUNT_MORTAR_2F_INSIDE_DRAGON_SCALE
+	const EVENT_MOUNT_MORTAR_2F_INSIDE_ELIXER
+	const EVENT_MOUNT_MORTAR_2F_INSIDE_ESCAPE_ROPE
+	const EVENT_MOUNT_MORTAR_B1F_HYPER_POTION
+	const EVENT_MOUNT_MORTAR_B1F_CARBOS
+	const EVENT_GOT_HM07_WATERFALL
+	const EVENT_ICE_PATH_1F_PP_UP
+	const EVENT_ICE_PATH_B1F_IRON
+	const EVENT_ICE_PATH_B2F_MAHOGANY_SIDE_FULL_HEAL
+	const EVENT_ICE_PATH_B2F_MAHOGANY_SIDE_MAX_POTION
+	const EVENT_ICE_PATH_B2F_BLACKTHORN_SIDE_TM_REST
+	const EVENT_ICE_PATH_B3F_NEVERMELTICE
+	const EVENT_WHIRL_ISLAND_NE_ULTRA_BALL
+	const EVENT_WHIRL_ISLAND_SW_ULTRA_BALL
+	const EVENT_WHIRL_ISLAND_B1F_FULL_RESTORE
+	const EVENT_WHIRL_ISLAND_B1F_CARBOS
+	const EVENT_WHIRL_ISLAND_B1F_CALCIUM
+	const EVENT_WHIRL_ISLAND_B1F_NUGGET
+	const EVENT_WHIRL_ISLAND_B1F_ESCAPE_ROPE
+	const EVENT_WHIRL_ISLAND_B2F_FULL_RESTORE
+	const EVENT_WHIRL_ISLAND_B2F_MAX_REVIVE
+	const EVENT_WHIRL_ISLAND_B2F_MAX_ELIXER
+	const EVENT_SILVER_CAVE_ROOM_1_MAX_ELIXER
+	const EVENT_SILVER_CAVE_ROOM_1_PROTEIN
+	const EVENT_SILVER_CAVE_ROOM_1_ESCAPE_ROPE
+	const EVENT_SILVER_CAVE_ITEM_ROOMS_MAX_REVIVE
+	const EVENT_SILVER_CAVE_ITEM_ROOMS_FULL_RESTORE
+	const EVENT_DARK_CAVE_VIOLET_ENTRANCE_POTION
+	const EVENT_DARK_CAVE_VIOLET_ENTRANCE_FULL_HEAL
+	const EVENT_DARK_CAVE_VIOLET_ENTRANCE_HYPER_POTION
+	const EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_REVIVE
+	const EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_TM_SNORE
+	const EVENT_VICTORY_ROAD_TM_EARTHQUAKE
+	const EVENT_VICTORY_ROAD_MAX_REVIVE
+	const EVENT_VICTORY_ROAD_FULL_RESTORE
+	const EVENT_VICTORY_ROAD_FULL_HEAL
+	const EVENT_VICTORY_ROAD_HP_UP
+	const EVENT_DRAGONS_DEN_B1F_DRAGON_FANG
+	const EVENT_TOHJO_FALLS_MOON_STONE
+	const EVENT_ROUTE_26_MAX_ELIXER
+	const EVENT_ROUTE_27_TM_SOLARBEAM
+	const EVENT_ROUTE_27_RARE_CANDY
+	const EVENT_ROUTE_29_POTION
+	const EVENT_ROUTE_31_POTION
+	const EVENT_ROUTE_31_POKE_BALL
+	const EVENT_ROUTE_32_GREAT_BALL
+	const EVENT_ROUTE_32_REPEL
+	const EVENT_ROUTE_35_TM_ROLLOUT
+	const EVENT_ROUTE_42_ULTRA_BALL
+	const EVENT_ROUTE_42_SUPER_POTION
+	const EVENT_ROUTE_43_MAX_ETHER
+	const EVENT_ROUTE_44_MAX_REVIVE
+	const EVENT_ROUTE_44_ULTRA_BALL
+	const EVENT_ROUTE_45_NUGGET
+	const EVENT_ROUTE_45_REVIVE
+	const EVENT_ROUTE_45_ELIXER
+	const EVENT_ROUTE_45_MAX_POTION
+	const EVENT_ROUTE_46_X_SPEED
+; Johto people
+	const EVENT_RIVAL_NEW_BARK_TOWN
+	const EVENT_RIVAL_CHERRYGROVE_CITY
+	const EVENT_RIVAL_AZALEA_TOWN
+	const EVENT_RIVAL_TEAM_ROCKET_BASE
+	const EVENT_RIVAL_UNDERGROUND_PATH
+	const EVENT_RIVAL_VICTORY_ROAD
+	const EVENT_RIVAL_OLIVINE_CITY
+	const EVENT_RIVAL_SPROUT_TOWER
+	const EVENT_RIVAL_BURNED_TOWER
+	const EVENT_RIVAL_DRAGONS_DEN
+	const EVENT_KRISS_HOUSE_MOM_1
+	const EVENT_KRISS_HOUSE_MOM_2
+	const EVENT_MR_POKEMONS_HOUSE_OAK
+	const EVENT_VIOLET_CITY_EARL
+	const EVENT_EARLS_ACADEMY_EARL
+	const EVENT_GOLDENROD_CITY_ROCKET_SCOUT
+	const EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER
+	const EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	const EVENT_GOLDENROD_CITY_CIVILIANS
+	const EVENT_RADIO_TOWER_CIVILIANS_AFTER
+	const EVENT_RADIO_TOWER_BLACKBELT_BLOCKS_STAIRS
+	const EVENT_OLIVINE_LIGHTHOUSE_JASMINE
+	const EVENT_OLIVINE_GYM_JASMINE
+	const EVENT_LAKE_OF_RAGE_LANCE
+	const EVENT_MAHOGANY_MART_LANCE_AND_DRAGONITE
+	const EVENT_TEAM_ROCKET_BASE_B2F_LANCE
+	const EVENT_TEAM_ROCKET_BASE_B3F_LANCE_PASSWORDS
+	const EVENT_DRAGONS_DEN_CLAIR
+	const EVENT_TEAM_ROCKET_BASE_SECURITY_GRUNTS
+	const EVENT_TEAM_ROCKET_BASE_POPULATION
+	const EVENT_TEAM_ROCKET_BASE_B3F_EXECUTIVE
+	const EVENT_ROUTE_43_GATE_ROCKETS
+	const EVENT_TEAM_ROCKET_BASE_B2F_EXECUTIVE
+	const EVENT_TEAM_ROCKET_BASE_B2F_GRUNT_WITH_EXECUTIVE
+	const EVENT_TEAM_ROCKET_BASE_B2F_DRAGONITE
+	const EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_1
+	const EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_2
+	const EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_3
+	const EVENT_BLACKTHORN_CITY_SUPER_NERD_BLOCKS_GYM
+	const EVENT_BLACKTHORN_CITY_SUPER_NERD_DOES_NOT_BLOCK_GYM
+	const EVENT_DAYCARE_MAN_IN_DAYCARE
+	const EVENT_DAYCARE_MAN_ON_ROUTE_34
+	const EVENT_DAYCARE_MON_1
+	const EVENT_DAYCARE_MON_2
+	const EVENT_ILEX_FOREST_FARFETCHD
+	const EVENT_ROUTE_34_ILEX_FOREST_GATE_TEACHER_BEHIND_COUNTER
+	const EVENT_ROUTE_34_ILEX_FOREST_GATE_LASS
+	const EVENT_ROUTE_34_ILEX_FOREST_GATE_TEACHER_IN_WALKWAY
+	const EVENT_ILEX_FOREST_LASS
+	const EVENT_COPYCAT_1
+	const EVENT_COPYCAT_2
+	const EVENT_GOLDENROD_SALE_OFF
+	const EVENT_GOLDENROD_SALE_ON
+	const EVENT_6F2
+	const EVENT_ILEX_FOREST_APPRENTICE
+	const EVENT_ILEX_FOREST_CHARCOAL_MASTER
+	const EVENT_CHARCOAL_KILN_FARFETCH_D
+	const EVENT_CHARCOAL_KILN_APPRENTICE
+	const EVENT_CHARCOAL_KILN_BOSS
+	const EVENT_ROUTE_36_SUDOWOODO
+	const EVENT_AZALEA_TOWN_SLOWPOKES
+	const EVENT_AZALEA_TOWN_SLOWPOKETAIL_ROCKET
+	const EVENT_SLOWPOKE_WELL_SLOWPOKES
+	const EVENT_SLOWPOKE_WELL_ROCKETS
+	const EVENT_KURTS_HOUSE_SLOWPOKE
+	const EVENT_GUIDE_GENT_IN_HIS_HOUSE
+	const EVENT_GUIDE_GENT_VISIBLE_IN_CHERRYGROVE
+	const EVENT_ELMS_AIDE_IN_VIOLET_POKEMON_CENTER
+	const EVENT_ELMS_AIDE_IN_LAB
+	const EVENT_COP_IN_ELMS_LAB
+	const EVENT_RUINS_OF_ALPH_OUTSIDE_SCIENTIST
+	const EVENT_RUINS_OF_ALPH_RESEARCH_CENTER_SCIENTIST
+	const EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS
+	const EVENT_BOULDER_IN_BLACKTHORN_GYM_1
+	const EVENT_BOULDER_IN_BLACKTHORN_GYM_2
+	const EVENT_BOULDER_IN_BLACKTHORN_GYM_3
+	const EVENT_BOULDER_IN_ICE_PATH_1
+	const EVENT_BOULDER_IN_ICE_PATH_2
+	const EVENT_BOULDER_IN_ICE_PATH_3
+	const EVENT_BOULDER_IN_ICE_PATH_4
+	const EVENT_BOULDER_IN_ICE_PATH_1A
+	const EVENT_BOULDER_IN_ICE_PATH_2A
+	const EVENT_BOULDER_IN_ICE_PATH_3A
+	const EVENT_BOULDER_IN_ICE_PATH_4A
+	const EVENT_MYSTERY_GIFT_DELIVERY_GUY
+	const EVENT_MET_BILL
+	const EVENT_ECRUTEAK_POKE_CENTER_BILL
+	const EVENT_ROUTE_30_BATTLE
+	const EVENT_ROUTE_30_YOUNGSTER_JOEY
+	const EVENT_BUG_CATCHING_CONTESTANT_1A
+	const EVENT_BUG_CATCHING_CONTESTANT_2A
+	const EVENT_BUG_CATCHING_CONTESTANT_3A
+	const EVENT_BUG_CATCHING_CONTESTANT_4A
+	const EVENT_BUG_CATCHING_CONTESTANT_5A
+	const EVENT_BUG_CATCHING_CONTESTANT_6A
+	const EVENT_BUG_CATCHING_CONTESTANT_7A
+	const EVENT_BUG_CATCHING_CONTESTANT_8A
+	const EVENT_BUG_CATCHING_CONTESTANT_9A
+	const EVENT_BUG_CATCHING_CONTESTANT_10A
+	const EVENT_BUG_CATCHING_CONTESTANT_1B
+	const EVENT_BUG_CATCHING_CONTESTANT_2B
+	const EVENT_BUG_CATCHING_CONTESTANT_3B
+	const EVENT_BUG_CATCHING_CONTESTANT_4B
+	const EVENT_BUG_CATCHING_CONTESTANT_5B
+	const EVENT_BUG_CATCHING_CONTESTANT_6B
+	const EVENT_BUG_CATCHING_CONTESTANT_7B
+	const EVENT_BUG_CATCHING_CONTESTANT_8B
+	const EVENT_BUG_CATCHING_CONTESTANT_9B
+	const EVENT_BUG_CATCHING_CONTESTANT_10B
+	const EVENT_OLIVINE_PORT_SAILOR_AT_GANGWAY
+	const EVENT_VERMILION_PORT_SAILOR_AT_GANGWAY
+	const EVENT_FAST_SHIP_1F_GENTLEMAN
+	const EVENT_FAST_SHIP_CABINS_NNW_NNE_NE_SAILOR
+	const EVENT_FAST_SHIP_B1F_SAILOR_LEFT
+	const EVENT_FAST_SHIP_B1F_SAILOR_RIGHT
+	const EVENT_FAST_SHIP_CABINS_SE_SSE_GENTLEMAN
+	const EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_1
+	const EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_2
+	const EVENT_OLIVINE_PORT_PASSAGE_POKEFAN_M
+	const EVENT_ROUTE_35_NATIONAL_PARK_GATE_YOUNGSTER
+	const EVENT_LAKE_OF_RAGE_CIVILIANS
+	const EVENT_MAHOGANY_MART_OWNERS
+	const EVENT_OLIVINE_PORT_SPRITES_BEFORE_HALL_OF_FAME
+	const EVENT_OLIVINE_PORT_SPRITES_AFTER_HALL_OF_FAME
+	const EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
+	const EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
+	const EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
+	const EVENT_TIN_TOWER_ROOF_HO_OH
+	const EVENT_WHIRL_ISLAND_LUGIA_CHAMBER_LUGIA
+	const EVENT_KURTS_HOUSE_KURT_1
+	const EVENT_KURTS_HOUSE_KURT_2
+	const EVENT_SLOWPOKE_WELL_KURT ; 740
+	const EVENT_KRISS_HOUSE_2F_CONSOLE
+	const EVENT_KRISS_HOUSE_2F_DOLL_1
+	const EVENT_KRISS_HOUSE_2F_DOLL_2
+	const EVENT_KRISS_HOUSE_2F_BIG_DOLL
+	const EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY
+	const EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY
+	const EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY
+	const EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY
+	const EVENT_GOLDENROD_TRAIN_STATION_GENTLEMAN
+	const EVENT_BURNED_TOWER_B1F_BEASTS_1
+	const EVENT_BURNED_TOWER_B1F_BEASTS_2
+	const EVENT_BLACKTHORN_CITY_GRAMPS_BLOCKS_DRAGONS_DEN
+	const EVENT_BLACKTHORN_CITY_GRAMPS_NOT_BLOCKING_DRAGONS_DEN
+	const EVENT_RUINS_OF_ALPH_KABUTO_CHAMBER_RECEPTIONIST
+	const EVENT_OPENED_MT_SILVER
+	const EVENT_FOUGHT_SNORLAX ; 750
+	const EVENT_LAKE_OF_RAGE_RED_GYARADOS
+	const EVENT_WAREHOUSE_ENTRANCE_GRANNY
+	const EVENT_WAREHOUSE_ENTRANCE_GRAMPS
+	const EVENT_WAREHOUSE_ENTRANCE_OLDER_HAIRCUT_BROTHER
+	const EVENT_WAREHOUSE_ENTRANCE_YOUNGER_HAIRCUT_BROTHER
+	const EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_EAST
+	const EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_GYM
+	const EVENT_ROUTE_32_FRIEDA_OF_FRIDAY
+	const EVENT_ROUTE_29_TUSCANY_OF_TUESDAY
+	const EVENT_ROUTE_36_ARTHUR_OF_THURSDAY
+	const EVENT_ROUTE_37_SUNNY_OF_SUNDAY
+	const EVENT_LAKE_OF_RAGE_WESLEY_OF_WEDNESDAY
+	const EVENT_BLACKTHORN_CITY_SANTOS_OF_SATURDAY
+	const EVENT_ROUTE_40_MONICA_OF_MONDAY
+	const EVENT_LANCES_ROOM_OAK_AND_MARY
+	const EVENT_UNION_CAVE_B2F_LAPRAS ; 760
+	const EVENT_TEAM_ROCKET_DISBANDED
+	const EVENT_RED_IN_MT_SILVER
+	const EVENT_GOLDENROD_DEPT_STORE_5F_HAPPINESS_EVENT_LADY
+	const EVENT_BURNED_TOWER_MORTY
+	const EVENT_BURNED_TOWER_1F_EUSINE
+	const EVENT_RANG_CLEAR_BELL_1
+	const EVENT_RANG_CLEAR_BELL_2
+	const EVENT_FLORIA_AT_FLOWER_SHOP
+	const EVENT_FLORIA_AT_SUDOWOODO
+	const EVENT_GOLDENROD_CITY_MOVE_TUTOR
+	const EVENT_GOLDENROD_GAME_CORNER_MOVE_TUTOR
+; Kanto people
+	const EVENT_ROUTE_24_ROCKET
+	const EVENT_CERULEAN_GYM_ROCKET
+	const EVENT_ROUTE_25_MISTY_BOYFRIEND
+	const EVENT_TRAINERS_IN_CERULEAN_GYM
+	const EVENT_VERMILION_CITY_SNORLAX ; 770
+	const EVENT_ROUTE_5_6_POKEFAN_M_BLOCKS_UNDERGROUND_PATH
+	const EVENT_SAFFRON_TRAIN_STATION_POPULATION
+	const EVENT_COPYCATS_HOUSE_2F_DOLL
+	const EVENT_VERMILION_FAN_CLUB_DOLL
+	const EVENT_BLUE_IN_CINNABAR
+	const EVENT_VIRIDIAN_GYM_BLUE
+	const EVENT_SEAFOAM_GYM_GYM_GUY
+	const EVENT_MT_MOON_SQUARE_ROCK
+	const EVENT_MT_MOON_SQUARE_CLEFAIRY
+	const EVENT_MT_MOON_RIVAL
+	const EVENT_INDIGO_PLATEAU_POKECENTER_RIVAL
+	const EVENT_TELEPORT_GUY
+	const EVENT_PICKED_UP_FOCUS_BAND
+	const EVENT_ROCK_TUNNEL_1F_ELIXER
+	const EVENT_ROCK_TUNNEL_1F_TM_STEEL_WING
+	const EVENT_ROCK_TUNNEL_B1F_IRON ; 780
+	const EVENT_ROCK_TUNNEL_B1F_PP_UP
+	const EVENT_ROCK_TUNNEL_B1F_REVIVE
+	const EVENT_ROUTE_2_DIRE_HIT
+	const EVENT_ROUTE_2_MAX_POTION
+	const EVENT_ROUTE_2_CARBOS
+	const EVENT_ROUTE_2_ELIXER
+	const EVENT_ROUTE_4_HP_UP
+	const EVENT_ROUTE_12_CALCIUM
+	const EVENT_ROUTE_12_NUGGET
+	const EVENT_ROUTE_15_PP_UP
+	const EVENT_ROUTE_25_PROTEIN
+; New to Crystal
+	const EVENT_KURTS_HOUSE_GRANDDAUGHTER_1
+	const EVENT_KURTS_HOUSE_GRANDDAUGHTER_2
+	const EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_FISHER
+	const EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_YOUNGSTERS
+	const EVENT_DRAGON_SHRINE_CLAIR ; 790
+	const EVENT_BATTLE_TOWER_BATTLE_ROOM_YOUNGSTER
+	const EVENT_KRISS_HOUSE_1F_NEIGHBOR
+	const EVENT_KRISS_NEIGHBORS_HOUSE_NEIGHBOR
+	const EVENT_PICKED_UP_GOLD_BERRY_FROM_HO_OH_ITEM_ROOM
+	const EVENT_PICKED_UP_MYSTERYBERRY_FROM_HO_OH_ITEM_ROOM
+	const EVENT_PICKED_UP_REVIVAL_HERB_FROM_HO_OH_ITEM_ROOM
+	const EVENT_PICKED_UP_CHARCOAL_FROM_HO_OH_ITEM_ROOM
+	const EVENT_PICKED_UP_BERRY_FROM_KABUTO_ITEM_ROOM
+	const EVENT_PICKED_UP_PSNCUREBERRY_FROM_KABUTO_ITEM_ROOM
+	const EVENT_PICKED_UP_HEAL_POWDER_FROM_KABUTO_ITEM_ROOM
+	const EVENT_PICKED_UP_ENERGYPOWDER_FROM_KABUTO_ITEM_ROOM
+	const EVENT_PICKED_UP_MYSTERYBERRY_FROM_OMANYTE_ITEM_ROOM
+	const EVENT_PICKED_UP_MYSTIC_WATER_FROM_OMANYTE_ITEM_ROOM
+	const EVENT_PICKED_UP_STARDUST_FROM_OMANYTE_ITEM_ROOM
+	const EVENT_PICKED_UP_STAR_PIECE_FROM_OMANYTE_ITEM_ROOM
+	const EVENT_PICKED_UP_GOLD_BERRY_FROM_AERODACTYL_ITEM_ROOM ; 7a0
+	const EVENT_PICKED_UP_MOON_STONE_FROM_AERODACTYL_ITEM_ROOM
+	const EVENT_PICKED_UP_HEAL_POWDER_FROM_AERODACTYL_ITEM_ROOM
+	const EVENT_PICKED_UP_ENERGY_ROOT_FROM_AERODACTYL_ITEM_ROOM
+	const EVENT_AZALEA_TOWN_KURT
+	const EVENT_ILEX_FOREST_KURT
+	const EVENT_MOUNT_MORTAR_1F_INSIDE_MAX_POTION
+	const EVENT_MOUNT_MORTAR_1F_INSIDE_NUGGET
+	const EVENT_ECRUTEAK_GYM_GRAMPS
+	const EVENT_ECRUTEAK_CITY_GRAMPS
+	const EVENT_EUSINE_IN_BURNED_TOWER
+	const EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
+	const EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2
+	const EVENT_CIANWOOD_CITY_EUSINE
+	const EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY
+	const EVENT_SAW_SUICUNE_ON_ROUTE_42
+	const EVENT_SAW_SUICUNE_ON_ROUTE_36 ; 7b0
+	const EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE
+	const EVENT_TIN_TOWER_1F_SUICUNE
+	const EVENT_TIN_TOWER_1F_ENTEI
+	const EVENT_TIN_TOWER_1F_RAIKOU
+	const EVENT_TIN_TOWER_1F_EUSINE
+	const EVENT_TIN_TOWER_1F_WISE_TRIO_1
+	const EVENT_SET_WHEN_FOUGHT_HO_OH
+	const EVENT_ROUTE_30_ANTIDOTE
+	const EVENT_ILEX_FOREST_X_ATTACK
+	const EVENT_ILEX_FOREST_ANTIDOTE
+	const EVENT_ILEX_FOREST_ETHER
+	const EVENT_ROUTE_34_NUGGET
+	const EVENT_ROUTE_44_MAX_REPEL
+	const EVENT_ICE_PATH_1F_PROTEIN
+	const EVENT_DRAGONS_DEN_B1F_CALCIUM
+	const EVENT_DRAGONS_DEN_B1F_MAX_ELIXER ; 7c0
+	const EVENT_SILVER_CAVE_ROOM_1_ULTRA_BALL
+	const EVENT_SILVER_CAVE_ROOM_2_CALCIUM
+	const EVENT_SILVER_CAVE_ROOM_2_ULTRA_BALL
+	const EVENT_SILVER_CAVE_ROOM_2_PP_UP
+	const EVENT_TIN_TOWER_1F_WISE_TRIO_2
+	const EVENT_TIN_TOWER_6F_MAX_POTION
+	const EVENT_TIN_TOWER_9F_HP_UP
+	const EVENT_MOUNT_MORTAR_1F_INSIDE_IRON
+	const EVENT_MOUNT_MORTAR_1F_INSIDE_ULTRA_BALL
+	const EVENT_MOUNT_MORTAR_B1F_FULL_RESTORE
+	const EVENT_MOUNT_MORTAR_B1F_MAX_ETHER
+	const EVENT_MOUNT_MORTAR_B1F_PP_UP
+	const EVENT_RADIO_TOWER_5F_ULTRA_BALL
+	const EVENT_DARK_CAVE_VIOLET_ENTRANCE_DIRE_HIT
+	const EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
+NUM_EVENTS EQU const_value ; 7d0
--- a/constants/gfx_constants.asm
+++ b/constants/gfx_constants.asm
@@ -1,39 +1,40 @@
-ANIM_GFX_HIT        EQU 1
-ANIM_GFX_CUT        EQU 2
-ANIM_GFX_FIRE       EQU 3
-ANIM_GFX_WATER      EQU 4
-ANIM_GFX_LIGHTNING  EQU 5
-ANIM_GFX_PLANT      EQU 6
-ANIM_GFX_SMOKE      EQU 7
-ANIM_GFX_EXPLOSION  EQU 8
-ANIM_GFX_ROCKS      EQU 9
-ANIM_GFX_ICE        EQU 10
-ANIM_GFX_POKE_BALL  EQU 11
-ANIM_GFX_POISON     EQU 12
-ANIM_GFX_BUBBLE     EQU 13
-ANIM_GFX_NOISE      EQU 14
-ANIM_GFX_POWDER     EQU 15
-ANIM_GFX_BEAM       EQU 16
-ANIM_GFX_SPEED      EQU 17
-ANIM_GFX_CHARGE     EQU 18
-ANIM_GFX_WIND       EQU 19
-ANIM_GFX_WHIP       EQU 20
-ANIM_GFX_EGG        EQU 21
-ANIM_GFX_ROPE       EQU 22
-ANIM_GFX_PSYCHIC    EQU 23
-ANIM_GFX_REFLECT    EQU 24
-ANIM_GFX_STATUS     EQU 25
-ANIM_GFX_SAND       EQU 26
-ANIM_GFX_WEB        EQU 27
-ANIM_GFX_HAZE       EQU 28
-ANIM_GFX_HORN       EQU 29
-ANIM_GFX_FLOWER     EQU 30
-ANIM_GFX_MISC       EQU 31
-ANIM_GFX_SKY_ATTACK EQU 32
-ANIM_GFX_GLOBE      EQU 33
-ANIM_GFX_SHAPES     EQU 34
-ANIM_GFX_OBJECTS    EQU 35
-ANIM_GFX_SHINE      EQU 36
-ANIM_GFX_ANGELS     EQU 37
-ANIM_GFX_WAVE       EQU 38
-ANIM_GFX_AEROBLAST  EQU 39
+const_value SET 1
+	const ANIM_GFX_HIT
+	const ANIM_GFX_CUT
+	const ANIM_GFX_FIRE
+	const ANIM_GFX_WATER
+	const ANIM_GFX_LIGHTNING
+	const ANIM_GFX_PLANT
+	const ANIM_GFX_SMOKE
+	const ANIM_GFX_EXPLOSION
+	const ANIM_GFX_ROCKS
+	const ANIM_GFX_ICE
+	const ANIM_GFX_POKE_BALL
+	const ANIM_GFX_POISON
+	const ANIM_GFX_BUBBLE
+	const ANIM_GFX_NOISE
+	const ANIM_GFX_POWDER
+	const ANIM_GFX_BEAM
+	const ANIM_GFX_SPEED
+	const ANIM_GFX_CHARGE
+	const ANIM_GFX_WIND
+	const ANIM_GFX_WHIP
+	const ANIM_GFX_EGG
+	const ANIM_GFX_ROPE
+	const ANIM_GFX_PSYCHIC
+	const ANIM_GFX_REFLECT
+	const ANIM_GFX_STATUS
+	const ANIM_GFX_SAND
+	const ANIM_GFX_WEB
+	const ANIM_GFX_HAZE
+	const ANIM_GFX_HORN
+	const ANIM_GFX_FLOWER
+	const ANIM_GFX_MISC
+	const ANIM_GFX_SKY_ATTACK
+	const ANIM_GFX_GLOBE
+	const ANIM_GFX_SHAPES
+	const ANIM_GFX_OBJECTS
+	const ANIM_GFX_SHINE
+	const ANIM_GFX_ANGELS
+	const ANIM_GFX_WAVE
+	const ANIM_GFX_AEROBLAST
--- a/constants/item_constants.asm
+++ b/constants/item_constants.asm
@@ -190,77 +190,83 @@
 	const MUSIC_MAIL   ; $BC
 	const MIRAGE_MAIL  ; $BD
 	const ITEM_BE      ; $BE
-	const TM_01        ; $BF
-	const TM_02        ; $C0
-	const TM_03        ; $C1
-	const TM_04        ; $C2
-	const ITEM_C3      ; $C3
-	const TM_05        ; $C4
-	const TM_06        ; $C5
-	const TM_07        ; $C6
-	const TM_08        ; $C7
-	const TM_09        ; $C8
-	const TM_10        ; $C9
-	const TM_11        ; $CA
-	const TM_12        ; $CB
-	const TM_13        ; $CC
-	const TM_14        ; $CD
-	const TM_15        ; $CE
-	const TM_16        ; $CF
-	const TM_17        ; $D0
-	const TM_18        ; $D1
-	const TM_19        ; $D2
-	const TM_20        ; $D3
-	const TM_21        ; $D4
-	const TM_22        ; $D5
-	const TM_23        ; $D6
-	const TM_24        ; $D7
-	const TM_25        ; $D8
-	const TM_26        ; $D9
-	const TM_27        ; $DA
-	const TM_28        ; $DB
-	const ITEM_DC      ; $DC
-	const TM_29        ; $DD
-	const TM_30        ; $DE
-	const TM_31        ; $DF
-	const TM_32        ; $E0
-	const TM_33        ; $E1
-	const TM_34        ; $E2
-	const TM_35        ; $E3
-	const TM_36        ; $E4
-	const TM_37        ; $E5
-	const TM_38        ; $E6
-	const TM_39        ; $E7
-	const TM_40        ; $E8
-	const TM_41        ; $E9
-	const TM_42        ; $EA
-	const TM_43        ; $EB
-	const TM_44        ; $EC
-	const TM_45        ; $ED
-	const TM_46        ; $EE
-	const TM_47        ; $EF
-	const TM_48        ; $F0
-	const TM_49        ; $F1
-	const TM_50        ; $F2
-	const HM_01        ; $F3
-	const HM_02        ; $F4
-	const HM_03        ; $F5
-	const HM_04        ; $F6
-	const HM_05        ; $F7
-	const HM_06        ; $F8
-	const HM_07        ; $F9
-	const HM_08        ; $FA
 
+	add_tm DYNAMICPUNCH
+	add_tm HEADBUTT
+	add_tm CURSE
+	add_tm ROLLOUT
+	const ITEM_C3
+	add_tm ROAR
+	add_tm TOXIC
+	add_tm ZAP_CANNON
+	add_tm ROCK_SMASH
+	add_tm PSYCH_UP
+	add_tm HIDDEN_POWER
+	add_tm SUNNY_DAY
+	add_tm SWEET_SCENT
+	add_tm SNORE
+	add_tm BLIZZARD
+	add_tm HYPER_BEAM
+	add_tm ICY_WIND
+	add_tm PROTECT
+	add_tm RAIN_DANCE
+	add_tm GIGA_DRAIN
+	add_tm ENDURE
+	add_tm FRUSTRATION
+	add_tm SOLARBEAM
+	add_tm IRON_TAIL
+	add_tm DRAGONBREATH
+	add_tm THUNDER
+	add_tm EARTHQUAKE
+	add_tm RETURN
+	add_tm DIG
+	const ITEM_DC
+	add_tm PSYCHIC
+	add_tm SHADOW_BALL
+	add_tm MUD_SLAP
+	add_tm DOUBLE_TEAM
+	add_tm ICE_PUNCH
+	add_tm SWAGGER
+	add_tm SLEEP_TALK
+	add_tm SLUDGE_BOMB
+	add_tm SANDSTORM
+	add_tm FIRE_BLAST
+	add_tm SWIFT
+	add_tm DEFENSE_CURL
+	add_tm THUNDERPUNCH
+	add_tm DREAM_EATER
+	add_tm DETECT
+	add_tm REST
+	add_tm ATTRACT
+	add_tm THIEF
+	add_tm STEEL_WING
+	add_tm FIRE_PUNCH
+	add_tm FURY_CUTTER
+	add_tm NIGHTMARE
+NUM_TMS = const_value - TM01 - 2
 
-NUM_TMS EQU 50
-NUM_HMS EQU 7
+	add_hm CUT
+	add_hm FLY
+	add_hm SURF
+	add_hm STRENGTH
+	add_hm FLASH
+	add_hm WHIRLPOOL
+	add_hm WATERFALL
+NUM_HMS = const_value - HM01
+	const HM_08
 
+	add_mt FLAMETHROWER
+	add_mt THUNDERBOLT
+	add_mt ICE_BEAM
 
+
+
 ; leftovers from red
 SAFARI_BALL    EQU  8 ; MOON_STONE
 MOON_STONE_RED EQU 10 ; BURN_HEAL
 FULL_HEAL_RED  EQU 52 ; X_SPEED
 
+MAIL_MAX_LENGTH EQU $20
 
 ; pockets
 ITEM     EQU 1
@@ -286,7 +292,7 @@
 	const HELD_7
 	const HELD_CLEANSE_TAG
 
-const_value = 10
+const_value SET 10
 	const HELD_HEAL_POISON
 	const HELD_HEAL_FREEZE
 	const HELD_HEAL_BURN
@@ -295,7 +301,7 @@
 	const HELD_HEAL_STATUS
 	const HELD_HEAL_CONFUSION
 
-const_value = 20
+const_value SET 20
 	const HELD_PREVENT_POISON
 	const HELD_PREVENT_BURN
 	const HELD_PREVENT_FREEZE
@@ -303,7 +309,7 @@
 	const HELD_PREVENT_PARALYZE
 	const HELD_PREVENT_CONFUSE
 
-const_value = 30
+const_value SET 30
 	const HELD_30
 	const HELD_ATTACK_UP
 	const HELD_DEFENSE_UP
@@ -313,12 +319,12 @@
 	const HELD_ACCURACY_UP
 	const HELD_EVASION_UP
 
-const_value = 40
+const_value SET 40
 	const HELD_40
 	const HELD_41
 	const HELD_METAL_POWDER
 
-const_value = 50
+const_value SET 50
 	const HELD_NORMAL_BOOST
 	const HELD_FIGHTING_BOOST
 	const HELD_FLYING_BOOST
@@ -337,7 +343,7 @@
 	const HELD_DARK_BOOST
 	const HELD_STEEL_BOOST
 
-const_value = 70
+const_value SET 70
 	const HELD_CATCH_CHANCE
 	const HELD_71
 	const HELD_ESCAPE
@@ -348,3 +354,13 @@
 	const HELD_BRIGHTPOWDER
 	const HELD_4E
 	const HELD_FOCUS_BAND
+
+	const_def
+	const ITEMATTR_PRICE
+	const ITEMATTR_PRICE_HI
+	const ITEMATTR_EFFECT
+	const ITEMATTR_PARAM
+	const ITEMATTR_PERMISSIONS
+	const ITEMATTR_POCKET
+	const ITEMATTR_HELP
+NUM_ITEMATTRS EQU const_value
--- a/constants/map_constants.asm
+++ b/constants/map_constants.asm
@@ -2,1806 +2,754 @@
 MAP_N_A   EQU -1
 
 ; map group ids
-GROUP_OLIVINE_POKECENTER_1F EQU $01
-GROUP_OLIVINE_GYM EQU $01
-GROUP_OLIVINE_VOLTORB_HOUSE EQU $01
-GROUP_OLIVINE_HOUSE_BETA EQU $01
-GROUP_OLIVINE_PUNISHMENT_SPEECH_HOUSE EQU $01
-GROUP_OLIVINE_GOOD_ROD_HOUSE EQU $01
-GROUP_OLIVINE_CAFE EQU $01
-GROUP_OLIVINE_MART EQU $01
-GROUP_ROUTE_38_ECRUTEAK_GATE EQU $01
-GROUP_ROUTE_39_BARN EQU $01
-GROUP_ROUTE_39_FARMHOUSE EQU $01
-GROUP_ROUTE_38 EQU $01
-GROUP_ROUTE_39 EQU $01
-GROUP_OLIVINE_CITY EQU $01
-GROUP_MAHOGANY_RED_GYARADOS_SPEECH_HOUSE EQU $02
-GROUP_MAHOGANY_GYM EQU $02
-GROUP_MAHOGANY_POKECENTER_1F EQU $02
-GROUP_ROUTE_42_ECRUTEAK_GATE EQU $02
-GROUP_ROUTE_42 EQU $02
-GROUP_ROUTE_44 EQU $02
-GROUP_MAHOGANY_TOWN EQU $02
-GROUP_SPROUT_TOWER_1F EQU $03
-GROUP_SPROUT_TOWER_2F EQU $03
-GROUP_SPROUT_TOWER_3F EQU $03
-GROUP_TIN_TOWER_1F EQU $03
-GROUP_TIN_TOWER_2F EQU $03
-GROUP_TIN_TOWER_3F EQU $03
-GROUP_TIN_TOWER_4F EQU $03
-GROUP_TIN_TOWER_5F EQU $03
-GROUP_TIN_TOWER_6F EQU $03
-GROUP_TIN_TOWER_7F EQU $03
-GROUP_TIN_TOWER_8F EQU $03
-GROUP_TIN_TOWER_9F EQU $03
-GROUP_BURNED_TOWER_1F EQU $03
-GROUP_BURNED_TOWER_B1F EQU $03
-GROUP_NATIONAL_PARK EQU $03
-GROUP_NATIONAL_PARK_BUG_CONTEST EQU $03
-GROUP_RADIO_TOWER_1F EQU $03
-GROUP_RADIO_TOWER_2F EQU $03
-GROUP_RADIO_TOWER_3F EQU $03
-GROUP_RADIO_TOWER_4F EQU $03
-GROUP_RADIO_TOWER_5F EQU $03
-GROUP_RUINS_OF_ALPH_OUTSIDE EQU $03
-GROUP_RUINS_OF_ALPH_HO_OH_CHAMBER EQU $03
-GROUP_RUINS_OF_ALPH_KABUTO_CHAMBER EQU $03
-GROUP_RUINS_OF_ALPH_OMANYTE_CHAMBER EQU $03
-GROUP_RUINS_OF_ALPH_AERODACTYL_CHAMBER EQU $03
-GROUP_RUINS_OF_ALPH_INNER_CHAMBER EQU $03
-GROUP_RUINS_OF_ALPH_RESEARCH_CENTER EQU $03
-GROUP_RUINS_OF_ALPH_HO_OH_ITEM_ROOM EQU $03
-GROUP_RUINS_OF_ALPH_KABUTO_ITEM_ROOM EQU $03
-GROUP_RUINS_OF_ALPH_OMANYTE_ITEM_ROOM EQU $03
-GROUP_RUINS_OF_ALPH_AERODACTYL_ITEM_ROOM EQU $03
-GROUP_RUINS_OF_ALPH_HO_OH_WORD_ROOM EQU $03
-GROUP_RUINS_OF_ALPH_KABUTO_WORD_ROOM EQU $03
-GROUP_RUINS_OF_ALPH_OMANYTE_WORD_ROOM EQU $03
-GROUP_RUINS_OF_ALPH_AERODACTYL_WORD_ROOM EQU $03
-GROUP_UNION_CAVE_1F EQU $03
-GROUP_UNION_CAVE_B1F EQU $03
-GROUP_UNION_CAVE_B2F EQU $03
-GROUP_SLOWPOKE_WELL_B1F EQU $03
-GROUP_SLOWPOKE_WELL_B2F EQU $03
-GROUP_OLIVINE_LIGHTHOUSE_1F EQU $03
-GROUP_OLIVINE_LIGHTHOUSE_2F EQU $03
-GROUP_OLIVINE_LIGHTHOUSE_3F EQU $03
-GROUP_OLIVINE_LIGHTHOUSE_4F EQU $03
-GROUP_OLIVINE_LIGHTHOUSE_5F EQU $03
-GROUP_OLIVINE_LIGHTHOUSE_6F EQU $03
-GROUP_MAHOGANY_MART_1F EQU $03
-GROUP_TEAM_ROCKET_BASE_B1F EQU $03
-GROUP_TEAM_ROCKET_BASE_B2F EQU $03
-GROUP_TEAM_ROCKET_BASE_B3F EQU $03
-GROUP_ILEX_FOREST EQU $03
-GROUP_WAREHOUSE_ENTRANCE EQU $03
-GROUP_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES EQU $03
-GROUP_GOLDENROD_DEPT_STORE_B1F EQU $03
-GROUP_UNDERGROUND_WAREHOUSE EQU $03
-GROUP_MOUNT_MORTAR_1F_OUTSIDE EQU $03
-GROUP_MOUNT_MORTAR_1F_INSIDE EQU $03
-GROUP_MOUNT_MORTAR_2F_INSIDE EQU $03
-GROUP_MOUNT_MORTAR_B1F EQU $03
-GROUP_ICE_PATH_1F EQU $03
-GROUP_ICE_PATH_B1F EQU $03
-GROUP_ICE_PATH_B2F_MAHOGANY_SIDE EQU $03
-GROUP_ICE_PATH_B2F_BLACKTHORN_SIDE EQU $03
-GROUP_ICE_PATH_B3F EQU $03
-GROUP_WHIRL_ISLAND_NW EQU $03
-GROUP_WHIRL_ISLAND_NE EQU $03
-GROUP_WHIRL_ISLAND_SW EQU $03
-GROUP_WHIRL_ISLAND_CAVE EQU $03
-GROUP_WHIRL_ISLAND_SE EQU $03
-GROUP_WHIRL_ISLAND_B1F EQU $03
-GROUP_WHIRL_ISLAND_B2F EQU $03
-GROUP_WHIRL_ISLAND_LUGIA_CHAMBER EQU $03
-GROUP_SILVER_CAVE_ROOM_1 EQU $03
-GROUP_SILVER_CAVE_ROOM_2 EQU $03
-GROUP_SILVER_CAVE_ROOM_3 EQU $03
-GROUP_SILVER_CAVE_ITEM_ROOMS EQU $03
-GROUP_DARK_CAVE_VIOLET_ENTRANCE EQU $03
-GROUP_DARK_CAVE_BLACKTHORN_ENTRANCE EQU $03
-GROUP_DRAGONS_DEN_1F EQU $03
-GROUP_DRAGONS_DEN_B1F EQU $03
-GROUP_DRAGON_SHRINE EQU $03
-GROUP_TOHJO_FALLS EQU $03
-GROUP_DIGLETTS_CAVE EQU $03
-GROUP_MOUNT_MOON EQU $03
-GROUP_UNDERGROUND EQU $03
-GROUP_ROCK_TUNNEL_1F EQU $03
-GROUP_ROCK_TUNNEL_B1F EQU $03
-GROUP_SAFARI_ZONE_FUCHSIA_GATE_BETA EQU $03
-GROUP_SAFARI_ZONE_BETA EQU $03
-GROUP_VICTORY_ROAD EQU $03
-GROUP_ECRUTEAK_HOUSE EQU $04
-GROUP_WISE_TRIOS_ROOM EQU $04
-GROUP_ECRUTEAK_POKECENTER_1F EQU $04
-GROUP_ECRUTEAK_LUGIA_SPEECH_HOUSE EQU $04
-GROUP_DANCE_THEATRE EQU $04
-GROUP_ECRUTEAK_MART EQU $04
-GROUP_ECRUTEAK_GYM EQU $04
-GROUP_ECRUTEAK_ITEMFINDER_HOUSE EQU $04
-GROUP_ECRUTEAK_CITY EQU $04
-GROUP_BLACKTHORN_GYM_1F EQU $05
-GROUP_BLACKTHORN_GYM_2F EQU $05
-GROUP_BLACKTHORN_DRAGON_SPEECH_HOUSE EQU $05
-GROUP_BLACKTHORN_DODRIO_TRADE_HOUSE EQU $05
-GROUP_BLACKTHORN_MART EQU $05
-GROUP_BLACKTHORN_POKECENTER_1F EQU $05
-GROUP_MOVE_DELETERS_HOUSE EQU $05
-GROUP_ROUTE_45 EQU $05
-GROUP_ROUTE_46 EQU $05
-GROUP_BLACKTHORN_CITY EQU $05
-GROUP_CINNABAR_POKECENTER_1F EQU $06
-GROUP_CINNABAR_POKECENTER_2F_BETA EQU $06
-GROUP_ROUTE_19___FUCHSIA_GATE EQU $06
-GROUP_SEAFOAM_GYM EQU $06
-GROUP_ROUTE_19 EQU $06
-GROUP_ROUTE_20 EQU $06
-GROUP_ROUTE_21 EQU $06
-GROUP_CINNABAR_ISLAND EQU $06
-GROUP_CERULEAN_GYM_BADGE_SPEECH_HOUSE EQU $07
-GROUP_CERULEAN_POLICE_STATION EQU $07
-GROUP_CERULEAN_TRADE_SPEECH_HOUSE EQU $07
-GROUP_CERULEAN_POKECENTER_1F EQU $07
-GROUP_CERULEAN_POKECENTER_2F_BETA EQU $07
-GROUP_CERULEAN_GYM EQU $07
-GROUP_CERULEAN_MART EQU $07
-GROUP_ROUTE_10_POKECENTER_1F EQU $07
-GROUP_ROUTE_10_POKECENTER_2F_BETA EQU $07
-GROUP_POWER_PLANT EQU $07
-GROUP_BILLS_HOUSE EQU $07
-GROUP_ROUTE_4 EQU $07
-GROUP_ROUTE_9 EQU $07
-GROUP_ROUTE_10A EQU $07
-GROUP_ROUTE_10_NORTH EQU $07
-GROUP_ROUTE_24 EQU $07
-GROUP_ROUTE_25 EQU $07
-GROUP_CERULEAN_CITY EQU $07
-GROUP_AZALEA_POKECENTER_1F EQU $08
-GROUP_CHARCOAL_KILN EQU $08
-GROUP_AZALEA_MART EQU $08
-GROUP_KURTS_HOUSE EQU $08
-GROUP_AZALEA_GYM EQU $08
-GROUP_ROUTE_33 EQU $08
-GROUP_AZALEA_TOWN EQU $08
-GROUP_LAKE_OF_RAGE_HIDDEN_POWER_HOUSE EQU $09
-GROUP_LAKE_OF_RAGE_MAGIKARP_HOUSE EQU $09
-GROUP_ROUTE_43_MAHOGANY_GATE EQU $09
-GROUP_ROUTE_43_GATE EQU $09
-GROUP_ROUTE_43 EQU $09
-GROUP_LAKE_OF_RAGE EQU $09
-GROUP_ROUTE_32 EQU $0a
-GROUP_ROUTE_35 EQU $0a
-GROUP_ROUTE_36 EQU $0a
-GROUP_ROUTE_37 EQU $0a
-GROUP_VIOLET_CITY EQU $0a
-GROUP_VIOLET_MART EQU $0a
-GROUP_VIOLET_GYM EQU $0a
-GROUP_EARLS_POKEMON_ACADEMY EQU $0a
-GROUP_VIOLET_NICKNAME_SPEECH_HOUSE EQU $0a
-GROUP_VIOLET_POKECENTER_1F EQU $0a
-GROUP_VIOLET_ONIX_TRADE_HOUSE EQU $0a
-GROUP_ROUTE_32_RUINS_OF_ALPH_GATE EQU $0a
-GROUP_ROUTE_32_POKECENTER_1F EQU $0a
-GROUP_ROUTE_35_GOLDENROD_GATE EQU $0a
-GROUP_ROUTE_35_NATIONAL_PARK_GATE EQU $0a
-GROUP_ROUTE_36_RUINS_OF_ALPH_GATE EQU $0a
-GROUP_ROUTE_36_NATIONAL_PARK_GATE EQU $0a
-GROUP_ROUTE_34 EQU $0b
-GROUP_GOLDENROD_CITY EQU $0b
-GROUP_GOLDENROD_GYM EQU $0b
-GROUP_GOLDENROD_BIKE_SHOP EQU $0b
-GROUP_GOLDENROD_HAPPINESS_RATER EQU $0b
-GROUP_GOLDENROD_BILLS_HOUSE EQU $0b
-GROUP_GOLDENROD_MAGNET_TRAIN_STATION EQU $0b
-GROUP_GOLDENROD_FLOWER_SHOP EQU $0b
-GROUP_GOLDENROD_PP_SPEECH_HOUSE EQU $0b
-GROUP_GOLDENROD_NAME_RATERS_HOUSE EQU $0b
-GROUP_GOLDENROD_DEPT_STORE_1F EQU $0b
-GROUP_GOLDENROD_DEPT_STORE_2F EQU $0b
-GROUP_GOLDENROD_DEPT_STORE_3F EQU $0b
-GROUP_GOLDENROD_DEPT_STORE_4F EQU $0b
-GROUP_GOLDENROD_DEPT_STORE_5F EQU $0b
-GROUP_GOLDENROD_DEPT_STORE_6F EQU $0b
-GROUP_GOLDENROD_DEPT_STORE_ELEVATOR EQU $0b
-GROUP_GOLDENROD_DEPT_STORE_ROOF EQU $0b
-GROUP_GOLDENROD_GAME_CORNER EQU $0b
-GROUP_GOLDENROD_POKECENTER_1F EQU $0b
-GROUP_GOLDENROD_POKECOM_CENTER_2F_MOBILE EQU $0b
-GROUP_ILEX_FOREST_AZALEA_GATE EQU $0b
-GROUP_ROUTE_34_ILEX_FOREST_GATE EQU $0b
-GROUP_DAY_CARE EQU $0b
-GROUP_ROUTE_6 EQU $0c
-GROUP_ROUTE_11 EQU $0c
-GROUP_VERMILION_CITY EQU $0c
-GROUP_VERMILION_HOUSE_FISHING_SPEECH_HOUSE EQU $0c
-GROUP_VERMILION_POKECENTER_1F EQU $0c
-GROUP_VERMILION_POKECENTER_2F_BETA EQU $0c
-GROUP_POKEMON_FAN_CLUB EQU $0c
-GROUP_VERMILION_MAGNET_TRAIN_SPEECH_HOUSE EQU $0c
-GROUP_VERMILION_MART EQU $0c
-GROUP_VERMILION_HOUSE_DIGLETTS_CAVE_SPEECH_HOUSE EQU $0c
-GROUP_VERMILION_GYM EQU $0c
-GROUP_ROUTE_6_SAFFRON_GATE EQU $0c
-GROUP_ROUTE_6_UNDERGROUND_ENTRANCE EQU $0c
-GROUP_ROUTE_1 EQU $0d
-GROUP_PALLET_TOWN EQU $0d
-GROUP_REDS_HOUSE_1F EQU $0d
-GROUP_REDS_HOUSE_2F EQU $0d
-GROUP_BLUES_HOUSE EQU $0d
-GROUP_OAKS_LAB EQU $0d
-GROUP_ROUTE_3 EQU $0e
-GROUP_PEWTER_CITY EQU $0e
-GROUP_PEWTER_NIDORAN_SPEECH_HOUSE EQU $0e
-GROUP_PEWTER_GYM EQU $0e
-GROUP_PEWTER_MART EQU $0e
-GROUP_PEWTER_POKECENTER_1F EQU $0e
-GROUP_PEWTER_POKECENTER_2F_BETA EQU $0e
-GROUP_PEWTER_SNOOZE_SPEECH_HOUSE EQU $0e
-GROUP_OLIVINE_PORT EQU $0f
-GROUP_VERMILION_PORT EQU $0f
-GROUP_FAST_SHIP_1F EQU $0f
-GROUP_FAST_SHIP_CABINS_NNW_NNE_NE EQU $0f
-GROUP_FAST_SHIP_CABINS_SW_SSW_NW EQU $0f
-GROUP_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN EQU $0f
-GROUP_FAST_SHIP_B1F EQU $0f
-GROUP_OLIVINE_PORT_PASSAGE EQU $0f
-GROUP_VERMILION_PORT_PASSAGE EQU $0f
-GROUP_MOUNT_MOON_SQUARE EQU $0f
-GROUP_MOUNT_MOON_GIFT_SHOP EQU $0f
-GROUP_TIN_TOWER_ROOF EQU $0f
-GROUP_ROUTE_23 EQU $10
-GROUP_INDIGO_PLATEAU_POKECENTER_1F EQU $10
-GROUP_WILLS_ROOM EQU $10
-GROUP_KOGAS_ROOM EQU $10
-GROUP_BRUNOS_ROOM EQU $10
-GROUP_KARENS_ROOM EQU $10
-GROUP_LANCES_ROOM EQU $10
-GROUP_HALL_OF_FAME EQU $10
-GROUP_ROUTE_13 EQU $11
-GROUP_ROUTE_14 EQU $11
-GROUP_ROUTE_15 EQU $11
-GROUP_ROUTE_18 EQU $11
-GROUP_FUCHSIA_CITY EQU $11
-GROUP_FUCHSIA_MART EQU $11
-GROUP_SAFARI_ZONE_MAIN_OFFICE EQU $11
-GROUP_FUCHSIA_GYM EQU $11
-GROUP_FUCHSIA_BILL_SPEECH_HOUSE EQU $11
-GROUP_FUCHSIA_POKECENTER_1F EQU $11
-GROUP_FUCHSIA_POKECENTER_2F_BETA EQU $11
-GROUP_SAFARI_ZONE_WARDENS_HOME EQU $11
-GROUP_ROUTE_15_FUCHSIA_GATE EQU $11
-GROUP_ROUTE_8 EQU $12
-GROUP_ROUTE_12 EQU $12
-GROUP_ROUTE_10B EQU $12
-GROUP_ROUTE_10_SOUTH EQU $12
-GROUP_LAVENDER_TOWN EQU $12
-GROUP_LAVENDER_POKECENTER_1F EQU $12
-GROUP_LAVENDER_POKECENTER_2F_BETA EQU $12
-GROUP_MR_FUJIS_HOUSE EQU $12
-GROUP_LAVENDER_TOWN_SPEECH_HOUSE EQU $12
-GROUP_LAVENDER_NAME_RATER EQU $12
-GROUP_LAVENDER_MART EQU $12
-GROUP_SOUL_HOUSE EQU $12
-GROUP_LAV_RADIO_TOWER_1F EQU $12
-GROUP_ROUTE_8_SAFFRON_GATE EQU $12
-GROUP_ROUTE_12_SUPER_ROD_HOUSE EQU $12
-GROUP_ROUTE_28 EQU $13
-GROUP_SILVER_CAVE_OUTSIDE EQU $13
-GROUP_SILVER_CAVE_POKECENTER_1F EQU $13
-GROUP_ROUTE_28_FAMOUS_SPEECH_HOUSE EQU $13
-GROUP_POKECENTER_2F EQU $14
-GROUP_TRADE_CENTER EQU $14
-GROUP_COLOSSEUM EQU $14
-GROUP_TIME_CAPSULE EQU $14
-GROUP_MOBILE_TRADE_ROOM_MOBILE EQU $14
-GROUP_MOBILE_BATTLE_ROOM EQU $14
-GROUP_ROUTE_7 EQU $15
-GROUP_ROUTE_16 EQU $15
-GROUP_ROUTE_17 EQU $15
-GROUP_CELADON_CITY EQU $15
-GROUP_CELADON_DEPT_STORE_1F EQU $15
-GROUP_CELADON_DEPT_STORE_2F EQU $15
-GROUP_CELADON_DEPT_STORE_3F EQU $15
-GROUP_CELADON_DEPT_STORE_4F EQU $15
-GROUP_CELADON_DEPT_STORE_5F EQU $15
-GROUP_CELADON_DEPT_STORE_6F EQU $15
-GROUP_CELADON_DEPT_STORE_ELEVATOR EQU $15
-GROUP_CELADON_MANSION_1F EQU $15
-GROUP_CELADON_MANSION_2F EQU $15
-GROUP_CELADON_MANSION_3F EQU $15
-GROUP_CELADON_MANSION_ROOF EQU $15
-GROUP_CELADON_MANSION_ROOF_HOUSE EQU $15
-GROUP_CELADON_POKECENTER_1F EQU $15
-GROUP_CELADON_POKECENTER_2F_BETA EQU $15
-GROUP_CELADON_GAME_CORNER EQU $15
-GROUP_CELADON_GAME_CORNER_PRIZE_ROOM EQU $15
-GROUP_CELADON_GYM EQU $15
-GROUP_CELADON_CAFE EQU $15
-GROUP_ROUTE_16_FUCHSIA_SPEECH_HOUSE EQU $15
-GROUP_ROUTE_16_GATE EQU $15
-GROUP_ROUTE_7_SAFFRON_GATE EQU $15
-GROUP_ROUTE_17_18_GATE EQU $15
-GROUP_ROUTE_40 EQU $16
-GROUP_ROUTE_41 EQU $16
-GROUP_CIANWOOD_CITY EQU $16
-GROUP_MANIAS_HOUSE EQU $16
-GROUP_CIANWOOD_GYM EQU $16
-GROUP_CIANWOOD_POKECENTER_1F EQU $16
-GROUP_CIANWOOD_PHARMACY EQU $16
-GROUP_CIANWOOD_CITY_PHOTO_STUDIO EQU $16
-GROUP_CIANWOOD_LUGIA_SPEECH_HOUSE EQU $16
-GROUP_POKE_SEERS_HOUSE EQU $16
-GROUP_BATTLE_TOWER_1F EQU $16
-GROUP_BATTLE_TOWER_BATTLE_ROOM EQU $16
-GROUP_BATTLE_TOWER_ELEVATOR EQU $16
-GROUP_BATTLE_TOWER_HALLWAY EQU $16
-GROUP_ROUTE_40_BATTLE_TOWER_GATE EQU $16
-GROUP_BATTLE_TOWER_OUTSIDE EQU $16
-GROUP_ROUTE_2 EQU $17
-GROUP_ROUTE_22 EQU $17
-GROUP_VIRIDIAN_CITY EQU $17
-GROUP_VIRIDIAN_GYM EQU $17
-GROUP_VIRIDIAN_NICKNAME_SPEECH_HOUSE EQU $17
-GROUP_TRAINER_HOUSE_1F EQU $17
-GROUP_TRAINER_HOUSE_B1F EQU $17
-GROUP_VIRIDIAN_MART EQU $17
-GROUP_VIRIDIAN_POKECENTER_1F EQU $17
-GROUP_VIRIDIAN_POKECENTER_2F_BETA EQU $17
-GROUP_ROUTE_2_NUGGET_SPEECH_HOUSE EQU $17
-GROUP_ROUTE_2_GATE EQU $17
-GROUP_VICTORY_ROAD_GATE EQU $17
-GROUP_ROUTE_26 EQU $18
-GROUP_ROUTE_27 EQU $18
-GROUP_ROUTE_29 EQU $18
-GROUP_NEW_BARK_TOWN EQU $18
-GROUP_ELMS_LAB EQU $18
-GROUP_KRISS_HOUSE_1F EQU $18
-GROUP_KRISS_HOUSE_2F EQU $18
-GROUP_KRISS_NEIGHBORS_HOUSE EQU $18
-GROUP_ELMS_HOUSE EQU $18
-GROUP_ROUTE_26_HEAL_SPEECH_HOUSE EQU $18
-GROUP_ROUTE_26_DAY_OF_WEEK_SIBLINGS_HOUSE EQU $18
-GROUP_ROUTE_27_SANDSTORM_HOUSE EQU $18
-GROUP_ROUTE_29_46_GATE EQU $18
-GROUP_ROUTE_5 EQU $19
-GROUP_SAFFRON_CITY EQU $19
-GROUP_FIGHTING_DOJO EQU $19
-GROUP_SAFFRON_GYM EQU $19
-GROUP_SAFFRON_MART EQU $19
-GROUP_SAFFRON_POKECENTER_1F EQU $19
-GROUP_SAFFRON_POKECENTER_2F_BETA EQU $19
-GROUP_MR_PSYCHICS_HOUSE EQU $19
-GROUP_SAFFRON_TRAIN_STATION EQU $19
-GROUP_SILPH_CO_1F EQU $19
-GROUP_COPYCATS_HOUSE_1F EQU $19
-GROUP_COPYCATS_HOUSE_2F EQU $19
-GROUP_ROUTE_5_UNDERGROUND_ENTRANCE EQU $19
-GROUP_ROUTE_5_SAFFRON_CITY_GATE EQU $19
-GROUP_ROUTE_5_CLEANSE_TAG_SPEECH_HOUSE EQU $19
-GROUP_ROUTE_30 EQU $1a
-GROUP_ROUTE_31 EQU $1a
-GROUP_CHERRYGROVE_CITY EQU $1a
-GROUP_CHERRYGROVE_MART EQU $1a
-GROUP_CHERRYGROVE_POKECENTER_1F EQU $1a
-GROUP_CHERRYGROVE_GYM_SPEECH_HOUSE EQU $1a
-GROUP_GUIDE_GENTS_HOUSE EQU $1a
-GROUP_CHERRYGROVE_EVOLUTION_SPEECH_HOUSE EQU $1a
-GROUP_ROUTE_30_BERRY_SPEECH_HOUSE EQU $1a
-GROUP_MR_POKEMONS_HOUSE EQU $1a
-GROUP_ROUTE_31_VIOLET_GATE EQU $1a
+	const_def
+	newgroup
+	mapgroup OLIVINE_POKECENTER_1F, 4, 5
+	mapgroup OLIVINE_GYM, 8, 5
+	mapgroup OLIVINE_VOLTORB_HOUSE, 4, 4
+	mapgroup OLIVINE_HOUSE_BETA, 4, 4
+	mapgroup OLIVINE_PUNISHMENT_SPEECH_HOUSE, 4, 4
+	mapgroup OLIVINE_GOOD_ROD_HOUSE, 4, 4
+	mapgroup OLIVINE_CAFE, 4, 4
+	mapgroup OLIVINE_MART, 4, 6
+	mapgroup ROUTE_38_ECRUTEAK_GATE, 4, 5
+	mapgroup ROUTE_39_BARN, 4, 4
+	mapgroup ROUTE_39_FARMHOUSE, 4, 4
+	mapgroup ROUTE_38, 9, 20
+	mapgroup ROUTE_39, 18, 10
+	mapgroup OLIVINE_CITY, 18, 20
 
-; map ids
-MAP_OLIVINE_POKECENTER_1F EQU $01
-MAP_OLIVINE_GYM EQU $02
-MAP_OLIVINE_VOLTORB_HOUSE EQU $03
-MAP_OLIVINE_HOUSE_BETA EQU $04
-MAP_OLIVINE_PUNISHMENT_SPEECH_HOUSE EQU $05
-MAP_OLIVINE_GOOD_ROD_HOUSE EQU $06
-MAP_OLIVINE_CAFE EQU $07
-MAP_OLIVINE_MART EQU $08
-MAP_ROUTE_38_ECRUTEAK_GATE EQU $09
-MAP_ROUTE_39_BARN EQU $0a
-MAP_ROUTE_39_FARMHOUSE EQU $0b
-MAP_ROUTE_38 EQU $0c
-MAP_ROUTE_39 EQU $0d
-MAP_OLIVINE_CITY EQU $0e
-MAP_MAHOGANY_RED_GYARADOS_SPEECH_HOUSE EQU $01
-MAP_MAHOGANY_GYM EQU $02
-MAP_MAHOGANY_POKECENTER_1F EQU $03
-MAP_ROUTE_42_ECRUTEAK_GATE EQU $04
-MAP_ROUTE_42 EQU $05
-MAP_ROUTE_44 EQU $06
-MAP_MAHOGANY_TOWN EQU $07
-MAP_SPROUT_TOWER_1F EQU $01
-MAP_SPROUT_TOWER_2F EQU $02
-MAP_SPROUT_TOWER_3F EQU $03
-MAP_TIN_TOWER_1F EQU $04
-MAP_TIN_TOWER_2F EQU $05
-MAP_TIN_TOWER_3F EQU $06
-MAP_TIN_TOWER_4F EQU $07
-MAP_TIN_TOWER_5F EQU $08
-MAP_TIN_TOWER_6F EQU $09
-MAP_TIN_TOWER_7F EQU $0a
-MAP_TIN_TOWER_8F EQU $0b
-MAP_TIN_TOWER_9F EQU $0c
-MAP_BURNED_TOWER_1F EQU $0d
-MAP_BURNED_TOWER_B1F EQU $0e
-MAP_NATIONAL_PARK EQU $0f
-MAP_NATIONAL_PARK_BUG_CONTEST EQU $10
-MAP_RADIO_TOWER_1F EQU $11
-MAP_RADIO_TOWER_2F EQU $12
-MAP_RADIO_TOWER_3F EQU $13
-MAP_RADIO_TOWER_4F EQU $14
-MAP_RADIO_TOWER_5F EQU $15
-MAP_RUINS_OF_ALPH_OUTSIDE EQU $16
-MAP_RUINS_OF_ALPH_HO_OH_CHAMBER EQU $17
-MAP_RUINS_OF_ALPH_KABUTO_CHAMBER EQU $18
-MAP_RUINS_OF_ALPH_OMANYTE_CHAMBER EQU $19
-MAP_RUINS_OF_ALPH_AERODACTYL_CHAMBER EQU $1a
-MAP_RUINS_OF_ALPH_INNER_CHAMBER EQU $1b
-MAP_RUINS_OF_ALPH_RESEARCH_CENTER EQU $1c
-MAP_RUINS_OF_ALPH_HO_OH_ITEM_ROOM EQU $1d
-MAP_RUINS_OF_ALPH_KABUTO_ITEM_ROOM EQU $1e
-MAP_RUINS_OF_ALPH_OMANYTE_ITEM_ROOM EQU $1f
-MAP_RUINS_OF_ALPH_AERODACTYL_ITEM_ROOM EQU $20
-MAP_RUINS_OF_ALPH_HO_OH_WORD_ROOM EQU $21
-MAP_RUINS_OF_ALPH_KABUTO_WORD_ROOM EQU $22
-MAP_RUINS_OF_ALPH_OMANYTE_WORD_ROOM EQU $23
-MAP_RUINS_OF_ALPH_AERODACTYL_WORD_ROOM EQU $24
-MAP_UNION_CAVE_1F EQU $25
-MAP_UNION_CAVE_B1F EQU $26
-MAP_UNION_CAVE_B2F EQU $27
-MAP_SLOWPOKE_WELL_B1F EQU $28
-MAP_SLOWPOKE_WELL_B2F EQU $29
-MAP_OLIVINE_LIGHTHOUSE_1F EQU $2a
-MAP_OLIVINE_LIGHTHOUSE_2F EQU $2b
-MAP_OLIVINE_LIGHTHOUSE_3F EQU $2c
-MAP_OLIVINE_LIGHTHOUSE_4F EQU $2d
-MAP_OLIVINE_LIGHTHOUSE_5F EQU $2e
-MAP_OLIVINE_LIGHTHOUSE_6F EQU $2f
-MAP_MAHOGANY_MART_1F EQU $30
-MAP_TEAM_ROCKET_BASE_B1F EQU $31
-MAP_TEAM_ROCKET_BASE_B2F EQU $32
-MAP_TEAM_ROCKET_BASE_B3F EQU $33
-MAP_ILEX_FOREST EQU $34
-MAP_WAREHOUSE_ENTRANCE EQU $35
-MAP_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES EQU $36
-MAP_GOLDENROD_DEPT_STORE_B1F EQU $37
-MAP_UNDERGROUND_WAREHOUSE EQU $38
-MAP_MOUNT_MORTAR_1F_OUTSIDE EQU $39
-MAP_MOUNT_MORTAR_1F_INSIDE EQU $3a
-MAP_MOUNT_MORTAR_2F_INSIDE EQU $3b
-MAP_MOUNT_MORTAR_B1F EQU $3c
-MAP_ICE_PATH_1F EQU $3d
-MAP_ICE_PATH_B1F EQU $3e
-MAP_ICE_PATH_B2F_MAHOGANY_SIDE EQU $3f
-MAP_ICE_PATH_B2F_BLACKTHORN_SIDE EQU $40
-MAP_ICE_PATH_B3F EQU $41
-MAP_WHIRL_ISLAND_NW EQU $42
-MAP_WHIRL_ISLAND_NE EQU $43
-MAP_WHIRL_ISLAND_SW EQU $44
-MAP_WHIRL_ISLAND_CAVE EQU $45
-MAP_WHIRL_ISLAND_SE EQU $46
-MAP_WHIRL_ISLAND_B1F EQU $47
-MAP_WHIRL_ISLAND_B2F EQU $48
-MAP_WHIRL_ISLAND_LUGIA_CHAMBER EQU $49
-MAP_SILVER_CAVE_ROOM_1 EQU $4a
-MAP_SILVER_CAVE_ROOM_2 EQU $4b
-MAP_SILVER_CAVE_ROOM_3 EQU $4c
-MAP_SILVER_CAVE_ITEM_ROOMS EQU $4d
-MAP_DARK_CAVE_VIOLET_ENTRANCE EQU $4e
-MAP_DARK_CAVE_BLACKTHORN_ENTRANCE EQU $4f
-MAP_DRAGONS_DEN_1F EQU $50
-MAP_DRAGONS_DEN_B1F EQU $51
-MAP_DRAGON_SHRINE EQU $52
-MAP_TOHJO_FALLS EQU $53
-MAP_DIGLETTS_CAVE EQU $54
-MAP_MOUNT_MOON EQU $55
-MAP_UNDERGROUND EQU $56
-MAP_ROCK_TUNNEL_1F EQU $57
-MAP_ROCK_TUNNEL_B1F EQU $58
-MAP_SAFARI_ZONE_FUCHSIA_GATE_BETA EQU $59
-MAP_SAFARI_ZONE_BETA EQU $5a
-MAP_VICTORY_ROAD EQU $5b
-MAP_ECRUTEAK_HOUSE EQU $01
-MAP_WISE_TRIOS_ROOM EQU $02
-MAP_ECRUTEAK_POKECENTER_1F EQU $03
-MAP_ECRUTEAK_LUGIA_SPEECH_HOUSE EQU $04
-MAP_DANCE_THEATRE EQU $05
-MAP_ECRUTEAK_MART EQU $06
-MAP_ECRUTEAK_GYM EQU $07
-MAP_ECRUTEAK_ITEMFINDER_HOUSE EQU $08
-MAP_ECRUTEAK_CITY EQU $09
-MAP_BLACKTHORN_GYM_1F EQU $01
-MAP_BLACKTHORN_GYM_2F EQU $02
-MAP_BLACKTHORN_DRAGON_SPEECH_HOUSE EQU $03
-MAP_BLACKTHORN_DODRIO_TRADE_HOUSE EQU $04
-MAP_BLACKTHORN_MART EQU $05
-MAP_BLACKTHORN_POKECENTER_1F EQU $06
-MAP_MOVE_DELETERS_HOUSE EQU $07
-MAP_ROUTE_45 EQU $08
-MAP_ROUTE_46 EQU $09
-MAP_BLACKTHORN_CITY EQU $0a
-MAP_CINNABAR_POKECENTER_1F EQU $01
-MAP_CINNABAR_POKECENTER_2F_BETA EQU $02
-MAP_ROUTE_19___FUCHSIA_GATE EQU $03
-MAP_SEAFOAM_GYM EQU $04
-MAP_ROUTE_19 EQU $05
-MAP_ROUTE_20 EQU $06
-MAP_ROUTE_21 EQU $07
-MAP_CINNABAR_ISLAND EQU $08
-MAP_CERULEAN_GYM_BADGE_SPEECH_HOUSE EQU $01
-MAP_CERULEAN_POLICE_STATION EQU $02
-MAP_CERULEAN_TRADE_SPEECH_HOUSE EQU $03
-MAP_CERULEAN_POKECENTER_1F EQU $04
-MAP_CERULEAN_POKECENTER_2F_BETA EQU $05
-MAP_CERULEAN_GYM EQU $06
-MAP_CERULEAN_MART EQU $07
-MAP_ROUTE_10_POKECENTER_1F EQU $08
-MAP_ROUTE_10_POKECENTER_2F_BETA EQU $09
-MAP_POWER_PLANT EQU $0a
-MAP_BILLS_HOUSE EQU $0b
-MAP_ROUTE_4 EQU $0c
-MAP_ROUTE_9 EQU $0d
-MAP_ROUTE_10A EQU $0e
-MAP_ROUTE_10_NORTH EQU $0e
-MAP_ROUTE_24 EQU $0f
-MAP_ROUTE_25 EQU $10
-MAP_CERULEAN_CITY EQU $11
-MAP_AZALEA_POKECENTER_1F EQU $01
-MAP_CHARCOAL_KILN EQU $02
-MAP_AZALEA_MART EQU $03
-MAP_KURTS_HOUSE EQU $04
-MAP_AZALEA_GYM EQU $05
-MAP_ROUTE_33 EQU $06
-MAP_AZALEA_TOWN EQU $07
-MAP_LAKE_OF_RAGE_HIDDEN_POWER_HOUSE EQU $01
-MAP_LAKE_OF_RAGE_MAGIKARP_HOUSE EQU $02
-MAP_ROUTE_43_MAHOGANY_GATE EQU $03
-MAP_ROUTE_43_GATE EQU $04
-MAP_ROUTE_43 EQU $05
-MAP_LAKE_OF_RAGE EQU $06
-MAP_ROUTE_32 EQU $01
-MAP_ROUTE_35 EQU $02
-MAP_ROUTE_36 EQU $03
-MAP_ROUTE_37 EQU $04
-MAP_VIOLET_CITY EQU $05
-MAP_VIOLET_MART EQU $06
-MAP_VIOLET_GYM EQU $07
-MAP_EARLS_POKEMON_ACADEMY EQU $08
-MAP_VIOLET_NICKNAME_SPEECH_HOUSE EQU $09
-MAP_VIOLET_POKECENTER_1F EQU $0a
-MAP_VIOLET_ONIX_TRADE_HOUSE EQU $0b
-MAP_ROUTE_32_RUINS_OF_ALPH_GATE EQU $0c
-MAP_ROUTE_32_POKECENTER_1F EQU $0d
-MAP_ROUTE_35_GOLDENROD_GATE EQU $0e
-MAP_ROUTE_35_NATIONAL_PARK_GATE EQU $0f
-MAP_ROUTE_36_RUINS_OF_ALPH_GATE EQU $10
-MAP_ROUTE_36_NATIONAL_PARK_GATE EQU $11
-MAP_ROUTE_34 EQU $01
-MAP_GOLDENROD_CITY EQU $02
-MAP_GOLDENROD_GYM EQU $03
-MAP_GOLDENROD_BIKE_SHOP EQU $04
-MAP_GOLDENROD_HAPPINESS_RATER EQU $05
-MAP_GOLDENROD_BILLS_HOUSE EQU $06
-MAP_GOLDENROD_MAGNET_TRAIN_STATION EQU $07
-MAP_GOLDENROD_FLOWER_SHOP EQU $08
-MAP_GOLDENROD_PP_SPEECH_HOUSE EQU $09
-MAP_GOLDENROD_NAME_RATERS_HOUSE EQU $0a
-MAP_GOLDENROD_DEPT_STORE_1F EQU $0b
-MAP_GOLDENROD_DEPT_STORE_2F EQU $0c
-MAP_GOLDENROD_DEPT_STORE_3F EQU $0d
-MAP_GOLDENROD_DEPT_STORE_4F EQU $0e
-MAP_GOLDENROD_DEPT_STORE_5F EQU $0f
-MAP_GOLDENROD_DEPT_STORE_6F EQU $10
-MAP_GOLDENROD_DEPT_STORE_ELEVATOR EQU $11
-MAP_GOLDENROD_DEPT_STORE_ROOF EQU $12
-MAP_GOLDENROD_GAME_CORNER EQU $13
-MAP_GOLDENROD_POKECENTER_1F EQU $14
-MAP_GOLDENROD_POKECOM_CENTER_2F_MOBILE EQU $15
-MAP_ILEX_FOREST_AZALEA_GATE EQU $16
-MAP_ROUTE_34_ILEX_FOREST_GATE EQU $17
-MAP_DAY_CARE EQU $18
-MAP_ROUTE_6 EQU $01
-MAP_ROUTE_11 EQU $02
-MAP_VERMILION_CITY EQU $03
-MAP_VERMILION_HOUSE_FISHING_SPEECH_HOUSE EQU $04
-MAP_VERMILION_POKECENTER_1F EQU $05
-MAP_VERMILION_POKECENTER_2F_BETA EQU $06
-MAP_POKEMON_FAN_CLUB EQU $07
-MAP_VERMILION_MAGNET_TRAIN_SPEECH_HOUSE EQU $08
-MAP_VERMILION_MART EQU $09
-MAP_VERMILION_HOUSE_DIGLETTS_CAVE_SPEECH_HOUSE EQU $0a
-MAP_VERMILION_GYM EQU $0b
-MAP_ROUTE_6_SAFFRON_GATE EQU $0c
-MAP_ROUTE_6_UNDERGROUND_ENTRANCE EQU $0d
-MAP_ROUTE_1 EQU $01
-MAP_PALLET_TOWN EQU $02
-MAP_REDS_HOUSE_1F EQU $03
-MAP_REDS_HOUSE_2F EQU $04
-MAP_BLUES_HOUSE EQU $05
-MAP_OAKS_LAB EQU $06
-MAP_ROUTE_3 EQU $01
-MAP_PEWTER_CITY EQU $02
-MAP_PEWTER_NIDORAN_SPEECH_HOUSE EQU $03
-MAP_PEWTER_GYM EQU $04
-MAP_PEWTER_MART EQU $05
-MAP_PEWTER_POKECENTER_1F EQU $06
-MAP_PEWTER_POKECENTER_2F_BETA EQU $07
-MAP_PEWTER_SNOOZE_SPEECH_HOUSE EQU $08
-MAP_OLIVINE_PORT EQU $01
-MAP_VERMILION_PORT EQU $02
-MAP_FAST_SHIP_1F EQU $03
-MAP_FAST_SHIP_CABINS_NNW_NNE_NE EQU $04
-MAP_FAST_SHIP_CABINS_SW_SSW_NW EQU $05
-MAP_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN EQU $06
-MAP_FAST_SHIP_B1F EQU $07
-MAP_OLIVINE_PORT_PASSAGE EQU $08
-MAP_VERMILION_PORT_PASSAGE EQU $09
-MAP_MOUNT_MOON_SQUARE EQU $0a
-MAP_MOUNT_MOON_GIFT_SHOP EQU $0b
-MAP_TIN_TOWER_ROOF EQU $0c
-MAP_ROUTE_23 EQU $01
-MAP_INDIGO_PLATEAU_POKECENTER_1F EQU $02
-MAP_WILLS_ROOM EQU $03
-MAP_KOGAS_ROOM EQU $04
-MAP_BRUNOS_ROOM EQU $05
-MAP_KARENS_ROOM EQU $06
-MAP_LANCES_ROOM EQU $07
-MAP_HALL_OF_FAME EQU $08
-MAP_ROUTE_13 EQU $01
-MAP_ROUTE_14 EQU $02
-MAP_ROUTE_15 EQU $03
-MAP_ROUTE_18 EQU $04
-MAP_FUCHSIA_CITY EQU $05
-MAP_FUCHSIA_MART EQU $06
-MAP_SAFARI_ZONE_MAIN_OFFICE EQU $07
-MAP_FUCHSIA_GYM EQU $08
-MAP_FUCHSIA_BILL_SPEECH_HOUSE EQU $09
-MAP_FUCHSIA_POKECENTER_1F EQU $0a
-MAP_FUCHSIA_POKECENTER_2F_BETA EQU $0b
-MAP_SAFARI_ZONE_WARDENS_HOME EQU $0c
-MAP_ROUTE_15_FUCHSIA_GATE EQU $0d
-MAP_ROUTE_8 EQU $01
-MAP_ROUTE_12 EQU $02
-MAP_ROUTE_10B EQU $03
-MAP_ROUTE_10_SOUTH EQU $03
-MAP_LAVENDER_TOWN EQU $04
-MAP_LAVENDER_POKECENTER_1F EQU $05
-MAP_LAVENDER_POKECENTER_2F_BETA EQU $06
-MAP_MR_FUJIS_HOUSE EQU $07
-MAP_LAVENDER_TOWN_SPEECH_HOUSE EQU $08
-MAP_LAVENDER_NAME_RATER EQU $09
-MAP_LAVENDER_MART EQU $0a
-MAP_SOUL_HOUSE EQU $0b
-MAP_LAV_RADIO_TOWER_1F EQU $0c
-MAP_ROUTE_8_SAFFRON_GATE EQU $0d
-MAP_ROUTE_12_SUPER_ROD_HOUSE EQU $0e
-MAP_ROUTE_28 EQU $01
-MAP_SILVER_CAVE_OUTSIDE EQU $02
-MAP_SILVER_CAVE_POKECENTER_1F EQU $03
-MAP_ROUTE_28_FAMOUS_SPEECH_HOUSE EQU $04
-MAP_POKECENTER_2F EQU $01
-MAP_TRADE_CENTER EQU $02
-MAP_COLOSSEUM EQU $03
-MAP_TIME_CAPSULE EQU $04
-MAP_MOBILE_TRADE_ROOM_MOBILE EQU $05
-MAP_MOBILE_BATTLE_ROOM EQU $06
-MAP_ROUTE_7 EQU $01
-MAP_ROUTE_16 EQU $02
-MAP_ROUTE_17 EQU $03
-MAP_CELADON_CITY EQU $04
-MAP_CELADON_DEPT_STORE_1F EQU $05
-MAP_CELADON_DEPT_STORE_2F EQU $06
-MAP_CELADON_DEPT_STORE_3F EQU $07
-MAP_CELADON_DEPT_STORE_4F EQU $08
-MAP_CELADON_DEPT_STORE_5F EQU $09
-MAP_CELADON_DEPT_STORE_6F EQU $0a
-MAP_CELADON_DEPT_STORE_ELEVATOR EQU $0b
-MAP_CELADON_MANSION_1F EQU $0c
-MAP_CELADON_MANSION_2F EQU $0d
-MAP_CELADON_MANSION_3F EQU $0e
-MAP_CELADON_MANSION_ROOF EQU $0f
-MAP_CELADON_MANSION_ROOF_HOUSE EQU $10
-MAP_CELADON_POKECENTER_1F EQU $11
-MAP_CELADON_POKECENTER_2F_BETA EQU $12
-MAP_CELADON_GAME_CORNER EQU $13
-MAP_CELADON_GAME_CORNER_PRIZE_ROOM EQU $14
-MAP_CELADON_GYM EQU $15
-MAP_CELADON_CAFE EQU $16
-MAP_ROUTE_16_FUCHSIA_SPEECH_HOUSE EQU $17
-MAP_ROUTE_16_GATE EQU $18
-MAP_ROUTE_7_SAFFRON_GATE EQU $19
-MAP_ROUTE_17_18_GATE EQU $1a
-MAP_ROUTE_40 EQU $01
-MAP_ROUTE_41 EQU $02
-MAP_CIANWOOD_CITY EQU $03
-MAP_MANIAS_HOUSE EQU $04
-MAP_CIANWOOD_GYM EQU $05
-MAP_CIANWOOD_POKECENTER_1F EQU $06
-MAP_CIANWOOD_PHARMACY EQU $07
-MAP_CIANWOOD_CITY_PHOTO_STUDIO EQU $08
-MAP_CIANWOOD_LUGIA_SPEECH_HOUSE EQU $09
-MAP_POKE_SEERS_HOUSE EQU $0a
-MAP_BATTLE_TOWER_1F EQU $0b
-MAP_BATTLE_TOWER_BATTLE_ROOM EQU $0c
-MAP_BATTLE_TOWER_ELEVATOR EQU $0d
-MAP_BATTLE_TOWER_HALLWAY EQU $0e
-MAP_ROUTE_40_BATTLE_TOWER_GATE EQU $0f
-MAP_BATTLE_TOWER_OUTSIDE EQU $10
-MAP_ROUTE_2 EQU $01
-MAP_ROUTE_22 EQU $02
-MAP_VIRIDIAN_CITY EQU $03
-MAP_VIRIDIAN_GYM EQU $04
-MAP_VIRIDIAN_NICKNAME_SPEECH_HOUSE EQU $05
-MAP_TRAINER_HOUSE_1F EQU $06
-MAP_TRAINER_HOUSE_B1F EQU $07
-MAP_VIRIDIAN_MART EQU $08
-MAP_VIRIDIAN_POKECENTER_1F EQU $09
-MAP_VIRIDIAN_POKECENTER_2F_BETA EQU $0a
-MAP_ROUTE_2_NUGGET_SPEECH_HOUSE EQU $0b
-MAP_ROUTE_2_GATE EQU $0c
-MAP_VICTORY_ROAD_GATE EQU $0d
-MAP_ROUTE_26 EQU $01
-MAP_ROUTE_27 EQU $02
-MAP_ROUTE_29 EQU $03
-MAP_NEW_BARK_TOWN EQU $04
-MAP_ELMS_LAB EQU $05
-MAP_KRISS_HOUSE_1F EQU $06
-MAP_KRISS_HOUSE_2F EQU $07
-MAP_KRISS_NEIGHBORS_HOUSE EQU $08
-MAP_ELMS_HOUSE EQU $09
-MAP_ROUTE_26_HEAL_SPEECH_HOUSE EQU $0a
-MAP_ROUTE_26_DAY_OF_WEEK_SIBLINGS_HOUSE EQU $0b
-MAP_ROUTE_27_SANDSTORM_HOUSE EQU $0c
-MAP_ROUTE_29_46_GATE EQU $0d
-MAP_ROUTE_5 EQU $01
-MAP_SAFFRON_CITY EQU $02
-MAP_FIGHTING_DOJO EQU $03
-MAP_SAFFRON_GYM EQU $04
-MAP_SAFFRON_MART EQU $05
-MAP_SAFFRON_POKECENTER_1F EQU $06
-MAP_SAFFRON_POKECENTER_2F_BETA EQU $07
-MAP_MR_PSYCHICS_HOUSE EQU $08
-MAP_SAFFRON_TRAIN_STATION EQU $09
-MAP_SILPH_CO_1F EQU $0a
-MAP_COPYCATS_HOUSE_1F EQU $0b
-MAP_COPYCATS_HOUSE_2F EQU $0c
-MAP_ROUTE_5_UNDERGROUND_ENTRANCE EQU $0d
-MAP_ROUTE_5_SAFFRON_CITY_GATE EQU $0e
-MAP_ROUTE_5_CLEANSE_TAG_SPEECH_HOUSE EQU $0f
-MAP_ROUTE_30 EQU $01
-MAP_ROUTE_31 EQU $02
-MAP_CHERRYGROVE_CITY EQU $03
-MAP_CHERRYGROVE_MART EQU $04
-MAP_CHERRYGROVE_POKECENTER_1F EQU $05
-MAP_CHERRYGROVE_GYM_SPEECH_HOUSE EQU $06
-MAP_GUIDE_GENTS_HOUSE EQU $07
-MAP_CHERRYGROVE_EVOLUTION_SPEECH_HOUSE EQU $08
-MAP_ROUTE_30_BERRY_SPEECH_HOUSE EQU $09
-MAP_MR_POKEMONS_HOUSE EQU $0a
-MAP_ROUTE_31_VIOLET_GATE EQU $0b
+	newgroup
+	mapgroup MAHOGANY_RED_GYARADOS_SPEECH_HOUSE, 4, 4
+	mapgroup MAHOGANY_GYM, 9, 5
+	mapgroup MAHOGANY_POKECENTER_1F, 4, 5
+	mapgroup ROUTE_42_ECRUTEAK_GATE, 4, 5
+	mapgroup ROUTE_42, 9, 30
+	mapgroup ROUTE_44, 9, 30
+	mapgroup MAHOGANY_TOWN, 9, 10
+
+	newgroup
+	mapgroup SPROUT_TOWER_1F, 8, 10
+	mapgroup SPROUT_TOWER_2F, 8, 10
+	mapgroup SPROUT_TOWER_3F, 8, 10
+	mapgroup TIN_TOWER_1F, 9, 10
+	mapgroup TIN_TOWER_2F, 9, 10
+	mapgroup TIN_TOWER_3F, 9, 10
+	mapgroup TIN_TOWER_4F, 9, 10
+	mapgroup TIN_TOWER_5F, 9, 10
+	mapgroup TIN_TOWER_6F, 9, 10
+	mapgroup TIN_TOWER_7F, 9, 10
+	mapgroup TIN_TOWER_8F, 9, 10
+	mapgroup TIN_TOWER_9F, 9, 10
+	mapgroup BURNED_TOWER_1F, 9, 10
+	mapgroup BURNED_TOWER_B1F, 9, 10
+	mapgroup NATIONAL_PARK, 27, 20
+	mapgroup NATIONAL_PARK_BUG_CONTEST, 27, 20
+	mapgroup RADIO_TOWER_1F, 4, 9
+	mapgroup RADIO_TOWER_2F, 4, 9
+	mapgroup RADIO_TOWER_3F, 4, 9
+	mapgroup RADIO_TOWER_4F, 4, 9
+	mapgroup RADIO_TOWER_5F, 4, 9
+	mapgroup RUINS_OF_ALPH_OUTSIDE, 18, 10
+	mapgroup RUINS_OF_ALPH_HO_OH_CHAMBER, 5, 4
+	mapgroup RUINS_OF_ALPH_KABUTO_CHAMBER, 5, 4
+	mapgroup RUINS_OF_ALPH_OMANYTE_CHAMBER, 5, 4
+	mapgroup RUINS_OF_ALPH_AERODACTYL_CHAMBER, 5, 4
+	mapgroup RUINS_OF_ALPH_INNER_CHAMBER, 14, 10
+	mapgroup RUINS_OF_ALPH_RESEARCH_CENTER, 4, 4
+	mapgroup RUINS_OF_ALPH_HO_OH_ITEM_ROOM, 5, 4
+	mapgroup RUINS_OF_ALPH_KABUTO_ITEM_ROOM, 5, 4
+	mapgroup RUINS_OF_ALPH_OMANYTE_ITEM_ROOM, 5, 4
+	mapgroup RUINS_OF_ALPH_AERODACTYL_ITEM_ROOM, 5, 4
+	mapgroup RUINS_OF_ALPH_HO_OH_WORD_ROOM, 12, 10
+	mapgroup RUINS_OF_ALPH_KABUTO_WORD_ROOM, 7, 10
+	mapgroup RUINS_OF_ALPH_OMANYTE_WORD_ROOM, 8, 10
+	mapgroup RUINS_OF_ALPH_AERODACTYL_WORD_ROOM, 7, 10
+	mapgroup UNION_CAVE_1F, 18, 10
+	mapgroup UNION_CAVE_B1F, 18, 10
+	mapgroup UNION_CAVE_B2F, 18, 10
+	mapgroup SLOWPOKE_WELL_B1F, 9, 10
+	mapgroup SLOWPOKE_WELL_B2F, 9, 10
+	mapgroup OLIVINE_LIGHTHOUSE_1F, 9, 10
+	mapgroup OLIVINE_LIGHTHOUSE_2F, 9, 10
+	mapgroup OLIVINE_LIGHTHOUSE_3F, 9, 10
+	mapgroup OLIVINE_LIGHTHOUSE_4F, 9, 10
+	mapgroup OLIVINE_LIGHTHOUSE_5F, 9, 10
+	mapgroup OLIVINE_LIGHTHOUSE_6F, 9, 10
+	mapgroup MAHOGANY_MART_1F, 4, 4
+	mapgroup TEAM_ROCKET_BASE_B1F, 9, 15
+	mapgroup TEAM_ROCKET_BASE_B2F, 9, 15
+	mapgroup TEAM_ROCKET_BASE_B3F, 9, 15
+	mapgroup ILEX_FOREST, 27, 15
+	mapgroup WAREHOUSE_ENTRANCE, 18, 15
+	mapgroup UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES, 18, 15
+	mapgroup GOLDENROD_DEPT_STORE_B1F, 9, 10
+	mapgroup UNDERGROUND_WAREHOUSE, 9, 10
+	mapgroup MOUNT_MORTAR_1F_OUTSIDE, 18, 20
+	mapgroup MOUNT_MORTAR_1F_INSIDE, 27, 20
+	mapgroup MOUNT_MORTAR_2F_INSIDE, 18, 20
+	mapgroup MOUNT_MORTAR_B1F, 18, 20
+	mapgroup ICE_PATH_1F, 18, 20
+	mapgroup ICE_PATH_B1F, 18, 10
+	mapgroup ICE_PATH_B2F_MAHOGANY_SIDE, 9, 10
+	mapgroup ICE_PATH_B2F_BLACKTHORN_SIDE, 9, 5
+	mapgroup ICE_PATH_B3F, 9, 10
+	mapgroup WHIRL_ISLAND_NW, 9, 5
+	mapgroup WHIRL_ISLAND_NE, 9, 10
+	mapgroup WHIRL_ISLAND_SW, 9, 10
+	mapgroup WHIRL_ISLAND_CAVE, 9, 5
+	mapgroup WHIRL_ISLAND_SE, 9, 5
+	mapgroup WHIRL_ISLAND_B1F, 18, 20
+	mapgroup WHIRL_ISLAND_B2F, 18, 10
+	mapgroup WHIRL_ISLAND_LUGIA_CHAMBER, 9, 10
+	mapgroup SILVER_CAVE_ROOM_1, 18, 10
+	mapgroup SILVER_CAVE_ROOM_2, 18, 15
+	mapgroup SILVER_CAVE_ROOM_3, 18, 10
+	mapgroup SILVER_CAVE_ITEM_ROOMS, 9, 10
+	mapgroup DARK_CAVE_VIOLET_ENTRANCE, 18, 20
+	mapgroup DARK_CAVE_BLACKTHORN_ENTRANCE, 18, 15
+	mapgroup DRAGONS_DEN_1F, 9, 5
+	mapgroup DRAGONS_DEN_B1F, 18, 20
+	mapgroup DRAGON_SHRINE, 5, 5
+	mapgroup TOHJO_FALLS, 9, 15
+	mapgroup DIGLETTS_CAVE, 18, 10
+	mapgroup MOUNT_MOON, 9, 15
+	mapgroup UNDERGROUND, 14, 3
+	mapgroup ROCK_TUNNEL_1F, 18, 15
+	mapgroup ROCK_TUNNEL_B1F, 18, 15
+	mapgroup SAFARI_ZONE_FUCHSIA_GATE_BETA, 4, 5
+	mapgroup SAFARI_ZONE_BETA, 18, 10
+	mapgroup VICTORY_ROAD, 36, 10
 
-; map dimensions
-OLIVINE_POKECENTER_1F_HEIGHT EQU 4
-OLIVINE_POKECENTER_1F_WIDTH EQU 5
-OLIVINE_GYM_HEIGHT EQU 8
-OLIVINE_GYM_WIDTH EQU 5
-OLIVINE_VOLTORB_HOUSE_HEIGHT EQU 4
-OLIVINE_VOLTORB_HOUSE_WIDTH EQU 4
-OLIVINE_HOUSE_BETA_HEIGHT EQU 4
-OLIVINE_HOUSE_BETA_WIDTH EQU 4
-OLIVINE_PUNISHMENT_SPEECH_HOUSE_HEIGHT EQU 4
-OLIVINE_PUNISHMENT_SPEECH_HOUSE_WIDTH EQU 4
-OLIVINE_GOOD_ROD_HOUSE_HEIGHT EQU 4
-OLIVINE_GOOD_ROD_HOUSE_WIDTH EQU 4
-OLIVINE_CAFE_HEIGHT EQU 4
-OLIVINE_CAFE_WIDTH EQU 4
-OLIVINE_MART_HEIGHT EQU 4
-OLIVINE_MART_WIDTH EQU 6
-ROUTE_38_ECRUTEAK_GATE_HEIGHT EQU 4
-ROUTE_38_ECRUTEAK_GATE_WIDTH EQU 5
-ROUTE_39_BARN_HEIGHT EQU 4
-ROUTE_39_BARN_WIDTH EQU 4
-ROUTE_39_FARMHOUSE_HEIGHT EQU 4
-ROUTE_39_FARMHOUSE_WIDTH EQU 4
-ROUTE_38_HEIGHT EQU 9
-ROUTE_38_WIDTH EQU 20
-ROUTE_39_HEIGHT EQU 18
-ROUTE_39_WIDTH EQU 10
-OLIVINE_CITY_HEIGHT EQU 18
-OLIVINE_CITY_WIDTH EQU 20
-MAHOGANY_RED_GYARADOS_SPEECH_HOUSE_HEIGHT EQU 4
-MAHOGANY_RED_GYARADOS_SPEECH_HOUSE_WIDTH EQU 4
-MAHOGANY_GYM_HEIGHT EQU 9
-MAHOGANY_GYM_WIDTH EQU 5
-MAHOGANY_POKECENTER_1F_HEIGHT EQU 4
-MAHOGANY_POKECENTER_1F_WIDTH EQU 5
-ROUTE_42_ECRUTEAK_GATE_HEIGHT EQU 4
-ROUTE_42_ECRUTEAK_GATE_WIDTH EQU 5
-ROUTE_42_HEIGHT EQU 9
-ROUTE_42_WIDTH EQU 30
-ROUTE_44_HEIGHT EQU 9
-ROUTE_44_WIDTH EQU 30
-MAHOGANY_TOWN_HEIGHT EQU 9
-MAHOGANY_TOWN_WIDTH EQU 10
-SPROUT_TOWER_1F_HEIGHT EQU 8
-SPROUT_TOWER_1F_WIDTH EQU 10
-SPROUT_TOWER_2F_HEIGHT EQU 8
-SPROUT_TOWER_2F_WIDTH EQU 10
-SPROUT_TOWER_3F_HEIGHT EQU 8
-SPROUT_TOWER_3F_WIDTH EQU 10
-TIN_TOWER_1F_HEIGHT EQU 9
-TIN_TOWER_1F_WIDTH EQU 10
-TIN_TOWER_2F_HEIGHT EQU 9
-TIN_TOWER_2F_WIDTH EQU 10
-TIN_TOWER_3F_HEIGHT EQU 9
-TIN_TOWER_3F_WIDTH EQU 10
-TIN_TOWER_4F_HEIGHT EQU 9
-TIN_TOWER_4F_WIDTH EQU 10
-TIN_TOWER_5F_HEIGHT EQU 9
-TIN_TOWER_5F_WIDTH EQU 10
-TIN_TOWER_6F_HEIGHT EQU 9
-TIN_TOWER_6F_WIDTH EQU 10
-TIN_TOWER_7F_HEIGHT EQU 9
-TIN_TOWER_7F_WIDTH EQU 10
-TIN_TOWER_8F_HEIGHT EQU 9
-TIN_TOWER_8F_WIDTH EQU 10
-TIN_TOWER_9F_HEIGHT EQU 9
-TIN_TOWER_9F_WIDTH EQU 10
-BURNED_TOWER_1F_HEIGHT EQU 9
-BURNED_TOWER_1F_WIDTH EQU 10
-BURNED_TOWER_B1F_HEIGHT EQU 9
-BURNED_TOWER_B1F_WIDTH EQU 10
-NATIONAL_PARK_HEIGHT EQU 27
-NATIONAL_PARK_WIDTH EQU 20
-NATIONAL_PARK_BUG_CONTEST_HEIGHT EQU 27
-NATIONAL_PARK_BUG_CONTEST_WIDTH EQU 20
-RADIO_TOWER_1F_HEIGHT EQU 4
-RADIO_TOWER_1F_WIDTH EQU 9
-RADIO_TOWER_2F_HEIGHT EQU 4
-RADIO_TOWER_2F_WIDTH EQU 9
-RADIO_TOWER_3F_HEIGHT EQU 4
-RADIO_TOWER_3F_WIDTH EQU 9
-RADIO_TOWER_4F_HEIGHT EQU 4
-RADIO_TOWER_4F_WIDTH EQU 9
-RADIO_TOWER_5F_HEIGHT EQU 4
-RADIO_TOWER_5F_WIDTH EQU 9
-RUINS_OF_ALPH_OUTSIDE_HEIGHT EQU 18
-RUINS_OF_ALPH_OUTSIDE_WIDTH EQU 10
-RUINS_OF_ALPH_HO_OH_CHAMBER_HEIGHT EQU 5
-RUINS_OF_ALPH_HO_OH_CHAMBER_WIDTH EQU 4
-RUINS_OF_ALPH_KABUTO_CHAMBER_HEIGHT EQU 5
-RUINS_OF_ALPH_KABUTO_CHAMBER_WIDTH EQU 4
-RUINS_OF_ALPH_OMANYTE_CHAMBER_HEIGHT EQU 5
-RUINS_OF_ALPH_OMANYTE_CHAMBER_WIDTH EQU 4
-RUINS_OF_ALPH_AERODACTYL_CHAMBER_HEIGHT EQU 5
-RUINS_OF_ALPH_AERODACTYL_CHAMBER_WIDTH EQU 4
-RUINS_OF_ALPH_INNER_CHAMBER_HEIGHT EQU 14
-RUINS_OF_ALPH_INNER_CHAMBER_WIDTH EQU 10
-RUINS_OF_ALPH_RESEARCH_CENTER_HEIGHT EQU 4
-RUINS_OF_ALPH_RESEARCH_CENTER_WIDTH EQU 4
-RUINS_OF_ALPH_HO_OH_ITEM_ROOM_HEIGHT EQU 5
-RUINS_OF_ALPH_HO_OH_ITEM_ROOM_WIDTH EQU 4
-RUINS_OF_ALPH_KABUTO_ITEM_ROOM_HEIGHT EQU 5
-RUINS_OF_ALPH_KABUTO_ITEM_ROOM_WIDTH EQU 4
-RUINS_OF_ALPH_OMANYTE_ITEM_ROOM_HEIGHT EQU 5
-RUINS_OF_ALPH_OMANYTE_ITEM_ROOM_WIDTH EQU 4
-RUINS_OF_ALPH_AERODACTYL_ITEM_ROOM_HEIGHT EQU 5
-RUINS_OF_ALPH_AERODACTYL_ITEM_ROOM_WIDTH EQU 4
-RUINS_OF_ALPH_HO_OH_WORD_ROOM_HEIGHT EQU 12
-RUINS_OF_ALPH_HO_OH_WORD_ROOM_WIDTH EQU 10
-RUINS_OF_ALPH_KABUTO_WORD_ROOM_HEIGHT EQU 7
-RUINS_OF_ALPH_KABUTO_WORD_ROOM_WIDTH EQU 10
-RUINS_OF_ALPH_OMANYTE_WORD_ROOM_HEIGHT EQU 8
-RUINS_OF_ALPH_OMANYTE_WORD_ROOM_WIDTH EQU 10
-RUINS_OF_ALPH_AERODACTYL_WORD_ROOM_HEIGHT EQU 7
-RUINS_OF_ALPH_AERODACTYL_WORD_ROOM_WIDTH EQU 10
-UNION_CAVE_1F_HEIGHT EQU 18
-UNION_CAVE_1F_WIDTH EQU 10
-UNION_CAVE_B1F_HEIGHT EQU 18
-UNION_CAVE_B1F_WIDTH EQU 10
-UNION_CAVE_B2F_HEIGHT EQU 18
-UNION_CAVE_B2F_WIDTH EQU 10
-SLOWPOKE_WELL_B1F_HEIGHT EQU 9
-SLOWPOKE_WELL_B1F_WIDTH EQU 10
-SLOWPOKE_WELL_B2F_HEIGHT EQU 9
-SLOWPOKE_WELL_B2F_WIDTH EQU 10
-OLIVINE_LIGHTHOUSE_1F_HEIGHT EQU 9
-OLIVINE_LIGHTHOUSE_1F_WIDTH EQU 10
-OLIVINE_LIGHTHOUSE_2F_HEIGHT EQU 9
-OLIVINE_LIGHTHOUSE_2F_WIDTH EQU 10
-OLIVINE_LIGHTHOUSE_3F_HEIGHT EQU 9
-OLIVINE_LIGHTHOUSE_3F_WIDTH EQU 10
-OLIVINE_LIGHTHOUSE_4F_HEIGHT EQU 9
-OLIVINE_LIGHTHOUSE_4F_WIDTH EQU 10
-OLIVINE_LIGHTHOUSE_5F_HEIGHT EQU 9
-OLIVINE_LIGHTHOUSE_5F_WIDTH EQU 10
-OLIVINE_LIGHTHOUSE_6F_HEIGHT EQU 9
-OLIVINE_LIGHTHOUSE_6F_WIDTH EQU 10
-MAHOGANY_MART_1F_HEIGHT EQU 4
-MAHOGANY_MART_1F_WIDTH EQU 4
-TEAM_ROCKET_BASE_B1F_HEIGHT EQU 9
-TEAM_ROCKET_BASE_B1F_WIDTH EQU 15
-TEAM_ROCKET_BASE_B2F_HEIGHT EQU 9
-TEAM_ROCKET_BASE_B2F_WIDTH EQU 15
-TEAM_ROCKET_BASE_B3F_HEIGHT EQU 9
-TEAM_ROCKET_BASE_B3F_WIDTH EQU 15
-ILEX_FOREST_HEIGHT EQU 27
-ILEX_FOREST_WIDTH EQU 15
-WAREHOUSE_ENTRANCE_HEIGHT EQU 18
-WAREHOUSE_ENTRANCE_WIDTH EQU 15
-UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_HEIGHT EQU 18
-UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_WIDTH EQU 15
-GOLDENROD_DEPT_STORE_B1F_HEIGHT EQU 9
-GOLDENROD_DEPT_STORE_B1F_WIDTH EQU 10
-UNDERGROUND_WAREHOUSE_HEIGHT EQU 9
-UNDERGROUND_WAREHOUSE_WIDTH EQU 10
-MOUNT_MORTAR_1F_OUTSIDE_HEIGHT EQU 18
-MOUNT_MORTAR_1F_OUTSIDE_WIDTH EQU 20
-MOUNT_MORTAR_1F_INSIDE_HEIGHT EQU 27
-MOUNT_MORTAR_1F_INSIDE_WIDTH EQU 20
-MOUNT_MORTAR_2F_INSIDE_HEIGHT EQU 18
-MOUNT_MORTAR_2F_INSIDE_WIDTH EQU 20
-MOUNT_MORTAR_B1F_HEIGHT EQU 18
-MOUNT_MORTAR_B1F_WIDTH EQU 20
-ICE_PATH_1F_HEIGHT EQU 18
-ICE_PATH_1F_WIDTH EQU 20
-ICE_PATH_B1F_HEIGHT EQU 18
-ICE_PATH_B1F_WIDTH EQU 10
-ICE_PATH_B2F_MAHOGANY_SIDE_HEIGHT EQU 9
-ICE_PATH_B2F_MAHOGANY_SIDE_WIDTH EQU 10
-ICE_PATH_B2F_BLACKTHORN_SIDE_HEIGHT EQU 9
-ICE_PATH_B2F_BLACKTHORN_SIDE_WIDTH EQU 5
-ICE_PATH_B3F_HEIGHT EQU 9
-ICE_PATH_B3F_WIDTH EQU 10
-WHIRL_ISLAND_NW_HEIGHT EQU 9
-WHIRL_ISLAND_NW_WIDTH EQU 5
-WHIRL_ISLAND_NE_HEIGHT EQU 9
-WHIRL_ISLAND_NE_WIDTH EQU 10
-WHIRL_ISLAND_SW_HEIGHT EQU 9
-WHIRL_ISLAND_SW_WIDTH EQU 10
-WHIRL_ISLAND_CAVE_HEIGHT EQU 9
-WHIRL_ISLAND_CAVE_WIDTH EQU 5
-WHIRL_ISLAND_SE_HEIGHT EQU 9
-WHIRL_ISLAND_SE_WIDTH EQU 5
-WHIRL_ISLAND_B1F_HEIGHT EQU 18
-WHIRL_ISLAND_B1F_WIDTH EQU 20
-WHIRL_ISLAND_B2F_HEIGHT EQU 18
-WHIRL_ISLAND_B2F_WIDTH EQU 10
-WHIRL_ISLAND_LUGIA_CHAMBER_HEIGHT EQU 9
-WHIRL_ISLAND_LUGIA_CHAMBER_WIDTH EQU 10
-SILVER_CAVE_ROOM_1_HEIGHT EQU 18
-SILVER_CAVE_ROOM_1_WIDTH EQU 10
-SILVER_CAVE_ROOM_2_HEIGHT EQU 18
-SILVER_CAVE_ROOM_2_WIDTH EQU 15
-SILVER_CAVE_ROOM_3_HEIGHT EQU 18
-SILVER_CAVE_ROOM_3_WIDTH EQU 10
-SILVER_CAVE_ITEM_ROOMS_HEIGHT EQU 9
-SILVER_CAVE_ITEM_ROOMS_WIDTH EQU 10
-DARK_CAVE_VIOLET_ENTRANCE_HEIGHT EQU 18
-DARK_CAVE_VIOLET_ENTRANCE_WIDTH EQU 20
-DARK_CAVE_BLACKTHORN_ENTRANCE_HEIGHT EQU 18
-DARK_CAVE_BLACKTHORN_ENTRANCE_WIDTH EQU 15
-DRAGONS_DEN_1F_HEIGHT EQU 9
-DRAGONS_DEN_1F_WIDTH EQU 5
-DRAGONS_DEN_B1F_HEIGHT EQU 18
-DRAGONS_DEN_B1F_WIDTH EQU 20
-DRAGON_SHRINE_HEIGHT EQU 5
-DRAGON_SHRINE_WIDTH EQU 5
-TOHJO_FALLS_HEIGHT EQU 9
-TOHJO_FALLS_WIDTH EQU 15
-DIGLETTS_CAVE_HEIGHT EQU 18
-DIGLETTS_CAVE_WIDTH EQU 10
-MOUNT_MOON_HEIGHT EQU 9
-MOUNT_MOON_WIDTH EQU 15
-UNDERGROUND_HEIGHT EQU 14
-UNDERGROUND_WIDTH EQU 3
-ROCK_TUNNEL_1F_HEIGHT EQU 18
-ROCK_TUNNEL_1F_WIDTH EQU 15
-ROCK_TUNNEL_B1F_HEIGHT EQU 18
-ROCK_TUNNEL_B1F_WIDTH EQU 15
-SAFARI_ZONE_FUCHSIA_GATE_BETA_HEIGHT EQU 4
-SAFARI_ZONE_FUCHSIA_GATE_BETA_WIDTH EQU 5
-SAFARI_ZONE_BETA_HEIGHT EQU 18
-SAFARI_ZONE_BETA_WIDTH EQU 10
-VICTORY_ROAD_HEIGHT EQU 36
-VICTORY_ROAD_WIDTH EQU 10
-ECRUTEAK_HOUSE_HEIGHT EQU 9
-ECRUTEAK_HOUSE_WIDTH EQU 10
-WISE_TRIOS_ROOM_HEIGHT EQU 4
-WISE_TRIOS_ROOM_WIDTH EQU 4
-ECRUTEAK_POKECENTER_1F_HEIGHT EQU 4
-ECRUTEAK_POKECENTER_1F_WIDTH EQU 5
-ECRUTEAK_LUGIA_SPEECH_HOUSE_HEIGHT EQU 4
-ECRUTEAK_LUGIA_SPEECH_HOUSE_WIDTH EQU 4
-DANCE_THEATRE_HEIGHT EQU 7
-DANCE_THEATRE_WIDTH EQU 6
-ECRUTEAK_MART_HEIGHT EQU 4
-ECRUTEAK_MART_WIDTH EQU 6
-ECRUTEAK_GYM_HEIGHT EQU 9
-ECRUTEAK_GYM_WIDTH EQU 5
-ECRUTEAK_ITEMFINDER_HOUSE_HEIGHT EQU 4
-ECRUTEAK_ITEMFINDER_HOUSE_WIDTH EQU 4
-ECRUTEAK_CITY_HEIGHT EQU 18
-ECRUTEAK_CITY_WIDTH EQU 20
-BLACKTHORN_GYM_1F_HEIGHT EQU 9
-BLACKTHORN_GYM_1F_WIDTH EQU 5
-BLACKTHORN_GYM_2F_HEIGHT EQU 9
-BLACKTHORN_GYM_2F_WIDTH EQU 5
-BLACKTHORN_DRAGON_SPEECH_HOUSE_HEIGHT EQU 4
-BLACKTHORN_DRAGON_SPEECH_HOUSE_WIDTH EQU 4
-BLACKTHORN_DODRIO_TRADE_HOUSE_HEIGHT EQU 4
-BLACKTHORN_DODRIO_TRADE_HOUSE_WIDTH EQU 4
-BLACKTHORN_MART_HEIGHT EQU 4
-BLACKTHORN_MART_WIDTH EQU 6
-BLACKTHORN_POKECENTER_1F_HEIGHT EQU 4
-BLACKTHORN_POKECENTER_1F_WIDTH EQU 5
-MOVE_DELETERS_HOUSE_HEIGHT EQU 4
-MOVE_DELETERS_HOUSE_WIDTH EQU 4
-ROUTE_45_HEIGHT EQU 45
-ROUTE_45_WIDTH EQU 10
-ROUTE_46_HEIGHT EQU 18
-ROUTE_46_WIDTH EQU 10
-BLACKTHORN_CITY_HEIGHT EQU 18
-BLACKTHORN_CITY_WIDTH EQU 20
-CINNABAR_POKECENTER_1F_HEIGHT EQU 4
-CINNABAR_POKECENTER_1F_WIDTH EQU 5
-CINNABAR_POKECENTER_2F_BETA_HEIGHT EQU 4
-CINNABAR_POKECENTER_2F_BETA_WIDTH EQU 8
-ROUTE_19___FUCHSIA_GATE_HEIGHT EQU 4
-ROUTE_19___FUCHSIA_GATE_WIDTH EQU 5
-SEAFOAM_GYM_HEIGHT EQU 4
-SEAFOAM_GYM_WIDTH EQU 5
-ROUTE_19_HEIGHT EQU 18
-ROUTE_19_WIDTH EQU 10
-ROUTE_20_HEIGHT EQU 9
-ROUTE_20_WIDTH EQU 30
-ROUTE_21_HEIGHT EQU 18
-ROUTE_21_WIDTH EQU 10
-CINNABAR_ISLAND_HEIGHT EQU 9
-CINNABAR_ISLAND_WIDTH EQU 10
-CERULEAN_GYM_BADGE_SPEECH_HOUSE_HEIGHT EQU 4
-CERULEAN_GYM_BADGE_SPEECH_HOUSE_WIDTH EQU 4
-CERULEAN_POLICE_STATION_HEIGHT EQU 4
-CERULEAN_POLICE_STATION_WIDTH EQU 4
-CERULEAN_TRADE_SPEECH_HOUSE_HEIGHT EQU 4
-CERULEAN_TRADE_SPEECH_HOUSE_WIDTH EQU 4
-CERULEAN_POKECENTER_1F_HEIGHT EQU 4
-CERULEAN_POKECENTER_1F_WIDTH EQU 5
-CERULEAN_POKECENTER_2F_BETA_HEIGHT EQU 4
-CERULEAN_POKECENTER_2F_BETA_WIDTH EQU 8
-CERULEAN_GYM_HEIGHT EQU 8
-CERULEAN_GYM_WIDTH EQU 5
-CERULEAN_MART_HEIGHT EQU 4
-CERULEAN_MART_WIDTH EQU 6
-ROUTE_10_POKECENTER_1F_HEIGHT EQU 4
-ROUTE_10_POKECENTER_1F_WIDTH EQU 5
-ROUTE_10_POKECENTER_2F_BETA_HEIGHT EQU 4
-ROUTE_10_POKECENTER_2F_BETA_WIDTH EQU 8
-POWER_PLANT_HEIGHT EQU 9
-POWER_PLANT_WIDTH EQU 10
-BILLS_HOUSE_HEIGHT EQU 4
-BILLS_HOUSE_WIDTH EQU 4
-ROUTE_4_HEIGHT EQU 9
-ROUTE_4_WIDTH EQU 20
-ROUTE_9_HEIGHT EQU 9
-ROUTE_9_WIDTH EQU 30
-ROUTE_10_NORTH_HEIGHT EQU 9
-ROUTE_10_NORTH_WIDTH EQU 10
-ROUTE_24_HEIGHT EQU 9
-ROUTE_24_WIDTH EQU 10
-ROUTE_25_HEIGHT EQU 9
-ROUTE_25_WIDTH EQU 30
-CERULEAN_CITY_HEIGHT EQU 18
-CERULEAN_CITY_WIDTH EQU 20
-AZALEA_POKECENTER_1F_HEIGHT EQU 4
-AZALEA_POKECENTER_1F_WIDTH EQU 5
-CHARCOAL_KILN_HEIGHT EQU 4
-CHARCOAL_KILN_WIDTH EQU 4
-AZALEA_MART_HEIGHT EQU 4
-AZALEA_MART_WIDTH EQU 6
-KURTS_HOUSE_HEIGHT EQU 4
-KURTS_HOUSE_WIDTH EQU 8
-AZALEA_GYM_HEIGHT EQU 8
-AZALEA_GYM_WIDTH EQU 5
-ROUTE_33_HEIGHT EQU 9
-ROUTE_33_WIDTH EQU 10
-AZALEA_TOWN_HEIGHT EQU 9
-AZALEA_TOWN_WIDTH EQU 20
-LAKE_OF_RAGE_HIDDEN_POWER_HOUSE_HEIGHT EQU 4
-LAKE_OF_RAGE_HIDDEN_POWER_HOUSE_WIDTH EQU 4
-LAKE_OF_RAGE_MAGIKARP_HOUSE_HEIGHT EQU 4
-LAKE_OF_RAGE_MAGIKARP_HOUSE_WIDTH EQU 4
-ROUTE_43_MAHOGANY_GATE_HEIGHT EQU 4
-ROUTE_43_MAHOGANY_GATE_WIDTH EQU 5
-ROUTE_43_GATE_HEIGHT EQU 4
-ROUTE_43_GATE_WIDTH EQU 5
-ROUTE_43_HEIGHT EQU 27
-ROUTE_43_WIDTH EQU 10
-LAKE_OF_RAGE_HEIGHT EQU 18
-LAKE_OF_RAGE_WIDTH EQU 20
-ROUTE_32_HEIGHT EQU 45
-ROUTE_32_WIDTH EQU 10
-ROUTE_35_HEIGHT EQU 18
-ROUTE_35_WIDTH EQU 10
-ROUTE_36_HEIGHT EQU 9
-ROUTE_36_WIDTH EQU 30
-ROUTE_37_HEIGHT EQU 9
-ROUTE_37_WIDTH EQU 10
-VIOLET_CITY_HEIGHT EQU 18
-VIOLET_CITY_WIDTH EQU 20
-VIOLET_MART_HEIGHT EQU 4
-VIOLET_MART_WIDTH EQU 6
-VIOLET_GYM_HEIGHT EQU 8
-VIOLET_GYM_WIDTH EQU 5
-EARLS_POKEMON_ACADEMY_HEIGHT EQU 8
-EARLS_POKEMON_ACADEMY_WIDTH EQU 4
-VIOLET_NICKNAME_SPEECH_HOUSE_HEIGHT EQU 4
-VIOLET_NICKNAME_SPEECH_HOUSE_WIDTH EQU 4
-VIOLET_POKECENTER_1F_HEIGHT EQU 4
-VIOLET_POKECENTER_1F_WIDTH EQU 5
-VIOLET_ONIX_TRADE_HOUSE_HEIGHT EQU 4
-VIOLET_ONIX_TRADE_HOUSE_WIDTH EQU 4
-ROUTE_32_RUINS_OF_ALPH_GATE_HEIGHT EQU 4
-ROUTE_32_RUINS_OF_ALPH_GATE_WIDTH EQU 5
-ROUTE_32_POKECENTER_1F_HEIGHT EQU 4
-ROUTE_32_POKECENTER_1F_WIDTH EQU 5
-ROUTE_35_GOLDENROD_GATE_HEIGHT EQU 4
-ROUTE_35_GOLDENROD_GATE_WIDTH EQU 5
-ROUTE_35_NATIONAL_PARK_GATE_HEIGHT EQU 4
-ROUTE_35_NATIONAL_PARK_GATE_WIDTH EQU 4
-ROUTE_36_RUINS_OF_ALPH_GATE_HEIGHT EQU 4
-ROUTE_36_RUINS_OF_ALPH_GATE_WIDTH EQU 5
-ROUTE_36_NATIONAL_PARK_GATE_HEIGHT EQU 4
-ROUTE_36_NATIONAL_PARK_GATE_WIDTH EQU 5
-ROUTE_34_HEIGHT EQU 27
-ROUTE_34_WIDTH EQU 10
-GOLDENROD_CITY_HEIGHT EQU 18
-GOLDENROD_CITY_WIDTH EQU 20
-GOLDENROD_GYM_HEIGHT EQU 9
-GOLDENROD_GYM_WIDTH EQU 10
-GOLDENROD_BIKE_SHOP_HEIGHT EQU 4
-GOLDENROD_BIKE_SHOP_WIDTH EQU 4
-GOLDENROD_HAPPINESS_RATER_HEIGHT EQU 4
-GOLDENROD_HAPPINESS_RATER_WIDTH EQU 4
-GOLDENROD_BILLS_HOUSE_HEIGHT EQU 4
-GOLDENROD_BILLS_HOUSE_WIDTH EQU 4
-GOLDENROD_MAGNET_TRAIN_STATION_HEIGHT EQU 9
-GOLDENROD_MAGNET_TRAIN_STATION_WIDTH EQU 10
-GOLDENROD_FLOWER_SHOP_HEIGHT EQU 4
-GOLDENROD_FLOWER_SHOP_WIDTH EQU 4
-GOLDENROD_PP_SPEECH_HOUSE_HEIGHT EQU 4
-GOLDENROD_PP_SPEECH_HOUSE_WIDTH EQU 4
-GOLDENROD_NAME_RATERS_HOUSE_HEIGHT EQU 4
-GOLDENROD_NAME_RATERS_HOUSE_WIDTH EQU 4
-GOLDENROD_DEPT_STORE_1F_HEIGHT EQU 4
-GOLDENROD_DEPT_STORE_1F_WIDTH EQU 8
-GOLDENROD_DEPT_STORE_2F_HEIGHT EQU 4
-GOLDENROD_DEPT_STORE_2F_WIDTH EQU 8
-GOLDENROD_DEPT_STORE_3F_HEIGHT EQU 4
-GOLDENROD_DEPT_STORE_3F_WIDTH EQU 8
-GOLDENROD_DEPT_STORE_4F_HEIGHT EQU 4
-GOLDENROD_DEPT_STORE_4F_WIDTH EQU 8
-GOLDENROD_DEPT_STORE_5F_HEIGHT EQU 4
-GOLDENROD_DEPT_STORE_5F_WIDTH EQU 8
-GOLDENROD_DEPT_STORE_6F_HEIGHT EQU 4
-GOLDENROD_DEPT_STORE_6F_WIDTH EQU 8
-GOLDENROD_DEPT_STORE_ELEVATOR_HEIGHT EQU 2
-GOLDENROD_DEPT_STORE_ELEVATOR_WIDTH EQU 2
-GOLDENROD_DEPT_STORE_ROOF_HEIGHT EQU 4
-GOLDENROD_DEPT_STORE_ROOF_WIDTH EQU 8
-GOLDENROD_GAME_CORNER_HEIGHT EQU 7
-GOLDENROD_GAME_CORNER_WIDTH EQU 10
-GOLDENROD_POKECENTER_1F_HEIGHT EQU 4
-GOLDENROD_POKECENTER_1F_WIDTH EQU 5
-GOLDENROD_POKECOM_CENTER_2F_MOBILE_HEIGHT EQU 16
-GOLDENROD_POKECOM_CENTER_2F_MOBILE_WIDTH EQU 16
-ILEX_FOREST_AZALEA_GATE_HEIGHT EQU 4
-ILEX_FOREST_AZALEA_GATE_WIDTH EQU 5
-ROUTE_34_ILEX_FOREST_GATE_HEIGHT EQU 4
-ROUTE_34_ILEX_FOREST_GATE_WIDTH EQU 5
-DAY_CARE_HEIGHT EQU 4
-DAY_CARE_WIDTH EQU 5
-ROUTE_6_HEIGHT EQU 9
-ROUTE_6_WIDTH EQU 10
-ROUTE_11_HEIGHT EQU 9
-ROUTE_11_WIDTH EQU 20
-VERMILION_CITY_HEIGHT EQU 18
-VERMILION_CITY_WIDTH EQU 20
-VERMILION_HOUSE_FISHING_SPEECH_HOUSE_HEIGHT EQU 4
-VERMILION_HOUSE_FISHING_SPEECH_HOUSE_WIDTH EQU 4
-VERMILION_POKECENTER_1F_HEIGHT EQU 4
-VERMILION_POKECENTER_1F_WIDTH EQU 5
-VERMILION_POKECENTER_2F_BETA_HEIGHT EQU 4
-VERMILION_POKECENTER_2F_BETA_WIDTH EQU 8
-POKEMON_FAN_CLUB_HEIGHT EQU 4
-POKEMON_FAN_CLUB_WIDTH EQU 5
-VERMILION_MAGNET_TRAIN_SPEECH_HOUSE_HEIGHT EQU 4
-VERMILION_MAGNET_TRAIN_SPEECH_HOUSE_WIDTH EQU 4
-VERMILION_MART_HEIGHT EQU 4
-VERMILION_MART_WIDTH EQU 6
-VERMILION_HOUSE_DIGLETTS_CAVE_SPEECH_HOUSE_HEIGHT EQU 4
-VERMILION_HOUSE_DIGLETTS_CAVE_SPEECH_HOUSE_WIDTH EQU 4
-VERMILION_GYM_HEIGHT EQU 9
-VERMILION_GYM_WIDTH EQU 5
-ROUTE_6_SAFFRON_GATE_HEIGHT EQU 4
-ROUTE_6_SAFFRON_GATE_WIDTH EQU 5
-ROUTE_6_UNDERGROUND_ENTRANCE_HEIGHT EQU 4
-ROUTE_6_UNDERGROUND_ENTRANCE_WIDTH EQU 4
-ROUTE_1_HEIGHT EQU 18
-ROUTE_1_WIDTH EQU 10
-PALLET_TOWN_HEIGHT EQU 9
-PALLET_TOWN_WIDTH EQU 10
-REDS_HOUSE_1F_HEIGHT EQU 4
-REDS_HOUSE_1F_WIDTH EQU 4
-REDS_HOUSE_2F_HEIGHT EQU 4
-REDS_HOUSE_2F_WIDTH EQU 4
-BLUES_HOUSE_HEIGHT EQU 4
-BLUES_HOUSE_WIDTH EQU 4
-OAKS_LAB_HEIGHT EQU 6
-OAKS_LAB_WIDTH EQU 5
-ROUTE_3_HEIGHT EQU 9
-ROUTE_3_WIDTH EQU 30
-PEWTER_CITY_HEIGHT EQU 18
-PEWTER_CITY_WIDTH EQU 20
-PEWTER_NIDORAN_SPEECH_HOUSE_HEIGHT EQU 4
-PEWTER_NIDORAN_SPEECH_HOUSE_WIDTH EQU 4
-PEWTER_GYM_HEIGHT EQU 7
-PEWTER_GYM_WIDTH EQU 5
-PEWTER_MART_HEIGHT EQU 4
-PEWTER_MART_WIDTH EQU 6
-PEWTER_POKECENTER_1F_HEIGHT EQU 4
-PEWTER_POKECENTER_1F_WIDTH EQU 5
-PEWTER_POKECENTER_2F_BETA_HEIGHT EQU 4
-PEWTER_POKECENTER_2F_BETA_WIDTH EQU 8
-PEWTER_SNOOZE_SPEECH_HOUSE_HEIGHT EQU 4
-PEWTER_SNOOZE_SPEECH_HOUSE_WIDTH EQU 4
-OLIVINE_PORT_HEIGHT EQU 18
-OLIVINE_PORT_WIDTH EQU 10
-VERMILION_PORT_HEIGHT EQU 18
-VERMILION_PORT_WIDTH EQU 10
-FAST_SHIP_1F_HEIGHT EQU 9
-FAST_SHIP_1F_WIDTH EQU 16
-FAST_SHIP_CABINS_NNW_NNE_NE_HEIGHT EQU 16
-FAST_SHIP_CABINS_NNW_NNE_NE_WIDTH EQU 4
-FAST_SHIP_CABINS_SW_SSW_NW_HEIGHT EQU 16
-FAST_SHIP_CABINS_SW_SSW_NW_WIDTH EQU 4
-FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_HEIGHT EQU 17
-FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_WIDTH EQU 5
-FAST_SHIP_B1F_HEIGHT EQU 8
-FAST_SHIP_B1F_WIDTH EQU 16
-OLIVINE_PORT_PASSAGE_HEIGHT EQU 9
-OLIVINE_PORT_PASSAGE_WIDTH EQU 10
-VERMILION_PORT_PASSAGE_HEIGHT EQU 9
-VERMILION_PORT_PASSAGE_WIDTH EQU 10
-MOUNT_MOON_SQUARE_HEIGHT EQU 9
-MOUNT_MOON_SQUARE_WIDTH EQU 15
-MOUNT_MOON_GIFT_SHOP_HEIGHT EQU 4
-MOUNT_MOON_GIFT_SHOP_WIDTH EQU 4
-TIN_TOWER_ROOF_HEIGHT EQU 9
-TIN_TOWER_ROOF_WIDTH EQU 10
-ROUTE_23_HEIGHT EQU 9
-ROUTE_23_WIDTH EQU 10
-INDIGO_PLATEAU_POKECENTER_1F_HEIGHT EQU 7
-INDIGO_PLATEAU_POKECENTER_1F_WIDTH EQU 9
-WILLS_ROOM_HEIGHT EQU 9
-WILLS_ROOM_WIDTH EQU 5
-KOGAS_ROOM_HEIGHT EQU 9
-KOGAS_ROOM_WIDTH EQU 5
-BRUNOS_ROOM_HEIGHT EQU 9
-BRUNOS_ROOM_WIDTH EQU 5
-KARENS_ROOM_HEIGHT EQU 9
-KARENS_ROOM_WIDTH EQU 5
-LANCES_ROOM_HEIGHT EQU 12
-LANCES_ROOM_WIDTH EQU 5
-HALL_OF_FAME_HEIGHT EQU 7
-HALL_OF_FAME_WIDTH EQU 5
-ROUTE_13_HEIGHT EQU 9
-ROUTE_13_WIDTH EQU 30
-ROUTE_14_HEIGHT EQU 18
-ROUTE_14_WIDTH EQU 10
-ROUTE_15_HEIGHT EQU 9
-ROUTE_15_WIDTH EQU 20
-ROUTE_18_HEIGHT EQU 9
-ROUTE_18_WIDTH EQU 10
-FUCHSIA_CITY_HEIGHT EQU 18
-FUCHSIA_CITY_WIDTH EQU 20
-FUCHSIA_MART_HEIGHT EQU 4
-FUCHSIA_MART_WIDTH EQU 6
-SAFARI_ZONE_MAIN_OFFICE_HEIGHT EQU 4
-SAFARI_ZONE_MAIN_OFFICE_WIDTH EQU 4
-FUCHSIA_GYM_HEIGHT EQU 9
-FUCHSIA_GYM_WIDTH EQU 5
-FUCHSIA_BILL_SPEECH_HOUSE_HEIGHT EQU 4
-FUCHSIA_BILL_SPEECH_HOUSE_WIDTH EQU 4
-FUCHSIA_POKECENTER_1F_HEIGHT EQU 4
-FUCHSIA_POKECENTER_1F_WIDTH EQU 5
-FUCHSIA_POKECENTER_2F_BETA_HEIGHT EQU 4
-FUCHSIA_POKECENTER_2F_BETA_WIDTH EQU 8
-SAFARI_ZONE_WARDENS_HOME_HEIGHT EQU 4
-SAFARI_ZONE_WARDENS_HOME_WIDTH EQU 5
-ROUTE_15_FUCHSIA_GATE_HEIGHT EQU 4
-ROUTE_15_FUCHSIA_GATE_WIDTH EQU 5
-ROUTE_8_HEIGHT EQU 9
-ROUTE_8_WIDTH EQU 20
-ROUTE_12_HEIGHT EQU 27
-ROUTE_12_WIDTH EQU 10
-ROUTE_10_SOUTH_HEIGHT EQU 9
-ROUTE_10_SOUTH_WIDTH EQU 10
-LAVENDER_TOWN_HEIGHT EQU 9
-LAVENDER_TOWN_WIDTH EQU 10
-LAVENDER_POKECENTER_1F_HEIGHT EQU 4
-LAVENDER_POKECENTER_1F_WIDTH EQU 5
-LAVENDER_POKECENTER_2F_BETA_HEIGHT EQU 4
-LAVENDER_POKECENTER_2F_BETA_WIDTH EQU 8
-MR_FUJIS_HOUSE_HEIGHT EQU 4
-MR_FUJIS_HOUSE_WIDTH EQU 5
-LAVENDER_TOWN_SPEECH_HOUSE_HEIGHT EQU 4
-LAVENDER_TOWN_SPEECH_HOUSE_WIDTH EQU 4
-LAVENDER_NAME_RATER_HEIGHT EQU 4
-LAVENDER_NAME_RATER_WIDTH EQU 4
-LAVENDER_MART_HEIGHT EQU 4
-LAVENDER_MART_WIDTH EQU 6
-SOUL_HOUSE_HEIGHT EQU 4
-SOUL_HOUSE_WIDTH EQU 5
-LAV_RADIO_TOWER_1F_HEIGHT EQU 4
-LAV_RADIO_TOWER_1F_WIDTH EQU 10
-ROUTE_8_SAFFRON_GATE_HEIGHT EQU 4
-ROUTE_8_SAFFRON_GATE_WIDTH EQU 5
-ROUTE_12_SUPER_ROD_HOUSE_HEIGHT EQU 4
-ROUTE_12_SUPER_ROD_HOUSE_WIDTH EQU 4
-ROUTE_28_HEIGHT EQU 9
-ROUTE_28_WIDTH EQU 20
-SILVER_CAVE_OUTSIDE_HEIGHT EQU 18
-SILVER_CAVE_OUTSIDE_WIDTH EQU 20
-SILVER_CAVE_POKECENTER_1F_HEIGHT EQU 4
-SILVER_CAVE_POKECENTER_1F_WIDTH EQU 5
-ROUTE_28_FAMOUS_SPEECH_HOUSE_HEIGHT EQU 4
-ROUTE_28_FAMOUS_SPEECH_HOUSE_WIDTH EQU 4
-POKECENTER_2F_HEIGHT EQU 4
-POKECENTER_2F_WIDTH EQU 8
-TRADE_CENTER_HEIGHT EQU 4
-TRADE_CENTER_WIDTH EQU 5
-COLOSSEUM_HEIGHT EQU 4
-COLOSSEUM_WIDTH EQU 5
-TIME_CAPSULE_HEIGHT EQU 4
-TIME_CAPSULE_WIDTH EQU 5
-MOBILE_TRADE_ROOM_MOBILE_HEIGHT EQU 4
-MOBILE_TRADE_ROOM_MOBILE_WIDTH EQU 5
-MOBILE_BATTLE_ROOM_HEIGHT EQU 4
-MOBILE_BATTLE_ROOM_WIDTH EQU 5
-ROUTE_7_HEIGHT EQU 9
-ROUTE_7_WIDTH EQU 10
-ROUTE_16_HEIGHT EQU 9
-ROUTE_16_WIDTH EQU 10
-ROUTE_17_HEIGHT EQU 45
-ROUTE_17_WIDTH EQU 10
-CELADON_CITY_HEIGHT EQU 18
-CELADON_CITY_WIDTH EQU 20
-CELADON_DEPT_STORE_1F_HEIGHT EQU 4
-CELADON_DEPT_STORE_1F_WIDTH EQU 8
-CELADON_DEPT_STORE_2F_HEIGHT EQU 4
-CELADON_DEPT_STORE_2F_WIDTH EQU 8
-CELADON_DEPT_STORE_3F_HEIGHT EQU 4
-CELADON_DEPT_STORE_3F_WIDTH EQU 8
-CELADON_DEPT_STORE_4F_HEIGHT EQU 4
-CELADON_DEPT_STORE_4F_WIDTH EQU 8
-CELADON_DEPT_STORE_5F_HEIGHT EQU 4
-CELADON_DEPT_STORE_5F_WIDTH EQU 8
-CELADON_DEPT_STORE_6F_HEIGHT EQU 4
-CELADON_DEPT_STORE_6F_WIDTH EQU 8
-CELADON_DEPT_STORE_ELEVATOR_HEIGHT EQU 2
-CELADON_DEPT_STORE_ELEVATOR_WIDTH EQU 2
-CELADON_MANSION_1F_HEIGHT EQU 5
-CELADON_MANSION_1F_WIDTH EQU 4
-CELADON_MANSION_2F_HEIGHT EQU 5
-CELADON_MANSION_2F_WIDTH EQU 4
-CELADON_MANSION_3F_HEIGHT EQU 5
-CELADON_MANSION_3F_WIDTH EQU 4
-CELADON_MANSION_ROOF_HEIGHT EQU 5
-CELADON_MANSION_ROOF_WIDTH EQU 4
-CELADON_MANSION_ROOF_HOUSE_HEIGHT EQU 4
-CELADON_MANSION_ROOF_HOUSE_WIDTH EQU 4
-CELADON_POKECENTER_1F_HEIGHT EQU 4
-CELADON_POKECENTER_1F_WIDTH EQU 5
-CELADON_POKECENTER_2F_BETA_HEIGHT EQU 4
-CELADON_POKECENTER_2F_BETA_WIDTH EQU 8
-CELADON_GAME_CORNER_HEIGHT EQU 7
-CELADON_GAME_CORNER_WIDTH EQU 10
-CELADON_GAME_CORNER_PRIZE_ROOM_HEIGHT EQU 3
-CELADON_GAME_CORNER_PRIZE_ROOM_WIDTH EQU 3
-CELADON_GYM_HEIGHT EQU 9
-CELADON_GYM_WIDTH EQU 5
-CELADON_CAFE_HEIGHT EQU 4
-CELADON_CAFE_WIDTH EQU 6
-ROUTE_16_FUCHSIA_SPEECH_HOUSE_HEIGHT EQU 4
-ROUTE_16_FUCHSIA_SPEECH_HOUSE_WIDTH EQU 4
-ROUTE_16_GATE_HEIGHT EQU 4
-ROUTE_16_GATE_WIDTH EQU 5
-ROUTE_7_SAFFRON_GATE_HEIGHT EQU 4
-ROUTE_7_SAFFRON_GATE_WIDTH EQU 5
-ROUTE_17_18_GATE_HEIGHT EQU 4
-ROUTE_17_18_GATE_WIDTH EQU 5
-ROUTE_40_HEIGHT EQU 18
-ROUTE_40_WIDTH EQU 10
-ROUTE_41_HEIGHT EQU 27
-ROUTE_41_WIDTH EQU 25
-CIANWOOD_CITY_HEIGHT EQU 27
-CIANWOOD_CITY_WIDTH EQU 15
-MANIAS_HOUSE_HEIGHT EQU 4
-MANIAS_HOUSE_WIDTH EQU 4
-CIANWOOD_GYM_HEIGHT EQU 9
-CIANWOOD_GYM_WIDTH EQU 5
-CIANWOOD_POKECENTER_1F_HEIGHT EQU 4
-CIANWOOD_POKECENTER_1F_WIDTH EQU 5
-CIANWOOD_PHARMACY_HEIGHT EQU 4
-CIANWOOD_PHARMACY_WIDTH EQU 4
-CIANWOOD_CITY_PHOTO_STUDIO_HEIGHT EQU 4
-CIANWOOD_CITY_PHOTO_STUDIO_WIDTH EQU 4
-CIANWOOD_LUGIA_SPEECH_HOUSE_HEIGHT EQU 4
-CIANWOOD_LUGIA_SPEECH_HOUSE_WIDTH EQU 4
-POKE_SEERS_HOUSE_HEIGHT EQU 4
-POKE_SEERS_HOUSE_WIDTH EQU 4
-BATTLE_TOWER_1F_HEIGHT EQU 5
-BATTLE_TOWER_1F_WIDTH EQU 8
-BATTLE_TOWER_BATTLE_ROOM_HEIGHT EQU 4
-BATTLE_TOWER_BATTLE_ROOM_WIDTH EQU 4
-BATTLE_TOWER_ELEVATOR_HEIGHT EQU 2
-BATTLE_TOWER_ELEVATOR_WIDTH EQU 2
-BATTLE_TOWER_HALLWAY_HEIGHT EQU 2
-BATTLE_TOWER_HALLWAY_WIDTH EQU 11
-ROUTE_40_BATTLE_TOWER_GATE_HEIGHT EQU 4
-ROUTE_40_BATTLE_TOWER_GATE_WIDTH EQU 5
-BATTLE_TOWER_OUTSIDE_HEIGHT EQU 14
-BATTLE_TOWER_OUTSIDE_WIDTH EQU 10
-ROUTE_2_HEIGHT EQU 27
-ROUTE_2_WIDTH EQU 10
-ROUTE_22_HEIGHT EQU 9
-ROUTE_22_WIDTH EQU 20
-VIRIDIAN_CITY_HEIGHT EQU 18
-VIRIDIAN_CITY_WIDTH EQU 20
-VIRIDIAN_GYM_HEIGHT EQU 9
-VIRIDIAN_GYM_WIDTH EQU 5
-VIRIDIAN_NICKNAME_SPEECH_HOUSE_HEIGHT EQU 4
-VIRIDIAN_NICKNAME_SPEECH_HOUSE_WIDTH EQU 4
-TRAINER_HOUSE_1F_HEIGHT EQU 7
-TRAINER_HOUSE_1F_WIDTH EQU 5
-TRAINER_HOUSE_B1F_HEIGHT EQU 8
-TRAINER_HOUSE_B1F_WIDTH EQU 5
-VIRIDIAN_MART_HEIGHT EQU 4
-VIRIDIAN_MART_WIDTH EQU 6
-VIRIDIAN_POKECENTER_1F_HEIGHT EQU 4
-VIRIDIAN_POKECENTER_1F_WIDTH EQU 5
-VIRIDIAN_POKECENTER_2F_BETA_HEIGHT EQU 4
-VIRIDIAN_POKECENTER_2F_BETA_WIDTH EQU 8
-ROUTE_2_NUGGET_SPEECH_HOUSE_HEIGHT EQU 4
-ROUTE_2_NUGGET_SPEECH_HOUSE_WIDTH EQU 4
-ROUTE_2_GATE_HEIGHT EQU 4
-ROUTE_2_GATE_WIDTH EQU 5
-VICTORY_ROAD_GATE_HEIGHT EQU 9
-VICTORY_ROAD_GATE_WIDTH EQU 10
-ROUTE_26_HEIGHT EQU 54
-ROUTE_26_WIDTH EQU 10
-ROUTE_27_HEIGHT EQU 9
-ROUTE_27_WIDTH EQU 40
-ROUTE_29_HEIGHT EQU 9
-ROUTE_29_WIDTH EQU 30
-NEW_BARK_TOWN_HEIGHT EQU 9
-NEW_BARK_TOWN_WIDTH EQU 10
-ELMS_LAB_HEIGHT EQU 6
-ELMS_LAB_WIDTH EQU 5
-KRISS_HOUSE_1F_HEIGHT EQU 4
-KRISS_HOUSE_1F_WIDTH EQU 5
-KRISS_HOUSE_2F_HEIGHT EQU 3
-KRISS_HOUSE_2F_WIDTH EQU 4
-KRISS_NEIGHBORS_HOUSE_HEIGHT EQU 4
-KRISS_NEIGHBORS_HOUSE_WIDTH EQU 4
-ELMS_HOUSE_HEIGHT EQU 4
-ELMS_HOUSE_WIDTH EQU 4
-ROUTE_26_HEAL_SPEECH_HOUSE_HEIGHT EQU 4
-ROUTE_26_HEAL_SPEECH_HOUSE_WIDTH EQU 4
-ROUTE_26_DAY_OF_WEEK_SIBLINGS_HOUSE_HEIGHT EQU 4
-ROUTE_26_DAY_OF_WEEK_SIBLINGS_HOUSE_WIDTH EQU 4
-ROUTE_27_SANDSTORM_HOUSE_HEIGHT EQU 4
-ROUTE_27_SANDSTORM_HOUSE_WIDTH EQU 4
-ROUTE_29_46_GATE_HEIGHT EQU 4
-ROUTE_29_46_GATE_WIDTH EQU 5
-ROUTE_5_HEIGHT EQU 9
-ROUTE_5_WIDTH EQU 10
-SAFFRON_CITY_HEIGHT EQU 18
-SAFFRON_CITY_WIDTH EQU 20
-FIGHTING_DOJO_HEIGHT EQU 6
-FIGHTING_DOJO_WIDTH EQU 5
-SAFFRON_GYM_HEIGHT EQU 9
-SAFFRON_GYM_WIDTH EQU 10
-SAFFRON_MART_HEIGHT EQU 4
-SAFFRON_MART_WIDTH EQU 6
-SAFFRON_POKECENTER_1F_HEIGHT EQU 4
-SAFFRON_POKECENTER_1F_WIDTH EQU 5
-SAFFRON_POKECENTER_2F_BETA_HEIGHT EQU 4
-SAFFRON_POKECENTER_2F_BETA_WIDTH EQU 8
-MR_PSYCHICS_HOUSE_HEIGHT EQU 4
-MR_PSYCHICS_HOUSE_WIDTH EQU 4
-SAFFRON_TRAIN_STATION_HEIGHT EQU 9
-SAFFRON_TRAIN_STATION_WIDTH EQU 10
-SILPH_CO_1F_HEIGHT EQU 4
-SILPH_CO_1F_WIDTH EQU 8
-COPYCATS_HOUSE_1F_HEIGHT EQU 4
-COPYCATS_HOUSE_1F_WIDTH EQU 4
-COPYCATS_HOUSE_2F_HEIGHT EQU 3
-COPYCATS_HOUSE_2F_WIDTH EQU 5
-ROUTE_5_UNDERGROUND_ENTRANCE_HEIGHT EQU 4
-ROUTE_5_UNDERGROUND_ENTRANCE_WIDTH EQU 4
-ROUTE_5_SAFFRON_CITY_GATE_HEIGHT EQU 4
-ROUTE_5_SAFFRON_CITY_GATE_WIDTH EQU 5
-ROUTE_5_CLEANSE_TAG_SPEECH_HOUSE_HEIGHT EQU 4
-ROUTE_5_CLEANSE_TAG_SPEECH_HOUSE_WIDTH EQU 4
-ROUTE_30_HEIGHT EQU 27
-ROUTE_30_WIDTH EQU 10
-ROUTE_31_HEIGHT EQU 9
-ROUTE_31_WIDTH EQU 20
-CHERRYGROVE_CITY_HEIGHT EQU 9
-CHERRYGROVE_CITY_WIDTH EQU 20
-CHERRYGROVE_MART_HEIGHT EQU 4
-CHERRYGROVE_MART_WIDTH EQU 6
-CHERRYGROVE_POKECENTER_1F_HEIGHT EQU 4
-CHERRYGROVE_POKECENTER_1F_WIDTH EQU 5
-CHERRYGROVE_GYM_SPEECH_HOUSE_HEIGHT EQU 4
-CHERRYGROVE_GYM_SPEECH_HOUSE_WIDTH EQU 4
-GUIDE_GENTS_HOUSE_HEIGHT EQU 4
-GUIDE_GENTS_HOUSE_WIDTH EQU 4
-CHERRYGROVE_EVOLUTION_SPEECH_HOUSE_HEIGHT EQU 4
-CHERRYGROVE_EVOLUTION_SPEECH_HOUSE_WIDTH EQU 4
-ROUTE_30_BERRY_SPEECH_HOUSE_HEIGHT EQU 4
-ROUTE_30_BERRY_SPEECH_HOUSE_WIDTH EQU 4
-MR_POKEMONS_HOUSE_HEIGHT EQU 4
-MR_POKEMONS_HOUSE_WIDTH EQU 4
-ROUTE_31_VIOLET_GATE_HEIGHT EQU 4
-ROUTE_31_VIOLET_GATE_WIDTH EQU 5
+	newgroup
+	mapgroup ECRUTEAK_HOUSE, 9, 10
+	mapgroup WISE_TRIOS_ROOM, 4, 4
+	mapgroup ECRUTEAK_POKECENTER_1F, 4, 5
+	mapgroup ECRUTEAK_LUGIA_SPEECH_HOUSE, 4, 4
+	mapgroup DANCE_THEATRE, 7, 6
+	mapgroup ECRUTEAK_MART, 4, 6
+	mapgroup ECRUTEAK_GYM, 9, 5
+	mapgroup ECRUTEAK_ITEMFINDER_HOUSE, 4, 4
+	mapgroup ECRUTEAK_CITY, 18, 20
+
+	newgroup
+	mapgroup BLACKTHORN_GYM_1F, 9, 5
+	mapgroup BLACKTHORN_GYM_2F, 9, 5
+	mapgroup BLACKTHORN_DRAGON_SPEECH_HOUSE, 4, 4
+	mapgroup BLACKTHORN_DODRIO_TRADE_HOUSE, 4, 4
+	mapgroup BLACKTHORN_MART, 4, 6
+	mapgroup BLACKTHORN_POKECENTER_1F, 4, 5
+	mapgroup MOVE_DELETERS_HOUSE, 4, 4
+	mapgroup ROUTE_45, 45, 10
+	mapgroup ROUTE_46, 18, 10
+	mapgroup BLACKTHORN_CITY, 18, 20
+
+	newgroup
+	mapgroup CINNABAR_POKECENTER_1F, 4, 5
+	mapgroup CINNABAR_POKECENTER_2F_BETA, 4, 8
+	mapgroup ROUTE_19___FUCHSIA_GATE, 4, 5
+	mapgroup SEAFOAM_GYM, 4, 5
+	mapgroup ROUTE_19, 18, 10
+	mapgroup ROUTE_20, 9, 30
+	mapgroup ROUTE_21, 18, 10
+	mapgroup CINNABAR_ISLAND, 9, 10
+
+	newgroup
+	mapgroup CERULEAN_GYM_BADGE_SPEECH_HOUSE, 4, 4
+	mapgroup CERULEAN_POLICE_STATION, 4, 4
+	mapgroup CERULEAN_TRADE_SPEECH_HOUSE, 4, 4
+	mapgroup CERULEAN_POKECENTER_1F, 4, 5
+	mapgroup CERULEAN_POKECENTER_2F_BETA, 4, 8
+	mapgroup CERULEAN_GYM, 8, 5
+	mapgroup CERULEAN_MART, 4, 6
+	mapgroup ROUTE_10_POKECENTER_1F, 4, 5
+	mapgroup ROUTE_10_POKECENTER_2F_BETA, 4, 8
+	mapgroup POWER_PLANT, 9, 10
+	mapgroup BILLS_HOUSE, 4, 4
+	mapgroup ROUTE_4, 9, 20
+	mapgroup ROUTE_9, 9, 30
+	mapgroup ROUTE_10_NORTH, 9, 10
+	mapgroup ROUTE_24, 9, 10
+	mapgroup ROUTE_25, 9, 30
+	mapgroup CERULEAN_CITY, 18, 20
+
+	newgroup
+	mapgroup AZALEA_POKECENTER_1F, 4, 5
+	mapgroup CHARCOAL_KILN, 4, 4
+	mapgroup AZALEA_MART, 4, 6
+	mapgroup KURTS_HOUSE, 4, 8
+	mapgroup AZALEA_GYM, 8, 5
+	mapgroup ROUTE_33, 9, 10
+	mapgroup AZALEA_TOWN, 9, 20
+
+	newgroup
+	mapgroup LAKE_OF_RAGE_HIDDEN_POWER_HOUSE, 4, 4
+	mapgroup LAKE_OF_RAGE_MAGIKARP_HOUSE, 4, 4
+	mapgroup ROUTE_43_MAHOGANY_GATE, 4, 5
+	mapgroup ROUTE_43_GATE, 4, 5
+	mapgroup ROUTE_43, 27, 10
+	mapgroup LAKE_OF_RAGE, 18, 20
+
+	newgroup
+	mapgroup ROUTE_32, 45, 10
+	mapgroup ROUTE_35, 18, 10
+	mapgroup ROUTE_36, 9, 30
+	mapgroup ROUTE_37, 9, 10
+	mapgroup VIOLET_CITY, 18, 20
+	mapgroup VIOLET_MART, 4, 6
+	mapgroup VIOLET_GYM, 8, 5
+	mapgroup EARLS_POKEMON_ACADEMY, 8, 4
+	mapgroup VIOLET_NICKNAME_SPEECH_HOUSE, 4, 4
+	mapgroup VIOLET_POKECENTER_1F, 4, 5
+	mapgroup VIOLET_ONIX_TRADE_HOUSE, 4, 4
+	mapgroup ROUTE_32_RUINS_OF_ALPH_GATE, 4, 5
+	mapgroup ROUTE_32_POKECENTER_1F, 4, 5
+	mapgroup ROUTE_35_GOLDENROD_GATE, 4, 5
+	mapgroup ROUTE_35_NATIONAL_PARK_GATE, 4, 4
+	mapgroup ROUTE_36_RUINS_OF_ALPH_GATE, 4, 5
+	mapgroup ROUTE_36_NATIONAL_PARK_GATE, 4, 5
+
+	newgroup
+	mapgroup ROUTE_34, 27, 10
+	mapgroup GOLDENROD_CITY, 18, 20
+	mapgroup GOLDENROD_GYM, 9, 10
+	mapgroup GOLDENROD_BIKE_SHOP, 4, 4
+	mapgroup GOLDENROD_HAPPINESS_RATER, 4, 4
+	mapgroup GOLDENROD_BILLS_HOUSE, 4, 4
+	mapgroup GOLDENROD_MAGNET_TRAIN_STATION, 9, 10
+	mapgroup GOLDENROD_FLOWER_SHOP, 4, 4
+	mapgroup GOLDENROD_PP_SPEECH_HOUSE, 4, 4
+	mapgroup GOLDENROD_NAME_RATERS_HOUSE, 4, 4
+	mapgroup GOLDENROD_DEPT_STORE_1F, 4, 8
+	mapgroup GOLDENROD_DEPT_STORE_2F, 4, 8
+	mapgroup GOLDENROD_DEPT_STORE_3F, 4, 8
+	mapgroup GOLDENROD_DEPT_STORE_4F, 4, 8
+	mapgroup GOLDENROD_DEPT_STORE_5F, 4, 8
+	mapgroup GOLDENROD_DEPT_STORE_6F, 4, 8
+	mapgroup GOLDENROD_DEPT_STORE_ELEVATOR, 2, 2
+	mapgroup GOLDENROD_DEPT_STORE_ROOF, 4, 8
+	mapgroup GOLDENROD_GAME_CORNER, 7, 10
+	mapgroup GOLDENROD_POKECENTER_1F, 4, 5
+	mapgroup GOLDENROD_POKECOM_CENTER_2F_MOBILE, 16, 16
+	mapgroup ILEX_FOREST_AZALEA_GATE, 4, 5
+	mapgroup ROUTE_34_ILEX_FOREST_GATE, 4, 5
+	mapgroup DAYCARE, 4, 5
+
+	newgroup
+	mapgroup ROUTE_6, 9, 10
+	mapgroup ROUTE_11, 9, 20
+	mapgroup VERMILION_CITY, 18, 20
+	mapgroup VERMILION_HOUSE_FISHING_SPEECH_HOUSE, 4, 4
+	mapgroup VERMILION_POKECENTER_1F, 4, 5
+	mapgroup VERMILION_POKECENTER_2F_BETA, 4, 8
+	mapgroup POKEMON_FAN_CLUB, 4, 5
+	mapgroup VERMILION_MAGNET_TRAIN_SPEECH_HOUSE, 4, 4
+	mapgroup VERMILION_MART, 4, 6
+	mapgroup VERMILION_HOUSE_DIGLETTS_CAVE_SPEECH_HOUSE, 4, 4
+	mapgroup VERMILION_GYM, 9, 5
+	mapgroup ROUTE_6_SAFFRON_GATE, 4, 5
+	mapgroup ROUTE_6_UNDERGROUND_ENTRANCE, 4, 4
+
+	newgroup
+	mapgroup ROUTE_1, 18, 10
+	mapgroup PALLET_TOWN, 9, 10
+	mapgroup REDS_HOUSE_1F, 4, 4
+	mapgroup REDS_HOUSE_2F, 4, 4
+	mapgroup BLUES_HOUSE, 4, 4
+	mapgroup OAKS_LAB, 6, 5
+
+	newgroup
+	mapgroup ROUTE_3, 9, 30
+	mapgroup PEWTER_CITY, 18, 20
+	mapgroup PEWTER_NIDORAN_SPEECH_HOUSE, 4, 4
+	mapgroup PEWTER_GYM, 7, 5
+	mapgroup PEWTER_MART, 4, 6
+	mapgroup PEWTER_POKECENTER_1F, 4, 5
+	mapgroup PEWTER_POKECENTER_2F_BETA, 4, 8
+	mapgroup PEWTER_SNOOZE_SPEECH_HOUSE, 4, 4
+
+	newgroup
+	mapgroup OLIVINE_PORT, 18, 10
+	mapgroup VERMILION_PORT, 18, 10
+	mapgroup FAST_SHIP_1F, 9, 16
+	mapgroup FAST_SHIP_CABINS_NNW_NNE_NE, 16, 4
+	mapgroup FAST_SHIP_CABINS_SW_SSW_NW, 16, 4
+	mapgroup FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN, 17, 5
+	mapgroup FAST_SHIP_B1F, 8, 16
+	mapgroup OLIVINE_PORT_PASSAGE, 9, 10
+	mapgroup VERMILION_PORT_PASSAGE, 9, 10
+	mapgroup MOUNT_MOON_SQUARE, 9, 15
+	mapgroup MOUNT_MOON_GIFT_SHOP, 4, 4
+	mapgroup TIN_TOWER_ROOF, 9, 10
+
+	newgroup
+	mapgroup ROUTE_23, 9, 10
+	mapgroup INDIGO_PLATEAU_POKECENTER_1F, 7, 9
+	mapgroup WILLS_ROOM, 9, 5
+	mapgroup KOGAS_ROOM, 9, 5
+	mapgroup BRUNOS_ROOM, 9, 5
+	mapgroup KARENS_ROOM, 9, 5
+	mapgroup LANCES_ROOM, 12, 5
+	mapgroup HALL_OF_FAME, 7, 5
+
+	newgroup
+	mapgroup ROUTE_13, 9, 30
+	mapgroup ROUTE_14, 18, 10
+	mapgroup ROUTE_15, 9, 20
+	mapgroup ROUTE_18, 9, 10
+	mapgroup FUCHSIA_CITY, 18, 20
+	mapgroup FUCHSIA_MART, 4, 6
+	mapgroup SAFARI_ZONE_MAIN_OFFICE, 4, 4
+	mapgroup FUCHSIA_GYM, 9, 5
+	mapgroup FUCHSIA_BILL_SPEECH_HOUSE, 4, 4
+	mapgroup FUCHSIA_POKECENTER_1F, 4, 5
+	mapgroup FUCHSIA_POKECENTER_2F_BETA, 4, 8
+	mapgroup SAFARI_ZONE_WARDENS_HOME, 4, 5
+	mapgroup ROUTE_15_FUCHSIA_GATE, 4, 5
+
+	newgroup
+	mapgroup ROUTE_8, 9, 20
+	mapgroup ROUTE_12, 27, 10
+	mapgroup ROUTE_10_SOUTH, 9, 10
+	mapgroup LAVENDER_TOWN, 9, 10
+	mapgroup LAVENDER_POKECENTER_1F, 4, 5
+	mapgroup LAVENDER_POKECENTER_2F_BETA, 4, 8
+	mapgroup MR_FUJIS_HOUSE, 4, 5
+	mapgroup LAVENDER_TOWN_SPEECH_HOUSE, 4, 4
+	mapgroup LAVENDER_NAME_RATER, 4, 4
+	mapgroup LAVENDER_MART, 4, 6
+	mapgroup SOUL_HOUSE, 4, 5
+	mapgroup LAV_RADIO_TOWER_1F, 4, 10
+	mapgroup ROUTE_8_SAFFRON_GATE, 4, 5
+	mapgroup ROUTE_12_SUPER_ROD_HOUSE, 4, 4
+
+	newgroup
+	mapgroup ROUTE_28, 9, 20
+	mapgroup SILVER_CAVE_OUTSIDE, 18, 20
+	mapgroup SILVER_CAVE_POKECENTER_1F, 4, 5
+	mapgroup ROUTE_28_FAMOUS_SPEECH_HOUSE, 4, 4
+
+	newgroup
+	mapgroup POKECENTER_2F, 4, 8
+	mapgroup TRADE_CENTER, 4, 5
+	mapgroup COLOSSEUM, 4, 5
+	mapgroup TIME_CAPSULE, 4, 5
+	mapgroup MOBILE_TRADE_ROOM_MOBILE, 4, 5
+	mapgroup MOBILE_BATTLE_ROOM, 4, 5
+
+	newgroup
+	mapgroup ROUTE_7, 9, 10
+	mapgroup ROUTE_16, 9, 10
+	mapgroup ROUTE_17, 45, 10
+	mapgroup CELADON_CITY, 18, 20
+	mapgroup CELADON_DEPT_STORE_1F, 4, 8
+	mapgroup CELADON_DEPT_STORE_2F, 4, 8
+	mapgroup CELADON_DEPT_STORE_3F, 4, 8
+	mapgroup CELADON_DEPT_STORE_4F, 4, 8
+	mapgroup CELADON_DEPT_STORE_5F, 4, 8
+	mapgroup CELADON_DEPT_STORE_6F, 4, 8
+	mapgroup CELADON_DEPT_STORE_ELEVATOR, 2, 2
+	mapgroup CELADON_MANSION_1F, 5, 4
+	mapgroup CELADON_MANSION_2F, 5, 4
+	mapgroup CELADON_MANSION_3F, 5, 4
+	mapgroup CELADON_MANSION_ROOF, 5, 4
+	mapgroup CELADON_MANSION_ROOF_HOUSE, 4, 4
+	mapgroup CELADON_POKECENTER_1F, 4, 5
+	mapgroup CELADON_POKECENTER_2F_BETA, 4, 8
+	mapgroup CELADON_GAME_CORNER, 7, 10
+	mapgroup CELADON_GAME_CORNER_PRIZE_ROOM, 3, 3
+	mapgroup CELADON_GYM, 9, 5
+	mapgroup CELADON_CAFE, 4, 6
+	mapgroup ROUTE_16_FUCHSIA_SPEECH_HOUSE, 4, 4
+	mapgroup ROUTE_16_GATE, 4, 5
+	mapgroup ROUTE_7_SAFFRON_GATE, 4, 5
+	mapgroup ROUTE_17_18_GATE, 4, 5
+
+	newgroup
+	mapgroup ROUTE_40, 18, 10
+	mapgroup ROUTE_41, 27, 25
+	mapgroup CIANWOOD_CITY, 27, 15
+	mapgroup MANIAS_HOUSE, 4, 4
+	mapgroup CIANWOOD_GYM, 9, 5
+	mapgroup CIANWOOD_POKECENTER_1F, 4, 5
+	mapgroup CIANWOOD_PHARMACY, 4, 4
+	mapgroup CIANWOOD_CITY_PHOTO_STUDIO, 4, 4
+	mapgroup CIANWOOD_LUGIA_SPEECH_HOUSE, 4, 4
+	mapgroup POKE_SEERS_HOUSE, 4, 4
+	mapgroup BATTLE_TOWER_1F, 5, 8
+	mapgroup BATTLE_TOWER_BATTLE_ROOM, 4, 4
+	mapgroup BATTLE_TOWER_ELEVATOR, 2, 2
+	mapgroup BATTLE_TOWER_HALLWAY, 2, 11
+	mapgroup ROUTE_40_BATTLE_TOWER_GATE, 4, 5
+	mapgroup BATTLE_TOWER_OUTSIDE, 14, 10
+
+	newgroup
+	mapgroup ROUTE_2, 27, 10
+	mapgroup ROUTE_22, 9, 20
+	mapgroup VIRIDIAN_CITY, 18, 20
+	mapgroup VIRIDIAN_GYM, 9, 5
+	mapgroup VIRIDIAN_NICKNAME_SPEECH_HOUSE, 4, 4
+	mapgroup TRAINER_HOUSE_1F, 7, 5
+	mapgroup TRAINER_HOUSE_B1F, 8, 5
+	mapgroup VIRIDIAN_MART, 4, 6
+	mapgroup VIRIDIAN_POKECENTER_1F, 4, 5
+	mapgroup VIRIDIAN_POKECENTER_2F_BETA, 4, 8
+	mapgroup ROUTE_2_NUGGET_SPEECH_HOUSE, 4, 4
+	mapgroup ROUTE_2_GATE, 4, 5
+	mapgroup VICTORY_ROAD_GATE, 9, 10
 
+	newgroup
+	mapgroup ROUTE_26, 54, 10
+	mapgroup ROUTE_27, 9, 40
+	mapgroup ROUTE_29, 9, 30
+	mapgroup NEW_BARK_TOWN, 9, 10
+	mapgroup ELMS_LAB, 6, 5
+	mapgroup KRISS_HOUSE_1F, 4, 5
+	mapgroup KRISS_HOUSE_2F, 3, 4
+	mapgroup KRISS_NEIGHBORS_HOUSE, 4, 4
+	mapgroup ELMS_HOUSE, 4, 4
+	mapgroup ROUTE_26_HEAL_SPEECH_HOUSE, 4, 4
+	mapgroup ROUTE_26_DAY_OF_WEEK_SIBLINGS_HOUSE, 4, 4
+	mapgroup ROUTE_27_SANDSTORM_HOUSE, 4, 4
+	mapgroup ROUTE_29_46_GATE, 4, 5
+
+	newgroup
+	mapgroup ROUTE_5, 9, 10
+	mapgroup SAFFRON_CITY, 18, 20
+	mapgroup FIGHTING_DOJO, 6, 5
+	mapgroup SAFFRON_GYM, 9, 10
+	mapgroup SAFFRON_MART, 4, 6
+	mapgroup SAFFRON_POKECENTER_1F, 4, 5
+	mapgroup SAFFRON_POKECENTER_2F_BETA, 4, 8
+	mapgroup MR_PSYCHICS_HOUSE, 4, 4
+	mapgroup SAFFRON_TRAIN_STATION, 9, 10
+	mapgroup SILPH_CO_1F, 4, 8
+	mapgroup COPYCATS_HOUSE_1F, 4, 4
+	mapgroup COPYCATS_HOUSE_2F, 3, 5
+	mapgroup ROUTE_5_UNDERGROUND_ENTRANCE, 4, 4
+	mapgroup ROUTE_5_SAFFRON_CITY_GATE, 4, 5
+	mapgroup ROUTE_5_CLEANSE_TAG_SPEECH_HOUSE, 4, 4
+
+	newgroup
+	mapgroup ROUTE_30, 27, 10
+	mapgroup ROUTE_31, 9, 20
+	mapgroup CHERRYGROVE_CITY, 9, 20
+	mapgroup CHERRYGROVE_MART, 4, 6
+	mapgroup CHERRYGROVE_POKECENTER_1F, 4, 5
+	mapgroup CHERRYGROVE_GYM_SPEECH_HOUSE, 4, 4
+	mapgroup GUIDE_GENTS_HOUSE, 4, 4
+	mapgroup CHERRYGROVE_EVOLUTION_SPEECH_HOUSE, 4, 4
+	mapgroup ROUTE_30_BERRY_SPEECH_HOUSE, 4, 4
+	mapgroup MR_POKEMONS_HOUSE, 4, 4
+	mapgroup ROUTE_31_VIOLET_GATE, 4, 5
+
 ; elevator floors
-_B4F  EQU $0
-_B3F  EQU $1
-_B2F  EQU $2
-_B1F  EQU $3
-_1F   EQU $4
-_2F   EQU $5
-_3F   EQU $6
-_4F   EQU $7
-_5F   EQU $8
-_6F   EQU $9
-_7F   EQU $a
-_8F   EQU $b
-_9F   EQU $c
-_10F  EQU $d
-_11F  EQU $e
-_ROOF EQU $f
 
+	const_def
+	const _B4F
+	const _B3F
+	const _B2F
+	const _B1F
+	const _1F
+	const _2F
+	const _3F
+	const _4F
+	const _5F
+	const _6F
+	const _7F
+	const _8F
+	const _9F
+	const _10F
+	const _11F
+	const _ROOF
+
 ; connection directions
-EAST EQU 1
-WEST EQU 2
-SOUTH EQU 4
-NORTH EQU 8
 
+	const_def
+	shift_const EAST
+	shift_const WEST
+	shift_const SOUTH
+	shift_const NORTH
+
 ; sprites
-SPRITE_CHRIS                 EQU $01
-SPRITE_CHRIS_BIKE            EQU $02
-SPRITE_GAMEBOY_KID           EQU $03
-SPRITE_SILVER                EQU $04
-SPRITE_OAK                   EQU $05
-SPRITE_RED                   EQU $06
-SPRITE_BLUE                  EQU $07
-SPRITE_BILL                  EQU $08
-SPRITE_ELDER                 EQU $09
-SPRITE_JANINE                EQU $0a
-SPRITE_KURT                  EQU $0b
-SPRITE_MOM                   EQU $0c
-SPRITE_BLAINE                EQU $0d
-SPRITE_REDS_MOM              EQU $0e
-SPRITE_DAISY                 EQU $0f
-SPRITE_ELM                   EQU $10
-SPRITE_WILL                  EQU $11
-SPRITE_FALKNER               EQU $12
-SPRITE_WHITNEY               EQU $13
-SPRITE_BUGSY                 EQU $14
-SPRITE_MORTY                 EQU $15
-SPRITE_CHUCK                 EQU $16
-SPRITE_JASMINE               EQU $17
-SPRITE_PRYCE                 EQU $18
-SPRITE_CLAIR                 EQU $19
-SPRITE_BROCK                 EQU $1a
-SPRITE_KAREN                 EQU $1b
-SPRITE_BRUNO                 EQU $1c
-SPRITE_MISTY                 EQU $1d
-SPRITE_LANCE                 EQU $1e
-SPRITE_SURGE                 EQU $1f
-SPRITE_ERIKA                 EQU $20
-SPRITE_KOGA                  EQU $21
-SPRITE_SABRINA               EQU $22
-SPRITE_COOLTRAINER_M         EQU $23
-SPRITE_COOLTRAINER_F         EQU $24
-SPRITE_BUG_CATCHER           EQU $25
-SPRITE_TWIN                  EQU $26
-SPRITE_YOUNGSTER             EQU $27
-SPRITE_LASS                  EQU $28
-SPRITE_TEACHER               EQU $29
-SPRITE_BUENA                 EQU $2a
-SPRITE_SUPER_NERD            EQU $2b
-SPRITE_ROCKER                EQU $2c
-SPRITE_POKEFAN_M             EQU $2d
-SPRITE_POKEFAN_F             EQU $2e
-SPRITE_GRAMPS                EQU $2f
-SPRITE_GRANNY                EQU $30
-SPRITE_SWIMMER_GUY           EQU $31
-SPRITE_SWIMMER_GIRL          EQU $32
-SPRITE_BIG_SNORLAX           EQU $33
-SPRITE_SURFING_PIKACHU       EQU $34
-SPRITE_ROCKET                EQU $35
-SPRITE_ROCKET_GIRL           EQU $36
-SPRITE_NURSE                 EQU $37
-SPRITE_LINK_RECEPTIONIST     EQU $38
-SPRITE_CLERK                 EQU $39
-SPRITE_FISHER                EQU $3a
-SPRITE_FISHING_GURU          EQU $3b
-SPRITE_SCIENTIST             EQU $3c
-SPRITE_KIMONO_GIRL           EQU $3d
-SPRITE_SAGE                  EQU $3e
-SPRITE_UNUSED_GUY            EQU $3f
-SPRITE_GENTLEMAN             EQU $40
-SPRITE_BLACK_BELT            EQU $41
-SPRITE_RECEPTIONIST          EQU $42
-SPRITE_OFFICER               EQU $43
-SPRITE_CAL                   EQU $44
-SPRITE_SLOWPOKE              EQU $45
-SPRITE_CAPTAIN               EQU $46
-SPRITE_BIG_LAPRAS            EQU $47
-SPRITE_GYM_GUY               EQU $48
-SPRITE_SAILOR                EQU $49
-SPRITE_BIKER                 EQU $4a
-SPRITE_PHARMACIST            EQU $4b
-SPRITE_MONSTER               EQU $4c
-SPRITE_FAIRY                 EQU $4d
-SPRITE_BIRD                  EQU $4e
-SPRITE_DRAGON                EQU $4f
-SPRITE_BIG_ONIX              EQU $50
-SPRITE_N64                   EQU $51
-SPRITE_SUDOWOODO             EQU $52
-SPRITE_SURF                  EQU $53
-SPRITE_POKE_BALL             EQU $54
-SPRITE_POKEDEX               EQU $55
-SPRITE_PAPER                 EQU $56
-SPRITE_VIRTUAL_BOY           EQU $57
-SPRITE_OLD_LINK_RECEPTIONIST EQU $58
-SPRITE_ROCK                  EQU $59
-SPRITE_BOULDER               EQU $5a
-SPRITE_SNES                  EQU $5b
-SPRITE_FAMICOM               EQU $5c
-SPRITE_FRUIT_TREE            EQU $5d
-SPRITE_GOLD_TROPHY           EQU $5e
-SPRITE_SILVER_TROPHY         EQU $5f
-SPRITE_KRIS                  EQU $60
-SPRITE_KRIS_BIKE             EQU $61
-SPRITE_KURT_OUTSIDE          EQU $62
-SPRITE_SUICUNE               EQU $63
-SPRITE_ENTEI                 EQU $64
-SPRITE_RAIKOU                EQU $65
-SPRITE_STANDING_YOUNGSTER    EQU $66
+	const_def
+	const SPRITE_NONE ; 00
+	const SPRITE_CHRIS ; 01
+	const SPRITE_CHRIS_BIKE ; 02
+	const SPRITE_GAMEBOY_KID ; 03
+	const SPRITE_SILVER ; 04
+	const SPRITE_OAK ; 05
+	const SPRITE_RED ; 06
+	const SPRITE_BLUE ; 07
+	const SPRITE_BILL ; 08
+	const SPRITE_ELDER ; 09
+	const SPRITE_JANINE ; 0a
+	const SPRITE_KURT ; 0b
+	const SPRITE_MOM ; 0c
+	const SPRITE_BLAINE ; 0d
+	const SPRITE_REDS_MOM ; 0e
+	const SPRITE_DAISY ; 0f
+	const SPRITE_ELM ; 10
+	const SPRITE_WILL ; 11
+	const SPRITE_FALKNER ; 12
+	const SPRITE_WHITNEY ; 13
+	const SPRITE_BUGSY ; 14
+	const SPRITE_MORTY ; 15
+	const SPRITE_CHUCK ; 16
+	const SPRITE_JASMINE ; 17
+	const SPRITE_PRYCE ; 18
+	const SPRITE_CLAIR ; 19
+	const SPRITE_BROCK ; 1a
+	const SPRITE_KAREN ; 1b
+	const SPRITE_BRUNO ; 1c
+	const SPRITE_MISTY ; 1d
+	const SPRITE_LANCE ; 1e
+	const SPRITE_SURGE ; 1f
+	const SPRITE_ERIKA ; 20
+	const SPRITE_KOGA ; 21
+	const SPRITE_SABRINA ; 22
+	const SPRITE_COOLTRAINER_M ; 23
+	const SPRITE_COOLTRAINER_F ; 24
+	const SPRITE_BUG_CATCHER ; 25
+	const SPRITE_TWIN ; 26
+	const SPRITE_YOUNGSTER ; 27
+	const SPRITE_LASS ; 28
+	const SPRITE_TEACHER ; 29
+	const SPRITE_BUENA ; 2a
+	const SPRITE_SUPER_NERD ; 2b
+	const SPRITE_ROCKER ; 2c
+	const SPRITE_POKEFAN_M ; 2d
+	const SPRITE_POKEFAN_F ; 2e
+	const SPRITE_GRAMPS ; 2f
+	const SPRITE_GRANNY ; 30
+	const SPRITE_SWIMMER_GUY ; 31
+	const SPRITE_SWIMMER_GIRL ; 32
+	const SPRITE_BIG_SNORLAX ; 33
+	const SPRITE_SURFING_PIKACHU ; 34
+	const SPRITE_ROCKET ; 35
+	const SPRITE_ROCKET_GIRL ; 36
+	const SPRITE_NURSE ; 37
+	const SPRITE_LINK_RECEPTIONIST ; 38
+	const SPRITE_CLERK ; 39
+	const SPRITE_FISHER ; 3a
+	const SPRITE_FISHING_GURU ; 3b
+	const SPRITE_SCIENTIST ; 3c
+	const SPRITE_KIMONO_GIRL ; 3d
+	const SPRITE_SAGE ; 3e
+	const SPRITE_UNUSED_GUY ; 3f
+	const SPRITE_GENTLEMAN ; 40
+	const SPRITE_BLACK_BELT ; 41
+	const SPRITE_RECEPTIONIST ; 42
+	const SPRITE_OFFICER ; 43
+	const SPRITE_CAL ; 44
+	const SPRITE_SLOWPOKE ; 45
+	const SPRITE_CAPTAIN ; 46
+	const SPRITE_BIG_LAPRAS ; 47
+	const SPRITE_GYM_GUY ; 48
+	const SPRITE_SAILOR ; 49
+	const SPRITE_BIKER ; 4a
+	const SPRITE_PHARMACIST ; 4b
+	const SPRITE_MONSTER ; 4c
+	const SPRITE_FAIRY ; 4d
+	const SPRITE_BIRD ; 4e
+	const SPRITE_DRAGON ; 4f
+	const SPRITE_BIG_ONIX ; 50
+	const SPRITE_N64 ; 51
+	const SPRITE_SUDOWOODO ; 52
+	const SPRITE_SURF ; 53
+	const SPRITE_POKE_BALL ; 54
+	const SPRITE_POKEDEX ; 55
+	const SPRITE_PAPER ; 56
+	const SPRITE_VIRTUAL_BOY ; 57
+	const SPRITE_OLD_LINK_RECEPTIONIST ; 58
+	const SPRITE_ROCK ; 59
+	const SPRITE_BOULDER ; 5a
+	const SPRITE_SNES ; 5b
+	const SPRITE_FAMICOM ; 5c
+	const SPRITE_FRUIT_TREE ; 5d
+	const SPRITE_GOLD_TROPHY ; 5e
+	const SPRITE_SILVER_TROPHY ; 5f
+	const SPRITE_KRIS ; 60
+	const SPRITE_KRIS_BIKE ; 61
+	const SPRITE_KURT_OUTSIDE ; 62
+	const SPRITE_SUICUNE ; 63
+	const SPRITE_ENTEI ; 64
+	const SPRITE_RAIKOU ; 65
+	const SPRITE_STANDING_YOUNGSTER ; 66
 
-SPRITE_POKEMON EQU $80
-SPRITE_UNOWN      EQU $80
-SPRITE_GEODUDE    EQU $81
-SPRITE_GROWLITHE  EQU $82
-SPRITE_WEEDLE     EQU $83
-SPRITE_SHELLDER   EQU $84
-SPRITE_ODDISH     EQU $85
-SPRITE_GENGAR     EQU $86
-SPRITE_ZUBAT      EQU $87
-SPRITE_MAGIKARP   EQU $88
-SPRITE_SQUIRTLE   EQU $89
-SPRITE_TOGEPI     EQU $8a
-SPRITE_BUTTERFREE EQU $8b
-SPRITE_DIGLETT    EQU $8c
-SPRITE_POLIWAG    EQU $8d
-SPRITE_PIKACHU    EQU $8e
-SPRITE_CLEFAIRY   EQU $8f
-SPRITE_CHARMANDER EQU $90
-SPRITE_JYNX       EQU $91
-SPRITE_STARMIE    EQU $92
-SPRITE_BULBASAUR  EQU $93
-SPRITE_JIGGLYPUFF EQU $94
-SPRITE_GRIMER     EQU $95
-SPRITE_EKANS      EQU $96
-SPRITE_PARAS      EQU $97
-SPRITE_TENTACOOL  EQU $98
-SPRITE_TAUROS     EQU $99
-SPRITE_MACHOP     EQU $9a
-SPRITE_VOLTORB    EQU $9b
-SPRITE_LAPRAS     EQU $9c
-SPRITE_RHYDON     EQU $9d
-SPRITE_MOLTRES    EQU $9e
-SPRITE_SNORLAX    EQU $9f
-SPRITE_GYARADOS   EQU $a0
-SPRITE_LUGIA      EQU $a1
-SPRITE_HO_OH      EQU $a2
+const_value SET $80
 
-SPRITE_DAYCARE_MON_1 EQU $e0
-SPRITE_DAYCARE_MON_2 EQU $e1
+SPRITE_POKEMON EQU const_value
+	const SPRITE_UNOWN ; 80
+	const SPRITE_GEODUDE ; 81
+	const SPRITE_GROWLITHE ; 82
+	const SPRITE_WEEDLE ; 83
+	const SPRITE_SHELLDER ; 84
+	const SPRITE_ODDISH ; 85
+	const SPRITE_GENGAR ; 86
+	const SPRITE_ZUBAT ; 87
+	const SPRITE_MAGIKARP ; 88
+	const SPRITE_SQUIRTLE ; 89
+	const SPRITE_TOGEPI ; 8a
+	const SPRITE_BUTTERFREE ; 8b
+	const SPRITE_DIGLETT ; 8c
+	const SPRITE_POLIWAG ; 8d
+	const SPRITE_PIKACHU ; 8e
+	const SPRITE_CLEFAIRY ; 8f
+	const SPRITE_CHARMANDER ; 90
+	const SPRITE_JYNX ; 91
+	const SPRITE_STARMIE ; 92
+	const SPRITE_BULBASAUR ; 93
+	const SPRITE_JIGGLYPUFF ; 94
+	const SPRITE_GRIMER ; 95
+	const SPRITE_EKANS ; 96
+	const SPRITE_PARAS ; 97
+	const SPRITE_TENTACOOL ; 98
+	const SPRITE_TAUROS ; 99
+	const SPRITE_MACHOP ; 9a
+	const SPRITE_VOLTORB ; 9b
+	const SPRITE_LAPRAS ; 9c
+	const SPRITE_RHYDON ; 9d
+	const SPRITE_MOLTRES ; 9e
+	const SPRITE_SNORLAX ; 9f
+	const SPRITE_GYARADOS ; a0
+	const SPRITE_LUGIA ; a1
+	const SPRITE_HO_OH ; a2
 
-SPRITE_VARS EQU $f0
-SPRITE_CONSOLE EQU $f0
-SPRITE_DOLL_1 EQU $f1
-SPRITE_DOLL_2 EQU $f2
-SPRITE_BIG_DOLL EQU $f3
-SPRITE_WEIRD_TREE EQU $f4
-SPRITE_OLIVINE_RIVAL EQU $f5
-SPRITE_AZALEA_ROCKET EQU $f6
-SPRITE_FUSCHIA_GYM_1 EQU $f7
-SPRITE_FUSCHIA_GYM_2 EQU $f8
-SPRITE_FUSCHIA_GYM_3 EQU $f9
-SPRITE_FUSCHIA_GYM_4 EQU $fa
-SPRITE_COPYCAT EQU $fb
-SPRITE_JANINE_IMPERSONATOR EQU $fc
+const_value SET $e0
+	const SPRITE_DAYCARE_MON_1 ; e0
+	const SPRITE_DAYCARE_MON_2 ; e1
 
+const_value SET $f0
+SPRITE_VARS EQU const_value
+	const SPRITE_CONSOLE ; f0
+	const SPRITE_DOLL_1 ; f1
+	const SPRITE_DOLL_2 ; f2
+	const SPRITE_BIG_DOLL ; f3
+	const SPRITE_WEIRD_TREE ; f4
+	const SPRITE_OLIVINE_RIVAL ; f5
+	const SPRITE_AZALEA_ROCKET ; f6
+	const SPRITE_FUCHSIA_GYM_1 ; f7
+	const SPRITE_FUCHSIA_GYM_2 ; f8
+	const SPRITE_FUCHSIA_GYM_3 ; f9
+	const SPRITE_FUCHSIA_GYM_4 ; fa
+	const SPRITE_COPYCAT ; fb
+	const SPRITE_JANINE_IMPERSONATOR ; fc
+
 ; sprite types
-WALKING_SPRITE  EQU 1
-STANDING_SPRITE EQU 2
-STILL_SPRITE    EQU 3
+const_value SET 1
+	const WALKING_SPRITE
+	const STANDING_SPRITE
+	const STILL_SPRITE
 
 ; sprite palettes
-PAL_OW_RED    EQU 0
-PAL_OW_BLUE   EQU 1
-PAL_OW_GREEN  EQU 2
-PAL_OW_BROWN  EQU 3
-PAL_OW_PINK   EQU 4
-PAL_OW_SILVER EQU 5
-PAL_OW_TREE   EQU 6
-PAL_OW_ROCK   EQU 7
+	const_def
+	const PAL_OW_RED
+	const PAL_OW_BLUE
+	const PAL_OW_GREEN
+	const PAL_OW_BROWN
+	const PAL_OW_PINK
+	const PAL_OW_SILVER
+	const PAL_OW_TREE
+	const PAL_OW_ROCK
 
 ; permissions
-TOWN EQU 1
-ROUTE EQU 2
-INDOOR EQU 3
-CAVE EQU 4
+const_value SET 1
+	const TOWN
+	const ROUTE
+	const INDOOR
+	const CAVE
+	const PERM_5
+	const GATE
+	const DUNGEON
 
-GATE EQU 6
-DUNGEON EQU 7
-
 ; object struct
-OBJECT_00 EQU $0
-OBJECT_01 EQU $1
-OBJECT_SPRITE EQU $2
-OBJECT_03 EQU $3
-OBJECT_04 EQU $4
-OBJECT_FLAGS EQU $5
-OBJECT_PALETTE EQU $6
-OBJECT_07 EQU $7
-OBJECT_08 EQU $8
-OBJECT_09 EQU $9
-OBJECT_STEP_DURATION EQU $a
-OBJECT_11 EQU $b
-OBJECT_12 EQU $c
-OBJECT_FACING EQU $d
-OBJECT_STANDING_TILE EQU $e
-OBJECT_NEXT_TILE EQU $f
-OBJECT_MAP_X EQU $10
-OBJECT_MAP_Y EQU $11
-OBJECT_NEXT_MAP_X EQU $12
-OBJECT_NEXT_MAP_Y EQU $13
-OBJECT_20 EQU $14
-OBJECT_21 EQU $15
-OBJECT_22 EQU $16
-OBJECT_SPRITE_X EQU $17
-OBJECT_SPRITE_Y EQU $18
-OBJECT_SPRITE_X_OFFSET EQU $19
-OBJECT_SPRITE_Y_OFFSET EQU $1a
-OBJECT_27 EQU $1b
-OBJECT_28 EQU $1c
-OBJECT_29 EQU $1d
-OBJECT_30 EQU $1e
-OBJECT_31 EQU $1f
-OBJECT_32 EQU $20
+	const_def
+	const OBJECT_SPRITE
+	const OBJECT_MAP_OBJECT_INDEX
+	const OBJECT_SPRITE_TILE
+	const OBJECT_03
+	const OBJECT_04
+	const OBJECT_FLAGS
+	const OBJECT_PALETTE
+	const OBJECT_DIRECTION_WALKING
+	const OBJECT_FACING
+	const OBJECT_09
+	const OBJECT_STEP_DURATION
+	const OBJECT_11
+	const OBJECT_12
+	const OBJECT_FACING_STEP
+	const OBJECT_STANDING_TILE
+	const OBJECT_NEXT_TILE
+	const OBJECT_MAP_X
+	const OBJECT_MAP_Y
+	const OBJECT_NEXT_MAP_X
+	const OBJECT_NEXT_MAP_Y
+	const OBJECT_20
+	const OBJECT_21
+	const OBJECT_22
+	const OBJECT_SPRITE_X
+	const OBJECT_SPRITE_Y
+	const OBJECT_SPRITE_X_OFFSET
+	const OBJECT_SPRITE_Y_OFFSET
+	const OBJECT_27
+	const OBJECT_28
+	const OBJECT_29
+	const OBJECT_30
+	const OBJECT_31
+	const OBJECT_32
 ; 33-39 are not used
+
+; map object struct
+	const_def
+	const MAPOBJECT_OBJECT_STRUCT_ID ; 0
+	const MAPOBJECT_SPRITE ; 1
+	const MAPOBJECT_Y_COORD ; 2
+	const MAPOBJECT_X_COORD ; 3
+	const MAPOBJECT_FACING ; 4
+	const MAPOBJECT_MOVEMENT ; 5
+	const MAPOBJECT_HOUR ; 6
+	const MAPOBJECT_TIMEOFDAY ; 7
+	const MAPOBJECT_COLOR ; 8
+	const MAPOBJECT_RANGE ; 9
+	const MAPOBJECT_SCRIPT_POINTER ; a
+	const MAPOBJECT_POINTER_HI ; b
+	const MAPOBJECT_EVENT_FLAG ; c
+	const MAPOBJECT_FLAG_HI ; d
+	const MAPOBJECT_E ; unused
+	const MAPOBJECT_F ; unused
+
+MAPOBJECT_SCREEN_HEIGHT EQU 11
+MAPOBJECT_SCREEN_WIDTH EQU 12
+OBJECT_STRUCT_3_DATA_WIDTH EQU 6
+OBJECT_STRUCT_3_DATA_HEIGHT EQU 37
+
+OW_DOWN  EQU $0
+OW_UP    EQU $4
+OW_LEFT  EQU $8
+OW_RIGHT EQU $c
+
+	const_def
+	const EMOTE_SHOCK ; 0
+	const EMOTE_QUESTION ; 1
+	const EMOTE_HAPPY ; 2
+	const EMOTE_SAD ; 3
+	const EMOTE_HEART ; 4
+	const EMOTE_BOLT ; 5
+	const EMOTE_SLEEP ; 6
+	const EMOTE_FISH ; 7
+	const EMOTE_ROD_DOWN ; 8
+	const EMOTE_ROD_UP ; 9
+	const EMOTE_ROD_LEFT ; a
+	const EMOTE_ROD_RIGHT ; b
+
+	const_def
+	const SIGNPOST_READ
+	const SIGNPOST_UP
+	const SIGNPOST_DOWN
+	const SIGNPOST_RIGHT
+	const SIGNPOST_LEFT
+	const SIGNPOST_IFSET
+	const SIGNPOST_IFNOTSET
+	const SIGNPOST_ITEM
+	const SIGNPOST_COPY
--- a/constants/misc_constants.asm
+++ b/constants/misc_constants.asm
@@ -12,6 +12,7 @@
 PKMN_NAME_LENGTH EQU 11
 MOVE_NAME_LENGTH EQU 13
 ITEM_NAME_LENGTH EQU 13
+TRAINER_CLASS_NAME_LENGTH EQU 13
 NAME_LENGTH EQU 11
 LV_CHAR EQU $6e
 
@@ -96,3 +97,9 @@
 SWITCH_SOMETIMES   EQU 1 << SWITCH_SOMETIMES_F
 SWITCH_RARELY      EQU 1 << SWITCH_RARELY_F
 SWITCH_OFTEN       EQU 1 << SWITCH_OFTEN_F
+SPRITE_GFX_LIST_CAPACITY EQU $20
+
+const_value = 1
+	const MOM_ITEM
+	const MOM_DOLL
+
--- a/constants/music_constants.asm
+++ b/constants/music_constants.asm
@@ -1,106 +1,107 @@
-MUSIC_NONE EQU 0
-MUSIC_TITLE EQU 1
-MUSIC_ROUTE_1 EQU 2
-MUSIC_ROUTE_3 EQU 3
-MUSIC_ROUTE_12 EQU 4
-MUSIC_MAGNET_TRAIN EQU 5
-MUSIC_KANTO_GYM_LEADER_BATTLE EQU 6
-MUSIC_KANTO_TRAINER_BATTLE EQU 7
-MUSIC_KANTO_WILD_BATTLE EQU 8
-MUSIC_POKEMON_CENTER EQU 9
-MUSIC_HIKER_ENCOUNTER EQU 10
-MUSIC_LASS_ENCOUNTER EQU 11
-MUSIC_OFFICER_ENCOUNTER EQU 12
-MUSIC_HEAL EQU 13
-MUSIC_LAVENDER_TOWN EQU 14
-MUSIC_ROUTE_2 EQU 15
-MUSIC_MT_MOON EQU 16
-MUSIC_SHOW_ME_AROUND EQU 17
-MUSIC_GAME_CORNER EQU 18
-MUSIC_BICYCLE EQU 19
-MUSIC_HALL_OF_FAME EQU 20
-MUSIC_VIRIDIAN_CITY EQU 21
-MUSIC_CELADON_CITY EQU 22
-MUSIC_TRAINER_VICTORY EQU 23
-MUSIC_WILD_VICTORY EQU 24
-MUSIC_GYM_VICTORY EQU 25
-MUSIC_MT_MOON_SQUARE EQU 26
-MUSIC_GYM EQU 27
-MUSIC_PALLET_TOWN EQU 28
-MUSIC_POKEMON_TALK EQU 29
-MUSIC_PROF_OAK EQU 30
-MUSIC_RIVAL_ENCOUNTER EQU 31
-MUSIC_RIVAL_AFTER EQU 32
-MUSIC_SURF EQU 33
-MUSIC_EVOLUTION EQU 34
-MUSIC_NATIONAL_PARK EQU 35
-MUSIC_CREDITS EQU 36
-MUSIC_AZALEA_TOWN EQU 37
-MUSIC_CHERRYGROVE_CITY EQU 38
-MUSIC_KIMONO_ENCOUNTER EQU 39
-MUSIC_UNION_CAVE EQU 40
-MUSIC_JOHTO_WILD_BATTLE EQU 41
-MUSIC_JOHTO_TRAINER_BATTLE EQU 42
-MUSIC_ROUTE_30 EQU 43
-MUSIC_ECRUTEAK_CITY EQU 44
-MUSIC_VIOLET_CITY EQU 45
-MUSIC_JOHTO_GYM_LEADER_BATTLE EQU 46
-MUSIC_CHAMPION_BATTLE EQU 47
-MUSIC_RIVAL_BATTLE EQU 48
-MUSIC_ROCKET_BATTLE EQU 49
-MUSIC_PROF_ELM EQU 50
-MUSIC_DARK_CAVE EQU 51
-MUSIC_ROUTE_29 EQU 52
-MUSIC_ROUTE_36 EQU 53
-MUSIC_SS_AQUA EQU 54
-MUSIC_YOUNGSTER_ENCOUNTER EQU 55
-MUSIC_BEAUTY_ENCOUNTER EQU 56
-MUSIC_ROCKET_ENCOUNTER EQU 57
-MUSIC_POKEMANIAC_ENCOUNTER EQU 58
-MUSIC_SAGE_ENCOUNTER EQU 59
-MUSIC_NEW_BARK_TOWN EQU 60
-MUSIC_GOLDENROD_CITY EQU 61
-MUSIC_VERMILION_CITY EQU 62
-MUSIC_POKEMON_CHANNEL EQU 63
-MUSIC_POKE_FLUTE_CHANNEL EQU 64
-MUSIC_TIN_TOWER EQU 65
-MUSIC_SPROUT_TOWER EQU 66
-MUSIC_BURNED_TOWER EQU 67
-MUSIC_LIGHTHOUSE EQU 68
-MUSIC_LAKE_OF_RAGE EQU 69
-MUSIC_INDIGO_PLATEAU EQU 70
-MUSIC_ROUTE_37 EQU 71
-MUSIC_ROCKET_HIDEOUT EQU 72
-MUSIC_DRAGONS_DEN EQU 73
-MUSIC_JOHTO_WILD_BATTLE_NIGHT EQU 74
-MUSIC_RUINS_OF_ALPH_RADIO EQU 75
-MUSIC_CAPTURE EQU 76
-MUSIC_ROUTE_26 EQU 77
-MUSIC_MOM EQU 78
-MUSIC_VICTORY_ROAD EQU 79
-MUSIC_POKEMON_LULLABY EQU 80
-MUSIC_POKEMON_MARCH EQU 81
-MUSIC_GS_OPENING EQU 82
-MUSIC_GS_OPENING_2 EQU 83
-MUSIC_MAIN_MENU EQU 84
-MUSIC_RUINS_OF_ALPH_INTERIOR EQU 85
-MUSIC_ROCKET_OVERTURE EQU 86
-MUSIC_DANCING_HALL EQU 87
-MUSIC_BUG_CATCHING_CONTEST_RANKING EQU 88
-MUSIC_BUG_CATCHING_CONTEST EQU 89
-MUSIC_LAKE_OF_RAGE_ROCKET_RADIO EQU 90
-MUSIC_PRINTER EQU 91
-MUSIC_POST_CREDITS EQU 92
+	const_def
 
-MUSIC_CLAIR EQU 93
-MUSIC_MOBILE_ADAPTER_MENU EQU 94
-MUSIC_MOBILE_ADAPTER EQU 95
-MUSIC_BUENAS_PASSWORD EQU 96
-MUSIC_MYSTICALMAN_ENCOUNTER EQU 97
-MUSIC_CRYSTAL_OPENING EQU 98
-MUSIC_BATTLE_TOWER_THEME EQU 99
-MUSIC_SUICUNE_BATTLE EQU 100
-MUSIC_BATTLE_TOWER_LOBBY EQU 101
-MUSIC_MOBILE_CENTER EQU 102
+	const MUSIC_NONE
+	const MUSIC_TITLE
+	const MUSIC_ROUTE_1
+	const MUSIC_ROUTE_3
+	const MUSIC_ROUTE_12
+	const MUSIC_MAGNET_TRAIN
+	const MUSIC_KANTO_GYM_LEADER_BATTLE
+	const MUSIC_KANTO_TRAINER_BATTLE
+	const MUSIC_KANTO_WILD_BATTLE
+	const MUSIC_POKEMON_CENTER
+	const MUSIC_HIKER_ENCOUNTER
+	const MUSIC_LASS_ENCOUNTER
+	const MUSIC_OFFICER_ENCOUNTER
+	const MUSIC_HEAL
+	const MUSIC_LAVENDER_TOWN
+	const MUSIC_ROUTE_2
+	const MUSIC_MT_MOON
+	const MUSIC_SHOW_ME_AROUND
+	const MUSIC_GAME_CORNER
+	const MUSIC_BICYCLE
+	const MUSIC_HALL_OF_FAME
+	const MUSIC_VIRIDIAN_CITY
+	const MUSIC_CELADON_CITY
+	const MUSIC_TRAINER_VICTORY
+	const MUSIC_WILD_VICTORY
+	const MUSIC_GYM_VICTORY
+	const MUSIC_MT_MOON_SQUARE
+	const MUSIC_GYM
+	const MUSIC_PALLET_TOWN
+	const MUSIC_POKEMON_TALK
+	const MUSIC_PROF_OAK
+	const MUSIC_RIVAL_ENCOUNTER
+	const MUSIC_RIVAL_AFTER
+	const MUSIC_SURF
+	const MUSIC_EVOLUTION
+	const MUSIC_NATIONAL_PARK
+	const MUSIC_CREDITS
+	const MUSIC_AZALEA_TOWN
+	const MUSIC_CHERRYGROVE_CITY
+	const MUSIC_KIMONO_ENCOUNTER
+	const MUSIC_UNION_CAVE
+	const MUSIC_JOHTO_WILD_BATTLE
+	const MUSIC_JOHTO_TRAINER_BATTLE
+	const MUSIC_ROUTE_30
+	const MUSIC_ECRUTEAK_CITY
+	const MUSIC_VIOLET_CITY
+	const MUSIC_JOHTO_GYM_LEADER_BATTLE
+	const MUSIC_CHAMPION_BATTLE
+	const MUSIC_RIVAL_BATTLE
+	const MUSIC_ROCKET_BATTLE
+	const MUSIC_PROF_ELM
+	const MUSIC_DARK_CAVE
+	const MUSIC_ROUTE_29
+	const MUSIC_ROUTE_36
+	const MUSIC_SS_AQUA
+	const MUSIC_YOUNGSTER_ENCOUNTER
+	const MUSIC_BEAUTY_ENCOUNTER
+	const MUSIC_ROCKET_ENCOUNTER
+	const MUSIC_POKEMANIAC_ENCOUNTER
+	const MUSIC_SAGE_ENCOUNTER
+	const MUSIC_NEW_BARK_TOWN
+	const MUSIC_GOLDENROD_CITY
+	const MUSIC_VERMILION_CITY
+	const MUSIC_POKEMON_CHANNEL
+	const MUSIC_POKE_FLUTE_CHANNEL
+	const MUSIC_TIN_TOWER
+	const MUSIC_SPROUT_TOWER
+	const MUSIC_BURNED_TOWER
+	const MUSIC_LIGHTHOUSE
+	const MUSIC_LAKE_OF_RAGE
+	const MUSIC_INDIGO_PLATEAU
+	const MUSIC_ROUTE_37
+	const MUSIC_ROCKET_HIDEOUT
+	const MUSIC_DRAGONS_DEN
+	const MUSIC_JOHTO_WILD_BATTLE_NIGHT
+	const MUSIC_RUINS_OF_ALPH_RADIO
+	const MUSIC_CAPTURE
+	const MUSIC_ROUTE_26
+	const MUSIC_MOM
+	const MUSIC_VICTORY_ROAD
+	const MUSIC_POKEMON_LULLABY
+	const MUSIC_POKEMON_MARCH
+	const MUSIC_GS_OPENING
+	const MUSIC_GS_OPENING_2
+	const MUSIC_MAIN_MENU
+	const MUSIC_RUINS_OF_ALPH_INTERIOR
+	const MUSIC_ROCKET_OVERTURE
+	const MUSIC_DANCING_HALL
+	const MUSIC_BUG_CATCHING_CONTEST_RANKING
+	const MUSIC_BUG_CATCHING_CONTEST
+	const MUSIC_LAKE_OF_RAGE_ROCKET_RADIO
+	const MUSIC_PRINTER
+	const MUSIC_POST_CREDITS
+	const MUSIC_CLAIR
+	const MUSIC_MOBILE_ADAPTER_MENU
+	const MUSIC_MOBILE_ADAPTER
+	const MUSIC_BUENAS_PASSWORD
+	const MUSIC_MYSTICALMAN_ENCOUNTER
+	const MUSIC_CRYSTAL_OPENING
+	const MUSIC_BATTLE_TOWER_THEME
+	const MUSIC_SUICUNE_BATTLE
+	const MUSIC_BATTLE_TOWER_LOBBY
+	const MUSIC_MOBILE_CENTER
 
 MUSIC_MAHOGANY_MART EQU 100 ; leftover from gold
--- /dev/null
+++ b/constants/phone_constants.asm
@@ -1,0 +1,52 @@
+
+	const_def
+	const PHONE_00
+	const PHONE_MOM
+	const PHONE_OAK
+	const PHONE_BILL
+	const PHONE_ELM
+	const PHONE_SCHOOLBOY_JACK
+	const PHONE_POKEFAN_BEVERLY
+	const PHONE_SAILOR_HUEY
+	const PHONE_08
+	const PHONE_09
+	const PHONE_0A
+	const PHONE_COOLTRAINERM_GAVEN
+	const PHONE_COOLTRAINERF_BETH
+	const PHONE_BIRDKEEPER_JOSE
+	const PHONE_COOLTRAINERF_REENA
+	const PHONE_YOUNGSTER_JOEY
+	const PHONE_BUG_CATCHER_WADE
+	const PHONE_FISHER_RALPH
+	const PHONE_PICNICKER_LIZ
+	const PHONE_HIKER_ANTHONY
+	const PHONE_CAMPER_TODD
+	const PHONE_PICNICKER_GINA
+	const PHONE_JUGGLER_IRWIN
+	const PHONE_BUG_CATCHER_ARNIE
+	const PHONE_SCHOOLBOY_ALAN
+	const PHONE_19
+	const PHONE_LASS_DANA
+	const PHONE_SCHOOLBOY_CHAD
+	const PHONE_POKEFANM_DEREK
+	const PHONE_FISHER_TULLY
+	const PHONE_POKEMANIAC_BRENT
+	const PHONE_PICNICKER_TIFFANY
+	const PHONE_BIRDKEEPER_VANCE
+	const PHONE_FISHER_WILTON
+	const PHONE_BLACKBELT_KENJI
+	const PHONE_HIKER_PARRY
+	const PHONE_PICNICKER_ERIN
+	const PHONE_BUENA
+
+	const_def
+	const ELMCALL_NONE
+	const ELMCALL_POKERUS
+	const ELMCALL_ROBBED
+	const ELMCALL_ASSISTANT
+	const ELMCALL_WEIRDBROADCAST
+	const ELMCALL_SSTICKET
+	const ELMCALL_UNKNOWN
+	const MOMCALL_WORRIED
+	const ELMCALL_MASTERBALL
+
--- a/constants/pokemon_constants.asm
+++ b/constants/pokemon_constants.asm
@@ -1,5 +1,5 @@
-NUM_POKEMON EQU 251
 
+; pokemon
 const_value set 1
 	const BULBASAUR
 	const IVYSAUR
@@ -253,4 +253,37 @@
 	const HO_OH
 	const CELEBI
 
+const_value SET const_value + -1
+
+NUM_POKEMON EQU const_value
+
 EGG EQU 253
+
+; pokemon structure in RAM
+MON_SPECIES            EQUS "PartyMon1Species - PartyMon1"
+MON_ITEM               EQUS "PartyMon1Item - PartyMon1"
+MON_MOVES              EQUS "PartyMon1Moves - PartyMon1"
+MON_ID                 EQUS "PartyMon1ID - PartyMon1"
+MON_EXP                EQUS "PartyMon1Exp - PartyMon1"
+MON_HP_EXP             EQUS "PartyMon1HPExp - PartyMon1"
+MON_ATK_EXP            EQUS "PartyMon1AtkExp - PartyMon1"
+MON_DEF_EXP            EQUS "PartyMon1DefExp - PartyMon1"
+MON_SPD_EXP            EQUS "PartyMon1SpdExp - PartyMon1"
+MON_SPC_EXP            EQUS "PartyMon1SpcExp - PartyMon1"
+MON_DVS                EQUS "PartyMon1DVs - PartyMon1"
+MON_PP                 EQUS "PartyMon1PP - PartyMon1"
+MON_HAPPINESS          EQUS "PartyMon1Happiness - PartyMon1"
+MON_PKRUS              EQUS "PartyMon1PokerusStatus - PartyMon1"
+MON_CAUGHTTIME         EQUS "PartyMon1CaughtTime - PartyMon1"
+MON_CAUGHTGENDER       EQUS "PartyMon1CaughtGender - PartyMon1"
+MON_LEVEL              EQUS "PartyMon1Level - PartyMon1"
+MON_STATUS             EQUS "PartyMon1Status - PartyMon1"
+MON_HP                 EQUS "PartyMon1HP - PartyMon1"
+MON_MAXHP              EQUS "PartyMon1MaxHP - PartyMon1"
+MON_ATK                EQUS "PartyMon1Attack - PartyMon1"
+MON_DEF                EQUS "PartyMon1Defense - PartyMon1"
+MON_SPD                EQUS "PartyMon1Speed - PartyMon1"
+MON_SAT                EQUS "PartyMon1SpclAtk - PartyMon1"
+MON_SDF                EQUS "PartyMon1SpclDef - PartyMon1"
+BOXMON_STRUCT_LENGTH   EQUS "PartyMon1Status - PartyMon1"
+PARTYMON_STRUCT_LENGTH EQUS "PartyMon1StatsEnd - PartyMon1"
--- a/constants/pokemon_data_constants.asm
+++ b/constants/pokemon_data_constants.asm
@@ -1,75 +1,80 @@
 ; growth rate
-MEDIUM_FAST EQU 0
-MEDIUM_SLOW EQU 3
-SLOW        EQU 4
-FAST        EQU 5
+	const_def
+	const MEDIUM_FAST
+	const SLIGHTLY_FAST
+	const SLIGHTLY_SLOW
+	const MEDIUM_SLOW
+	const SLOW
+	const FAST
 
 ; egg group constants
+const_value SET 1
+	const MONSTER
+	const AMPHIBIAN
+	const INSECT
+	const AVIAN
+	const FIELD
+	const FAIRY
+	const PLANT
+	const HUMANSHAPE
+	const INVERTEBRATE
+	const INANIMATE
+	const AMORPHOUS
+	const FISH
+	const LADIES_MAN
+	const REPTILE
+	const NO_EGGS
 
-MONSTER       EQU $01
-AMPHIBIAN     EQU $02
-INSECT        EQU $03
-AVIAN         EQU $04
-FIELD         EQU $05
-FAIRY         EQU $06
-PLANT         EQU $07
-HUMANSHAPE    EQU $08
-INVERTEBRATE  EQU $09
-INANIMATE     EQU $0A
-AMORPHOUS     EQU $0B
-FISH          EQU $0C
-LADIES_MAN    EQU $0D
-REPTILE       EQU $0E
-NO_EGGS       EQU $0F
 
-
 ; menu sprites
-ICON_POLIWAG       EQU $01
-ICON_JIGGLYPUFF    EQU $02
-ICON_DIGLETT       EQU $03
-ICON_PIKACHU       EQU $04
-ICON_STARYU        EQU $05
-ICON_FISH          EQU $06
-ICON_BIRD          EQU $07
-ICON_MONSTER       EQU $08
-ICON_CLEFAIRY      EQU $09
-ICON_ODDISH        EQU $0a
-ICON_BUG           EQU $0b
-ICON_GHOST         EQU $0c
-ICON_LAPRAS        EQU $0d
-ICON_HUMANSHAPE    EQU $0e
-ICON_FOX           EQU $0f
-ICON_EQUINE        EQU $10
-ICON_SHELL         EQU $11
-ICON_BLOB          EQU $12
-ICON_SERPENT       EQU $13
-ICON_VOLTORB       EQU $14
-ICON_SQUIRTLE      EQU $15
-ICON_BULBASAUR     EQU $16
-ICON_CHARMANDER    EQU $17
-ICON_CATERPILLAR   EQU $18
-ICON_UNOWN         EQU $19
-ICON_GEODUDE       EQU $1a
-ICON_FIGHTER       EQU $1b
-ICON_EGG           EQU $1c
-ICON_JELLYFISH     EQU $1d
-ICON_MOTH          EQU $1e
-ICON_BAT           EQU $1f
-ICON_SNORLAX       EQU $20
-ICON_HO_OH         EQU $21
-ICON_LUGIA         EQU $22
-ICON_GYARADOS      EQU $23
-ICON_SLOWPOKE      EQU $24
-ICON_SUDOWOODO     EQU $25
-ICON_BIGMON        EQU $26
+const_value SET 1
+	const ICON_POLIWAG
+	const ICON_JIGGLYPUFF
+	const ICON_DIGLETT
+	const ICON_PIKACHU
+	const ICON_STARYU
+	const ICON_FISH
+	const ICON_BIRD
+	const ICON_MONSTER
+	const ICON_CLEFAIRY
+	const ICON_ODDISH
+	const ICON_BUG
+	const ICON_GHOST
+	const ICON_LAPRAS
+	const ICON_HUMANSHAPE
+	const ICON_FOX
+	const ICON_EQUINE
+	const ICON_SHELL
+	const ICON_BLOB
+	const ICON_SERPENT
+	const ICON_VOLTORB
+	const ICON_SQUIRTLE
+	const ICON_BULBASAUR
+	const ICON_CHARMANDER
+	const ICON_CATERPILLAR
+	const ICON_UNOWN
+	const ICON_GEODUDE
+	const ICON_FIGHTER
+	const ICON_EGG
+	const ICON_JELLYFISH
+	const ICON_MOTH
+	const ICON_BAT
+	const ICON_SNORLAX
+	const ICON_HO_OH
+	const ICON_LUGIA
+	const ICON_GYARADOS
+	const ICON_SLOWPOKE
+	const ICON_SUDOWOODO
+	const ICON_BIGMON
 
 
 ; evolution types
-EVOLVE_LEVEL     EQU 1
-EVOLVE_ITEM      EQU 2
-EVOLVE_TRADE     EQU 3
-EVOLVE_HAPPINESS EQU 4
-EVOLVE_STAT      EQU 5
+const_value SET 1
+	const EVOLVE_LEVEL
+	const EVOLVE_ITEM
+	const EVOLVE_TRADE
+	const EVOLVE_HAPPINESS
+	const EVOLVE_STAT
 
 
 BASE_HAPPINESS        EQU 70
@@ -77,12 +82,14 @@
 
 ; happiness evolution triggers
 HAPPINESS_TO_EVOLVE EQU 220
-TR_ANYTIME EQU 1
-TR_MORNDAY EQU 2
-TR_NITE    EQU 3
+const_value SET 1
+	const TR_ANYTIME
+	const TR_MORNDAY
+	const TR_NITE
 
 
 ; stat evolution triggers
-ATK_GT_DEF EQU 1
-ATK_LT_DEF EQU 2
-ATK_EQ_DEF EQU 3
+const_value SET 1
+	const ATK_GT_DEF
+	const ATK_LT_DEF
+	const ATK_EQ_DEF
--- a/constants/script_constants.asm
+++ b/constants/script_constants.asm
@@ -1,3 +1,31 @@
 ; script vars
-NUM_VARS EQU $1b
-VAR_MOVEMENT EQU $08
+
+	const_def
+	const VAR_STRINGBUFFER2
+	const VAR_PARTYCOUNT
+	const VAR_02
+	const VAR_BATTLETYPE
+	const VAR_TIMEOFDAY
+	const VAR_DEXCAUGHT
+	const VAR_DEXSEEN
+	const VAR_BADGES
+	const VAR_MOVEMENT
+	const VAR_FACING
+	const VAR_HOUR
+	const VAR_WEEKDAY
+	const VAR_MAPGROUP
+	const VAR_MAPNUMBER
+	const VAR_UNOWNCOUNT
+	const VAR_ROOFPALETTE
+	const VAR_BOXSPACE
+	const VAR_CONTESTMINUTES
+	const VAR_XCOORD
+	const VAR_YCOORD
+	const VAR_POKERUS
+	const VAR_15
+	const VAR_16
+	const VAR_CALLERID
+	const VAR_BLUECARDBALANCE
+	const VAR_19
+	const VAR_KENJI_BREAK
+NUM_VARS EQU const_value
--- a/constants/sfx_constants.asm
+++ b/constants/sfx_constants.asm
@@ -1,208 +1,210 @@
-SFX_DEX_FANFARE_50_79           EQU $00
-SFX_ITEM                        EQU $01
-SFX_CAUGHT_MON                  EQU $02
-SFX_POKEBALLS_PLACED_ON_TABLE   EQU $03
-SFX_POTION                      EQU $04
-SFX_FULL_HEAL                   EQU $05
-SFX_MENU                        EQU $06
-SFX_READ_TEXT                   EQU $07
-SFX_READ_TEXT_2                 EQU $08
-SFX_DEX_FANFARE_20_49           EQU $09
-SFX_DEX_FANFARE_80_109          EQU $0a
-SFX_POISON                      EQU $0b
-SFX_GOT_SAFARI_BALLS            EQU $0c
-SFX_BOOT_PC                     EQU $0d
-SFX_SHUT_DOWN_PC                EQU $0e
-SFX_CHOOSE_PC_OPTION            EQU $0f
-SFX_ESCAPE_ROPE                 EQU $10
-SFX_PUSH_BUTTON                 EQU $11
-SFX_SECOND_PART_OF_ITEMFINDER   EQU $12
-SFX_WARP_TO                     EQU $13
-SFX_WARP_FROM                   EQU $14
-SFX_CHANGE_DEX_MODE             EQU $15
-SFX_JUMP_OVER_LEDGE             EQU $16
-SFX_GRASS_RUSTLE                EQU $17
-SFX_FLY                         EQU $18
-SFX_WRONG                       EQU $19
-SFX_SQUEAK                      EQU $1a
-SFX_STRENGTH                    EQU $1b
-SFX_BOAT                        EQU $1c
-SFX_WALL_OPEN                   EQU $1d
-SFX_PLACE_PUZZLE_PIECE_DOWN     EQU $1e
-SFX_ENTER_DOOR                  EQU $1f
-SFX_SWITCH_POKEMON              EQU $20
-SFX_TALLY                       EQU $21
-SFX_TRANSACTION                 EQU $22
-SFX_EXIT_BUILDING               EQU $23
-SFX_BUMP                        EQU $24
-SFX_SAVE                        EQU $25
-SFX_POKEFLUTE                   EQU $26
-SFX_ELEVATOR_END                EQU $27
-SFX_THROW_BALL                  EQU $28
-SFX_BALL_POOF                   EQU $29
-SFX_UNKNOWN_2A                  EQU $2a
-SFX_RUN                         EQU $2b
-SFX_SLOT_MACHINE_START          EQU $2c
-SFX_FANFARE                     EQU $2d
-SFX_PECK                        EQU $2e
-SFX_KINESIS                     EQU $2f
-SFX_LICK                        EQU $30
-SFX_POUND                       EQU $31
-SFX_MOVE_PUZZLE_PIECE           EQU $32
-SFX_COMET_PUNCH                 EQU $33
-SFX_MEGA_PUNCH                  EQU $34
-SFX_SCRATCH                     EQU $35
-SFX_VICEGRIP                    EQU $36
-SFX_RAZOR_WIND                  EQU $37
-SFX_CUT                         EQU $38
-SFX_WING_ATTACK                 EQU $39
-SFX_WHIRLWIND                   EQU $3a
-SFX_BIND                        EQU $3b
-SFX_VINE_WHIP                   EQU $3c
-SFX_DOUBLE_KICK                 EQU $3d
-SFX_MEGA_KICK                   EQU $3e
-SFX_HEADBUTT                    EQU $3f
-SFX_HORN_ATTACK                 EQU $40
-SFX_TACKLE                      EQU $41
-SFX_POISON_STING                EQU $42
-SFX_POWDER                      EQU $43
-SFX_DOUBLESLAP                  EQU $44
-SFX_BITE                        EQU $45
-SFX_JUMP_KICK                   EQU $46
-SFX_STOMP                       EQU $47
-SFX_TAIL_WHIP                   EQU $48
-SFX_KARATE_CHOP                 EQU $49
-SFX_SUBMISSION                  EQU $4a
-SFX_WATER_GUN                   EQU $4b
-SFX_SWORDS_DANCE                EQU $4c
-SFX_THUNDER                     EQU $4d
-SFX_SUPERSONIC                  EQU $4e
-SFX_LEER                        EQU $4f
-SFX_EMBER                       EQU $50
-SFX_BUBBLEBEAM                  EQU $51
-SFX_HYDRO_PUMP                  EQU $52
-SFX_SURF                        EQU $53
-SFX_PSYBEAM                     EQU $54
-SFX_CHARGE                      EQU $55
-SFX_THUNDERSHOCK                EQU $56
-SFX_PSYCHIC                     EQU $57
-SFX_SCREECH                     EQU $58
-SFX_BONE_CLUB                   EQU $59
-SFX_SHARPEN                     EQU $5a
-SFX_EGG_BOMB                    EQU $5b
-SFX_SING                        EQU $5c
-SFX_HYPER_BEAM                  EQU $5d
-SFX_SHINE                       EQU $5e
-SFX_UNKNOWN_5F                  EQU $5f
-SFX_UNKNOWN_60                  EQU $60
-SFX_UNKNOWN_61                  EQU $61
-SFX_UNKNOWN_62                  EQU $62
-SFX_UNKNOWN_63                  EQU $63
-SFX_BURN                        EQU $64
-SFX_TITLE_SCREEN_ENTRANCE       EQU $65
-SFX_UNKNOWN_66                  EQU $66
-SFX_GET_COIN_FROM_SLOTS         EQU $67
-SFX_PAY_DAY                     EQU $68
-SFX_METRONOME                   EQU $69
-SFX_CALL                        EQU $6a
-SFX_HANG_UP                     EQU $6b
-SFX_NO_SIGNAL                   EQU $6c
-SFX_SANDSTORM                   EQU $6d
-SFX_ELEVATOR                    EQU $6e
-SFX_PROTECT                     EQU $6f
-SFX_SKETCH                      EQU $70
-SFX_RAIN_DANCE                  EQU $71
-SFX_AEROBLAST                   EQU $72
-SFX_SPARK                       EQU $73
-SFX_CURSE                       EQU $74
-SFX_RAGE                        EQU $75
-SFX_THIEF                       EQU $76
-SFX_THIEF_2                     EQU $77
-SFX_SPIDER_WEB                  EQU $78
-SFX_MIND_READER                 EQU $79
-SFX_NIGHTMARE                   EQU $7a
-SFX_SNORE                       EQU $7b
-SFX_SWEET_KISS                  EQU $7c
-SFX_SWEET_KISS_2                EQU $7d
-SFX_BELLY_DRUM                  EQU $7e
-SFX_UNKNOWN_7F                  EQU $7f
-SFX_SLUDGE_BOMB                 EQU $80
-SFX_FORESIGHT                   EQU $81
-SFX_SPITE                       EQU $82
-SFX_OUTRAGE                     EQU $83
-SFX_PERISH_SONG                 EQU $84
-SFX_GIGA_DRAIN                  EQU $85
-SFX_ATTRACT                     EQU $86
-SFX_KINESIS_2                   EQU $87
-SFX_ZAP_CANNON                  EQU $88
-SFX_MEAN_LOOK                   EQU $89
-SFX_HEAL_BELL                   EQU $8a
-SFX_RETURN                      EQU $8b
-SFX_EXP_BAR                     EQU $8c
-SFX_MILK_DRINK                  EQU $8d
-SFX_PRESENT                     EQU $8e
-SFX_MORNING_SUN                 EQU $8f
-SFX_LEVEL_UP                    EQU $90
-SFX_KEY_ITEM                    EQU $91
-SFX_FANFARE_2                   EQU $92
-SFX_REGISTER_PHONE_NUMBER       EQU $93
-SFX_3RD_PLACE                   EQU $94
-SFX_GET_EGG_FROM_DAYCARE_MAN    EQU $95
-SFX_GET_EGG_FROM_DAYCARE_LADY   EQU $96
-SFX_MOVE_DELETED                EQU $97
-SFX_2ND_PLACE                   EQU $98
-SFX_1ST_PLACE                   EQU $99
-SFX_CHOOSE_A_CARD               EQU $9a
-SFX_GET_TM                      EQU $9b
-SFX_GET_BADGE                   EQU $9c
-SFX_QUIT_SLOTS                  EQU $9d
-SFX_EGG_CRACK                   EQU $9e
-SFX_DEX_FANFARE_LESS_THAN_20    EQU $9f
-SFX_DEX_FANFARE_140_169         EQU $a0
-SFX_DEX_FANFARE_170_199         EQU $a1
-SFX_DEX_FANFARE_200_229         EQU $a2
-SFX_DEX_FANFARE_230_PLUS        EQU $a3
-SFX_EVOLVED                     EQU $a4
-SFX_MASTER_BALL                 EQU $a5
-SFX_EGG_HATCH                   EQU $a6
-SFX_GS_INTRO_CHARIZARD_FIREBALL EQU $a7
-SFX_GS_INTRO_POKEMON_APPEARS    EQU $a8
-SFX_FLASH                       EQU $a9
-SFX_GAME_FREAK_LOGO_GS          EQU $aa
-SFX_NOT_VERY_EFFECTIVE          EQU $ab
-SFX_DAMAGE                      EQU $ac
-SFX_SUPER_EFFECTIVE             EQU $ad
-SFX_BALL_BOUNCE                 EQU $ae
-SFX_MOONLIGHT                   EQU $af
-SFX_ENCORE                      EQU $b0
-SFX_BEAT_UP                     EQU $b1
-SFX_BATON_PASS                  EQU $b2
-SFX_BALL_WIGGLE                 EQU $b3
-SFX_SWEET_SCENT                 EQU $b4
-SFX_SWEET_SCENT_2               EQU $b5
-SFX_HIT_END_OF_EXP_BAR          EQU $b6
-SFX_GIVE_TRADEMON               EQU $b7
-SFX_GET_TRADEMON                EQU $b8
-SFX_TRAIN_ARRIVED               EQU $b9
-SFX_STOP_SLOT                   EQU $ba
-SFX_2_BOOPS                     EQU $bb
-SFX_GLASS_TING                  EQU $bc
-SFX_GLASS_TING_2                EQU $bd
+	const_def
 
-SFX_INTRO_UNOWN_1               EQU $be
-SFX_INTRO_UNOWN_2               EQU $bf
-SFX_INTRO_UNOWN_3               EQU $c0
-SFX_DITTO_POP_UP                EQU $c1
-SFX_DITTO_TRANSFORM             EQU $c2
-SFX_INTRO_SUICUNE_1             EQU $c3
-SFX_INTRO_PICHU                 EQU $c4
-SFX_INTRO_SUICUNE_2             EQU $c5
-SFX_INTRO_SUICUNE_3             EQU $c6
-SFX_DITTO_BOUNCE                EQU $c7
-SFX_INTRO_SUICUNE_4             EQU $c8
-SFX_GAME_FREAK_PRESENTS         EQU $c9
-SFX_TINGLE                      EQU $ca
-SFX_UNKNOWN_CB                  EQU $cb
-SFX_TWO_PC_BEEPS                EQU $cc
-SFX_4_NOTE_DITTY                EQU $cd
-SFX_TWINKLE                     EQU $ce
+	const SFX_DEX_FANFARE_50_79
+	const SFX_ITEM
+	const SFX_CAUGHT_MON
+	const SFX_POKEBALLS_PLACED_ON_TABLE
+	const SFX_POTION
+	const SFX_FULL_HEAL
+	const SFX_MENU
+	const SFX_READ_TEXT
+	const SFX_READ_TEXT_2
+	const SFX_DEX_FANFARE_20_49
+	const SFX_DEX_FANFARE_80_109
+	const SFX_POISON
+	const SFX_GOT_SAFARI_BALLS
+	const SFX_BOOT_PC
+	const SFX_SHUT_DOWN_PC
+	const SFX_CHOOSE_PC_OPTION
+	const SFX_ESCAPE_ROPE
+	const SFX_PUSH_BUTTON
+	const SFX_SECOND_PART_OF_ITEMFINDER
+	const SFX_WARP_TO
+	const SFX_WARP_FROM
+	const SFX_CHANGE_DEX_MODE
+	const SFX_JUMP_OVER_LEDGE
+	const SFX_GRASS_RUSTLE
+	const SFX_FLY
+	const SFX_WRONG
+	const SFX_SQUEAK
+	const SFX_STRENGTH
+	const SFX_BOAT
+	const SFX_WALL_OPEN
+	const SFX_PLACE_PUZZLE_PIECE_DOWN
+	const SFX_ENTER_DOOR
+	const SFX_SWITCH_POKEMON
+	const SFX_TALLY
+	const SFX_TRANSACTION
+	const SFX_EXIT_BUILDING
+	const SFX_BUMP
+	const SFX_SAVE
+	const SFX_POKEFLUTE
+	const SFX_ELEVATOR_END
+	const SFX_THROW_BALL
+	const SFX_BALL_POOF
+	const SFX_UNKNOWN_2A
+	const SFX_RUN
+	const SFX_SLOT_MACHINE_START
+	const SFX_FANFARE
+	const SFX_PECK
+	const SFX_KINESIS
+	const SFX_LICK
+	const SFX_POUND
+	const SFX_MOVE_PUZZLE_PIECE
+	const SFX_COMET_PUNCH
+	const SFX_MEGA_PUNCH
+	const SFX_SCRATCH
+	const SFX_VICEGRIP
+	const SFX_RAZOR_WIND
+	const SFX_CUT
+	const SFX_WING_ATTACK
+	const SFX_WHIRLWIND
+	const SFX_BIND
+	const SFX_VINE_WHIP
+	const SFX_DOUBLE_KICK
+	const SFX_MEGA_KICK
+	const SFX_HEADBUTT
+	const SFX_HORN_ATTACK
+	const SFX_TACKLE
+	const SFX_POISON_STING
+	const SFX_POWDER
+	const SFX_DOUBLESLAP
+	const SFX_BITE
+	const SFX_JUMP_KICK
+	const SFX_STOMP
+	const SFX_TAIL_WHIP
+	const SFX_KARATE_CHOP
+	const SFX_SUBMISSION
+	const SFX_WATER_GUN
+	const SFX_SWORDS_DANCE
+	const SFX_THUNDER
+	const SFX_SUPERSONIC
+	const SFX_LEER
+	const SFX_EMBER
+	const SFX_BUBBLEBEAM
+	const SFX_HYDRO_PUMP
+	const SFX_SURF
+	const SFX_PSYBEAM
+	const SFX_CHARGE
+	const SFX_THUNDERSHOCK
+	const SFX_PSYCHIC
+	const SFX_SCREECH
+	const SFX_BONE_CLUB
+	const SFX_SHARPEN
+	const SFX_EGG_BOMB
+	const SFX_SING
+	const SFX_HYPER_BEAM
+	const SFX_SHINE
+	const SFX_UNKNOWN_5F
+	const SFX_UNKNOWN_60
+	const SFX_UNKNOWN_61
+	const SFX_UNKNOWN_62
+	const SFX_UNKNOWN_63
+	const SFX_BURN
+	const SFX_TITLE_SCREEN_ENTRANCE
+	const SFX_UNKNOWN_66
+	const SFX_GET_COIN_FROM_SLOTS
+	const SFX_PAY_DAY
+	const SFX_METRONOME
+	const SFX_CALL
+	const SFX_HANG_UP
+	const SFX_NO_SIGNAL
+	const SFX_SANDSTORM
+	const SFX_ELEVATOR
+	const SFX_PROTECT
+	const SFX_SKETCH
+	const SFX_RAIN_DANCE
+	const SFX_AEROBLAST
+	const SFX_SPARK
+	const SFX_CURSE
+	const SFX_RAGE
+	const SFX_THIEF
+	const SFX_THIEF_2
+	const SFX_SPIDER_WEB
+	const SFX_MIND_READER
+	const SFX_NIGHTMARE
+	const SFX_SNORE
+	const SFX_SWEET_KISS
+	const SFX_SWEET_KISS_2
+	const SFX_BELLY_DRUM
+	const SFX_UNKNOWN_7F
+	const SFX_SLUDGE_BOMB
+	const SFX_FORESIGHT
+	const SFX_SPITE
+	const SFX_OUTRAGE
+	const SFX_PERISH_SONG
+	const SFX_GIGA_DRAIN
+	const SFX_ATTRACT
+	const SFX_KINESIS_2
+	const SFX_ZAP_CANNON
+	const SFX_MEAN_LOOK
+	const SFX_HEAL_BELL
+	const SFX_RETURN
+	const SFX_EXP_BAR
+	const SFX_MILK_DRINK
+	const SFX_PRESENT
+	const SFX_MORNING_SUN
+	const SFX_LEVEL_UP
+	const SFX_KEY_ITEM
+	const SFX_FANFARE_2
+	const SFX_REGISTER_PHONE_NUMBER
+	const SFX_3RD_PLACE
+	const SFX_GET_EGG_FROM_DAYCARE_MAN
+	const SFX_GET_EGG_FROM_DAYCARE_LADY
+	const SFX_MOVE_DELETED
+	const SFX_2ND_PLACE
+	const SFX_1ST_PLACE
+	const SFX_CHOOSE_A_CARD
+	const SFX_GET_TM
+	const SFX_GET_BADGE
+	const SFX_QUIT_SLOTS
+	const SFX_EGG_CRACK
+	const SFX_DEX_FANFARE_LESS_THAN_20
+	const SFX_DEX_FANFARE_140_169
+	const SFX_DEX_FANFARE_170_199
+	const SFX_DEX_FANFARE_200_229
+	const SFX_DEX_FANFARE_230_PLUS
+	const SFX_EVOLVED
+	const SFX_MASTER_BALL
+	const SFX_EGG_HATCH
+	const SFX_GS_INTRO_CHARIZARD_FIREBALL
+	const SFX_GS_INTRO_POKEMON_APPEARS
+	const SFX_FLASH
+	const SFX_GAME_FREAK_LOGO_GS
+	const SFX_NOT_VERY_EFFECTIVE
+	const SFX_DAMAGE
+	const SFX_SUPER_EFFECTIVE
+	const SFX_BALL_BOUNCE
+	const SFX_MOONLIGHT
+	const SFX_ENCORE
+	const SFX_BEAT_UP
+	const SFX_BATON_PASS
+	const SFX_BALL_WIGGLE
+	const SFX_SWEET_SCENT
+	const SFX_SWEET_SCENT_2
+	const SFX_HIT_END_OF_EXP_BAR
+	const SFX_GIVE_TRADEMON
+	const SFX_GET_TRADEMON
+	const SFX_TRAIN_ARRIVED
+	const SFX_STOP_SLOT
+	const SFX_2_BOOPS
+	const SFX_GLASS_TING
+	const SFX_GLASS_TING_2
+
+	const SFX_INTRO_UNOWN_1
+	const SFX_INTRO_UNOWN_2
+	const SFX_INTRO_UNOWN_3
+	const SFX_DITTO_POP_UP
+	const SFX_DITTO_TRANSFORM
+	const SFX_INTRO_SUICUNE_1
+	const SFX_INTRO_PICHU
+	const SFX_INTRO_SUICUNE_2
+	const SFX_INTRO_SUICUNE_3
+	const SFX_DITTO_BOUNCE
+	const SFX_INTRO_SUICUNE_4
+	const SFX_GAME_FREAK_PRESENTS
+	const SFX_TINGLE
+	const SFX_UNKNOWN_CB
+	const SFX_TWO_PC_BEEPS
+	const SFX_4_NOTE_DITTY
+	const SFX_TWINKLE
--- a/constants/std_constants.asm
+++ b/constants/std_constants.asm
@@ -46,3 +46,8 @@
 	enum rematchgiftf
 	enum gymstatue1
 	enum gymstatue2
+	enum receiveitem
+	enum receivetogepiegg
+	enum pcscript
+	enum gamecornercoinvendor
+	enum happinesschecknpc
--- a/constants/trainer_constants.asm
+++ b/constants/trainer_constants.asm
@@ -1,625 +1,609 @@
-NUM_TRAINER_CLASSES EQU $44
-
 ; trainer groups
-FALKNER      EQU $01
-WHITNEY      EQU $02
-BUGSY        EQU $03
-MORTY        EQU $04
-PRYCE        EQU $05
-JASMINE      EQU $06
-CHUCK        EQU $07
-CLAIR        EQU $08
-RIVAL1       EQU $09
-POKEMON_PROF EQU $0A
-WILL         EQU $0B
-CAL          EQU $0C
-BRUNO        EQU $0D
-KAREN        EQU $0E
-KOGA         EQU $0F
-CHAMPION     EQU $10
-BROCK        EQU $11
-MISTY        EQU $12
-LT_SURGE     EQU $13
-SCIENTIST    EQU $14
-ERIKA        EQU $15
-YOUNGSTER    EQU $16
-SCHOOLBOY    EQU $17
-BIRD_KEEPER  EQU $18
-LASS         EQU $19
-JANINE       EQU $1A
-COOLTRAINERM EQU $1B
-COOLTRAINERF EQU $1C
-BEAUTY       EQU $1D
-POKEMANIAC   EQU $1E
-GRUNTM       EQU $1F
-GENTLEMAN    EQU $20
-SKIER        EQU $21
-TEACHER      EQU $22
-SABRINA      EQU $23
-BUG_CATCHER  EQU $24
-FISHER       EQU $25
-SWIMMERM     EQU $26
-SWIMMERF     EQU $27
-SAILOR       EQU $28
-SUPER_NERD   EQU $29
-RIVAL2       EQU $2A
-GUITARIST    EQU $2B
-HIKER        EQU $2C
-BIKER        EQU $2D
-BLAINE       EQU $2E
-BURGLAR      EQU $2F
-FIREBREATHER EQU $30
-JUGGLER      EQU $31
-BLACKBELT_T  EQU $32
-EXECUTIVEM   EQU $33
-PSYCHIC_T    EQU $34
-PICNICKER    EQU $35
-CAMPER       EQU $36
-EXECUTIVEF   EQU $37
-SAGE         EQU $38
-MEDIUM       EQU $39
-BOARDER      EQU $3A
-POKEFANM     EQU $3B
-KIMONO_GIRL  EQU $3C
-TWINS        EQU $3D
-POKEFANF     EQU $3E
-RED          EQU $3F
-BLUE         EQU $40
-OFFICER      EQU $41
-GRUNTF       EQU $42
-MYSTICALMAN  EQU $43
+	enum_start 1
+	trainerclass FALKNER ; 1
 
-; Rival1
-RIVAL1_1 EQU $01
-RIVAL1_2 EQU $02
-RIVAL1_3 EQU $03
-RIVAL1_4 EQU $04
-RIVAL1_5 EQU $05
-RIVAL1_6 EQU $06
-RIVAL1_7 EQU $07
-RIVAL1_8 EQU $08
-RIVAL1_9 EQU $09
-RIVAL1_10 EQU $0a
-RIVAL1_11 EQU $0b
-RIVAL1_12 EQU $0c
-RIVAL1_13 EQU $0d
-RIVAL1_14 EQU $0e
-RIVAL1_15 EQU $0f
+	trainerclass WHITNEY ; 2
 
-; PokemonProf
-; no trainers
+	trainerclass BUGSY ; 3
 
-; SpecialPKMN1
-CAL1 EQU $01
-CAL2 EQU $02
-CAL3 EQU $03
+	trainerclass MORTY ; 4
 
-; Champion
-LANCE EQU $01
+	trainerclass PRYCE ; 5
 
-; Scientist
-ROSS EQU $01
-MITCH EQU $02
-JED EQU $03
-MARC EQU $04
-RICH EQU $05
+	trainerclass JASMINE ; 6
 
-; Youngster
-JOEY1 EQU $01
-MIKEY EQU $02
-ALBERT EQU $03
-GORDON EQU $04
-SAMUEL EQU $05
-IAN EQU $06
-JOEY2 EQU $07
-JOEY3 EQU $08
-WARREN EQU $09
-JIMMY EQU $0a
-OWEN EQU $0b
-JASON EQU $0c
-JOEY4 EQU $0d
-JOEY5 EQU $0e
+	trainerclass CHUCK ; 7
 
-; Schoolboy
-JACK1 EQU $01
-KIPP EQU $02
-ALAN1 EQU $03
-JOHNNY EQU $04
-DANNY EQU $05
-TOMMY EQU $06
-DUDLEY EQU $07
-JOE EQU $08
-BILLY EQU $09
-CHAD1 EQU $0a
-NATE EQU $0b
-RICKY EQU $0c
-JACK2 EQU $0d
-JACK3 EQU $0e
-ALAN2 EQU $0f
-ALAN3 EQU $10
-CHAD2 EQU $11
-CHAD3 EQU $12
-JACK4 EQU $13
-JACK5 EQU $14
-ALAN4 EQU $15
-ALAN5 EQU $16
-CHAD4 EQU $17
-CHAD5 EQU $18
+	trainerclass CLAIR ; 8
 
-; BirdKeeper
-ROD EQU $01
-ABE EQU $02
-BRYAN EQU $03
-THEO EQU $04
-TOBY EQU $05
-DENIS EQU $06
-VANCE1 EQU $07
-HANK EQU $08
-ROY EQU $09
-BORIS EQU $0a
-BOB EQU $0b
-JOSE1 EQU $0c
-PETER EQU $0d
-JOSE2 EQU $0e
-PERRY EQU $0f
-BRET EQU $10
-JOSE3 EQU $11
-VANCE2 EQU $12
-VANCE3 EQU $13
+	trainerclass RIVAL1 ; 9
+	const RIVAL1_1
+	const RIVAL1_2
+	const RIVAL1_3
+	const RIVAL1_4
+	const RIVAL1_5
+	const RIVAL1_6
+	const RIVAL1_7
+	const RIVAL1_8
+	const RIVAL1_9
+	const RIVAL1_10
+	const RIVAL1_11
+	const RIVAL1_12
+	const RIVAL1_13
+	const RIVAL1_14
+	const RIVAL1_15
 
-; Lass
-CARRIE EQU $01
-BRIDGET EQU $02
-ALICE EQU $03
-KRISE EQU $04
-CONNIE1 EQU $05
-LINDA EQU $06
-LAURA EQU $07
-SHANNON EQU $08
-MICHELLE EQU $09
-DANA1 EQU $0a
-ELLEN EQU $0b
-CONNIE2 EQU $0c
-CONNIE3 EQU $0d
-DANA2 EQU $0e
-DANA3 EQU $0f
-DANA4 EQU $10
-DANA5 EQU $11
+	trainerclass POKEMON_PROF ; a
 
-; CooltrainerM
-NICK EQU $01
-AARON EQU $02
-PAUL EQU $03
-CODY EQU $04
-MIKE EQU $05
-GAVEN1 EQU $06
-GAVEN2 EQU $07
-RYAN EQU $08
-JAKE EQU $09
-GAVEN3 EQU $0a
-BLAKE EQU $0b
-BRIAN EQU $0c
-ERICK EQU $0d
-ANDY EQU $0e
-TYLER EQU $0f
-SEAN EQU $10
-KEVIN EQU $11
-STEVE EQU $12
-ALLEN EQU $13
-DARIN EQU $14
+	trainerclass WILL ; b
 
-; CooltrainerF
-GWEN EQU $01
-LOIS EQU $02
-FRAN EQU $03
-LOLA EQU $04
-KATE EQU $05
-IRENE EQU $06
-KELLY EQU $07
-JOYCE EQU $08
-BETH1 EQU $09
-REENA1 EQU $0a
-MEGAN EQU $0b
-BETH2 EQU $0c
-CAROL EQU $0d
-QUINN EQU $0e
-EMMA EQU $0f
-CYBIL EQU $10
-JENN EQU $11
-BETH3 EQU $12
-REENA2 EQU $13
-REENA3 EQU $14
-CARA EQU $15
+	trainerclass CAL ; c
+	const CAL1
+	const CAL2
+	const CAL3
 
-; Beauty
-VICTORIA EQU $01
-SAMANTHA EQU $02
-JULIE EQU $03
-JACLYN EQU $04
-BRENDA EQU $05
-CASSIE EQU $06
-CAROLINE EQU $07
-CARLENE EQU $08
-JESSICA EQU $09
-RACHAEL EQU $0a
-ANGELICA EQU $0b
-KENDRA EQU $0c
-VERONICA EQU $0d
-JULIA EQU $0e
-THERESA EQU $0f
-VALERIE EQU $10
-OLIVIA EQU $11
+	trainerclass BRUNO ; d
 
-; Pokemaniac
-LARRY EQU $01
-ANDREW EQU $02
-CALVIN EQU $03
-SHANE EQU $04
-BEN EQU $05
-BRENT1 EQU $06
-RON EQU $07
-ETHAN EQU $08
-BRENT2 EQU $09
-BRENT3 EQU $0a
-ISSAC EQU $0b
-DONALD EQU $0c
-ZACH EQU $0d
-BRENT4 EQU $0e
-MILLER EQU $0f
+	trainerclass KAREN ; e
 
-; Gentleman
-PRESTON EQU $01
-EDWARD EQU $02
-GREGORY EQU $03
-VIRGIL EQU $04
-ALFRED EQU $05
+	trainerclass KOGA ; f
 
-; Skier
-ROXANNE EQU $01
-CLARISSA EQU $02
+	trainerclass CHAMPION ; 10
+	const LANCE
 
-; Teacher
-COLETTE EQU $01
-HILLARY EQU $02
-SHIRLEY EQU $03
+	trainerclass BROCK ; 11
 
-; BugCatcher
-DON EQU $01
-ROB EQU $02
-ED EQU $03
-WADE1 EQU $04
-BUG_CATCHER_BENNY EQU $05
-AL EQU $06
-JOSH EQU $07
-ARNIE1 EQU $08
-KEN EQU $09
-WADE2 EQU $0a
-WADE3 EQU $0b
-DOUG EQU $0c
-ARNIE2 EQU $0d
-ARNIE3 EQU $0e
-WADE4 EQU $0f
-WADE5 EQU $10
-ARNIE4 EQU $11
-ARNIE5 EQU $12
-WAYNE EQU $13
+	trainerclass MISTY ; 12
 
-; Fisher
-JUSTIN EQU $01
-RALPH1 EQU $02
-ARNOLD EQU $03
-KYLE EQU $04
-HENRY EQU $05
-MARVIN EQU $06
-TULLY1 EQU $07
-ANDRE EQU $08
-RAYMOND EQU $09
-WILTON1 EQU $0a
-EDGAR EQU $0b
-JONAH EQU $0c
-MARTIN EQU $0d
-STEPHEN EQU $0e
-BARNEY EQU $0f
-RALPH2 EQU $10
-RALPH3 EQU $11
-TULLY2 EQU $12
-TULLY3 EQU $13
-WILTON2 EQU $14
-SCOTT EQU $15
-WILTON3 EQU $16
-RALPH4 EQU $17
-RALPH5 EQU $18
-TULLY4 EQU $19
+	trainerclass LT_SURGE ; 13
 
-; SwimmerM
-HAROLD EQU $01
-SIMON EQU $02
-RANDALL EQU $03
-CHARLIE EQU $04
-GEORGE EQU $05
-BERKE EQU $06
-KIRK EQU $07
-MATHEW EQU $08
-HAL EQU $09
-PATON EQU $0a
-DARYL EQU $0b
-WALTER EQU $0c
-TONY EQU $0d
-JEROME EQU $0e
-TUCKER EQU $0f
-RICK EQU $10
-CAMERON EQU $11
-SETH EQU $12
-JAMES EQU $13
-LEWIS EQU $14
-PARKER EQU $15
+	trainerclass SCIENTIST ; 14
+	const ROSS
+	const MITCH
+	const JED
+	const MARC
+	const RICH
+
+	trainerclass ERIKA ; 15
+
+	trainerclass YOUNGSTER ; 16
+	const JOEY1
+	const MIKEY
+	const ALBERT
+	const GORDON
+	const SAMUEL
+	const IAN
+	const JOEY2
+	const JOEY3
+	const WARREN
+	const JIMMY
+	const OWEN
+	const JASON
+	const JOEY4
+	const JOEY5
+
+	trainerclass SCHOOLBOY ; 17
+	const JACK1
+	const KIPP
+	const ALAN1
+	const JOHNNY
+	const DANNY
+	const TOMMY
+	const DUDLEY
+	const JOE
+	const BILLY
+	const CHAD1
+	const NATE
+	const RICKY
+	const JACK2
+	const JACK3
+	const ALAN2
+	const ALAN3
+	const CHAD2
+	const CHAD3
+	const JACK4
+	const JACK5
+	const ALAN4
+	const ALAN5
+	const CHAD4
+	const CHAD5
+
+	trainerclass BIRD_KEEPER ; 18
+	const ROD
+	const ABE
+	const BRYAN
+	const THEO
+	const TOBY
+	const DENIS
+	const VANCE1
+	const HANK
+	const ROY
+	const BORIS
+	const BOB
+	const JOSE1
+	const PETER
+	const JOSE2
+	const PERRY
+	const BRET
+	const JOSE3
+	const VANCE2
+	const VANCE3
+
+	trainerclass LASS ; 19
+	const CARRIE
+	const BRIDGET
+	const ALICE
+	const KRISE
+	const CONNIE1
+	const LINDA
+	const LAURA
+	const SHANNON
+	const MICHELLE
+	const DANA1
+	const ELLEN
+	const CONNIE2
+	const CONNIE3
+	const DANA2
+	const DANA3
+	const DANA4
+	const DANA5
+
+	trainerclass JANINE ; 1a
+
+	trainerclass COOLTRAINERM ; 1b
+	const NICK
+	const AARON
+	const PAUL
+	const CODY
+	const MIKE
+	const GAVEN1
+	const GAVEN2
+	const RYAN
+	const JAKE
+	const GAVEN3
+	const BLAKE
+	const BRIAN
+	const ERICK
+	const ANDY
+	const TYLER
+	const SEAN
+	const KEVIN
+	const STEVE
+	const ALLEN
+	const DARIN
+
+	trainerclass COOLTRAINERF ; 1c
+	const GWEN
+	const LOIS
+	const FRAN
+	const LOLA
+	const KATE
+	const IRENE
+	const KELLY
+	const JOYCE
+	const BETH1
+	const REENA1
+	const MEGAN
+	const BETH2
+	const CAROL
+	const QUINN
+	const EMMA
+	const CYBIL
+	const JENN
+	const BETH3
+	const REENA2
+	const REENA3
+	const CARA
+
+	trainerclass BEAUTY ; 1d
+	const VICTORIA
+	const SAMANTHA
+	const JULIE
+	const JACLYN
+	const BRENDA
+	const CASSIE
+	const CAROLINE
+	const CARLENE
+	const JESSICA
+	const RACHAEL
+	const ANGELICA
+	const KENDRA
+	const VERONICA
+	const JULIA
+	const THERESA
+	const VALERIE
+	const OLIVIA
 
-; SwimmerF
-ELAINE EQU $01
-PAULA EQU $02
-KAYLEE EQU $03
-SUSIE EQU $04
-DENISE EQU $05
-KARA EQU $06
-WENDY EQU $07
-LISA EQU $08
-JILL EQU $09
-MARY EQU $0a
-KATIE EQU $0b
-DAWN EQU $0c
-TARA EQU $0d
-NICOLE EQU $0e
-LORI EQU $0f
-JODY EQU $10
-NIKKI EQU $11
-DIANA EQU $12
-BRIANA EQU $13
+	trainerclass POKEMANIAC ; 1e
+	const LARRY
+	const ANDREW
+	const CALVIN
+	const SHANE
+	const BEN
+	const BRENT1
+	const RON
+	const ETHAN
+	const BRENT2
+	const BRENT3
+	const ISSAC
+	const DONALD
+	const ZACH
+	const BRENT4
+	const MILLER
 
-; Sailor
-EUGENE EQU $01
-HUEY1 EQU $02
-TERRELL EQU $03
-KENT EQU $04
-ERNEST EQU $05
-JEFF EQU $06
-GARRETT EQU $07
-KENNETH EQU $08
-STANLY EQU $09
-HARRY EQU $0a
-HUEY2 EQU $0b
-HUEY3 EQU $0c
-HUEY4 EQU $0d
+	trainerclass GRUNTM ; 1f
 
-; SuperNerd
-STAN EQU $01
-ERIC EQU $02
-GREGG EQU $03
-JAY EQU $04
-DAVE EQU $05
-SAM EQU $06
-TOM EQU $07
-PAT EQU $08
-SHAWN EQU $09
-TERU EQU $0a
-RUSS EQU $0b
-NORTON EQU $0c
-HUGH EQU $0d
-MARKUS EQU $0e
+	trainerclass GENTLEMAN ; 20
+	const PRESTON
+	const EDWARD
+	const GREGORY
+	const VIRGIL
+	const ALFRED
 
-; Guitarist
-CLYDE EQU $01
-VINCENT EQU $02
+	trainerclass SKIER ; 21
+	const ROXANNE
+	const CLARISSA
 
-; Hiker
-ANTHONY1 EQU $01
-RUSSELL EQU $02
-PHILLIP EQU $03
-LEONARD EQU $04
-ANTHONY2 EQU $05
-BENJAMIN EQU $06
-ERIK EQU $07
-MICHAEL EQU $08
-PARRY1 EQU $09
-TIMOTHY EQU $0a
-BAILEY EQU $0b
-ANTHONY3 EQU $0c
-TIM EQU $0d
-NOLAND EQU $0e
-SIDNEY EQU $0f
-KENNY EQU $10
-JIM EQU $11
-DANIEL EQU $12
-PARRY2 EQU $13
-PARRY3 EQU $14
-ANTHONY4 EQU $15
-ANTHONY5 EQU $16
+	trainerclass TEACHER ; 22
+	const COLETTE
+	const HILLARY
+	const SHIRLEY
 
-; Biker
-BIKER_BENNY EQU $01
-KAZU EQU $02
-DWAYNE EQU $03
-HARRIS EQU $04
-ZEKE EQU $05
-CHARLES EQU $06
-RILEY EQU $07
-JOEL EQU $08
-GLENN EQU $09
+	trainerclass SABRINA ; 23
 
-; Burglar
-DUNCAN EQU $01
-EDDIE EQU $02
-COREY EQU $03
+	trainerclass BUG_CATCHER ; 24
+	const DON
+	const ROB
+	const ED
+	const WADE1
+	const BUG_CATCHER_BENNY
+	const AL
+	const JOSH
+	const ARNIE1
+	const KEN
+	const WADE2
+	const WADE3
+	const DOUG
+	const ARNIE2
+	const ARNIE3
+	const WADE4
+	const WADE5
+	const ARNIE4
+	const ARNIE5
+	const WAYNE
 
-; Firebreather
-OTIS EQU $01
-DICK EQU $02
-NED EQU $03
-BURT EQU $04
-BILL EQU $05
-WALT EQU $06
-RAY EQU $07
-LYLE EQU $08
+	trainerclass FISHER ; 25
+	const JUSTIN
+	const RALPH1
+	const ARNOLD
+	const KYLE
+	const HENRY
+	const MARVIN
+	const TULLY1
+	const ANDRE
+	const RAYMOND
+	const WILTON1
+	const EDGAR
+	const JONAH
+	const MARTIN
+	const STEPHEN
+	const BARNEY
+	const RALPH2
+	const RALPH3
+	const TULLY2
+	const TULLY3
+	const WILTON2
+	const SCOTT
+	const WILTON3
+	const RALPH4
+	const RALPH5
+	const TULLY4
 
-; Juggler
-IRWIN1 EQU $01
-FRITZ EQU $02
-HORTON EQU $03
-IRWIN2 EQU $04
-IRWIN3 EQU $05
-IRWIN4 EQU $06
+	trainerclass SWIMMERM ; 26
+	const HAROLD
+	const SIMON
+	const RANDALL
+	const CHARLIE
+	const GEORGE
+	const BERKE
+	const KIRK
+	const MATHEW
+	const HAL
+	const PATON
+	const DARYL
+	const WALTER
+	const TONY
+	const JEROME
+	const TUCKER
+	const RICK
+	const CAMERON
+	const SETH
+	const JAMES
+	const LEWIS
+	const PARKER
 
-; Blackbelt
-KENJI1 EQU $01
-YOSHI EQU $02
-KENJI2 EQU $03
-LAO EQU $04
-NOB EQU $05
-KIYO EQU $06
-LUNG EQU $07
-KENJI3 EQU $08
-WAI EQU $09
+	trainerclass SWIMMERF ; 27
+	const ELAINE
+	const PAULA
+	const KAYLEE
+	const SUSIE
+	const DENISE
+	const KARA
+	const WENDY
+	const LISA
+	const JILL
+	const MARY
+	const KATIE
+	const DAWN
+	const TARA
+	const NICOLE
+	const LORI
+	const JODY
+	const NIKKI
+	const DIANA
+	const BRIANA
 
-; Psychic
-NATHAN EQU $01
-FRANKLIN EQU $02
-HERMAN EQU $03
-FIDEL EQU $04
-GREG EQU $05
-NORMAN EQU $06
-MARK EQU $07
-PHIL EQU $08
-RICHARD EQU $09
-GILBERT EQU $0a
-JARED EQU $0b
-RODNEY EQU $0c
+	trainerclass SAILOR ; 28
+	const EUGENE
+	const HUEY1
+	const TERRELL
+	const KENT
+	const ERNEST
+	const JEFF
+	const GARRETT
+	const KENNETH
+	const STANLY
+	const HARRY
+	const HUEY2
+	const HUEY3
+	const HUEY4
 
-; Picnicker
-LIZ1 EQU $01
-GINA1 EQU $02
-BROOKE EQU $03
-KIM EQU $04
-CINDY EQU $05
-HOPE EQU $06
-SHARON EQU $07
-DEBRA EQU $08
-GINA2 EQU $09
-ERIN1 EQU $0a
-LIZ2 EQU $0b
-LIZ3 EQU $0c
-HEIDI EQU $0d
-EDNA EQU $0e
-GINA3 EQU $0f
-TIFFANY1 EQU $10
-TIFFANY2 EQU $11
-ERIN2 EQU $12
-TANYA EQU $13
-TIFFANY3 EQU $14
-ERIN3 EQU $15
-LIZ4 EQU $16
-LIZ5 EQU $17
-GINA4 EQU $18
-GINA5 EQU $19
-TIFFANY4 EQU $1a
+	trainerclass SUPER_NERD ; 29
+	const STAN
+	const ERIC
+	const GREGG
+	const JAY
+	const DAVE
+	const SAM
+	const TOM
+	const PAT
+	const SHAWN
+	const TERU
+	const RUSS
+	const NORTON
+	const HUGH
+	const MARKUS
 
-; Camper
-ROLAND EQU $01
-TODD1 EQU $02
-IVAN EQU $03
-ELLIOT EQU $04
-BARRY EQU $05
-LLOYD EQU $06
-DEAN EQU $07
-SID EQU $08
-HARVEY EQU $09
-DALE EQU $0a
-TED EQU $0b
-TODD2 EQU $0c
-TODD3 EQU $0d
-THOMAS EQU $0e
-LEROY EQU $0f
-DAVID EQU $10
-JOHN EQU $11
-JERRY EQU $12
-SPENCER EQU $13
-TODD4 EQU $14
-TODD5 EQU $15
-QUENTIN EQU $16
+	trainerclass RIVAL2 ; 2a
 
-; Sage
-CHOW EQU $01
-NICO EQU $02
-JIN EQU $03
-TROY EQU $04
-JEFFREY EQU $05
-PING EQU $06
-EDMOND EQU $07
-NEAL EQU $08
-LI EQU $09
-GAKU EQU $0a
-MASA EQU $0b
-KOJI EQU $0c
+	trainerclass GUITARIST ; 2b
+	const CLYDE
+	const VINCENT
 
-; Medium
-MARTHA EQU $01
-GRACE EQU $02
-BETHANY EQU $03
-MARGRET EQU $04
-ETHEL EQU $05
-REBECCA EQU $06
-DORIS EQU $07
+	trainerclass HIKER ; 2c
+	const ANTHONY1
+	const RUSSELL
+	const PHILLIP
+	const LEONARD
+	const ANTHONY2
+	const BENJAMIN
+	const ERIK
+	const MICHAEL
+	const PARRY1
+	const TIMOTHY
+	const BAILEY
+	const ANTHONY3
+	const TIM
+	const NOLAND
+	const SIDNEY
+	const KENNY
+	const JIM
+	const DANIEL
+	const PARRY2
+	const PARRY3
+	const ANTHONY4
+	const ANTHONY5
 
-; Boarder
-RONALD EQU $01
-BRAD EQU $02
-DOUGLAS EQU $03
+	trainerclass BIKER ; 2d
+	const BIKER_BENNY
+	const KAZU
+	const DWAYNE
+	const HARRIS
+	const ZEKE
+	const CHARLES
+	const RILEY
+	const JOEL
+	const GLENN
 
-; PokefanM
-WILLIAM EQU $01
-DEREK1 EQU $02
-ROBERT EQU $03
-JOSHUA EQU $04
-CARTER EQU $05
-TREVOR EQU $06
-BRANDON EQU $07
-JEREMY EQU $08
-COLIN EQU $09
-DEREK2 EQU $0a
-DEREK3 EQU $0b
-ALEX EQU $0c
-REX EQU $0d
-ALLAN EQU $0e
+	trainerclass BLAINE ; 2e
 
-; KimonoGirl
-NAOKO1 EQU $01
-NAOKO2 EQU $02
-SAYO EQU $03
-ZUKI EQU $04
-KUNI EQU $05
-MIKI EQU $06
+	trainerclass BURGLAR ; 2f
+	const DUNCAN
+	const EDDIE
+	const COREY
 
-; Twins
-AMYANDMAY1 EQU $01
-ANNANDANNE1 EQU $02
-ANNANDANNE2 EQU $03
-AMYANDMAY2 EQU $04
-JOANDZOE1 EQU $05
-JOANDZOE2 EQU $06
-MEGANDPEG1 EQU $07
-MEGANDPEG2 EQU $08
-LEAANDPIA1 EQU $09
-LEAANDPIA2 EQU $0a
+	trainerclass FIREBREATHER ; 30
+	const OTIS
+	const DICK
+	const NED
+	const BURT
+	const BILL
+	const WALT
+	const RAY
+	const LYLE
 
-; PokefanF
-BEVERLY1 EQU $01
-RUTH EQU $02
-BEVERLY2 EQU $03
-BEVERLY3 EQU $04
-GEORGIA EQU $05
-JAIME EQU $06
+	trainerclass JUGGLER ; 31
+	const IRWIN1
+	const FRITZ
+	const HORTON
+	const IRWIN2
+	const IRWIN3
+	const IRWIN4
 
-; Officer
-KEITH EQU $01
-DIRK EQU $02
+	trainerclass BLACKBELT_T ; 32
+	const KENJI1
+	const YOSHI
+	const KENJI2
+	const LAO
+	const NOB
+	const KIYO
+	const LUNG
+	const KENJI3
+	const WAI
 
-; Mysticalman
-EUSINE EQU $01
+	trainerclass EXECUTIVEM ; 33
+
+	trainerclass PSYCHIC_T ; 34
+	const NATHAN
+	const FRANKLIN
+	const HERMAN
+	const FIDEL
+	const GREG
+	const NORMAN
+	const MARK
+	const PHIL
+	const RICHARD
+	const GILBERT
+	const JARED
+	const RODNEY
+
+	trainerclass PICNICKER ; 35
+	const LIZ1
+	const GINA1
+	const BROOKE
+	const KIM
+	const CINDY
+	const HOPE
+	const SHARON
+	const DEBRA
+	const GINA2
+	const ERIN1
+	const LIZ2
+	const LIZ3
+	const HEIDI
+	const EDNA
+	const GINA3
+	const TIFFANY1
+	const TIFFANY2
+	const ERIN2
+	const TANYA
+	const TIFFANY3
+	const ERIN3
+	const LIZ4
+	const LIZ5
+	const GINA4
+	const GINA5
+	const TIFFANY4
+
+	trainerclass CAMPER ; 36
+	const ROLAND
+	const TODD1
+	const IVAN
+	const ELLIOT
+	const BARRY
+	const LLOYD
+	const DEAN
+	const SID
+	const HARVEY
+	const DALE
+	const TED
+	const TODD2
+	const TODD3
+	const THOMAS
+	const LEROY
+	const DAVID
+	const JOHN
+	const JERRY
+	const SPENCER
+	const TODD4
+	const TODD5
+	const QUENTIN
+
+	trainerclass EXECUTIVEF ; 37
+
+	trainerclass SAGE ; 38
+	const CHOW
+	const NICO
+	const JIN
+	const TROY
+	const JEFFREY
+	const PING
+	const EDMOND
+	const NEAL
+	const LI
+	const GAKU
+	const MASA
+	const KOJI
+
+	trainerclass MEDIUM ; 39
+	const MARTHA
+	const GRACE
+	const BETHANY
+	const MARGRET
+	const ETHEL
+	const REBECCA
+	const DORIS
+
+	trainerclass BOARDER ; 3a
+	const RONALD
+	const BRAD
+	const DOUGLAS
+
+	trainerclass POKEFANM ; 3b
+	const WILLIAM
+	const DEREK1
+	const ROBERT
+	const JOSHUA
+	const CARTER
+	const TREVOR
+	const BRANDON
+	const JEREMY
+	const COLIN
+	const DEREK2
+	const DEREK3
+	const ALEX
+	const REX
+	const ALLAN
+
+	trainerclass KIMONO_GIRL ; 3c
+	const NAOKO1
+	const NAOKO2
+	const SAYO
+	const ZUKI
+	const KUNI
+	const MIKI
+
+	trainerclass TWINS ; 3d
+	const AMYANDMAY1
+	const ANNANDANNE1
+	const ANNANDANNE2
+	const AMYANDMAY2
+	const JOANDZOE1
+	const JOANDZOE2
+	const MEGANDPEG1
+	const MEGANDPEG2
+	const LEAANDPIA1
+	const LEAANDPIA2
+
+	trainerclass POKEFANF ; 3e
+	const BEVERLY1
+	const RUTH
+	const BEVERLY2
+	const BEVERLY3
+	const GEORGIA
+	const JAIME
+
+	trainerclass RED ; 3f
+
+	trainerclass BLUE ; 40
+
+	trainerclass OFFICER ; 41
+	const KEITH
+	const DIRK
+
+	trainerclass GRUNTF ; 42
+
+	trainerclass MYSTICALMAN ; 43
+	const EUSINE
+
+NUM_TRAINER_CLASSES EQU __enum__
--- a/constants/wram_constants.asm
+++ b/constants/wram_constants.asm
@@ -68,3 +68,6 @@
 PLAYER_SLIP      EQU 2
 PLAYER_SURF      EQU 4
 PLAYER_SURF_PIKA EQU 8
+
+OBJECT_STRUCT_LENGTH EQU 40
+NUM_OBJECT_STRUCTS EQU 13
--- a/data/base_stats.asm
+++ b/data/base_stats.asm
@@ -21,14 +21,7 @@
 	dn MONSTER, PLANT ; egg groups
 
 	; tmhm
-	db %00100110
-	db %00011110
-	db %00111101
-	db %11000100
-	db %10000110
-	db %00011000
-	db %01000101
-	db %00000000
+	tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FURY_CUTTER, CUT, FLASH
 	; end
 
 BaseData1::
@@ -54,14 +47,7 @@
 	dn MONSTER, PLANT ; egg groups
 
 	; tmhm
-	db %00100110
-	db %00011110
-	db %00111101
-	db %11000100
-	db %10000110
-	db %00011000
-	db %01000101
-	db %00000000
+	tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FURY_CUTTER, CUT, FLASH
 	; end
 
 VenusaurBaseData:: ; 0x51464
@@ -85,14 +71,7 @@
 	dn MONSTER, PLANT ; egg groups
 
 	; tmhm
-	db %00110110
-	db %01011110
-	db %00111101
-	db %11000100
-	db %10000110
-	db %00011000
-	db %01000101
-	db %00000000
+	tmhm HEADBUTT, CURSE, ROAR, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FURY_CUTTER, CUT, FLASH
 	; end
 
 CharmanderBaseData:: ; 0x51484
@@ -116,14 +95,7 @@
 	dn MONSTER, REPTILE ; egg groups
 
 	; tmhm
-	db %10100111
-	db %00010110
-	db %11011001
-	db %11001100
-	db %11100110
-	db %10011000
-	db %00100101
-	db %00000010
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, CUT, STRENGTH, FLAMETHROWER
 	; end
 
 CharmeleonBaseData:: ; 0x514a4
@@ -147,14 +119,7 @@
 	dn MONSTER, REPTILE ; egg groups
 
 	; tmhm
-	db %10100111
-	db %00010110
-	db %11011001
-	db %11001100
-	db %11100110
-	db %10011000
-	db %00100101
-	db %00000010
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, CUT, STRENGTH, FLAMETHROWER
 	; end
 
 CharizardBaseData:: ; 0x514c4
@@ -178,14 +143,7 @@
 	dn MONSTER, REPTILE ; egg groups
 
 	; tmhm
-	db %10110111
-	db %01010110
-	db %11011001
-	db %11001110
-	db %11110110
-	db %11011000
-	db %00101101
-	db %00000010
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, DEFENSE_CURL, REST, ATTRACT, STEEL_WING, FIRE_PUNCH, FURY_CUTTER, CUT, FLY, STRENGTH, FLAMETHROWER
 	; end
 
 SquirtleBaseData:: ; 0x514e4
@@ -209,14 +167,7 @@
 	dn MONSTER, AMPHIBIAN ; egg groups
 
 	; tmhm
-	db %10101111
-	db %10110010
-	db %01011011
-	db %11001100
-	db %10000111
-	db %00011000
-	db %10110000
-	db %00001001
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
 	; end
 
 WartortleBaseData:: ; 0x51504
@@ -240,14 +191,7 @@
 	dn MONSTER, AMPHIBIAN ; egg groups
 
 	; tmhm
-	db %10101111
-	db %10110010
-	db %01011011
-	db %11001100
-	db %10000111
-	db %00011000
-	db %10110000
-	db %00001001
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
 	; end
 
 BlastoiseBaseData:: ; 0x51524
@@ -271,14 +215,7 @@
 	dn MONSTER, AMPHIBIAN ; egg groups
 
 	; tmhm
-	db %10111111
-	db %11110010
-	db %01011011
-	db %11001110
-	db %10000111
-	db %00011000
-	db %10110000
-	db %00001001
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
 	; end
 
 CaterpieBaseData:: ; 0x51544
@@ -302,14 +239,7 @@
 	dn INSECT, INSECT ; egg groups
 
 	; tmhm
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
+	tmhm
 	; end
 
 MetapodBaseData:: ; 0x51564
@@ -333,14 +263,7 @@
 	dn INSECT, INSECT ; egg groups
 
 	; tmhm
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
+	tmhm
 	; end
 
 ButterfreeBaseData:: ; 0x51584
@@ -364,14 +287,7 @@
 	dn INSECT, INSECT ; egg groups
 
 	; tmhm
-	db %00100100
-	db %01011110
-	db %00111101
-	db %10010100
-	db %01000110
-	db %00011000
-	db %01000010
-	db %00000000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, NIGHTMARE, FLASH
 	; end
 
 WeedleBaseData:: ; 0x515a4
@@ -395,14 +311,7 @@
 	dn INSECT, INSECT ; egg groups
 
 	; tmhm
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
+	tmhm
 	; end
 
 KakunaBaseData:: ; 0x515c4
@@ -426,14 +335,7 @@
 	dn INSECT, INSECT ; egg groups
 
 	; tmhm
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
+	tmhm
 	; end
 
 BeedrillBaseData:: ; 0x515e4
@@ -457,14 +359,7 @@
 	dn INSECT, INSECT ; egg groups
 
 	; tmhm
-	db %00100100
-	db %01011110
-	db %00011101
-	db %10000100
-	db %01001110
-	db %00011000
-	db %00000101
-	db %00000000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SWIFT, REST, ATTRACT, FURY_CUTTER, CUT
 	; end
 
 PidgeyBaseData:: ; 0x51604
@@ -488,14 +383,7 @@
 	dn AVIAN, AVIAN ; egg groups
 
 	; tmhm
-	db %00100100
-	db %00010110
-	db %00011001
-	db %11000100
-	db %01000110
-	db %01111100
-	db %00001000
-	db %00000000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
 	; end
 
 PidgeottoBaseData:: ; 0x51624
@@ -519,14 +407,7 @@
 	dn AVIAN, AVIAN ; egg groups
 
 	; tmhm
-	db %00100100
-	db %00010110
-	db %00011001
-	db %11000100
-	db %01000110
-	db %01111100
-	db %00001000
-	db %00000000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
 	; end
 
 PidgeotBaseData:: ; 0x51644
@@ -550,14 +431,7 @@
 	dn AVIAN, AVIAN ; egg groups
 
 	; tmhm
-	db %00100100
-	db %01010110
-	db %00011001
-	db %11000100
-	db %01000110
-	db %01111100
-	db %00001000
-	db %00000000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
 	; end
 
 RattataBaseData:: ; 0x51664
@@ -581,14 +455,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %10100110
-	db %10110110
-	db %01011001
-	db %11101101
-	db %11000110
-	db %00111000
-	db %00000000
-	db %00000000
+	tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DIG, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, THIEF
 	; end
 
 RaticateBaseData:: ; 0x51684
@@ -612,14 +479,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %10110110
-	db %11110110
-	db %01011001
-	db %11101101
-	db %11000110
-	db %00111000
-	db %00100100
-	db %00001100
+	tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DIG, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, THIEF, CUT, STRENGTH, THUNDERBOLT, ICE_BEAM
 	; end
 
 SpearowBaseData:: ; 0x516a4
@@ -643,14 +503,7 @@
 	dn AVIAN, AVIAN ; egg groups
 
 	; tmhm
-	db %00100100
-	db %00010110
-	db %00011001
-	db %11000100
-	db %01000110
-	db %01111100
-	db %00001000
-	db %00000000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
 	; end
 
 FearowBaseData:: ; 0x516c4
@@ -674,14 +527,7 @@
 	dn AVIAN, AVIAN ; egg groups
 
 	; tmhm
-	db %00100100
-	db %01010110
-	db %00011001
-	db %11000100
-	db %01000110
-	db %01111100
-	db %00001000
-	db %00000000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
 	; end
 
 EkansBaseData:: ; 0x516e4
@@ -705,14 +551,7 @@
 	dn FIELD, REPTILE ; egg groups
 
 	; tmhm
-	db %00100110
-	db %00010110
-	db %00011101
-	db %10001110
-	db %00001110
-	db %00111000
-	db %00100000
-	db %00000000
+	tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, STRENGTH
 	; end
 
 ArbokBaseData:: ; 0x51704
@@ -736,14 +575,7 @@
 	dn FIELD, REPTILE ; egg groups
 
 	; tmhm
-	db %00100110
-	db %01010110
-	db %00011101
-	db %10001110
-	db %00001110
-	db %00111000
-	db %00100000
-	db %00000000
+	tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, STRENGTH
 	; end
 
 PikachuBaseData:: ; 0x51724
@@ -767,14 +599,7 @@
 	dn FIELD, FAIRY ; egg groups
 
 	; tmhm
-	db %01101111
-	db %00010010
-	db %01011011
-	db %11000101
-	db %11000110
-	db %00011101
-	db %01100000
-	db %00000100
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, STRENGTH, FLASH, THUNDERBOLT
 	; end
 
 RaichuBaseData:: ; 0x51744
@@ -798,14 +623,7 @@
 	dn FIELD, FAIRY ; egg groups
 
 	; tmhm
-	db %01101111
-	db %01010010
-	db %01011011
-	db %11000101
-	db %11000110
-	db %00111101
-	db %01100000
-	db %00000100
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, STRENGTH, FLASH, THUNDERBOLT
 	; end
 
 SandshrewBaseData:: ; 0x51764
@@ -829,14 +647,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %10101111
-	db %00010110
-	db %01011001
-	db %11001110
-	db %11010110
-	db %00111100
-	db %00100101
-	db %00000000
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, STRENGTH
 	; end
 
 SandslashBaseData:: ; 0x51784
@@ -860,14 +671,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %10101111
-	db %01010110
-	db %01011001
-	db %11001110
-	db %11010110
-	db %00111100
-	db %00100101
-	db %00000000
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, STRENGTH
 	; end
 
 Nidoran_FBaseData:: ; 0x517a4
@@ -891,14 +695,7 @@
 	dn MONSTER, FIELD ; egg groups
 
 	; tmhm
-	db %00100110
-	db %00110110
-	db %01011011
-	db %11000101
-	db %10000110
-	db %00111100
-	db %00000000
-	db %00000100
+	tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, THUNDERBOLT
 	; end
 
 NidorinaBaseData:: ; 0x517c4
@@ -922,14 +719,7 @@
 	dn NO_EGGS, NO_EGGS ; egg groups
 
 	; tmhm
-	db %10100110
-	db %00110110
-	db %01011011
-	db %11000101
-	db %10000110
-	db %00111100
-	db %00100000
-	db %00001100
+	tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, STRENGTH, THUNDERBOLT, ICE_BEAM
 	; end
 
 NidoqueenBaseData:: ; 0x517e4
@@ -953,14 +743,7 @@
 	dn NO_EGGS, NO_EGGS ; egg groups
 
 	; tmhm
-	db %10110111
-	db %11110110
-	db %01011011
-	db %11100111
-	db %10110111
-	db %10111101
-	db %00110001
-	db %00001110
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
 	; end
 
 Nidoran_MBaseData:: ; 0x51804
@@ -984,14 +767,7 @@
 	dn MONSTER, FIELD ; egg groups
 
 	; tmhm
-	db %00100110
-	db %00110110
-	db %01011011
-	db %11000101
-	db %10000110
-	db %00111100
-	db %00000000
-	db %00000100
+	tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, THUNDERBOLT
 	; end
 
 NidorinoBaseData:: ; 0x51824
@@ -1015,14 +791,7 @@
 	dn MONSTER, FIELD ; egg groups
 
 	; tmhm
-	db %10100110
-	db %00110110
-	db %01011011
-	db %11000101
-	db %10000110
-	db %00111100
-	db %00100000
-	db %00001100
+	tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, STRENGTH, THUNDERBOLT, ICE_BEAM
 	; end
 
 NidokingBaseData:: ; 0x51844
@@ -1046,14 +815,7 @@
 	dn MONSTER, FIELD ; egg groups
 
 	; tmhm
-	db %10110111
-	db %11110110
-	db %01011011
-	db %11100111
-	db %10110111
-	db %10111101
-	db %00110001
-	db %00001110
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
 	; end
 
 ClefairyBaseData:: ; 0x51864
@@ -1077,14 +839,7 @@
 	dn FAIRY, FAIRY ; egg groups
 
 	; tmhm
-	db %01101111
-	db %00110111
-	db %01111011
-	db %11110101
-	db %10100111
-	db %10011111
-	db %01100010
-	db %00001110
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
 	; end
 
 ClefableBaseData:: ; 0x51884
@@ -1108,14 +863,7 @@
 	dn FAIRY, FAIRY ; egg groups
 
 	; tmhm
-	db %01101111
-	db %01110111
-	db %01111011
-	db %11110101
-	db %10100111
-	db %10011111
-	db %01100010
-	db %00001110
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
 	; end
 
 VulpixBaseData:: ; 0x518a4
@@ -1139,14 +887,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %00100110
-	db %00010110
-	db %01011001
-	db %10001100
-	db %01100110
-	db %00011000
-	db %00000000
-	db %00000010
+	tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
 	; end
 
 NinetalesBaseData:: ; 0x518c4
@@ -1170,14 +911,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %00110110
-	db %01010110
-	db %01011001
-	db %10001100
-	db %01100110
-	db %00011000
-	db %00000000
-	db %00000010
+	tmhm HEADBUTT, CURSE, ROAR, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
 	; end
 
 JigglypuffBaseData:: ; 0x518e4
@@ -1201,14 +935,7 @@
 	dn FAIRY, FAIRY ; egg groups
 
 	; tmhm
-	db %01101111
-	db %00110111
-	db %00111011
-	db %11110101
-	db %10100111
-	db %10011111
-	db %01100010
-	db %00001110
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
 	; end
 
 WigglytuffBaseData:: ; 0x51904
@@ -1232,14 +959,7 @@
 	dn FAIRY, FAIRY ; egg groups
 
 	; tmhm
-	db %01101111
-	db %01110111
-	db %00111011
-	db %11110101
-	db %10100111
-	db %10011111
-	db %01100010
-	db %00001110
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
 	; end
 
 ZubatBaseData:: ; 0x51924
@@ -1263,14 +983,7 @@
 	dn AVIAN, AVIAN ; egg groups
 
 	; tmhm
-	db %00100100
-	db %00010110
-	db %00011101
-	db %10000100
-	db %01000110
-	db %01111100
-	db %00000000
-	db %00000000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING
 	; end
 
 GolbatBaseData:: ; 0x51944
@@ -1294,14 +1007,7 @@
 	dn AVIAN, AVIAN ; egg groups
 
 	; tmhm
-	db %00100100
-	db %01010110
-	db %00011101
-	db %10000100
-	db %01000110
-	db %01111100
-	db %00000000
-	db %00000000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING
 	; end
 
 OddishBaseData:: ; 0x51964
@@ -1325,14 +1031,7 @@
 	dn PLANT, PLANT ; egg groups
 
 	; tmhm
-	db %00100100
-	db %00011110
-	db %00111101
-	db %10000100
-	db %00001110
-	db %00011000
-	db %01000100
-	db %00000000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
 	; end
 
 GloomBaseData:: ; 0x51984
@@ -1356,14 +1055,7 @@
 	dn PLANT, PLANT ; egg groups
 
 	; tmhm
-	db %00100100
-	db %00011110
-	db %00111101
-	db %10000100
-	db %00001110
-	db %00011000
-	db %01000100
-	db %00000000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
 	; end
 
 VileplumeBaseData:: ; 0x519a4
@@ -1387,14 +1079,7 @@
 	dn PLANT, PLANT ; egg groups
 
 	; tmhm
-	db %00100100
-	db %01011110
-	db %00111101
-	db %10000100
-	db %00001110
-	db %00011000
-	db %01000100
-	db %00000000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
 	; end
 
 ParasBaseData:: ; 0x519c4
@@ -1418,14 +1103,7 @@
 	dn INSECT, PLANT ; egg groups
 
 	; tmhm
-	db %10100100
-	db %00011110
-	db %00111101
-	db %10001100
-	db %00001110
-	db %00111000
-	db %01000101
-	db %00000000
+	tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, FLASH
 	; end
 
 ParasectBaseData:: ; 0x519e4
@@ -1449,14 +1127,7 @@
 	dn INSECT, PLANT ; egg groups
 
 	; tmhm
-	db %10100100
-	db %01011110
-	db %00111101
-	db %10001100
-	db %00001110
-	db %00111000
-	db %01000101
-	db %00000000
+	tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, FLASH
 	; end
 
 VenonatBaseData:: ; 0x51a04
@@ -1480,14 +1151,7 @@
 	dn INSECT, INSECT ; egg groups
 
 	; tmhm
-	db %00100100
-	db %00011110
-	db %00111101
-	db %10010100
-	db %01001110
-	db %00111000
-	db %00000000
-	db %00000000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SWIFT, REST, ATTRACT, THIEF
 	; end
 
 VenomothBaseData:: ; 0x51a24
@@ -1511,14 +1175,7 @@
 	dn INSECT, INSECT ; egg groups
 
 	; tmhm
-	db %00100100
-	db %01011110
-	db %00111101
-	db %10010100
-	db %01001110
-	db %00111000
-	db %01000000
-	db %00000000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SWIFT, REST, ATTRACT, THIEF, FLASH
 	; end
 
 DiglettBaseData:: ; 0x51a44
@@ -1542,14 +1199,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %10100100
-	db %00010110
-	db %00011001
-	db %11001110
-	db %00001110
-	db %00111000
-	db %00000100
-	db %00000000
+	tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, CUT
 	; end
 
 DugtrioBaseData:: ; 0x51a64
@@ -1573,14 +1223,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %10100100
-	db %01010110
-	db %00011001
-	db %11001110
-	db %00001110
-	db %00111000
-	db %00000100
-	db %00000000
+	tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, CUT
 	; end
 
 MeowthBaseData:: ; 0x51a84
@@ -1604,14 +1247,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %01100110
-	db %10010111
-	db %01011001
-	db %11100101
-	db %11000110
-	db %00111110
-	db %00000010
-	db %00000100
+	tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, THUNDERBOLT
 	; end
 
 PersianBaseData:: ; 0x51aa4
@@ -1635,14 +1271,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %01110110
-	db %11010111
-	db %01011001
-	db %11100101
-	db %11000110
-	db %00111110
-	db %00000010
-	db %00000100
+	tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, THUNDERBOLT
 	; end
 
 PsyduckBaseData:: ; 0x51ac4
@@ -1666,14 +1295,7 @@
 	dn AMPHIBIAN, FIELD ; egg groups
 
 	; tmhm
-	db %10100111
-	db %10110011
-	db %01011011
-	db %11001100
-	db %01000111
-	db %00011000
-	db %11110000
-	db %00001001
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, STRENGTH, FLASH, WHIRLPOOL, WATERFALL, ICE_BEAM
 	; end
 
 GolduckBaseData:: ; 0x51ae4
@@ -1697,14 +1319,7 @@
 	dn AMPHIBIAN, FIELD ; egg groups
 
 	; tmhm
-	db %10100111
-	db %11110011
-	db %01011011
-	db %11001100
-	db %01000111
-	db %00011000
-	db %11110001
-	db %00001001
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, FURY_CUTTER, SURF, STRENGTH, FLASH, WHIRLPOOL, WATERFALL, ICE_BEAM
 	; end
 
 MankeyBaseData:: ; 0x51b04
@@ -1728,14 +1343,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %10100111
-	db %00010111
-	db %01011001
-	db %11001101
-	db %11000111
-	db %10111101
-	db %00100000
-	db %00000100
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, THUNDERBOLT
 	; end
 
 PrimeapeBaseData:: ; 0x51b24
@@ -1759,14 +1367,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %10100111
-	db %01010111
-	db %01011001
-	db %11001101
-	db %11000111
-	db %10111101
-	db %00100000
-	db %00000100
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, THUNDERBOLT
 	; end
 
 GrowlitheBaseData:: ; 0x51b44
@@ -1790,14 +1391,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %10110110
-	db %00010110
-	db %11011001
-	db %10001100
-	db %01100110
-	db %00011000
-	db %00000000
-	db %00000010
+	tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
 	; end
 
 ArcanineBaseData:: ; 0x51b64
@@ -1821,14 +1415,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %10110110
-	db %01010110
-	db %11011001
-	db %10001100
-	db %01100110
-	db %00011000
-	db %00000000
-	db %00000010
+	tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
 	; end
 
 PoliwagBaseData:: ; 0x51b84
@@ -1852,14 +1439,7 @@
 	dn AMPHIBIAN, AMPHIBIAN ; egg groups
 
 	; tmhm
-	db %00100110
-	db %10110010
-	db %00011011
-	db %10010100
-	db %10000110
-	db %00111000
-	db %10010000
-	db %00001001
+	tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, THIEF, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
 	; end
 
 PoliwhirlBaseData:: ; 0x51ba4
@@ -1883,14 +1463,7 @@
 	dn AMPHIBIAN, AMPHIBIAN ; egg groups
 
 	; tmhm
-	db %10100110
-	db %10110010
-	db %00011011
-	db %11010110
-	db %10000111
-	db %00111100
-	db %10110000
-	db %00001001
+	tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
 	; end
 
 PoliwrathBaseData:: ; 0x51bc4
@@ -1914,14 +1487,7 @@
 	dn AMPHIBIAN, AMPHIBIAN ; egg groups
 
 	; tmhm
-	db %10100111
-	db %11110010
-	db %00011011
-	db %11010110
-	db %10000111
-	db %00111100
-	db %10110000
-	db %00001001
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
 	; end
 
 AbraBaseData:: ; 0x51be4
@@ -1945,14 +1511,7 @@
 	dn HUMANSHAPE, HUMANSHAPE ; egg groups
 
 	; tmhm
-	db %01100111
-	db %00010111
-	db %00011011
-	db %10110100
-	db %00000111
-	db %10111011
-	db %01000010
-	db %00000000
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, FLASH
 	; end
 
 KadabraBaseData:: ; 0x51c04
@@ -1976,14 +1535,7 @@
 	dn HUMANSHAPE, HUMANSHAPE ; egg groups
 
 	; tmhm
-	db %01100111
-	db %00010111
-	db %00011011
-	db %10111100
-	db %00000111
-	db %10111011
-	db %01000010
-	db %00000000
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DIG, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, FLASH
 	; end
 
 AlakazamBaseData:: ; 0x51c24
@@ -2007,14 +1559,7 @@
 	dn HUMANSHAPE, HUMANSHAPE ; egg groups
 
 	; tmhm
-	db %01100111
-	db %01010111
-	db %00011011
-	db %10111100
-	db %00000111
-	db %10111011
-	db %01000010
-	db %00000000
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DIG, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, FLASH
 	; end
 
 MachopBaseData:: ; 0x51c44
@@ -2038,14 +1583,7 @@
 	dn HUMANSHAPE, HUMANSHAPE ; egg groups
 
 	; tmhm
-	db %10100111
-	db %00010110
-	db %00011001
-	db %11001110
-	db %00100111
-	db %10111101
-	db %00100000
-	db %00000010
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER
 	; end
 
 MachokeBaseData:: ; 0x51c64
@@ -2069,14 +1607,7 @@
 	dn HUMANSHAPE, HUMANSHAPE ; egg groups
 
 	; tmhm
-	db %10100111
-	db %00010110
-	db %00011001
-	db %11001110
-	db %00100111
-	db %10111101
-	db %00100000
-	db %00000010
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER
 	; end
 
 MachampBaseData:: ; 0x51c84
@@ -2100,14 +1631,7 @@
 	dn HUMANSHAPE, HUMANSHAPE ; egg groups
 
 	; tmhm
-	db %10100111
-	db %01010110
-	db %00011001
-	db %11001110
-	db %00100111
-	db %10111101
-	db %00100000
-	db %00000010
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER
 	; end
 
 BellsproutBaseData:: ; 0x51ca4
@@ -2131,14 +1655,7 @@
 	dn PLANT, PLANT ; egg groups
 
 	; tmhm
-	db %00100100
-	db %00011110
-	db %00111101
-	db %10000100
-	db %00001110
-	db %00011000
-	db %01000100
-	db %00000000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
 	; end
 
 WeepinbellBaseData:: ; 0x51cc4
@@ -2162,14 +1679,7 @@
 	dn PLANT, PLANT ; egg groups
 
 	; tmhm
-	db %00100100
-	db %00011110
-	db %00111101
-	db %10000100
-	db %00001110
-	db %00011000
-	db %01000100
-	db %00000000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
 	; end
 
 VictreebelBaseData:: ; 0x51ce4
@@ -2193,14 +1703,7 @@
 	dn PLANT, PLANT ; egg groups
 
 	; tmhm
-	db %00100100
-	db %01011110
-	db %00111101
-	db %10000100
-	db %00001110
-	db %00011000
-	db %01000100
-	db %00000000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
 	; end
 
 TentacoolBaseData:: ; 0x51d04
@@ -2224,14 +1727,7 @@
 	dn INVERTEBRATE, INVERTEBRATE ; egg groups
 
 	; tmhm
-	db %00100100
-	db %10110010
-	db %00011111
-	db %10000100
-	db %00001110
-	db %00011000
-	db %10010100
-	db %00001000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, SURF, WHIRLPOOL, ICE_BEAM
 	; end
 
 TentacruelBaseData:: ; 0x51d24
@@ -2255,14 +1751,7 @@
 	dn INVERTEBRATE, INVERTEBRATE ; egg groups
 
 	; tmhm
-	db %00100100
-	db %11110010
-	db %00011111
-	db %10000100
-	db %00001110
-	db %00011000
-	db %10010100
-	db %00001000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, SURF, WHIRLPOOL, ICE_BEAM
 	; end
 
 GeodudeBaseData:: ; 0x51d44
@@ -2286,14 +1775,7 @@
 	dn INANIMATE, INANIMATE ; egg groups
 
 	; tmhm
-	db %10101111
-	db %00010110
-	db %00011001
-	db %11001110
-	db %10110110
-	db %10011000
-	db %00100000
-	db %00000010
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, REST, ATTRACT, FIRE_PUNCH, STRENGTH, FLAMETHROWER
 	; end
 
 GravelerBaseData:: ; 0x51d64
@@ -2317,14 +1799,7 @@
 	dn INANIMATE, INANIMATE ; egg groups
 
 	; tmhm
-	db %10101111
-	db %00010110
-	db %00011001
-	db %11001110
-	db %10110110
-	db %10011000
-	db %00100000
-	db %00000010
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, REST, ATTRACT, FIRE_PUNCH, STRENGTH, FLAMETHROWER
 	; end
 
 GolemBaseData:: ; 0x51d84
@@ -2348,14 +1823,7 @@
 	dn INANIMATE, INANIMATE ; egg groups
 
 	; tmhm
-	db %10111111
-	db %01010110
-	db %00011001
-	db %11001110
-	db %10110110
-	db %10011000
-	db %00100001
-	db %00000010
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, STRENGTH, FLAMETHROWER
 	; end
 
 PonytaBaseData:: ; 0x51da4
@@ -2379,14 +1847,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %00100110
-	db %00010110
-	db %01011001
-	db %10000100
-	db %01100110
-	db %00011000
-	db %00000000
-	db %00000010
+	tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
 	; end
 
 RapidashBaseData:: ; 0x51dc4
@@ -2410,14 +1871,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %00100110
-	db %01010110
-	db %01011001
-	db %10000100
-	db %01100110
-	db %00011000
-	db %00000000
-	db %00000010
+	tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
 	; end
 
 SlowpokeBaseData:: ; 0x51de4
@@ -2441,14 +1895,7 @@
 	dn MONSTER, AMPHIBIAN ; egg groups
 
 	; tmhm
-	db %01100110
-	db %10110111
-	db %01011011
-	db %11111110
-	db %01100110
-	db %00011010
-	db %01110010
-	db %00001010
+	tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DREAM_EATER, REST, ATTRACT, NIGHTMARE, SURF, STRENGTH, FLASH, FLAMETHROWER, ICE_BEAM
 	; end
 
 SlowbroBaseData:: ; 0x51e04
@@ -2472,14 +1919,7 @@
 	dn MONSTER, AMPHIBIAN ; egg groups
 
 	; tmhm
-	db %11100111
-	db %11110111
-	db %01011011
-	db %11111110
-	db %01100111
-	db %00011010
-	db %01110011
-	db %00001010
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DREAM_EATER, REST, ATTRACT, FURY_CUTTER, NIGHTMARE, SURF, STRENGTH, FLASH, FLAMETHROWER, ICE_BEAM
 	; end
 
 MagnemiteBaseData:: ; 0x51e24
@@ -2503,14 +1943,7 @@
 	dn INANIMATE, INANIMATE ; egg groups
 
 	; tmhm
-	db %01101100
-	db %00010010
-	db %00011011
-	db %10000101
-	db %01000110
-	db %00001000
-	db %01000000
-	db %00000100
+	tmhm CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, FLASH, THUNDERBOLT
 	; end
 
 MagnetonBaseData:: ; 0x51e44
@@ -2534,14 +1967,7 @@
 	dn INANIMATE, INANIMATE ; egg groups
 
 	; tmhm
-	db %01101100
-	db %01010010
-	db %00011011
-	db %10000101
-	db %01000110
-	db %00001000
-	db %01000000
-	db %00000100
+	tmhm CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, FLASH, THUNDERBOLT
 	; end
 
 Farfetch_DBaseData:: ; 0x51e64
@@ -2565,14 +1991,7 @@
 	dn AVIAN, FIELD ; egg groups
 
 	; tmhm
-	db %00100110
-	db %00010111
-	db %01011001
-	db %11000100
-	db %01000110
-	db %01111100
-	db %00001100
-	db %00000000
+	tmhm HEADBUTT, CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, CUT, FLY
 	; end
 
 DoduoBaseData:: ; 0x51e84
@@ -2596,14 +2015,7 @@
 	dn AVIAN, AVIAN ; egg groups
 
 	; tmhm
-	db %00100100
-	db %00010110
-	db %00011001
-	db %11000100
-	db %01000110
-	db %01111000
-	db %00001000
-	db %00000000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, THIEF, STEEL_WING, FLY
 	; end
 
 DodrioBaseData:: ; 0x51ea4
@@ -2627,14 +2039,7 @@
 	dn AVIAN, AVIAN ; egg groups
 
 	; tmhm
-	db %00100100
-	db %01010110
-	db %00011001
-	db %11000100
-	db %01000110
-	db %01111000
-	db %00001000
-	db %00000000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, THIEF, STEEL_WING, FLY
 	; end
 
 SeelBaseData:: ; 0x51ec4
@@ -2658,14 +2063,7 @@
 	dn AMPHIBIAN, FIELD ; egg groups
 
 	; tmhm
-	db %00100110
-	db %10110010
-	db %00011011
-	db %10000100
-	db %00000110
-	db %00011000
-	db %10010000
-	db %00001001
+	tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
 	; end
 
 DewgongBaseData:: ; 0x51ee4
@@ -2689,14 +2087,7 @@
 	dn AMPHIBIAN, FIELD ; egg groups
 
 	; tmhm
-	db %00100110
-	db %11110010
-	db %00011011
-	db %10000100
-	db %00000110
-	db %00011000
-	db %10010000
-	db %00001001
+	tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
 	; end
 
 GrimerBaseData:: ; 0x51f04
@@ -2720,14 +2111,7 @@
 	dn AMORPHOUS, AMORPHOUS ; egg groups
 
 	; tmhm
-	db %01100101
-	db %00010110
-	db %00011101
-	db %11000101
-	db %00101111
-	db %10111001
-	db %00000000
-	db %00000110
+	tmhm DYNAMICPUNCH, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, THUNDERPUNCH, REST, ATTRACT, THIEF, FIRE_PUNCH, FLAMETHROWER, THUNDERBOLT
 	; end
 
 MukBaseData:: ; 0x51f24
@@ -2751,14 +2135,7 @@
 	dn AMORPHOUS, AMORPHOUS ; egg groups
 
 	; tmhm
-	db %01100101
-	db %01010110
-	db %00011101
-	db %11000101
-	db %00101111
-	db %10111001
-	db %00000000
-	db %00000110
+	tmhm DYNAMICPUNCH, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, THUNDERPUNCH, REST, ATTRACT, THIEF, FIRE_PUNCH, FLAMETHROWER, THUNDERBOLT
 	; end
 
 ShellderBaseData:: ; 0x51f44
@@ -2782,14 +2159,7 @@
 	dn INVERTEBRATE, INVERTEBRATE ; egg groups
 
 	; tmhm
-	db %00100100
-	db %10110010
-	db %00011011
-	db %10000100
-	db %01000110
-	db %00011000
-	db %10010000
-	db %00001000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, ICE_BEAM
 	; end
 
 CloysterBaseData:: ; 0x51f64
@@ -2813,14 +2183,7 @@
 	dn INVERTEBRATE, INVERTEBRATE ; egg groups
 
 	; tmhm
-	db %00100100
-	db %11110010
-	db %00011011
-	db %10000100
-	db %01000110
-	db %00011000
-	db %10010000
-	db %00001000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, ICE_BEAM
 	; end
 
 GastlyBaseData:: ; 0x51f84
@@ -2844,14 +2207,7 @@
 	dn AMORPHOUS, AMORPHOUS ; egg groups
 
 	; tmhm
-	db %01100100
-	db %00010111
-	db %00011111
-	db %10110101
-	db %00000110
-	db %00111010
-	db %00000010
-	db %00000100
+	tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, THUNDERBOLT
 	; end
 
 HaunterBaseData:: ; 0x51fa4
@@ -2875,14 +2231,7 @@
 	dn AMORPHOUS, AMORPHOUS ; egg groups
 
 	; tmhm
-	db %01100100
-	db %00010111
-	db %00011111
-	db %10110101
-	db %00000110
-	db %00111010
-	db %00000010
-	db %00000100
+	tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, THUNDERBOLT
 	; end
 
 GengarBaseData:: ; 0x51fc4
@@ -2906,14 +2255,7 @@
 	dn AMORPHOUS, AMORPHOUS ; egg groups
 
 	; tmhm
-	db %11100111
-	db %01010111
-	db %00011111
-	db %10110101
-	db %00000111
-	db %10111011
-	db %00100010
-	db %00000100
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, STRENGTH, THUNDERBOLT
 	; end
 
 OnixBaseData:: ; 0x51fe4
@@ -2937,14 +2279,7 @@
 	dn INANIMATE, INANIMATE ; egg groups
 
 	; tmhm
-	db %10110110
-	db %00010110
-	db %01011001
-	db %11001110
-	db %00010110
-	db %00011000
-	db %00100000
-	db %00000000
+	tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, REST, ATTRACT, STRENGTH
 	; end
 
 DrowzeeBaseData:: ; 0x52004
@@ -2968,14 +2303,7 @@
 	dn HUMANSHAPE, HUMANSHAPE ; egg groups
 
 	; tmhm
-	db %01100111
-	db %00010111
-	db %00011011
-	db %10110100
-	db %00000111
-	db %10011011
-	db %01000010
-	db %00000000
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, FLASH
 	; end
 
 HypnoBaseData:: ; 0x52024
@@ -2999,14 +2327,7 @@
 	dn HUMANSHAPE, HUMANSHAPE ; egg groups
 
 	; tmhm
-	db %01100111
-	db %01010111
-	db %00011011
-	db %10110100
-	db %00000111
-	db %10011011
-	db %01000010
-	db %00000000
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, FLASH
 	; end
 
 KrabbyBaseData:: ; 0x52044
@@ -3030,14 +2351,7 @@
 	dn INVERTEBRATE, INVERTEBRATE ; egg groups
 
 	; tmhm
-	db %10100100
-	db %10110010
-	db %00011011
-	db %11000100
-	db %00000110
-	db %00111000
-	db %10110101
-	db %00001000
+	tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, SURF, STRENGTH, WHIRLPOOL, ICE_BEAM
 	; end
 
 KinglerBaseData:: ; 0x52064
@@ -3061,14 +2375,7 @@
 	dn INVERTEBRATE, INVERTEBRATE ; egg groups
 
 	; tmhm
-	db %10100100
-	db %11110010
-	db %00011011
-	db %11000100
-	db %00000110
-	db %00111000
-	db %10110101
-	db %00001000
+	tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, SURF, STRENGTH, WHIRLPOOL, ICE_BEAM
 	; end
 
 VoltorbBaseData:: ; 0x52084
@@ -3092,14 +2399,7 @@
 	dn INANIMATE, INANIMATE ; egg groups
 
 	; tmhm
-	db %01101110
-	db %00010010
-	db %00011011
-	db %10000101
-	db %01000110
-	db %00001000
-	db %01000000
-	db %00000100
+	tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, FLASH, THUNDERBOLT
 	; end
 
 ElectrodeBaseData:: ; 0x520a4
@@ -3123,14 +2423,7 @@
 	dn INANIMATE, INANIMATE ; egg groups
 
 	; tmhm
-	db %01101110
-	db %01010010
-	db %00011011
-	db %10000101
-	db %01000110
-	db %00001000
-	db %01000000
-	db %00000100
+	tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, FLASH, THUNDERBOLT
 	; end
 
 ExeggcuteBaseData:: ; 0x520c4
@@ -3154,14 +2447,7 @@
 	dn PLANT, PLANT ; egg groups
 
 	; tmhm
-	db %00101100
-	db %00010111
-	db %00111101
-	db %10010100
-	db %00001110
-	db %00111010
-	db %01100010
-	db %00000000
+	tmhm CURSE, ROLLOUT, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, STRENGTH, FLASH
 	; end
 
 ExeggutorBaseData:: ; 0x520e4
@@ -3185,14 +2471,7 @@
 	dn PLANT, PLANT ; egg groups
 
 	; tmhm
-	db %00101110
-	db %01010111
-	db %00111101
-	db %10010100
-	db %00001110
-	db %00111010
-	db %01100010
-	db %00000000
+	tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, STRENGTH, FLASH
 	; end
 
 CuboneBaseData:: ; 0x52104
@@ -3216,14 +2495,7 @@
 	dn MONSTER, MONSTER ; egg groups
 
 	; tmhm
-	db %10100111
-	db %10110110
-	db %01011001
-	db %11001110
-	db %00110110
-	db %10111101
-	db %00100000
-	db %00001010
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER, ICE_BEAM
 	; end
 
 MarowakBaseData:: ; 0x52124
@@ -3247,14 +2519,7 @@
 	dn MONSTER, MONSTER ; egg groups
 
 	; tmhm
-	db %10100111
-	db %11110110
-	db %01011001
-	db %11001110
-	db %00110110
-	db %10111101
-	db %00100000
-	db %00001010
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER, ICE_BEAM
 	; end
 
 HitmonleeBaseData:: ; 0x52144
@@ -3278,14 +2543,7 @@
 	dn HUMANSHAPE, HUMANSHAPE ; egg groups
 
 	; tmhm
-	db %10100111
-	db %00010110
-	db %00011001
-	db %11000100
-	db %01000110
-	db %00111100
-	db %00100000
-	db %00000000
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STRENGTH
 	; end
 
 HitmonchanBaseData:: ; 0x52164
@@ -3309,14 +2567,7 @@
 	dn HUMANSHAPE, HUMANSHAPE ; egg groups
 
 	; tmhm
-	db %10100111
-	db %00010110
-	db %00011001
-	db %11000100
-	db %01000111
-	db %10111101
-	db %00100000
-	db %00000000
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH
 	; end
 
 LickitungBaseData:: ; 0x52184
@@ -3340,14 +2591,7 @@
 	dn MONSTER, MONSTER ; egg groups
 
 	; tmhm
-	db %10101111
-	db %11110111
-	db %01011011
-	db %11100111
-	db %10110111
-	db %10111011
-	db %00110110
-	db %00001110
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, CUT, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
 	; end
 
 KoffingBaseData:: ; 0x521a4
@@ -3371,14 +2615,7 @@
 	dn AMORPHOUS, AMORPHOUS ; egg groups
 
 	; tmhm
-	db %01101100
-	db %00010110
-	db %00011001
-	db %10000101
-	db %00101110
-	db %00111000
-	db %00000000
-	db %00000110
+	tmhm CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, REST, ATTRACT, THIEF, FLAMETHROWER, THUNDERBOLT
 	; end
 
 WeezingBaseData:: ; 0x521c4
@@ -3402,14 +2639,7 @@
 	dn AMORPHOUS, AMORPHOUS ; egg groups
 
 	; tmhm
-	db %01101100
-	db %01010110
-	db %00011001
-	db %10000101
-	db %00101110
-	db %00111000
-	db %00000000
-	db %00000110
+	tmhm CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, REST, ATTRACT, THIEF, FLAMETHROWER, THUNDERBOLT
 	; end
 
 RhyhornBaseData:: ; 0x521e4
@@ -3433,14 +2663,7 @@
 	dn MONSTER, FIELD ; egg groups
 
 	; tmhm
-	db %11111110
-	db %10110110
-	db %01011001
-	db %11001111
-	db %00110110
-	db %00011000
-	db %00100000
-	db %00001110
+	tmhm HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, REST, ATTRACT, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
 	; end
 
 RhydonBaseData:: ; 0x52204
@@ -3464,14 +2687,7 @@
 	dn MONSTER, FIELD ; egg groups
 
 	; tmhm
-	db %11111111
-	db %11110110
-	db %01011001
-	db %11001111
-	db %00110110
-	db %10011001
-	db %00110001
-	db %00001110
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
 	; end
 
 ChanseyBaseData:: ; 0x52224
@@ -3495,14 +2711,7 @@
 	dn FAIRY, FAIRY ; egg groups
 
 	; tmhm
-	db %11101111
-	db %11110111
-	db %01111011
-	db %11110101
-	db %10110110
-	db %00011010
-	db %01100000
-	db %00001110
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, DREAM_EATER, REST, ATTRACT, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
 	; end
 
 TangelaBaseData:: ; 0x52244
@@ -3526,14 +2735,7 @@
 	dn PLANT, PLANT ; egg groups
 
 	; tmhm
-	db %00100110
-	db %01011111
-	db %00111101
-	db %10000100
-	db %00001110
-	db %00111000
-	db %01000100
-	db %00000000
+	tmhm HEADBUTT, CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, CUT, FLASH
 	; end
 
 KangaskhanBaseData:: ; 0x52264
@@ -3557,14 +2759,7 @@
 	dn MONSTER, MONSTER ; egg groups
 
 	; tmhm
-	db %11110111
-	db %11110110
-	db %01011011
-	db %11100111
-	db %00110111
-	db %10011001
-	db %00110001
-	db %00001110
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
 	; end
 
 HorseaBaseData:: ; 0x52284
@@ -3588,14 +2783,7 @@
 	dn AMPHIBIAN, REPTILE ; egg groups
 
 	; tmhm
-	db %00100110
-	db %10110010
-	db %10011011
-	db %10000100
-	db %01000110
-	db %00011000
-	db %10010000
-	db %00001001
+	tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, DRAGONBREATH, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
 	; end
 
 SeadraBaseData:: ; 0x522a4
@@ -3619,14 +2807,7 @@
 	dn AMPHIBIAN, REPTILE ; egg groups
 
 	; tmhm
-	db %00100110
-	db %11110010
-	db %10011011
-	db %10000100
-	db %01000110
-	db %00011000
-	db %10010000
-	db %00001001
+	tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, DRAGONBREATH, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
 	; end
 
 GoldeenBaseData:: ; 0x522c4
@@ -3650,14 +2831,7 @@
 	dn FISH, FISH ; egg groups
 
 	; tmhm
-	db %00100100
-	db %10110010
-	db %00011011
-	db %10000100
-	db %01000110
-	db %00011000
-	db %00010000
-	db %00001001
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WATERFALL, ICE_BEAM
 	; end
 
 SeakingBaseData:: ; 0x522e4
@@ -3681,14 +2855,7 @@
 	dn FISH, FISH ; egg groups
 
 	; tmhm
-	db %00100100
-	db %11110010
-	db %00011011
-	db %10000100
-	db %01000110
-	db %00011000
-	db %00010000
-	db %00001001
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WATERFALL, ICE_BEAM
 	; end
 
 StaryuBaseData:: ; 0x52304
@@ -3712,14 +2879,7 @@
 	dn INVERTEBRATE, INVERTEBRATE ; egg groups
 
 	; tmhm
-	db %01100100
-	db %10110011
-	db %00011011
-	db %10010101
-	db %01000110
-	db %00011000
-	db %11010000
-	db %00001101
+	tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, FLASH, WHIRLPOOL, WATERFALL, THUNDERBOLT, ICE_BEAM
 	; end
 
 StarmieBaseData:: ; 0x52324
@@ -3743,14 +2903,7 @@
 	dn INVERTEBRATE, INVERTEBRATE ; egg groups
 
 	; tmhm
-	db %01100100
-	db %11110011
-	db %00011011
-	db %10010101
-	db %01000110
-	db %00011010
-	db %11010010
-	db %00001101
+	tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, REST, ATTRACT, NIGHTMARE, SURF, FLASH, WHIRLPOOL, WATERFALL, THUNDERBOLT, ICE_BEAM
 	; end
 
 Mr__MimeBaseData:: ; 0x52344
@@ -3774,14 +2927,7 @@
 	dn HUMANSHAPE, HUMANSHAPE ; egg groups
 
 	; tmhm
-	db %01100111
-	db %01010111
-	db %00111001
-	db %11110101
-	db %00000111
-	db %10111011
-	db %01000010
-	db %00000100
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, SOLARBEAM, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, FLASH, THUNDERBOLT
 	; end
 
 ScytherBaseData:: ; 0x52364
@@ -3805,14 +2951,7 @@
 	dn INSECT, INSECT ; egg groups
 
 	; tmhm
-	db %10100110
-	db %01010110
-	db %00011001
-	db %10000100
-	db %01000110
-	db %01111100
-	db %00000101
-	db %00000000
+	tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FURY_CUTTER, CUT
 	; end
 
 JynxBaseData:: ; 0x52384
@@ -3836,14 +2975,7 @@
 	dn HUMANSHAPE, HUMANSHAPE ; egg groups
 
 	; tmhm
-	db %00100111
-	db %11111011
-	db %00011011
-	db %11110100
-	db %00000111
-	db %00111010
-	db %00000010
-	db %00001000
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SWEET_SCENT, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, ICE_BEAM
 	; end
 
 ElectabuzzBaseData:: ; 0x523a4
@@ -3867,14 +2999,7 @@
 	dn HUMANSHAPE, HUMANSHAPE ; egg groups
 
 	; tmhm
-	db %11100111
-	db %01010010
-	db %01011011
-	db %11010101
-	db %01000111
-	db %10111101
-	db %01100000
-	db %00000100
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLASH, THUNDERBOLT
 	; end
 
 MagmarBaseData:: ; 0x523c4
@@ -3898,14 +3023,7 @@
 	dn HUMANSHAPE, HUMANSHAPE ; egg groups
 
 	; tmhm
-	db %10100111
-	db %01010110
-	db %01011001
-	db %11010100
-	db %00100110
-	db %10111101
-	db %00100000
-	db %00000010
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER
 	; end
 
 PinsirBaseData:: ; 0x523e4
@@ -3929,14 +3047,7 @@
 	dn INSECT, INSECT ; egg groups
 
 	; tmhm
-	db %10100110
-	db %01010110
-	db %00011001
-	db %10000100
-	db %00000110
-	db %00111000
-	db %00100101
-	db %00000000
+	tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, STRENGTH
 	; end
 
 TaurosBaseData:: ; 0x52404
@@ -3960,14 +3071,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %11100110
-	db %11110110
-	db %01011001
-	db %10000111
-	db %00100110
-	db %00011000
-	db %00110000
-	db %00001110
+	tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, REST, ATTRACT, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
 	; end
 
 MagikarpBaseData:: ; 0x52424
@@ -3991,14 +3095,7 @@
 	dn FISH, REPTILE ; egg groups
 
 	; tmhm
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
+	tmhm
 	; end
 
 GyaradosBaseData:: ; 0x52444
@@ -4022,14 +3119,7 @@
 	dn FISH, REPTILE ; egg groups
 
 	; tmhm
-	db %11110110
-	db %11110010
-	db %10011011
-	db %10000101
-	db %00110110
-	db %00011000
-	db %10110000
-	db %00001111
+	tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, DRAGONBREATH, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, WATERFALL, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
 	; end
 
 LaprasBaseData:: ; 0x52464
@@ -4053,14 +3143,7 @@
 	dn MONSTER, AMPHIBIAN ; egg groups
 
 	; tmhm
-	db %11100110
-	db %11110010
-	db %11011011
-	db %10010101
-	db %00000110
-	db %00011010
-	db %10110010
-	db %00001100
+	tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, THUNDER, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DREAM_EATER, REST, ATTRACT, NIGHTMARE, SURF, STRENGTH, WHIRLPOOL, THUNDERBOLT, ICE_BEAM
 	; end
 
 DittoBaseData:: ; 0x52484
@@ -4084,14 +3167,7 @@
 	dn LADIES_MAN, LADIES_MAN ; egg groups
 
 	; tmhm
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
+	tmhm
 	; end
 
 EeveeBaseData:: ; 0x524a4
@@ -4115,14 +3191,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %00100110
-	db %00010110
-	db %01011011
-	db %11100100
-	db %01000110
-	db %00011100
-	db %00000000
-	db %00000000
+	tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT
 	; end
 
 VaporeonBaseData:: ; 0x524c4
@@ -4146,14 +3215,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %00110110
-	db %11110110
-	db %01011011
-	db %11100100
-	db %01000110
-	db %00011100
-	db %10010000
-	db %00001001
+	tmhm HEADBUTT, CURSE, ROAR, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
 	; end
 
 JolteonBaseData:: ; 0x524e4
@@ -4177,14 +3239,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %01110110
-	db %01010110
-	db %01011011
-	db %11100101
-	db %01000110
-	db %00011100
-	db %01000000
-	db %00000100
+	tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, FLASH, THUNDERBOLT
 	; end
 
 FlareonBaseData:: ; 0x52504
@@ -4208,14 +3263,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %01110110
-	db %01010110
-	db %01011011
-	db %11100100
-	db %01100110
-	db %00011100
-	db %00000000
-	db %00000010
+	tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DETECT, REST, ATTRACT, FLAMETHROWER
 	; end
 
 PorygonBaseData:: ; 0x52524
@@ -4239,14 +3287,7 @@
 	dn INANIMATE, INANIMATE ; egg groups
 
 	; tmhm
-	db %01100100
-	db %11110111
-	db %01011011
-	db %10010101
-	db %01000110
-	db %00101010
-	db %01000010
-	db %00001100
+	tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, REST, THIEF, NIGHTMARE, FLASH, THUNDERBOLT, ICE_BEAM
 	; end
 
 OmanyteBaseData:: ; 0x52544
@@ -4270,14 +3311,7 @@
 	dn AMPHIBIAN, INVERTEBRATE ; egg groups
 
 	; tmhm
-	db %10101110
-	db %10110010
-	db %00011011
-	db %10000100
-	db %00010110
-	db %00111000
-	db %10010000
-	db %00001000
+	tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, REST, ATTRACT, THIEF, SURF, WHIRLPOOL, ICE_BEAM
 	; end
 
 OmastarBaseData:: ; 0x52564
@@ -4301,14 +3335,7 @@
 	dn AMPHIBIAN, INVERTEBRATE ; egg groups
 
 	; tmhm
-	db %10101110
-	db %11110010
-	db %00011011
-	db %10000100
-	db %00010110
-	db %00111000
-	db %10010000
-	db %00001000
+	tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, REST, ATTRACT, THIEF, SURF, WHIRLPOOL, ICE_BEAM
 	; end
 
 KabutoBaseData:: ; 0x52584
@@ -4332,14 +3359,7 @@
 	dn AMPHIBIAN, INVERTEBRATE ; egg groups
 
 	; tmhm
-	db %10101100
-	db %10110010
-	db %00011111
-	db %10000100
-	db %00010110
-	db %00111000
-	db %00000000
-	db %00001000
+	tmhm CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, REST, ATTRACT, THIEF, ICE_BEAM
 	; end
 
 KabutopsBaseData:: ; 0x525a4
@@ -4363,14 +3383,7 @@
 	dn AMPHIBIAN, INVERTEBRATE ; egg groups
 
 	; tmhm
-	db %10101110
-	db %11110010
-	db %00011111
-	db %10000100
-	db %00010110
-	db %00111000
-	db %10010101
-	db %00001000
+	tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, SURF, WHIRLPOOL, ICE_BEAM
 	; end
 
 AerodactylBaseData:: ; 0x525c4
@@ -4394,14 +3407,7 @@
 	dn AVIAN, AVIAN ; egg groups
 
 	; tmhm
-	db %10110110
-	db %01010010
-	db %11011011
-	db %10000110
-	db %01110110
-	db %01011100
-	db %00001000
-	db %00000010
+	tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, EARTHQUAKE, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, DETECT, REST, ATTRACT, STEEL_WING, FLY, FLAMETHROWER
 	; end
 
 SnorlaxBaseData:: ; 0x525e4
@@ -4425,14 +3431,7 @@
 	dn MONSTER, MONSTER ; egg groups
 
 	; tmhm
-	db %11101111
-	db %11110111
-	db %00111011
-	db %11110111
-	db %10110111
-	db %10011001
-	db %00110000
-	db %00001110
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, THUNDER, EARTHQUAKE, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
 	; end
 
 ArticunoBaseData:: ; 0x52604
@@ -4456,14 +3455,7 @@
 	dn NO_EGGS, NO_EGGS ; egg groups
 
 	; tmhm
-	db %10110100
-	db %11110110
-	db %00011011
-	db %11000100
-	db %01010110
-	db %01001100
-	db %00001000
-	db %00001000
+	tmhm CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, STEEL_WING, FLY, ICE_BEAM
 	; end
 
 ZapdosBaseData:: ; 0x52624
@@ -4487,14 +3479,7 @@
 	dn NO_EGGS, NO_EGGS ; egg groups
 
 	; tmhm
-	db %11110100
-	db %01010110
-	db %00011011
-	db %11000101
-	db %01010110
-	db %01001100
-	db %01001000
-	db %00000100
+	tmhm CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, STEEL_WING, FLY, FLASH, THUNDERBOLT
 	; end
 
 MoltresBaseData:: ; 0x52644
@@ -4518,14 +3503,7 @@
 	dn NO_EGGS, NO_EGGS ; egg groups
 
 	; tmhm
-	db %10110100
-	db %01010110
-	db %00011011
-	db %11000100
-	db %01110110
-	db %01001100
-	db %00001000
-	db %00000010
+	tmhm CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, DETECT, REST, STEEL_WING, FLY, FLAMETHROWER
 	; end
 
 DratiniBaseData:: ; 0x52664
@@ -4549,14 +3527,7 @@
 	dn AMPHIBIAN, REPTILE ; egg groups
 
 	; tmhm
-	db %01100110
-	db %10110010
-	db %11011011
-	db %10000101
-	db %01100110
-	db %00011100
-	db %00010000
-	db %00001111
+	tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DETECT, REST, ATTRACT, SURF, WATERFALL, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
 	; end
 
 DragonairBaseData:: ; 0x52684
@@ -4580,14 +3551,7 @@
 	dn AMPHIBIAN, REPTILE ; egg groups
 
 	; tmhm
-	db %01100110
-	db %10110010
-	db %11011011
-	db %10000101
-	db %01100110
-	db %00011100
-	db %00010000
-	db %00001111
+	tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DETECT, REST, ATTRACT, SURF, WATERFALL, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
 	; end
 
 DragoniteBaseData:: ; 0x526a4
@@ -4611,14 +3575,7 @@
 	dn AMPHIBIAN, REPTILE ; egg groups
 
 	; tmhm
-	db %11100111
-	db %11110010
-	db %11011011
-	db %11000101
-	db %01110111
-	db %11011101
-	db %10111001
-	db %00001111
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, THUNDERPUNCH, DETECT, REST, ATTRACT, STEEL_WING, FIRE_PUNCH, FURY_CUTTER, FLY, SURF, STRENGTH, WHIRLPOOL, WATERFALL, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
 	; end
 
 MewtwoBaseData:: ; 0x526c4
@@ -4642,14 +3599,7 @@
 	dn NO_EGGS, NO_EGGS ; egg groups
 
 	; tmhm
-	db %11100111
-	db %11110111
-	db %01111011
-	db %11110101
-	db %01100111
-	db %10001111
-	db %01100010
-	db %00001110
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, THUNDERPUNCH, DREAM_EATER, DETECT, REST, FIRE_PUNCH, NIGHTMARE, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
 	; end
 
 MewBaseData:: ; 0x526e4
@@ -4673,14 +3623,7 @@
 	dn NO_EGGS, NO_EGGS ; egg groups
 
 	; tmhm
-	db %11111111
-	db %11111111
-	db %11111111
-	db %11111111
-	db %11111111
-	db %11111111
-	db %11111111
-	db %00001111
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, DRAGONBREATH, THUNDER, EARTHQUAKE, RETURN, DIG, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SANDSTORM, FIRE_BLAST, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FIRE_PUNCH, FURY_CUTTER, NIGHTMARE, CUT, FLY, SURF, STRENGTH, FLASH, WHIRLPOOL, WATERFALL, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
 	; end
 
 ChikoritaBaseData:: ; 0x52704
@@ -4704,14 +3647,7 @@
 	dn MONSTER, PLANT ; egg groups
 
 	; tmhm
-	db %00100110
-	db %00011110
-	db %01111101
-	db %11000100
-	db %00000110
-	db %00011100
-	db %01000100
-	db %00000000
+	tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, CUT, FLASH
 	; end
 
 BayleefBaseData:: ; 0x52724
@@ -4735,14 +3671,7 @@
 	dn MONSTER, PLANT ; egg groups
 
 	; tmhm
-	db %10100110
-	db %00011110
-	db %01111101
-	db %11000100
-	db %00000110
-	db %00011100
-	db %01100101
-	db %00000000
+	tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, FURY_CUTTER, CUT, STRENGTH, FLASH
 	; end
 
 MeganiumBaseData:: ; 0x52744
@@ -4766,14 +3695,7 @@
 	dn MONSTER, PLANT ; egg groups
 
 	; tmhm
-	db %10100110
-	db %01011110
-	db %01111101
-	db %11000110
-	db %00000110
-	db %00011100
-	db %01100101
-	db %00000000
+	tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, FURY_CUTTER, CUT, STRENGTH, FLASH
 	; end
 
 CyndaquilBaseData:: ; 0x52764
@@ -4797,14 +3719,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %00101110
-	db %00010110
-	db %01011001
-	db %11001100
-	db %11100110
-	db %00011100
-	db %00000100
-	db %00000010
+	tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, CUT, FLAMETHROWER
 	; end
 
 QuilavaBaseData:: ; 0x52784
@@ -4828,14 +3743,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %10111110
-	db %00010110
-	db %01011001
-	db %11001100
-	db %11100110
-	db %00011100
-	db %00100101
-	db %00000010
+	tmhm HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, FURY_CUTTER, CUT, STRENGTH, FLAMETHROWER
 	; end
 
 TyphlosionBaseData:: ; 0x527a4
@@ -4859,14 +3767,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %10111111
-	db %01010110
-	db %01011001
-	db %11001110
-	db %11100110
-	db %10011101
-	db %00100101
-	db %00000010
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, CUT, STRENGTH, FLAMETHROWER
 	; end
 
 TotodileBaseData:: ; 0x527c4
@@ -4890,14 +3791,7 @@
 	dn MONSTER, AMPHIBIAN ; egg groups
 
 	; tmhm
-	db %00100111
-	db %10110010
-	db %01011011
-	db %11001100
-	db %00000111
-	db %00011100
-	db %10010100
-	db %00001000
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, CUT, SURF, WHIRLPOOL, ICE_BEAM
 	; end
 
 CroconawBaseData:: ; 0x527e4
@@ -4921,14 +3815,7 @@
 	dn MONSTER, AMPHIBIAN ; egg groups
 
 	; tmhm
-	db %10110111
-	db %10110010
-	db %01011011
-	db %11001100
-	db %00000111
-	db %00011100
-	db %10110101
-	db %00001000
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, FURY_CUTTER, CUT, SURF, STRENGTH, WHIRLPOOL, ICE_BEAM
 	; end
 
 FeraligatrBaseData:: ; 0x52804
@@ -4952,14 +3839,7 @@
 	dn MONSTER, AMPHIBIAN ; egg groups
 
 	; tmhm
-	db %10110111
-	db %11110010
-	db %01011011
-	db %11001110
-	db %00000111
-	db %00011100
-	db %10110101
-	db %00001000
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, FURY_CUTTER, CUT, SURF, STRENGTH, WHIRLPOOL, ICE_BEAM
 	; end
 
 SentretBaseData:: ; 0x52824
@@ -4983,14 +3863,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %00101111
-	db %00010110
-	db %01011001
-	db %11101100
-	db %11000111
-	db %10111101
-	db %00010101
-	db %00000000
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, CUT, SURF
 	; end
 
 FurretBaseData:: ; 0x52844
@@ -5014,14 +3887,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %00101111
-	db %01010110
-	db %01011001
-	db %11101100
-	db %11000111
-	db %10111101
-	db %00110101
-	db %00000000
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, CUT, SURF, STRENGTH
 	; end
 
 HoothootBaseData:: ; 0x52864
@@ -5045,14 +3911,7 @@
 	dn AVIAN, AVIAN ; egg groups
 
 	; tmhm
-	db %00100100
-	db %00010110
-	db %00011001
-	db %11000100
-	db %01000110
-	db %01111110
-	db %01001010
-	db %00000000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, STEEL_WING, NIGHTMARE, FLY, FLASH
 	; end
 
 NoctowlBaseData:: ; 0x52884
@@ -5076,14 +3935,7 @@
 	dn AVIAN, AVIAN ; egg groups
 
 	; tmhm
-	db %00100100
-	db %01010110
-	db %00011001
-	db %11000100
-	db %01000110
-	db %01111110
-	db %01001010
-	db %00000000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, STEEL_WING, NIGHTMARE, FLY, FLASH
 	; end
 
 LedybaBaseData:: ; 0x528a4
@@ -5107,14 +3959,7 @@
 	dn INSECT, INSECT ; egg groups
 
 	; tmhm
-	db %00101111
-	db %00011110
-	db %00111101
-	db %10001100
-	db %01000111
-	db %00111001
-	db %01000000
-	db %00000000
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, THUNDERPUNCH, REST, ATTRACT, THIEF, FLASH
 	; end
 
 LedianBaseData:: ; 0x528c4
@@ -5138,14 +3983,7 @@
 	dn INSECT, INSECT ; egg groups
 
 	; tmhm
-	db %00101111
-	db %01011110
-	db %00111101
-	db %10001100
-	db %01000111
-	db %00111001
-	db %01000000
-	db %00000000
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, THUNDERPUNCH, REST, ATTRACT, THIEF, FLASH
 	; end
 
 SpinarakBaseData:: ; 0x528e4
@@ -5169,14 +4007,7 @@
 	dn INSECT, INSECT ; egg groups
 
 	; tmhm
-	db %00100100
-	db %00010110
-	db %00111101
-	db %10011100
-	db %00001110
-	db %00111000
-	db %01000000
-	db %00000000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, FLASH
 	; end
 
 AriadosBaseData:: ; 0x52904
@@ -5200,14 +4031,7 @@
 	dn INSECT, INSECT ; egg groups
 
 	; tmhm
-	db %00100100
-	db %01010110
-	db %00111101
-	db %10011100
-	db %00001110
-	db %00111000
-	db %01000000
-	db %00000000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, FLASH
 	; end
 
 CrobatBaseData:: ; 0x52924
@@ -5231,14 +4055,7 @@
 	dn AVIAN, AVIAN ; egg groups
 
 	; tmhm
-	db %00100100
-	db %01010110
-	db %00011101
-	db %10000100
-	db %01000110
-	db %01111100
-	db %00001000
-	db %00000000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
 	; end
 
 ChinchouBaseData:: ; 0x52944
@@ -5262,14 +4079,7 @@
 	dn FISH, FISH ; egg groups
 
 	; tmhm
-	db %01100100
-	db %00010010
-	db %00011011
-	db %10000101
-	db %00000110
-	db %00011000
-	db %11010000
-	db %00001101
+	tmhm CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, SURF, FLASH, WHIRLPOOL, WATERFALL, THUNDERBOLT, ICE_BEAM
 	; end
 
 LanturnBaseData:: ; 0x52964
@@ -5293,14 +4103,7 @@
 	dn FISH, FISH ; egg groups
 
 	; tmhm
-	db %01100100
-	db %01010010
-	db %00011011
-	db %10000101
-	db %00000110
-	db %00011000
-	db %11010000
-	db %00001101
+	tmhm CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, SURF, FLASH, WHIRLPOOL, WATERFALL, THUNDERBOLT, ICE_BEAM
 	; end
 
 PichuBaseData:: ; 0x52984
@@ -5324,14 +4127,7 @@
 	dn NO_EGGS, NO_EGGS ; egg groups
 
 	; tmhm
-	db %01101110
-	db %00010010
-	db %01011011
-	db %11000101
-	db %11000110
-	db %00011100
-	db %01000000
-	db %00000100
+	tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, FLASH, THUNDERBOLT
 	; end
 
 CleffaBaseData:: ; 0x529a4
@@ -5355,14 +4151,7 @@
 	dn NO_EGGS, NO_EGGS ; egg groups
 
 	; tmhm
-	db %01101110
-	db %10010111
-	db %01111011
-	db %11110100
-	db %10100110
-	db %00011110
-	db %01000010
-	db %00000010
+	tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, NIGHTMARE, FLASH, FLAMETHROWER
 	; end
 
 IgglybuffBaseData:: ; 0x529c4
@@ -5386,14 +4175,7 @@
 	dn NO_EGGS, NO_EGGS ; egg groups
 
 	; tmhm
-	db %01101110
-	db %10010111
-	db %00111011
-	db %11110100
-	db %10100110
-	db %00011110
-	db %01000010
-	db %00000010
+	tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, NIGHTMARE, FLASH, FLAMETHROWER
 	; end
 
 TogepiBaseData:: ; 0x529e4
@@ -5417,14 +4199,7 @@
 	dn NO_EGGS, NO_EGGS ; egg groups
 
 	; tmhm
-	db %11101110
-	db %00010111
-	db %00111011
-	db %11110100
-	db %11100110
-	db %00011110
-	db %01000000
-	db %00000010
+	tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, FLASH, FLAMETHROWER
 	; end
 
 TogeticBaseData:: ; 0x52a04
@@ -5448,14 +4223,7 @@
 	dn AVIAN, FAIRY ; egg groups
 
 	; tmhm
-	db %11101110
-	db %01010111
-	db %00111011
-	db %11110100
-	db %11100110
-	db %01011110
-	db %01001000
-	db %00000010
+	tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, STEEL_WING, FLY, FLASH, FLAMETHROWER
 	; end
 
 NatuBaseData:: ; 0x52a24
@@ -5479,14 +4247,7 @@
 	dn AVIAN, AVIAN ; egg groups
 
 	; tmhm
-	db %00100100
-	db %00010111
-	db %00111101
-	db %10010100
-	db %01000110
-	db %00111110
-	db %01000010
-	db %00000000
+	tmhm CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, FLASH
 	; end
 
 XatuBaseData:: ; 0x52a44
@@ -5510,14 +4271,7 @@
 	dn AVIAN, AVIAN ; egg groups
 
 	; tmhm
-	db %00100100
-	db %01010111
-	db %00111101
-	db %10010100
-	db %01000110
-	db %00111110
-	db %01001010
-	db %00000000
+	tmhm CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, FLY, FLASH
 	; end
 
 MareepBaseData:: ; 0x52a64
@@ -5541,14 +4295,7 @@
 	dn MONSTER, FIELD ; egg groups
 
 	; tmhm
-	db %01100110
-	db %00010010
-	db %01011011
-	db %10000101
-	db %11000110
-	db %00011000
-	db %01000000
-	db %00000100
+	tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, FLASH, THUNDERBOLT
 	; end
 
 FlaaffyBaseData:: ; 0x52a84
@@ -5572,14 +4319,7 @@
 	dn MONSTER, FIELD ; egg groups
 
 	; tmhm
-	db %11100111
-	db %00010010
-	db %01011011
-	db %10000101
-	db %11000110
-	db %10011001
-	db %01100000
-	db %00000100
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, STRENGTH, FLASH, THUNDERBOLT
 	; end
 
 AmpharosBaseData:: ; 0x52aa4
@@ -5603,14 +4343,7 @@
 	dn MONSTER, FIELD ; egg groups
 
 	; tmhm
-	db %11100111
-	db %01010010
-	db %01011011
-	db %10000101
-	db %11000110
-	db %10011001
-	db %01100000
-	db %00000100
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, STRENGTH, FLASH, THUNDERBOLT
 	; end
 
 BellossomBaseData:: ; 0x52ac4
@@ -5634,14 +4367,7 @@
 	dn PLANT, PLANT ; egg groups
 
 	; tmhm
-	db %00100100
-	db %01011110
-	db %00111101
-	db %10000100
-	db %00000110
-	db %00011000
-	db %01000100
-	db %00000000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, CUT, FLASH
 	; end
 
 MarillBaseData:: ; 0x52ae4
@@ -5665,14 +4391,7 @@
 	dn AMPHIBIAN, FAIRY ; egg groups
 
 	; tmhm
-	db %00101111
-	db %10110010
-	db %01011011
-	db %11000100
-	db %11000111
-	db %00011000
-	db %10010000
-	db %00001001
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
 	; end
 
 AzumarillBaseData:: ; 0x52b04
@@ -5696,14 +4415,7 @@
 	dn AMPHIBIAN, FAIRY ; egg groups
 
 	; tmhm
-	db %10101111
-	db %11110010
-	db %01011011
-	db %11000100
-	db %11000111
-	db %00011000
-	db %10110000
-	db %00001001
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
 	; end
 
 SudowoodoBaseData:: ; 0x52b24
@@ -5727,14 +4439,7 @@
 	dn INANIMATE, INANIMATE ; egg groups
 
 	; tmhm
-	db %10101111
-	db %00010111
-	db %00011001
-	db %11001110
-	db %10010111
-	db %10111001
-	db %00100000
-	db %00000000
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH
 	; end
 
 PolitoedBaseData:: ; 0x52b44
@@ -5758,14 +4463,7 @@
 	dn AMPHIBIAN, AMPHIBIAN ; egg groups
 
 	; tmhm
-	db %10100111
-	db %11110010
-	db %00011011
-	db %11010110
-	db %10000111
-	db %00111100
-	db %10110000
-	db %00001001
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
 	; end
 
 HoppipBaseData:: ; 0x52b64
@@ -5789,14 +4487,7 @@
 	dn FAIRY, PLANT ; egg groups
 
 	; tmhm
-	db %00100110
-	db %00011110
-	db %00111101
-	db %10000100
-	db %10000110
-	db %00011000
-	db %01000000
-	db %00000000
+	tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FLASH
 	; end
 
 SkiploomBaseData:: ; 0x52b84
@@ -5820,14 +4511,7 @@
 	dn FAIRY, PLANT ; egg groups
 
 	; tmhm
-	db %00100110
-	db %00011110
-	db %00111101
-	db %10000100
-	db %10000110
-	db %00011000
-	db %01000000
-	db %00000000
+	tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FLASH
 	; end
 
 JumpluffBaseData:: ; 0x52ba4
@@ -5851,14 +4535,7 @@
 	dn FAIRY, PLANT ; egg groups
 
 	; tmhm
-	db %00100110
-	db %01011110
-	db %00111101
-	db %10000100
-	db %10000110
-	db %00011000
-	db %01000000
-	db %00000000
+	tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FLASH
 	; end
 
 AipomBaseData:: ; 0x52bc4
@@ -5882,14 +4559,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %11100111
-	db %00010110
-	db %01011001
-	db %11100101
-	db %11000111
-	db %10111111
-	db %00100111
-	db %00000100
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, NIGHTMARE, CUT, STRENGTH, THUNDERBOLT
 	; end
 
 SunkernBaseData:: ; 0x52be4
@@ -5913,14 +4583,7 @@
 	dn PLANT, PLANT ; egg groups
 
 	; tmhm
-	db %00100100
-	db %00011110
-	db %00111101
-	db %10000100
-	db %00001110
-	db %00011000
-	db %01000100
-	db %00000000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
 	; end
 
 SunfloraBaseData:: ; 0x52c04
@@ -5944,14 +4607,7 @@
 	dn PLANT, PLANT ; egg groups
 
 	; tmhm
-	db %00100100
-	db %01011110
-	db %00111101
-	db %10000100
-	db %00001110
-	db %00011000
-	db %01000100
-	db %00000000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
 	; end
 
 YanmaBaseData:: ; 0x52c24
@@ -5975,14 +4631,7 @@
 	dn INSECT, INSECT ; egg groups
 
 	; tmhm
-	db %00100110
-	db %00010110
-	db %00111101
-	db %10000100
-	db %01000110
-	db %00111100
-	db %01000000
-	db %00000000
+	tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, FLASH
 	; end
 
 WooperBaseData:: ; 0x52c44
@@ -6006,14 +4655,7 @@
 	dn AMPHIBIAN, FIELD ; egg groups
 
 	; tmhm
-	db %10101111
-	db %00010010
-	db %01011011
-	db %11001110
-	db %10011111
-	db %00011000
-	db %11010000
-	db %00001000
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, SURF, FLASH, WHIRLPOOL, ICE_BEAM
 	; end
 
 QuagsireBaseData:: ; 0x52c64
@@ -6037,14 +4679,7 @@
 	dn AMPHIBIAN, FIELD ; egg groups
 
 	; tmhm
-	db %10101111
-	db %01010010
-	db %01011011
-	db %11001110
-	db %10011111
-	db %00011000
-	db %11110000
-	db %00001000
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, FLASH, WHIRLPOOL, ICE_BEAM
 	; end
 
 EspeonBaseData:: ; 0x52c84
@@ -6068,14 +4703,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %01100110
-	db %01010111
-	db %01011011
-	db %11110100
-	db %01000110
-	db %00011110
-	db %01000110
-	db %00000000
+	tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, NIGHTMARE, CUT, FLASH
 	; end
 
 UmbreonBaseData:: ; 0x52ca4
@@ -6099,14 +4727,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %01100110
-	db %01010111
-	db %01011011
-	db %11110100
-	db %01000110
-	db %00011110
-	db %01000110
-	db %00000000
+	tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, NIGHTMARE, CUT, FLASH
 	; end
 
 MurkrowBaseData:: ; 0x52cc4
@@ -6130,14 +4751,7 @@
 	dn AVIAN, AVIAN ; egg groups
 
 	; tmhm
-	db %00100100
-	db %10010111
-	db %00011001
-	db %11100100
-	db %01000110
-	db %01111110
-	db %00001010
-	db %00000000
+	tmhm CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, STEEL_WING, NIGHTMARE, FLY
 	; end
 
 SlowkingBaseData:: ; 0x52ce4
@@ -6161,14 +4775,7 @@
 	dn MONSTER, AMPHIBIAN ; egg groups
 
 	; tmhm
-	db %11100111
-	db %11110111
-	db %01011011
-	db %11111110
-	db %01100111
-	db %00011010
-	db %11110011
-	db %00001010
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DREAM_EATER, REST, ATTRACT, FURY_CUTTER, NIGHTMARE, SURF, STRENGTH, FLASH, WHIRLPOOL, FLAMETHROWER, ICE_BEAM
 	; end
 
 MisdreavusBaseData:: ; 0x52d04
@@ -6192,14 +4799,7 @@
 	dn AMORPHOUS, AMORPHOUS ; egg groups
 
 	; tmhm
-	db %01100110
-	db %00010111
-	db %00011011
-	db %10110101
-	db %11000110
-	db %00111010
-	db %01000010
-	db %00000100
+	tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, FLASH, THUNDERBOLT
 	; end
 
 UnownBaseData:: ; 0x52d24
@@ -6223,14 +4823,7 @@
 	dn NO_EGGS, NO_EGGS ; egg groups
 
 	; tmhm
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
+	tmhm
 	; end
 
 WobbuffetBaseData:: ; 0x52d44
@@ -6254,14 +4847,7 @@
 	dn AMORPHOUS, AMORPHOUS ; egg groups
 
 	; tmhm
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
+	tmhm
 	; end
 
 GirafarigBaseData:: ; 0x52d64
@@ -6285,14 +4871,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %11100110
-	db %00010111
-	db %01011001
-	db %11110111
-	db %01000110
-	db %00111010
-	db %00100010
-	db %00000100
+	tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, STRENGTH, THUNDERBOLT
 	; end
 
 PinecoBaseData:: ; 0x52d84
@@ -6316,14 +4895,7 @@
 	dn INSECT, INSECT ; egg groups
 
 	; tmhm
-	db %10101110
-	db %00011110
-	db %00111101
-	db %10000100
-	db %10000110
-	db %00011000
-	db %00100000
-	db %00000000
+	tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, STRENGTH
 	; end
 
 ForretressBaseData:: ; 0x52da4
@@ -6347,14 +4919,7 @@
 	dn INSECT, INSECT ; egg groups
 
 	; tmhm
-	db %10101110
-	db %01011110
-	db %00111101
-	db %10000100
-	db %10010110
-	db %00011000
-	db %00100000
-	db %00000000
+	tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, STRENGTH
 	; end
 
 DunsparceBaseData:: ; 0x52dc4
@@ -6378,14 +4943,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %11101110
-	db %00010111
-	db %01111011
-	db %11001101
-	db %10000110
-	db %00111010
-	db %00100010
-	db %00000110
+	tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, THUNDER, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, STRENGTH, FLAMETHROWER, THUNDERBOLT
 	; end
 
 GligarBaseData:: ; 0x52de4
@@ -6409,14 +4967,7 @@
 	dn INSECT, INSECT ; egg groups
 
 	; tmhm
-	db %10100110
-	db %00010110
-	db %01011001
-	db %10000100
-	db %01011110
-	db %00111100
-	db %00100101
-	db %00000000
+	tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SANDSTORM, SWIFT, DETECT, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, STRENGTH
 	; end
 
 SteelixBaseData:: ; 0x52e04
@@ -6440,14 +4991,7 @@
 	dn INANIMATE, INANIMATE ; egg groups
 
 	; tmhm
-	db %10111110
-	db %01010110
-	db %11011001
-	db %11001110
-	db %10010110
-	db %00011000
-	db %00100100
-	db %00000000
+	tmhm HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, CUT, STRENGTH
 	; end
 
 SnubbullBaseData:: ; 0x52e24
@@ -6471,14 +5015,7 @@
 	dn FIELD, FAIRY ; egg groups
 
 	; tmhm
-	db %11110111
-	db %00010110
-	db %00011011
-	db %11100101
-	db %10001111
-	db %10111101
-	db %00100000
-	db %00000100
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, THUNDERBOLT
 	; end
 
 GranbullBaseData:: ; 0x52e44
@@ -6502,14 +5039,7 @@
 	dn FIELD, FAIRY ; egg groups
 
 	; tmhm
-	db %11110111
-	db %01010110
-	db %00011011
-	db %11100101
-	db %10001111
-	db %10111101
-	db %00100000
-	db %00000100
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, THUNDERBOLT
 	; end
 
 QwilfishBaseData:: ; 0x52e64
@@ -6533,14 +5063,7 @@
 	dn FISH, FISH ; egg groups
 
 	; tmhm
-	db %00101110
-	db %10110010
-	db %00011011
-	db %10000100
-	db %11001110
-	db %00011000
-	db %10010000
-	db %00001001
+	tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SWIFT, DEFENSE_CURL, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
 	; end
 
 ScizorBaseData:: ; 0x52e84
@@ -6564,14 +5087,7 @@
 	dn INSECT, INSECT ; egg groups
 
 	; tmhm
-	db %10100110
-	db %01010110
-	db %00011001
-	db %10000100
-	db %01010110
-	db %01111100
-	db %00100101
-	db %00000000
+	tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FURY_CUTTER, CUT, STRENGTH
 	; end
 
 ShuckleBaseData:: ; 0x52ea4
@@ -6595,14 +5111,7 @@
 	dn INSECT, INSECT ; egg groups
 
 	; tmhm
-	db %10101110
-	db %00010110
-	db %00011001
-	db %11001110
-	db %10011110
-	db %00011000
-	db %01100000
-	db %00000000
+	tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, STRENGTH, FLASH
 	; end
 
 HeracrossBaseData:: ; 0x52ec4
@@ -6626,14 +5135,7 @@
 	dn INSECT, INSECT ; egg groups
 
 	; tmhm
-	db %10100110
-	db %00010110
-	db %00011001
-	db %10000110
-	db %00000110
-	db %00111100
-	db %00100101
-	db %00000000
+	tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, STRENGTH
 	; end
 
 SneaselBaseData:: ; 0x52ee4
@@ -6657,14 +5159,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %10100111
-	db %10110011
-	db %01011011
-	db %11101100
-	db %11000111
-	db %00111110
-	db %00110111
-	db %00001000
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, FURY_CUTTER, NIGHTMARE, CUT, SURF, STRENGTH, ICE_BEAM
 	; end
 
 TeddiursaBaseData:: ; 0x52f04
@@ -6688,14 +5183,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %11111111
-	db %00010110
-	db %00011001
-	db %11001110
-	db %11000111
-	db %10111001
-	db %00100101
-	db %00000000
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, CUT, STRENGTH
 	; end
 
 UrsaringBaseData:: ; 0x52f24
@@ -6719,14 +5207,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %11111111
-	db %01010110
-	db %00011001
-	db %11001110
-	db %11000111
-	db %10111001
-	db %00100101
-	db %00000000
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, CUT, STRENGTH
 	; end
 
 SlugmaBaseData:: ; 0x52f44
@@ -6750,14 +5231,7 @@
 	dn AMORPHOUS, AMORPHOUS ; egg groups
 
 	; tmhm
-	db %10101100
-	db %00010110
-	db %00011001
-	db %11000100
-	db %10100110
-	db %00011000
-	db %00000000
-	db %00000010
+	tmhm CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, REST, ATTRACT, FLAMETHROWER
 	; end
 
 MagcargoBaseData:: ; 0x52f64
@@ -6781,14 +5255,7 @@
 	dn AMORPHOUS, AMORPHOUS ; egg groups
 
 	; tmhm
-	db %10101100
-	db %01010110
-	db %00011001
-	db %11000110
-	db %10100110
-	db %00011000
-	db %00100000
-	db %00000010
+	tmhm CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, REST, ATTRACT, STRENGTH, FLAMETHROWER
 	; end
 
 SwinubBaseData:: ; 0x52f84
@@ -6812,14 +5279,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %10110110
-	db %10110010
-	db %00011011
-	db %11000110
-	db %10000110
-	db %00011100
-	db %00100000
-	db %00001000
+	tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, STRENGTH, ICE_BEAM
 	; end
 
 PiloswineBaseData:: ; 0x52fa4
@@ -6843,14 +5303,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %10110110
-	db %11110010
-	db %00011011
-	db %11000110
-	db %10000110
-	db %00011100
-	db %00100000
-	db %00001000
+	tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, STRENGTH, ICE_BEAM
 	; end
 
 CorsolaBaseData:: ; 0x52fc4
@@ -6874,14 +5327,7 @@
 	dn AMPHIBIAN, INVERTEBRATE ; egg groups
 
 	; tmhm
-	db %10101110
-	db %00010110
-	db %00011011
-	db %11010110
-	db %10010110
-	db %00011000
-	db %10110000
-	db %00001000
+	tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, ICE_BEAM
 	; end
 
 RemoraidBaseData:: ; 0x52fe4
@@ -6905,14 +5351,7 @@
 	dn AMPHIBIAN, FISH ; egg groups
 
 	; tmhm
-	db %00100100
-	db %01010010
-	db %00011011
-	db %11000100
-	db %11000110
-	db %00111000
-	db %10010000
-	db %00001010
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, THIEF, SURF, WHIRLPOOL, FLAMETHROWER, ICE_BEAM
 	; end
 
 OctilleryBaseData:: ; 0x53004
@@ -6936,14 +5375,7 @@
 	dn AMPHIBIAN, FISH ; egg groups
 
 	; tmhm
-	db %00100100
-	db %01010010
-	db %00011011
-	db %11000100
-	db %11000110
-	db %00111000
-	db %10010000
-	db %00001010
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, THIEF, SURF, WHIRLPOOL, FLAMETHROWER, ICE_BEAM
 	; end
 
 DelibirdBaseData:: ; 0x53024
@@ -6967,14 +5399,7 @@
 	dn AMPHIBIAN, FIELD ; egg groups
 
 	; tmhm
-	db %00100110
-	db %10110010
-	db %00011011
-	db %11000100
-	db %01000110
-	db %00111100
-	db %00001000
-	db %00001000
+	tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, FLY, ICE_BEAM
 	; end
 
 MantineBaseData:: ; 0x53044
@@ -6998,14 +5423,7 @@
 	dn AMPHIBIAN, AMPHIBIAN ; egg groups
 
 	; tmhm
-	db %00100110
-	db %10110010
-	db %00011011
-	db %11000100
-	db %01000110
-	db %00011000
-	db %10010000
-	db %00001001
+	tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
 	; end
 
 SkarmoryBaseData:: ; 0x53064
@@ -7029,14 +5447,7 @@
 	dn AVIAN, AVIAN ; egg groups
 
 	; tmhm
-	db %00100100
-	db %00010110
-	db %00011001
-	db %11000100
-	db %01010110
-	db %01111100
-	db %00001100
-	db %00000000
+	tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, CUT, FLY
 	; end
 
 HoundourBaseData:: ; 0x53084
@@ -7060,14 +5471,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %10110110
-	db %00010110
-	db %01111001
-	db %11100100
-	db %01101110
-	db %00111110
-	db %00000010
-	db %00000010
+	tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, FLAMETHROWER
 	; end
 
 HoundoomBaseData:: ; 0x530a4
@@ -7091,14 +5495,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %10110110
-	db %01010110
-	db %01111001
-	db %11100100
-	db %01101110
-	db %00111110
-	db %00100010
-	db %00000010
+	tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, STRENGTH, FLAMETHROWER
 	; end
 
 KingdraBaseData:: ; 0x530c4
@@ -7122,14 +5519,7 @@
 	dn AMPHIBIAN, REPTILE ; egg groups
 
 	; tmhm
-	db %00100110
-	db %11110010
-	db %10011011
-	db %10000100
-	db %01000110
-	db %00011000
-	db %10010000
-	db %00001001
+	tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, DRAGONBREATH, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
 	; end
 
 PhanpyBaseData:: ; 0x530e4
@@ -7153,14 +5543,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %10111110
-	db %00010110
-	db %00011001
-	db %11000110
-	db %10010110
-	db %00011000
-	db %00100000
-	db %00000000
+	tmhm HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, STRENGTH
 	; end
 
 DonphanBaseData:: ; 0x53104
@@ -7184,14 +5567,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %10111110
-	db %01010110
-	db %00011001
-	db %11000110
-	db %10010110
-	db %00011000
-	db %00100000
-	db %00000000
+	tmhm HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, STRENGTH
 	; end
 
 Porygon2BaseData:: ; 0x53124
@@ -7215,14 +5591,7 @@
 	dn INANIMATE, INANIMATE ; egg groups
 
 	; tmhm
-	db %01100100
-	db %11110111
-	db %01011011
-	db %10010101
-	db %11000110
-	db %00101010
-	db %01000010
-	db %00001100
+	tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DREAM_EATER, REST, THIEF, NIGHTMARE, FLASH, THUNDERBOLT, ICE_BEAM
 	; end
 
 StantlerBaseData:: ; 0x53144
@@ -7246,14 +5615,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %00110110
-	db %00010111
-	db %00011011
-	db %11010110
-	db %01000110
-	db %00111110
-	db %01000010
-	db %00000000
+	tmhm HEADBUTT, CURSE, ROAR, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, FLASH
 	; end
 
 SmeargleBaseData:: ; 0x53164
@@ -7277,14 +5639,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
-	db %00000000
+	tmhm
 	; end
 
 TyrogueBaseData:: ; 0x53184
@@ -7308,14 +5663,7 @@
 	dn NO_EGGS, NO_EGGS ; egg groups
 
 	; tmhm
-	db %10100110
-	db %00010110
-	db %00011001
-	db %11000100
-	db %01000110
-	db %00111100
-	db %00100000
-	db %00000000
+	tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STRENGTH
 	; end
 
 HitmontopBaseData:: ; 0x531a4
@@ -7339,14 +5687,7 @@
 	dn HUMANSHAPE, HUMANSHAPE ; egg groups
 
 	; tmhm
-	db %10100110
-	db %00010110
-	db %00011001
-	db %11001100
-	db %01000110
-	db %00111100
-	db %00100000
-	db %00000000
+	tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STRENGTH
 	; end
 
 SmoochumBaseData:: ; 0x531c4
@@ -7370,14 +5711,7 @@
 	dn NO_EGGS, NO_EGGS ; egg groups
 
 	; tmhm
-	db %00100101
-	db %10111011
-	db %00011011
-	db %11110100
-	db %00000111
-	db %00111010
-	db %00000010
-	db %00001000
+	tmhm DYNAMICPUNCH, CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SWEET_SCENT, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, ICE_BEAM
 	; end
 
 ElekidBaseData:: ; 0x531e4
@@ -7401,14 +5735,7 @@
 	dn NO_EGGS, NO_EGGS ; egg groups
 
 	; tmhm
-	db %01100111
-	db %00010010
-	db %00011011
-	db %11010101
-	db %01000111
-	db %10111101
-	db %01000000
-	db %00000100
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FLASH, THUNDERBOLT
 	; end
 
 MagbyBaseData:: ; 0x53204
@@ -7432,14 +5759,7 @@
 	dn NO_EGGS, NO_EGGS ; egg groups
 
 	; tmhm
-	db %00100111
-	db %00010110
-	db %01011001
-	db %11010100
-	db %00100110
-	db %10111101
-	db %00000000
-	db %00000010
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FLAMETHROWER
 	; end
 
 MiltankBaseData:: ; 0x53224
@@ -7463,14 +5783,7 @@
 	dn FIELD, FIELD ; egg groups
 
 	; tmhm
-	db %11101111
-	db %11111111
-	db %01011011
-	db %11100111
-	db %10010111
-	db %10011001
-	db %00110000
-	db %00001100
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, SURF, STRENGTH, THUNDERBOLT, ICE_BEAM
 	; end
 
 BlisseyBaseData:: ; 0x53244
@@ -7494,14 +5807,7 @@
 	dn FAIRY, FAIRY ; egg groups
 
 	; tmhm
-	db %11101111
-	db %11110110
-	db %00111011
-	db %11110101
-	db %10110110
-	db %00011010
-	db %01100000
-	db %00001110
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, DREAM_EATER, REST, ATTRACT, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
 	; end
 
 RaikouBaseData:: ; 0x53264
@@ -7525,14 +5831,7 @@
 	dn NO_EGGS, NO_EGGS ; egg groups
 
 	; tmhm
-	db %11110110
-	db %01010111
-	db %01011011
-	db %11001101
-	db %01010110
-	db %00001100
-	db %01100100
-	db %00000100
+	tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, CUT, STRENGTH, FLASH, THUNDERBOLT
 	; end
 
 EnteiBaseData:: ; 0x53284
@@ -7556,14 +5855,7 @@
 	dn NO_EGGS, NO_EGGS ; egg groups
 
 	; tmhm
-	db %10110110
-	db %01010111
-	db %01111011
-	db %11001100
-	db %01110110
-	db %00001100
-	db %01100100
-	db %00000010
+	tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, DETECT, REST, CUT, STRENGTH, FLASH, FLAMETHROWER
 	; end
 
 SuicuneBaseData:: ; 0x532a4
@@ -7587,14 +5879,7 @@
 	dn NO_EGGS, NO_EGGS ; egg groups
 
 	; tmhm
-	db %10110110
-	db %11110111
-	db %01011011
-	db %11001100
-	db %01010110
-	db %00001100
-	db %10010100
-	db %00001001
+	tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, CUT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
 	; end
 
 LarvitarBaseData:: ; 0x532c4
@@ -7618,14 +5903,7 @@
 	dn MONSTER, MONSTER ; egg groups
 
 	; tmhm
-	db %00100110
-	db %01010110
-	db %00011011
-	db %11001110
-	db %00010110
-	db %00011100
-	db %00000000
-	db %00000000
+	tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DETECT, REST, ATTRACT
 	; end
 
 PupitarBaseData:: ; 0x532e4
@@ -7649,14 +5927,7 @@
 	dn MONSTER, MONSTER ; egg groups
 
 	; tmhm
-	db %00100110
-	db %01010110
-	db %00011011
-	db %11001110
-	db %00010110
-	db %00011100
-	db %00000000
-	db %00000000
+	tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DETECT, REST, ATTRACT
 	; end
 
 TyranitarBaseData:: ; 0x53304
@@ -7680,14 +5951,7 @@
 	dn MONSTER, MONSTER ; egg groups
 
 	; tmhm
-	db %10110111
-	db %01010110
-	db %11011011
-	db %11001110
-	db %00110110
-	db %10011100
-	db %00110111
-	db %00001110
+	tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DETECT, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, NIGHTMARE, CUT, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
 	; end
 
 LugiaBaseData:: ; 0x53324
@@ -7711,14 +5975,7 @@
 	dn NO_EGGS, NO_EGGS ; egg groups
 
 	; tmhm
-	db %11110110
-	db %11110111
-	db %11011111
-	db %11110111
-	db %01010110
-	db %01001110
-	db %10111010
-	db %00001101
+	tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, THUNDER, EARTHQUAKE, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DREAM_EATER, DETECT, REST, STEEL_WING, NIGHTMARE, FLY, SURF, STRENGTH, WHIRLPOOL, WATERFALL, THUNDERBOLT, ICE_BEAM
 	; end
 
 Ho_OhBaseData:: ; 0x53344
@@ -7742,14 +5999,7 @@
 	dn NO_EGGS, NO_EGGS ; egg groups
 
 	; tmhm
-	db %11110100
-	db %01010111
-	db %10111111
-	db %11110111
-	db %01110110
-	db %01001110
-	db %01101010
-	db %00000110
+	tmhm CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, DRAGONBREATH, THUNDER, EARTHQUAKE, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, DREAM_EATER, DETECT, REST, STEEL_WING, NIGHTMARE, FLY, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT
 	; end
 
 CelebiBaseData:: ; 0x53364
@@ -7773,12 +6023,5 @@
 	dn NO_EGGS, NO_EGGS ; egg groups
 
 	; tmhm
-	db %00100100
-	db %01011111
-	db %00111111
-	db %11110100
-	db %11010110
-	db %00001110
-	db %01000010
-	db %00000000
+	tmhm CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, NIGHTMARE, FLASH
 	; end
--- a/data/wild/fish.asm
+++ b/data/wild/fish.asm
@@ -6,26 +6,18 @@
 	push af
 	push bc
 	push hl
-	
+
 ; Get the fishing group for this map.
 	ld b, e
 	call GetFishGroupHeader
-	
+
 	ld hl, FishGroupHeaders
-	; encounter chance
+rept 7
 	add hl, de
-	; pointer to old rod data
-	add hl, de
-	add hl, de
-	; pointer to good rod data
-	add hl, de
-	add hl, de
-	; pointer to super rod data
-	add hl, de
-	add hl, de
-	
+endr
+
 	call Fish
-	
+
 	pop hl
 	pop bc
 	pop af
@@ -52,30 +44,31 @@
 	inc hl
 	ld e, b
 	ld d, 0
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
-	
+
 ; Encounter chance for this monster:
 	call Random
-	
+
 .CheckEncounter
 	cp [hl]
 	jr z, .ReadMon
 	jr c, .ReadMon
-	
+
 ; Next monster...
+rept 3
 	inc hl
-	inc hl
-	inc hl
+endr
 	jr .CheckEncounter
-	
+
 .ReadMon
 ; We're done with the encounter chance
 	inc hl
-	
+
 ; Species 0 triggers a read from a time-based encounter table.
 	ld a, [hli]
 	ld d, a
@@ -85,11 +78,11 @@
 ; Level
 	ld e, [hl]
 	ret
-	
+
 .NoBite
 	ld de, 0
 	ret
-	
+
 .TimeEncounter
 
 ; The level byte is repurposed as the index for the new table.
@@ -96,10 +89,9 @@
 	ld e, [hl]
 	ld d, 0
 	ld hl, TimeFishGroups
+rept 4
 	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
+endr
 
 ; One nightmon, then one daymon
 	ld a, [TimeOfDay]
@@ -106,9 +98,10 @@
 	and 3
 	cp NITE
 	jr c, .TimeSpecies
+rept 2
 	inc hl
-	inc hl
-	
+endr
+
 .TimeSpecies
 	ld d, [hl]
 	inc hl
@@ -122,11 +115,11 @@
 ; Return fishing encounter group header d in de.
 
 	push hl
-	ld hl, wdc1e
+	ld hl, DailyFlags
 	bit 2, [hl]
 	pop hl
 	jr z, .end
-	
+
 ; Groups 11 and 12 have special attributes.
 	ld a, d
 	cp 11
@@ -133,13 +126,13 @@
 	jr z, .group11
 	cp 12
 	jr z, .group12
-	
+
 .end
 	dec d
 	ld e, d
 	ld d, 0
 	ret
-	
+
 .group11
 	ld a, [wdfce]
 	cp 1
@@ -146,7 +139,7 @@
 	jr nz, .end
 	ld d, 6
 	jr .end
-	
+
 .group12
 	ld a, [wdfce]
 	cp 2
--- a/engine/buena_phone_scripts.asm
+++ b/engine/buena_phone_scripts.asm
@@ -1,13 +1,13 @@
 UnknownScript_0xa0b14:
-	checkflag ENGINE_BIKE_SHOP_CALL_ENABLED
+	checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
 	iftrue UnknownScript_0xa0b73
-	checkcode $a
-	if_greater_than $11, UnknownScript_0xa0b4b
+	checkcode VAR_HOUR
+	if_greater_than 17, UnknownScript_0xa0b4b
 	scall UnknownScript_0xa0b32
 	jump UnknownScript_0xa0c0e
 
 UnknownScript_0xa0b26:
-	checkflag ENGINE_BIKE_SHOP_CALL_ENABLED
+	checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
 	iftrue UnknownScript_0xa0b73
 	scall UnknownScript_0xa0b4f
 	jump UnknownScript_0xa0b77
@@ -36,8 +36,8 @@
 	end
 
 UnknownScript_0xa0b4f:
-	checkcode $a
-	if_greater_than $11, UnknownScript_0xa0b6e
+	checkcode VAR_HOUR
+	if_greater_than 17, UnknownScript_0xa0b6e
 	checkmorn
 	iftrue UnknownScript_0xa0b64
 	checkday
@@ -68,27 +68,27 @@
 UnknownScript_0xa0b77:
 	checkevent EVENT_BEAT_ELITE_FOUR
 	iftrue UnknownScript_0xa0b82
-	random $b
+	random 11
 	jump UnknownScript_0xa0b84
 
 UnknownScript_0xa0b82:
-	random $e
+	random 14
 
 UnknownScript_0xa0b84:
-	if_equal $0, UnknownScript_0xa0bbc
-	if_equal $1, UnknownScript_0xa0bc2
-	if_equal $2, UnknownScript_0xa0bc8
-	if_equal $3, UnknownScript_0xa0bce
-	if_equal $4, UnknownScript_0xa0bd4
-	if_equal $5, UnknownScript_0xa0bda
-	if_equal $6, UnknownScript_0xa0be0
-	if_equal $7, UnknownScript_0xa0be6
-	if_equal $8, UnknownScript_0xa0bec
-	if_equal $9, UnknownScript_0xa0bf2
-	if_equal $a, UnknownScript_0xa0bf8
-	if_equal $b, UnknownScript_0xa0bfe
-	if_equal $c, UnknownScript_0xa0c04
-	if_equal $d, UnknownScript_0xa0c0a
+	if_equal 0, UnknownScript_0xa0bbc
+	if_equal 1, UnknownScript_0xa0bc2
+	if_equal 2, UnknownScript_0xa0bc8
+	if_equal 3, UnknownScript_0xa0bce
+	if_equal 4, UnknownScript_0xa0bd4
+	if_equal 5, UnknownScript_0xa0bda
+	if_equal 6, UnknownScript_0xa0be0
+	if_equal 7, UnknownScript_0xa0be6
+	if_equal 8, UnknownScript_0xa0bec
+	if_equal 9, UnknownScript_0xa0bf2
+	if_equal 10, UnknownScript_0xa0bf8
+	if_equal 11, UnknownScript_0xa0bfe
+	if_equal 12, UnknownScript_0xa0c04
+	if_equal 13, UnknownScript_0xa0c0a
 
 UnknownScript_0xa0bbc:
 	writetext UnknownText_0xa0efb
@@ -149,10 +149,10 @@
 	end
 
 UnknownScript_0xa0c0e:
-	random $3
-	if_equal $0, UnknownScript_0xa0c1c
-	if_equal $1, UnknownScript_0xa0c20
-	if_equal $2, UnknownScript_0xa0c24
+	random 3
+	if_equal 0, UnknownScript_0xa0c1c
+	if_equal 1, UnknownScript_0xa0c20
+	if_equal 2, UnknownScript_0xa0c24
 
 UnknownScript_0xa0c1c:
 	writetext UnknownText_0xa1c88
--- a/engine/color.asm
+++ b/engine/color.asm
@@ -262,10 +262,9 @@
 	bit 7, a
 	jr z, .asm_8bd7
 	and $7f
+rept 4
 	inc hl
-	inc hl
-	inc hl
-	inc hl
+endr
 .asm_8bd7
 
 asm_8bd7
@@ -361,8 +360,9 @@
 .asm_8c5a
 	ld l, c
 	ld h, $0
+rept 2
 	add hl, hl
-	add hl, hl
+endr
 	ld bc, Palettes_a8be
 	add hl, bc
 	ld bc, $0004
@@ -398,8 +398,9 @@
 	ld hl, Unknown_8f6a
 	ld b, 0
 	dec c
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [rSVBK]
 	push af
 	ld a, $5
@@ -420,9 +421,9 @@
 Function8cb4: ; 8cb4
 	ld l, e
 	ld h, 0
+rept 3
 	add hl, hl
-	add hl, hl
-	add hl, hl
+endr
 	ld de, Palettes_8d05
 	add hl, de
 	call CheckCGB
@@ -433,8 +434,9 @@
 	ld bc, $0010
 	call CopyBytes
 	pop hl
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [hli]
 	ld [wcda9 + 3], a
 	ld a, [hli]
@@ -556,9 +558,9 @@
 Function9625: ; 9625
 	ld l, a
 	ld h, $0
+rept 3
 	add hl, hl
-	add hl, hl
-	add hl, hl
+endr
 	ld bc, Palettes_9df6
 	add hl, bc
 	ret
@@ -639,15 +641,13 @@
 	ld c, $8
 .asm_9683
 	ld a, $ff
+rept 4
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	xor a
+rept 4
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	dec c
 	jr nz, .asm_9683
 	pop af
@@ -806,8 +806,9 @@
 Function976b: ; 976b
 	ld l, a
 	ld h, 0
-	add hl, hl
-	add hl, hl
+rept 2
+	add hl,hl
+endr
 	ld bc, TrainerPalettes
 	add hl, bc
 	ret
@@ -896,9 +897,9 @@
 Function97ee: ; 97ee
 	ld l, a
 	ld h, $0
+rept 3
 	add hl, hl
-	add hl, hl
-	add hl, hl
+endr
 	ld bc, PokemonPalettes
 	add hl, bc
 	ret
@@ -912,10 +913,9 @@
 	call CheckShininess
 	pop hl
 	ret nc
+rept 4
 	inc hl
-	inc hl
-	inc hl
-	inc hl
+endr
 	ret
 ; 9809
 
@@ -1139,8 +1139,9 @@
 	jr nz, .asm_99a6
 	ld a, $20
 	ld [rJOYP], a
+rept 2
 	ld a, [rJOYP]
-	ld a, [rJOYP]
+endr
 	call Function9a7a
 	call Function9a7a
 	ld a, $30
@@ -1149,19 +1150,16 @@
 	call Function9a7a
 	ld a, $10
 	ld [rJOYP], a
+rept 6
 	ld a, [rJOYP]
-	ld a, [rJOYP]
-	ld a, [rJOYP]
-	ld a, [rJOYP]
-	ld a, [rJOYP]
-	ld a, [rJOYP]
+endr
 	call Function9a7a
 	call Function9a7a
 	ld a, $30
 	ld [rJOYP], a
+rept 3
 	ld a, [rJOYP]
-	ld a, [rJOYP]
-	ld a, [rJOYP]
+endr
 	call Function9a7a
 	call Function9a7a
 	ld a, [rJOYP]
@@ -1943,21 +1941,22 @@
 	callba Function494ac
 	jr c, .asm_b230
 
-	ld a, [wd19a]
+	ld a, [wPermission]
 	and 7
 	ld e, a
 	ld d, 0
 	ld hl, Unknown_b279
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
 	ld a, [TimeOfDayPal]
 	and 3
+rept 3
 	add a
-	add a
-	add a
+endr
 	ld e, a
 	ld d, 0
 	add hl, de
@@ -1975,9 +1974,9 @@
 	push hl
 	ld l, a
 	ld h, 0
-	add hl, hl
-	add hl, hl
-	add hl, hl
+rept 3
+	add hl,hl
+endr
 	ld de, TilesetBGPalette
 	add hl, de
 	ld e, l
@@ -2008,7 +2007,7 @@
 	ld a, $5 ; BANK(Unkn2Pals)
 	call FarCopyWRAM
 
-	ld a, [wd19a]
+	ld a, [wPermission]
 	cp 1
 	jr z, .asm_b253
 	cp 2
@@ -2017,9 +2016,9 @@
 	ld a, [MapGroup]
 	ld l, a
 	ld h, 0
-	add hl, hl
-	add hl, hl
-	add hl, hl
+rept 3
+	add hl,hl
+endr
 	ld de, RoofPals
 	add hl, de
 	ld a, [TimeOfDayPal]
@@ -2026,10 +2025,9 @@
 	and 3
 	cp NITE
 	jr c, .asm_b26d
+rept 4
 	inc hl
-	inc hl
-	inc hl
-	inc hl
+endr
 .asm_b26d
 	ld de, Unkn1Pals + 8 * 6 + 2
 	ld bc, 4
--- a/engine/credits.asm
+++ b/engine/credits.asm
@@ -260,8 +260,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_109937
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -326,8 +327,9 @@
 	cp $30
 	jr c, Function109986
 	ld a, [wcf66]
+rept 2
 	dec a
-	dec a
+endr
 	ld [wcf66], a
 	ld hl, LYOverrides + $1f
 	call Function1099a3
@@ -397,8 +399,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, CreditsStrings
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld d, [hl]
 	ld e, a
@@ -582,10 +585,9 @@
 	dec c
 	jr nz, .asm_109b08
 	pop hl
+rept 4
 	inc hl
-	inc hl
-	inc hl
-	inc hl
+endr
 	dec b
 	jr nz, .asm_109b01
 	ret
@@ -735,8 +737,9 @@
 	ld [hl], a
 	ld a, [wcf65]
 	and 3
+rept 2
 	add a
-	add a
+endr
 	add e
 	add a
 	ld e, a
--- a/engine/engine_flags.asm
+++ b/engine/engine_flags.asm
@@ -100,26 +100,26 @@
 	dwb wdc9d, %00000001 ; lucky number show
 	dwb StatusFlags2, %00001000
 
-	dwb wdc1e, %00000001 ; kurt making balls  ; $50
-	dwb wdc1e, %00000010
-	dwb wdc1e, %00000100 ; special wilddata?
-	dwb wdc1e, %00001000 ; time capsule (24h wait)
-	dwb wdc1e, %00010000 ; all fruit trees
-	dwb wdc1e, %00100000 ; shuckle given
-	dwb wdc1e, %01000000 ; goldenrod underground merchant closed
-	dwb wdc1e, %10000000 ; fought in trainer hall today
+	dwb DailyFlags, %00000001 ; kurt making balls  ; $50
+	dwb DailyFlags, %00000010
+	dwb DailyFlags, %00000100 ; special wilddata?
+	dwb DailyFlags, %00001000 ; time capsule (24h wait)
+	dwb DailyFlags, %00010000 ; all fruit trees
+	dwb DailyFlags, %00100000 ; shuckle given
+	dwb DailyFlags, %01000000 ; goldenrod underground merchant closed
+	dwb DailyFlags, %10000000 ; fought in trainer hall today
 
-	dwb wdc1f, %00000001 ; mt moon square clefairy  ; $58
-	dwb wdc1f, %00000010 ; union cave lapras
-	dwb wdc1f, %00000100 ; goldenrod underground haircut used
-	dwb wdc1f, %00001000 ; goldenrod mall happiness event floor05 person07
-	dwb wdc1f, %00010000 ; tea in blues house
-	dwb wdc1f, %00100000 ; indigo plateau rival fight
-	dwb wdc1f, %01000000
-	dwb wdc1f, %10000000
+	dwb WeeklyFlags, %00000001 ; mt moon square clefairy  ; $58
+	dwb WeeklyFlags, %00000010 ; union cave lapras
+	dwb WeeklyFlags, %00000100 ; goldenrod underground haircut used
+	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 wdc20, %00000001 ; $60
-	dwb wdc20, %00000010 ; goldenrod dept store sale is on
+	dwb SwarmFlags, %00000001 ; $60
+	dwb SwarmFlags, %00000010 ; goldenrod dept store sale is on
 
 	dwb GameTimerPause, %10000000 ; $62
 
@@ -194,5 +194,5 @@
 
 	dwb wd45b, %00000100 ; female player has been transformed into male
 
-	dwb wdc20, %00000100 ; dunsparce swarm   ; $a0
-	dwb wdc20, %00001000 ; yanma swarm
+	dwb SwarmFlags, %00000100 ; dunsparce swarm   ; $a0
+	dwb SwarmFlags, %00001000 ; yanma swarm
--- a/engine/events.asm
+++ b/engine/events.asm
@@ -24,91 +24,91 @@
 ; 966cb
 
 
-Function966cb: ; 966cb
+ClearAllScriptFlags3: ; 966cb
 	xor a
 	ld [ScriptFlags3], a
 	ret
 ; 966d0
 
-Function966d0:: ; 966d0
+SetAll_ScriptFlags3:: ; 966d0
 	ld a, $ff
 	ld [ScriptFlags3], a
 	ret
 ; 966d6
 
-Function966d6: ; 966d6
+CheckBit5_ScriptFlags3: ; 966d6
 	ld hl, ScriptFlags3
 	bit 5, [hl]
 	ret
 ; 966dc
 
-Function966dc: ; 966dc
+ResetBit2_ScriptFlags3: ; 966dc
 	ld hl, ScriptFlags3
 	res 2, [hl]
 	ret
 ; 966e2
 
-Function966e2: ; 966e2
+ResetBit1_ScriptFlags3: ; 966e2
 	ld hl, ScriptFlags3
 	res 1, [hl]
 	ret
 ; 966e8
 
-Function966e8: ; 966e8
+ResetBit0_ScriptFlags3: ; 966e8
 	ld hl, ScriptFlags3
 	res 0, [hl]
 	ret
 ; 966ee
 
-Function966ee: ; 966ee
+ResetBit4_ScriptFlags3: ; 966ee
 	ld hl, ScriptFlags3
 	res 4, [hl]
 	ret
 ; 966f4
 
-Function966f4: ; 966f4
+SetBit2_ScriptFlags3: ; 966f4
 	ld hl, ScriptFlags3
 	set 2, [hl]
 	ret
 ; 966fa
 
-Function966fa: ; 966fa
+SetBit1_ScriptFlags3: ; 966fa
 	ld hl, ScriptFlags3
 	set 1, [hl]
 	ret
 ; 96700
 
-Function96700: ; 96700
+SetBit0_ScriptFlags3: ; 96700
 	ld hl, ScriptFlags3
 	set 0, [hl]
 	ret
 ; 96706
 
-Function96706: ; 96706
+SetBit4_ScriptFlags3: ; 96706
 	ld hl, ScriptFlags3
 	set 4, [hl]
 	ret
 ; 9670c
 
-Function9670c: ; 9670c
+CheckBit2_ScriptFlags3: ; 9670c
 	ld hl, ScriptFlags3
 	bit 2, [hl]
 	ret
 ; 96712
 
-Function96712: ; 96712
+CheckBit1_ScriptFlags3: ; 96712
 	ld hl, ScriptFlags3
 	bit 1, [hl]
 	ret
 ; 96718
 
-Function96718: ; 96718
+CheckBit0_ScriptFlags3: ; 96718
 	ld hl, ScriptFlags3
 	bit 0, [hl]
 	ret
 ; 9671e
 
-Function9671e: ; 9671e
+CheckBit4_ScriptFlags3: ; 9671e
 	ld hl, ScriptFlags3
 	bit 4, [hl]
 	ret
@@ -135,20 +135,20 @@
 	ld [wd454], a
 	call Function968d1
 	callba RunMapSetupScript
-	call Function966cb
+	call ClearAllScriptFlags3
 
 	ld a, [$ff9f]
 	cp $f7
-	jr nz, .asm_9675a
-	call Function966d0
-.asm_9675a
+	jr nz, .dontset
+	call SetAll_ScriptFlags3
+.dontset
 
 	ld a, [$ff9f]
 	cp $f3
-	jr nz, .asm_96764
+	jr nz, .dontresetpoison
 	xor a
 	ld [PoisonStepCount], a
-.asm_96764
+.dontresetpoison
 
 	xor a
 	ld [$ff9f], a
@@ -197,7 +197,7 @@
 
 .events ; 967a1
 	call PlayerEvents
-	call Function966cb
+	call ClearAllScriptFlags3
 	callba ScriptEvents
 	ret
 ; 967ae
@@ -245,7 +245,7 @@
 ; 967e1
 
 Function967e1: ; 967e1
-	callba Function5920
+	callba RefreshMapAppearDisappear
 	callba Functiond4d2
 	callba Functionb8098
 	ret
@@ -254,19 +254,19 @@
 Function967f4: ; 967f4
 	ld a, [wd150]
 	bit 5, a
-	jr z, .asm_96806
+	jr z, .events
 	bit 6, a
-	jr z, .asm_9680c
+	jr z, .noevents
 	bit 4, a
-	jr nz, .asm_9680c
-	call Function966d0
+	jr nz, .noevents
+	call SetAll_ScriptFlags3
 
-.asm_96806
+.events
 	ld a, 0 ; events
 	ld [MapEventStatus], a
 	ret
 
-.asm_9680c
+.noevents
 	ld a, 1 ; no events
 	ld [MapEventStatus], a
 	ret
@@ -293,30 +293,30 @@
 	call Function968e4
 
 	call CheckTrainerBattle3
-	jr c, .asm_96848
+	jr c, .ok
 
 	call CheckTileEvent
-	jr c, .asm_96848
+	jr c, .ok
 
 	call Function97c30
-	jr c, .asm_96848
+	jr c, .ok
 
 	call Function968ec
-	jr c, .asm_96848
+	jr c, .ok
 
 	call Function9693a
-	jr c, .asm_96848
+	jr c, .ok
 
 	call OWPlayerInput
-	jr c, .asm_96848
+	jr c, .ok
 
 	xor a
 	ret
 
 
-.asm_96848
+.ok
 	push af
-	callba Function96c56
+	callba EnableScriptMode
 	pop af
 
 	ld [ScriptRunning], a
@@ -323,14 +323,14 @@
 	call Function96beb
 	ld a, [ScriptRunning]
 	cp 4
-	jr z, .asm_96865
+	jr z, .ok2
 	cp 9
-	jr z, .asm_96865
+	jr z, .ok2
 
 	xor a
 	ld [wc2da], a
 
-.asm_96865
+.ok2
 	scf
 	ret
 ; 96867
@@ -340,13 +340,13 @@
 	nop
 	nop
 	call CheckTrainerBattle2
-	jr nc, .asm_96872
+	jr nc, .nope
 
 	ld a, 1
 	scf
 	ret
 
-.asm_96872
+.nope
 	xor a
 	ret
 ; 96874
@@ -355,60 +355,60 @@
 CheckTileEvent: ; 96874
 ; Check for warps, tile triggers or wild battles.
 
-	call Function9670c
-	jr z, .asm_96886
+	call CheckBit2_ScriptFlags3
+	jr z, .bit2
 
-	callba Function104820
-	jr c, .asm_968a6
+	callba CheckMovingOffEdgeOfMap
+	jr c, .return4
 
 	call Function2238
-	jr c, .asm_968aa
+	jr c, .return6
 
-.asm_96886
-	call Function96712
-	jr z, .asm_96890
+.bit2
+	call CheckBit1_ScriptFlags3
+	jr z, .bit1
 
-	call Function2ad4
-	jr c, .asm_968ba
+	call CheckCurrentMapXYTriggers
+	jr c, .movement
 
-.asm_96890
-	call Function96718
-	jr z, .asm_96899
+.bit1
+	call CheckBit0_ScriptFlags3
+	jr z, .bit0
 
 	call CountStep
 	ret c
 
-.asm_96899
-	call Function9671e
-	jr z, .asm_968a4
+.bit0
+	call CheckBit4_ScriptFlags3
+	jr z, .ok
 
 	call Function97cc0
 	ret c
-	jr .asm_968a4
+	jr .ok
 
-.asm_968a4
+.ok
 	xor a
 	ret
 
-.asm_968a6
+.return4
 	ld a, 4
 	scf
 	ret
 
-.asm_968aa
+.return6
 	ld a, [StandingTile]
 	call CheckPitTile
-	jr nz, .asm_968b6
+	jr nz, .pittile
 	ld a, 6
 	scf
 	ret
 
-.asm_968b6
+.pittile
 	ld a, 5
 	scf
 	ret
 
-.asm_968ba
+.movement
 	ld hl, MovementAnimation
 	ld a, [hli]
 	ld h, [hl]
@@ -450,7 +450,7 @@
 ; 968e4
 
 Function968e4: ; 968e4
-	call Function966d6
+	call CheckBit5_ScriptFlags3
 	ret z
 	call Function2f3e
 	ret
@@ -459,12 +459,12 @@
 Function968ec: ; 968ec
 	ld a, [wdc07]
 	and a
-	jr z, .asm_96938
+	jr z, .nope
 
 	ld c, a
-	call Function211b
+	call CheckTriggers
 	cp c
-	jr nc, .asm_96938
+	jr nc, .nope
 
 	ld e, a
 	ld d, 0
@@ -472,11 +472,10 @@
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
-	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
-
+rept 4
+	add hl,de
+endr
+	
 	call GetMapScriptHeaderBank
 	call GetFarHalfword
 	call GetMapScriptHeaderBank
@@ -485,12 +484,12 @@
 	ld hl, ScriptFlags
 	res 3, [hl]
 
-	callba Function96c56
+	callba EnableScriptMode
 	callba ScriptEvents
 
 	ld hl, ScriptFlags
 	bit 3, [hl]
-	jr z, .asm_96938
+	jr z, .nope
 
 	ld hl, ScriptDelay + 2
 	ld a, [hli]
@@ -501,7 +500,7 @@
 	scf
 	ret
 
-.asm_96938
+.nope
 	xor a
 	ret
 ; 9693a
@@ -531,8 +530,8 @@
 	ret
 
 .elevator
-	ld a, BANK(UnknownScript_0x135f8)
-	ld hl, UnknownScript_0x135f8
+	ld a, BANK(BugCatchingContestOverScript)
+	ld hl, BugCatchingContestOverScript
 	call CallScript
 	scf
 	ret
@@ -608,8 +607,8 @@
 .IsObject
 	call PlayTalkObject
 	ld a, [hConnectedMapWidth]
-	call Function1ae5
-	ld hl, $0001
+	call GetObjectStruct
+	ld hl, OBJECT_MAP_OBJECT_INDEX
 	add hl, bc
 	ld a, [hl]
 	ld [$ffe0], a
@@ -616,17 +615,17 @@
 
 	ld a, [$ffe0]
 	call GetMapObject
-	ld hl, $0008
+	ld hl, MAPOBJECT_COLOR
 	add hl, bc
 	ld a, [hl]
-	and $f
+	and %00001111
 
 ; Bug: If IsInArray returns nc, data at bc will be executed as code.
 	push bc
 	ld de, 3
-	ld hl, .data_969ee
+	ld hl, .pointers
 	call IsInArray
-	jr nc, .asm_969ec
+	jr nc, .nope_bugged
 	pop bc
 
 	inc hl
@@ -635,11 +634,11 @@
 	ld l, a
 	jp [hl]
 
-.asm_969ec
+.nope_bugged
 	xor a
 	ret
 
-.data_969ee
+.pointers
 	dbw 0, .zero
 	dbw 1, .one
 	dbw 2, .two
@@ -647,11 +646,11 @@
 	dbw 4, .four
 	dbw 5, .five
 	dbw 6, .six
-	db $ff
+	db -1
 ; 96a04
 
 .zero ; 96a04
-	ld hl, $000a
+	ld hl, MAPOBJECT_SCRIPT_POINTER
 	add hl, bc
 	ld a, [hli]
 	ld h, [hl]
@@ -663,7 +662,7 @@
 ; 96a12
 
 .one ; 96a12
-	ld hl, $000a
+	ld hl, MAPOBJECT_SCRIPT_POINTER
 	add hl, bc
 	ld a, [hli]
 	ld h, [hl]
@@ -712,7 +711,7 @@
 	ret
 
 .IsSign
-	ld a, [MartPointer]
+	ld a, [wd040]
 	ld hl, .signs
 	rst JumpTable
 	ret
@@ -726,7 +725,7 @@
 	dw .ifset
 	dw .ifnotset
 	dw .itemifset
-	dw .asm_96aa2
+	dw .copy
 ; 96a59
 
 .up
@@ -767,13 +766,13 @@
 	ld de, EngineBuffer1
 	ld bc, 3
 	call FarCopyBytes
-	ld a, BANK(UnknownScript_0x13625)
-	ld hl, UnknownScript_0x13625
+	ld a, BANK(SignpostItemScript)
+	ld hl, SignpostItemScript
 	call CallScript
 	scf
 	ret
 
-.asm_96aa2
+.copy
 	call CheckSignFlag
 	jr nz, .dontread
 	call GetMapScriptHeaderBank
@@ -785,18 +784,19 @@
 .ifset
 	call CheckSignFlag
 	jr z, .dontread
-	jr .asm_96ac1
+	jr .thenread
 
 .ifnotset
 	call CheckSignFlag
 	jr nz, .dontread
 
-.asm_96ac1
+.thenread
 	push hl
 	call PlayTalkObject
 	pop hl
+rept 2
 	inc hl
-	inc hl
+endr
 	call GetMapScriptHeaderBank
 	call GetFarHalfword
 	call GetMapScriptHeaderBank
@@ -820,7 +820,7 @@
 	call GetFarHalfword
 	ld e, l
 	ld d, h
-	ld b, $2
+	ld b, $2 ; check
 	call EventFlagAction
 	ld a, c
 	and a
@@ -878,8 +878,8 @@
 
 .three ; 96b20
 ; force the player to move in some direction
-	ld a, BANK(UnknownScript_0x1253d)
-	ld hl, UnknownScript_0x1253d
+	ld a, BANK(Script_ForcedMovement)
+	ld hl, Script_ForcedMovement
 	call CallScript
 ;	ld a, -1
 	ld c, a
@@ -941,8 +941,8 @@
 StartMenuCallback:
 SelectMenuCallback: ; 96b66
 	copybytetovar $ffa0
-	if_equal $80, .Script
-	if_equal $ff, .Asm
+	if_equal %10000000, .Script
+	if_equal -1, .Asm
 	end
 ; 96b72
 
@@ -959,13 +959,13 @@
 CountStep: ; 96b79
 	ld a, [InLinkBattle]
 	and a
-	jr nz, .asm_96bc9
+	jr nz, .done
 
 	callba Function90136
-	jr c, .asm_96bcb
+	jr c, .setminus1
 
 	call Function96bd7
-	jr c, .asm_96bcb
+	jr c, .setminus1
 
 	ld hl, PoisonStepCount
 	inc [hl]
@@ -981,7 +981,7 @@
 	jr nz, .asm_96bab
 
 	callba Function16f3e
-	jr nz, .asm_96bcf
+	jr nz, .set8
 
 .asm_96bab
 	callba DaycareStep
@@ -989,25 +989,25 @@
 	ld hl, PoisonStepCount
 	ld a, [hl]
 	cp 4
-	jr c, .asm_96bc3
+	jr c, .poisoned
 	ld [hl], 0
 
 	callba Function505da
-	jr c, .asm_96bcb
+	jr c, .setminus1
 
-.asm_96bc3
+.poisoned
 	callba Function97db3
 
-.asm_96bc9
+.done
 	xor a
 	ret
 
-.asm_96bcb
+.setminus1
 	ld a, -1
 	scf
 	ret
 
-.asm_96bcf
+.set8
 	ld a, 8
 	scf
 	ret
@@ -1015,7 +1015,7 @@
 
 
 Function96bd3: ; 96bd3
-	ld a, $7
+	ld a, 7
 	scf
 	ret
 ; 96bd7
@@ -1027,8 +1027,8 @@
 	dec a
 	ld [wdca1], a
 	ret nz
-	ld a, BANK(UnknownScript_0x13619)
-	ld hl, UnknownScript_0x13619
+	ld a, BANK(RepelWoreOffScript)
+	ld hl, RepelWoreOffScript
 	call CallScript
 	scf
 	ret
@@ -1038,17 +1038,17 @@
 	ld a, [ScriptRunning]
 	and a
 	ret z
-	cp $ff
+	cp -1
 	ret z
-	cp $a
+	cp 10
 	ret nc
 
 	ld c, a
 	ld b, 0
 	ld hl, ScriptPointers96c0c
-	add hl, bc
-	add hl, bc
-	add hl, bc
+rept 3
+	add hl,bc
+endr
 	ld a, [hli]
 	ld [ScriptBank], a
 	ld a, [hli]
@@ -1059,20 +1059,20 @@
 ; 96c0c
 
 ScriptPointers96c0c: ; 96c0c
-	dbw BANK(UnknownScript_0x96c2d), UnknownScript_0x96c2d
-	dbw BANK(UnknownScript_0xbe675), UnknownScript_0xbe675
-	dbw BANK(UnknownScript_0xbe66a), UnknownScript_0xbe66a
-	dbw BANK(UnknownScript_0x122ce), UnknownScript_0x122ce
+	dbw BANK(Invalid_0x96c2d), Invalid_0x96c2d
+	dbw BANK(SeenByTrainerScript), SeenByTrainerScript
+	dbw BANK(TalkToTrainerScript), TalkToTrainerScript
+	dbw BANK(FindItemInBallScript), FindItemInBallScript
 	dbw BANK(UnknownScript_0x96c4d), UnknownScript_0x96c4d
-	dbw BANK(UnknownScript_0x96c34), UnknownScript_0x96c34
+	dbw BANK(WarpToNewMapScript), WarpToNewMapScript
 	dbw BANK(FallIntoMapScript), FallIntoMapScript
 	dbw BANK(UnknownScript_0x124c8), UnknownScript_0x124c8
-	dbw BANK(UnknownScript_0x96c2f), UnknownScript_0x96c2f
+	dbw BANK(HatchEggScript), HatchEggScript
 	dbw BANK(UnknownScript_0x96c4f), UnknownScript_0x96c4f
-	dbw BANK(UnknownScript_0x96c2d), UnknownScript_0x96c2d
+	dbw BANK(Invalid_0x96c2d), Invalid_0x96c2d
 ; 96c2d
 
-UnknownScript_0x96c2d: ; 96c2d
+Invalid_0x96c2d: ; 96c2d
 	end
 ; 96c2e
 
@@ -1080,12 +1080,12 @@
 	end
 ; 96c2f
 
-UnknownScript_0x96c2f: ; 96c2f
-	callasm Function16f5e
+HatchEggScript: ; 96c2f
+	callasm OverworldHatchEgg
 	end
 ; 96c34
 
-UnknownScript_0x96c34: ; 96c34
+WarpToNewMapScript: ; 96c34
 	warpsound
 	newloadmap $f5
 	end
@@ -1116,7 +1116,7 @@
 
 UnknownScript_0x96c4f: ; 96c4f
 	deactivatefacing $3
-	callasm Function96706
+	callasm SetBit4_ScriptFlags3
 	end
 ; 96c56
 
--- a/engine/events_2.asm
+++ b/engine/events_2.asm
@@ -1,7 +1,7 @@
 ; More overworld event handling.
 
 
-Function97c28:: ; 97c28
+WarpToSpawnPoint:: ; 97c28
 	ld hl, StatusFlags2
 	res 1, [hl]
 	res 2, [hl]
@@ -48,13 +48,13 @@
 	call GetFacingTileCoord
 	ld [EngineBuffer1], a
 	ld c, a
-	callba Function1365b
-	jr c, .asm_97cb9
+	callba CheckFacingTileForStd
+	jr c, .done
 
 	call CheckCutTreeTile
 	jr nz, .whirlpool
 	callba TryCutOW
-	jr .asm_97cb9
+	jr .done
 
 .whirlpool
 	ld a, [EngineBuffer1]
@@ -61,7 +61,7 @@
 	call CheckWhirlpoolTile
 	jr nz, .waterfall
 	callba TryWhirlpoolOW
-	jr .asm_97cb9
+	jr .done
 
 .waterfall
 	ld a, [EngineBuffer1]
@@ -68,7 +68,7 @@
 	call CheckWaterfallTile
 	jr nz, .headbutt
 	callba TryWaterfallOW
-	jr .asm_97cb9
+	jr .done
 
 .headbutt
 	ld a, [EngineBuffer1]
@@ -75,19 +75,19 @@
 	call CheckHeadbuttTreeTile
 	jr nz, .surf
 	callba TryHeadbuttOW
-	jr c, .asm_97cb9
-	jr .asm_97cb7
+	jr c, .done
+	jr .noevent
 
 .surf
 	callba TrySurfOW
-	jr nc, .asm_97cb7
-	jr .asm_97cb9
+	jr nc, .noevent
+	jr .done
 
-.asm_97cb7
+.noevent
 	xor a
 	ret
 
-.asm_97cb9
+.done
 	call PlayClickSFX
 	ld a, $ff
 	scf
@@ -125,8 +125,8 @@
 	jr .asm_97cf4
 
 .asm_97ced
-	ld a, BANK(UnknownScript_0x135eb)
-	ld hl, UnknownScript_0x135eb
+	ld a, BANK(BugCatchingContestBattleScript)
+	ld hl, BugCatchingContestBattleScript
 	jr .asm_97cf4
 
 .asm_97cf4
@@ -146,7 +146,7 @@
 	ld hl, StatusFlags
 	bit 5, [hl]
 	jr nz, .asm_97d21
-	ld a, [wd19a]
+	ld a, [wPermission]
 	cp $4
 	jr z, .asm_97d17
 	cp $7
@@ -271,21 +271,21 @@
 Function97db5: ; 97db5
 	ld hl, StatusFlags2
 	bit 4, [hl]
-	jr z, .asm_97df7
+	jr z, .NoCall
 	ld a, [PlayerState]
-	cp $1
-	jr nz, .asm_97df7
-	call Function2d05
+	cp 1
+	jr nz, .NoCall
+	call GetMapHeaderPhoneServiceNybble
 	and a
-	jr nz, .asm_97df7
+	jr nz, .NoCall
 	ld hl, wdca1 + 1
 	ld a, [hli]
 	ld d, a
 	ld e, [hl]
-	cp $ff
+	cp -1
 	jr nz, .asm_97dd8
 	ld a, e
-	cp $ff
+	cp -1
 	jr z, .asm_97ddc
 
 .asm_97dd8
@@ -297,20 +297,20 @@
 .asm_97ddc
 	ld a, d
 	cp $4
-	jr c, .asm_97df7
-	ld a, [wdc31]
+	jr c, .NoCall
+	ld a, [wSpecialPhoneCallID]
 	and a
-	jr nz, .asm_97df7
-	ld a, $6
-	ld [wdc31], a
+	jr nz, .NoCall
+	ld a, 6
+	ld [wSpecialPhoneCallID], a
 	xor a
-	ld [wdc31 + 1], a
+	ld [wSpecialPhoneCallID + 1], a
 	ld hl, StatusFlags2
 	res 4, [hl]
 	scf
 	ret
 
-.asm_97df7
+.NoCall
 	xor a
 	ret
 ; 97df9
@@ -317,14 +317,14 @@
 
 Function97df9:: ; 97df9
 	ld hl, wd6de
-	ld de, $0006
-	ld c, $4
+	ld de, 6
+	ld c, 4
 	xor a
-.asm_97e02
+.loop
 	ld [hl], a
 	add hl, de
 	dec c
-	jr nz, .asm_97e02
+	jr nz, .loop
 	ret
 ; 97e08
 
@@ -439,9 +439,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Table97e94
+rept 3
 	add hl, de
-	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	push af
 	ld a, [hli]
--- a/engine/fruit_trees.asm
+++ b/engine/fruit_trees.asm
@@ -43,7 +43,7 @@
 ; 4404c
 
 TryResetFruitTrees: ; 4404c
-	ld hl, wdc1e
+	ld hl, DailyFlags
 	bit 4, [hl]
 	ret nz
 	jp ResetFruitTrees
@@ -66,11 +66,11 @@
 ResetFruitTrees: ; 4406a
 	xor a
 	ld hl, FruitTreeFlags
+rept 3
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
-	ld hl, wdc1e
+	ld hl, DailyFlags
 	set 4, [hl]
 	ret
 ; 44078
--- a/engine/landmarks.asm
+++ b/engine/landmarks.asm
@@ -3,8 +3,9 @@
 	push hl
 	ld l, e
 	ld h, 0
+rept 2
 	add hl, hl
-	add hl, hl
+endr
 	ld de, Landmarks
 	add hl, de
 	ld a, [hli]
@@ -23,8 +24,9 @@
 
 	ld l, e
 	ld h, 0
+rept 2
 	add hl, hl
-	add hl, hl
+endr
 	ld de, Landmarks + 2
 	add hl, de
 	ld a, [hli]
--- a/engine/map_objects.asm
+++ b/engine/map_objects.asm
@@ -1,7 +1,7 @@
 
 INCLUDE "engine/facings.asm"
 
-Data4273:: ; 4273
+ObjectStruct3_Data:: ; 4273
 	db $00, $00, $01, $02, $00, $00
 	db $06, $00, $01, $0c, $00, $00
 	db $03, $00, $01, $00, $00, $00
@@ -45,26 +45,26 @@
 
 Function4357:: ; 4357
 	push bc
-	ld hl, OBJECT_01
+	ld hl, OBJECT_MAP_OBJECT_INDEX
 	add hl, bc
 	ld a, [hl]
 	push af
 	ld h, b
 	ld l, c
-	ld bc, ObjectStruct2 - ObjectStruct1
+	ld bc, OBJECT_STRUCT_LENGTH
 	xor a
 	call ByteFill
 	pop af
-	cp $ff
-	jr z, .asm_4379
+	cp -1
+	jr z, .ok
 	bit 7, a
-	jr nz, .asm_4379
+	jr nz, .ok
 	call GetMapObject
-	ld hl, OBJECT_00
+	ld hl, OBJECT_SPRITE
 	add hl, bc
-	ld [hl], $ff
+	ld [hl], -1
 
-.asm_4379
+.ok
 	pop bc
 	ret
 ; 437b
@@ -86,24 +86,24 @@
 	ld hl, OBJECT_MAP_X
 	add hl, bc
 	ld a, [hl]
-	add $1
+	add 1
 	sub e
-	jr c, .asm_43b2
-	cp $c
-	jr nc, .asm_43b2
+	jr c, .ok
+	cp MAPOBJECT_SCREEN_WIDTH
+	jr nc, .ok
 	ld a, [YCoord]
 	ld e, a
 	ld hl, OBJECT_MAP_Y
 	add hl, bc
 	ld a, [hl]
-	add $1
+	add 1
 	sub e
-	jr c, .asm_43b2
-	cp $b
-	jr nc, .asm_43b2
-	jr .asm_43dc
+	jr c, .ok
+	cp MAPOBJECT_SCREEN_HEIGHT
+	jr nc, .ok
+	jr .yes
 
-.asm_43b2
+.ok
 	ld hl, OBJECT_FLAGS
 	add hl, bc
 	set 6, [hl]
@@ -112,36 +112,36 @@
 	ld hl, OBJECT_20
 	add hl, bc
 	ld a, [hl]
-	add $1
+	add 1
 	sub e
-	jr c, .asm_43de
-	cp $c
-	jr nc, .asm_43de
+	jr c, .ok2
+	cp MAPOBJECT_SCREEN_WIDTH
+	jr nc, .ok2
 	ld a, [YCoord]
 	ld e, a
 	ld hl, OBJECT_21
 	add hl, bc
 	ld a, [hl]
-	add $1
+	add 1
 	sub e
-	jr c, .asm_43de
-	cp $b
-	jr nc, .asm_43de
+	jr c, .ok2
+	cp MAPOBJECT_SCREEN_HEIGHT
+	jr nc, .ok2
 
-.asm_43dc
+.yes
 	and a
 	ret
 
-.asm_43de
+.ok2
 	ld hl, OBJECT_04
 	add hl, bc
 	bit 1, [hl]
-	jr nz, .asm_43eb
+	jr nz, .yes2
 	call Function4357
 	scf
 	ret
 
-.asm_43eb
+.yes2
 	ld hl, OBJECT_FLAGS
 	add hl, bc
 	set 6, [hl]
@@ -154,23 +154,23 @@
 	add hl, bc
 	ld a, [hl]
 	and a
-	jr z, .asm_4409
+	jr z, .zero
 	ld hl, OBJECT_FLAGS
 	add hl, bc
 	bit 5, [hl]
-	jr nz, .asm_4426
-	cp $1
-	jr z, .asm_4414
-	jr .asm_4421
+	jr nz, .not_bit5
+	cp 1
+	jr z, .one
+	jr .ok
 
-.asm_4409
+.zero
 	call Function47bc
 	ld hl, OBJECT_FLAGS
 	add hl, bc
 	bit 5, [hl]
-	jr nz, .asm_4426
+	jr nz, .not_bit5
 
-.asm_4414
+.one
 	call Function47dd
 	ld hl, OBJECT_09
 	add hl, bc
@@ -177,15 +177,15 @@
 	ld a, [hl]
 	and a
 	ret z
-	cp $1
+	cp 1
 	ret z
 
-.asm_4421
+.ok
 	ld hl, Pointers4b45
 	rst JumpTable
 	ret
 
-.asm_4426
+.not_bit5
 	ret
 ; 4427
 
@@ -226,8 +226,9 @@
 	ld a, [hl]
 	ld l, a
 	ld h, 0
-	add hl, hl
-	add hl, hl
+rept 2
+	add hl,hl
+endr
 	add hl, de
 	ld a, [hli]
 	ld h, [hl]
@@ -274,16 +275,16 @@
 ; 44a3
 
 Function44a3: ; 44a3
-	ld hl, OBJECT_FACING
+	ld hl, OBJECT_FACING_STEP
 	add hl, bc
-	ld [hl], $ff
+	ld [hl], -1
 	ret
 ; 44aa
 
 Function44aa: ; 44aa
 	call GetSpriteDirection
-	or $0
-	ld hl, OBJECT_FACING
+	or 0
+	ld hl, OBJECT_FACING_STEP
 	add hl, bc
 	ld [hl], a
 	ret
@@ -290,10 +291,10 @@
 ; 44b5
 
 Function44b5: ; 44b5
-	ld hl, OBJECT_FACING
+	ld hl, OBJECT_FACING_STEP
 	add hl, bc
 	ld a, [hl]
-	and $1
+	and 1
 	jr nz, Function44c1
 	jp Function44aa
 ; 44c1
@@ -307,16 +308,16 @@
 	add hl, bc
 	ld a, [hl]
 	inc a
-	and $f
+	and %00001111
 	ld [hl], a
 	rrca
 	rrca
-	and $3
+	and %00000011
 	ld d, a
 	call GetSpriteDirection
-	or $0
+	or 0
 	or d
-	ld hl, OBJECT_FACING
+	ld hl, OBJECT_FACING_STEP
 	add hl, bc
 	ld [hl], a
 	ret
@@ -330,17 +331,17 @@
 	ld hl, OBJECT_12
 	add hl, bc
 	ld a, [hl]
-	add $2
-	and $f
+	add 2
+	and %00001111
 	ld [hl], a
 	rrca
 	rrca
-	and $3
+	and %00000011
 	ld d, a
 	call GetSpriteDirection
-	or $0
+	or 0
 	or d
-	ld hl, OBJECT_FACING
+	ld hl, OBJECT_FACING_STEP
 	add hl, bc
 	ld [hl], a
 	ret
@@ -358,12 +359,12 @@
 	rrca
 	rrca
 	rrca
-	and $3
+	and %00000011
 	ld d, a
 	call GetSpriteDirection
-	or $0
+	or 0
 	or d
-	ld hl, OBJECT_FACING
+	ld hl, OBJECT_FACING_STEP
 	add hl, bc
 	ld [hl], a
 	ret
@@ -371,11 +372,11 @@
 
 Function4529: ; 4529
 	call Function453f
-	ld hl, OBJECT_08
+	ld hl, OBJECT_FACING
 	add hl, bc
 	ld a, [hl]
-	or $0
-	ld hl, OBJECT_FACING
+	or 0
+	ld hl, OBJECT_FACING_STEP
 	add hl, bc
 	ld [hl], a
 	ret
@@ -390,21 +391,21 @@
 	ld hl, OBJECT_12
 	add hl, bc
 	ld a, [hl]
-	and $f0
+	and %11110000
 	ld e, a
 	ld a, [hl]
 	inc a
-	and $f
+	and %00001111
 	ld d, a
-	cp $4
-	jr c, .asm_4558
+	cp 4
+	jr c, .ok
 	ld d, 0
 	ld a, e
 	add $10
-	and $30
+	and %00110000
 	ld e, a
 
-.asm_4558
+.ok
 	ld a, d
 	or e
 	ld [hl], a
@@ -413,7 +414,7 @@
 	ld hl, .Directions
 	add hl, de
 	ld a, [hl]
-	ld hl, OBJECT_08
+	ld hl, OBJECT_FACING
 	add hl, bc
 	ld [hl], a
 	ret
@@ -420,7 +421,7 @@
 ; 456a
 
 .Directions ; 456a
-	db $00, $0c, $04, $08
+	db DOWN << 2, RIGHT << 2, UP << 2, LEFT << 2
 ; 456e
 
 Function456e: ; 456e
@@ -428,7 +429,7 @@
 	rrca
 	rrca
 	add $10
-	ld hl, OBJECT_FACING
+	ld hl, OBJECT_FACING_STEP
 	add hl, bc
 	ld [hl], a
 	ret
@@ -435,7 +436,7 @@
 ; 457b
 
 Function457b: ; 457b
-	ld hl, OBJECT_FACING
+	ld hl, OBJECT_FACING_STEP
 	add hl, bc
 	ld [hl], $15
 	ret
@@ -442,7 +443,7 @@
 ; 4582
 
 Function4582: ; 4582
-	ld hl, OBJECT_FACING
+	ld hl, OBJECT_FACING_STEP
 	add hl, bc
 	ld [hl], $14
 	ret
@@ -449,7 +450,7 @@
 ; 4589
 
 Function4589: ; 4589
-	ld hl, OBJECT_FACING
+	ld hl, OBJECT_FACING_STEP
 	add hl, bc
 	ld [hl], $17
 	ret
@@ -460,11 +461,11 @@
 	add hl, bc
 	ld a, [hl]
 	inc a
-	and $f
+	and %00001111
 	ld [hl], a
-	and $8
+	and %00001000
 	jr z, Function45a4
-	ld hl, OBJECT_FACING
+	ld hl, OBJECT_FACING_STEP
 	add hl, bc
 	ld [hl], $4
 	ret
@@ -471,9 +472,9 @@
 ; 45a4
 
 Function45a4: ; 45a4
-	ld hl, OBJECT_FACING
+	ld hl, OBJECT_FACING_STEP
 	add hl, bc
-	ld [hl], $0
+	ld [hl], 0
 	ret
 ; 45ab
 
@@ -483,11 +484,11 @@
 	ld a, [hl]
 	inc a
 	ld [hl], a
-	and $c
+	and %00001100
 	rrca
 	rrca
 	add $18
-	ld hl, OBJECT_FACING
+	ld hl, OBJECT_FACING_STEP
 	add hl, bc
 	ld [hl], a
 	ret
@@ -494,7 +495,7 @@
 ; 45be
 
 Function45be: ; 45be
-	ld hl, OBJECT_FACING
+	ld hl, OBJECT_FACING_STEP
 	add hl, bc
 	ld [hl], $16
 	ret
@@ -501,16 +502,16 @@
 ; 45c5
 
 Function45c5: ; 45c5
-	ld a, [VariableSprites + 3]
+	ld a, [VariableSprites + SPRITE_BIG_DOLL - SPRITE_VARS]
 	ld d, $17
-	cp $33
-	jr z, .asm_45d4
-	cp $47
-	jr z, .asm_45d4
+	cp SPRITE_BIG_SNORLAX
+	jr z, .ok
+	cp SPRITE_BIG_LAPRAS
+	jr z, .ok
 	ld d, $16
 
-.asm_45d4
-	ld hl, OBJECT_FACING
+.ok
+	ld hl, OBJECT_FACING_STEP
 	add hl, bc
 	ld [hl], d
 	ret
@@ -522,13 +523,13 @@
 	inc [hl]
 	ld a, [hl]
 
-	ld hl, OBJECT_FACING
+	ld hl, OBJECT_FACING_STEP
 	add hl, bc
 	and 2
 	ld a, $1c
-	jr z, .asm_45eb
+	jr z, .ok
 	inc a
-.asm_45eb
+.ok
 	ld [hl], a
 	ret
 ; 45ed
@@ -538,14 +539,14 @@
 	add hl, bc
 	inc [hl]
 	ld a, [hl]
-	ld hl, OBJECT_FACING
+	ld hl, OBJECT_FACING_STEP
 	add hl, bc
 	and 4
 	ld a, $1e
-	jr z, .asm_45fe
+	jr z, .ok
 	inc a
 
-.asm_45fe
+.ok
 	ld [hl], a
 	ret
 ; 4600
@@ -605,13 +606,13 @@
 	ld hl, OBJECT_FLAGS
 	add hl, bc
 	bit 3, [hl]
-	jr z, .asm_464f
+	jr z, .ok
 	ld hl, OBJECT_STANDING_TILE
 	add hl, bc
 	ld a, [hl]
 	call Function4661
 
-.asm_464f
+.ok
 	ld hl, OBJECT_STANDING_TILE
 	add hl, bc
 	ld a, [hl]
@@ -626,17 +627,17 @@
 
 Function4661: ; 4661
 	call Function188e
-	jr z, .asm_466b
+	jr z, .set
 	call Function1875
-	jr c, .asm_4672
+	jr c, .reset
 
-.asm_466b
+.set
 	ld hl, OBJECT_FLAGS
 	add hl, bc
 	set 3, [hl]
 	ret
 
-.asm_4672
+.reset
 	ld hl, OBJECT_FLAGS
 	add hl, bc
 	res 3, [hl]
@@ -655,33 +656,34 @@
 	ld [hl], a
 	ld hl, OBJECT_27
 	add hl, bc
+rept 3
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
-	ld hl, OBJECT_07
+	ld hl, OBJECT_DIRECTION_WALKING
 	add hl, bc
-	ld [hl], $ff
+	ld [hl], STANDING
 	ret
 ; 4690
 
 Function4690: ; 4690
-	ld hl, OBJECT_07
+	ld hl, OBJECT_DIRECTION_WALKING
 	add hl, bc
 	ld [hl], a
 	ld hl, OBJECT_04
 	add hl, bc
 	bit 2, [hl]
-	jr nz, .asm_46a6
+	jr nz, .ok
 
+rept 2
 	add a
-	add a
-	and $c
-	ld hl, OBJECT_08
+endr
+	and %00001100
+	ld hl, OBJECT_FACING
 	add hl, bc
 	ld [hl], a
 
-.asm_46a6
+.ok
 	; fallthrough
 ; 46a6
 
@@ -745,12 +747,13 @@
 
 GetStepVector: ; 46e9
 ; Return (x, y, duration, speed) in (d, e, a, h).
-	ld hl, OBJECT_07
+	ld hl, OBJECT_DIRECTION_WALKING
 	add hl, bc
 	ld a, [hl]
-	and $f
+	and %00001111
+rept 2
 	add a
-	add a
+endr
 	ld l, a
 	ld h, 0
 	ld de, StepVectors
@@ -793,10 +796,10 @@
 ; 4738
 
 Function4738: ; 4738
-	ld hl, OBJECT_07
+	ld hl, OBJECT_DIRECTION_WALKING
 	add hl, bc
 	ld a, [hl]
-	and $3
+	and %00000011
 	ld [wd151], a
 	call Function46d7
 	ld a, [wd14e]
@@ -814,7 +817,7 @@
 	push bc
 	ld e, a
 	ld d, 0
-	ld hl, OBJECT_01
+	ld hl, OBJECT_MAP_OBJECT_INDEX
 	add hl, bc
 	ld a, [hl]
 	call GetMapObject
@@ -825,32 +828,32 @@
 ; 4769
 
 Function4769: ; 4769
-	ld hl, OBJECT_01
+	ld hl, OBJECT_MAP_OBJECT_INDEX
 	add hl, bc
 	ld a, [hl]
-	cp $ff
-	jr z, .asm_477d
+	cp -1
+	jr z, .ok
 	push bc
 	call GetMapObject
-	ld hl, $0004
+	ld hl, MAPOBJECT_FACING
 	add hl, bc
 	ld a, [hl]
 	pop bc
 	ret
 
-.asm_477d
-	ld a, $6
+.ok
+	ld a, 6
 	ret
 ; 4780
 
-Function4780: ; 4780
+ClearObjectStructField27: ; 4780
 	ld hl, OBJECT_27
 	add hl, bc
-	ld [hl], $0
+	ld [hl], 0
 	ret
 ; 4787
 
-Function4787: ; 4787
+IncrementObjectStructField27: ; 4787
 	ld hl, OBJECT_27
 	add hl, bc
 	inc [hl]
@@ -857,7 +860,7 @@
 	ret
 ; 478d
 
-Function478d: ; 478d
+DecrementObjectStructField27: ; 478d
 	ld hl, OBJECT_27
 	add hl, bc
 	dec [hl]
@@ -864,7 +867,7 @@
 	ret
 ; 4793
 
-Function4793: ; 4793
+JumptoObjectStructField27: ; 4793
 	ld hl, OBJECT_27
 	add hl, bc
 	ld a, [hl]
@@ -873,14 +876,14 @@
 	ret
 ; 479b
 
-Function479b: ; 479b
+ClearObjectStructField28: ; 479b
 	ld hl, OBJECT_28
 	add hl, bc
-	ld [hl], $0
+	ld [hl], 0
 	ret
 ; 47a2
 
-Function47a2: ; 47a2
+IncrementObjectStructField28: ; 47a2
 	ld hl, OBJECT_28
 	add hl, bc
 	inc [hl]
@@ -887,7 +890,7 @@
 	ret
 ; 47a8
 
-Function47a8: ; 47a8
+JumptoObjectStructField28: ; 47a8
 	ld hl, OBJECT_28
 	add hl, bc
 	ld a, [hl]
@@ -896,7 +899,7 @@
 	ret
 ; 47b0
 
-Function47b0: ; 47b0
+GetValueObjectStructField28: ; 47b0
 	ld hl, OBJECT_28
 	add hl, bc
 	ld a, [hl]
@@ -903,7 +906,7 @@
 	ret
 ; 47b6
 
-Function47b6: ; 47b6
+SetValueObjectStructField28: ; 47b6
 	ld hl, OBJECT_28
 	add hl, bc
 	ld [hl], a
@@ -927,12 +930,12 @@
 	call Function467b
 	ld hl, OBJECT_09
 	add hl, bc
-	ld [hl], $1
+	ld [hl], 1
 	ret
 ; 47dd
 
 Function47dd: ; 47dd
-	call Function479b
+	call ClearObjectStructField28
 	call Function1a2f
 	ld a, [hl]
 	ld hl, .Pointers
@@ -978,7 +981,7 @@
 Function4822: ; 4822
 	call Random
 	ld a, [hRandomAdd]
-	and 1
+	and %00000001
 	jp Function4af0
 ; 482c
 
@@ -985,8 +988,8 @@
 Function482c: ; 482c
 	call Random
 	ld a, [hRandomAdd]
-	and 1
-	or 2
+	and %00000001
+	or  %00000010
 	jp Function4af0
 ; 4838
 
@@ -993,7 +996,7 @@
 Function4838: ; 4838
 	call Random
 	ld a, [hRandomAdd]
-	and 3
+	and %00000011
 	jp Function4af0
 ; 4842
 
@@ -1000,8 +1003,8 @@
 Function4842: ; 4842
 	call Random
 	ld a, [hRandomAdd]
-	and $c
-	ld hl, OBJECT_08
+	and %00001100
+	ld hl, OBJECT_FACING
 	add hl, bc
 	ld [hl], a
 	jp Function4b1d
@@ -1008,19 +1011,19 @@
 ; 4851
 
 Function4851: ; 4851
-	ld hl, OBJECT_08
+	ld hl, OBJECT_FACING
 	add hl, bc
 	ld a, [hl]
-	and $c
+	and %00001100
 	ld d, a
 	call Random
 	ld a, [hRandomAdd]
-	and $c
+	and %00001100
 	cp d
-	jr nz, .asm_4865
-	xor $c
+	jr nz, .keep
+	xor %00001100
 
-.asm_4865
+.keep
 	ld [hl], a
 	jp Function4b26
 ; 4869
@@ -1030,10 +1033,10 @@
 	call Function467b
 	ld hl, OBJECT_11
 	add hl, bc
-	ld [hl], $1
+	ld [hl], 1
 	ld hl, OBJECT_09
 	add hl, bc
-	ld [hl], $5
+	ld [hl], 5
 	ret
 ; 487c
 
@@ -1084,7 +1087,7 @@
 ; 48ac
 
 Function48ac: ; 48ac
-	call Function4793
+	call JumptoObjectStructField27
 	dw Function48b3
 	dw Function48f8
 ; 48b3
@@ -1094,20 +1097,20 @@
 	add hl, bc
 	ld a, [hl]
 	call CheckPitTile
-	jr z, .asm_48f5
+	jr z, .on_pit
 	ld hl, OBJECT_FLAGS
 	add hl, bc
 	bit 2, [hl]
 	res 2, [hl]
-	jr z, .asm_48ee
+	jr z, .ok
 	ld hl, OBJECT_32
 	add hl, bc
 	ld a, [hl]
-	and $3
-	or $0
+	and %00000011
+	or 0
 	call Function4690
 	call Function6ec1
-	jr c, .asm_48eb
+	jr c, .ok2
 	ld de, SFX_STRENGTH
 	call PlaySFX
 	call Function5538
@@ -1117,24 +1120,24 @@
 	ld [hl], $f
 	ret
 
-.asm_48eb
+.ok2
 	call Function462a
 
-.asm_48ee
-	ld hl, OBJECT_07
+.ok
+	ld hl, OBJECT_DIRECTION_WALKING
 	add hl, bc
-	ld [hl], $ff
+	ld [hl], STANDING
 	ret
 
-.asm_48f5
-	call Function4787
+.on_pit
+	call IncrementObjectStructField27
 	; fallthrough
 ; 48f8
 
 Function48f8: ; 48f8
-	ld hl, OBJECT_07
+	ld hl, OBJECT_DIRECTION_WALKING
 	add hl, bc
-	ld [hl], $ff
+	ld [hl], STANDING
 	ret
 ; 48ff
 
@@ -1149,89 +1152,89 @@
 	add hl, bc
 	ld a, [hl]
 	push bc
-	call Function1ae5
-	ld hl, OBJECT_07
+	call GetObjectStruct
+	ld hl, OBJECT_DIRECTION_WALKING
 	add hl, bc
 	ld a, [hl]
-	cp $ff
-	jr z, .asm_494a
+	cp STANDING
+	jr z, .standing
 	ld hl, OBJECT_NEXT_MAP_X
 	add hl, bc
 	ld a, [hl]
 	cp d
-	jr z, .asm_492d
-	jr c, .asm_4929
-	ld a, $3
-	jr .asm_493d
+	jr z, .equal
+	jr c, .less
+	ld a, 3
+	jr .done
 
-.asm_4929
-	ld a, $2
-	jr .asm_493d
+.less
+	ld a, 2
+	jr .done
 
-.asm_492d
+.equal
 	ld hl, OBJECT_NEXT_MAP_Y
 	add hl, bc
 	ld a, [hl]
 	cp e
-	jr z, .asm_494a
-	jr c, .asm_493b
-	ld a, $0
-	jr .asm_493d
+	jr z, .standing
+	jr c, .less2
+	ld a, 0
+	jr .done
 
-.asm_493b
-	ld a, $1
+.less2
+	ld a, 1
 
-.asm_493d
+.done
 	ld d, a
-	ld hl, OBJECT_07
+	ld hl, OBJECT_DIRECTION_WALKING
 	add hl, bc
 	ld a, [hl]
-	and $c
+	and %00001100
 	or d
 	pop bc
 	jp Function5412
 
-.asm_494a
+.standing
 	pop bc
-	ld hl, OBJECT_07
+	ld hl, OBJECT_DIRECTION_WALKING
 	add hl, bc
-	ld [hl], $ff
+	ld [hl], STANDING
 	ld hl, OBJECT_11
 	add hl, bc
-	ld [hl], $1
+	ld [hl], 1
 	ret
 ; 4958
 
 Function4958: ; 4958
 	call Function467b
-	ld hl, OBJECT_07
+	ld hl, OBJECT_DIRECTION_WALKING
 	add hl, bc
-	ld [hl], $ff
+	ld [hl], STANDING
 	ld hl, OBJECT_11
 	add hl, bc
-	ld [hl], $9
+	ld [hl], 9
 	ld hl, OBJECT_09
 	add hl, bc
-	ld [hl], $4
+	ld [hl], 4
 	ret
 ; 496e
 
 Function496e: ; 496e
 	call Function467b
-	ld hl, OBJECT_07
+	ld hl, OBJECT_DIRECTION_WALKING
 	add hl, bc
-	ld [hl], $ff
+	ld [hl], STANDING
 	ld hl, OBJECT_11
 	add hl, bc
-	ld [hl], $a
+	ld [hl], 10
 	ld hl, OBJECT_09
 	add hl, bc
-	ld [hl], $4
+	ld [hl], 4
 	ret
 ; 4984
 
 Function4984: ; 4984
-	call Function4793
+	call JumptoObjectStructField27
 	dw Function4996
 	dw Function499c
 	dw Function49b8
@@ -1238,7 +1241,7 @@
 ; 498d
 
 Function498d: ; 498d
-	call Function4793
+	call JumptoObjectStructField27
 	dw Function4996
 	dw Function499c
 	dw Function49c4
@@ -1246,7 +1249,7 @@
 
 Function4996: ; 4996
 	call Function467b
-	call Function4787
+	call IncrementObjectStructField27
 	; fallthrough
 ; 499c
 
@@ -1253,7 +1256,7 @@
 Function499c: ; 499c
 	ld hl, OBJECT_11
 	add hl, bc
-	ld [hl], $1
+	ld [hl], 1
 	ld hl, OBJECT_32
 	add hl, bc
 	ld a, [hl]
@@ -1263,46 +1266,46 @@
 	ld [hl], a
 	ld hl, OBJECT_09
 	add hl, bc
-	ld [hl], $3
-	call Function4787
+	ld [hl], 3
+	call IncrementObjectStructField27
 	ret
 ; 49b8
 
 Function49b8: ; 49b8
-	ld de, .data_49c0
+	ld de, .DirectionData_49c0
 	call Function49d0
 	jr Function4984
 ; 49c0
 
-.data_49c0 ; 49c0
-	db $0c, $08, $00, $04
+.DirectionData_49c0 ; 49c0
+	db RIGHT << 2, LEFT << 2, DOWN << 2, UP << 2
 ; 49c4
 
 Function49c4: ; 49c4
-	ld de, .data_49cc
+	ld de, .DirectionData_49cc
 	call Function49d0
 	jr Function498d
 ; 49cc
 
-.data_49cc ; 49cc
-	db $08, $0c, $04, $00
+.DirectionData_49cc ; 49cc
+	db LEFT << 2, RIGHT << 2, UP << 2, DOWN << 2
 ; 49d0
 
 Function49d0: ; 49d0
-	ld hl, OBJECT_08
+	ld hl, OBJECT_FACING
 	add hl, bc
 	ld a, [hl]
-	and $c
+	and %00001100
 	rrca
 	rrca
 	push hl
 	ld l, a
-	ld h, $0
+	ld h, 0
 	add hl, de
 	ld a, [hl]
 	pop hl
 	ld [hl], a
-	call Function478d
+	call DecrementObjectStructField27
 	ret
 ; 49e5
 
@@ -1316,28 +1319,28 @@
 	ld a, [hl]
 	inc a
 	add a
-	add $0
+	add 0
 	ld hl, OBJECT_STEP_DURATION
 	add hl, bc
 	ld [hl], a
-	ld hl, OBJECT_07
+	ld hl, OBJECT_DIRECTION_WALKING
 	add hl, de
 	ld a, [hl]
 	and 3
 	ld d, $e
-	cp 0
-	jr z, .asm_4a0f
-	cp 1
-	jr z, .asm_4a0f
+	cp DOWN
+	jr z, .ok
+	cp UP
+	jr z, .ok
 	ld d, $c
 
-.asm_4a0f
+.ok
 	ld hl, OBJECT_SPRITE_Y_OFFSET
 	add hl, bc
 	ld [hl], d
 	ld hl, OBJECT_SPRITE_X_OFFSET
 	add hl, bc
-	ld [hl], $0
+	ld [hl], 0
 	ld hl, OBJECT_09
 	add hl, bc
 	ld [hl], $13
@@ -1349,16 +1352,16 @@
 	call Function4aa8
 	ld hl, OBJECT_11
 	add hl, bc
-	ld [hl], $8
+	ld [hl], 8
 	ld hl, OBJECT_STEP_DURATION
 	add hl, bc
-	ld [hl], $0
+	ld [hl], 0
 	ld hl, OBJECT_SPRITE_Y_OFFSET
 	add hl, bc
 	ld [hl], $f0
 	ld hl, OBJECT_SPRITE_X_OFFSET
 	add hl, bc
-	ld [hl], $0
+	ld [hl], 0
 	ld hl, OBJECT_09
 	add hl, bc
 	ld [hl], $13
@@ -1379,15 +1382,16 @@
 	ld hl, OBJECT_STEP_DURATION
 	add hl, bc
 	ld [hl], a
-	ld hl, OBJECT_07
+	ld hl, OBJECT_DIRECTION_WALKING
 	add hl, de
 	ld a, [hl]
-	and 3
+	and %00000011
 	ld e, a
 	ld d, 0
 	ld hl, .data_4a81
-	add hl, de
-	add hl, de
+rept 2
+	add hl,de
+endr
 	ld d, [hl]
 	inc hl
 	ld e, [hl]
@@ -1420,7 +1424,7 @@
 	ld hl, OBJECT_STEP_DURATION
 	add hl, de
 	ld a, [hl]
-	add $ff
+	add -1
 	ld hl, OBJECT_STEP_DURATION
 	add hl, bc
 	ld [hl], a
@@ -1435,7 +1439,7 @@
 	add hl, bc
 	ld a, [hl]
 	push bc
-	call Function1ae5
+	call GetObjectStruct
 	ld d, b
 	ld e, c
 	pop bc
@@ -1451,7 +1455,7 @@
 	call Function467b
 	ld hl, OBJECT_11
 	add hl, bc
-	ld [hl], $0
+	ld [hl], 0
 	ld hl, OBJECT_32
 	add hl, bc
 	ld a, [hl]
@@ -1470,20 +1474,20 @@
 
 Function4ade: ; 4ade
 	ld d, a
-	and $3f
+	and %00111111
 	ld e, a
 	ld a, d
 	rlca
 	rlca
-	and $3
+	and %00000011
 	ld d, a
 	inc d
-	ld a, $1
-.asm_4aeb
+	ld a, 1
+.loop
 	dec d
 	ret z
 	add a
-	jr .asm_4aeb
+	jr .loop
 ; 4af0
 
 Function4af0: ; 4af0
@@ -1493,20 +1497,20 @@
 	call Function463f
 	ld hl, OBJECT_11
 	add hl, bc
-	ld [hl], $2
+	ld [hl], 2
 	ld hl, wd4cf
 	ld a, [$ffaf]
 	cp [hl]
-	jr z, .asm_4b10
+	jr z, .ok
 	ld hl, OBJECT_09
 	add hl, bc
 	ld [hl], $7
 	ret
 
-.asm_4b10
+.ok
 	ld hl, OBJECT_09
 	add hl, bc
-	ld [hl], $6
+	ld [hl], 6
 	ret
 
 Function4b17: ; 4b17
@@ -1518,7 +1522,7 @@
 Function4b1d: ; 4b1d
 	call Random
 	ld a, [hRandomAdd]
-	and $7f
+	and %01111111
 	jr Function4b2d
 ; 4b26
 
@@ -1525,7 +1529,7 @@
 Function4b26: ; 4b26
 	call Random
 	ld a, [hRandomAdd]
-	and $1f
+	and %00011111
 	; fallthrough
 ; 4b2d
 
@@ -1533,15 +1537,15 @@
 	ld hl, OBJECT_STEP_DURATION
 	add hl, bc
 	ld [hl], a
-	ld hl, OBJECT_07
+	ld hl, OBJECT_DIRECTION_WALKING
 	add hl, bc
-	ld [hl], $ff
+	ld [hl], STANDING
 	ld hl, OBJECT_11
 	add hl, bc
-	ld [hl], $1
+	ld [hl], 1
 	ld hl, OBJECT_09
 	add hl, bc
-	ld [hl], $3
+	ld [hl], 3
 	ret
 ; 4b45
 
@@ -1581,12 +1585,12 @@
 	ret nz
 	ld hl, OBJECT_09
 	add hl, bc
-	ld [hl], $1
+	ld [hl], 1
 	ret
 ; 4b86
 
 Function4b86: ; 4b86
-	call Function47a8
+	call JumptoObjectStructField28
 	dw Function4b8d
 	dw Function4ba9
 ; 4b8d
@@ -1603,7 +1607,7 @@
 	ld hl, OBJECT_FLAGS
 	add hl, bc
 	res 3, [hl]
-	call Function47a2
+	call IncrementObjectStructField28
 	ret
 ; 4ba9
 
@@ -1617,12 +1621,12 @@
 	call Function4600
 	ld hl, OBJECT_09
 	add hl, bc
-	ld [hl], $1
+	ld [hl], 1
 	ret
 ; 4bbf
 
 Function4bbf: ; 4bbf
-	call Function47a8
+	call JumptoObjectStructField28
 	dw Function4bca
 	dw Function4bd2
 	dw Function4bf2
@@ -1632,7 +1636,7 @@
 Function4bca: ; 4bca
 	ld hl, wd150
 	set 7, [hl]
-	call Function47a2
+	call IncrementObjectStructField28
 ;	fallthrough
 ; 4bd2
 
@@ -1650,7 +1654,7 @@
 	ld hl, wd150
 	set 6, [hl]
 	set 4, [hl]
-	call Function47a2
+	call IncrementObjectStructField28
 	ret
 ; 4bf2
 
@@ -1658,7 +1662,7 @@
 	call Function46a6
 	ld hl, wd150
 	set 7, [hl]
-	call Function47a2
+	call IncrementObjectStructField28
 ;	fallthrough
 ; 4bfd
 
@@ -1674,12 +1678,12 @@
 	call Function4600
 	ld hl, OBJECT_09
 	add hl, bc
-	ld [hl], $1
+	ld [hl], 1
 	ret
 ; 4c18
 
 Function4c18: ; 4c18
-	call Function47a8
+	call JumptoObjectStructField28
 	dw Function4c23
 	dw Function4c32
 	dw Function4c42
@@ -1689,11 +1693,11 @@
 Function4c23: ; 4c23
 	ld hl, OBJECT_12
 	add hl, bc
-	ld [hl], $0
+	ld [hl], 0
 	ld hl, OBJECT_STEP_DURATION
 	add hl, bc
 	ld [hl], $10
-	call Function47a2
+	call IncrementObjectStructField28
 ;	fallthrough
 ; 4c32
 
@@ -1700,12 +1704,12 @@
 Function4c32: ; 4c32
 	ld hl, OBJECT_11
 	add hl, bc
-	ld [hl], $4
+	ld [hl], 4
 	ld hl, OBJECT_STEP_DURATION
 	add hl, bc
 	dec [hl]
 	ret nz
-	call Function47a2
+	call IncrementObjectStructField28
 	ret
 ; 4c42
 
@@ -1712,7 +1716,7 @@
 Function4c42: ; 4c42
 	ld hl, OBJECT_12
 	add hl, bc
-	ld [hl], $0
+	ld [hl], 0
 	ld hl, OBJECT_31
 	add hl, bc
 	ld [hl], $10
@@ -1722,7 +1726,7 @@
 	ld hl, OBJECT_FLAGS
 	add hl, bc
 	res 3, [hl]
-	call Function47a2
+	call IncrementObjectStructField28
 ;	fallthrough
 ; 4c5d
 
@@ -1729,7 +1733,7 @@
 Function4c5d: ; 4c5d
 	ld hl, OBJECT_11
 	add hl, bc
-	ld [hl], $4
+	ld [hl], 4
 	ld hl, OBJECT_31
 	add hl, bc
 	inc [hl]
@@ -1747,15 +1751,15 @@
 	ret nz
 	ld hl, OBJECT_12
 	add hl, bc
-	ld [hl], $0
+	ld [hl], 0
 	ld hl, OBJECT_09
 	add hl, bc
-	ld [hl], $1
+	ld [hl], 1
 	ret
 ; 4c89
 
 Function4c89: ; 4c89
-	call Function47a8
+	call JumptoObjectStructField28
 	dw Function4c9a
 	dw Function4caa
 	dw Function4cb3
@@ -1768,11 +1772,11 @@
 Function4c9a: ; 4c9a
 	ld hl, OBJECT_11
 	add hl, bc
-	ld [hl], $0
+	ld [hl], 0
 	ld hl, OBJECT_STEP_DURATION
 	add hl, bc
 	ld [hl], $10
-	call Function47a2
+	call IncrementObjectStructField28
 	ret
 ; 4caa
 
@@ -1781,7 +1785,7 @@
 	add hl, bc
 	dec [hl]
 	ret nz
-	call Function47a2
+	call IncrementObjectStructField28
 ;	fallthrough
 ; 4cb3
 
@@ -1788,14 +1792,14 @@
 Function4cb3: ; 4cb3
 	ld hl, OBJECT_12
 	add hl, bc
-	ld [hl], $0
+	ld [hl], 0
 	ld hl, OBJECT_31
 	add hl, bc
-	ld [hl], $0
+	ld [hl], 0
 	ld hl, OBJECT_STEP_DURATION
 	add hl, bc
 	ld [hl], $10
-	call Function47a2
+	call IncrementObjectStructField28
 	ret
 ; 4cc9
 
@@ -1802,7 +1806,7 @@
 Function4cc9: ; 4cc9
 	ld hl, OBJECT_11
 	add hl, bc
-	ld [hl], $4
+	ld [hl], 4
 	ld hl, OBJECT_31
 	add hl, bc
 	inc [hl]
@@ -1818,7 +1822,7 @@
 	add hl, bc
 	dec [hl]
 	ret nz
-	call Function47a2
+	call IncrementObjectStructField28
 ;	fallthrough
 ; 4ceb
 
@@ -1826,7 +1830,7 @@
 	ld hl, OBJECT_STEP_DURATION
 	add hl, bc
 	ld [hl], $10
-	call Function47a2
+	call IncrementObjectStructField28
 	ret
 ; 4cf5
 
@@ -1833,7 +1837,7 @@
 Function4cf5: ; 4cf5
 	ld hl, OBJECT_11
 	add hl, bc
-	ld [hl], $4
+	ld [hl], 4
 	ld hl, OBJECT_STEP_DURATION
 	add hl, bc
 	dec [hl]
@@ -1843,18 +1847,18 @@
 Function4d01: ; 4d01
 	ld hl, OBJECT_12
 	add hl, bc
-	ld [hl], $0
+	ld [hl], 0
 	ld hl, OBJECT_SPRITE_Y_OFFSET
 	add hl, bc
-	ld [hl], $0
+	ld [hl], 0
 	ld hl, OBJECT_09
 	add hl, bc
-	ld [hl], $1
+	ld [hl], 1
 	ret
 ; 4d14
 
 Function4d14: ; 4d14
-	call Function47a8
+	call JumptoObjectStructField28
 	dw Function4d1f
 	dw Function4d2e
 	dw Function4d4f
@@ -1864,11 +1868,11 @@
 Function4d1f: ; 4d1f
 	ld hl, OBJECT_11
 	add hl, bc
-	ld [hl], $0
+	ld [hl], 0
 	ld hl, OBJECT_STEP_DURATION
 	add hl, bc
 	ld [hl], $10
-	call Function47a2
+	call IncrementObjectStructField28
 ;	fallthrough
 ; 4d2e
 
@@ -1879,17 +1883,17 @@
 	ret nz
 	ld hl, OBJECT_11
 	add hl, bc
-	ld [hl], $2
+	ld [hl], 2
 	ld hl, OBJECT_12
 	add hl, bc
-	ld [hl], $0
+	ld [hl], 0
 	ld hl, OBJECT_31
 	add hl, bc
-	ld [hl], $0
+	ld [hl], 0
 	ld hl, OBJECT_STEP_DURATION
 	add hl, bc
 	ld [hl], $10
-	call Function47a2
+	call IncrementObjectStructField28
 ;	fallthrough
 ; 4d4f
 
@@ -1909,7 +1913,7 @@
 	add hl, bc
 	dec [hl]
 	ret nz
-	call Function47a2
+	call IncrementObjectStructField28
 ;	fallthrough
 ; 4d6b
 
@@ -1916,18 +1920,18 @@
 Function4d6b: ; 4d6b
 	ld hl, OBJECT_12
 	add hl, bc
-	ld [hl], $0
+	ld [hl], 0
 	ld hl, OBJECT_SPRITE_Y_OFFSET
 	add hl, bc
-	ld [hl], $0
+	ld [hl], 0
 	ld hl, OBJECT_09
 	add hl, bc
-	ld [hl], $1
+	ld [hl], 1
 	ret
 ; 4d7e
 
 Function4d7e: ; 4d7e
-	call Function47a8
+	call JumptoObjectStructField28
 	dw Function4d85
 	dw Function4d94
 ; 4d85
@@ -1935,11 +1939,11 @@
 Function4d85: ; 4d85
 	ld hl, OBJECT_STEP_DURATION
 	add hl, bc
-	ld [hl], $8
+	ld [hl], 8
 	ld hl, OBJECT_SPRITE_Y_OFFSET
 	add hl, bc
-	ld [hl], $0
-	call Function47a2
+	ld [hl], 0
+	call IncrementObjectStructField28
 	; fallthrough
 ; 4d94
 
@@ -1955,10 +1959,10 @@
 	ret nz
 	ld hl, OBJECT_SPRITE_Y_OFFSET
 	add hl, bc
-	ld [hl], $0
+	ld [hl], 0
 	ld hl, OBJECT_09
 	add hl, bc
-	ld [hl], $1
+	ld [hl], 1
 	ret
 ; 4daf
 
@@ -1971,12 +1975,12 @@
 	ld hl, OBJECT_STEP_DURATION
 	add hl, bc
 	ld a, [hl]
-	and $1
-	ld a, $1
-	jr z, .asm_4dc2
-	ld a, $0
+	and %00000001
+	ld a, 1
+	jr z, .yes
+	ld a, 0
 
-.asm_4dc2
+.yes
 	ld hl, OBJECT_11
 	add hl, bc
 	ld [hl], a
@@ -1987,12 +1991,12 @@
 	ld hl, OBJECT_STEP_DURATION
 	add hl, bc
 	ld a, [hl]
-	and $1
-	ld a, $4
-	jr z, .asm_4dd5
-	ld a, $5
+	and %00000001
+	ld a, 4
+	jr z, .yes
+	ld a, 5
 
-.asm_4dd5
+.yes
 	ld hl, OBJECT_11
 	add hl, bc
 	ld [hl], a
@@ -2000,9 +2004,9 @@
 ; 4ddd
 
 Function4ddd: ; 4ddd
-	ld hl, OBJECT_07
+	ld hl, OBJECT_DIRECTION_WALKING
 	add hl, bc
-	ld [hl], $ff
+	ld [hl], STANDING
 	ld hl, OBJECT_STEP_DURATION
 	add hl, bc
 	dec [hl]
@@ -2009,14 +2013,14 @@
 	ret nz
 	ld hl, OBJECT_09
 	add hl, bc
-	ld [hl], $1
+	ld [hl], 1
 	ret
 ; 4df0
 
 Function4df0: ; 4df0
-	ld hl, OBJECT_07
+	ld hl, OBJECT_DIRECTION_WALKING
 	add hl, bc
-	ld [hl], $ff
+	ld [hl], STANDING
 	ld hl, OBJECT_STEP_DURATION
 	add hl, bc
 	dec [hl]
@@ -2031,12 +2035,12 @@
 	ret nz
 	ld hl, OBJECT_09
 	add hl, bc
-	ld [hl], $1
+	ld [hl], 1
 	ret
 ; 4e0c
 
 Function4e0c: ; 4e0c
-	call Function47a8
+	call JumptoObjectStructField28
 	dw Function4e13
 	dw Function4e21
 ; 4e13
@@ -2044,18 +2048,18 @@
 Function4e13: ; 4e13
 	call Function4769
 	call Function1a47
-	ld hl, OBJECT_08
+	ld hl, OBJECT_FACING
 	add hl, bc
 	ld [hl], a
-	call Function47a2
+	call IncrementObjectStructField28
 	; fallthrough
 ; 4e21
 
 Function4e21: ; 4e21
 	call Function4fb2
-	ld hl, OBJECT_07
+	ld hl, OBJECT_DIRECTION_WALKING
 	add hl, bc
-	ld [hl], $ff
+	ld [hl], STANDING
 	ret
 ; 4e2b
 
@@ -2067,12 +2071,12 @@
 	dec [hl]
 	ret nz
 	call Function4600
-	ld hl, OBJECT_07
+	ld hl, OBJECT_DIRECTION_WALKING
 	add hl, bc
-	ld [hl], $ff
+	ld [hl], STANDING
 	ld hl, OBJECT_09
 	add hl, bc
-	ld [hl], $1
+	ld [hl], 1
 	ret
 ; 4e47
 
@@ -2088,7 +2092,7 @@
 
 Function4e56: ; 4e56
 ; AnimateStep?
-	call Function47a8
+	call JumptoObjectStructField28
 	dw Function4e5d
 	dw Function4e65
 ; 4e5d
@@ -2096,7 +2100,7 @@
 Function4e5d: ; 4e5d
 	ld hl, wd150
 	set 7, [hl]
-	call Function47a2
+	call IncrementObjectStructField28
 	; fallthrough
 ; 4e65
 
@@ -2109,17 +2113,17 @@
 	ld hl, wd150
 	set 6, [hl]
 	call Function4600
-	ld hl, OBJECT_07
+	ld hl, OBJECT_DIRECTION_WALKING
 	add hl, bc
-	ld [hl], $ff
+	ld [hl], STANDING
 	ld hl, OBJECT_09
 	add hl, bc
-	ld [hl], $1
+	ld [hl], 1
 	ret
 ; 4e83
 
 Function4e83: ; 4e83
-	call Function47a8
+	call JumptoObjectStructField28
 	dw Function4e8e
 	dw Function4ea4
 	dw Function4ead
@@ -2127,17 +2131,17 @@
 ; 4e8e
 
 Function4e8e: ; 4e8e
-	ld hl, OBJECT_07
+	ld hl, OBJECT_DIRECTION_WALKING
 	add hl, bc
-	ld [hl], $ff
+	ld [hl], STANDING
 	ld hl, OBJECT_12
 	add hl, bc
 	ld a, [hl]
-	ld [hl], $2
+	ld [hl], 2
 	ld hl, OBJECT_STEP_DURATION
 	add hl, bc
-	ld [hl], $2
-	call Function47a2
+	ld [hl], 2
+	call IncrementObjectStructField28
 	; fallthrough
 ; 4ea4
 
@@ -2146,7 +2150,7 @@
 	add hl, bc
 	dec [hl]
 	ret nz
-	call Function47a2
+	call IncrementObjectStructField28
 	; fallthrough
 ; 4ead
 
@@ -2154,13 +2158,13 @@
 	ld hl, OBJECT_29
 	add hl, bc
 	ld a, [hl]
-	ld hl, OBJECT_08
+	ld hl, OBJECT_FACING
 	add hl, bc
 	ld [hl], a
 	ld hl, OBJECT_STEP_DURATION
 	add hl, bc
 	ld [hl], $2
-	call Function47a2
+	call IncrementObjectStructField28
 	; fallthrough
 ; 4ec0
 
@@ -2171,7 +2175,7 @@
 	ret nz
 	ld hl, OBJECT_09
 	add hl, bc
-	ld [hl], $1
+	ld [hl], 1
 	ret
 ; 4ecd
 
@@ -2188,7 +2192,7 @@
 	ld hl, OBJECT_MAP_Y
 	add hl, bc
 	ld e, [hl]
-	ld hl, OBJECT_01
+	ld hl, OBJECT_MAP_OBJECT_INDEX
 	add hl, bc
 	ld a, [hl]
 	ld b, a
@@ -2198,12 +2202,12 @@
 	add hl, bc
 	res 2, [hl]
 	call Function4600
-	ld hl, OBJECT_07
+	ld hl, OBJECT_DIRECTION_WALKING
 	add hl, bc
-	ld [hl], $ff
+	ld [hl], STANDING
 	ld hl, OBJECT_09
 	add hl, bc
-	ld [hl], $1
+	ld [hl], 1
 	ret
 ; 4f04
 
@@ -2213,11 +2217,11 @@
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
-	ld hl, OBJECT_00
+	ld hl, OBJECT_SPRITE
 	add hl, de
 	ld a, [hl]
 	and a
-	jr z, .asm_4f30
+	jr z, .nope
 	ld hl, OBJECT_SPRITE_X
 	add hl, de
 	ld a, [hl]
@@ -2238,12 +2242,12 @@
 	dec [hl]
 	ret nz
 
-.asm_4f30
+.nope
 	jp Function4357
 ; 4f33
 
 Function4f33: ; 4f33
-	call Function47a8
+	call JumptoObjectStructField28
 	dw Function4f3a
 	dw Function4f43
 ; 4f3a
@@ -2253,7 +2257,7 @@
 	ld hl, OBJECT_29
 	add hl, bc
 	ld [hl], a
-	call Function47a2
+	call IncrementObjectStructField28
 	; fallthrough
 ; 4f43
 
@@ -2267,7 +2271,7 @@
 	ld hl, OBJECT_STEP_DURATION
 	add hl, bc
 	dec [hl]
-	jr z, .asm_4f68
+	jr z, .ok
 	ld a, [hl]
 	call Function4f6c
 	ld hl, OBJECT_29
@@ -2279,7 +2283,7 @@
 	ld [wd14f], a
 	ret
 
-.asm_4f68
+.ok
 	call Function4357
 	ret
 ; 4f6c
@@ -2296,11 +2300,11 @@
 ; 4f77
 
 Function4f77: ; 4f77
-	call Function47a8 ; ????
+	call JumptoObjectStructField28 ; ????
 ; 4f7a
 
 Function4f7a: ; 4f7a
-	call Function47a8
+	call JumptoObjectStructField28
 	dw Function4f83
 	dw Function4f83
 	dw Function4f83
@@ -2307,7 +2311,7 @@
 ; 4f83
 
 Function4f83: ; 4f83
-	call Function47a8
+	call JumptoObjectStructField28
 	dw Function4f8a
 	dw Function4f99
 ; 4f8a
@@ -2319,7 +2323,7 @@
 	ld hl, OBJECT_STEP_DURATION
 	add hl, bc
 	ld [hl], $10
-	call Function47a2
+	call IncrementObjectStructField28
 ; 4f99
 
 Function4f99: ; 4f99
@@ -2332,10 +2336,10 @@
 	ld [hl], $60
 	ld hl, OBJECT_12
 	add hl, bc
-	ld [hl], $0
+	ld [hl], 0
 	ld hl, OBJECT_09
 	add hl, bc
-	ld [hl], $1
+	ld [hl], 1
 	ret
 ; 4fb2
 
@@ -2350,7 +2354,7 @@
 	ld a, [hl]
 	srl a
 	srl a
-	and 7
+	and %00000111
 	ld l, a
 	ld h, 0
 	ld de, .y
@@ -2448,19 +2452,19 @@
 ; 5041
 
 Function5041: ; 5041
-	call Function5055
-.asm_5044
+	call CopyMovementPointer
+.loop
 	xor a
 	ld [wc2ea], a
-	call Function505e
-	call Function506b
+	call GetMovementByte
+	call DoMovementFunction
 	ld a, [wc2ea]
 	and a
-	jr nz, .asm_5044
+	jr nz, .loop
 	ret
 ; 5055
 
-Function5055: ; 5055
+CopyMovementPointer: ; 5055
 	ld a, l
 	ld [wc2eb], a
 	ld a, h
@@ -2468,7 +2472,7 @@
 	ret
 ; 505e
 
-Function505e: ; 505e
+GetMovementByte: ; 505e
 	ld hl, wc2eb
 	ld a, [hli]
 	ld h, [hl]
@@ -2477,12 +2481,12 @@
 ; 5065
 
 Function5065: ; 5065
-	ld a, $1
+	ld a, 1
 	ld [wc2ea], a
 	ret
 ; 506b
 
-Function506b: ; 506b
+DoMovementFunction: ; 506b
 	push af
 	call Function54b8
 	pop af
@@ -2500,7 +2504,7 @@
 Function54b8: ; 54b8
 	ld e, a
 	ld a, [wd4ce]
-	cp $ff
+	cp -1
 	ret z
 	ld a, [wd4cd]
 	ld d, a
@@ -2534,9 +2538,9 @@
 	ld hl, wd4d0
 	ld a, [hl]
 	and a
-	jr z, .asm_5503
-	cp $ff
-	jr z, .asm_5503
+	jr z, .done
+	cp -1
+	jr z, .done
 	dec [hl]
 	ld e, a
 	ld d, 0
@@ -2543,16 +2547,16 @@
 	ld hl, wd4d1
 	add hl, de
 	inc e
-	ld a, $ff
-.asm_54fc
+	ld a, -1
+.loop
 	ld d, [hl]
 	ld [hld], a
 	ld a, d
 	dec e
-	jr nz, .asm_54fc
+	jr nz, .loop
 	ret
 
-.asm_5503
+.done
 	call Function550a
 	ret c
 	ld a, $3e
@@ -2561,20 +2565,20 @@
 
 Function550a: ; 550a
 	ld a, [wd4cd]
-	cp $ff
-	jr z, .asm_5520
+	cp -1
+	jr z, .nope
 	push bc
-	call Function1ae5
-	ld hl, OBJECT_00
+	call GetObjectStruct
+	ld hl, OBJECT_SPRITE
 	add hl, bc
 	ld a, [hl]
 	pop bc
 	and a
-	jr z, .asm_5520
+	jr z, .nope
 	and a
 	ret
 
-.asm_5520
+.nope
 	ld a, $ff
 	ld [wd4ce], a
 	ld a, $47
@@ -2657,31 +2661,31 @@
 Function5582: ; 5582
 	ld de, ObjectStructs
 	ld a, $d
-.asm_5587
+.loop
 	push af
 	ld hl, OBJECT_04
 	add hl, de
 	bit 7, [hl]
-	jr z, .asm_55a1
-	ld hl, OBJECT_00
+	jr z, .next
+	ld hl, OBJECT_SPRITE
 	add hl, de
 	ld a, [hl]
 	and a
-	jr z, .asm_55a1
+	jr z, .next
 	push bc
 	xor a
-	ld bc, ObjectStruct2 - ObjectStruct1
+	ld bc, OBJECT_STRUCT_LENGTH
 	call ByteFill
 	pop bc
 
-.asm_55a1
-	ld hl, ObjectStruct2 - ObjectStruct1
+.next
+	ld hl, OBJECT_STRUCT_LENGTH
 	add hl, de
 	ld d, h
 	ld e, l
 	pop af
 	dec a
-	jr nz, .asm_5587
+	jr nz, .loop
 	ret
 ; 55ac
 
@@ -2696,9 +2700,9 @@
 
 Function55b9: ; 55b9
 	ld hl, wc2f0
-	ld [hl], $ff
+	ld [hl], -1
 	inc hl
-	ld [hl], $ff
+	ld [hl], -1
 	inc hl
 	ld a, [de]
 	inc de
@@ -2722,7 +2726,7 @@
 	inc hl
 	ld [hl], e
 	inc hl
-	ld [hl], $ff
+	ld [hl], -1
 	ret
 ; 55e0
 
@@ -2732,46 +2736,46 @@
 	ret z
 	ld bc, ObjectStructs
 	xor a
-.asm_55ea
+.loop
 	ld [$ffaf], a
-	call Function1af1
-	jr z, .asm_55f4
+	call GetObjectSprite
+	jr z, .ok
 	call Function565c
 
-.asm_55f4
-	ld hl, ObjectStruct2 - ObjectStruct1
+.ok
+	ld hl, OBJECT_STRUCT_LENGTH
 	add hl, bc
 	ld b, h
 	ld c, l
 	ld a, [$ffaf]
 	inc a
-	cp $d
-	jr nz, .asm_55ea
+	cp NUM_OBJECT_STRUCTS
+	jr nz, .loop
 	ret
 ; 5602
 
 Function5602: ; 5602
 	call Function5645
-	ld a, $0
+	ld a, 0
 	call Function5629
 	ld a, [wd459]
 	bit 7, a
-	jr z, .asm_5619
+	jr z, .ok
 	ld a, [$ffe0]
 	and a
-	jr z, .asm_5619
+	jr z, .ok
 	call Function5629
 
-.asm_5619
-	call Function5920
+.ok
+	call RefreshMapAppearDisappear
 	ret
 ; 561d
 
 Function561d: ; 561d
 	call Function5645
-	ld a, $0
+	ld a, 0
 	call Function5629
-	call Function5920
+	call RefreshMapAppearDisappear
 	ret
 ; 5629
 
@@ -2779,15 +2783,15 @@
 	cp $10
 	ret nc
 	call GetMapObject
-	ld hl, $0000
+	ld hl, MAPOBJECT_OBJECT_STRUCT_ID
 	add hl, bc
 	ld a, [hl]
-	cp $ff
+	cp -1
 	ret z
 	cp $d
 	ret nc
-	call Function1ae5
-	call Function1af1
+	call GetObjectStruct
+	call GetObjectSprite
 	ret z
 	call Function5673
 	ret
@@ -2796,17 +2800,17 @@
 Function5645: ; 5645
 	xor a
 	ld bc, ObjectStructs
-.asm_5649
+.loop
 	ld [$ffaf], a
 	call Function5680
-	ld hl, ObjectStruct2 - ObjectStruct1
+	ld hl, OBJECT_STRUCT_LENGTH
 	add hl, bc
 	ld b, h
 	ld c, l
 	ld a, [$ffaf]
 	inc a
-	cp $d
-	jr nz, .asm_5649
+	cp NUM_OBJECT_STRUCTS
+	jr nz, .loop
 	ret
 ; 565c
 
@@ -2832,9 +2836,9 @@
 ; 5680
 
 Function5680: ; 5680
-	ld hl, OBJECT_FACING
+	ld hl, OBJECT_FACING_STEP
 	add hl, bc
-	ld [hl], $ff
+	ld [hl], STANDING
 	scf
 	ret
 ; 5688
@@ -2867,26 +2871,26 @@
 	inc e
 	ld a, [XCoord]
 	cp d
-	jr z, .asm_56bc
-	jr nc, .asm_56cb
+	jr z, .equal_x
+	jr nc, .nope
 	add $b
 	cp d
-	jr c, .asm_56cb
+	jr c, .nope
 
-.asm_56bc
+.equal_x
 	ld a, [YCoord]
 	cp e
-	jr z, .asm_56c9
-	jr nc, .asm_56cb
+	jr z, .equal_y
+	jr nc, .nope
 	add $a
 	cp e
-	jr c, .asm_56cb
+	jr c, .nope
 
-.asm_56c9
+.equal_y
 	xor a
 	ret
 
-.asm_56cb
+.nope
 	scf
 	ret
 ; 56cd
@@ -2902,27 +2906,27 @@
 	add [hl]
 	add d
 	cp $f0
-	jr nc, .asm_56e5
+	jr nc, .ok1
 	cp $a0
-	jp nc, .asm_5768
+	jp nc, .nope
 
-.asm_56e5
-	and $7
-	ld d, $2
-	cp $4
-	jr c, .asm_56ef
-	ld d, $3
+.ok1
+	and %00000111
+	ld d, 2
+	cp 4
+	jr c, .ok2
+	ld d, 3
 
-.asm_56ef
+.ok2
 	ld a, [hl]
 	srl a
 	srl a
 	srl a
 	cp $14
-	jr c, .asm_56fc
+	jr c, .ok3
 	sub $20
 
-.asm_56fc
+.ok3
 	ld [$ffbd], a
 	ld a, [wd14d]
 	ld e, a
@@ -2934,43 +2938,43 @@
 	add [hl]
 	add e
 	cp $f0
-	jr nc, .asm_5715
+	jr nc, .ok4
 	cp $90
-	jr nc, .asm_5768
+	jr nc, .nope
 
-.asm_5715
-	and $7
-	ld e, $2
-	cp $4
-	jr c, .asm_571f
-	ld e, $3
+.ok4
+	and %00000111
+	ld e, 2
+	cp 4
+	jr c, .ok5
+	ld e, 3
 
-.asm_571f
+.ok5
 	ld a, [hl]
 	srl a
 	srl a
 	srl a
 	cp $12
-	jr c, .asm_572c
+	jr c, .ok6
 	sub $20
 
-.asm_572c
+.ok6
 	ld [$ffbe], a
 	ld hl, OBJECT_PALETTE
 	add hl, bc
 	bit 7, [hl]
-	jr z, .asm_573e
+	jr z, .ok7
 	ld a, d
-	add $2
+	add 2
 	ld d, a
 	ld a, e
-	add $2
+	add 2
 	ld e, a
 
-.asm_573e
+.ok7
 	ld a, d
 	ld [$ffbf], a
-.asm_5741
+.loop
 	ld a, [$ffbf]
 	ld d, a
 	ld a, [$ffbe]
@@ -2977,14 +2981,14 @@
 	add e
 	dec a
 	cp $12
-	jr nc, .asm_5763
+	jr nc, .ok9
 	ld b, a
-.asm_574d
+.next
 	ld a, [$ffbd]
 	add d
 	dec a
 	cp $14
-	jr nc, .asm_5760
+	jr nc, .ok8
 	ld c, a
 	push bc
 	call GetTileCoord
@@ -2991,19 +2995,19 @@
 	pop bc
 	ld a, [hl]
 	cp $60
-	jr nc, .asm_5768
+	jr nc, .nope
 
-.asm_5760
+.ok8
 	dec d
-	jr nz, .asm_574d
+	jr nz, .next
 
-.asm_5763
+.ok9
 	dec e
-	jr nz, .asm_5741
+	jr nz, .loop
 	and a
 	ret
 
-.asm_5768
+.nope
 	scf
 	ret
 ; 576a
@@ -3019,7 +3023,7 @@
 	ld [wd14e], a
 	ld [wd14f], a
 	ld [wd150], a
-	ld a, $ff
+	ld a, -1
 	ld [wd151], a
 	ret
 ; 5781
@@ -3027,21 +3031,21 @@
 Function5781: ; 5781
 	ld bc, ObjectStructs
 	xor a
-.asm_5785
+.loop
 	ld [$ffaf], a
-	call Function1af1
-	jr z, .asm_578f
+	call GetObjectSprite
+	jr z, .next
 	call Function437b
 
-.asm_578f
-	ld hl, ObjectStruct2 - ObjectStruct1
+.next
+	ld hl, OBJECT_STRUCT_LENGTH
 	add hl, bc
 	ld b, h
 	ld c, l
 	ld a, [$ffaf]
 	inc a
-	cp $d
-	jr nz, .asm_5785
+	cp NUM_OBJECT_STRUCTS
+	jr nz, .loop
 	ret
 ; 579d
 
@@ -3053,8 +3057,8 @@
 	ld [wd04e], a
 	ld [wd4e2], a
 	call Function57bc
-	callba Function149c6
-	call c, Function57d9
+	callba CheckWarpCollision
+	call c, SpawnInFacingDown
 	call Function57ca
 	ret
 ; 57bc
@@ -3062,11 +3066,11 @@
 Function57bc: ; 57bc
 	ld hl, wd45b
 	bit 7, [hl]
-	jr nz, .asm_57c4
+	jr nz, .ok
 	ret
 
-.asm_57c4
-	ld a, $0
+.ok
+	ld a, 0
 	ld [PlayerAction], a
 	ret
 ; 57ca
@@ -3076,20 +3080,21 @@
 	bit 5, [hl]
 	ret z
 	ld a, [wd45b]
-	and $3
+	and 3
+rept 2
 	add a
-	add a
+endr
 	jr Function57db
 ; 57d9
 
-Function57d9: ; 57d9
-	ld a, $0
+SpawnInFacingDown: ; 57d9
+	ld a, 0
 	; fallthrough
 ; 57db
 
 Function57db: ; 57db
 	ld bc, PlayerStruct
-	call Function1af8
+	call SetSpriteDirection
 	ret
 ; 57e2
 
@@ -3098,7 +3103,7 @@
 	and $80
 	ret z
 	ld bc, $0000 ; debug?
-	ld hl, OBJECT_08
+	ld hl, OBJECT_FACING
 	add hl, bc
 	ld a, [hl]
 	or d
@@ -3105,13 +3110,13 @@
 	ld [hl], a
 	ld a, d
 	swap a
-	and $7
+	and %00000111
 	ld d, a
 	ld bc, PlayerStruct
 	ld hl, OBJECT_PALETTE
 	add hl, bc
 	ld a, [hl]
-	and $f8
+	and %11111000
 	or d
 	ld [hl], a
 	ret
@@ -3144,7 +3149,7 @@
 ; 5826
 
 Function5826: ; 5826
-	ld a, $ff
+	ld a, -1
 	ld [wd4cd], a
 	ret
 ; 582c
@@ -3160,7 +3165,7 @@
 	ld [hl], $13
 	ld hl, OBJECT_09
 	add hl, bc
-	ld [hl], $0
+	ld [hl], 0
 	ld a, [$ffb0]
 	ld [wd4ce], a
 	ret
@@ -3168,16 +3173,16 @@
 
 Function5847: ; 5847
 	ld a, [wd4ce]
-	cp $ff
+	cp -1
 	ret z
-	call Function1ae5
+	call GetObjectStruct
 	callba Function58e3
-	ld a, $ff
+	ld a, -1
 	ld [wd4ce], a
 	ret
 ; 585c
 
-Function585c:: ; 585c
+SetFlagsForMovement_1:: ; 585c
 	ld a, c
 	call Function18de
 	ret c
@@ -3204,33 +3209,33 @@
 Function587a: ; 587a
 	ld bc, ObjectStructs
 	xor a
-.asm_587e
+.loop
 	push af
-	call Function1af1
-	jr z, .asm_588a
+	call GetObjectSprite
+	jr z, .next
 	ld hl, OBJECT_FLAGS
 	add hl, bc
 	set 5, [hl]
 
-.asm_588a
-	ld hl, ObjectStruct2 - ObjectStruct1
+.next
+	ld hl, OBJECT_STRUCT_LENGTH
 	add hl, bc
 	ld b, h
 	ld c, l
 	pop af
 	inc a
-	cp $d
-	jr nz, .asm_587e
+	cp NUM_OBJECT_STRUCTS
+	jr nz, .loop
 	ret
 ; 5897
 
-Function5897:: ; 5897
+_SetFlagsForMovement_2:: ; 5897
 	ld a, [wd4cd]
-	cp $ff
+	cp -1
 	ret z
 	push bc
-	call Function1ae5
-	ld hl, OBJECT_01
+	call GetObjectStruct
+	ld hl, OBJECT_MAP_OBJECT_INDEX
 	add hl, bc
 	ld a, [hl]
 	pop bc
@@ -3237,9 +3242,9 @@
 	cp c
 	ret nz
 	ld a, [wd4ce]
-	cp $ff
+	cp -1
 	ret z
-	call Function1ae5
+	call GetObjectStruct
 	ld hl, OBJECT_FLAGS
 	add hl, bc
 	res 5, [hl]
@@ -3250,23 +3255,23 @@
 	push bc
 	ld bc, ObjectStructs
 	xor a
-.asm_58be
+.loop
 	push af
-	call Function1af1
-	jr z, .asm_58ca
+	call GetObjectSprite
+	jr z, .next
 	ld hl, OBJECT_FLAGS
 	add hl, bc
 	res 5, [hl]
 
-.asm_58ca
-	ld hl, ObjectStruct2 - ObjectStruct1
+.next
+	ld hl, OBJECT_STRUCT_LENGTH
 	add hl, bc
 	ld b, h
 	ld c, l
 	pop af
 	inc a
-	cp $d
-	jr nz, .asm_58be
+	cp NUM_OBJECT_STRUCTS
+	jr nz, .loop
 	pop bc
 	ret
 ; 58d8
@@ -3281,14 +3286,14 @@
 ; 58e3
 
 Function58e3: ; 58e3
-	ld hl, OBJECT_01
+	ld hl, OBJECT_MAP_OBJECT_INDEX
 	add hl, bc
 	ld a, [hl]
-	cp $ff
+	cp -1
 	jp z, Function5903
 	push bc
 	call GetMapObject
-	ld hl, $0004
+	ld hl, MAPOBJECT_FACING
 	add hl, bc
 	ld a, [hl]
 	pop bc
@@ -3297,7 +3302,7 @@
 	ld [hl], a
 	ld hl, OBJECT_09
 	add hl, bc
-	ld [hl], $0
+	ld [hl], 0
 	ret
 ; 5903
 
@@ -3315,7 +3320,7 @@
 	ld [hl], a
 	ld hl, OBJECT_09
 	add hl, bc
-	ld [hl], $0
+	ld [hl], 0
 	ret
 
 .data_591c
@@ -3322,7 +3327,7 @@
 	db 6, 7, 8, 9
 ; 5920
 
-Function5920:: ; 5920
+RefreshMapAppearDisappear:: ; 5920
 	ld a, [VramState]
 	bit 0, a
 	ret z
@@ -3330,7 +3335,7 @@
 	ld [$ffbd], a
 	ld a, [hOAMUpdate]
 	push af
-	ld a, $1
+	ld a, 1
 	ld [hOAMUpdate], a
 	call Function5991
 	call Function593a
@@ -3343,10 +3348,10 @@
 	ld a, [VramState]
 	bit 1, a
 	ld b, $a0
-	jr z, .asm_5945
+	jr z, .ok
 	ld b, $70
 
-.asm_5945
+.ok
 	ld a, [$ffbd]
 	cp b
 	ret nc
@@ -3355,11 +3360,11 @@
 	ld de, OBJECT_04
 	ld a, b
 	ld c, $a0
-.asm_5952
+.loop
 	ld [hl], c
 	add hl, de
 	cp l
-	jr nz, .asm_5952
+	jr nz, .loop
 	ret
 ; 5958
 
@@ -3372,12 +3377,12 @@
 	ld a, [wd14d]
 	ld e, a
 	ld bc, ObjectStructs
-	ld a, $d
+	ld a, NUM_OBJECT_STRUCTS
 
-.asm_5968
+.loop
 	push af
-	call Function1af1
-	jr z, .asm_597c
+	call GetObjectSprite
+	jr z, .skip
 
 	ld hl, OBJECT_SPRITE_X
 	add hl, bc
@@ -3391,14 +3396,14 @@
 	add e
 	ld [hl], a
 
-.asm_597c
-	ld hl, ObjectStruct2 - ObjectStruct1
+.skip
+	ld hl, OBJECT_STRUCT_LENGTH
 	add hl, bc
 	ld b, h
 	ld c, l
 	pop af
 	dec a
-	jr nz, .asm_5968
+	jr nz, .loop
 
 	xor a
 	ld [wd14c], a
@@ -3431,10 +3436,10 @@
 	ld hl, wc2eb
 .loop
 	push hl
-	call Function1af1
+	call GetObjectSprite
 	jr z, .skip
 
-	ld hl, OBJECT_FACING
+	ld hl, OBJECT_FACING_STEP
 	add hl, bc
 	ld a, [hl]
 	cp -1
@@ -3453,7 +3458,7 @@
 	jr .add
 
 .skip
-	ld hl, ObjectStruct2 - ObjectStruct1
+	ld hl, OBJECT_STRUCT_LENGTH
 	add hl, bc
 	ld b, h
 	ld c, l
@@ -3461,7 +3466,7 @@
 	jr .next
 
 .add
-	ld hl, ObjectStruct2 - ObjectStruct1
+	ld hl, OBJECT_STRUCT_LENGTH
 	add hl, bc
 	ld b, h
 	ld c, l
@@ -3473,7 +3478,7 @@
 .next
 	inc d
 	ld a, d
-	cp $d
+	cp NUM_OBJECT_STRUCTS
 	jr nz, .loop
 	ret
 ; 59f3
@@ -3483,7 +3488,7 @@
 .next
 	ld a, [hli]
 	ld d, a
-	and $f0
+	and %11110000
 	ret z
 	cp c
 	jr nz, .next
@@ -3491,7 +3496,7 @@
 	push bc
 	push hl
 	ld a, d
-	and $f
+	and %00001111
 	call Function5ac2
 	call Function5a0d
 	pop hl
@@ -3500,44 +3505,44 @@
 ; 5a0d
 
 Function5a0d: ; 5a0d
-	ld hl, OBJECT_SPRITE
+	ld hl, OBJECT_SPRITE_TILE
 	add hl, bc
 	ld a, [hl]
-	and $7f
+	and %01111111
 	ld [$ffc1], a
 
 	xor a
 	bit 7, [hl]
-	jr nz, .asm_5a1d
-	or 8
-.asm_5a1d
+	jr nz, .skip1
+	or %00001000
+.skip1
 
 	ld hl, OBJECT_FLAGS
 	add hl, bc
 	ld e, [hl]
 	bit 7, e
-	jr z, .asm_5a28
-	or $80
-.asm_5a28
+	jr z, .skip2
+	or %10000000
+.skip2
 
 	bit 4, e
-	jr z, .asm_5a2e
-	or $10
-.asm_5a2e
+	jr z, .skip3
+	or %00010000
+.skip3
 
 	ld hl, OBJECT_PALETTE
 	add hl, bc
 	ld d, a
 	ld a, [hl]
-	and 7
+	and %00000111
 	or d
 	ld d, a
 
 	xor a
 	bit 3, e
-	jr z, .asm_5a3f
-	or $80
-.asm_5a3f
+	jr z, .skip4
+	or %10000000
+.skip4
 	ld [$ffc2], a
 
 	ld hl, OBJECT_SPRITE_X
@@ -3570,7 +3575,7 @@
 	add e
 	ld [$ffc0], a
 
-	ld hl, OBJECT_FACING
+	ld hl, OBJECT_FACING_STEP
 	add hl, bc
 	ld a, [hl]
 	cp -1
@@ -3616,9 +3621,9 @@
 
 	ld a, [$ffc1]
 	bit 2, e
-	jr z, .asm_5aa3
+	jr z, .nope1
 	xor a
-.asm_5aa3
+.nope1
 	add [hl]
 	inc hl
 
@@ -3627,11 +3632,11 @@
 
 	ld a, e
 	bit 1, a
-	jr z, .asm_5aaf
+	jr z, .nope2
 	ld a, [$ffc2]
 	or e
-.asm_5aaf
-	and $f0
+.nope2
+	and %11110000
 	or d
 	ld [bc], a
 	inc c
@@ -3657,8 +3662,9 @@
 	ld c, a
 	ld b, 0
 	ld hl, .Addresses
-	add hl, bc
-	add hl, bc
+rept 2
+	add hl,bc
+endr
 	ld c, [hl]
 	inc hl
 	ld b, [hl]
--- a/engine/map_setup.asm
+++ b/engine/map_setup.asm
@@ -6,8 +6,9 @@
 	ld c, a
 	ld b, 0
 	ld hl, MapSetupScripts
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -259,9 +260,9 @@
 	ld c, a
 	ld b, 0
 	ld hl, MapSetupCommands
+rept 3
 	add hl, bc
-	add hl, bc
-	add hl, bc
+endr
 
 	; bank
 	ld b, [hl]
@@ -293,76 +294,76 @@
 ; 15440
 
 MapSetupCommands: ; 15440
-	dbw BANK(EnableLCD), EnableLCD
-	dbw BANK(DisableLCD), DisableLCD
-	dbw BANK(SoundRestart), SoundRestart
-	dbw BANK(PlayMapMusic), PlayMapMusic
-	dbw BANK(RestartMapMusic), RestartMapMusic
-	dbw BANK(FadeToMapMusic), FadeToMapMusic
-	dbw BANK(Function15574), Function15574
-	dbw BANK(EnterMapMusic), EnterMapMusic
-	dbw BANK(Function15587), Function15587
-	dbw BANK(Function3cae), Function3cae
-	dbw BANK(Function24cd), Function24cd
-	dbw BANK(Function28e3), Function28e3
-	dbw BANK(Function289d), Function289d
-	dbw BANK(Function2879), Function2879
-	dbw BANK(Function1047cf), Function1047cf
-	dbw BANK(LoadTilesetHeader), LoadTilesetHeader
-	dbw BANK(Function104750), Function104750
-	dbw BANK(Function1047eb), Function1047eb
-	dbw BANK(Function29ff8), Function29ff8
-	dbw BANK(Function1047f0), Function1047f0
-	dbw BANK(Function1045b0), Function1045b0
-	dbw BANK(Function1045c4), Function1045c4
-	dbw BANK(Function154d7), Function154d7
-	dbw BANK(LoadSpawnPoint), LoadSpawnPoint
-	dbw BANK(EnterMapConnection), EnterMapConnection
-	dbw BANK(Function1046c6), Function1046c6
-	dbw BANK(Function2309), Function2309
-	dbw BANK(Function2317), Function2317
-	dbw BANK(WhiteBGMap), WhiteBGMap
-	dbw BANK(Function8c084), Function8c084
-	dbw BANK(Function8c079), Function8c079
-	dbw BANK(Function10486d), Function10486d
-	dbw BANK(Function248a), Function248a
-	dbw BANK(Function57d9), Function57d9
-	dbw BANK(Function8029), Function8029
-	dbw BANK(Function80b8), Function80b8
-	dbw BANK(Function154eb), Function154eb
-	dbw BANK(Function154f1), Function154f1
-	dbw BANK(Function2a30d), Function2a30d
-	dbw BANK(Function2a394), Function2a394
-	dbw BANK(Function15567), Function15567
-	dbw BANK(Function154cf), Function154cf
-	dbw BANK(Function154d3), Function154d3
-	dbw BANK(Function1556d), Function1556d
-	dbw BANK(Function154ca), Function154ca
-	dbw BANK(Functionb8000), Functionb8000
+	dbw BANK(EnableLCD), EnableLCD ; 00
+	dbw BANK(DisableLCD), DisableLCD ; 01
+	dbw BANK(SoundRestart), SoundRestart ; 02
+	dbw BANK(PlayMapMusic), PlayMapMusic ; 03
+	dbw BANK(RestartMapMusic), RestartMapMusic ; 04
+	dbw BANK(FadeToMapMusic), FadeToMapMusic ; 05
+	dbw BANK(FadeOutMapAndMusic), FadeOutMapAndMusic ; 06
+	dbw BANK(EnterMapMusic), EnterMapMusic ; 07
+	dbw BANK(ForceMapMusic), ForceMapMusic ; 08
+	dbw BANK(CrankUpTheVolume), CrankUpTheVolume ; 09
+	dbw BANK(LoadBlockData), LoadBlockData ; 0a
+	dbw BANK(LoadNeighboringBlockData), LoadNeighboringBlockData ; 0b
+	dbw BANK(SaveScreen), SaveScreen ; 0c
+	dbw BANK(BufferScreen), BufferScreen ; 0d
+	dbw BANK(LoadGraphics), LoadGraphics ; 0e
+	dbw BANK(LoadTilesetHeader), LoadTilesetHeader ; 0f
+	dbw BANK(LoadMapTimeOfDay), LoadMapTimeOfDay ; 10
+	dbw BANK(LoadMapPalettes), LoadMapPalettes ; 11
+	dbw BANK(LoadWildMonData), LoadWildMonData ; 12
+	dbw BANK(RefreshMapSprites), RefreshMapSprites ; 13
+	dbw BANK(RunCallback_05_03), RunCallback_05_03 ; 14
+	dbw BANK(RunCallback_03), RunCallback_03 ; 15
+	dbw BANK(LoadObjectsRunCallback_02), LoadObjectsRunCallback_02 ; 16
+	dbw BANK(LoadSpawnPoint), LoadSpawnPoint ; 17
+	dbw BANK(EnterMapConnection), EnterMapConnection ; 18
+	dbw BANK(LoadWarpData), LoadWarpData ; 19
+	dbw BANK(LoadMapAttributes), LoadMapAttributes ; 1a
+	dbw BANK(LoadMapAttributes_IgnoreHidden), LoadMapAttributes_IgnoreHidden ; 1b
+	dbw BANK(WhiteBGMap), WhiteBGMap ; 1c
+	dbw BANK(FadeBlackBGMap), FadeBlackBGMap ; 1d
+	dbw BANK(FadeInBGMap), FadeInBGMap ; 1e
+	dbw BANK(GetCoordOfUpperLeftCorner), GetCoordOfUpperLeftCorner ; 1f
+	dbw BANK(RestoreFacingAfterWarp), RestoreFacingAfterWarp ; 20
+	dbw BANK(SpawnInFacingDown), SpawnInFacingDown ; 21
+	dbw BANK(GetSpawnCoord), GetSpawnCoord ; 22
+	dbw BANK(RefreshPlayerCoords), RefreshPlayerCoords ; 23
+	dbw BANK(DelayClearingOldSprites), DelayClearingOldSprites ; 24
+	dbw BANK(DelayLoadingNewSprites), DelayLoadingNewSprites ; 25
+	dbw BANK(UpdateRoamMons), UpdateRoamMons ; 26
+	dbw BANK(RestoreRoamMons), RestoreRoamMons ; 27
+	dbw BANK(FadeOldMapMusic), FadeOldMapMusic ; 28
+	dbw BANK(ActivateMapAnims), ActivateMapAnims ; 29
+	dbw BANK(SuspendMapAnims), SuspendMapAnims ; 2a
+	dbw BANK(RetainOldPalettes), RetainOldPalettes ; 2b
+	dbw BANK(DontScrollText), DontScrollText ; 2c
+	dbw BANK(ReturnFromMapSetupScript), ReturnFromMapSetupScript ; 2d
 ; 154ca
 
 
-Function154ca: ; 154ca
+DontScrollText: ; 154ca
 	xor a
 	ld [wc2d7], a
 	ret
 ; 154cf
 
-Function154cf: ; 154cf
+ActivateMapAnims: ; 154cf
 	ld a, $1
 	ld [$ffde], a
 	ret
 ; 154d3
 
-Function154d3: ; 154d3
+SuspendMapAnims: ; 154d3
 	xor a
 	ld [$ffde], a
 	ret
 ; 154d7
 
-Function154d7: ; 154d7
+LoadObjectsRunCallback_02: ; 154d7
 	ld a, $2
-	call Function263b
+	call RunMapCallback
 	callba Function2454f
 	callba Function8177
 	ret
@@ -372,13 +373,13 @@
 	ret
 ; 154eb
 
-Function154eb: ; 154eb
+DelayClearingOldSprites: ; 154eb
 	ld hl, wd45b
 	set 7, [hl]
 	ret
 ; 154f1
 
-Function154f1: ; 154f1
+DelayLoadingNewSprites: ; 154f1
 	ld hl, wd45b
 	set 6, [hl]
 	ret
@@ -386,14 +387,14 @@
 Function154f7: ; 154f7
 	nop
 	call Function1550c
-	jr c, .asm_15508
+	jr c, .ok
 	call Function1554e
-	jr c, .asm_15508
+	jr c, .ok
 	call Function1551a
-	jr c, .asm_15508
+	jr c, .ok
 	ret
-.asm_15508
-	call Functione4a
+.ok
+	call Special_ReplaceKrisSprite
 	ret
 
 Function1550c: ; 1550c (5:550c)
@@ -401,7 +402,7 @@
 	ld hl, BikeFlags
 	bit 1, [hl]
 	ret z
-	ld a, $1
+	ld a, PLAYER_BIKE
 	ld [PlayerState], a
 	scf
 	ret
@@ -408,64 +409,64 @@
 
 Function1551a: ; 1551a (5:551a)
 	ld a, [PlayerState]
-	cp $0
-	jr z, .asm_1554c
-	cp $2
-	jr z, .asm_1554c
-	cp $4
-	jr z, .asm_15545
-	cp $8
-	jr z, .asm_15545
+	cp PLAYER_NORMAL
+	jr z, .nope
+	cp PLAYER_SLIP
+	jr z, .nope
+	cp PLAYER_SURF
+	jr z, .surfing
+	cp PLAYER_SURF_PIKA
+	jr z, .surfing
 	call GetMapPermission
 	cp $3
-	jr z, .asm_1553e
+	jr z, .checkbiking
 	cp $5
-	jr z, .asm_1553e
+	jr z, .checkbiking
 	cp $7
-	jr z, .asm_1553e
-	jr .asm_1554c
-.asm_1553e
+	jr z, .checkbiking
+	jr .nope
+.checkbiking
 	ld a, [PlayerState]
-	cp $1
-	jr nz, .asm_1554c
-.asm_15545
-	ld a, $0
+	cp PLAYER_BIKE
+	jr nz, .nope
+.surfing
+	ld a, PLAYER_NORMAL
 	ld [PlayerState], a
 	scf
 	ret
-.asm_1554c
+.nope
 	and a
 	ret
 
 Function1554e: ; 1554e (5:554e)
 	call Function1852
-	jr nz, .asm_15565
+	jr nz, .ret_nc
 	ld a, [PlayerState]
-	cp $4
-	jr z, .asm_15563
-	cp $8
-	jr z, .asm_15563
-	ld a, $4
+	cp PLAYER_SURF
+	jr z, .surfing
+	cp PLAYER_SURF_PIKA
+	jr z, .surfing
+	ld a, PLAYER_SURF
 	ld [PlayerState], a
-.asm_15563
+.surfing
 	scf
 	ret
-.asm_15565
+.ret_nc
 	and a
 	ret
 ; 15567
 
-Function15567: ; 15567
+FadeOldMapMusic: ; 15567
 	ld a, 6
 	call SkipMusic
 	ret
 ; 1556d
 
-Function1556d: ; 1556d
+RetainOldPalettes: ; 1556d
 	callba _UpdateTimePals
 	ret
 
-Function15574: ; 15574
+FadeOutMapAndMusic: ; 15574
 	ld e, 0
 	ld a, [MusicFadeIDLo]
 	ld d, 0
@@ -472,18 +473,18 @@
 	ld a, [MusicFadeIDHi]
 	ld a, $4
 	ld [MusicFade], a
-	call Function4b6
+	call FadeToWhite
 	ret
 ; 15587
 
-Function15587: ; 15587
+ForceMapMusic: ; 15587
 	ld a, [PlayerState]
-	cp $1
-	jr nz, .asm_15596
+	cp PLAYER_BIKE
+	jr nz, .notbiking
 	call VolumeOff
 	ld a, $88
 	ld [MusicFade], a
-.asm_15596
-	call Function3d2f
+.notbiking
+	call TryRestartMapMusic
 	ret
 ; 1559a
--- a/engine/more_phone_scripts.asm
+++ b/engine/more_phone_scripts.asm
@@ -55,7 +55,7 @@
 	farjump UnknownScript_0xa053a
 
 UnknownScript_0xa007c:
-	checkcode $17
+	checkcode VAR_CALLERID
 	if_equal $5, UnknownScript_0xa00c2
 	if_equal $b, UnknownScript_0xa00c8
 	if_equal $d, UnknownScript_0xa00ce
@@ -160,7 +160,7 @@
 	end
 
 UnknownScript_0xa0128:
-	checkcode $17
+	checkcode VAR_CALLERID
 	if_equal $6, UnknownScript_0xa014a
 	if_equal $c, UnknownScript_0xa0150
 	if_equal $e, UnknownScript_0xa0156
@@ -211,7 +211,7 @@
 	end
 
 UnknownScript_0xa017a:
-	checkcode $17
+	checkcode VAR_CALLERID
 	if_equal $5, UnknownScript_0xa01c0
 	if_equal $b, UnknownScript_0xa01c6
 	if_equal $d, UnknownScript_0xa01cc
@@ -316,7 +316,7 @@
 	end
 
 UnknownScript_0xa0226:
-	checkcode $17
+	checkcode VAR_CALLERID
 	if_equal $6, UnknownScript_0xa0248
 	if_equal $c, UnknownScript_0xa024e
 	if_equal $e, UnknownScript_0xa0254
@@ -367,7 +367,7 @@
 	end
 
 UnknownScript_0xa0278:
-	checkcode $17
+	checkcode VAR_CALLERID
 	if_equal $5, UnknownScript_0xa02be
 	if_equal $b, UnknownScript_0xa02c4
 	if_equal $d, UnknownScript_0xa02ca
@@ -472,7 +472,7 @@
 	end
 
 UnknownScript_0xa0324:
-	checkcode $17
+	checkcode VAR_CALLERID
 	if_equal $6, UnknownScript_0xa0346
 	if_equal $c, UnknownScript_0xa034c
 	if_equal $e, UnknownScript_0xa0352
@@ -531,7 +531,7 @@
 	farjump UnknownScript_0xa053a
 
 UnknownScript_0xa0386:
-	checkcode $17
+	checkcode VAR_CALLERID
 	if_equal $5, UnknownScript_0xa03cc
 	if_equal $7, UnknownScript_0xa03d2
 	if_equal $b, UnknownScript_0xa03d8
@@ -636,7 +636,7 @@
 	end
 
 UnknownScript_0xa0432:
-	checkcode $17
+	checkcode VAR_CALLERID
 	if_equal $c, UnknownScript_0xa0450
 	if_equal $e, UnknownScript_0xa0456
 	if_equal $12, UnknownScript_0xa045c
@@ -689,7 +689,7 @@
 	end
 
 UnknownScript_0xa0484:
-	checkcode $17
+	checkcode VAR_CALLERID
 	if_equal $5, UnknownScript_0xa04d6
 	if_equal $7, UnknownScript_0xa04db
 	if_equal $b, UnknownScript_0xa04e0
@@ -792,7 +792,7 @@
 	end
 
 UnknownScript_0xa053a:
-	checkcode $17
+	checkcode VAR_CALLERID
 	if_equal $6, UnknownScript_0xa055c
 	if_equal $c, UnknownScript_0xa0561
 	if_equal $e, UnknownScript_0xa0566
@@ -855,7 +855,7 @@
 	end
 
 UnknownScript_0xa05a4:
-	checkcode $17
+	checkcode VAR_CALLERID
 	if_equal $10, UnknownScript_0xa05ae
 	if_equal $1c, UnknownScript_0xa05b6
 
@@ -895,7 +895,7 @@
 	jump UnknownScript_0xa0484
 
 UnknownScript_0xa05e6:
-	checkcode $17
+	checkcode VAR_CALLERID
 	if_equal $d, UnknownScript_0xa0600
 	if_equal $10, UnknownScript_0xa0605
 	if_equal $18, UnknownScript_0xa060a
@@ -928,7 +928,7 @@
 	end
 
 UnknownScript_0xa061e:
-	checkcode $17
+	checkcode VAR_CALLERID
 	if_equal $6, UnknownScript_0xa0630
 	if_equal $15, UnknownScript_0xa0635
 	if_equal $1a, UnknownScript_0xa063a
@@ -1459,7 +1459,7 @@
 	jump UnknownScript_0xa0484
 
 UnknownScript_0xa09ee:
-	checkcode $1a
+	checkcode VAR_KENJI_BREAK
 	if_equal $2, UnknownScript_0xa0a00
 	if_equal $1, UnknownScript_0xa0a08
 	farwritetext UnknownText_0x66e17
@@ -1476,7 +1476,7 @@
 	iftrue UnknownScript_0xa0a1d
 	checknite
 	iftrue UnknownScript_0xa0a25
-	setevent $026a
+	setevent EVENT_KENJI_ON_BREAK
 	farwritetext UnknownText_0x66f11
 	keeptextopen
 	jump UnknownScript_0xa0484
@@ -1655,6 +1655,6 @@
 
 UnknownScript_0xa0b09:
 	farwritetext UnknownText_0x174000
-	clearflag ENGINE_14
-	specialphonecall $0000
+	clearflag ENGINE_BIKE_SHOP_CALL_ENABLED
+	specialphonecall ELMCALL_NONE
 	end
--- a/engine/movement.asm
+++ b/engine/movement.asm
@@ -130,7 +130,7 @@
 	ld hl, $000b
 	add hl, bc
 	ld [hl], $4
-	call Function505e
+	call GetMovementByte
 	ld hl, $000a
 	add hl, bc
 	ld [hl], a
@@ -150,7 +150,7 @@
 	ld hl, $000c
 	add hl, bc
 	ld [hl], a
-	call Function505e
+	call GetMovementByte
 	ld hl, $000a
 	add hl, bc
 	ld [hl], a
@@ -174,7 +174,7 @@
 ; 5196
 
 Function5196: ; 5196
-	call Function505e
+	call GetMovementByte
 	ld hl, $000a
 	add hl, bc
 	ld [hl], a
@@ -228,7 +228,7 @@
 	ld hl, $001b
 	add hl, bc
 	ld [hl], $0
-	call Function505e
+	call GetMovementByte
 	ld hl, $000a
 	add hl, bc
 	ld [hl], a
@@ -302,7 +302,7 @@
 ; parameters:
 ;	duration (DecimalParam)
 
-	call Function505e
+	call GetMovementByte
 	jr Function5247
 
 Function5247: ; 5247
@@ -411,7 +411,7 @@
 ; parameters:
 ;	displacement (DecimalParam)
 
-	call Function505e
+	call GetMovementByte
 	call Function5565
 	jp Function5065
 ; 52de
--- a/engine/pack.asm
+++ b/engine/pack.asm
@@ -62,7 +62,7 @@
 
 Function10067: ; 10067 (4:4067)
 	ld hl, MenuDataHeader_0x10a4f
-	call Function1d3c
+	call CopyMenuDataHeader
 	ld a, [wd0d9]
 	ld [wcf88], a
 	ld a, [wd0df]
@@ -90,7 +90,7 @@
 
 Function100a6: ; 100a6 (4:40a6)
 	ld hl, MenuDataHeader_0x10a7f
-	call Function1d3c
+	call CopyMenuDataHeader
 	ld a, [wd0da]
 	ld [wcf88], a
 	ld a, [wd0e0]
@@ -137,8 +137,8 @@
 .asm_10110
 	push de
 	call LoadMenuDataHeader
-	call Function1d81
-	call Function1c07
+	call InterpretMenu2
+	call ExitMenu
 	pop hl
 	ret c
 	ld a, [wcfa9]
@@ -220,7 +220,7 @@
 
 Function10198: ; 10198 (4:4198)
 	ld hl, MenuDataHeader_0x10aaf
-	call Function1d3c
+	call CopyMenuDataHeader
 	ld a, [wd0db]
 	ld [wcf88], a
 	ld a, [wd0e1]
@@ -289,8 +289,8 @@
 .asm_10235
 	push de
 	call LoadMenuDataHeader
-	call Function1d81
-	call Function1c07
+	call InterpretMenu2
+	call ExitMenu
 	pop hl
 	ret c
 	ld a, [wcfa9]
@@ -495,15 +495,15 @@
 	call Function10889
 	callba Function24fbf
 	push af
-	call Function1c07
+	call ExitMenu
 	pop af
 	jr c, .asm_1039c
 	call Function10a1d
 	ld hl, UnknownText_0x10ae9
-	call Function1d4f
+	call MenuTextBox
 	call YesNoBox
 	push af
-	call Function1c07
+	call ExitMenu
 	pop af
 	jr c, .asm_1039c
 	ld hl, NumItems
@@ -709,7 +709,7 @@
 
 Function104fa: ; 104fa (4:44fa)
 	ld hl, MenuDataHeader_0x10a4f
-	call Function1d3c
+	call CopyMenuDataHeader
 	ld a, [wd0d9]
 	ld [wcf88], a
 	ld a, [wd0df]
@@ -737,7 +737,7 @@
 
 Function10539: ; 10539 (4:4539)
 	ld hl, MenuDataHeader_0x10a7f
-	call Function1d3c
+	call CopyMenuDataHeader
 	ld a, [wd0da]
 	ld [wcf88], a
 	ld a, [wd0e0]
@@ -788,7 +788,7 @@
 
 Function105a6: ; 105a6 (4:45a6)
 	ld hl, MenuDataHeader_0x10aaf
-	call Function1d3c
+	call CopyMenuDataHeader
 	ld a, [wd0db]
 	ld [wcf88], a
 	ld a, [wd0e1]
@@ -821,8 +821,8 @@
 .asm_105ed
 	push de
 	call LoadMenuDataHeader
-	call Function1d81
-	call Function1c07
+	call InterpretMenu2
+	call ExitMenu
 	pop hl
 	ret c
 	ld a, [wcfa9]
@@ -992,7 +992,7 @@
 	xor a
 	call Function10762
 	ld hl, MenuDataHeader_0x10a67
-	call Function1d3c
+	call CopyMenuDataHeader
 	ld a, [wd0d9]
 	ld [wcf88], a
 	ld a, [wd0df]
@@ -1008,7 +1008,7 @@
 	ld a, $2
 	call Function10762
 	ld hl, MenuDataHeader_0x10a97
-	call Function1d3c
+	call CopyMenuDataHeader
 	ld a, [wd0da]
 	ld [wcf88], a
 	ld a, [wd0e0]
@@ -1033,7 +1033,7 @@
 	ld a, $1
 	call Function10762
 	ld hl, MenuDataHeader_0x10ac7
-	call Function1d3c
+	call CopyMenuDataHeader
 	ld a, [wd0db]
 	ld [wcf88], a
 	ld a, [wd0e1]
@@ -1223,7 +1223,7 @@
 	push hl
 	call Function10762
 	pop hl
-	call Function1d3c
+	call CopyMenuDataHeader
 	call Function350c
 	ret
 
@@ -1235,8 +1235,9 @@
 Function1086b: ; 1086b
 	ld e, a
 	ld d, 0
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -1285,8 +1286,9 @@
 
 .asm_108b3
 	ld hl, PackGFXPointers
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld e, a
 	ld d, [hl]
@@ -1673,7 +1675,7 @@
 ; 0x10b0c
 
 UnknownText_0x10b0c: ; 0x10b0c
-	; 
+	;
 	text_jump UnknownText_0x1c0c83
 	db "@"
 ; 0x10b11
--- a/engine/phone_scripts.asm
+++ b/engine/phone_scripts.asm
@@ -2,6 +2,8 @@
 	farwritetext UnusedPhoneText
 	end
 
+; Mom
+
 MomPhoneScript: ; 0xbceaa
 	checkevent EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST
 	iftrue .bcec5
@@ -14,12 +16,12 @@
 	jump MomPhoneNoPokemonScript
 
 .bcec5 ; 0xbcec5
-	checkevent $0007
+	checkevent EVENT_IN_YOUR_ROOM
 	iftrue MomPhoneHangUpScript
 	farwritetext MomPhoneGreetingText
 	keeptextopen
 	mapnametotext $0
-	checkcode $f
+	checkcode VAR_ROOFPALETTE
 	if_equal $1, UnknownScript_0xbcee7
 	if_equal $2, UnknownScript_0xbcf27
 	jump UnknownScript_0xbcf2f
@@ -30,7 +32,7 @@
 	jump UnknownScript_0xbcf37
 
 UnknownScript_0xbcee7: ; 0xbcee7
-	checkcode $c
+	checkcode VAR_MAPGROUP
 	if_equal GROUP_NEW_BARK_TOWN, .newbark
 	if_equal GROUP_CHERRYGROVE_CITY, .cherrygrove
 	if_equal GROUP_VIOLET_CITY, .violet
@@ -139,12 +141,14 @@
 MomPhoneLectureScript: ; 0xbcfb1
 	setevent EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST
 	setflag ENGINE_DST
-	specialphonecall $0000
+	specialphonecall ELMCALL_NONE
 	farwritetext MomPhoneLectureText
 	yesorno
 	iftrue MomPhoneSaveMoneyScript
 	jump MomPhoneWontSaveMoneyScript
 
+; Bill
+
 BillPhoneScript1: ; 0xbcfc5
 	checkday
 	iftrue .daygreet
@@ -167,7 +171,7 @@
 .main ; 0xbcfe7
 	farwritetext BillPhoneGeneriText
 	keeptextopen
-	checkcode $10
+	checkcode VAR_BOXSPACE
 	RAM2MEM $0
 	if_equal $0, .full
 	if_less_than $6, .nearlyfull
@@ -187,8 +191,10 @@
 	closetext
 	end
 
+; Elm
+
 ElmPhoneScript1: ; 0xbd00d
-	checkcode $14
+	checkcode VAR_POKERUS
 	if_equal $1, .pokerus
 	checkevent EVENT_SHOWED_TOGEPI_TO_ELM
 	iftrue .discovery
@@ -247,11 +253,11 @@
 
 .pokerus ; 0xbd079
 	farwritetext ElmPhonePokerusText
-	specialphonecall $0000
+	specialphonecall ELMCALL_NONE
 	end
 
 ElmPhoneScript2: ; 0xbd081
-	checkcode $14
+	checkcode VAR_POKERUS
 	if_equal $2, .disaster
 	if_equal $3, .assistant
 	if_equal $4, .rocket
@@ -258,18 +264,18 @@
 	if_equal $5, .gift
 	if_equal $8, .gift
 	farwritetext ElmPhonePokerusText
-	specialphonecall $0000
+	specialphonecall ELMCALL_NONE
 	end
 
 .disaster ; 0xbd09f
 	farwritetext ElmPhoneDisasterText
-	specialphonecall $0000
+	specialphonecall ELMCALL_NONE
 	setevent EVENT_ELM_CALLED_ABOUT_STOLEN_POKEMON
 	end
 
 .assistant ; 0xbd0aa
 	farwritetext ElmPhoneEggAssistantText
-	specialphonecall $0000
+	specialphonecall ELMCALL_NONE
 	clearevent EVENT_ELMS_AIDE_IN_VIOLET_POKEMON_CENTER
 	setevent EVENT_ELMS_AIDE_IN_LAB
 	end
@@ -276,30 +282,31 @@
 
 .rocket ; 0xbd0b8
 	farwritetext ElmPhoneRocketText
-	specialphonecall $0000
+	specialphonecall ELMCALL_NONE
 	end
 
 .gift ; 0xbd0c0
 	farwritetext ElmPhoneGiftText
-	specialphonecall $0000
+	specialphonecall ELMCALL_NONE
 	end
 
 .unused ; 0xbd0c8
 	farwritetext ElmPhoneUnusedText
-	specialphonecall $0000
+	specialphonecall ELMCALL_NONE
 	end
 ; bd0d0
 
+; Jack
 
 UnknownScript_0xbd0d0:
-	trainertotext SCHOOLBOY, 1, $0
+	trainertotext SCHOOLBOY, JACK1, $0
 	checkflag ENGINE_JACK
 	iftrue UnknownScript_0xbd0f3
 	farscall UnknownScript_0xbde4e
-	checkflag ENGINE_87
+	checkflag ENGINE_JACK_MONDAY_MORNING
 	iftrue UnknownScript_0xbd0ef
-	checkcode $b
-	if_not_equal $1, UnknownScript_0xbd0ef
+	checkcode VAR_WEEKDAY
+	if_not_equal MONDAY, UnknownScript_0xbd0ef
 	checkmorn
 	iftrue UnknownScript_0xbd12a
 
@@ -311,13 +318,13 @@
 	farjump UnknownScript_0xa0a2d
 
 UnknownScript_0xbd0fa:
-	trainertotext SCHOOLBOY, 1, $0
+	trainertotext SCHOOLBOY, JACK1, $0
 	farscall UnknownScript_0xbe1b6
 	farscall UnknownScript_0xbde3f
 	if_equal $0, UnknownScript_0xbd13b
 	checkflag ENGINE_JACK
 	iftrue UnknownScript_0xbd11e
-	checkflag ENGINE_87
+	checkflag ENGINE_JACK_MONDAY_MORNING
 	iftrue UnknownScript_0xbd11e
 	farscall UnknownScript_0xbde3f
 	if_equal $0, UnknownScript_0xbd12d
@@ -328,7 +335,7 @@
 	farjump UnknownScript_0xa0000
 
 UnknownScript_0xbd12a:
-	setflag ENGINE_87
+	setflag ENGINE_JACK_MONDAY_MORNING
 
 UnknownScript_0xbd12d:
 	displaylocation NATIONAL_PARK, $2
@@ -341,8 +348,10 @@
 UnknownScript_0xbd13b:
 	farjump UnknownScript_0xa0654
 
+; Beverly
+
 UnknownScript_0xbd13f:
-	trainertotext POKEFANF, 1, $0
+	trainertotext POKEFANF, BEVERLY1, $0
 	farscall UnknownScript_0xbe0b6
 	checkflag ENGINE_BEVERLY_HAS_NUGGET
 	iftrue UnknownScript_0xbd151
@@ -353,7 +362,7 @@
 	farjump UnknownScript_0xa0aa5
 
 UnknownScript_0xbd158:
-	trainertotext POKEFANF, 1, $0
+	trainertotext POKEFANF, BEVERLY1, $0
 	farscall UnknownScript_0xbe41e
 	checkflag ENGINE_BEVERLY_HAS_NUGGET
 	iftrue UnknownScript_0xbd16e
@@ -368,15 +377,17 @@
 	displaylocation NATIONAL_PARK, $2
 	farjump UnknownScript_0xa061e
 
+; Huey
+
 UnknownScript_0xbd17c:
-	trainertotext SAILOR, 2, $0
+	trainertotext SAILOR, HUEY1, $0
 	checkflag ENGINE_HUEY
 	iftrue UnknownScript_0xbd1a2
 	farscall UnknownScript_0xbde4e
-	checkflag ENGINE_88
+	checkflag ENGINE_HUEY_WEDNESDAY_NIGHT
 	iftrue UnknownScript_0xbd19b
-	checkcode $b
-	if_not_equal $3, UnknownScript_0xbd19b
+	checkcode VAR_WEEKDAY
+	if_not_equal WEDNESDAY, UnknownScript_0xbd19b
 	checknite
 	iftrue UnknownScript_0xbd1cd
 
@@ -389,11 +400,11 @@
 	farjump UnknownScript_0xa0a32
 
 UnknownScript_0xbd1a9:
-	trainertotext SAILOR, 2, $0
+	trainertotext SAILOR, HUEY1, $0
 	farscall UnknownScript_0xbe1b6
 	checkflag ENGINE_HUEY
 	iftrue UnknownScript_0xbd1c9
-	checkflag ENGINE_88
+	checkflag ENGINE_HUEY_WEDNESDAY_NIGHT
 	iftrue UnknownScript_0xbd1c9
 	farscall UnknownScript_0xbde42
 	if_equal $0, UnknownScript_0xbd1d0
@@ -403,7 +414,7 @@
 	farjump UnknownScript_0xbe622
 
 UnknownScript_0xbd1cd:
-	setflag ENGINE_88
+	setflag ENGINE_HUEY_WEDNESDAY_NIGHT
 
 UnknownScript_0xbd1d0:
 	displaylocation LIGHTHOUSE, $2
@@ -410,15 +421,17 @@
 	setflag ENGINE_HUEY
 	farjump UnknownScript_0xa0376
 
+; Gaven
+
 UnknownScript_0xbd1da:
-	trainertotext COOLTRAINERM, 10, $0
+	trainertotext COOLTRAINERM, GAVEN3, $0
 	checkflag ENGINE_GAVEN
 	iftrue UnknownScript_0xbd1fd
 	farscall UnknownScript_0xbde4e
-	checkflag ENGINE_89
+	checkflag ENGINE_GAVEN_THURSDAY_MORNING
 	iftrue UnknownScript_0xbd1f9
-	checkcode $b
-	if_not_equal $4, UnknownScript_0xbd1f9
+	checkcode VAR_WEEKDAY
+	if_not_equal THURSDAY, UnknownScript_0xbd1f9
 	checkmorn
 	iftrue UnknownScript_0xbd22c
 
@@ -430,11 +443,11 @@
 	farjump UnknownScript_0xa0a37
 
 UnknownScript_0xbd204:
-	trainertotext COOLTRAINERM, 10, $0
+	trainertotext COOLTRAINERM, GAVEN3, $0
 	farscall UnknownScript_0xbe1b6
 	checkflag ENGINE_GAVEN
 	iftrue UnknownScript_0xbd220
-	checkflag ENGINE_89
+	checkflag ENGINE_GAVEN_THURSDAY_MORNING
 	iftrue UnknownScript_0xbd220
 	farscall UnknownScript_0xbde3f
 	if_equal $0, UnknownScript_0xbd22f
@@ -445,7 +458,7 @@
 	farjump UnknownScript_0xa0000
 
 UnknownScript_0xbd22c:
-	setflag ENGINE_89
+	setflag ENGINE_GAVEN_THURSDAY_MORNING
 
 UnknownScript_0xbd22f:
 	displaylocation ROUTE_26, $2
@@ -455,15 +468,17 @@
 UnknownScript_0xbd239:
 	farjump UnknownScript_0xa0584
 
+; Beth
+
 UnknownScript_0xbd23d:
-	trainertotext COOLTRAINERF, 9, $0
+	trainertotext COOLTRAINERF, BETH1, $0
 	checkflag ENGINE_BETH
 	iftrue UnknownScript_0xbd260
 	farscall UnknownScript_0xbe0b6
-	checkflag ENGINE_8A
+	checkflag ENGINE_BETH_FRIDAY_AFTERNOON
 	iftrue UnknownScript_0xbd25c
-	checkcode $b
-	if_not_equal $5, UnknownScript_0xbd25c
+	checkcode VAR_WEEKDAY
+	if_not_equal FRIDAY, UnknownScript_0xbd25c
 	checkday
 	iftrue UnknownScript_0xbd287
 
@@ -475,11 +490,11 @@
 	farjump UnknownScript_0xa0a3c
 
 UnknownScript_0xbd267:
-	trainertotext COOLTRAINERF, 9, $0
+	trainertotext COOLTRAINERF, BETH1, $0
 	farscall UnknownScript_0xbe41e
 	checkflag ENGINE_BETH
 	iftrue UnknownScript_0xbd283
-	checkflag ENGINE_8A
+	checkflag ENGINE_BETH_FRIDAY_AFTERNOON
 	iftrue UnknownScript_0xbd283
 	farscall UnknownScript_0xbde3f
 	if_equal $0, UnknownScript_0xbd28a
@@ -488,7 +503,7 @@
 	farjump UnknownScript_0xa0017
 
 UnknownScript_0xbd287:
-	setflag ENGINE_8A
+	setflag ENGINE_BETH_FRIDAY_AFTERNOON
 
 UnknownScript_0xbd28a:
 	displaylocation ROUTE_26, $2
@@ -495,17 +510,19 @@
 	setflag ENGINE_BETH
 	farjump UnknownScript_0xa037e
 
+; Jose
+
 UnknownScript_0xbd294:
-	trainertotext BIRD_KEEPER, 14, $0
+	trainertotext BIRD_KEEPER, JOSE2, $0
 	checkflag ENGINE_JOSE
 	iftrue UnknownScript_0xbd2bd
 	farscall UnknownScript_0xbde4e
-	checkflag ENGINE_8B
+	checkflag ENGINE_JOSE_SATURDAY_NIGHT
 	iftrue UnknownScript_0xbd2b9
 	checkflag ENGINE_JOSE_HAS_STAR_PIECE
 	iftrue UnknownScript_0xbd2c4
-	checkcode $b
-	if_not_equal $6, UnknownScript_0xbd2b9
+	checkcode VAR_WEEKDAY
+	if_not_equal SATURDAY, UnknownScript_0xbd2b9
 	checknite
 	iftrue UnknownScript_0xbd301
 
@@ -521,11 +538,11 @@
 	farjump UnknownScript_0xa0a41
 
 UnknownScript_0xbd2cb:
-	trainertotext BIRD_KEEPER, 14, $0
+	trainertotext BIRD_KEEPER, JOSE2, $0
 	farscall UnknownScript_0xbe1b6
 	checkflag ENGINE_JOSE
 	iftrue UnknownScript_0xbd2f5
-	checkflag ENGINE_8B
+	checkflag ENGINE_JOSE_SATURDAY_NIGHT
 	iftrue UnknownScript_0xbd2f5
 	checkflag ENGINE_JOSE_HAS_STAR_PIECE
 	iftrue UnknownScript_0xbd2f5
@@ -540,7 +557,7 @@
 	farjump UnknownScript_0xa0000
 
 UnknownScript_0xbd301:
-	setflag ENGINE_8B
+	setflag ENGINE_JOSE_SATURDAY_NIGHT
 
 UnknownScript_0xbd304:
 	displaylocation ROUTE_27, $2
@@ -555,15 +572,17 @@
 	displaylocation ROUTE_27, $2
 	farjump UnknownScript_0xa05e6
 
+; Reena
+
 UnknownScript_0xbd31c:
-	trainertotext COOLTRAINERF, 10, $0
+	trainertotext COOLTRAINERF, REENA1, $0
 	checkflag ENGINE_REENA
 	iftrue UnknownScript_0xbd33f
 	farscall UnknownScript_0xbe0b6
-	checkflag ENGINE_8C
+	checkflag ENGINE_REENA_SUNDAY_MORNING
 	iftrue UnknownScript_0xbd33b
-	checkcode $b
-	if_not_equal $0, UnknownScript_0xbd33b
+	checkcode VAR_WEEKDAY
+	if_not_equal SUNDAY, UnknownScript_0xbd33b
 	checkmorn
 	iftrue UnknownScript_0xbd366
 
@@ -575,11 +594,11 @@
 	farjump UnknownScript_0xa0a46
 
 UnknownScript_0xbd346:
-	trainertotext COOLTRAINERF, 10, $0
+	trainertotext COOLTRAINERF, REENA1, $0
 	farscall UnknownScript_0xbe41e
 	checkflag ENGINE_REENA
 	iftrue UnknownScript_0xbd362
-	checkflag ENGINE_8C
+	checkflag ENGINE_REENA_SUNDAY_MORNING
 	iftrue UnknownScript_0xbd362
 	farscall UnknownScript_0xbde3f
 	if_equal $0, UnknownScript_0xbd369
@@ -588,7 +607,7 @@
 	farjump UnknownScript_0xa0017
 
 UnknownScript_0xbd366:
-	setflag ENGINE_8C
+	setflag ENGINE_REENA_SUNDAY_MORNING
 
 UnknownScript_0xbd369:
 	displaylocation ROUTE_27, $2
@@ -595,15 +614,17 @@
 	setflag ENGINE_REENA
 	farjump UnknownScript_0xa037e
 
+; Joey
+
 UnknownScript_0xbd373:
-	trainertotext YOUNGSTER, 1, $0
+	trainertotext YOUNGSTER, JOEY1, $0
 	checkflag ENGINE_JOEY
 	iftrue UnknownScript_0xbd399
 	farscall UnknownScript_0xbde4e
-	checkflag ENGINE_8D
+	checkflag ENGINE_JOEY_MONDAY_AFTERNOON
 	iftrue UnknownScript_0xbd392
-	checkcode $b
-	if_not_equal $1, UnknownScript_0xbd392
+	checkcode VAR_WEEKDAY
+	if_not_equal MONDAY, UnknownScript_0xbd392
 	checkday
 	iftrue UnknownScript_0xbd3c4
 
@@ -616,11 +637,11 @@
 	farjump UnknownScript_0xa0a4b
 
 UnknownScript_0xbd3a0:
-	trainertotext YOUNGSTER, 1, $0
+	trainertotext YOUNGSTER, JOEY1, $0
 	farscall UnknownScript_0xbe1b6
 	checkflag ENGINE_JOEY
 	iftrue UnknownScript_0xbd3c0
-	checkflag ENGINE_8D
+	checkflag ENGINE_JOEY_MONDAY_AFTERNOON
 	iftrue UnknownScript_0xbd3c0
 	farscall UnknownScript_0xbde42
 	if_equal $0, UnknownScript_0xbd3c7
@@ -630,7 +651,7 @@
 	farjump UnknownScript_0xa0000
 
 UnknownScript_0xbd3c4:
-	setflag ENGINE_8D
+	setflag ENGINE_JOEY_MONDAY_AFTERNOON
 
 UnknownScript_0xbd3c7:
 	displaylocation ROUTE_30, $2
@@ -637,17 +658,19 @@
 	setflag ENGINE_JOEY
 	farjump UnknownScript_0xa0376
 
+; Wade
+
 UnknownScript_0xbd3d1:
-	trainertotext BUG_CATCHER, 4, $0
+	trainertotext BUG_CATCHER, WADE1, $0
 	checkflag ENGINE_WADE
 	iftrue UnknownScript_0xbd41a
 	farscall UnknownScript_0xbde4e
-	checkflag ENGINE_8E
+	checkflag ENGINE_WADE_TUESDAY_NIGHT
 	iftrue UnknownScript_0xbd3f6
 	checkflag ENGINE_WADE_HAS_ITEM
 	iftrue UnknownScript_0xbd421
-	checkcode $b
-	if_not_equal $2, UnknownScript_0xbd3f6
+	checkcode VAR_WEEKDAY
+	if_not_equal TUESDAY, UnknownScript_0xbd3f6
 	checknite
 	iftrue UnknownScript_0xbd484
 
@@ -654,12 +677,12 @@
 UnknownScript_0xbd3f6:
 	farscall UnknownScript_0xbde3f
 	if_equal $0, UnknownScript_0xbd412
-	checkflag ENGINE_51
+	checkflag ENGINE_DAILY_BUG_CONTEST
 	iftrue UnknownScript_0xbd412
-	checkcode $b
-	if_equal $2, UnknownScript_0xbd416
-	if_equal $4, UnknownScript_0xbd416
-	if_equal $6, UnknownScript_0xbd416
+	checkcode VAR_WEEKDAY
+	if_equal TUESDAY, UnknownScript_0xbd416
+	if_equal THURSDAY, UnknownScript_0xbd416
+	if_equal SATURDAY, UnknownScript_0xbd416
 
 UnknownScript_0xbd412:
 	farjump UnknownScript_0xa0938
@@ -676,21 +699,21 @@
 	farjump UnknownScript_0xa0ab5
 
 UnknownScript_0xbd428:
-	trainertotext BUG_CATCHER, 4, $0
+	trainertotext BUG_CATCHER, WADE1, $0
 	farscall UnknownScript_0xbe1b6
 	farscall UnknownScript_0xbde3f
 	if_equal $0, UnknownScript_0xbd44c
-	checkflag ENGINE_51
+	checkflag ENGINE_DAILY_BUG_CONTEST
 	iftrue UnknownScript_0xbd44c
-	checkcode $b
-	if_equal $2, UnknownScript_0xbd480
-	if_equal $4, UnknownScript_0xbd480
-	if_equal $6, UnknownScript_0xbd480
+	checkcode VAR_WEEKDAY
+	if_equal TUESDAY, UnknownScript_0xbd480
+	if_equal THURSDAY, UnknownScript_0xbd480
+	if_equal SATURDAY, UnknownScript_0xbd480
 
 UnknownScript_0xbd44c:
 	checkflag ENGINE_WADE
 	iftrue UnknownScript_0xbd474
-	checkflag ENGINE_8E
+	checkflag ENGINE_WADE_TUESDAY_NIGHT
 	iftrue UnknownScript_0xbd474
 	checkflag ENGINE_WADE_HAS_ITEM
 	iftrue UnknownScript_0xbd474
@@ -710,7 +733,7 @@
 	farjump UnknownScript_0xa05a4
 
 UnknownScript_0xbd484:
-	setflag ENGINE_8E
+	setflag ENGINE_WADE_TUESDAY_NIGHT
 
 UnknownScript_0xbd487:
 	displaylocation ROUTE_31, $2
@@ -751,15 +774,17 @@
 UnknownScript_0xbd4ce:
 	farjump UnknownScript_0xa05e6
 
+; Ralph
+
 UnknownScript_0xbd4d2:
-	trainertotext FISHER, 2, $0
+	trainertotext FISHER, RALPH1, $0
 	checkflag ENGINE_RALPH
 	iftrue UnknownScript_0xbd4fb
 	farscall UnknownScript_0xbde4e
-	checkflag ENGINE_8F
+	checkflag ENGINE_RALPH_WEDNESDAY_MORNING
 	iftrue UnknownScript_0xbd4f1
-	checkcode $b
-	if_not_equal $3, UnknownScript_0xbd4f1
+	checkcode VAR_WEEKDAY
+	if_not_equal WEDNESDAY, UnknownScript_0xbd4f1
 	checkmorn
 	iftrue UnknownScript_0xbd537
 
@@ -777,13 +802,13 @@
 	farjump UnknownScript_0xa0af5
 
 UnknownScript_0xbd509:
-	trainertotext FISHER, 2, $0
+	trainertotext FISHER, RALPH1, $0
 	farscall UnknownScript_0xbe1b6
 	checkflag ENGINE_FLYPOINT_GOLDENROD
 	iffalse UnknownScript_0xbd52b
 	checkflag ENGINE_RALPH
 	iftrue UnknownScript_0xbd52b
-	checkflag ENGINE_8F
+	checkflag ENGINE_RALPH_WEDNESDAY_MORNING
 	iftrue UnknownScript_0xbd52b
 	farscall UnknownScript_0xbde3f
 	if_equal $0, UnknownScript_0xbd53a
@@ -794,7 +819,7 @@
 	farjump UnknownScript_0xa0000
 
 UnknownScript_0xbd537:
-	setflag ENGINE_8F
+	setflag ENGINE_RALPH_WEDNESDAY_MORNING
 
 UnknownScript_0xbd53a:
 	displaylocation ROUTE_32, $2
@@ -814,15 +839,17 @@
 UnknownScript_0xbd55c:
 	farjump UnknownScript_0xa0000
 
+; Liz
+
 UnknownScript_0xbd560:
-	trainertotext PICNICKER, 1, $0
+	trainertotext PICNICKER, LIZ1, $0
 	checkflag ENGINE_LIZ
 	iftrue UnknownScript_0xbd586
 	farscall UnknownScript_0xbe0b6
-	checkflag ENGINE_90
+	checkflag ENGINE_LIZ_THURSDAY_AFTERNOON
 	iftrue UnknownScript_0xbd57f
-	checkcode $b
-	if_not_equal $4, UnknownScript_0xbd57f
+	checkcode VAR_WEEKDAY
+	if_not_equal THURSDAY, UnknownScript_0xbd57f
 	checkday
 	iftrue UnknownScript_0xbd5c3
 
@@ -835,13 +862,13 @@
 	farjump UnknownScript_0xa0a5a
 
 UnknownScript_0xbd58d:
-	trainertotext PICNICKER, 1, $0
+	trainertotext PICNICKER, LIZ1, $0
 	farscall UnknownScript_0xbde45
 	if_equal $0, UnknownScript_0xbd5d0
 	farscall UnknownScript_0xbe41e
 	checkflag ENGINE_LIZ
 	iftrue UnknownScript_0xbd5a9
-	checkflag ENGINE_90
+	checkflag ENGINE_LIZ_THURSDAY_AFTERNOON
 	iftrue UnknownScript_0xbd5a9
 
 UnknownScript_0xbd5a9:
@@ -856,7 +883,7 @@
 	farjump UnknownScript_0xa0017
 
 UnknownScript_0xbd5c3:
-	setflag ENGINE_90
+	setflag ENGINE_LIZ_THURSDAY_AFTERNOON
 
 UnknownScript_0xbd5c6:
 	displaylocation ROUTE_32, $2
@@ -879,53 +906,55 @@
 	if_equal $8, UnknownScript_0xbd62a
 
 UnknownScript_0xbd5fa:
-	trainerclassname $1b, $1
+	trainerclassname COOLTRAINERM, $1
 	jump UnknownScript_0xbd630
 
 UnknownScript_0xbd600:
-	trainerclassname $1d, $1
+	trainerclassname BEAUTY, $1
 	jump UnknownScript_0xbd630
 
 UnknownScript_0xbd606:
-	trainerclassname $1f, $1
+	trainerclassname GRUNTM, $1
 	jump UnknownScript_0xbd630
 
 UnknownScript_0xbd60c:
-	trainerclassname $22, $1
+	trainerclassname TEACHER, $1
 	jump UnknownScript_0xbd630
 
 UnknownScript_0xbd612:
-	trainerclassname $27, $1
+	trainerclassname SWIMMERF, $1
 	jump UnknownScript_0xbd630
 
 UnknownScript_0xbd618:
-	trainerclassname $3c, $1
+	trainerclassname KIMONO_GIRL, $1
 	jump UnknownScript_0xbd630
 
 UnknownScript_0xbd61e:
-	trainerclassname $21, $1
+	trainerclassname SKIER, $1
 	jump UnknownScript_0xbd630
 
 UnknownScript_0xbd624:
-	trainerclassname $39, $1
+	trainerclassname MEDIUM, $1
 	jump UnknownScript_0xbd630
 
 UnknownScript_0xbd62a:
-	trainerclassname $3b, $1
+	trainerclassname POKEFANM, $1
 	jump UnknownScript_0xbd630
 
 UnknownScript_0xbd630:
 	farjump UnknownScript_0xa06da
 
+; Anthony
+
 UnknownScript_0xbd634:
-	trainertotext HIKER, 5, $0
+	trainertotext HIKER, ANTHONY2, $0
 	checkflag ENGINE_ANTHONY
 	iftrue UnknownScript_0xbd65d
 	farscall UnknownScript_0xbde4e
-	checkflag ENGINE_91
+	checkflag ENGINE_ANTHONY_FRIDAY_NIGHT
 	iftrue UnknownScript_0xbd653
-	checkcode $b
-	if_not_equal $5, UnknownScript_0xbd653
+	checkcode VAR_WEEKDAY
+	if_not_equal FRIDAY, UnknownScript_0xbd653
 	checknite
 	iftrue UnknownScript_0xbd699
 
@@ -943,13 +972,13 @@
 	farjump UnknownScript_0xa0afa
 
 UnknownScript_0xbd66b:
-	trainertotext HIKER, 5, $0
+	trainertotext HIKER, ANTHONY2, $0
 	farscall UnknownScript_0xbe1b6
 	checkflag ENGINE_FLYPOINT_GOLDENROD
 	iffalse UnknownScript_0xbd68d
 	checkflag ENGINE_ANTHONY
 	iftrue UnknownScript_0xbd68d
-	checkflag ENGINE_91
+	checkflag ENGINE_ANTHONY_FRIDAY_NIGHT
 	iftrue UnknownScript_0xbd68d
 	farscall UnknownScript_0xbde3f
 	if_equal $0, UnknownScript_0xbd69c
@@ -960,7 +989,7 @@
 	farjump UnknownScript_0xa0000
 
 UnknownScript_0xbd699:
-	setflag ENGINE_91
+	setflag ENGINE_ANTHONY_FRIDAY_NIGHT
 
 UnknownScript_0xbd69c:
 	displaylocation ROUTE_33, $2
@@ -979,15 +1008,17 @@
 UnknownScript_0xbd6bd:
 	farjump UnknownScript_0xa0000
 
+; Todd
+
 UnknownScript_0xbd6c1:
-	trainertotext CAMPER, 2, $0
+	trainertotext CAMPER, TODD1, $0
 	checkflag ENGINE_TODD
 	iftrue UnknownScript_0xbd6ea
 	farscall UnknownScript_0xbde4e
-	checkflag ENGINE_92
+	checkflag ENGINE_TODD_SATURDAY_MORNING
 	iftrue UnknownScript_0xbd6e0
-	checkcode $b
-	if_not_equal $6, UnknownScript_0xbd6e0
+	checkcode VAR_WEEKDAY
+	if_not_equal SATURDAY, UnknownScript_0xbd6e0
 	checkmorn
 	iftrue UnknownScript_0xbd72b
 
@@ -1004,11 +1035,11 @@
 	farjump UnknownScript_0xa0b04
 
 UnknownScript_0xbd6f5:
-	trainertotext CAMPER, 2, $0
+	trainertotext CAMPER, TODD1, $0
 	farscall UnknownScript_0xbe1b6
 	checkflag ENGINE_TODD
 	iftrue UnknownScript_0xbd717
-	checkflag ENGINE_92
+	checkflag ENGINE_TODD_SATURDAY_MORNING
 	iftrue UnknownScript_0xbd717
 	checkflag ENGINE_FLYPOINT_GOLDENROD
 	iffalse UnknownScript_0xbd71f
@@ -1025,7 +1056,7 @@
 	farjump UnknownScript_0xa0000
 
 UnknownScript_0xbd72b:
-	setflag ENGINE_92
+	setflag ENGINE_TODD_SATURDAY_MORNING
 
 UnknownScript_0xbd72e:
 	displaylocation ROUTE_34, $2
@@ -1039,22 +1070,24 @@
 	setflag ENGINE_GOLDENROD_DEPT_STORE_SALE_IS_ON
 	farjump UnknownScript_0xa0644
 
+; Gina
+
 UnknownScript_0xbd743:
-	trainertotext PICNICKER, 2, $0
+	trainertotext PICNICKER, GINA1, $0
 	checkflag ENGINE_GINA
 	iftrue UnknownScript_0xbd776
 	farscall UnknownScript_0xbe0b6
-	checkflag ENGINE_93
+	checkflag ENGINE_GINA_SUNDAY_AFTERNOON
 	iftrue UnknownScript_0xbd768
 	checkflag ENGINE_GINA_HAS_LEAF_STONE
 	iftrue UnknownScript_0xbd77d
-	checkcode $b
-	if_not_equal $0, UnknownScript_0xbd768
+	checkcode VAR_WEEKDAY
+	if_not_equal SUNDAY, UnknownScript_0xbd768
 	checkday
 	iftrue UnknownScript_0xbd7cc
 
 UnknownScript_0xbd768:
-	checkflag ENGINE_BIKE_SHOP_CALL_ENABLED
+	checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
 	iftrue UnknownScript_0xbd772
 	farjump UnknownScript_0xa0960
 
@@ -1070,17 +1103,17 @@
 	farjump UnknownScript_0xa0abd
 
 UnknownScript_0xbd784:
-	trainertotext PICNICKER, 2, $0
+	trainertotext PICNICKER, GINA1, $0
 	farscall UnknownScript_0xbe41e
-	checkflag ENGINE_BIKE_SHOP_CALL_ENABLED
+	checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
 	iftrue UnknownScript_0xbd7d9
 	checkflag ENGINE_GINA
 	iftrue UnknownScript_0xbd7c8
-	checkflag ENGINE_93
+	checkflag ENGINE_GINA_SUNDAY_AFTERNOON
 	iftrue UnknownScript_0xbd7c8
 	checkflag ENGINE_GINA_HAS_LEAF_STONE
 	iftrue UnknownScript_0xbd7c8
-	checkevent $0100
+	checkevent EVENT_GINA_GAVE_LEAF_STONE
 	iftrue UnknownScript_0xbd7b2
 	farscall UnknownScript_0xbde3f
 	if_equal $0, UnknownScript_0xbd7dd
@@ -1097,7 +1130,7 @@
 	farjump UnknownScript_0xa0017
 
 UnknownScript_0xbd7cc:
-	setflag ENGINE_93
+	setflag ENGINE_GINA_SUNDAY_AFTERNOON
 
 UnknownScript_0xbd7cf:
 	displaylocation ROUTE_34, $2
@@ -1112,10 +1145,12 @@
 	displaylocation ROUTE_34, $2
 	farjump UnknownScript_0xa061e
 
+; Irwin
+
 UnknownScript_0xbd7e7:
-	trainertotext JUGGLER, 1, $0
+	trainertotext JUGGLER, IRWIN1, $0
 	farscall UnknownScript_0xbde4e
-	checkflag ENGINE_BIKE_SHOP_CALL_ENABLED
+	checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
 	iftrue UnknownScript_0xbd7f9
 	farjump UnknownScript_0xa09c8
 
@@ -1123,9 +1158,9 @@
 	farjump UnknownScript_0xa05be
 
 UnknownScript_0xbd7fd:
-	trainertotext JUGGLER, 1, $0
+	trainertotext JUGGLER, IRWIN1, $0
 	farscall UnknownScript_0xbe1b6
-	checkflag ENGINE_BIKE_SHOP_CALL_ENABLED
+	checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
 	iftrue UnknownScript_0xbd80f
 	farjump UnknownScript_0xa0848
 
@@ -1132,15 +1167,17 @@
 UnknownScript_0xbd80f:
 	farjump UnknownScript_0xa05be
 
+; Arnie
+
 UnknownScript_0xbd813:
-	trainertotext BUG_CATCHER, 8, $0
+	trainertotext BUG_CATCHER, ARNIE1, $0
 	checkflag ENGINE_ARNIE
 	iftrue UnknownScript_0xbd83c
 	farscall UnknownScript_0xbde4e
-	checkflag ENGINE_94
+	checkflag ENGINE_ARNIE_TUESDAY_MORNING
 	iftrue UnknownScript_0xbd832
-	checkcode $b
-	if_not_equal $2, UnknownScript_0xbd832
+	checkcode VAR_WEEKDAY
+	if_not_equal TUESDAY, UnknownScript_0xbd832
 	checkmorn
 	iftrue UnknownScript_0xbd87a
 
@@ -1158,11 +1195,11 @@
 	farjump UnknownScript_0xa0aff
 
 UnknownScript_0xbd84a:
-	trainertotext BUG_CATCHER, 8, $0
+	trainertotext BUG_CATCHER, ARNIE1, $0
 	farscall UnknownScript_0xbe1b6
 	checkflag ENGINE_ARNIE
 	iftrue UnknownScript_0xbd866
-	checkflag ENGINE_94
+	checkflag ENGINE_ARNIE_TUESDAY_MORNING
 	iftrue UnknownScript_0xbd866
 	farscall UnknownScript_0xbde3f
 	if_equal $0, UnknownScript_0xbd87d
@@ -1175,7 +1212,7 @@
 	farjump UnknownScript_0xa0000
 
 UnknownScript_0xbd87a:
-	setflag ENGINE_94
+	setflag ENGINE_ARNIE_TUESDAY_MORNING
 
 UnknownScript_0xbd87d:
 	displaylocation ROUTE_35, $2
@@ -1197,17 +1234,19 @@
 UnknownScript_0xbd8a2:
 	farjump UnknownScript_0xa0000
 
+; Alan
+
 UnknownScript_0xbd8a6:
-	trainertotext SCHOOLBOY, 3, $0
+	trainertotext SCHOOLBOY, ALAN1, $0
 	checkflag ENGINE_ALAN
 	iftrue UnknownScript_0xbd8cf
 	farscall UnknownScript_0xbde4e
-	checkflag ENGINE_95
+	checkflag ENGINE_ALAN_WEDNESDAY_AFTERNOON
 	iftrue UnknownScript_0xbd8cb
 	checkflag ENGINE_ALAN_HAS_FIRE_STONE
 	iftrue UnknownScript_0xbd8d6
-	checkcode $b
-	if_not_equal $3, UnknownScript_0xbd8cb
+	checkcode VAR_WEEKDAY
+	if_not_equal WEDNESDAY, UnknownScript_0xbd8cb
 	checkday
 	iftrue UnknownScript_0xbd919
 
@@ -1223,17 +1262,17 @@
 	farjump UnknownScript_0xa0ac5
 
 UnknownScript_0xbd8dd:
-	trainertotext SCHOOLBOY, 3, $0
+	trainertotext SCHOOLBOY, ALAN1, $0
 	farscall UnknownScript_0xbe1b6
 	checkflag ENGINE_ALAN
 	iftrue UnknownScript_0xbd915
-	checkflag ENGINE_95
+	checkflag ENGINE_ALAN_WEDNESDAY_AFTERNOON
 	iftrue UnknownScript_0xbd915
 	checkflag ENGINE_ALAN_HAS_FIRE_STONE
 	iftrue UnknownScript_0xbd915
 	farscall UnknownScript_0xbde42
 	if_equal $0, UnknownScript_0xbd91c
-	checkevent $0101
+	checkevent EVENT_ALAN_GAVE_FIRE_STONE
 	iftrue UnknownScript_0xbd90d
 	farscall UnknownScript_0xbde3f
 	if_equal $0, UnknownScript_0xbd926
@@ -1246,7 +1285,7 @@
 	farjump UnknownScript_0xa0000
 
 UnknownScript_0xbd919:
-	setflag ENGINE_95
+	setflag ENGINE_ALAN_WEDNESDAY_AFTERNOON
 
 UnknownScript_0xbd91c:
 	displaylocation ROUTE_36, $2
@@ -1258,17 +1297,19 @@
 	displaylocation ROUTE_36, $2
 	farjump UnknownScript_0xa05e6
 
+; Dana
+
 UnknownScript_0xbd930:
-	trainertotext LASS, 10, $0
+	trainertotext LASS, DANA1, $0
 	checkflag ENGINE_DANA
 	iftrue UnknownScript_0xbd959
 	farscall UnknownScript_0xbe0b6
-	checkflag ENGINE_96
+	checkflag ENGINE_DANA_THURSDAY_NIGHT
 	iftrue UnknownScript_0xbd955
-	checkflag ENGINE_LIZ_HAS_THUNDERSTONE
+	checkflag ENGINE_DANA_HAS_THUNDERSTONE
 	iftrue UnknownScript_0xbd960
-	checkcode $b
-	if_not_equal $4, UnknownScript_0xbd955
+	checkcode VAR_WEEKDAY
+	if_not_equal THURSDAY, UnknownScript_0xbd955
 	checknite
 	iftrue UnknownScript_0xbd9ab
 
@@ -1284,17 +1325,17 @@
 	farjump UnknownScript_0xa0acd
 
 UnknownScript_0xbd967:
-	trainertotext LASS, 10, $0
+	trainertotext LASS, DANA1, $0
 	farscall UnknownScript_0xbe41e
 	checkflag ENGINE_DANA
 	iftrue UnknownScript_0xbd99f
-	checkflag ENGINE_96
+	checkflag ENGINE_DANA_THURSDAY_NIGHT
 	iftrue UnknownScript_0xbd99f
-	checkflag ENGINE_LIZ_HAS_THUNDERSTONE
+	checkflag ENGINE_DANA_HAS_THUNDERSTONE
 	iftrue UnknownScript_0xbd99f
 	farscall UnknownScript_0xbde42
 	if_equal $0, UnknownScript_0xbd9ae
-	checkevent $0102
+	checkevent EVENT_DANA_GAVE_THUNDERSTONE
 	iftrue UnknownScript_0xbd997
 	farscall UnknownScript_0xbde3f
 	if_equal $0, UnknownScript_0xbd9bc
@@ -1309,7 +1350,7 @@
 	farjump UnknownScript_0xa0017
 
 UnknownScript_0xbd9ab:
-	setflag ENGINE_96
+	setflag ENGINE_DANA_THURSDAY_NIGHT
 
 UnknownScript_0xbd9ae:
 	displaylocation ROUTE_38, $2
@@ -1320,19 +1361,21 @@
 	farjump UnknownScript_0xa0592
 
 UnknownScript_0xbd9bc:
-	setflag ENGINE_LIZ_HAS_THUNDERSTONE
+	setflag ENGINE_DANA_HAS_THUNDERSTONE
 	displaylocation ROUTE_38, $2
 	farjump UnknownScript_0xa061e
 
+; Chad
+
 UnknownScript_0xbd9c6:
-	trainertotext SCHOOLBOY, 10, $0
+	trainertotext SCHOOLBOY, CHAD1, $0
 	checkflag ENGINE_CHAD
 	iftrue UnknownScript_0xbd9e9
 	farscall UnknownScript_0xbde4e
-	checkflag ENGINE_97
+	checkflag ENGINE_CHAD_FRIDAY_MORNING
 	iftrue UnknownScript_0xbd9e5
-	checkcode $b
-	if_not_equal $5, UnknownScript_0xbd9e5
+	checkcode VAR_WEEKDAY
+	if_not_equal FRIDAY, UnknownScript_0xbd9e5
 	checkmorn
 	iftrue UnknownScript_0xbda20
 
@@ -1344,13 +1387,13 @@
 	farjump UnknownScript_0xa0a7d
 
 UnknownScript_0xbd9f0:
-	trainertotext SCHOOLBOY, 10, $0
+	trainertotext SCHOOLBOY, CHAD1, $0
 	farscall UnknownScript_0xbe1b6
 	farscall UnknownScript_0xbde3f
 	if_equal $0, UnknownScript_0xbda31
 	checkflag ENGINE_CHAD
 	iftrue UnknownScript_0xbda14
-	checkflag ENGINE_97
+	checkflag ENGINE_CHAD_FRIDAY_MORNING
 	iftrue UnknownScript_0xbda14
 	farscall UnknownScript_0xbde3f
 	if_equal $0, UnknownScript_0xbda23
@@ -1361,7 +1404,7 @@
 	farjump UnknownScript_0xa0000
 
 UnknownScript_0xbda20:
-	setflag ENGINE_97
+	setflag ENGINE_CHAD_FRIDAY_MORNING
 
 UnknownScript_0xbda23:
 	displaylocation ROUTE_38, $2
@@ -1375,18 +1418,18 @@
 	farjump UnknownScript_0xa0754
 
 UnknownScript_0xbda35:
-	trainertotext POKEFANM, 2, $0
+	trainertotext POKEFANM, DEREK1, $0
 	farscall UnknownScript_0xbde4e
 	checkflag ENGINE_DEREK_HAS_NUGGET
 	iftrue UnknownScript_0xbda67
 	farscall UnknownScript_0xbde3f
 	if_equal $0, UnknownScript_0xbda5f
-	checkflag ENGINE_51
+	checkflag ENGINE_DAILY_BUG_CONTEST
 	iftrue UnknownScript_0xbda5f
-	checkcode $b
-	if_equal $2, UnknownScript_0xbda63
-	if_equal $4, UnknownScript_0xbda63
-	if_equal $6, UnknownScript_0xbda63
+	checkcode VAR_WEEKDAY
+	if_equal TUESDAY, UnknownScript_0xbda63
+	if_equal THURSDAY, UnknownScript_0xbda63
+	if_equal SATURDAY, UnknownScript_0xbda63
 
 UnknownScript_0xbda5f:
 	farjump UnknownScript_0xa0988
@@ -1399,16 +1442,16 @@
 	farjump UnknownScript_0xa0ad5
 
 UnknownScript_0xbda6e:
-	trainertotext POKEFANM, 2, $0
+	trainertotext POKEFANM, DEREK1, $0
 	farscall UnknownScript_0xbe1b6
 	farscall UnknownScript_0xbde3f
 	if_equal $0, UnknownScript_0xbda92
-	checkflag ENGINE_51
+	checkflag ENGINE_DAILY_BUG_CONTEST
 	iftrue UnknownScript_0xbda92
-	checkcode $b
-	if_equal $2, UnknownScript_0xbda9e
-	if_equal $4, UnknownScript_0xbda9e
-	if_equal $6, UnknownScript_0xbda9e
+	checkcode VAR_WEEKDAY
+	if_equal TUESDAY, UnknownScript_0xbda9e
+	if_equal THURSDAY, UnknownScript_0xbda9e
+	if_equal SATURDAY, UnknownScript_0xbda9e
 
 UnknownScript_0xbda92:
 	farscall UnknownScript_0xbde45
@@ -1424,16 +1467,16 @@
 	farjump UnknownScript_0xa05e6
 
 UnknownScript_0xbdaac:
-	trainertotext FISHER, 7, $0
+	trainertotext FISHER, TULLY1, $0
 	checkflag ENGINE_TULLY
 	iftrue UnknownScript_0xbdad5
 	farscall UnknownScript_0xbde4e
-	checkflag ENGINE_98
+	checkflag ENGINE_TULLY_SUNDAY_NIGHT
 	iftrue UnknownScript_0xbdad1
 	checkflag ENGINE_TULLY_HAS_WATER_STONE
 	iftrue UnknownScript_0xbdadc
-	checkcode $b
-	if_not_equal $0, UnknownScript_0xbdad1
+	checkcode VAR_WEEKDAY
+	if_not_equal SUNDAY, UnknownScript_0xbdad1
 	checknite
 	iftrue UnknownScript_0xbdb1f
 
@@ -1449,17 +1492,17 @@
 	farjump UnknownScript_0xa0add
 
 UnknownScript_0xbdae3:
-	trainertotext FISHER, 7, $0
+	trainertotext FISHER, TULLY1, $0
 	farscall UnknownScript_0xbe1b6
 	checkflag ENGINE_TULLY
 	iftrue UnknownScript_0xbdb1b
-	checkflag ENGINE_98
+	checkflag ENGINE_TULLY_SUNDAY_NIGHT
 	iftrue UnknownScript_0xbdb1b
 	checkflag ENGINE_TULLY_HAS_WATER_STONE
 	iftrue UnknownScript_0xbdb1b
 	farscall UnknownScript_0xbde42
 	if_equal $0, UnknownScript_0xbdb22
-	checkevent $0103
+	checkevent EVENT_TULLY_GAVE_WATER_STONE
 	iftrue UnknownScript_0xbdb13
 	farscall UnknownScript_0xbde3f
 	if_equal $0, UnknownScript_0xbdb2c
@@ -1472,7 +1515,7 @@
 	farjump UnknownScript_0xa0000
 
 UnknownScript_0xbdb1f:
-	setflag ENGINE_98
+	setflag ENGINE_TULLY_SUNDAY_NIGHT
 
 UnknownScript_0xbdb22:
 	displaylocation ROUTE_42, $2
@@ -1485,14 +1528,14 @@
 	farjump UnknownScript_0xa05e6
 
 UnknownScript_0xbdb36:
-	trainertotext POKEMANIAC, 6, $0
+	trainertotext POKEMANIAC, BRENT1, $0
 	checkflag ENGINE_BRENT
 	iftrue UnknownScript_0xbdb59
 	farscall UnknownScript_0xbde4e
-	checkflag ENGINE_99
+	checkflag ENGINE_BRENT_MONDAY_MORNING
 	iftrue UnknownScript_0xbdb55
-	checkcode $b
-	if_not_equal $1, UnknownScript_0xbdb55
+	checkcode VAR_WEEKDAY
+	if_not_equal MONDAY, UnknownScript_0xbdb55
 	checkmorn
 	iftrue UnknownScript_0xbdb88
 
@@ -1504,13 +1547,13 @@
 	farjump UnknownScript_0xa0a87
 
 UnknownScript_0xbdb60:
-	trainertotext POKEMANIAC, 6, $0
+	trainertotext POKEMANIAC, BRENT1, $0
 	farscall UnknownScript_0xbe1b6
 	farscall UnknownScript_0xbde3f
 	if_equal $0, UnknownScript_0xbdb95
 	checkflag ENGINE_BRENT
 	iftrue UnknownScript_0xbdb84
-	checkflag ENGINE_99
+	checkflag ENGINE_BRENT_MONDAY_MORNING
 	iftrue UnknownScript_0xbdb84
 	farscall UnknownScript_0xbde3f
 	if_equal $0, UnknownScript_0xbdb8b
@@ -1519,7 +1562,7 @@
 	farjump UnknownScript_0xa0000
 
 UnknownScript_0xbdb88:
-	setflag ENGINE_99
+	setflag ENGINE_BRENT_MONDAY_MORNING
 
 UnknownScript_0xbdb8b:
 	displaylocation ROUTE_43, $2
@@ -1530,16 +1573,16 @@
 	farjump UnknownScript_0xa07ce
 
 UnknownScript_0xbdb99:
-	trainertotext PICNICKER, 20, $0
+	trainertotext PICNICKER, TIFFANY3, $0
 	checkflag ENGINE_TIFFANY
 	iftrue UnknownScript_0xbdbc2
 	farscall UnknownScript_0xbe0b6
-	checkflag ENGINE_9A
+	checkflag ENGINE_TIFFANY_TUESDAY_AFTERNOON
 	iftrue UnknownScript_0xbdbbe
 	checkflag ENGINE_TIFFANY_HAS_PINK_BOW
 	iftrue UnknownScript_0xbdbc9
-	checkcode $b
-	if_not_equal $2, UnknownScript_0xbdbbe
+	checkcode VAR_WEEKDAY
+	if_not_equal TUESDAY, UnknownScript_0xbdbbe
 	checkday
 	iftrue UnknownScript_0xbdc14
 
@@ -1555,19 +1598,19 @@
 	farjump UnknownScript_0xa0ae5
 
 UnknownScript_0xbdbd0:
-	trainertotext PICNICKER, 20, $0
+	trainertotext PICNICKER, TIFFANY3, $0
 	farscall UnknownScript_0xbde45
 	if_equal $0, UnknownScript_0xbdc21
 	farscall UnknownScript_0xbe41e
 	checkflag ENGINE_TIFFANY
 	iftrue UnknownScript_0xbdc10
-	checkflag ENGINE_9A
+	checkflag ENGINE_TIFFANY_TUESDAY_AFTERNOON
 	iftrue UnknownScript_0xbdc10
 	checkflag ENGINE_TIFFANY_HAS_PINK_BOW
 	iftrue UnknownScript_0xbdc10
 	farscall UnknownScript_0xbde42
 	if_equal $0, UnknownScript_0xbdc17
-	checkevent $0104
+	checkevent EVENT_TIFFANY_GAVE_PINK_BOW
 	iftrue UnknownScript_0xbdc08
 	farscall UnknownScript_0xbde3f
 	if_equal $0, UnknownScript_0xbdc69
@@ -1580,7 +1623,7 @@
 	farjump UnknownScript_0xa0017
 
 UnknownScript_0xbdc14:
-	setflag ENGINE_9A
+	setflag ENGINE_TIFFANY_TUESDAY_AFTERNOON
 
 UnknownScript_0xbdc17:
 	displaylocation ROUTE_43, $2
@@ -1628,15 +1671,17 @@
 	displaylocation ROUTE_43, $2
 	farjump UnknownScript_0xa061e
 
+; Vance
+
 UnknownScript_0xbdc73:
-	trainertotext BIRD_KEEPER, 7, $0
+	trainertotext BIRD_KEEPER, VANCE1, $0
 	checkflag ENGINE_VANCE
 	iftrue UnknownScript_0xbdc96
 	farscall UnknownScript_0xbde4e
-	checkflag ENGINE_9B
+	checkflag ENGINE_VANCE_WEDNESDAY_NIGHT
 	iftrue UnknownScript_0xbdc92
-	checkcode $b
-	if_not_equal $3, UnknownScript_0xbdc92
+	checkcode VAR_WEEKDAY
+	if_not_equal WEDNESDAY, UnknownScript_0xbdc92
 	checknite
 	iftrue UnknownScript_0xbdcc1
 
@@ -1648,11 +1693,11 @@
 	farjump UnknownScript_0xa0a91
 
 UnknownScript_0xbdc9d:
-	trainertotext BIRD_KEEPER, 7, $0
+	trainertotext BIRD_KEEPER, VANCE1, $0
 	farscall UnknownScript_0xbe1b6
 	checkflag ENGINE_VANCE
 	iftrue UnknownScript_0xbdcbd
-	checkflag ENGINE_9B
+	checkflag ENGINE_VANCE_WEDNESDAY_NIGHT
 	iftrue UnknownScript_0xbdcbd
 	farscall UnknownScript_0xbde42
 	if_equal $0, UnknownScript_0xbdcc4
@@ -1662,7 +1707,7 @@
 	farjump UnknownScript_0xa0000
 
 UnknownScript_0xbdcc1:
-	setflag ENGINE_9B
+	setflag ENGINE_VANCE_WEDNESDAY_NIGHT
 
 UnknownScript_0xbdcc4:
 	displaylocation ROUTE_44, $2
@@ -1670,16 +1715,16 @@
 	farjump UnknownScript_0xa0376
 
 UnknownScript_0xbdcce:
-	trainertotext FISHER, 10, $0
+	trainertotext FISHER, WILTON1, $0
 	checkflag ENGINE_WILTON
 	iftrue UnknownScript_0xbdcf7
 	farscall UnknownScript_0xbde4e
-	checkflag ENGINE_9C
+	checkflag ENGINE_WILTON_THRUSDAY_MORNING
 	iftrue UnknownScript_0xbdcf3
 	checkflag ENGINE_WILTON_HAS_ITEM
 	iftrue UnknownScript_0xbdcfe
-	checkcode $b
-	if_not_equal $4, UnknownScript_0xbdcf3
+	checkcode VAR_WEEKDAY
+	if_not_equal THURSDAY, UnknownScript_0xbdcf3
 	checkmorn
 	iftrue UnknownScript_0xbdd33
 
@@ -1695,11 +1740,11 @@
 	farjump UnknownScript_0xa0aed
 
 UnknownScript_0xbdd05:
-	trainertotext FISHER, 10, $0
+	trainertotext FISHER, WILTON1, $0
 	farscall UnknownScript_0xbe1b6
 	checkflag ENGINE_WILTON
 	iftrue UnknownScript_0xbdd2f
-	checkflag ENGINE_9C
+	checkflag ENGINE_WILTON_THRUSDAY_MORNING
 	iftrue UnknownScript_0xbdd2f
 	checkflag ENGINE_WILTON_HAS_ITEM
 	iftrue UnknownScript_0xbdd2f
@@ -1712,7 +1757,7 @@
 	farjump UnknownScript_0xa0000
 
 UnknownScript_0xbdd33:
-	setflag ENGINE_9C
+	setflag ENGINE_WILTON_THRUSDAY_MORNING
 
 UnknownScript_0xbdd36:
 	displaylocation ROUTE_44, $2
@@ -1745,25 +1790,29 @@
 UnknownScript_0xbdd6d:
 	farjump UnknownScript_0xa05e6
 
+; Kenji
+
 UnknownScript_0xbdd71:
-	trainertotext BLACKBELT_T, 8, $0
+	trainertotext BLACKBELT_T, KENJI3, $0
 	farscall UnknownScript_0xbde4e
 	farjump UnknownScript_0xa09ee
 
 UnknownScript_0xbdd7d:
-	trainertotext BLACKBELT_T, 8, $0
+	trainertotext BLACKBELT_T, KENJI3, $0
 	farscall UnknownScript_0xbe1b6
 	farjump UnknownScript_0xa064c
 
+; Parry
+
 UnknownScript_0xbdd89:
-	trainertotext HIKER, 9, $0
+	trainertotext HIKER, PARRY1, $0
 	checkflag ENGINE_PARRY
 	iftrue UnknownScript_0xbddac
 	farscall UnknownScript_0xbde4e
-	checkflag ENGINE_9D
+	checkflag ENGINE_PARRY_FRIDAY_AFTERNOON
 	iftrue UnknownScript_0xbdda8
-	checkcode $b
-	if_not_equal $5, UnknownScript_0xbdda8
+	checkcode VAR_WEEKDAY
+	if_not_equal FRIDAY, UnknownScript_0xbdda8
 	checkday
 	iftrue UnknownScript_0xbddd7
 
@@ -1775,11 +1824,11 @@
 	farjump UnknownScript_0xa0a9b
 
 UnknownScript_0xbddb3:
-	trainertotext HIKER, 9, $0
+	trainertotext HIKER, PARRY1, $0
 	farscall UnknownScript_0xbe1b6
 	checkflag ENGINE_PARRY
 	iftrue UnknownScript_0xbddd3
-	checkflag ENGINE_9D
+	checkflag ENGINE_PARRY_FRIDAY_AFTERNOON
 	iftrue UnknownScript_0xbddd3
 	farscall UnknownScript_0xbde3f
 	if_equal $0, UnknownScript_0xbddda
@@ -1789,7 +1838,7 @@
 	farjump UnknownScript_0xa0000
 
 UnknownScript_0xbddd7:
-	setflag ENGINE_9D
+	setflag ENGINE_PARRY_FRIDAY_AFTERNOON
 
 UnknownScript_0xbddda:
 	displaylocation ROUTE_45, $2
@@ -1796,15 +1845,17 @@
 	setflag ENGINE_PARRY
 	farjump UnknownScript_0xa0376
 
+; Erin
+
 UnknownScript_0xbdde4:
-	trainertotext PICNICKER, 10, $0
+	trainertotext PICNICKER, ERIN1, $0
 	checkflag ENGINE_ERIN
 	iftrue UnknownScript_0xbde07
 	farscall UnknownScript_0xbe0b6
-	checkflag ENGINE_9E
+	checkflag ENGINE_ERIN_SATURDAY_NIGHT
 	iftrue UnknownScript_0xbde03
-	checkcode $b
-	if_not_equal $6, UnknownScript_0xbde03
+	checkcode VAR_WEEKDAY
+	if_not_equal SATURDAY, UnknownScript_0xbde03
 	checknite
 	iftrue UnknownScript_0xbde32
 
@@ -1816,11 +1867,11 @@
 	farjump UnknownScript_0xa0aa0
 
 UnknownScript_0xbde0e:
-	trainertotext PICNICKER, 10, $0
+	trainertotext PICNICKER, ERIN1, $0
 	farscall UnknownScript_0xbe41e
 	checkflag ENGINE_ERIN
 	iftrue UnknownScript_0xbde2e
-	checkflag ENGINE_9E
+	checkflag ENGINE_ERIN_SATURDAY_NIGHT
 	iftrue UnknownScript_0xbde2e
 	farscall UnknownScript_0xbde42
 	if_equal $0, UnknownScript_0xbde35
@@ -1830,7 +1881,7 @@
 	farjump UnknownScript_0xa0017
 
 UnknownScript_0xbde32:
-	setflag ENGINE_9E
+	setflag ENGINE_ERIN_SATURDAY_NIGHT
 
 UnknownScript_0xbde35:
 	displaylocation ROUTE_46, $2
@@ -1862,27 +1913,27 @@
 	iftrue UnknownScript_0xbdf22
 	checknite
 	iftrue UnknownScript_0xbdfec
-	checkcode $17
-	if_equal $5, UnknownScript_0xbdeaa
-	if_equal $7, UnknownScript_0xbdeb0
-	if_equal $b, UnknownScript_0xbdeb6
-	if_equal $d, UnknownScript_0xbdebc
-	if_equal $f, UnknownScript_0xbdec2
-	if_equal $10, UnknownScript_0xbdec8
-	if_equal $11, UnknownScript_0xbdece
-	if_equal $13, UnknownScript_0xbded4
-	if_equal $14, UnknownScript_0xbdeda
-	if_equal $16, UnknownScript_0xbdee0
-	if_equal $17, UnknownScript_0xbdee6
-	if_equal $18, UnknownScript_0xbdeec
-	if_equal $1b, UnknownScript_0xbdef2
-	if_equal $1c, UnknownScript_0xbdef8
-	if_equal $1d, UnknownScript_0xbdefe
-	if_equal $1e, UnknownScript_0xbdf04
-	if_equal $20, UnknownScript_0xbdf0a
-	if_equal $21, UnknownScript_0xbdf10
-	if_equal $22, UnknownScript_0xbdf16
-	if_equal $23, UnknownScript_0xbdf1c
+	checkcode VAR_CALLERID
+	if_equal PHONE_SCHOOLBOY_JACK,       UnknownScript_0xbdeaa
+	if_equal PHONE_SAILOR_HUEY,          UnknownScript_0xbdeb0
+	if_equal PHONE_COOLTRAINERM_GAVEN,   UnknownScript_0xbdeb6
+	if_equal PHONE_BIRDKEEPER_JOSE,      UnknownScript_0xbdebc
+	if_equal PHONE_YOUNGSTER_JOEY,       UnknownScript_0xbdec2
+	if_equal PHONE_BUG_CATCHER_WADE,     UnknownScript_0xbdec8
+	if_equal PHONE_FISHER_RALPH,         UnknownScript_0xbdece
+	if_equal PHONE_HIKER_ANTHONY,        UnknownScript_0xbded4
+	if_equal PHONE_CAMPER_TODD,          UnknownScript_0xbdeda
+	if_equal PHONE_JUGGLER_IRWIN,        UnknownScript_0xbdee0
+	if_equal PHONE_BUG_CATCHER_ARNIE,    UnknownScript_0xbdee6
+	if_equal PHONE_SCHOOLBOY_ALAN,       UnknownScript_0xbdeec
+	if_equal PHONE_SCHOOLBOY_CHAD,       UnknownScript_0xbdef2
+	if_equal PHONE_POKEFANM_DEREK,       UnknownScript_0xbdef8
+	if_equal PHONE_FISHER_TULLY,         UnknownScript_0xbdefe
+	if_equal PHONE_POKEMANIAC_BRENT,     UnknownScript_0xbdf04
+	if_equal PHONE_BIRDKEEPER_VANCE,     UnknownScript_0xbdf0a
+	if_equal PHONE_FISHER_WILTON,        UnknownScript_0xbdf10
+	if_equal PHONE_BLACKBELT_KENJI,      UnknownScript_0xbdf16
+	if_equal PHONE_HIKER_PARRY,          UnknownScript_0xbdf1c
 
 UnknownScript_0xbdeaa:
 	farwritetext UnknownText_0x1b4dc5
@@ -1985,27 +2036,27 @@
 	end
 
 UnknownScript_0xbdf22:
-	checkcode $17
-	if_equal $5, UnknownScript_0xbdf74
-	if_equal $7, UnknownScript_0xbdf7a
-	if_equal $b, UnknownScript_0xbdf80
-	if_equal $d, UnknownScript_0xbdf86
-	if_equal $f, UnknownScript_0xbdf8c
-	if_equal $10, UnknownScript_0xbdf92
-	if_equal $11, UnknownScript_0xbdf98
-	if_equal $13, UnknownScript_0xbdf9e
-	if_equal $14, UnknownScript_0xbdfa4
-	if_equal $16, UnknownScript_0xbdfaa
-	if_equal $17, UnknownScript_0xbdfb0
-	if_equal $18, UnknownScript_0xbdfb6
-	if_equal $1b, UnknownScript_0xbdfbc
-	if_equal $1c, UnknownScript_0xbdfc2
-	if_equal $1d, UnknownScript_0xbdfc8
-	if_equal $1e, UnknownScript_0xbdfce
-	if_equal $20, UnknownScript_0xbdfd4
-	if_equal $21, UnknownScript_0xbdfda
-	if_equal $22, UnknownScript_0xbdfe0
-	if_equal $23, UnknownScript_0xbdfe6
+	checkcode VAR_CALLERID
+	if_equal PHONE_SCHOOLBOY_JACK,       UnknownScript_0xbdf74
+	if_equal PHONE_SAILOR_HUEY,          UnknownScript_0xbdf7a
+	if_equal PHONE_COOLTRAINERM_GAVEN,   UnknownScript_0xbdf80
+	if_equal PHONE_BIRDKEEPER_JOSE,      UnknownScript_0xbdf86
+	if_equal PHONE_YOUNGSTER_JOEY,       UnknownScript_0xbdf8c
+	if_equal PHONE_BUG_CATCHER_WADE,     UnknownScript_0xbdf92
+	if_equal PHONE_FISHER_RALPH,         UnknownScript_0xbdf98
+	if_equal PHONE_HIKER_ANTHONY,        UnknownScript_0xbdf9e
+	if_equal PHONE_CAMPER_TODD,          UnknownScript_0xbdfa4
+	if_equal PHONE_JUGGLER_IRWIN,        UnknownScript_0xbdfaa
+	if_equal PHONE_BUG_CATCHER_ARNIE,    UnknownScript_0xbdfb0
+	if_equal PHONE_SCHOOLBOY_ALAN,       UnknownScript_0xbdfb6
+	if_equal PHONE_SCHOOLBOY_CHAD,       UnknownScript_0xbdfbc
+	if_equal PHONE_POKEFANM_DEREK,       UnknownScript_0xbdfc2
+	if_equal PHONE_FISHER_TULLY,         UnknownScript_0xbdfc8
+	if_equal PHONE_POKEMANIAC_BRENT,     UnknownScript_0xbdfce
+	if_equal PHONE_BIRDKEEPER_VANCE,     UnknownScript_0xbdfd4
+	if_equal PHONE_FISHER_WILTON,        UnknownScript_0xbdfda
+	if_equal PHONE_BLACKBELT_KENJI,      UnknownScript_0xbdfe0
+	if_equal PHONE_HIKER_PARRY,          UnknownScript_0xbdfe6
 
 UnknownScript_0xbdf74:
 	farwritetext UnknownText_0x1b4ded
@@ -2108,27 +2159,27 @@
 	end
 
 UnknownScript_0xbdfec:
-	checkcode $17
-	if_equal $5, UnknownScript_0xbe03e
-	if_equal $7, UnknownScript_0xbe044
-	if_equal $b, UnknownScript_0xbe04a
-	if_equal $d, UnknownScript_0xbe050
-	if_equal $f, UnknownScript_0xbe056
-	if_equal $10, UnknownScript_0xbe05c
-	if_equal $11, UnknownScript_0xbe062
-	if_equal $13, UnknownScript_0xbe068
-	if_equal $14, UnknownScript_0xbe06e
-	if_equal $16, UnknownScript_0xbe074
-	if_equal $17, UnknownScript_0xbe07a
-	if_equal $18, UnknownScript_0xbe080
-	if_equal $1b, UnknownScript_0xbe086
-	if_equal $1c, UnknownScript_0xbe08c
-	if_equal $1d, UnknownScript_0xbe092
-	if_equal $1e, UnknownScript_0xbe098
-	if_equal $20, UnknownScript_0xbe09e
-	if_equal $21, UnknownScript_0xbe0a4
-	if_equal $22, UnknownScript_0xbe0aa
-	if_equal $23, UnknownScript_0xbe0b0
+	checkcode VAR_CALLERID
+	if_equal PHONE_SCHOOLBOY_JACK,       UnknownScript_0xbe03e
+	if_equal PHONE_SAILOR_HUEY,          UnknownScript_0xbe044
+	if_equal PHONE_COOLTRAINERM_GAVEN,   UnknownScript_0xbe04a
+	if_equal PHONE_BIRDKEEPER_JOSE,      UnknownScript_0xbe050
+	if_equal PHONE_YOUNGSTER_JOEY,       UnknownScript_0xbe056
+	if_equal PHONE_BUG_CATCHER_WADE,     UnknownScript_0xbe05c
+	if_equal PHONE_FISHER_RALPH,         UnknownScript_0xbe062
+	if_equal PHONE_HIKER_ANTHONY,        UnknownScript_0xbe068
+	if_equal PHONE_CAMPER_TODD,          UnknownScript_0xbe06e
+	if_equal PHONE_JUGGLER_IRWIN,        UnknownScript_0xbe074
+	if_equal PHONE_BUG_CATCHER_ARNIE,    UnknownScript_0xbe07a
+	if_equal PHONE_SCHOOLBOY_ALAN,       UnknownScript_0xbe080
+	if_equal PHONE_SCHOOLBOY_CHAD,       UnknownScript_0xbe086
+	if_equal PHONE_POKEFANM_DEREK,       UnknownScript_0xbe08c
+	if_equal PHONE_FISHER_TULLY,         UnknownScript_0xbe092
+	if_equal PHONE_POKEMANIAC_BRENT,     UnknownScript_0xbe098
+	if_equal PHONE_BIRDKEEPER_VANCE,     UnknownScript_0xbe09e
+	if_equal PHONE_FISHER_WILTON,        UnknownScript_0xbe0a4
+	if_equal PHONE_BLACKBELT_KENJI,      UnknownScript_0xbe0aa
+	if_equal PHONE_HIKER_PARRY,          UnknownScript_0xbe0b0
 
 UnknownScript_0xbe03e:
 	farwritetext UnknownText_0x1b4e16
@@ -2235,15 +2286,15 @@
 	iftrue UnknownScript_0xbe112
 	checknite
 	iftrue UnknownScript_0xbe164
-	checkcode $17
-	if_equal $6, UnknownScript_0xbe0e2
-	if_equal $c, UnknownScript_0xbe0e8
-	if_equal $e, UnknownScript_0xbe0ee
-	if_equal $12, UnknownScript_0xbe0f4
-	if_equal $15, UnknownScript_0xbe0fa
-	if_equal $1a, UnknownScript_0xbe100
-	if_equal $1f, UnknownScript_0xbe106
-	if_equal $24, UnknownScript_0xbe10c
+	checkcode VAR_CALLERID
+	if_equal PHONE_POKEFAN_BEVERLY,       UnknownScript_0xbe0e2
+	if_equal PHONE_COOLTRAINERF_BETH,     UnknownScript_0xbe0e8
+	if_equal PHONE_COOLTRAINERF_REENA,    UnknownScript_0xbe0ee
+	if_equal PHONE_PICNICKER_LIZ,         UnknownScript_0xbe0f4
+	if_equal PHONE_PICNICKER_GINA,        UnknownScript_0xbe0fa
+	if_equal PHONE_LASS_DANA,             UnknownScript_0xbe100
+	if_equal PHONE_PICNICKER_TIFFANY,     UnknownScript_0xbe106
+	if_equal PHONE_PICNICKER_ERIN,        UnknownScript_0xbe10c
 
 UnknownScript_0xbe0e2:
 	farwritetext UnknownText_0x1b4f21
@@ -2286,15 +2337,15 @@
 	end
 
 UnknownScript_0xbe112:
-	checkcode $17
-	if_equal $6, UnknownScript_0xbe134
-	if_equal $c, UnknownScript_0xbe13a
-	if_equal $e, UnknownScript_0xbe140
-	if_equal $12, UnknownScript_0xbe146
-	if_equal $15, UnknownScript_0xbe14c
-	if_equal $1a, UnknownScript_0xbe152
-	if_equal $1f, UnknownScript_0xbe158
-	if_equal $24, UnknownScript_0xbe15e
+	checkcode VAR_CALLERID
+	if_equal PHONE_POKEFAN_BEVERLY,       UnknownScript_0xbe134
+	if_equal PHONE_COOLTRAINERF_BETH,     UnknownScript_0xbe13a
+	if_equal PHONE_COOLTRAINERF_REENA,    UnknownScript_0xbe140
+	if_equal PHONE_PICNICKER_LIZ,         UnknownScript_0xbe146
+	if_equal PHONE_PICNICKER_GINA,        UnknownScript_0xbe14c
+	if_equal PHONE_LASS_DANA,             UnknownScript_0xbe152
+	if_equal PHONE_PICNICKER_TIFFANY,     UnknownScript_0xbe158
+	if_equal PHONE_PICNICKER_ERIN,        UnknownScript_0xbe15e
 
 UnknownScript_0xbe134:
 	farwritetext UnknownText_0x1b4f4d
@@ -2337,15 +2388,15 @@
 	end
 
 UnknownScript_0xbe164:
-	checkcode $17
-	if_equal $6, UnknownScript_0xbe186
-	if_equal $c, UnknownScript_0xbe18c
-	if_equal $e, UnknownScript_0xbe192
-	if_equal $12, UnknownScript_0xbe198
-	if_equal $15, UnknownScript_0xbe19e
-	if_equal $1a, UnknownScript_0xbe1a4
-	if_equal $1f, UnknownScript_0xbe1aa
-	if_equal $24, UnknownScript_0xbe1b0
+	checkcode VAR_CALLERID
+	if_equal PHONE_POKEFAN_BEVERLY,       UnknownScript_0xbe186
+	if_equal PHONE_COOLTRAINERF_BETH,     UnknownScript_0xbe18c
+	if_equal PHONE_COOLTRAINERF_REENA,    UnknownScript_0xbe192
+	if_equal PHONE_PICNICKER_LIZ,         UnknownScript_0xbe198
+	if_equal PHONE_PICNICKER_GINA,        UnknownScript_0xbe19e
+	if_equal PHONE_LASS_DANA,             UnknownScript_0xbe1a4
+	if_equal PHONE_PICNICKER_TIFFANY,     UnknownScript_0xbe1aa
+	if_equal PHONE_PICNICKER_ERIN,        UnknownScript_0xbe1b0
 
 UnknownScript_0xbe186:
 	farwritetext UnknownText_0x1b4f75
@@ -2392,27 +2443,27 @@
 	iftrue UnknownScript_0xbe28a
 	checknite
 	iftrue UnknownScript_0xbe354
-	checkcode $17
-	if_equal $5, UnknownScript_0xbe212
-	if_equal $7, UnknownScript_0xbe218
-	if_equal $b, UnknownScript_0xbe21e
-	if_equal $d, UnknownScript_0xbe224
-	if_equal $f, UnknownScript_0xbe22a
-	if_equal $10, UnknownScript_0xbe230
-	if_equal $11, UnknownScript_0xbe236
-	if_equal $13, UnknownScript_0xbe23c
-	if_equal $14, UnknownScript_0xbe242
-	if_equal $16, UnknownScript_0xbe248
-	if_equal $17, UnknownScript_0xbe24e
-	if_equal $18, UnknownScript_0xbe254
-	if_equal $1b, UnknownScript_0xbe25a
-	if_equal $1c, UnknownScript_0xbe260
-	if_equal $1d, UnknownScript_0xbe266
-	if_equal $1e, UnknownScript_0xbe26c
-	if_equal $20, UnknownScript_0xbe272
-	if_equal $21, UnknownScript_0xbe278
-	if_equal $22, UnknownScript_0xbe27e
-	if_equal $23, UnknownScript_0xbe284
+	checkcode VAR_CALLERID
+	if_equal PHONE_SCHOOLBOY_JACK,       UnknownScript_0xbe212
+	if_equal PHONE_SAILOR_HUEY,          UnknownScript_0xbe218
+	if_equal PHONE_COOLTRAINERM_GAVEN,   UnknownScript_0xbe21e
+	if_equal PHONE_BIRDKEEPER_JOSE,      UnknownScript_0xbe224
+	if_equal PHONE_YOUNGSTER_JOEY,       UnknownScript_0xbe22a
+	if_equal PHONE_BUG_CATCHER_WADE,     UnknownScript_0xbe230
+	if_equal PHONE_FISHER_RALPH,         UnknownScript_0xbe236
+	if_equal PHONE_HIKER_ANTHONY,        UnknownScript_0xbe23c
+	if_equal PHONE_CAMPER_TODD,          UnknownScript_0xbe242
+	if_equal PHONE_JUGGLER_IRWIN,        UnknownScript_0xbe248
+	if_equal PHONE_BUG_CATCHER_ARNIE,    UnknownScript_0xbe24e
+	if_equal PHONE_SCHOOLBOY_ALAN,       UnknownScript_0xbe254
+	if_equal PHONE_SCHOOLBOY_CHAD,       UnknownScript_0xbe25a
+	if_equal PHONE_POKEFANM_DEREK,       UnknownScript_0xbe260
+	if_equal PHONE_FISHER_TULLY,         UnknownScript_0xbe266
+	if_equal PHONE_POKEMANIAC_BRENT,     UnknownScript_0xbe26c
+	if_equal PHONE_BIRDKEEPER_VANCE,     UnknownScript_0xbe272
+	if_equal PHONE_FISHER_WILTON,        UnknownScript_0xbe278
+	if_equal PHONE_BLACKBELT_KENJI,      UnknownScript_0xbe27e
+	if_equal PHONE_HIKER_PARRY,          UnknownScript_0xbe284
 
 UnknownScript_0xbe212:
 	farwritetext UnknownText_0x1b4e3e
@@ -2515,27 +2566,27 @@
 	end
 
 UnknownScript_0xbe28a:
-	checkcode $17
-	if_equal $5, UnknownScript_0xbe2dc
-	if_equal $7, UnknownScript_0xbe2e2
-	if_equal $b, UnknownScript_0xbe2e8
-	if_equal $d, UnknownScript_0xbe2ee
-	if_equal $f, UnknownScript_0xbe2f4
-	if_equal $10, UnknownScript_0xbe2fa
-	if_equal $11, UnknownScript_0xbe300
-	if_equal $13, UnknownScript_0xbe306
-	if_equal $14, UnknownScript_0xbe30c
-	if_equal $16, UnknownScript_0xbe312
-	if_equal $17, UnknownScript_0xbe318
-	if_equal $18, UnknownScript_0xbe31e
-	if_equal $1b, UnknownScript_0xbe324
-	if_equal $1c, UnknownScript_0xbe32a
-	if_equal $1d, UnknownScript_0xbe330
-	if_equal $1e, UnknownScript_0xbe336
-	if_equal $20, UnknownScript_0xbe33c
-	if_equal $21, UnknownScript_0xbe342
-	if_equal $22, UnknownScript_0xbe348
-	if_equal $23, UnknownScript_0xbe34e
+	checkcode VAR_CALLERID
+	if_equal PHONE_SCHOOLBOY_JACK,       UnknownScript_0xbe2dc
+	if_equal PHONE_SAILOR_HUEY,          UnknownScript_0xbe2e2
+	if_equal PHONE_COOLTRAINERM_GAVEN,   UnknownScript_0xbe2e8
+	if_equal PHONE_BIRDKEEPER_JOSE,      UnknownScript_0xbe2ee
+	if_equal PHONE_YOUNGSTER_JOEY,       UnknownScript_0xbe2f4
+	if_equal PHONE_BUG_CATCHER_WADE,     UnknownScript_0xbe2fa
+	if_equal PHONE_FISHER_RALPH,         UnknownScript_0xbe300
+	if_equal PHONE_HIKER_ANTHONY,        UnknownScript_0xbe306
+	if_equal PHONE_CAMPER_TODD,          UnknownScript_0xbe30c
+	if_equal PHONE_JUGGLER_IRWIN,        UnknownScript_0xbe312
+	if_equal PHONE_BUG_CATCHER_ARNIE,    UnknownScript_0xbe318
+	if_equal PHONE_SCHOOLBOY_ALAN,       UnknownScript_0xbe31e
+	if_equal PHONE_SCHOOLBOY_CHAD,       UnknownScript_0xbe324
+	if_equal PHONE_POKEFANM_DEREK,       UnknownScript_0xbe32a
+	if_equal PHONE_FISHER_TULLY,         UnknownScript_0xbe330
+	if_equal PHONE_POKEMANIAC_BRENT,     UnknownScript_0xbe336
+	if_equal PHONE_BIRDKEEPER_VANCE,     UnknownScript_0xbe33c
+	if_equal PHONE_FISHER_WILTON,        UnknownScript_0xbe342
+	if_equal PHONE_BLACKBELT_KENJI,      UnknownScript_0xbe348
+	if_equal PHONE_HIKER_PARRY,          UnknownScript_0xbe34e
 
 UnknownScript_0xbe2dc:
 	farwritetext UnknownText_0x1b4e72
@@ -2638,27 +2689,27 @@
 	end
 
 UnknownScript_0xbe354:
-	checkcode $17
-	if_equal $5, UnknownScript_0xbe3a6
-	if_equal $7, UnknownScript_0xbe3ac
-	if_equal $b, UnknownScript_0xbe3b2
-	if_equal $d, UnknownScript_0xbe3b8
-	if_equal $f, UnknownScript_0xbe3be
-	if_equal $10, UnknownScript_0xbe3c4
-	if_equal $11, UnknownScript_0xbe3ca
-	if_equal $13, UnknownScript_0xbe3d0
-	if_equal $14, UnknownScript_0xbe3d6
-	if_equal $16, UnknownScript_0xbe3dc
-	if_equal $17, UnknownScript_0xbe3e2
-	if_equal $18, UnknownScript_0xbe3e8
-	if_equal $1b, UnknownScript_0xbe3ee
-	if_equal $1c, UnknownScript_0xbe3f4
-	if_equal $1d, UnknownScript_0xbe3fa
-	if_equal $1e, UnknownScript_0xbe400
-	if_equal $20, UnknownScript_0xbe406
-	if_equal $21, UnknownScript_0xbe40c
-	if_equal $22, UnknownScript_0xbe412
-	if_equal $23, UnknownScript_0xbe418
+	checkcode VAR_CALLERID
+	if_equal PHONE_SCHOOLBOY_JACK,       UnknownScript_0xbe3a6
+	if_equal PHONE_SAILOR_HUEY,          UnknownScript_0xbe3ac
+	if_equal PHONE_COOLTRAINERM_GAVEN,   UnknownScript_0xbe3b2
+	if_equal PHONE_BIRDKEEPER_JOSE,      UnknownScript_0xbe3b8
+	if_equal PHONE_YOUNGSTER_JOEY,       UnknownScript_0xbe3be
+	if_equal PHONE_BUG_CATCHER_WADE,     UnknownScript_0xbe3c4
+	if_equal PHONE_FISHER_RALPH,         UnknownScript_0xbe3ca
+	if_equal PHONE_HIKER_ANTHONY,        UnknownScript_0xbe3d0
+	if_equal PHONE_CAMPER_TODD,          UnknownScript_0xbe3d6
+	if_equal PHONE_JUGGLER_IRWIN,        UnknownScript_0xbe3dc
+	if_equal PHONE_BUG_CATCHER_ARNIE,    UnknownScript_0xbe3e2
+	if_equal PHONE_SCHOOLBOY_ALAN,       UnknownScript_0xbe3e8
+	if_equal PHONE_SCHOOLBOY_CHAD,       UnknownScript_0xbe3ee
+	if_equal PHONE_POKEFANM_DEREK,       UnknownScript_0xbe3f4
+	if_equal PHONE_FISHER_TULLY,         UnknownScript_0xbe3fa
+	if_equal PHONE_POKEMANIAC_BRENT,     UnknownScript_0xbe400
+	if_equal PHONE_BIRDKEEPER_VANCE,     UnknownScript_0xbe406
+	if_equal PHONE_FISHER_WILTON,        UnknownScript_0xbe40c
+	if_equal PHONE_BLACKBELT_KENJI,      UnknownScript_0xbe412
+	if_equal PHONE_HIKER_PARRY,          UnknownScript_0xbe418
 
 UnknownScript_0xbe3a6:
 	farwritetext UnknownText_0x1b4e9e
@@ -2765,15 +2816,15 @@
 	iftrue UnknownScript_0xbe47a
 	checknite
 	iftrue UnknownScript_0xbe4cc
-	checkcode $17
-	if_equal $6, UnknownScript_0xbe44a
-	if_equal $c, UnknownScript_0xbe450
-	if_equal $e, UnknownScript_0xbe456
-	if_equal $12, UnknownScript_0xbe45c
-	if_equal $15, UnknownScript_0xbe462
-	if_equal $1a, UnknownScript_0xbe468
-	if_equal $1f, UnknownScript_0xbe46e
-	if_equal $24, UnknownScript_0xbe474
+	checkcode VAR_CALLERID
+	if_equal PHONE_POKEFAN_BEVERLY,       UnknownScript_0xbe44a
+	if_equal PHONE_COOLTRAINERF_BETH,     UnknownScript_0xbe450
+	if_equal PHONE_COOLTRAINERF_REENA,    UnknownScript_0xbe456
+	if_equal PHONE_PICNICKER_LIZ,         UnknownScript_0xbe45c
+	if_equal PHONE_PICNICKER_GINA,        UnknownScript_0xbe462
+	if_equal PHONE_LASS_DANA,             UnknownScript_0xbe468
+	if_equal PHONE_PICNICKER_TIFFANY,     UnknownScript_0xbe46e
+	if_equal PHONE_PICNICKER_ERIN,        UnknownScript_0xbe474
 
 UnknownScript_0xbe44a:
 	farwritetext UnknownText_0x1b4fa1
@@ -2816,15 +2867,15 @@
 	end
 
 UnknownScript_0xbe47a:
-	checkcode $17
-	if_equal $6, UnknownScript_0xbe49c
-	if_equal $c, UnknownScript_0xbe4a2
-	if_equal $e, UnknownScript_0xbe4a8
-	if_equal $12, UnknownScript_0xbe4ae
-	if_equal $15, UnknownScript_0xbe4b4
-	if_equal $1a, UnknownScript_0xbe4ba
-	if_equal $1f, UnknownScript_0xbe4c0
-	if_equal $24, UnknownScript_0xbe4c6
+	checkcode VAR_CALLERID
+	if_equal PHONE_POKEFAN_BEVERLY,       UnknownScript_0xbe49c
+	if_equal PHONE_COOLTRAINERF_BETH,     UnknownScript_0xbe4a2
+	if_equal PHONE_COOLTRAINERF_REENA,    UnknownScript_0xbe4a8
+	if_equal PHONE_PICNICKER_LIZ,         UnknownScript_0xbe4ae
+	if_equal PHONE_PICNICKER_GINA,        UnknownScript_0xbe4b4
+	if_equal PHONE_LASS_DANA,             UnknownScript_0xbe4ba
+	if_equal PHONE_PICNICKER_TIFFANY,     UnknownScript_0xbe4c0
+	if_equal PHONE_PICNICKER_ERIN,        UnknownScript_0xbe4c6
 
 UnknownScript_0xbe49c:
 	farwritetext UnknownText_0x1b4fda
@@ -2867,15 +2918,15 @@
 	end
 
 UnknownScript_0xbe4cc:
-	checkcode $17
-	if_equal $6, UnknownScript_0xbe4ee
-	if_equal $c, UnknownScript_0xbe4f4
-	if_equal $e, UnknownScript_0xbe4fa
-	if_equal $12, UnknownScript_0xbe500
-	if_equal $15, UnknownScript_0xbe506
-	if_equal $1a, UnknownScript_0xbe50c
-	if_equal $1f, UnknownScript_0xbe512
-	if_equal $24, UnknownScript_0xbe518
+	checkcode VAR_CALLERID
+	if_equal PHONE_POKEFAN_BEVERLY,       UnknownScript_0xbe4ee
+	if_equal PHONE_COOLTRAINERF_BETH,     UnknownScript_0xbe4f4
+	if_equal PHONE_COOLTRAINERF_REENA,    UnknownScript_0xbe4fa
+	if_equal PHONE_PICNICKER_LIZ,         UnknownScript_0xbe500
+	if_equal PHONE_PICNICKER_GINA,        UnknownScript_0xbe506
+	if_equal PHONE_LASS_DANA,             UnknownScript_0xbe50c
+	if_equal PHONE_PICNICKER_TIFFANY,     UnknownScript_0xbe512
+	if_equal PHONE_PICNICKER_ERIN,        UnknownScript_0xbe518
 
 UnknownScript_0xbe4ee:
 	farwritetext UnknownText_0x1b5004
@@ -2918,24 +2969,24 @@
 	end
 
 UnknownScript_0xbe51e:
-	checkcode $17
-	if_equal $5, UnknownScript_0xbe564
-	if_equal $b, UnknownScript_0xbe570
-	if_equal $d, UnknownScript_0xbe576
-	if_equal $f, UnknownScript_0xbe57c
-	if_equal $10, UnknownScript_0xbe582
-	if_equal $11, UnknownScript_0xbe588
-	if_equal $13, UnknownScript_0xbe58e
-	if_equal $14, UnknownScript_0xbe594
-	if_equal $17, UnknownScript_0xbe59a
-	if_equal $18, UnknownScript_0xbe5a0
-	if_equal $1b, UnknownScript_0xbe5a6
-	if_equal $1c, UnknownScript_0xbe5ac
-	if_equal $1d, UnknownScript_0xbe5b2
-	if_equal $1e, UnknownScript_0xbe5b8
-	if_equal $20, UnknownScript_0xbe5be
-	if_equal $21, UnknownScript_0xbe5c4
-	if_equal $23, UnknownScript_0xbe5ca
+	checkcode VAR_CALLERID
+	if_equal PHONE_SCHOOLBOY_JACK,       UnknownScript_0xbe564
+	if_equal PHONE_COOLTRAINERM_GAVEN,   UnknownScript_0xbe570
+	if_equal PHONE_BIRDKEEPER_JOSE,      UnknownScript_0xbe576
+	if_equal PHONE_YOUNGSTER_JOEY,       UnknownScript_0xbe57c
+	if_equal PHONE_BUG_CATCHER_WADE,     UnknownScript_0xbe582
+	if_equal PHONE_FISHER_RALPH,         UnknownScript_0xbe588
+	if_equal PHONE_HIKER_ANTHONY,        UnknownScript_0xbe58e
+	if_equal PHONE_CAMPER_TODD,          UnknownScript_0xbe594
+	if_equal PHONE_BUG_CATCHER_ARNIE,    UnknownScript_0xbe59a
+	if_equal PHONE_SCHOOLBOY_ALAN,       UnknownScript_0xbe5a0
+	if_equal PHONE_SCHOOLBOY_CHAD,       UnknownScript_0xbe5a6
+	if_equal PHONE_POKEFANM_DEREK,       UnknownScript_0xbe5ac
+	if_equal PHONE_FISHER_TULLY,         UnknownScript_0xbe5b2
+	if_equal PHONE_POKEMANIAC_BRENT,     UnknownScript_0xbe5b8
+	if_equal PHONE_BIRDKEEPER_VANCE,     UnknownScript_0xbe5be
+	if_equal PHONE_FISHER_WILTON,        UnknownScript_0xbe5c4
+	if_equal PHONE_HIKER_PARRY,          UnknownScript_0xbe5ca
 
 UnknownScript_0xbe564:
 	farwritetext UnknownText_0x1b4ecd
@@ -3028,15 +3079,15 @@
 	end
 
 UnknownScript_0xbe5d0:
-	checkcode $17
-	if_equal $6, UnknownScript_0xbe5f2
-	if_equal $c, UnknownScript_0xbe5f8
-	if_equal $e, UnknownScript_0xbe5fe
-	if_equal $12, UnknownScript_0xbe604
-	if_equal $15, UnknownScript_0xbe60a
-	if_equal $1a, UnknownScript_0xbe610
-	if_equal $1f, UnknownScript_0xbe616
-	if_equal $24, UnknownScript_0xbe61c
+	checkcode VAR_CALLERID
+	if_equal PHONE_POKEFAN_BEVERLY,       UnknownScript_0xbe5f2
+	if_equal PHONE_COOLTRAINERF_BETH,     UnknownScript_0xbe5f8
+	if_equal PHONE_COOLTRAINERF_REENA,    UnknownScript_0xbe5fe
+	if_equal PHONE_PICNICKER_LIZ,         UnknownScript_0xbe604
+	if_equal PHONE_PICNICKER_GINA,        UnknownScript_0xbe60a
+	if_equal PHONE_LASS_DANA,             UnknownScript_0xbe610
+	if_equal PHONE_PICNICKER_TIFFANY,     UnknownScript_0xbe616
+	if_equal PHONE_PICNICKER_ERIN,        UnknownScript_0xbe61c
 
 UnknownScript_0xbe5f2:
 	farwritetext UnknownText_0x1b502b
@@ -3104,27 +3155,27 @@
 String_be662: db "Brother@"
 
 
-UnknownScript_0xbe66a:: ; 0xbe66a
+TalkToTrainerScript:: ; 0xbe66a
 	faceplayer
 	trainerstatus $2
-	iftrue UnknownScript_0xbe698
+	iftrue AlreadyBeatenTrainerScript
 	loadtrainerdata
 	playrammusic
-	jump UnknownScript_0xbe68a
+	jump StartBattleWithMapTrainerScript
 ; 0xbe675
 
-UnknownScript_0xbe675:: ; 0xbe675
+SeenByTrainerScript:: ; 0xbe675
 	loadtrainerdata
 	playrammusic
-	showemote $0, $fe, 30
+	showemote EMOTE_SHOCK, -2, 30
 	callasm Function831e
 	applymovement2 MovementBuffer
-	writepersonxy $fe
-	faceperson $0, $fe
-	jump UnknownScript_0xbe68a
+	writepersonxy -2
+	faceperson $0, -2
+	jump StartBattleWithMapTrainerScript
 ; 0xbe68a
 
-UnknownScript_0xbe68a: ; 0xbe68a
+StartBattleWithMapTrainerScript: ; 0xbe68a
 	loadfont
 	trainertext $0
 	closetext
@@ -3132,9 +3183,9 @@
 	loadtrainerdata
 	startbattle
 	returnafterbattle
-	trainerstatus $1
-	loadvar wd04d, $ff
+	trainerstatus 1
+	loadvar wd04d, -1
 
-UnknownScript_0xbe698:
+AlreadyBeatenTrainerScript:
 	scripttalkafter
 ; 0xbe699
--- a/engine/pokedex.asm
+++ b/engine/pokedex.asm
@@ -899,10 +899,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Unknown_40a3e + 2
+rept 4
 	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -1339,10 +1338,9 @@
 	jr z, .asm_40a39
 	push af
 	ld hl, Unknown_40a3e
+rept 4
 	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -1883,15 +1881,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Strings_40fe4
+rept 9
 	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
+endr
 	ld e, l
 	ld d, h
 	pop hl
@@ -2406,8 +2398,9 @@
 Function41432: ; 41432
 	ld e, a
 	ld d, 0
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
--- /dev/null
+++ b/engine/predef.asm
@@ -1,0 +1,108 @@
+GetPredefPointer:: ; 854b
+; Return the bank and address of PredefID in a and PredefAddress.
+
+; Save hl for later (back in Predef)
+	ld a, h
+	ld [PredefTemp], a
+	ld a, l
+	ld [PredefTemp + 1], a
+
+	push de
+	ld a, [PredefID]
+	ld e, a
+	ld d, 0
+	ld hl, PredefPointers
+rept 3
+	add hl,de
+endr
+	pop de
+
+	ld a, [hli]
+	ld [PredefAddress + 1], a
+	ld a, [hli]
+	ld [PredefAddress], a
+	ld a, [hl]
+
+	ret
+; 856b
+
+PredefPointers:: ; 856b
+; $4b Predef pointers
+; address, bank
+
+	add_predef LearnMove ; $0
+	add_predef Predef1
+	add_predef HealParty
+	add_predef FlagPredef
+	add_predef Functionc699
+	add_predef FillPP
+	add_predef Functiond88c
+	add_predef Functionda96
+	add_predef Functiondb3f ; $8
+	add_predef Functionde6e
+	add_predef GiveEgg
+	add_predef Functionc6e0
+	add_predef Functione167
+	add_predef Functione17b
+	add_predef CanLearnTMHMMove
+	add_predef GetTMHMMove
+	add_predef Function28eef ; $ 10
+	add_predef PrintMoveDesc
+	add_predef UpdatePlayerHUD
+	add_predef FillBox
+	add_predef Function3d873
+	add_predef UpdateEnemyHUD
+	add_predef StartBattle
+	add_predef FillInExpBar
+	add_predef Function3f43d ; $18
+	add_predef Function3f47c
+	add_predef LearnLevelMoves
+	add_predef FillMoves
+	add_predef Function421e6
+	add_predef Function28f63
+	add_predef Function28f24
+	add_predef Function5084a
+	add_predef ListMoves ; $20
+	add_predef Function50d2e
+	add_predef Function50cdb
+	add_predef Function50c50
+	add_predef GetGender
+	add_predef StatsScreenInit
+	add_predef DrawPlayerHP
+	add_predef DrawEnemyHP
+	add_predef PrintTempMonStats ; $28
+	add_predef GetTypeName
+	add_predef PrintMoveType
+	add_predef PrintType
+	add_predef PrintMonTypes
+	add_predef GetUnownLetter
+	add_predef Functioncbcdd
+	add_predef Predef2F
+	add_predef Function9853 ; $30
+	add_predef Function864c
+	add_predef Function91d11
+	add_predef CheckContestMon
+	add_predef Function8c20f
+	add_predef Function8c000
+	add_predef Function8c000_2
+	add_predef PlayBattleAnim
+	add_predef Predef38 ; $38
+	add_predef Predef39
+	add_predef Functionfd1d0
+	add_predef PartyMonItemName
+	add_predef GetFrontpic
+	add_predef GetBackpic
+	add_predef Function5108b
+	add_predef GetTrainerPic
+	add_predef DecompressPredef ; $40
+	add_predef Function347d3
+	add_predef ConvertMon_1to2
+	add_predef Functionfb877
+	add_predef Functiond0000
+	add_predef Function50d0a
+	add_predef Functiond00a3
+	add_predef Functiond008e
+	add_predef Functiond0669 ; $48
+	add_predef Functiond066e
+	dbw $ff, Function2d43 ; ????
+; 864c
--- /dev/null
+++ b/engine/radio.asm
@@ -1,0 +1,2115 @@
+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
--- a/engine/scripting.asm
+++ b/engine/scripting.asm
@@ -1,9 +1,9 @@
 ; Event scripting commands.
 
 
-Function96c56:: ; 96c56
+EnableScriptMode:: ; 96c56
 	push af
-	ld a, 1
+	ld a, SCRIPT_READ
 	ld [ScriptMode], a
 	pop af
 	ret
@@ -346,7 +346,7 @@
 	faceplayer
 JumpTextScript: ; 0x96e7a
 	loadfont
-	repeattext $ff, $ff
+	repeattext -1, -1
 	closetext
 	loadmovesprites
 	end
@@ -385,7 +385,7 @@
 	ld h, a
 	ld a, [ScriptBank]
 	ld b, a
-	call Function269a
+	call MapTextbox
 	ret
 ; 0x96eab
 
@@ -400,7 +400,7 @@
 	ld l, a
 	call GetScriptByte
 	ld h, a
-	call Function269a
+	call MapTextbox
 	ret
 ; 0x96ebb
 
@@ -414,11 +414,11 @@
 	ld l, a
 	call GetScriptByte
 	ld h, a
-	cp $ff
-	jr nz, .asm_96ed8 ; 0x96ec5 $11
+	cp -1
+	jr nz, .done ; 0x96ec5 $11
 	ld a, l
-	cp $ff
-	jr nz, .asm_96ed8 ; 0x96eca $c
+	cp -1
+	jr nz, .done ; 0x96eca $c
 	ld hl, wd44e
 	ld a, [hli]
 	ld b, a
@@ -425,9 +425,9 @@
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
-	call Function269a
+	call MapTextbox
 	ret
-.asm_96ed8
+.done
 	ret
 ; 0x96ed9
 
@@ -434,7 +434,7 @@
 Script_closetext: ; 0x96ed9
 ; script command 0x54
 
-	jp Functiona46
+	jp CloseText
 ; 0x96edc
 
 Script_keeptextopen: ; 0x96edc
@@ -445,7 +445,7 @@
 	ld a, $1
 	ld [$ffd8], a
 	call WaitBGMap
-	call Functionaaf
+	call KeepTextOpen
 	pop af
 	ld [$ffd8], a
 	ret
@@ -456,9 +456,9 @@
 
 	call YesNoBox
 	ld a, 0
-	jr c, .asm_96ef6 ; 0x96ef2 $2
+	jr c, .no ; 0x96ef2 $2
 	ld a, 1
-.asm_96ef6
+.no
 	ld [ScriptVar], a
 	ret
 ; 0x96efa
@@ -474,8 +474,8 @@
 	ld h, a
 	ld de, LoadMenuDataHeader
 	ld a, [ScriptBank]
-	call Function26b7
-	call Function1ad2
+	call Call_a_de
+	call DrawOnMap
 	ret
 ; 0x96f0f
 
@@ -482,8 +482,8 @@
 Script_writebackup: ; 0x96f0f
 ; script command 0x50
 
-	call Function1c17
-	call Function1ad2
+	call WriteBackup
+	call DrawOnMap
 	ret
 ; 0x96f16
 
@@ -498,7 +498,7 @@
 	ld a, [ScriptVar]
 .ok
 	ld [CurPartySpecies], a
-	callba Function244e3
+	callba Pokepic
 	ret
 ; 0x96f29
 
@@ -505,7 +505,7 @@
 Script_pokepicyesorno: ; 0x96f29
 ; script command 0x57
 
-	callba Function24528
+	callba PokepicYesOrNo
 	ret
 ; 0x96f30
 
@@ -513,7 +513,7 @@
 ; script command 0x59
 
 	ld a, [ScriptBank]
-	ld hl, Function1d81
+	ld hl, InterpretMenu2
 	rst FarCall
 	ld a, [wcfa9]
 	jr nc, .ok
@@ -527,7 +527,7 @@
 ; script command 0x58
 
 	ld a, [ScriptBank]
-	ld hl, Function202a
+	ld hl, InterpretMenu
 	rst FarCall
 	ld a, [wcf88]
 	jr nc, .ok
@@ -543,10 +543,10 @@
 ;     pointer (PointerLabelBeforeBank)
 ;     memory (SingleByteParam)
 
-	call Function106c
+	call SetUpTextBox
 	call GetScriptByte
 	ld c, a
-	callba Function11c000
+	callba StoreText
 	ret
 ; 0x96f60
 
@@ -559,8 +559,8 @@
 	call Script_giveitem
 	call CurItemName
 	ld de, StringBuffer1
-	ld a, $1
-	call Function976c8
+	ld a, 1
+	call CopyConvertedText
 	ld b, BANK(GiveItemScript)
 	ld de, GiveItemScript
 	jp ScriptCall
@@ -600,18 +600,18 @@
 ;     var (SingleByteParam)
 
 	call GetScriptByte
-	cp $ff
+	cp -1
 	jr nz, .ok
 	ld a, [ScriptVar]
 .ok
 	ld [CurItem], a
 	call GetScriptByte
-	call Function9769e
+	call GetVarAction
 	ld a, [de]
 	ld [wd10c], a
 	ld hl, NumItems
 	call ReceiveItem
-	ld a, $1
+	ld a, 1
 	jr c, .ok2
 	xor a
 .ok2
@@ -618,8 +618,8 @@
 	ld [ScriptVar], a
 	call CurItemName
 	ld de, StringBuffer1
-	ld a, $1
-	call Function976c8
+	ld a, 1
+	call CopyConvertedText
 	ld b, BANK(GiveItemScript)
 	ld de, GiveItemScript
 	jp ScriptCall
@@ -632,7 +632,7 @@
 	call CurItemName
 	ld b, BANK(PutItemInPocketText)
 	ld hl, PutItemInPocketText
-	call Function269a
+	call MapTextbox
 	ret
 ; 0x96fd5
 
@@ -643,7 +643,7 @@
 	call CurItemName
 	ld b, BANK(PocketIsFullText)
 	ld hl, PocketIsFullText
-	call Function269a
+	call MapTextbox
 	ret
 ; 0x96fe4
 
@@ -746,7 +746,7 @@
 	ld d, a
 	ld a, [ScriptBank]
 	ld b, a
-	callba Function1342d
+	callba Elevator
 	ret c
 	ld a, $1
 	ld [ScriptVar], a
@@ -775,7 +775,7 @@
 	ld d, a
 	ld a, [ScriptBank]
 	ld b, a
-	callba Function9029a
+	callba PhoneCall
 	ret
 ; 0x970b7
 
@@ -782,7 +782,7 @@
 Script_hangup: ; 0x970b7
 ; script command 0x99
 
-	callba Function902eb
+	callba HangUp
 	ret
 ; 0x970be
 
@@ -792,20 +792,20 @@
 ;     number (SingleByteParam)
 
 	call YesNoBox
-	jr c, .asm_970d6 ; 0x970c1 $13
+	jr c, .refused ; 0x970c1 $13
 	call GetScriptByte
 	ld c, a
-	callba Function90000
-	jr c, .asm_970d2 ; 0x970cd $3
+	callba AddPhoneNumber
+	jr c, .phonefull ; 0x970cd $3
 	xor a
-	jr .asm_970db ; 0x970d0 $9
-.asm_970d2
-	ld a, $1
-	jr .asm_970db ; 0x970d4 $5
-.asm_970d6
+	jr .done ; 0x970d0 $9
+.phonefull
+	ld a, 1
+	jr .done ; 0x970d4 $5
+.refused
 	call GetScriptByte
-	ld a, $2
-.asm_970db
+	ld a, 2
+.done
 	ld [ScriptVar], a
 	ret
 ; 0x970df
@@ -817,7 +817,7 @@
 
 	call GetScriptByte
 	ld b, a
-	callba Function26f59
+	callba DescribeDecoration
 	ld h, d
 	ld l, e
 	jp ScriptJump
@@ -848,7 +848,7 @@
 	ld d, a
 	call GetScriptByte
 	ld e, a
-	callba Functionc403
+	callba LoadWildData
 	ret
 ; 0x9710f
 
@@ -859,16 +859,17 @@
 
 	call GetScriptByte
 	ld c, a
-	ld b, $0
+	ld b, 0
 	ld hl, WalkingX
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
 	ld a, [EngineBuffer1]
 	ld b, a
-	call Function269a
+	call MapTextbox
 	ret
 ; 0x97125
 
@@ -901,7 +902,7 @@
 	ld a, c
 	and a
 	ret z
-	ld a, $1
+	ld a, 1
 	ld [ScriptVar], a
 	ret
 ; 0x9714c
@@ -912,12 +913,12 @@
 ;     win_text_pointer (TextPointerLabelParam)
 ;     loss_text_pointer (TextPointerLabelParam)
 
-	ld hl, WalkingTile
+	ld hl, wWinTextPointer ; d047
 	call GetScriptByte
 	ld [hli], a
 	call GetScriptByte
 	ld [hli], a
-	ld hl, wd048 + 1
+	ld hl, wLossTextPointer ; d049; this is unnecessary
 	call GetScriptByte
 	ld [hli], a
 	call GetScriptByte
@@ -937,7 +938,7 @@
 Script_talkaftercheck: ; 0x9716b
 ; script command 0x67
 
-	ld a, $1
+	ld a, 1
 	ld [ScriptVar], a
 	ld a, [wd04d]
 	and a
@@ -1042,7 +1043,7 @@
 	ret
 ; 0x971e3
 
-Function971e3: ; 0x971e3
+GetScriptPerson: ; 0x971e3
 	and a
 	ret z
 	cp $fe
@@ -1057,7 +1058,7 @@
 ;     person (SingleByteParam)
 
 	call GetScriptByte
-	call Function971e3
+	call GetScriptPerson
 	ld [$ffe0], a
 	ret
 ; 0x971f3
@@ -1069,17 +1070,17 @@
 ;     data (MovementPointerLabelParam)
 
 	call GetScriptByte
-	call Function971e3
+	call GetScriptPerson
 	ld c, a
 ; 971fa
 
-Function971fa: ; 971fa
+ApplyMovement: ; 971fa
 	push bc
 	ld a, c
-	callba Function585c
+	callba SetFlagsForMovement_1
 	pop bc
 	push bc
-	call Function97221
+	call SetFlagsForMovement_2
 	pop bc
 	call GetScriptByte
 	ld l, a
@@ -1087,7 +1088,7 @@
 	ld h, a
 	ld a, [ScriptBank]
 	ld b, a
-	call Function26c7
+	call GetMovementData
 	ret c
 	ld a, SCRIPT_WAIT_MOVEMENT
 	ld [ScriptMode], a
@@ -1095,8 +1096,8 @@
 	ret
 ; 0x97221
 
-Function97221: ; 0x97221
-	callba Function5897
+SetFlagsForMovement_2: ; 0x97221
+	callba _SetFlagsForMovement_2
 	ret
 ; 0x97228
 
@@ -1107,7 +1108,7 @@
 
 	ld a, [$ffe0]
 	ld c, a
-	jp Function971fa
+	jp ApplyMovement
 ; 0x9722e
 
 Script_faceplayer: ; 0x9722e
@@ -1119,14 +1120,15 @@
 	ld d, $0
 	ld a, [$ffe0]
 	ld e, a
-	callba Function8417
+	callba GetRelativeFacing
 	ld a, d
+rept 2
 	add a
-	add a
+endr
 	ld e, a
 	ld a, [$ffe0]
 	ld d, a
-	call Function9728b
+	call ApplyPersonFacing
 	ret
 ; 0x97248
 
@@ -1137,7 +1139,7 @@
 ;     person2 (SingleByteParam)
 
 	call GetScriptByte
-	call Function971e3
+	call GetScriptPerson
 	cp $fe
 	jr c, .asm_97254 ; 0x97250 $2
 	ld a, [$ffe0]
@@ -1144,7 +1146,7 @@
 .asm_97254
 	ld e, a
 	call GetScriptByte
-	call Function971e3
+	call GetScriptPerson
 	cp $fe
 	jr nz, .asm_97261 ; 0x9725d $2
 	ld a, [$ffe0]
@@ -1151,15 +1153,16 @@
 .asm_97261
 	ld d, a
 	push de
-	callba Function8417
+	callba GetRelativeFacing
 	pop bc
 	ret c
 	ld a, d
+rept 2
 	add a
-	add a
+endr
 	ld e, a
 	ld d, c
-	call Function9728b
+	call ApplyPersonFacing
 	ret
 ; 0x97274
 
@@ -1170,7 +1173,7 @@
 ;     facing (SingleByteParam)
 
 	call GetScriptByte
-	call Function971e3
+	call GetScriptPerson
 	cp $fe
 	jr nz, .asm_97280 ; 0x9727c $2
 	ld a, [$ffe0]
@@ -1177,40 +1180,41 @@
 .asm_97280
 	ld d, a
 	call GetScriptByte
+rept 2
 	add a
-	add a
+endr
 	ld e, a
-	call Function9728b
+	call ApplyPersonFacing
 	ret
 ; 0x9728b
 
-Function9728b: ; 0x9728b
+ApplyPersonFacing: ; 0x9728b
 	ld a, d
 	push de
 	call Function18de
-	jr c, .asm_972b9 ; 0x97290 $27
-	ld hl, $0000
+	jr c, .not_visible ; 0x97290 $27
+	ld hl, OBJECT_SPRITE
 	add hl, bc
 	ld a, [hl]
 	push bc
 	call Function1836
 	pop bc
-	jr c, .asm_972b9 ; 0x9729c $1b
-	ld hl, $0004
+	jr c, .not_visible ; 0x9729c $1b
+	ld hl, OBJECT_04
 	add hl, bc
 	bit 2, [hl]
-	jr nz, .asm_972b9 ; 0x972a4 $13
+	jr nz, .not_visible ; 0x972a4 $13
 	pop de
 	ld a, e
-	call Function1af8
+	call SetSpriteDirection
 	ld hl, VramState
 	bit 6, [hl]
 	jr nz, .asm_972b5 ; 0x972b0 $3
 	call Function972bc
 .asm_972b5
-	call Function1ad2
+	call DrawOnMap
 	ret
-.asm_972b9
+.not_visible
 	pop de
 	scf
 	ret
@@ -1252,11 +1256,11 @@
 ;     person (SingleByteParam)
 
 	call GetScriptByte
-	call Function971e3
-	call Function1956
+	call GetScriptPerson
+	call _CopyObjectStruct
 	ld a, [$ffaf]
-	ld b, $0
-	call Function9730b
+	ld b, 0 ; clear
+	call ApplyEventActionAppearDisappear
 	ret
 ; 0x972ee
 
@@ -1266,36 +1270,36 @@
 ;     person (SingleByteParam)
 
 	call GetScriptByte
-	call Function971e3
-	cp $fe
-	jr nz, .asm_972fa ; 0x972f6 $2
+	call GetScriptPerson
+	cp -2
+	jr nz, .skip ; 0x972f6 $2
 	ld a, [$ffe0]
-.asm_972fa
-	call Function199f
+.skip
+	call DeleteObjectStruct
 	ld a, [$ffaf]
-	ld b, $1
-	call Function9730b
-	callba Function5920
+	ld b, 1 ; set
+	call ApplyEventActionAppearDisappear
+	callba RefreshMapAppearDisappear
 	ret
 ; 0x9730b
 
-Function9730b: ; 0x9730b
+ApplyEventActionAppearDisappear: ; 0x9730b
 	push bc
 	call GetMapObject
-	ld hl, $000c
+	ld hl, MAPOBJECT_EVENT_FLAG
 	add hl, bc
 	pop bc
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
-	ld a, $ff
+	ld a, -1
 	cp e
-	jr nz, .asm_97321 ; 0x9731a $5
+	jr nz, .okay ; 0x9731a $5
 	cp d
-	jr nz, .asm_97321 ; 0x9731d $2
+	jr nz, .okay ; 0x9731d $2
 	xor a
 	ret
-.asm_97321
+.okay
 	call EventFlagAction
 	ret
 ; 0x97325
@@ -1307,10 +1311,10 @@
 ;     person1 (SingleByteParam)
 
 	call GetScriptByte
-	call Function971e3
+	call GetScriptPerson
 	ld b, a
 	call GetScriptByte
-	call Function971e3
+	call GetScriptPerson
 	ld c, a
 	callba Function5803
 	ret
@@ -1331,7 +1335,7 @@
 ;     y (SingleByteParam)
 
 	call GetScriptByte
-	call Function971e3
+	call GetScriptPerson
 	ld b, a
 	call GetScriptByte
 	add $4
@@ -1349,7 +1353,7 @@
 ;     person (SingleByteParam)
 
 	call GetScriptByte
-	call Function971e3
+	call GetScriptPerson
 	cp $fe
 	jr nz, .asm_97367 ; 0x97363 $2
 	ld a, [$ffe0]
@@ -1366,10 +1370,10 @@
 ;     person1 (SingleByteParam)
 
 	call GetScriptByte
-	call Function971e3
+	call GetScriptPerson
 	ld b, a
 	call GetScriptByte
-	call Function971e3
+	call GetScriptPerson
 	ld c, a
 	callba Function839e
 	ret
@@ -1400,7 +1404,7 @@
 	call GetScriptByte
 	ld [ScriptVar], a
 	call GetScriptByte
-	call Function971e3
+	call GetScriptPerson
 	cp $fe
 	jr z, .asm_973a8 ; 0x973a4 $2
 	ld [$ffe0], a
@@ -1525,7 +1529,7 @@
 Script_startbattle: ; 0x97436
 ; script command 0x5f
 
-	call Function2879
+	call BufferScreen
 	predef StartBattle
 	ld a, [wd0ee]
 	and $3f
@@ -1540,7 +1544,7 @@
 
 	call GetScriptByte
 	ld [BattleType], a
-	call Function2879
+	call BufferScreen
 	callba Function4e554
 	jp Script_reloadmap
 ; 0x97459
@@ -1582,7 +1586,7 @@
 	ld a, $f3
 	ld [$ff9f], a
 	ld a, $1
-	call Function261b
+	call LoadMapStatus
 	call StopScript
 	ret
 ; 0x974a2
@@ -1638,9 +1642,9 @@
 	inc [hl]
 	ld d, $0
 	ld hl, wd43d
+rept 3
 	add hl, de
-	add hl, de
-	add hl, de
+endr
 	pop de
 	ld a, [ScriptBank]
 	ld [hli], a
@@ -1811,9 +1815,9 @@
 	call GetScriptByte
 	ld d, a
 	ld hl, StdScripts
+rept 3
 	add hl, de
-	add hl, de
-	add hl, de
+endr
 	ld a, BANK(StdScripts)
 	call GetFarByte
 	ld b, a
@@ -1858,7 +1862,7 @@
 Script_checktriggers: ; 0x975c2
 ; script command 0x13
 
-	call Function211b
+	call CheckTriggers
 	jr z, .asm_975cb ; 0x975c5 $4
 	ld [ScriptVar], a
 	ret
@@ -2051,7 +2055,7 @@
 ;     variable_id (SingleByteParam)
 
 	call GetScriptByte
-	call Function9769e
+	call GetVarAction
 	ld a, [de]
 	ld [ScriptVar], a
 	ret
@@ -2063,7 +2067,7 @@
 ;     variable_id (SingleByteParam)
 
 	call GetScriptByte
-	call Function9769e
+	call GetVarAction
 	ld a, [ScriptVar]
 	ld [de], a
 	ret
@@ -2076,15 +2080,15 @@
 ;     value (SingleByteParam)
 
 	call GetScriptByte
-	call Function9769e
+	call GetVarAction
 	call GetScriptByte
 	ld [de], a
 	ret
 ; 0x9769e
 
-Function9769e: ; 0x9769e
+GetVarAction: ; 0x9769e
 	ld c, a
-	callba Function80648
+	callba _GetVarAction
 	ret
 ; 0x976a6
 
@@ -2103,19 +2107,19 @@
 Script_pokenamemem: ; 0x976ae
 ; script command 0x40
 ; parameters:
-;     pokemon (PokemonParam)
+;     pokemon (PokemonParam); leave $0 to draw from script var
 ;     memory (SingleByteParam)
 
 	call GetScriptByte
 	and a
-	jr nz, .asm_976b7 ; 0x976b2 $3
+	jr nz, .gotit ; 0x976b2 $3
 	ld a, [ScriptVar]
-.asm_976b7
+.gotit
 	ld [wd265], a
 	call GetPokemonName
 	ld de, StringBuffer1
 
-Unknown_976c0: ; 0x976c0
+ConvertMemToText: ; 0x976c0
 	call GetScriptByte
 	cp 3
 	jr c, .ok
@@ -2122,9 +2126,9 @@
 	xor a
 .ok
 
-Function976c8: ; 976c8
+CopyConvertedText: ; 976c8
 	ld hl, StringBuffer3
-	ld bc, 19
+	ld bc, StringBuffer4 - StringBuffer3
 	call AddNTimes
 	call CopyName2
 	ret
@@ -2138,13 +2142,13 @@
 
 	call GetScriptByte
 	and a
-	jr nz, .asm_976de ; 0x976d9 $3
+	jr nz, .ok ; 0x976d9 $3
 	ld a, [ScriptVar]
-.asm_976de
+.ok
 	ld [wd265], a
 	call GetItemName
 	ld de, StringBuffer1
-	jr Unknown_976c0 ; 0x976e7 $d7
+	jr ConvertMemToText ; 0x976e7 $d7
 ; 0x976e9
 
 Script_mapnametotext: ; 0x976e9
@@ -2158,11 +2162,11 @@
 	ld c, a
 	call GetWorldMapLocation
 
-Unknown_976f4: ; 0x976f4
+ConvertLandmarkToText: ; 0x976f4
 	ld e, a
 	callba GetLandmarkName
 	ld de, StringBuffer1
-	jp Unknown_976c0
+	jp ConvertMemToText
 ; 0x97701
 
 Script_displaylocation: ; 0x97701
@@ -2172,7 +2176,7 @@
 ;     memory (SingleByteParam)
 
 	call GetScriptByte
-	jr Unknown_976f4 ; 0x97704 $ee
+	jr ConvertLandmarkToText ; 0x97704 $ee
 ; 0x97706
 
 Script_trainertotext: ; 0x97706
@@ -2186,8 +2190,8 @@
 	ld c, a
 	call GetScriptByte
 	ld b, a
-	callba Function3994c
-	jr Unknown_976c0 ; 0x97714 $aa
+	callba GetTrainerName
+	jr ConvertMemToText ; 0x97714 $aa
 ; 0x97716
 
 Script_name: ; 0x97716
@@ -2200,12 +2204,12 @@
 	call GetScriptByte
 	ld [wcf61], a
 
-Unknown_9771c: ; 0x9771c
+ContinueToGetName: ; 0x9771c
 	call GetScriptByte
 	ld [CurSpecies], a
 	call GetName
 	ld de, StringBuffer1
-	jp Unknown_976c0
+	jp ConvertMemToText
 ; 0x9772b
 
 Script_trainerclassname: ; 0x9772b
@@ -2216,7 +2220,7 @@
 
 	ld a, TRAINER_NAME
 	ld [wcf61], a
-	jr Unknown_9771c ; 0x97730 $ea
+	jr ContinueToGetName ; 0x97730 $ea
 ; 0x97732
 
 Script_readmoney: ; 0x97732
@@ -2225,13 +2229,13 @@
 ;     account (SingleByteParam)
 ;     memory (SingleByteParam)
 
-	call Function97771
-	call Function97861
+	call ResetStringBuffer1
+	call GetMoneyAccount
 	ld hl, StringBuffer1
 	ld bc, $4306
 	call PrintNum
 	ld de, StringBuffer1
-	jp Unknown_976c0
+	jp ConvertMemToText
 ; 0x97747
 
 Script_readcoins: ; 0x97747
@@ -2239,13 +2243,13 @@
 ; parameters:
 ;     memory (SingleByteParam)
 
-	call Function97771
+	call ResetStringBuffer1
 	ld hl, StringBuffer1
 	ld de, Coins
 	ld bc, $4206
 	call PrintNum
 	ld de, StringBuffer1
-	jp Unknown_976c0
+	jp ConvertMemToText
 ; 0x9775c
 
 Script_RAM2MEM: ; 0x9775c
@@ -2253,18 +2257,18 @@
 ; parameters:
 ;     memory (SingleByteParam)
 
-	call Function97771
+	call ResetStringBuffer1
 	ld de, ScriptVar
 	ld hl, StringBuffer1
 	ld bc, $4103
 	call PrintNum
 	ld de, StringBuffer1
-	jp Unknown_976c0
+	jp ConvertMemToText
 ; 0x97771
 
-Function97771: ; 0x97771
+ResetStringBuffer1: ; 0x97771
 	ld hl, StringBuffer1
-	ld bc, $000b
+	ld bc, NAME_LENGTH
 	ld a, "@"
 	call ByteFill
 	ret
@@ -2284,7 +2288,7 @@
 	ld hl, CopyName1
 	rst FarCall
 	ld de, StringBuffer2
-	jp Unknown_976c0
+	jp ConvertMemToText
 ; 0x97792
 
 Script_givepokeitem: ; 0x97792
@@ -2301,12 +2305,12 @@
 	ld b, a
 	push bc
 	inc hl
-	ld bc, $0020
+	ld bc, MAIL_MAX_LENGTH
 	ld de, wd002
 	ld a, [ScriptBank]
 	call FarCopyBytes
 	pop bc
-	callba Function446cc
+	callba GivePokeItem
 	ret
 ; 0x977b7
 
@@ -2332,20 +2336,20 @@
 ;     quantity (SingleByteParam)
 
 	call GetScriptByte
-	cp $ff
-	jr nz, .asm_977d4 ; 0x977cf $3
+	cp -1
+	jr nz, .ok ; 0x977cf $3
 	ld a, [ScriptVar]
-.asm_977d4
+.ok
 	ld [CurItem], a
 	call GetScriptByte
 	ld [wd10c], a
 	ld hl, NumItems
 	call ReceiveItem
-	jr nc, .asm_977eb ; 0x977e3 $6
+	jr nc, .full ; 0x977e3 $6
 	ld a, $1
 	ld [ScriptVar], a
 	ret
-.asm_977eb
+.full
 	xor a
 	ld [ScriptVar], a
 	ret
@@ -2396,9 +2400,9 @@
 ;     account (SingleByteParam)
 ;     money (MoneyByteParam)
 
-	call Function97861
-	call Function9786d
-	callba Function15fd7
+	call GetMoneyAccount
+	call LoadMoneyAmountToMem
+	callba GiveMoney
 	ret
 ; 0x97836
 
@@ -2408,9 +2412,9 @@
 ;     account (SingleByteParam)
 ;     money (MoneyByteParam)
 
-	call Function97861
-	call Function9786d
-	callba Function15ffa
+	call GetMoneyAccount
+	call LoadMoneyAmountToMem
+	callba TakeMoney
 	ret
 ; 0x97843
 
@@ -2420,12 +2424,12 @@
 ;     account (SingleByteParam)
 ;     money (MoneyByteParam)
 
-	call Function97861
-	call Function9786d
-	callba Function1600b
+	call GetMoneyAccount
+	call LoadMoneyAmountToMem
+	callba CheckMoney
 ; 0x9784f
 
-Unknown_9784f: ; 0x9784f
+CheckMoneyAction: ; 0x9784f
 	jr c, .two
 	jr z, .one
 	ld a, 0
@@ -2440,7 +2444,7 @@
 	ret
 ; 0x97861
 
-Function97861: ; 0x97861
+GetMoneyAccount: ; 0x97861
 	call GetScriptByte
 	and a
 	ld de, Money
@@ -2449,8 +2453,8 @@
 	ret
 ; 0x9786d
 
-Function9786d: ; 0x9786d
-	ld bc, $ffc3
+LoadMoneyAmountToMem: ; 0x9786d
+	ld bc, hMoneyTemp
 	push bc
 	call GetScriptByte
 	ld [bc], a
@@ -2469,8 +2473,8 @@
 ; parameters:
 ;     coins (CoinByteParam)
 
-	call Function978a0
-	callba Function1606f
+	call LoadCoinAmountToMem
+	callba GiveCoins
 	ret
 ; 0x9788b
 
@@ -2479,8 +2483,8 @@
 ; parameters:
 ;     coins (CoinByteParam)
 
-	call Function978a0
-	callba Function1608f
+	call LoadCoinAmountToMem
+	callba TakeCoins
 	ret
 ; 0x97895
 
@@ -2489,17 +2493,17 @@
 ; parameters:
 ;     coins (CoinByteParam)
 
-	call Function978a0
-	callba Function160a1
-	jr Unknown_9784f
+	call LoadCoinAmountToMem
+	callba CheckCoins
+	jr CheckMoneyAction
 ; 978a0
 
-Function978a0: ; 978a0
+LoadCoinAmountToMem: ; 978a0
 	call GetScriptByte
 	ld [$ffc4], a
 	call GetScriptByte
-	ld [$ffc3], a
-	ld bc, $ffc3
+	ld [hMoneyTemp], a
+	ld bc, hMoneyTemp
 	ret
 ; 0x978ae
 
@@ -2510,7 +2514,7 @@
 
 	xor a
 	ld [ScriptVar], a
-	callba Functionc000
+	callba CheckTime
 	call GetScriptByte
 	and c
 	ret z
@@ -2545,7 +2549,7 @@
 	ld [ScriptVar], a
 	call GetScriptByte
 	ld c, a
-	callba Function90000
+	callba AddPhoneNumber
 	ret nc
 	ld a, $1
 	ld [ScriptVar], a
@@ -2561,7 +2565,7 @@
 	ld [ScriptVar], a
 	call GetScriptByte
 	ld c, a
-	callba Function9000f
+	callba DelCellNum
 	ret nc
 	ld a, $1
 	ld [ScriptVar], a
@@ -2572,12 +2576,13 @@
 ; script command 0x2a
 ; parameters:
 ;     person (SingleByteParam)
+; returns false if the cell number is not in your phone
 
 	xor a
 	ld [ScriptVar], a
 	call GetScriptByte
 	ld c, a
-	callba Function90019
+	callba CheckCellNum
 	ret nc
 	ld a, $1
 	ld [ScriptVar], a
@@ -2590,16 +2595,17 @@
 ;     call_id (MultiByteParam)
 
 	call GetScriptByte
-	ld [wdc31], a
+	ld [wSpecialPhoneCallID], a
 	call GetScriptByte
-	ld [wdc31 + 1], a
+	ld [wSpecialPhoneCallID + 1], a
 	ret
 ; 0x97926
 
 Script_checkphonecall: ; 0x97926
 ; script command 0x9d
+; returns false if no special phone call is stored
 
-	ld a, [wdc31]
+	ld a, [wSpecialPhoneCallID]
 	and a
 	jr z, .ok
 	ld a, 1
@@ -2637,7 +2643,7 @@
 	call GetScriptByte
 	call GetScriptByte
 .ok
-	callba Functione277
+	callba GivePoke
 	ld a, b
 	ld [ScriptVar], a
 	ret
@@ -2648,6 +2654,7 @@
 ; parameters:
 ;     pkmn (PokemonParam)
 ;     level (DecimalParam)
+; if no room in the party, return 0 in ScriptVar; else, return 2
 
 	xor a
 	ld [ScriptVar], a
@@ -2658,7 +2665,7 @@
 	ld [CurPartyLevel], a
 	callba GiveEgg
 	ret nc
-	ld a, $2
+	ld a, 2
 	ld [ScriptVar], a
 	ret
 ; 0x97988
@@ -2672,7 +2679,7 @@
 	ld e, a
 	call GetScriptByte
 	ld d, a
-	ld b, $1
+	ld b, SET_FLAG
 	call EventFlagAction
 	ret
 ; 0x97996
@@ -2686,7 +2693,7 @@
 	ld e, a
 	call GetScriptByte
 	ld d, a
-	ld b, $0
+	ld b, RESET_FLAG
 	call EventFlagAction
 	ret
 ; 0x979a4
@@ -2700,13 +2707,13 @@
 	ld e, a
 	call GetScriptByte
 	ld d, a
-	ld b, $2
+	ld b, CHECK_FLAG
 	call EventFlagAction
 	ld a, c
 	and a
-	jr z, .asm_979b7 ; 0x979b3 $2
-	ld a, $1
-.asm_979b7
+	jr z, .false ; 0x979b3 $2
+	ld a, 1
+.false
 	ld [ScriptVar], a
 	ret
 ; 0x979bb
@@ -2720,8 +2727,8 @@
 	ld e, a
 	call GetScriptByte
 	ld d, a
-	ld b, $1
-	call Function979ee
+	ld b, 1 ; set
+	call _EngineFlagAction
 	ret
 ; 0x979c9
 
@@ -2734,8 +2741,8 @@
 	ld e, a
 	call GetScriptByte
 	ld d, a
-	ld b, $0
-	call Function979ee
+	ld b, 0 ; clear
+	call _EngineFlagAction
 	ret
 ; 0x979d7
 
@@ -2748,18 +2755,18 @@
 	ld e, a
 	call GetScriptByte
 	ld d, a
-	ld b, $2
-	call Function979ee
+	ld b, 2 ; check
+	call _EngineFlagAction
 	ld a, c
 	and a
-	jr z, .asm_979ea ; 0x979e6 $2
-	ld a, $1
-.asm_979ea
+	jr z, .false ; 0x979e6 $2
+	ld a, 1
+.false
 	ld [ScriptVar], a
 	ret
 ; 0x979ee
 
-Function979ee: ; 0x979ee
+_EngineFlagAction: ; 0x979ee
 	callba EngineFlagAction
 	ret
 ; 0x979f5
@@ -2808,7 +2815,7 @@
 	set 5, a
 	or c
 	ld [wd45b], a
-; 0x97a1d
+; fall through
 
 Script_warp: ; 0x97a1d
 ; script command 0x3c
@@ -2818,9 +2825,10 @@
 ;     x (SingleByteParam)
 ;     y (SingleByteParam)
 
+; This seems to be some sort of error handling case.
 	call GetScriptByte
 	and a
-	jr z, .asm_97a4a ; 0x97a21 $27
+	jr z, .not_ok ; 0x97a21 $27
 	ld [MapGroup], a
 	call GetScriptByte
 	ld [MapNumber], a
@@ -2828,24 +2836,24 @@
 	ld [XCoord], a
 	call GetScriptByte
 	ld [YCoord], a
-	ld a, $ff
+	ld a, -1
 	ld [wd001], a
-	ld a, $f1
+	ld a, -15
 	ld [$ff9f], a
-	ld a, $1
-	call Function261b
+	ld a, 1
+	call LoadMapStatus
 	call StopScript
 	ret
-.asm_97a4a
+.not_ok
 	call GetScriptByte
 	call GetScriptByte
 	call GetScriptByte
-	ld a, $ff
+	ld a, -1
 	ld [wd001], a
-	ld a, $fb
+	ld a, -5
 	ld [$ff9f], a
-	ld a, $1
-	call Function261b
+	ld a, 1
+	call LoadMapStatus
 	call StopScript
 	ret
 ; 0x97a65
@@ -2882,7 +2890,7 @@
 Script_reloadmapmusic: ; 0x97a85
 ; script command 0x83
 
-	ld a, $1
+	ld a, 1
 	ld [wc2c1], a
 	ret
 ; 0x97a8b
@@ -2913,7 +2921,7 @@
 	ld b, a
 	callba Function97e5c
 	ret c
-	ld a, $1
+	ld a, 1
 	ld [ScriptVar], a
 	ret
 ; 0x97ab3
@@ -2929,8 +2937,8 @@
 	ld [MapBlockDataPointer], a
 	call GetScriptByte
 	ld [MapBlockDataPointer + 1], a
-	call Function24e4
-	call Function2879
+	call ChangeMap
+	call BufferScreen
 	ret
 ; 0x97acc
 
@@ -2942,15 +2950,15 @@
 ;     block (SingleByteParam)
 
 	call GetScriptByte
-	add $4
+	add 4
 	ld d, a
 	call GetScriptByte
-	add $4
+	add 4
 	ld e, a
-	call Function2a66
+	call GetBlockLocation
 	call GetScriptByte
 	ld [hl], a
-	call Function2879
+	call BufferScreen
 	ret
 ; 0x97ae3
 
@@ -2962,7 +2970,7 @@
 	call Function2173
 	call Function2914
 	callba Function104061
-	call Function1ad2
+	call DrawOnMap
 	ret
 ; 0x97af6
 
@@ -2971,12 +2979,12 @@
 
 	call Function224a
 	ret nc
-	callba Function966d0
+	callba SetAll_ScriptFlags3
 	ret
 ; 0x97b01
 
 Function97b01: ; 0x97b01
-	callba Function966d0
+	callba SetAll_ScriptFlags3
 	ret
 ; 0x97b08
 
@@ -2987,8 +2995,8 @@
 
 	call GetScriptByte
 	ld [$ff9f], a
-	ld a, $1
-	call Function261b
+	ld a, 1
+	call LoadMapStatus
 	call StopScript
 	ret
 ; 0x97b16
@@ -3064,14 +3072,14 @@
 
 	call GetScriptByte
 	and a
-	jr z, .asm_97b50 ; 0x97b4b $3
+	jr z, .loop ; 0x97b4b $3
 	ld [ScriptDelay], a
-.asm_97b50
+.loop
 	ld c, 2
 	call DelayFrames
 	ld hl, ScriptDelay
 	dec [hl]
-	jr nz, .asm_97b50 ; 0x97b59 $f5
+	jr nz, .loop ; 0x97b59 $f5
 	ret
 ; 0x97b5c
 
@@ -3082,9 +3090,9 @@
 
 	call GetScriptByte
 	and a
-	jr z, .asm_97b65 ; 0x97b60 $3
+	jr z, .no_time ; 0x97b60 $3
 	ld [ScriptDelay], a
-.asm_97b65
+.no_time
 	ld a, SCRIPT_WAIT
 	ld [ScriptMode], a
 	call StopScript
@@ -3104,9 +3112,9 @@
 ; script command 0x91
 
 	call ExitScriptSubroutine
-	jr c, .asm_97b7a
+	jr c, .resume
 	ret
-.asm_97b7a
+.resume
 	xor a
 	ld [ScriptRunning], a
 	ld a, SCRIPT_OFF
@@ -3121,8 +3129,8 @@
 ; script command 0x90
 
 	call ExitScriptSubroutine
-	jr c, .asm_97b91
-.asm_97b91
+	jr c, .dummy
+.dummy
 	ld hl, ScriptFlags
 	res 0, [hl]
 	call StopScript
@@ -3135,17 +3143,17 @@
 	ld hl, wd43c
 	ld a, [hl]
 	and a
-	jr z, .asm_97bbe ; 0x97b9f $1d
+	jr z, .done ; 0x97b9f $1d
 	dec [hl]
 	ld e, [hl]
 	ld d, $0
 	ld hl, wd43d
-	add hl, de
-	add hl, de
-	add hl, de
+rept 3
+	add hl,de
+endr
 	ld a, [hli]
 	ld b, a
-	and $7f
+	and " "
 	ld [ScriptBank], a
 	ld a, [hli]
 	ld e, a
@@ -3155,7 +3163,7 @@
 	ld [ScriptPos + 1], a
 	and a
 	ret
-.asm_97bbe
+.done
 	scf
 	ret
 ; 0x97bc0
@@ -3196,7 +3204,7 @@
 DisplayCredits:
 	call Script_resetfuncs
 	ld a, $3
-	call Function261b
+	call LoadMapStatus
 	call StopScript
 	ret
 ; 0x97c051
@@ -3208,13 +3216,13 @@
 
 	push bc
 	call GetScriptByte
-.asm_97c09
+.loop
 	push af
 	ld c, 6
 	call DelayFrames
 	pop af
 	dec a
-	jr nz, .asm_97c09 ; 0x97c11 $f6
+	jr nz, .loop ; 0x97c11 $f6
 	pop bc
 	ret
 ; 0x97c15
@@ -3229,7 +3237,7 @@
 ; 0x97c20
 
 
-Function97c20: ; 97c20
+Function97c20: ; 97c20 unreferenced
 	ld a, [.byte]
 	ld [ScriptVar], a
 	ret
--- a/engine/spawn_points.asm
+++ b/engine/spawn_points.asm
@@ -18,7 +18,7 @@
 	spawn VIRIDIAN,    VIRIDIAN_CITY,              23, 26
 	spawn PEWTER,      PEWTER_CITY,                13, 26
 	spawn CERULEAN,    CERULEAN_CITY,              19, 22
-	spawn ROCK_TUNNEL, ROUTE_10A,                  11,  2
+	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
@@ -41,22 +41,24 @@
 	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
 
-	db -1, -1, -1, -1
 
-	const NUM_SPAWNS
 
-
 LoadSpawnPoint: ; 1531f
+	; loads the spawn point in wd001
 	push hl
 	push de
 	ld a, [wd001]
-	cp -1
-	jr z, .asm_15341
+	cp SPAWN_N_A
+	jr z, .spawn_n_a
 	ld l, a
 	ld h, 0
-	add hl, hl
-	add hl, hl
+rept 2 ; multiply hl by 4
+	add hl,hl
+endr
 	ld de, SpawnPoints
 	add hl, de
 	ld a, [hli]
@@ -67,7 +69,7 @@
 	ld [XCoord], a
 	ld a, [hli]
 	ld [YCoord], a
-.asm_15341
+.spawn_n_a
 	pop de
 	pop hl
 	ret
@@ -75,32 +77,33 @@
 
 
 IsSpawnPoint: ; 15344
+; Checks if the map loaded in de is a spawn point.  Returns carry if it's a spawn point.
 	ld hl, SpawnPoints
 	ld c, 0
-.asm_15349
+.loop
 	ld a, [hl]
-	cp -1
-	jr z, .asm_1535f
+	cp SPAWN_N_A
+	jr z, .nope
 	cp d
-	jr nz, .asm_15356
+	jr nz, .next
 	inc hl
 	ld a, [hld]
 	cp e
-	jr z, .asm_15361
+	jr z, .yes
 
-.asm_15356
+.next
 	push bc
 	ld bc, 4
 	add hl, bc
 	pop bc
 	inc c
-	jr .asm_15349
+	jr .loop
 
-.asm_1535f
+.nope
 	and a
 	ret
 
-.asm_15361
+.yes
 	scf
 	ret
 ; 15363
--- a/engine/specials.asm
+++ b/engine/specials.asm
@@ -2,9 +2,9 @@
 Special:: ; c01b
 ; Run script special de.
 	ld hl, SpecialsPointers
-	add hl, de
-	add hl, de
-	add hl, de
+rept 3
+	add hl,de
+endr
 	ld b, [hl]
 	inc hl
 	ld a, [hli]
@@ -16,64 +16,68 @@
 ; c029
 
 SpecialsPointers:: ; c029
-	add_special Function97c28
-	add_special Function29ce8
-	add_special Function29d11
-	add_special Function29d92
-	add_special Function29e66
-	add_special Function29e82
-	add_special Function29efa
-	add_special Function29eee
-	add_special Function29c92
-	add_special Function29cf1
-	add_special Function29cfa
-	add_special Function29bfb
-	add_special Function29c7b
-	add_special Function29ec4
-	add_special Function29ed9
-	add_special Function29eaf
-	add_special Function29f47
-	add_special Functionc2f6
-	add_special Functionc309
-	add_special Function1050b9
-	add_special Functionc34a
-	add_special Function4d9e5
-	add_special Function13a12
-	add_special Function13a31
-	add_special Function135db
-	add_special Functionfbb32
-	add_special Functionfbcd2
+	add_special WarpToSpawnPoint
+
+; Communications
+	add_special Special_SetBitsForLinkTradeRequest
+	add_special Special_WaitForLinkedFriend
+	add_special Special_CheckLinkTimeout
+	add_special Special_TryQuickSave
+	add_special Special_CheckBothSelectedSameRoom
+	add_special Special_FailedLinkToPast
+	add_special Special_CloseLink
+	add_special Special_AbortLink
+	add_special Special_SetBitsForBattleRequest
+	add_special Special_SetBitsForTimeCapsuleRequest
+	add_special Special_CheckTimeCapsuleCompatibility
+	add_special Special_EnterTimeCapsule
+	add_special Special_TradeCenter
+	add_special Special_Colosseum
+	add_special Special_TimeCapsule
+	add_special Special_CableClubCheckWhichChris
+	add_special Special_CheckMysteryGift
+	add_special Special_GetMysteryGiftItem
+	add_special Special_UnlockMysteryGift
+
+; Bug Catching Contest
+	add_special BugContestJudging
+	add_special CheckPartyFullAfterContest
+	add_special CheckFirstMonFainted
+	add_special ContestReturnMons
+	add_special Special_GiveParkBalls
+	add_special Special_CheckMagikarpLength
+	add_special Special_MagikarpHouseSign
 	add_special HealParty
-	add_special Function1559a
-	add_special Functionc2e7
-	add_special Function166d6
-	add_special Function1672a
-	add_special Function16936
+	add_special PokemonCenterPC
+	add_special Special_KrissHousePC
+	add_special Special_DayCareMan
+	add_special Special_DayCareLady
+	add_special Special_DayCareManOutside
 	add_special MoveDeletion
-	add_special Function16218
-	add_special Function8cc04
+	add_special Special_BankOfMom
+	add_special Special_MagnetTrain
 	add_special SpecialNameRival
-	add_special Function90913
-	add_special Functionc2c0
-	add_special Functionc2cd
-	add_special Functionc355
-	add_special Functionc360
-	add_special Functionc373
-	add_special Functionc380
-	add_special Functionc38d
-	add_special Functionc3db
-	add_special Function8c084
-	add_special Function8c092
-	add_special Function8c0b6
-	add_special Function8c079
-	add_special Function8c0ab
-	add_special Functiond91
+	add_special Special_SetDayOfWeek
+	add_special Special_TownMap
+	add_special Special_UnownPrinter
+	add_special MapRadio
+	add_special Special_UnownPuzzle
+	add_special Special_SlotMachine
+	add_special Special_CardFlip
+	add_special Special_DummyNonfunctionalGameCornerGame
+	add_special Special_WhiteBGMapBufferScreen
+	add_special FadeBlackBGMap
+	add_special Special_BattleTowerFade
+	add_special Special_FadeBlackQuickly
+	add_special FadeInBGMap
+	add_special Special_FadeInQuickly
+	add_special Special_ReloadSpritesNoPalettes
 	add_special WhiteBGMap
 	add_special UpdateTimePals
 	add_special ClearTileMap
-	add_special Function1ad2
-	add_special Functione4a
-	add_special Functionc230
+	add_special DrawOnMap
+	add_special Special_ReplaceKrisSprite
+	add_special Special_GameCornerPrizeMonCheckDex
 	add_special SpecialSeenMon
 	add_special WaitSFX
 	add_special PlayMapMusic
@@ -87,10 +91,10 @@
 	add_special Functionc3ef
 	add_special Function17421
 	add_special Function17440
-	add_special Function139a8
+	add_special Special_SelectRandomBugContestContestants
 	add_special Functionc3fc
-	add_special Function26feb
-	add_special Function27043
+	add_special ToggleMaptileDecorations
+	add_special ToggleDecorationsVisibility
 	add_special SpecialGiveShuckle
 	add_special SpecialReturnShuckle
 	add_special Function73f7
@@ -105,12 +109,12 @@
 	add_special Function88018
 	add_special SpecialNameRater
 	add_special Functionc2da
-	add_special Function718d
+	add_special GetFirstPokemonHappiness
 	add_special Function71ac
 	add_special Function2a4ab
 	add_special Function2a51f
 	add_special RandomPhoneMon
-	add_special Function14209
+	add_special RunCallback_04
 	add_special Functionfb841
 	add_special SpecialSnorlaxAwake
 	add_special Function7413
@@ -148,10 +152,10 @@
 	add_special Function101225
 	add_special Function101231
 	add_special Function4925b
-	add_special Function8adef
+	add_special SpecialOmanyteChamber
 	add_special Function11c1ab
 	add_special Function170687
-	add_special Function8ae68
+	add_special Special_DisplayUnownWords
 	add_special Function17d224
 	add_special Function17d2b6
 	add_special Function17d2ce
@@ -170,10 +174,10 @@
 	add_special SpecialMonCheck
 	add_special Functionc225
 	add_special Function170bd2
-	add_special Function10366e
+	add_special Mobile_SelectThreeMons
 	add_special Function1037eb
 	add_special Function10383c
-	add_special Function1060a2
+	add_special Mobile_HealParty
 	add_special Function14168
 	add_special Function1037c2
 	add_special Function10630f
@@ -180,7 +184,7 @@
 	add_special Function103780
 	add_special Function10387b
 	add_special Function4ae12
-	add_special Function1047eb
+	add_special LoadMapPalettes
 	add_special Function4a927
 	add_special Function90a54
 	add_special Function90a88
@@ -198,7 +202,7 @@
 	ret
 ; c230
 
-Functionc230: ; c230
+Special_GameCornerPrizeMonCheckDex: ; c230
 	ld a, [ScriptVar]
 	dec a
 	call CheckCaughtMon
@@ -263,7 +267,7 @@
 SpecialNameRival: ; 0xc29d
 	ld b, $2 ; rival
 	ld de, RivalName
-	callba Function116b7
+	callba _NamingScreen
 	; default to "SILVER"
 	ld hl, RivalName
 	ld de, DefaultRivalName
@@ -279,7 +283,7 @@
 	ret
 ; c2c0
 
-Functionc2c0: ; c2c0
+Special_TownMap: ; c2c0
 	call FadeToMenu
 	callba Function9191c
 	call Function2b4d
@@ -286,7 +290,7 @@
 	ret
 ; c2cd
 
-Functionc2cd: ; c2cd
+Special_UnownPrinter: ; c2cd
 	call FadeToMenu
 	callba Function16be4
 	call Function2b4d
@@ -300,7 +304,7 @@
 	ret
 ; c2e7
 
-Functionc2e7: ; c2e7
+Special_KrissHousePC: ; c2e7
 	xor a
 	ld [ScriptVar], a
 	callba Function156d9
@@ -309,21 +313,21 @@
 	ret
 ; c2f6
 
-Functionc2f6: ; c2f6
+Special_CheckMysteryGift: ; c2f6
 	ld a, $0
 	call GetSRAMBank
 	ld a, [$abe2]
 	and a
-	jr z, .asm_c302
+	jr z, .no
 	inc a
 
-.asm_c302
+.no
 	ld [ScriptVar], a
 	call CloseSRAM
 	ret
 ; c309
 
-Functionc309: ; c309
+Special_GetMysteryGiftItem: ; c309
 	ld a, $0
 	call GetSRAMBank
 	ld a, [$abe2]
@@ -358,21 +362,21 @@
 	db "@"
 ; 0xc34a
 
-Functionc34a: ; c34a
-	callba Function1369d
+BugContestJudging: ; c34a
+	callba _BugContestJudging
 	ld a, b
 	ld [ScriptVar], a
 	ret
 ; c355
 
-Functionc355: ; c355
+MapRadio: ; c355
 	ld a, [ScriptVar]
 	ld e, a
-	callba Function91a53
+	callba PlayRadio
 	ret
 ; c360
 
-Functionc360: ; c360
+Special_UnownPuzzle: ; c360
 	call FadeToMenu
 	callba Functione1190
 	ld a, [wd0ec]
@@ -381,34 +385,34 @@
 	ret
 ; c373
 
-Functionc373: ; c373
-	call Functionc3ae
+Special_SlotMachine: ; c373
+	call Special_CheckCoins
 	ret c
-	ld a, BANK(Function926c7)
-	ld hl, Function926c7
-	call Functionc39a
+	ld a, BANK(_SlotMachine)
+	ld hl, _SlotMachine
+	call Special_StartGameCornerGame
 	ret
 ; c380
 
-Functionc380: ; c380
-	call Functionc3ae
+Special_CardFlip: ; c380
+	call Special_CheckCoins
 	ret c
-	ld a, BANK(Functione00ee)
-	ld hl, Functione00ee
-	call Functionc39a
+	ld a, BANK(_CardFlip)
+	ld hl, _CardFlip
+	call Special_StartGameCornerGame
 	ret
 ; c38d
 
-Functionc38d: ; c38d
-	call Functionc3ae
+Special_DummyNonfunctionalGameCornerGame: ; c38d
+	call Special_CheckCoins
 	ret c
-	ld a, BANK(Functione1e5b)
-	ld hl, Functione1e5b
-	call Functionc39a
+	ld a, BANK(_DummyGame)
+	ld hl, _DummyGame
+	call Special_StartGameCornerGame
 	ret
 ; c39a
 
-Functionc39a: ; c39a
+Special_StartGameCornerGame: ; c39a
 	call Function31cf
 	call FadeToMenu
 	ld hl, wd0e8
@@ -423,7 +427,7 @@
 	ret
 ; c3ae
 
-Functionc3ae: ; c3ae
+Special_CheckCoins: ; c3ae
 	ld hl, Coins
 	ld a, [hli]
 	or [hl]
@@ -461,9 +465,9 @@
 	db "@"
 ; 0xc3db
 
-Functionc3db: ; c3db
+Special_WhiteBGMapBufferScreen: ; c3db
 	call WhiteBGMap
-	call Function2879
+	call BufferScreen
 	ret
 ; c3e2
 
@@ -492,10 +496,11 @@
 ; c403
 
 
-Functionc403:: ; c403
+LoadWildData:: ; c403
 	ld a, c
 	and a
-	jr nz, .asm_c410
+	jr nz, .swarm_route35
+; swarm dark cave violet entrance
 	ld a, d
 	ld [wdfcc], a
 	ld a, e
@@ -502,7 +507,7 @@
 	ld [wdfcd], a
 	ret
 
-.asm_c410
+.swarm_route35
 	ld a, d
 	ld [wdc5a], a
 	ld a, e
--- a/engine/std_scripts.asm
+++ b/engine/std_scripts.asm
@@ -46,10 +46,10 @@
 	dbw BANK(RematchGiftFScript), RematchGiftFScript
 	dbw BANK(GymStatue1Script), GymStatue1Script
 	dbw BANK(GymStatue2Script), GymStatue2Script
-	dbw BANK(UnknownScript_0xbcdb9), UnknownScript_0xbcdb9
-	dbw BANK(UnknownScript_0xbcdc3), UnknownScript_0xbcdc3
+	dbw BANK(ReceiveItemScript), ReceiveItemScript
+	dbw BANK(ReceiveTogepiEggScript), ReceiveTogepiEggScript
 	dbw BANK(PCScript), PCScript
-	dbw BANK(UnknownScript_0xbcdcd), UnknownScript_0xbcdcd
+	dbw BANK(GameCornerCoinVendorScript), GameCornerCoinVendorScript
 	dbw BANK(HappinessCheckScript), HappinessCheckScript
 
 PokeCenterNurseScript:
@@ -107,12 +107,12 @@
 
 	farwritetext UnknownText_0x1b01bd
 	pause 20
-	special Function1060a2
+	special Mobile_HealParty
 	spriteface $fe, LEFT
 	pause 10
 	special HealParty
 	playmusic MUSIC_NONE
-	writebyte 0
+	writebyte 0 ; Machine is at a Pokemon Center
 	special HealMachineAnim
 	pause 30
 	special RestartMapMusic
@@ -159,7 +159,7 @@
 
 .pokerus_done
 	setflag ENGINE_POKERUS
-	specialphonecall 1 ; elm calls about pokerus
+	specialphonecall ELMCALL_POKERUS
 	end
 
 DifficultBookshelfScript:
@@ -184,7 +184,7 @@
 	loadfont
 	farwritetext TownMapText
 	closetext
-	special Functionc2c0
+	special Special_TownMap
 	loadmovesprites
 	end
 
@@ -204,7 +204,7 @@
 Radio1Script:
 	loadfont
 	writebyte $0
-	special Functionc355
+	special MapRadio
 	loadmovesprites
 	end
 
@@ -212,7 +212,7 @@
 ; Lucky Channel
 	loadfont
 	writebyte $4
-	special Functionc355
+	special MapRadio
 	loadmovesprites
 	end
 
@@ -221,7 +221,7 @@
 
 PCScript:
 	loadfont
-	special Function1559a
+	special PokemonCenterPC
 	loadmovesprites
 	end
 
@@ -244,7 +244,7 @@
 	farjumptext MartSignText
 
 DayToTextScript:
-	checkcode $b
+	checkcode VAR_WEEKDAY
 	if_equal MONDAY, .Monday
 	if_equal TUESDAY, .Tuesday
 	if_equal WEDNESDAY, .Wednesday
@@ -287,362 +287,362 @@
 	db "SATURDAY@"
 
 GoldenrodRocketsScript:
-	clearevent $06cd
+	clearevent EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER
 	end
 
 RadioTowerRocketsScript:
-	setflag $0013
-	setevent $06cf
-	setevent $06d1
-	clearevent $06ce
-	clearevent $0025
-	setevent $0756
-	specialphonecall $0004
+	setflag ENGINE_ROCKETS_IN_RADIO_TOWER
+	setevent EVENT_GOLDENROD_CITY_CIVILIANS
+	setevent EVENT_RADIO_TOWER_BLACKBELT_BLOCKS_STAIRS
+	clearevent EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	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
 	end
 
 BugContestResultsWarpScript:
 	special WhiteBGMap
-	scall UnknownScript_0xbc380
-	setevent $0747
-	clearevent $0748
-	setevent $02d2
+	scall BugContestResults_CopyContestantsToResults
+	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
-	applymovement $0, MovementData_0xbcea1
+	applymovement $0, Movement_ContestResults_WalkAfterWarp
 
 BugContestResultsScript:
-	clearflag $0011
-	clearevent $02d2
-	clearevent $0313
-	clearevent $0314
-	clearevent $0315
-	clearevent $0316
+	clearflag ENGINE_BUG_CONTEST_TIMER
+	clearevent EVENT_WARPED_FROM_ROUTE_35_NATIONAL_PARK_GATE
+	clearevent EVENT_CONTEST_OFFICER_HAS_SUN_STONE
+	clearevent EVENT_CONTEST_OFFICER_HAS_EVERSTONE
+	clearevent EVENT_CONTEST_OFFICER_HAS_GOLD_BERRY
+	clearevent EVENT_CONTEST_OFFICER_HAS_BERRY
 	loadfont
-	farwritetext UnknownText_0x1b05bf
+	farwritetext ContestResults_ReadyToJudgeText
 	closetext
-	special Functionc34a
+	special BugContestJudging
 	RAM2MEM $0
-	if_equal $1, UnknownScript_0xbc31e
-	if_equal $2, UnknownScript_0xbc332
-	if_equal $3, UnknownScript_0xbc343
-	farwritetext UnknownText_0x1b0681
+	if_equal 1, BugContestResults_FirstPlace
+	if_equal 2, BugContestResults_SecondPlace
+	if_equal 3, BugContestResults_ThirdPlace
+	farwritetext ContestResults_ConsolationPrizeText
 	keeptextopen
 	waitbutton
 	verbosegiveitem BERRY, 1
-	iffalse UnknownScript_0xbc375
+	iffalse BugContestResults_NoRoomForBerry
 
-UnknownScript_0xbc2a9:
-	farwritetext UnknownText_0x1b06b7
+BugContestResults_DidNotWin
+	farwritetext ContestResults_DidNotWinText
 	keeptextopen
-	jump UnknownScript_0xbc2b6
+	jump BugContestResults_FinishUp
 ; 0xbc2b1
 
-UnknownScript_0xbc2b1: ; 0xbc2b1
-	farwritetext UnknownText_0x1b065b
+BugContestResults_ReturnAfterWinnersPrize ; 0xbc2b1
+	farwritetext ContestResults_JoinUsNextTimeText
 	keeptextopen
 
-UnknownScript_0xbc2b6:
-	checkevent $0308
-	iffalse UnknownScript_0xbc2c4
-	farwritetext UnknownText_0x1b06d9
+BugContestResults_FinishUp
+	checkevent EVENT_LEFT_MONS_WITH_CONTEST_OFFICER
+	iffalse BugContestResults_DidNotLeaveMons
+	farwritetext ContestResults_ReturnPartyText
 	closetext
-	special Function13a31
-UnknownScript_0xbc2c4:
-	special Function4d9e5
-	if_equal $0, UnknownScript_0xbc2d4
-	if_equal $2, UnknownScript_0xbc2d4
-	farwritetext UnknownText_0x1b070d
+	special ContestReturnMons
+BugContestResults_DidNotLeaveMons
+	special CheckPartyFullAfterContest
+	if_equal $0, BugContestResults_CleanUp
+	if_equal $2, BugContestResults_CleanUp
+	farwritetext ContestResults_PartyFullText
 	closetext
-UnknownScript_0xbc2d4:
+BugContestResults_CleanUp
 	loadmovesprites
 	dotrigger $0
 	domaptrigger GROUP_ROUTE_35_NATIONAL_PARK_GATE, MAP_ROUTE_35_NATIONAL_PARK_GATE, $0
-	setevent $0716
-	setevent $0717
-	setevent $0718
-	setevent $0719
-	setevent $071a
-	setevent $071b
-	setevent $071c
-	setevent $071d
-	setevent $071e
-	setevent $071f
-	setevent $0720
-	setevent $0721
-	setevent $0722
-	setevent $0723
-	setevent $0724
-	setevent $0725
-	setevent $0726
-	setevent $0727
-	setevent $0728
-	setevent $0729
-	setflag $0051
+	setevent EVENT_BUG_CATCHING_CONTESTANT_1A
+	setevent EVENT_BUG_CATCHING_CONTESTANT_2A
+	setevent EVENT_BUG_CATCHING_CONTESTANT_3A
+	setevent EVENT_BUG_CATCHING_CONTESTANT_4A
+	setevent EVENT_BUG_CATCHING_CONTESTANT_5A
+	setevent EVENT_BUG_CATCHING_CONTESTANT_6A
+	setevent EVENT_BUG_CATCHING_CONTESTANT_7A
+	setevent EVENT_BUG_CATCHING_CONTESTANT_8A
+	setevent EVENT_BUG_CATCHING_CONTESTANT_9A
+	setevent EVENT_BUG_CATCHING_CONTESTANT_10A
+	setevent EVENT_BUG_CATCHING_CONTESTANT_1B
+	setevent EVENT_BUG_CATCHING_CONTESTANT_2B
+	setevent EVENT_BUG_CATCHING_CONTESTANT_3B
+	setevent EVENT_BUG_CATCHING_CONTESTANT_4B
+	setevent EVENT_BUG_CATCHING_CONTESTANT_5B
+	setevent EVENT_BUG_CATCHING_CONTESTANT_6B
+	setevent EVENT_BUG_CATCHING_CONTESTANT_7B
+	setevent EVENT_BUG_CATCHING_CONTESTANT_8B
+	setevent EVENT_BUG_CATCHING_CONTESTANT_9B
+	setevent EVENT_BUG_CATCHING_CONTESTANT_10B
+	setflag ENGINE_DAILY_BUG_CONTEST
 	special PlayMapMusic
 	end
 ; 0xbc31e
 
-UnknownScript_0xbc31e: ; 0xbc31e
-	setevent $0000
+BugContestResults_FirstPlace ; 0xbc31e
+	setevent EVENT_GAVE_KURT_APRICORNS
 	itemtotext SUN_STONE, $1
-	farwritetext UnknownText_0x1b0621
+	farwritetext ContestResults_PlayerWonAPrizeText
 	closetext
 	verbosegiveitem SUN_STONE, 1
-	iffalse UnknownScript_0xbc354
-	jump UnknownScript_0xbc2b1
+	iffalse BugContestResults_NoRoomForSunStone
+	jump BugContestResults_ReturnAfterWinnersPrize
 ; 0xbc332
 
-UnknownScript_0xbc332: ; 0xbc332
+BugContestResults_SecondPlace ; 0xbc332
 	itemtotext EVERSTONE, $1
-	farwritetext UnknownText_0x1b0621
+	farwritetext ContestResults_PlayerWonAPrizeText
 	closetext
 	verbosegiveitem EVERSTONE, 1
-	iffalse UnknownScript_0xbc35f
-	jump UnknownScript_0xbc2b1
+	iffalse BugContestResults_NoRoomForEverstone
+	jump BugContestResults_ReturnAfterWinnersPrize
 ; 0xbc343
 
-UnknownScript_0xbc343: ; 0xbc343
+BugContestResults_ThirdPlace ; 0xbc343
 	itemtotext GOLD_BERRY, $1
-	farwritetext UnknownText_0x1b0621
+	farwritetext ContestResults_PlayerWonAPrizeText
 	closetext
 	verbosegiveitem GOLD_BERRY, 1
-	iffalse UnknownScript_0xbc36a
-	jump UnknownScript_0xbc2b1
+	iffalse BugContestResults_NoRoomForGoldBerry
+	jump BugContestResults_ReturnAfterWinnersPrize
 ; 0xbc354
 
-UnknownScript_0xbc354: ; 0xbc354
+BugContestResults_NoRoomForSunStone ; 0xbc354
 	farwritetext UnknownText_0x1b08cc
 	keeptextopen
-	setevent $0313
-	jump UnknownScript_0xbc2b1
+	setevent EVENT_CONTEST_OFFICER_HAS_SUN_STONE
+	jump BugContestResults_ReturnAfterWinnersPrize
 ; 0xbc35f
 
-UnknownScript_0xbc35f: ; 0xbc35f
+BugContestResults_NoRoomForEverstone ; 0xbc35f
 	farwritetext UnknownText_0x1b08cc
 	keeptextopen
-	setevent $0314
-	jump UnknownScript_0xbc2b1
+	setevent EVENT_CONTEST_OFFICER_HAS_EVERSTONE
+	jump BugContestResults_ReturnAfterWinnersPrize
 ; 0xbc36a
 
-UnknownScript_0xbc36a: ; 0xbc36a
+BugContestResults_NoRoomForGoldBerry ; 0xbc36a
 	farwritetext UnknownText_0x1b08cc
 	keeptextopen
-	setevent $0315
-	jump UnknownScript_0xbc2b1
+	setevent EVENT_CONTEST_OFFICER_HAS_GOLD_BERRY
+	jump BugContestResults_ReturnAfterWinnersPrize
 ; 0xbc375
 
-UnknownScript_0xbc375: ; 0xbc375
+BugContestResults_NoRoomForBerry ; 0xbc375
 	farwritetext UnknownText_0x1b08cc
 	keeptextopen
-	setevent $0316
-	jump UnknownScript_0xbc2a9
+	setevent EVENT_CONTEST_OFFICER_HAS_BERRY
+	jump BugContestResults_DidNotWin
 ; 0xbc380
 
-UnknownScript_0xbc380: ; 0xbc380
-	checkevent $0716
+BugContestResults_CopyContestantsToResults ; 0xbc380
+	checkevent EVENT_BUG_CATCHING_CONTESTANT_1A
 	iftrue .skip1
-	clearevent $0720
+	clearevent EVENT_BUG_CATCHING_CONTESTANT_1B
 .skip1
-	checkevent $0717
+	checkevent EVENT_BUG_CATCHING_CONTESTANT_2A
 	iftrue .skip2
-	clearevent $0721
+	clearevent EVENT_BUG_CATCHING_CONTESTANT_2B
 .skip2
-	checkevent $0718
+	checkevent EVENT_BUG_CATCHING_CONTESTANT_3A
 	iftrue .skip3
-	clearevent $0722
+	clearevent EVENT_BUG_CATCHING_CONTESTANT_3B
 .skip3
-	checkevent $0719
+	checkevent EVENT_BUG_CATCHING_CONTESTANT_4A
 	iftrue .skip4
-	clearevent $0723
+	clearevent EVENT_BUG_CATCHING_CONTESTANT_4B
 .skip4
-	checkevent $071a
+	checkevent EVENT_BUG_CATCHING_CONTESTANT_5A
 	iftrue .skip5
-	clearevent $0724
+	clearevent EVENT_BUG_CATCHING_CONTESTANT_5B
 .skip5
-	checkevent $071b
+	checkevent EVENT_BUG_CATCHING_CONTESTANT_6A
 	iftrue .skip6
-	clearevent $0725
+	clearevent EVENT_BUG_CATCHING_CONTESTANT_6B
 .skip6
-	checkevent $071c
+	checkevent EVENT_BUG_CATCHING_CONTESTANT_7A
 	iftrue .skip7
-	clearevent $0726
+	clearevent EVENT_BUG_CATCHING_CONTESTANT_7B
 .skip7
-	checkevent $071d
+	checkevent EVENT_BUG_CATCHING_CONTESTANT_8A
 	iftrue .skip8
-	clearevent $0727
+	clearevent EVENT_BUG_CATCHING_CONTESTANT_8B
 .skip8
-	checkevent $071e
+	checkevent EVENT_BUG_CATCHING_CONTESTANT_9A
 	iftrue .skip9
-	clearevent $0728
+	clearevent EVENT_BUG_CATCHING_CONTESTANT_9B
 .skip9
-	checkevent $071f
+	checkevent EVENT_BUG_CATCHING_CONTESTANT_10A
 	iftrue .skip10
-	clearevent $0729
+	clearevent EVENT_BUG_CATCHING_CONTESTANT_10B
 .skip10
 	end
 
 InitializeEventsScript:
-	setevent $06cb
-	setevent $06ce
-	setevent $06cd
-	setevent $06d0
-	setevent $06f3
-	setevent $06e9
-	setevent $06f4
-	setevent $06d5
-	setevent $06de
-	setevent $06dd
-	setevent $06df
-	setevent $06c0
-	setevent $06e4
-	setevent $0025
-	setevent $06be
-	setevent $06bf
-	setevent $06c1
-	setevent $06f9
-	setevent $06fd
-	setevent $06ff
-	setevent $0700
-	setevent $0702
-	setevent $0703
-	setevent $0704
-	setevent $070d
-	setevent $070e
-	setevent $070f
-	setevent $0710
-	setevent $0715
-	setevent $0716
-	setevent $0717
-	setevent $0718
-	setevent $0719
-	setevent $071a
-	setevent $071b
-	setevent $071c
-	setevent $071d
-	setevent $071e
-	setevent $071f
-	setevent $0720
-	setevent $0721
-	setevent $0722
-	setevent $0723
-	setevent $0724
-	setevent $0725
-	setevent $0726
-	setevent $0727
-	setevent $0728
-	setevent $0729
-	setevent $072c
-	setevent $072f
-	setevent $072d
-	setevent $0735
-	setevent $0736
-	setevent $073c
-	setevent $073d
-	setevent $0741
-	setevent $0742
-	setevent $0743
-	setevent $0744
-	setevent $02a4
-	setevent $02af
-	setevent $0749
-	setevent $06d3
-	setevent $074d
-	setevent $0712
-	setevent $0713
-	setevent $0711
-	setevent $06d4
-	setevent $0304
-	setevent $0307
-	setevent $06d8
-	setevent $06c3
-	setevent $06c2
-	setevent $06c6
-	setevent $075f
-	setevent $0731
-	setevent $074a
-	setevent $0762
-	setevent $0738
-	setevent $073a
-	setevent $073b
-	setevent $0733
-	setevent $073f
-	setevent $078d
-	setevent $0766
-	setevent $0768
-	setevent $0769
-	setevent $076a
-	setevent $078e
-	setevent $078f
-	setevent $0790
-	setevent $0791
-	setevent $0793
-	setevent $07a4
-	setevent $07a4
-	setevent $07a5
-	setevent $06ec
-	setevent $06ed
-	setevent $06f0
-	setevent $07a9
-	setevent $07aa
-	setevent $06c8
-	setevent $07ac
-	setevent $07ad
-	setevent $07b5
-	setevent $07b6
-	setevent $07c5
-	setevent $07b7
-	setevent $07b0
-	setevent $07af
-	setevent $07ae
-	setevent $07cf
+	setevent EVENT_EARLS_ACADEMY_EARL
+	setevent EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	setevent EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER
+	setevent EVENT_RADIO_TOWER_CIVILIANS_AFTER
+	setevent EVENT_ILEX_FOREST_APPRENTICE
+	setevent EVENT_ILEX_FOREST_FARFETCHD
+	setevent EVENT_ILEX_FOREST_CHARCOAL_MASTER
+	setevent EVENT_MAHOGANY_MART_LANCE_AND_DRAGONITE
+	setevent EVENT_TEAM_ROCKET_BASE_B2F_GRUNT_WITH_EXECUTIVE
+	setevent EVENT_TEAM_ROCKET_BASE_B2F_EXECUTIVE
+	setevent EVENT_TEAM_ROCKET_BASE_B2F_DRAGONITE
+	setevent EVENT_RIVAL_TEAM_ROCKET_BASE
+	setevent EVENT_BLACKTHORN_CITY_SUPER_NERD_DOES_NOT_BLOCK_GYM
+	setevent EVENT_USED_THE_CARD_KEY_IN_THE_RADIO_TOWER
+	setevent EVENT_RIVAL_CHERRYGROVE_CITY
+	setevent EVENT_RIVAL_AZALEA_TOWN
+	setevent EVENT_RIVAL_UNDERGROUND_PATH
+	setevent EVENT_AZALEA_TOWN_SLOWPOKES
+	setevent EVENT_KURTS_HOUSE_SLOWPOKE
+	setevent EVENT_GUIDE_GENT_VISIBLE_IN_CHERRYGROVE
+	setevent EVENT_ELMS_AIDE_IN_VIOLET_POKEMON_CENTER
+	setevent EVENT_COP_IN_ELMS_LAB
+	setevent EVENT_RUINS_OF_ALPH_OUTSIDE_SCIENTIST
+	setevent EVENT_RUINS_OF_ALPH_RESEARCH_CENTER_SCIENTIST
+	setevent EVENT_BOULDER_IN_ICE_PATH_1A
+	setevent EVENT_BOULDER_IN_ICE_PATH_2A
+	setevent EVENT_BOULDER_IN_ICE_PATH_3A
+	setevent EVENT_BOULDER_IN_ICE_PATH_4A
+	setevent EVENT_ROUTE_30_YOUNGSTER_JOEY
+	setevent EVENT_BUG_CATCHING_CONTESTANT_1A
+	setevent EVENT_BUG_CATCHING_CONTESTANT_2A
+	setevent EVENT_BUG_CATCHING_CONTESTANT_3A
+	setevent EVENT_BUG_CATCHING_CONTESTANT_4A
+	setevent EVENT_BUG_CATCHING_CONTESTANT_5A
+	setevent EVENT_BUG_CATCHING_CONTESTANT_6A
+	setevent EVENT_BUG_CATCHING_CONTESTANT_7A
+	setevent EVENT_BUG_CATCHING_CONTESTANT_8A
+	setevent EVENT_BUG_CATCHING_CONTESTANT_9A
+	setevent EVENT_BUG_CATCHING_CONTESTANT_10A
+	setevent EVENT_BUG_CATCHING_CONTESTANT_1B
+	setevent EVENT_BUG_CATCHING_CONTESTANT_2B
+	setevent EVENT_BUG_CATCHING_CONTESTANT_3B
+	setevent EVENT_BUG_CATCHING_CONTESTANT_4B
+	setevent EVENT_BUG_CATCHING_CONTESTANT_5B
+	setevent EVENT_BUG_CATCHING_CONTESTANT_6B
+	setevent EVENT_BUG_CATCHING_CONTESTANT_7B
+	setevent EVENT_BUG_CATCHING_CONTESTANT_8B
+	setevent EVENT_BUG_CATCHING_CONTESTANT_9B
+	setevent EVENT_BUG_CATCHING_CONTESTANT_10B
+	setevent EVENT_FAST_SHIP_1F_GENTLEMAN
+	setevent EVENT_FAST_SHIP_B1F_SAILOR_RIGHT
+	setevent EVENT_FAST_SHIP_CABINS_NNW_NNE_NE_SAILOR
+	setevent EVENT_LAKE_OF_RAGE_CIVILIANS
+	setevent EVENT_MAHOGANY_MART_OWNERS
+	setevent EVENT_TIN_TOWER_ROOF_HO_OH
+	setevent EVENT_WHIRL_ISLAND_LUGIA_CHAMBER_LUGIA
+	setevent EVENT_KRISS_HOUSE_2F_CONSOLE
+	setevent EVENT_KRISS_HOUSE_2F_DOLL_1
+	setevent EVENT_KRISS_HOUSE_2F_DOLL_2
+	setevent EVENT_KRISS_HOUSE_2F_BIG_DOLL
+	setevent EVENT_DECO_BED_1
+	setevent EVENT_DECO_PLANT_4
+	setevent EVENT_GOLDENROD_TRAIN_STATION_GENTLEMAN
+	setevent EVENT_OLIVINE_GYM_JASMINE
+	setevent EVENT_BLACKTHORN_CITY_GRAMPS_NOT_BLOCKING_DRAGONS_DEN
+	setevent EVENT_MET_BILL
+	setevent EVENT_ECRUTEAK_POKE_CENTER_BILL
+	setevent EVENT_MYSTERY_GIFT_DELIVERY_GUY
+	setevent EVENT_LAKE_OF_RAGE_LANCE
+	setevent EVENT_WAREHOUSE_LAYOUT_1
+	setevent EVENT_WAREHOUSE_BLOCKED_OFF
+	setevent EVENT_DRAGONS_DEN_CLAIR
+	setevent EVENT_RIVAL_OLIVINE_CITY
+	setevent EVENT_RIVAL_VICTORY_ROAD
+	setevent EVENT_RIVAL_DRAGONS_DEN
+	setevent EVENT_LANCES_ROOM_OAK_AND_MARY
+	setevent EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_1
+	setevent EVENT_BURNED_TOWER_B1F_BEASTS_1
+	setevent EVENT_RED_IN_MT_SILVER
+	setevent EVENT_OLIVINE_PORT_SPRITES_AFTER_HALL_OF_FAME
+	setevent EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
+	setevent EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
+	setevent EVENT_OLIVINE_PORT_PASSAGE_POKEFAN_M
+	setevent EVENT_KURTS_HOUSE_KURT_2
+	setevent EVENT_KURTS_HOUSE_GRANDDAUGHTER_2
+	setevent EVENT_RANG_CLEAR_BELL_1
+	setevent EVENT_FLORIA_AT_FLOWER_SHOP
+	setevent EVENT_FLORIA_AT_SUDOWOODO
+	setevent EVENT_GOLDENROD_CITY_MOVE_TUTOR
+	setevent EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_FISHER
+	setevent EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_YOUNGSTERS
+	setevent EVENT_DRAGON_SHRINE_CLAIR
+	setevent EVENT_BATTLE_TOWER_BATTLE_ROOM_YOUNGSTER
+	setevent EVENT_KRISS_NEIGHBORS_HOUSE_NEIGHBOR
+	setevent EVENT_AZALEA_TOWN_KURT
+	setevent EVENT_AZALEA_TOWN_KURT
+	setevent EVENT_ILEX_FOREST_KURT
+	setevent EVENT_ROUTE_34_ILEX_FOREST_GATE_TEACHER_IN_WALKWAY
+	setevent EVENT_ILEX_FOREST_LASS
+	setevent EVENT_GOLDENROD_SALE_OFF
+	setevent EVENT_ECRUTEAK_CITY_GRAMPS
+	setevent EVENT_EUSINE_IN_BURNED_TOWER
+	setevent EVENT_KRISS_HOUSE_MOM_2
+	setevent EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2
+	setevent EVENT_CIANWOOD_CITY_EUSINE
+	setevent EVENT_TIN_TOWER_1F_EUSINE
+	setevent EVENT_TIN_TOWER_1F_WISE_TRIO_1
+	setevent EVENT_TIN_TOWER_1F_WISE_TRIO_2
+	setevent EVENT_SET_WHEN_FOUGHT_HO_OH
+	setevent EVENT_SAW_SUICUNE_ON_ROUTE_36
+	setevent EVENT_SAW_SUICUNE_ON_ROUTE_42
+	setevent EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY
+	setevent EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
 	setflag ENGINE_ROCKET_SIGNAL_ON_CH20
 	setflag ENGINE_ROCKETS_IN_MAHOGANY
-	variablesprite $4, $52
-	variablesprite $5, $4
-	variablesprite $6, $35
-	variablesprite $7, $a
-	variablesprite $8, $a
-	variablesprite $9, $a
-	variablesprite $a, $a
-	variablesprite $b, $28
-	variablesprite $c, $28
-	setevent $00fb
-	setevent $076d
-	setevent $076c
-	setevent $076e
-	setevent $076f
-	setevent $0773
-	setevent $0776
-	setevent $0777
-	setevent $0779
-	setevent $0772
-	setevent $077b
-	setevent $0036
+	variablesprite SPRITE_WEIRD_TREE, SPRITE_SUDOWOODO
+	variablesprite SPRITE_OLIVINE_RIVAL, SPRITE_SILVER
+	variablesprite SPRITE_AZALEA_ROCKET, SPRITE_ROCKET
+	variablesprite SPRITE_FUCHSIA_GYM_1, SPRITE_JANINE
+	variablesprite SPRITE_FUCHSIA_GYM_2, SPRITE_JANINE
+	variablesprite SPRITE_FUCHSIA_GYM_3, SPRITE_JANINE
+	variablesprite SPRITE_FUCHSIA_GYM_4, SPRITE_JANINE
+	variablesprite SPRITE_COPYCAT, SPRITE_LASS
+	variablesprite SPRITE_JANINE_IMPERSONATOR, SPRITE_LASS
+	setevent EVENT_FOUND_MACHINE_PART_IN_CERULEAN_GYM
+	setevent EVENT_CERULEAN_GYM_ROCKET
+	setevent EVENT_ROUTE_24_ROCKET
+	setevent EVENT_ROUTE_25_MISTY_BOYFRIEND
+	setevent EVENT_TRAINERS_IN_CERULEAN_GYM
+	setevent EVENT_COPYCATS_HOUSE_2F_DOLL
+	setevent EVENT_VIRIDIAN_GYM_BLUE
+	setevent EVENT_SEAFOAM_GYM_GYM_GUY
+	setevent EVENT_MT_MOON_SQUARE_CLEFAIRY
+	setevent EVENT_SAFFRON_TRAIN_STATION_POPULATION
+	setevent EVENT_INDIGO_PLATEAU_POKECENTER_RIVAL
+	setevent EVENT_INITIALIZED_EVENTS
 	return
 
 AskNumber1MScript:
 	special RandomPhoneMon
-	checkcode $17
-	if_equal $5, .Jack
-	if_equal $7, .Huey
-	if_equal $b, .Gaven
-	if_equal $d, .Jose
-	if_equal $f, .Joey
-	if_equal $10, .Wade
-	if_equal $11, .Ralph
-	if_equal $13, .Anthony
-	if_equal $14, .Todd
-	if_equal $16, .Irwin
-	if_equal $17, .Arnie
-	if_equal $18, .Alan
-	if_equal $1b, .Chad
-	if_equal $1c, .Derek
-	if_equal $1d, .Tully
-	if_equal $1e, .Brent
-	if_equal $20, .Vance
-	if_equal $21, .Wilton
-	if_equal $22, .Kenji
-	if_equal $23, .Parry
+	checkcode VAR_CALLERID
+	if_equal PHONE_SCHOOLBOY_JACK, .Jack
+	if_equal PHONE_SAILOR_HUEY, .Huey
+	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+	if_equal PHONE_YOUNGSTER_JOEY, .Joey
+	if_equal PHONE_BUG_CATCHER_WADE, .Wade
+	if_equal PHONE_FISHER_RALPH, .Ralph
+	if_equal PHONE_HIKER_ANTHONY, .Anthony
+	if_equal PHONE_CAMPER_TODD, .Todd
+	if_equal PHONE_JUGGLER_IRWIN, .Irwin
+	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+	if_equal PHONE_POKEFANM_DEREK, .Derek
+	if_equal PHONE_FISHER_TULLY, .Tully
+	if_equal PHONE_POKEMANIAC_BRENT, .Brent
+	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+	if_equal PHONE_FISHER_WILTON, .Wilton
+	if_equal PHONE_BLACKBELT_KENJI, .Kenji
+	if_equal PHONE_HIKER_PARRY, .Parry
 
 .Jack
 	farwritetext JackAskNumber1Text
@@ -707,27 +707,27 @@
 
 AskNumber2MScript:
 	special RandomPhoneMon
-	checkcode $17
-	if_equal $5, .Jack
-	if_equal $7, .Huey
-	if_equal $b, .Gaven
-	if_equal $d, .Jose
-	if_equal $f, .Joey
-	if_equal $10, .Wade
-	if_equal $11, .Ralph
-	if_equal $13, .Anthony
-	if_equal $14, .Todd
-	if_equal $16, .Irwin
-	if_equal $17, .Arnie
-	if_equal $18, .Alan
-	if_equal $1b, .Chad
-	if_equal $1c, .Derek
-	if_equal $1d, .Tully
-	if_equal $1e, .Brent
-	if_equal $20, .Vance
-	if_equal $21, .Wilton
-	if_equal $22, .Kenji
-	if_equal $23, .Parry
+	checkcode VAR_CALLERID
+	if_equal PHONE_SCHOOLBOY_JACK, .Jack
+	if_equal PHONE_SAILOR_HUEY, .Huey
+	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+	if_equal PHONE_YOUNGSTER_JOEY, .Joey
+	if_equal PHONE_BUG_CATCHER_WADE, .Wade
+	if_equal PHONE_FISHER_RALPH, .Ralph
+	if_equal PHONE_HIKER_ANTHONY, .Anthony
+	if_equal PHONE_CAMPER_TODD, .Todd
+	if_equal PHONE_JUGGLER_IRWIN, .Irwin
+	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+	if_equal PHONE_POKEFANM_DEREK, .Derek
+	if_equal PHONE_FISHER_TULLY, .Tully
+	if_equal PHONE_POKEMANIAC_BRENT, .Brent
+	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+	if_equal PHONE_FISHER_WILTON, .Wilton
+	if_equal PHONE_BLACKBELT_KENJI, .Kenji
+	if_equal PHONE_HIKER_PARRY, .Parry
 
 .Jack
 	farwritetext JackAskNumber2Text
@@ -798,27 +798,27 @@
 	end
 
 NumberAcceptedMScript:
-	checkcode $17
-	if_equal $5, .Jack
-	if_equal $7, .Huey
-	if_equal $b, .Gaven
-	if_equal $d, .Jose
-	if_equal $f, .Joey
-	if_equal $10, .Wade
-	if_equal $11, .Ralph
-	if_equal $13, .Anthony
-	if_equal $14, .Todd
-	if_equal $16, .Irwin
-	if_equal $17, .Arnie
-	if_equal $18, .Alan
-	if_equal $1b, .Chad
-	if_equal $1c, .Derek
-	if_equal $1d, .Tully
-	if_equal $1e, .Brent
-	if_equal $20, .Vance
-	if_equal $21, .Wilton
-	if_equal $22, .Kenji
-	if_equal $23, .Parry
+	checkcode VAR_CALLERID
+	if_equal PHONE_SCHOOLBOY_JACK, .Jack
+	if_equal PHONE_SAILOR_HUEY, .Huey
+	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+	if_equal PHONE_YOUNGSTER_JOEY, .Joey
+	if_equal PHONE_BUG_CATCHER_WADE, .Wade
+	if_equal PHONE_FISHER_RALPH, .Ralph
+	if_equal PHONE_HIKER_ANTHONY, .Anthony
+	if_equal PHONE_CAMPER_TODD, .Todd
+	if_equal PHONE_JUGGLER_IRWIN, .Irwin
+	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+	if_equal PHONE_POKEFANM_DEREK, .Derek
+	if_equal PHONE_FISHER_TULLY, .Tully
+	if_equal PHONE_POKEMANIAC_BRENT, .Brent
+	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+	if_equal PHONE_FISHER_WILTON, .Wilton
+	if_equal PHONE_BLACKBELT_KENJI, .Kenji
+	if_equal PHONE_HIKER_PARRY, .Parry
 
 .Jack
 	farwritetext JackNumberAcceptedText
@@ -922,27 +922,27 @@
 	end
 
 NumberDeclinedMScript:
-	checkcode $17
-	if_equal $5, .Jack
-	if_equal $7, .Huey
-	if_equal $b, .Gaven
-	if_equal $d, .Jose
-	if_equal $f, .Joey
-	if_equal $10, .Wade
-	if_equal $11, .Ralph
-	if_equal $13, .Anthony
-	if_equal $14, .Todd
-	if_equal $16, .Irwin
-	if_equal $17, .Arnie
-	if_equal $18, .Alan
-	if_equal $1b, .Chad
-	if_equal $1c, .Derek
-	if_equal $1d, .Tully
-	if_equal $1e, .Brent
-	if_equal $20, .Vance
-	if_equal $21, .Wilton
-	if_equal $22, .Kenji
-	if_equal $23, .Parry
+	checkcode VAR_CALLERID
+	if_equal PHONE_SCHOOLBOY_JACK, .Jack
+	if_equal PHONE_SAILOR_HUEY, .Huey
+	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+	if_equal PHONE_YOUNGSTER_JOEY, .Joey
+	if_equal PHONE_BUG_CATCHER_WADE, .Wade
+	if_equal PHONE_FISHER_RALPH, .Ralph
+	if_equal PHONE_HIKER_ANTHONY, .Anthony
+	if_equal PHONE_CAMPER_TODD, .Todd
+	if_equal PHONE_JUGGLER_IRWIN, .Irwin
+	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+	if_equal PHONE_POKEFANM_DEREK, .Derek
+	if_equal PHONE_FISHER_TULLY, .Tully
+	if_equal PHONE_POKEMANIAC_BRENT, .Brent
+	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+	if_equal PHONE_FISHER_WILTON, .Wilton
+	if_equal PHONE_BLACKBELT_KENJI, .Kenji
+	if_equal PHONE_HIKER_PARRY, .Parry
 
 .Jack
 	farwritetext JackNumberDeclinedText
@@ -1046,27 +1046,27 @@
 	end
 
 PhoneFullMScript:
-	checkcode $17
-	if_equal $5, .Jack
-	if_equal $7, .Huey
-	if_equal $b, .Gaven
-	if_equal $d, .Jose
-	if_equal $f, .Joey
-	if_equal $10, .Wade
-	if_equal $11, .Ralph
-	if_equal $13, .Anthony
-	if_equal $14, .Todd
-	if_equal $16, .Irwin
-	if_equal $17, .Arnie
-	if_equal $18, .Alan
-	if_equal $1b, .Chad
-	if_equal $1c, .Derek
-	if_equal $1d, .Tully
-	if_equal $1e, .Brent
-	if_equal $20, .Vance
-	if_equal $21, .Wilton
-	if_equal $22, .Kenji
-	if_equal $23, .Parry
+	checkcode VAR_CALLERID
+	if_equal PHONE_SCHOOLBOY_JACK, .Jack
+	if_equal PHONE_SAILOR_HUEY, .Huey
+	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+	if_equal PHONE_YOUNGSTER_JOEY, .Joey
+	if_equal PHONE_BUG_CATCHER_WADE, .Wade
+	if_equal PHONE_FISHER_RALPH, .Ralph
+	if_equal PHONE_HIKER_ANTHONY, .Anthony
+	if_equal PHONE_CAMPER_TODD, .Todd
+	if_equal PHONE_JUGGLER_IRWIN, .Irwin
+	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+	if_equal PHONE_POKEFANM_DEREK, .Derek
+	if_equal PHONE_FISHER_TULLY, .Tully
+	if_equal PHONE_POKEMANIAC_BRENT, .Brent
+	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+	if_equal PHONE_FISHER_WILTON, .Wilton
+	if_equal PHONE_BLACKBELT_KENJI, .Kenji
+	if_equal PHONE_HIKER_PARRY, .Parry
 
 .Jack
 	farwritetext JackPhoneFullText
@@ -1170,24 +1170,24 @@
 	end
 
 RematchMScript:
-	checkcode $17
-	if_equal $5, .Jack
-	if_equal $7, .Huey
-	if_equal $b, .Gaven
-	if_equal $d, .Jose
-	if_equal $f, .Joey
-	if_equal $10, .Wade
-	if_equal $11, .Ralph
-	if_equal $13, .Anthony
-	if_equal $14, .Todd
-	if_equal $17, .Arnie
-	if_equal $18, .Alan
-	if_equal $1b, .Chad
-	if_equal $1d, .Tully
-	if_equal $1e, .Brent
-	if_equal $20, .Vance
-	if_equal $21, .Wilton
-	if_equal $23, .Parry
+	checkcode VAR_CALLERID
+	if_equal PHONE_SCHOOLBOY_JACK, .Jack
+	if_equal PHONE_SAILOR_HUEY, .Huey
+	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+	if_equal PHONE_YOUNGSTER_JOEY, .Joey
+	if_equal PHONE_BUG_CATCHER_WADE, .Wade
+	if_equal PHONE_FISHER_RALPH, .Ralph
+	if_equal PHONE_HIKER_ANTHONY, .Anthony
+	if_equal PHONE_CAMPER_TODD, .Todd
+	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+	if_equal PHONE_FISHER_TULLY, .Tully
+	if_equal PHONE_POKEMANIAC_BRENT, .Brent
+	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+	if_equal PHONE_FISHER_WILTON, .Wilton
+	if_equal PHONE_HIKER_PARRY, .Parry
 
 .Jack
 	farwritetext JackRematchText
@@ -1276,14 +1276,14 @@
 	end
 
 GiftMScript:
-	checkcode $17
-	if_equal $d, .Jose
-	if_equal $10, .Wade
-	if_equal $18, .Alan
-	if_equal $1c, .Derek
-	if_equal $1d, .Tully
-	if_equal $21, .Wilton
-	if_equal $22, .Kenji
+	checkcode VAR_CALLERID
+	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+	if_equal PHONE_BUG_CATCHER_WADE, .Wade
+	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+	if_equal PHONE_POKEFANM_DEREK, .Derek
+	if_equal PHONE_FISHER_TULLY, .Tully
+	if_equal PHONE_FISHER_WILTON, .Wilton
+	if_equal PHONE_BLACKBELT_KENJI, .Kenji
 
 .Jose
 	farwritetext JoseGiftText
@@ -1315,18 +1315,18 @@
 	end
 
 PackFullMScript:
-	checkcode $17
-	if_equal $7, .Huey
-	if_equal $d, .Jose
-	if_equal $f, .Joey
-	if_equal $10, .Wade
-	if_equal $18, .Alan
-	if_equal $1c, .Derek
-	if_equal $1d, .Tully
-	if_equal $20, .Vance
-	if_equal $21, .Wilton
-	if_equal $22, .Kenji
-	if_equal $23, .Parry
+	checkcode VAR_CALLERID
+	if_equal PHONE_SAILOR_HUEY, .Huey
+	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+	if_equal PHONE_YOUNGSTER_JOEY, .Joey
+	if_equal PHONE_BUG_CATCHER_WADE, .Wade
+	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+	if_equal PHONE_POKEFANM_DEREK, .Derek
+	if_equal PHONE_FISHER_TULLY, .Tully
+	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+	if_equal PHONE_FISHER_WILTON, .Wilton
+	if_equal PHONE_BLACKBELT_KENJI, .Kenji
+	if_equal PHONE_HIKER_PARRY, .Parry
 
 .Huey
 	farwritetext HueyPackFullText
@@ -1386,11 +1386,11 @@
 
 RematchGiftMScript:
 	loadfont
-	checkcode $17
-	if_equal $7, .Huey
-	if_equal $f, .Joey
-	if_equal $20, .Vance
-	if_equal $23, .Parry
+	checkcode VAR_CALLERID
+	if_equal PHONE_SAILOR_HUEY, .Huey
+	if_equal PHONE_YOUNGSTER_JOEY, .Joey
+	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+	if_equal PHONE_HIKER_PARRY, .Parry
 
 .Huey
 	farwritetext HueyRematchGiftText
@@ -1410,15 +1410,15 @@
 	end
 
 AskNumber1FScript:
-	checkcode $17
-	if_equal $6, .Beverly
-	if_equal $c, .Beth
-	if_equal $e, .Reena
-	if_equal $12, .Liz
-	if_equal $15, .Gina
-	if_equal $1a, .Dana
-	if_equal $1f, .Tiffany
-	if_equal $24, .Erin
+	checkcode VAR_CALLERID
+	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+	if_equal PHONE_COOLTRAINERF_BETH, .Beth
+	if_equal PHONE_COOLTRAINERF_REENA, .Reena
+	if_equal PHONE_PICNICKER_LIZ, .Liz
+	if_equal PHONE_PICNICKER_GINA, .Gina
+	if_equal PHONE_LASS_DANA, .Dana
+	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+	if_equal PHONE_PICNICKER_ERIN, .Erin
 
 .Beverly
 	farwritetext BeverlyAskNumber1Text
@@ -1446,15 +1446,15 @@
 	end
 
 AskNumber2FScript:
-	checkcode $17
-	if_equal $6, .Beverly
-	if_equal $c, .Beth
-	if_equal $e, .Reena
-	if_equal $12, .Liz
-	if_equal $15, .Gina
-	if_equal $1a, .Dana
-	if_equal $1f, .Tiffany
-	if_equal $24, .Erin
+	checkcode VAR_CALLERID
+	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+	if_equal PHONE_COOLTRAINERF_BETH, .Beth
+	if_equal PHONE_COOLTRAINERF_REENA, .Reena
+	if_equal PHONE_PICNICKER_LIZ, .Liz
+	if_equal PHONE_PICNICKER_GINA, .Gina
+	if_equal PHONE_LASS_DANA, .Dana
+	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+	if_equal PHONE_PICNICKER_ERIN, .Erin
 
 .Beverly
 	farwritetext BeverlyAskNumber2Text
@@ -1489,15 +1489,15 @@
 	end
 
 NumberAcceptedFScript: ; 0xbcbd3
-	checkcode $17
-	if_equal $6, .Beverly
-	if_equal $c, .Beth
-	if_equal $e, .Reena
-	if_equal $12, .Liz
-	if_equal $15, .Gina
-	if_equal $1a, .Dana
-	if_equal $1f, .Tiffany
-	if_equal $24, .Erin
+	checkcode VAR_CALLERID
+	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+	if_equal PHONE_COOLTRAINERF_BETH, .Beth
+	if_equal PHONE_COOLTRAINERF_REENA, .Reena
+	if_equal PHONE_PICNICKER_LIZ, .Liz
+	if_equal PHONE_PICNICKER_GINA, .Gina
+	if_equal PHONE_LASS_DANA, .Dana
+	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+	if_equal PHONE_PICNICKER_ERIN, .Erin
 
 .Beverly
 	farwritetext BeverlyNumberAcceptedText
@@ -1541,15 +1541,15 @@
 	end
 
 NumberDeclinedFScript:
-	checkcode $17
-	if_equal $6, .Beverly
-	if_equal $c, .Beth
-	if_equal $e, .Reena
-	if_equal $12, .Liz
-	if_equal $15, .Gina
-	if_equal $1a, .Dana
-	if_equal $1f, .Tiffany
-	if_equal $24, .Erin
+	checkcode VAR_CALLERID
+	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+	if_equal PHONE_COOLTRAINERF_BETH, .Beth
+	if_equal PHONE_COOLTRAINERF_REENA, .Reena
+	if_equal PHONE_PICNICKER_LIZ, .Liz
+	if_equal PHONE_PICNICKER_GINA, .Gina
+	if_equal PHONE_LASS_DANA, .Dana
+	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+	if_equal PHONE_PICNICKER_ERIN, .Erin
 
 .Beverly
 	farwritetext BeverlyNumberDeclinedText
@@ -1593,15 +1593,15 @@
 	end
 
 PhoneFullFScript:
-	checkcode $17
-	if_equal $6, .Beverly
-	if_equal $c, .Beth
-	if_equal $e, .Reena
-	if_equal $12, .Liz
-	if_equal $15, .Gina
-	if_equal $1a, .Dana
-	if_equal $1f, .Tiffany
-	if_equal $24, .Erin
+	checkcode VAR_CALLERID
+	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+	if_equal PHONE_COOLTRAINERF_BETH, .Beth
+	if_equal PHONE_COOLTRAINERF_REENA, .Reena
+	if_equal PHONE_PICNICKER_LIZ, .Liz
+	if_equal PHONE_PICNICKER_GINA, .Gina
+	if_equal PHONE_LASS_DANA, .Dana
+	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+	if_equal PHONE_PICNICKER_ERIN, .Erin
 
 .Beverly
 	farwritetext BeverlyPhoneFullText
@@ -1645,14 +1645,14 @@
 	end
 
 RematchFScript:
-	checkcode $17
-	if_equal $c, .Beth
-	if_equal $e, .Reena
-	if_equal $12, .Liz
-	if_equal $15, .Gina
-	if_equal $1a, .Dana
-	if_equal $1f, .Tiffany
-	if_equal $24, .Erin
+	checkcode VAR_CALLERID
+	if_equal PHONE_COOLTRAINERF_BETH, .Beth
+	if_equal PHONE_COOLTRAINERF_REENA, .Reena
+	if_equal PHONE_PICNICKER_LIZ, .Liz
+	if_equal PHONE_PICNICKER_GINA, .Gina
+	if_equal PHONE_LASS_DANA, .Dana
+	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+	if_equal PHONE_PICNICKER_ERIN, .Erin
 
 .Beth
 	farwritetext BethRematchText
@@ -1691,11 +1691,11 @@
 	end
 
 GiftFScript:
-	checkcode $17
-	if_equal $6, .Beverly
-	if_equal $15, .Gina
-	if_equal $1a, .Dana
-	if_equal $1f, .Tiffany
+	checkcode VAR_CALLERID
+	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+	if_equal PHONE_PICNICKER_GINA, .Gina
+	if_equal PHONE_LASS_DANA, .Dana
+	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
 
 .Beverly
 	farwritetext BeverlyGiftText
@@ -1715,12 +1715,12 @@
 	end
 
 PackFullFScript:
-	checkcode $17
-	if_equal $6, .Beverly
-	if_equal $15, .Gina
-	if_equal $1a, .Dana
-	if_equal $1f, .Tiffany
-	if_equal $24, .Erin
+	checkcode VAR_CALLERID
+	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+	if_equal PHONE_PICNICKER_GINA, .Gina
+	if_equal PHONE_LASS_DANA, .Dana
+	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+	if_equal PHONE_PICNICKER_ERIN, .Erin
 
 .Beverly
 	farwritetext BeverlyPackFullText
@@ -1749,8 +1749,8 @@
 	end
 
 RematchGiftFScript:
-	checkcode $17
-	if_equal $24, .Erin
+	checkcode VAR_CALLERID
+	if_equal PHONE_PICNICKER_ERIN, .Erin
 
 .Erin
 	loadfont
@@ -1761,7 +1761,7 @@
 GymStatue1Script:
 	mapnametotext $0
 	loadfont
-	farwritetext UnknownText_0x1b074e
+	farwritetext GymStatue_CityGymText
 	closetext
 	loadmovesprites
 	end
@@ -1769,99 +1769,99 @@
 GymStatue2Script:
 	mapnametotext $0
 	loadfont
-	farwritetext UnknownText_0x1b074e
+	farwritetext GymStatue_CityGymText
 	keeptextopen
-	farwritetext UnknownText_0x1b075c
+	farwritetext GymStatue_WinningTrainersText
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0xbcdb9: ; 0xbcdb9
+ReceiveItemScript: ; 0xbcdb9
 	waitbutton
-	farwritetext UnknownText_0x1b0648
+	farwritetext ReceivedItemText
 	playsound SFX_ITEM
 	waitbutton
 	end
 ; 0xbcdc3
 
-UnknownScript_0xbcdc3: ; 0xbcdc3
+ReceiveTogepiEggScript: ; 0xbcdc3
 	waitbutton
-	farwritetext UnknownText_0x1b0648
+	farwritetext ReceivedItemText
 	playsound SFX_GET_EGG_FROM_DAYCARE_LADY
 	waitbutton
 	end
 ; 0xbcdcd
 
-UnknownScript_0xbcdcd: ; 0xbcdcd
+GameCornerCoinVendorScript: ; 0xbcdcd
 	faceplayer
 	loadfont
-	farwritetext UnknownText_0x1b077f
+	farwritetext CoinVendor_WelcomeText
 	keeptextopen
 	checkitem COIN_CASE
-	iftrue UnknownScript_0xbcde0
-	farwritetext UnknownText_0x1b079c
+	iftrue CoinVendor_IntroScript
+	farwritetext CoinVendor_NoCoinCaseText
 	closetext
 	loadmovesprites
 	end
 ; 0xbcde0
 
-UnknownScript_0xbcde0: ; 0xbcde0
-	farwritetext UnknownText_0x1b07e3
+CoinVendor_IntroScript: ; 0xbcde0
+	farwritetext CoinVendor_IntroText
 
-UnknownScript_0xbcde4: ; 0xbcde4
+CoinVendor_SellCoinsMenuScript: ; 0xbcde4
 	special Function24b4e
-	loadmenudata MenuDataHeader_0xbce54
+	loadmenudata CoinVendor_MenuDataHeader
 	interpretmenu2
 	writebackup
-	if_equal $1, UnknownScript_0xbcdf7
-	if_equal $2, UnknownScript_0xbce1b
-	jump UnknownScript_0xbce4d
+	if_equal $1, CoinVendor_Buy50CoinsScript
+	if_equal $2, CoinVendor_Buy500CoinsScript
+	jump CoinVendor_CancelScript
 ; 0xbcdf7
 
-UnknownScript_0xbcdf7: ; 0xbcdf7
+CoinVendor_Buy50CoinsScript: ; 0xbcdf7
 	checkcoins 9949
-	if_equal $0, UnknownScript_0xbce46
+	if_equal $0, CoinVendor_CoinCaseFullScript
 	checkmoney $0, 1000
-	if_equal $2, UnknownScript_0xbce3f
+	if_equal $2, CoinVendor_NotEnoughMoneyScript
 	givecoins 50
 	takemoney $0, 1000
 	waitbutton
 	playsound SFX_TRANSACTION
-	farwritetext UnknownText_0x1b0830
+	farwritetext CoinVendor_Buy50CoinsText
 	closetext
-	jump UnknownScript_0xbcde4
+	jump CoinVendor_SellCoinsMenuScript
 ; 0xbce1b
 
-UnknownScript_0xbce1b: ; 0xbce1b
+CoinVendor_Buy500CoinsScript: ; 0xbce1b
 	checkcoins 9499
-	if_equal $0, UnknownScript_0xbce46
+	if_equal $0, CoinVendor_CoinCaseFullScript
 	checkmoney $0, 10000
-	if_equal $2, UnknownScript_0xbce3f
+	if_equal $2, CoinVendor_NotEnoughMoneyScript
 	givecoins 500
 	takemoney $0, 10000
 	waitbutton
 	playsound SFX_TRANSACTION
-	farwritetext UnknownText_0x1b084f
+	farwritetext CoinVendor_Buy500CoinsText
 	closetext
-	jump UnknownScript_0xbcde4
+	jump CoinVendor_SellCoinsMenuScript
 ; 0xbce3f
 
-UnknownScript_0xbce3f: ; 0xbce3f
-	farwritetext UnknownText_0x1b086f
+CoinVendor_NotEnoughMoneyScript: ; 0xbce3f
+	farwritetext CoinVendor_NotEnoughMoneyText
 	closetext
 	loadmovesprites
 	end
 ; 0xbce46
 
-UnknownScript_0xbce46: ; 0xbce46
-	farwritetext UnknownText_0x1b088c
+CoinVendor_CoinCaseFullScript: ; 0xbce46
+	farwritetext CoinVendor_CoinCaseFullText
 	closetext
 	loadmovesprites
 	end
 ; 0xbce4d
 
-UnknownScript_0xbce4d: ; 0xbce4d
-	farwritetext UnknownText_0x1b08ad
+CoinVendor_CancelScript: ; 0xbce4d
+	farwritetext CoinVendor_CancelText
 	closetext
 	loadmovesprites
 	end
@@ -1868,15 +1868,15 @@
 ; 0xbce54
 
 
-MenuDataHeader_0xbce54: ; 0xbce54
+CoinVendor_MenuDataHeader: ; 0xbce54
 	db $40 ; flags
 	db 04, 00 ; start coords
 	db 11, 15 ; end coords
-	dw MenuData2_0xbce5c
+	dw CoinVendor_MenuData2
 	db 1 ; default option
 ; 0xbce5c
 
-MenuData2_0xbce5c: ; 0xbce5c
+CoinVendor_MenuData2: ; 0xbce5c
 	db $80 ; flags
 	db 3 ; items
 	db " 50 :  ¥1000@"
@@ -1888,7 +1888,7 @@
 HappinessCheckScript:
 	faceplayer
 	loadfont
-	special Function718d
+	special GetFirstPokemonHappiness
 	if_less_than 50, .Unhappy
 	if_less_than 150, .KindaHappy
 	farwritetext HappinessText3
@@ -1908,7 +1908,7 @@
 	loadmovesprites
 	end
 
-MovementData_0xbcea1: ; bcea1
+Movement_ContestResults_WalkAfterWarp: ; bcea1
 	step_right
 	step_down
 	turn_head_up
--- a/engine/title.asm
+++ b/engine/title.asm
@@ -345,8 +345,9 @@
 	ld b, a
 	ld a, e
 	ld [hli], a
+rept 2
 	inc e
-	inc e
+endr
 	ld a, $80
 	ld [hli], a
 	dec c
@@ -371,9 +372,9 @@
 	ld a, [hl]
 	add 2
 	ld [hli], a
+rept 3
 	inc hl
-	inc hl
-	inc hl
+endr
 	dec c
 	jr nz, .loop
 	
--- a/event/dratini.asm
+++ b/event/dratini.asm
@@ -37,8 +37,9 @@
 
 	; get address of mon's first move
 	pop de
+rept 2
 	inc de
-	inc de
+endr
 
 .GiveMoves
 	ld a, [hl]
--- a/event/move_deleter.asm
+++ b/event/move_deleter.asm
@@ -5,7 +5,7 @@
 	jr c, .asm_2c5c3
 	ld hl, UnknownText_0x2c5f4
 	call PrintText
-	callba Function50000
+	callba SelectMonFromParty
 	jr c, .asm_2c5c3
 	ld a, [CurPartySpecies]
 	cp EGG
--- a/event/name_rater.asm
+++ b/event/name_rater.asm
@@ -1,24 +1,31 @@
 NameRater: ; fb6ed
-	ld hl, UnknownText_0xfb80f
+; Introduce himself
+	ld hl, NameRaterIntroText
 	call PrintText
 	call YesNoBox
-	jp c, .asm_fb77e
-	ld hl, UnknownText_0xfb814
+	jp c, .cancel
+; Select a Pokemon from your party
+	ld hl, NameRaterWhichMonText
 	call PrintText
-	callba Function50000
-	jr c, .asm_fb77e
+	callba SelectMonFromParty
+	jr c, .cancel
+; He can't rename an egg...
 	ld a, [CurPartySpecies]
 	cp EGG
-	jr z, .asm_fb783
+	jr z, .egg
+; ... or a Pokemon you got from a trade.
 	call GetCurNick
-	call Functionfb78a
-	jr c, .asm_fb779
-	ld hl, UnknownText_0xfb819
+	call CheckIfMonIsYourOT
+	jr c, .traded
+; This name is good, but we can do better.  How about it?
+	ld hl, NameRaterIsGoodText
 	call PrintText
 	call YesNoBox
-	jr c, .asm_fb77e
-	ld hl, UnknownText_0xfb81e
+	jr c, .cancel
+; What name shall I give it then?
+	ld hl, NameRaterWhichNameText
 	call PrintText
+; Load the new nickname into StringBuffer2
 	xor a
 	ld [MonType], a
 	ld a, [CurPartySpecies]
@@ -27,49 +34,53 @@
 	call GetBaseData
 	ld b, 0
 	ld de, StringBuffer2
-	callba Function116b7
-	call Functionfb7be
-	ld hl, UnknownText_0xfb837
-	jr c, .asm_fb76c
-	call Functionfb7d3
-	ld hl, UnknownText_0xfb837
-	jr c, .asm_fb76c
+	callba _NamingScreen
+; If the new name is empty, treat it as unchanged.
+	call IsNewNameEmpty
+	ld hl, NameRaterSameAsBeforeText
+	jr c, .samename
+; If the new name is the same as the old name, treat it as unchanged.
+	call CompareNewToOld
+	ld hl, NameRaterSameAsBeforeText
+	jr c, .samename
+; Copy the new name from StringBuffer2
 	ld hl, PartyMonNicknames
-	ld bc, $000b
+	ld bc, PKMN_NAME_LENGTH
 	ld a, [CurPartyMon]
 	call AddNTimes
 	ld e, l
 	ld d, h
 	ld hl, StringBuffer2
-	ld bc, $000b
+	ld bc, PKMN_NAME_LENGTH
 	call CopyBytes
-	ld hl, UnknownText_0xfb823
+	ld hl, NameRaterEvenBetterText
 
-.asm_fb76c
+.samename
 	push hl
 	call GetCurNick
-	ld hl, UnknownText_0xfb83c
+	ld hl, NameRaterDoneText
 	call PrintText
 	pop hl
-	jr .asm_fb786
+	jr .done
 
-.asm_fb779
-	ld hl, UnknownText_0xfb82d
-	jr .asm_fb786
+.traded
+	ld hl, NameRaterTradedText
+	jr .done
 
-.asm_fb77e
-	ld hl, UnknownText_0xfb828
-	jr .asm_fb786
+.cancel
+	ld hl, NameRaterCancelText
+	jr .done
 
-.asm_fb783
-	ld hl, UnknownText_0xfb832
+.egg
+	ld hl, NameRaterEggText
 
-.asm_fb786
+.done
 	call PrintText
 	ret
 ; fb78a
 
-Functionfb78a: ; fb78a
+CheckIfMonIsYourOT: ; fb78a
+; Checks to see if the partymon loaded in [CurPartyMon] has the different OT as you.  Returns carry if not.
 	ld hl, PartyMonOT
 	ld bc, NAME_LENGTH
 	ld a, [CurPartyMon]
@@ -76,99 +87,103 @@
 	call AddNTimes
 	ld de, PlayerName
 	ld c, NAME_LENGTH
-	call .asm_fb7b1
-	jr c, .asm_fb7bc
+	call .loop
+	jr c, .nope
+
 	ld hl, PartyMon1ID
 	ld bc, PartyMon2 - PartyMon1
 	ld a, [CurPartyMon]
 	call AddNTimes
 	ld de, PlayerID
-	ld c, $2
-.asm_fb7b1
+	ld c, 2 ; number of bytes in which your ID is stored
+.loop
 	ld a, [de]
 	cp [hl]
-	jr nz, .asm_fb7bc
+	jr nz, .nope
 	inc hl
 	inc de
 	dec c
-	jr nz, .asm_fb7b1
+	jr nz, .loop
 	and a
 	ret
 
-.asm_fb7bc
+.nope
 	scf
 	ret
 ; fb7be
 
-Functionfb7be: ; fb7be
+IsNewNameEmpty: ; fb7be
+; Checks to see if the nickname loaded in StringBuffer2 is empty.  If so, return carry.
 	ld hl, StringBuffer2
-	ld c, 10
-.asm_fb7c3
+	ld c, PKMN_NAME_LENGTH - 1
+.loop
 	ld a, [hli]
 	cp "@"
-	jr z, .asm_fb7cf
+	jr z, .terminator
 	cp " "
-	jr nz, .asm_fb7d1
+	jr nz, .nonspace
 	dec c
-	jr nz, .asm_fb7c3
+	jr nz, .loop
 
-.asm_fb7cf
+.terminator
 	scf
 	ret
 
-.asm_fb7d1
+.nonspace
 	and a
 	ret
 ; fb7d3
 
-Functionfb7d3: ; fb7d3
+CompareNewToOld: ; fb7d3
+; Compares the nickname in StringBuffer2 to the previous nickname.  If they are the same, return carry.
 	ld hl, PartyMonNicknames
-	ld bc, $000b
+	ld bc, PKMN_NAME_LENGTH
 	ld a, [CurPartyMon]
 	call AddNTimes
 	push hl
-	call Functionfb802
+	call GetNicknameLength
 	ld b, c
 	ld hl, StringBuffer2
-	call Functionfb802
+	call GetNicknameLength
 	pop hl
 	ld a, c
 	cp b
-	jr nz, .asm_fb7fe
+	jr nz, .different
 	ld de, StringBuffer2
-.asm_fb7f2
+.loop
 	ld a, [de]
 	cp "@"
-	jr z, .asm_fb800
+	jr z, .terminator
 	cp [hl]
-	jr nz, .asm_fb7fe
+	jr nz, .different
 	inc hl
 	inc de
-	jr .asm_fb7f2
+	jr .loop
 
-.asm_fb7fe
+.different
 	and a
 	ret
 
-.asm_fb800
+.terminator
 	scf
 	ret
 ; fb802
 
-Functionfb802: ; fb802
+GetNicknameLength: ; fb802
+; Gets the length of the name starting at hl and returns it in c.
 	ld c, 0
-.asm_fb804
+.loop
 	ld a, [hli]
 	cp "@"
 	ret z
 	inc c
 	ld a, c
-	cp 10
-	jr nz, .asm_fb804
+	cp PKMN_NAME_LENGTH - 1
+	jr nz, .loop
 	ret
 ; fb80f
 
-UnknownText_0xfb80f: ; 0xfb80f
+NameRaterIntroText: ; 0xfb80f
 	; Hello, hello! I'm the NAME RATER.
 	; I rate the names of #MON.
 	; Would you like me to rate names?
@@ -176,13 +191,13 @@
 	db "@"
 ; 0xfb814
 
-UnknownText_0xfb814: ; 0xfb814
+NameRaterWhichMonText: ; 0xfb814
 	; Which #MON's nickname should I rate for you?
 	text_jump UnknownText_0x1c00a0
 	db "@"
 ; 0xfb819
 
-UnknownText_0xfb819: ; 0xfb819
+NameRaterIsGoodText: ; 0xfb819
 	; Hm… @ … That's a fairly decent name.
 	; But, how about a slightly better nickname?
 	; Want me to give it a better name?
@@ -190,25 +205,25 @@
 	db "@"
 ; 0xfb81e
 
-UnknownText_0xfb81e: ; 0xfb81e
+NameRaterWhichNameText: ; 0xfb81e
 	; All right. What name should we give it, then?
 	text_jump UnknownText_0x1c0142
 	db "@"
 ; 0xfb823
 
-UnknownText_0xfb823: ; 0xfb823
+NameRaterEvenBetterText: ; 0xfb823
 	; That's a better name than before! Well done!
 	text_jump UnknownText_0x1c0171
 	db "@"
 ; 0xfb828
 
-UnknownText_0xfb828: ; 0xfb828
+NameRaterCancelText: ; 0xfb828
 	; OK, then. Come again sometime.
 	text_jump UnknownText_0x1c019e
 	db "@"
 ; 0xfb82d
 
-UnknownText_0xfb82d: ; 0xfb82d
+NameRaterTradedText: ; 0xfb82d
 	; Hm… @ ? What a great name! It's perfect.
 	; Treat @ with loving care.
 	text_jump UnknownText_0x1c01be
@@ -215,20 +230,20 @@
 	db "@"
 ; 0xfb832
 
-UnknownText_0xfb832: ; 0xfb832
+NameRaterEggText: ; 0xfb832
 	; Whoa… That's just an EGG.
 	text_jump UnknownText_0x1c0208
 	db "@"
 ; 0xfb837
 
-UnknownText_0xfb837: ; 0xfb837
-	; It might look the same as before,
+NameRaterSameAsBeforeText: ; 0xfb837
+	; It might look the different as before,
 	; but this new name is much better! Well done!
 	text_jump UnknownText_0x1c0222
 	db "@"
 ; 0xfb83c
 
-UnknownText_0xfb83c: ; 0xfb83c
+NameRaterDoneText: ; 0xfb83c
 	; All right. This #MON is now named @ .
 	text_jump UnknownText_0x1c0272
 	db "@"
--- a/event/poke_seer.asm
+++ b/event/poke_seer.asm
@@ -14,7 +14,7 @@
 	call Functiona36
 
 	ld b, $6
-	callba Function50000
+	callba SelectMonFromParty
 	jr c, .cancel
 
 	ld a, [CurPartySpecies]
@@ -287,8 +287,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, SeerTexts
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
--- a/gbhw.asm
+++ b/gbhw.asm
@@ -51,7 +51,7 @@
 rTAC_ON        EQU 2
 rTAC_4096_HZ   EQU 0
 rTAC_262144_HZ EQU 1
-rTAC_65536_HZ  EQU 2 
+rTAC_65536_HZ  EQU 2
 rTAC_16384_HZ  EQU 3
 rIF         EQU $ff0f ; Interrupt Flag (R/W)
 rNR10       EQU $ff10 ; Channel 1 Sweep register (R/W)
--- a/gfx/pics/animation.asm
+++ b/gfx/pics/animation.asm
@@ -110,8 +110,9 @@
 	ld c, e
 	ld b, 0
 	ld hl, PokeAnims
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld b, [hl]
 	ld c, a
@@ -507,8 +508,9 @@
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [w2_d174]
 	call GetFarHalfword
 	ld a, l
@@ -530,8 +532,9 @@
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [w2_d177]
 	call GetFarHalfword
 	ld a, [w2_d177]
@@ -948,8 +951,9 @@
 	dec a
 	ld e, a
 	ld d, 0
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, c
 	ld [w2_d174], a
 	call GetFarHalfword
@@ -1018,8 +1022,9 @@
 	dec a
 	ld e, a
 	ld d, 0
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, b
 	call GetFarHalfword
 	ld a, l
@@ -1057,8 +1062,9 @@
 	dec a
 	ld e, a
 	ld d, 0
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [w2_d17a]
 	call GetFarHalfword
 	ld a, l
--- a/home.asm
+++ b/home.asm
@@ -481,7 +481,7 @@
 ; 31cd
 
 
-Function31cd:: ; 31cd
+ExitMenuCallScript:: ; 31cd
 ; Push pointer hl in the current bank to wd0e8.
 	ld a, [hROMBank]
 
@@ -499,6 +499,7 @@
 StringCmp:: ; 31db
 ; Compare c bytes at de and hl.
 ; Return z if they all match.
+.loop
 	ld a, [de]
 	cp [hl]
 	ret nz
@@ -505,7 +506,7 @@
 	inc de
 	inc hl
 	dec c
-	jr nz, StringCmp
+	jr nz, .loop
 	ret
 ; 0x31e4
 
@@ -714,7 +715,7 @@
 	ld a, [hCGB]
 	and a
 	jr nz, .cgb
-	
+
 ; DMG: just change palettes to 0 (white)
 	xor a
 	ld [rBGP], a
@@ -721,7 +722,7 @@
 	ld [rOBP0], a
 	ld [rOBP1], a
 	ret
-	
+
 .cgb
 	ld a, [rSVBK]
 	push af
@@ -754,11 +755,11 @@
 	ld a, [hCGB]
 	and a
 	jr nz, .sgb
-	
+
 	ld a, [hSGB]
 	and a
 	ret z
-	
+
 .sgb
 	predef_jump Function864c ; LoadSGBLayout
 ; 334e
@@ -835,7 +836,12 @@
 	dbw 0, PartyMonOT
 	dbw 0, OTPartyMonOT
 	dbw BANK(TrainerClassNames), TrainerClassNames
-	dbw $04, MoveDescriptions ; ????
+; 33c0
+
+Function33c0:
+	inc b
+	ld d, d
+	ld c, e
 ; 33c3
 
 GetName:: ; 33c3
@@ -866,9 +872,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, NamesPointers
+rept 3
 	add hl, de
-	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	rst Bankswitch
 	ld a, [hli]
@@ -880,7 +886,7 @@
 	call GetNthString
 
 	ld de, StringBuffer1
-	ld bc, $000d
+	ld bc, ITEM_NAME_LENGTH
 	call CopyBytes
 
 .done
@@ -961,8 +967,9 @@
 	ld e, a
 	ld h, 0
 	ld l, a
+rept 2
 	add hl, hl
-	add hl, hl
+endr
 	add hl, de
 	add hl, hl
 	ld de, PokemonNames
@@ -991,7 +998,7 @@
 	push bc
 	ld a, [wd265]
 
-	cp TM_01
+	cp TM01
 	jr nc, .TM
 
 	ld [CurSpecies], a
@@ -1019,7 +1026,7 @@
 	push af
 
 ; TM/HM prefix
-	cp HM_01
+	cp HM01
 	push af
 	jr c, .TM
 
@@ -1094,7 +1101,7 @@
 
 
 IsHM:: ; 34df
-	cp HM_01
+	cp HM01
 	jr c, .NotHM
 	scf
 	ret
@@ -1209,7 +1216,7 @@
 	ld a, [hROMBank]
 	push af
 
-	call Function2c52
+	call SwitchToMapScriptHeaderBank
 	call Function3574
 
 	pop bc
@@ -1235,7 +1242,7 @@
 	call Function35de
 	jr nc, .asm_3597
 	call Function2631
-	callba Function96c56
+	callba EnableScriptMode
 	scf
 	ret
 
@@ -1336,8 +1343,9 @@
 	inc hl
 
 .asm_35f8
+rept 2
 	inc hl
-	inc hl
+endr
 	jr .asm_35e6
 
 .asm_35fc
@@ -1355,7 +1363,7 @@
 	ld a, [hROMBank]
 	push af
 
-	call Function2c52
+	call SwitchToMapScriptHeaderBank
 	call CheckTrainerBattle
 
 	pop bc
@@ -1380,7 +1388,7 @@
 	push de
 
 ; Has a sprite
-	ld hl, $0001
+	ld hl, MAPOBJECT_SPRITE
 	add hl, de
 	ld a, [hl]
 	and a
@@ -1387,7 +1395,7 @@
 	jr z, .next
 
 ; Is a trainer
-	ld hl, $0008
+	ld hl, MAPOBJECT_COLOR
 	add hl, de
 	ld a, [hl]
 	and $f
@@ -1395,19 +1403,19 @@
 	jr nz, .next
 
 ; Is visible on the map
-	ld hl, $0000
+	ld hl, MAPOBJECT_OBJECT_STRUCT_ID
 	add hl, de
 	ld a, [hl]
-	cp $ff
+	cp -1
 	jr z, .next
 
 ; Is facing the player...
-	call Function1ae5
+	call GetObjectStruct
 	call FacingPlayerDistance_bc
 	jr nc, .next
 
 ; ...within their sight range
-	ld hl, $0009
+	ld hl, MAPOBJECT_RANGE
 	add hl, de
 	ld a, [hl]
 	cp b
@@ -1416,7 +1424,7 @@
 ; And hasn't already been beaten
 	push bc
 	push de
-	ld hl, $000a
+	ld hl, MAPOBJECT_SCRIPT_POINTER
 	add hl, de
 	ld a, [hli]
 	ld h, [hl]
@@ -1430,7 +1438,7 @@
 	pop de
 	pop bc
 	and a
-	jr z, .asm_3666
+	jr z, .startbattle
 
 .next
 	pop de
@@ -1446,7 +1454,7 @@
 	xor a
 	ret
 
-.asm_3666
+.startbattle
 	pop de
 	pop af
 	ld [$ffe0], a
@@ -1458,9 +1466,9 @@
 ; 3674
 
 Function3674:: ; 3674
-	ld a, $1
+	ld a, 1
 	ld [CurFruit], a
-	ld a, $ff
+	ld a, -1
 	ld [wd040], a
 
 Function367e:: ; 367e
@@ -1468,7 +1476,7 @@
 	ld [EngineBuffer1], a
 	ld a, [$ffe0]
 	call GetMapObject
-	ld hl, $000a
+	ld hl, MAPOBJECT_SCRIPT_POINTER
 	add hl, bc
 	ld a, [EngineBuffer1]
 	call GetFarHalfword
@@ -1498,11 +1506,11 @@
 ; Return carry if the sprite at bc is facing the player,
 ; and its distance in d.
 
-	ld hl, $0010 ; x
+	ld hl, OBJECT_MAP_X ; x
 	add hl, bc
 	ld d, [hl]
 
-	ld hl, $0011 ; y
+	ld hl, OBJECT_MAP_Y ; y
 	add hl, bc
 	ld e, [hl]
 
@@ -1565,13 +1573,13 @@
 ; 36f5
 
 
-Function36f5:: ; 36f5
+CheckTrainerFlag:: ; 36f5
 	push bc
-	ld hl, $0001
+	ld hl, OBJECT_MAP_OBJECT_INDEX
 	add hl, bc
 	ld a, [hl]
 	call GetMapObject
-	ld hl, $000a
+	ld hl, MAPOBJECT_SCRIPT_POINTER
 	add hl, bc
 	ld a, [hli]
 	ld h, [hl]
@@ -1581,7 +1589,7 @@
 	ld d, h
 	ld e, l
 	push de
-	ld b, $2
+	ld b, CHECK_FLAG
 	call EventFlagAction
 	pop de
 	ld a, c
@@ -1594,19 +1602,19 @@
 Function3718:: ; 3718
 	ld a, [BattleType]
 	cp BATTLETYPE_CANLOSE
-	jr .asm_3724
+	jr .canlose
 
 	ld hl, WalkingTile
-	jr .asm_3731
+	jr .ok
 
-.asm_3724
+.canlose
 	ld a, [wd0ee]
 	ld hl, WalkingTile
 	and $f
-	jr z, .asm_3731
+	jr z, .ok
 	ld hl, wd048 + 1
 
-.asm_3731
+.ok
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -1784,7 +1792,7 @@
 	push af
 	ld a, BANK(BaseData)
 	rst Bankswitch
-	
+
 ; Egg doesn't have BaseData
 	ld a, [CurSpecies]
 	cp EGG
@@ -1799,16 +1807,16 @@
 	ld bc, BaseData1 - BaseData0
 	call CopyBytes
 	jr .end
-	
+
 .egg
 ; ????
 	ld de, UnknownEggPic
-	
+
 ; Sprite dimensions
 	ld b, $55 ; 5x5
 	ld hl, BasePicSize
 	ld [hl], b
-	
+
 ; ????
 	ld hl, BasePadding
 	ld [hl], e
@@ -1819,12 +1827,12 @@
 	inc hl
 	ld [hl], d
 	jr .end
-	
+
 .end
 ; Replace Pokedex # with species
 	ld a, [CurSpecies]
 	ld [BaseDexNo], a
-	
+
 	pop af
 	rst Bankswitch
 	pop hl
@@ -2102,10 +2110,12 @@
 	push bc
 	ld de, AttrMap - TileMap
 	add hl, de
+rept 2
 	inc b
-	inc b
+endr
+rept 2
 	inc c
-	inc c
+endr
 	call Function3f35
 	pop bc
 	pop hl
@@ -2129,10 +2139,12 @@
 	push bc
 	ld de, AttrMap - TileMap
 	add hl, de
+rept 2
 	inc b
-	inc b
+endr
+rept 2
 	inc c
-	inc c
+endr
 	call Function3f35
 	pop bc
 	pop hl
@@ -2253,8 +2265,9 @@
 	ld c, $8
 .asm_3fa5
 	ld a, [de]
+rept 2
 	inc de
-	inc de
+endr
 	cpl
 	ld [hl], $0
 	inc hl
--- a/home/audio.asm
+++ b/home/audio.asm
@@ -158,12 +158,9 @@
 	ld [MBC3RomBank], a
 
 	ld hl, CryHeaders
+rept 6
 	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
+endr
 
 	ld e, [hl]
 	inc hl
@@ -321,7 +318,7 @@
 	ret
 ; 3cae
 
-Function3cae:: ; 3cae
+CrankUpTheVolume:: ; 3cae
 	ld a, 4 | 1 << 7
 	ld [MusicFade], a
 	ret
@@ -423,7 +420,7 @@
 	ret
 ; 3d2f
 
-Function3d2f:: ; 3d2f
+TryRestartMapMusic:: ; 3d2f
 	ld a, [wc2c1]
 	and a
 	jr z, RestartMapMusic
--- a/home/battle.asm
+++ b/home/battle.asm
@@ -91,7 +91,7 @@
 
 	ld a, [CurBattleMon]
 
-Function399f:: ; 399f
+UpdateBattleMon:: ; 399f
 	ld hl, PartyMon1Level
 	call GetPartyLocation
 
@@ -153,8 +153,9 @@
 	ld hl, .battlevarpairs
 	ld c, a
 	ld b, 0
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 
 	ld a, [hli]
 	ld h, [hl]
@@ -174,8 +175,9 @@
 	ld b, 0
 
 	ld hl, .vars
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 
 	ld a, [hli]
 	ld h, [hl]
@@ -260,7 +262,7 @@
 ; 3a90
 
 
-Function3a90:: ; 3a90
+FarJumpText:: ; 3a90
 	inc hl
 	ld a, [hROMBank]
 	push af
@@ -310,7 +312,7 @@
 	push hl
 	call SpeechTextBox
 	call MobileTextBorder
-	call Function1ad2
+	call DrawOnMap
 	call Function321c
 	pop hl
 	call PrintTextBoxText
--- a/home/copy.asm
+++ b/home/copy.asm
@@ -56,7 +56,7 @@
 	ld a, b
 	rst Bankswitch
 
-.asm_e09
+.loop
 	ld a, d
 	ld [rHDMA1], a
 	ld a, e
@@ -70,7 +70,7 @@
 	ld [rHDMA4], a
 	ld a, c
 	cp $8
-	jr c, .asm_e3c
+	jr c, .done
 	sub $8
 	ld c, a
 	ld a, $f
@@ -77,20 +77,20 @@
 	ld [hDMATransfer], a
 	call DelayFrame
 	ld a, l
-	add $0
+	add 0
 	ld l, a
 	ld a, h
-	adc $1
+	adc 1
 	ld h, a
 	ld a, e
-	add $0
+	add 0
 	ld e, a
 	ld a, d
-	adc $1
+	adc 1
 	ld d, a
-	jr .asm_e09
+	jr .loop
 
-.asm_e3c
+.done
 	ld a, c
 	and $7f
 	ld [hDMATransfer], a
@@ -105,7 +105,7 @@
 
 
 
-Functione4a:: ; e4a
+Special_ReplaceKrisSprite:: ; e4a
 	callba Function14135
 	ret
 ; e51
@@ -195,8 +195,9 @@
 .loop
 	ld a, [de]
 	inc de
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 .dec
 	dec c
 	jr nz, .loop
@@ -406,9 +407,9 @@
 	push af
 	ld h, 0
 	ld l, c
+rept 3
 	add hl, hl
-	add hl, hl
-	add hl, hl
+endr
 	ld b, h
 	ld c, l
 	pop af
--- a/home/cry.asm
+++ b/home/cry.asm
@@ -66,12 +66,9 @@
 	rst Bankswitch
 
 	ld hl, CryHeaders
+rept 6
 	add hl, bc
-	add hl, bc
-	add hl, bc
-	add hl, bc
-	add hl, bc
-	add hl, bc
+endr
 
 	ld e, [hl]
 	inc hl
--- a/home/fade.asm
+++ b/home/fade.asm
@@ -36,7 +36,7 @@
 	jr FadeOut
 ; 4b6
 
-Function4b6:: ; 4b6
+FadeToWhite:: ; 4b6
 	ld a, [hCGB]
 	and a
 	jr z, .asm_4c2
--- a/home/flag.asm
+++ b/home/flag.asm
@@ -1,4 +1,4 @@
-Function2e50:: ; 2e50
+ResetMapBufferEventFlags:: ; 2e50
 	xor a
 	ld hl, EventFlags
 	ld [hli], a
@@ -5,7 +5,7 @@
 	ret
 ; 2e56
 
-Function2e56:: ; 2e56
+ResetBikeFlags:: ; 2e56
 	xor a
 	ld hl, BikeFlags
 	ld [hli], a
@@ -13,8 +13,8 @@
 	ret
 ; 2e5d
 
-Function2e5d:: ; 2e5d
-	ld a, [wd19a]
+ResetFlashIfOutOfCave:: ; 2e5d
+	ld a, [wPermission]
 	cp $2
 	jr z, .asm_2e69
 	cp $1
--- a/home/joypad.asm
+++ b/home/joypad.asm
@@ -42,8 +42,9 @@
 	ld a, D_PAD
 	ld [rJOYP], a
 ; Read twice to give the request time to take.
+rept 2
 	ld a, [rJOYP]
-	ld a, [rJOYP]
+endr
 	
 ; The Joypad register output is in the lo nybble (inversed).
 ; We make the hi nybble of our new container d-pad input.
@@ -59,12 +60,9 @@
 	ld a, BUTTONS
 	ld [rJOYP], a
 ; Wait for input to stabilize.
+rept 6
 	ld a, [rJOYP]
-	ld a, [rJOYP]
-	ld a, [rJOYP]
-	ld a, [rJOYP]
-	ld a, [rJOYP]
-	ld a, [rJOYP]
+endr
 ; Buttons take the lo nybble.
 	cpl
 	and $f
@@ -211,8 +209,9 @@
 	jr nz, .next
 	
 ; The current input is overwritten.
+rept 2
 	dec hl
-	dec hl
+endr
 	ld b, NO_INPUT
 	jr .finishauto
 	
@@ -312,7 +311,7 @@
 	jr Functiona36
 ; a46
 
-Functiona46:: ; a46
+CloseText:: ; a46
 	ld a, [hOAMUpdate]
 	push af
 	ld a, 1
@@ -387,7 +386,7 @@
 	ret
 ; aaf
 
-Functionaaf:: ; aaf
+KeepTextOpen:: ; aaf
 	ld a, [InLinkBattle]
 	and a
 	jr nz, .asm_ac1
--- a/home/map.asm
+++ b/home/map.asm
@@ -1,6 +1,6 @@
 ; Functions dealing with rendering and interacting with maps.
 
-Function210f:: ; 210f
+Clearwc7e8:: ; 210f
 	ld hl, wc7e8
 	ld bc, $0018
 	ld a, $0
@@ -8,41 +8,49 @@
 	ret
 ; 211b
 
-Function211b:: ; 211b
+CheckTriggers:: ; 211b
+; Checks wCurrentMapTriggerPointer.  If it's empty, returns -1 in a.  Otherwise, returns the active trigger ID in a.
 	push hl
-	ld hl, BikeFlags + 2
+	ld hl, wCurrentMapTriggerPointer
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
 	or h
 	ld a, [hl]
-	jr nz, .asm_2128
-	ld a, $ff
+	jr nz, .triggerexists
+	ld a, -1
 
-.asm_2128
+.triggerexists
 	pop hl
 	ret
 ; 212a
 
 GetCurrentMapTrigger:: ; 212a
+; Grabs the wram map trigger pointer for the current map and loads it into wCurrentMapTriggerPointer.
+; If there are no triggers, both bytes of wCurrentMapTriggerPointer are wiped clean.
+; Copy the current map group and number into bc.  This is needed for GetMapTrigger.
 	ld a, [MapGroup]
 	ld b, a
 	ld a, [MapNumber]
 	ld c, a
+; Blank out wCurrentMapTriggerPointer; this is the default scenario.
 	xor a
-	ld [BikeFlags + 2], a
-	ld [BikeFlags + 3], a
+	ld [wCurrentMapTriggerPointer], a
+	ld [wCurrentMapTriggerPointer + 1], a
 	call GetMapTrigger
-	ret c
+	ret c ; The map is not in the trigger table
+; Load the trigger table pointer from de into wCurrentMapTriggerPointer
 	ld a, e
-	ld [BikeFlags + 2], a
+	ld [wCurrentMapTriggerPointer], a
 	ld a, d
-	ld [BikeFlags + 3], a
+	ld [wCurrentMapTriggerPointer + 1], a
 	xor a
 	ret
 ; 2147
 
 GetMapTrigger:: ; 2147
+; Searches the trigger table for the map group and number loaded in bc, and returns the wram pointer in de.
+; If the map is not in the trigger table, returns carry.
 	push bc
 	ld a, [hROMBank]
 	push af
@@ -50,34 +58,34 @@
 	rst Bankswitch
 
 	ld hl, MapTriggers
-.asm_2151
+.loop
 	push hl
-	ld a, [hli]
-	cp $ff
-	jr z, .asm_2167
+	ld a, [hli] ; map group, or terminator
+	cp -1
+	jr z, .end ; the current map is not in the trigger table
 	cp b
-	jr nz, .asm_2160
-	ld a, [hli]
+	jr nz, .next ; map group did not match
+	ld a, [hli] ; map number
 	cp c
-	jr nz, .asm_2160
-	jr .asm_216a
+	jr nz, .next ; map number did not match
+	jr .found ; we found our map
 
-.asm_2160
+.next
 	pop hl
-	ld de, $0004
+	ld de, 4 ; size of an entry in the trigger table
 	add hl, de
-	jr .asm_2151
+	jr .loop
 
-.asm_2167
+.end
 	scf
-	jr .asm_216d
+	jr .done
 
-.asm_216a
+.found
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
 
-.asm_216d
+.done
 	pop hl
 	pop bc
 	ld a, b
@@ -142,9 +150,9 @@
 	add a
 	ld l, a
 	ld h, 0
-	add hl, hl
-	add hl, hl
-	add hl, hl
+rept 3
+	add hl,hl
+endr
 	ld a, [TilesetBlocksAddress]
 	add l
 	ld l, a
@@ -234,7 +242,7 @@
 	ld a, [hROMBank]
 	push af
 
-	call Function2c52
+	call SwitchToMapScriptHeaderBank
 	call Function2266
 
 	pop de
@@ -295,8 +303,9 @@
 ; 22a3
 
 Function22a3:: ; 22a3
+rept 2
 	inc hl
-	inc hl
+endr
 	scf
 	ret
 ; 22a7
@@ -305,7 +314,7 @@
 	ld a, [hROMBank]
 	push af
 
-	call Function2c52
+	call SwitchToMapScriptHeaderBank
 	call Function22b4
 
 	pop af
@@ -379,9 +388,9 @@
 ; 2309
 
 
-Function2309:: ; 2309
+LoadMapAttributes:: ; 2309
 	call Function2326
-	call Function2c52
+	call SwitchToMapScriptHeaderBank
 	call Function234f
 	xor a
 	call Function2336
@@ -388,9 +397,9 @@
 	ret
 ; 2317
 
-Function2317:: ; 2317
+LoadMapAttributes_IgnoreHidden:: ; 2317
 	call Function2326
-	call Function2c52
+	call SwitchToMapScriptHeaderBank
 	call Function234f
 	ld a, $1
 	call Function2336
@@ -412,8 +421,9 @@
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
+rept 2
 	inc hl
-	inc hl
+endr
 	call Function23da
 	call Function23f1
 	call Function2408
@@ -548,7 +558,7 @@
 Function23f1:: ; 23f1
 	ld a, [hli]
 	ld c, a
-	ld [wdbfe], a
+	ld [wCurrentMapXYTriggerCount], a
 	ld a, l
 	ld [wdbff], a
 	ld a, h
@@ -564,7 +574,7 @@
 Function2408:: ; 2408
 	ld a, [hli]
 	ld c, a
-	ld [wdc01], a
+	ld [wCurrentMapSignpostCount], a
 	ld a, l
 	ld [wdc02], a
 	ld a, h
@@ -656,7 +666,7 @@
 	ret
 ; 248a
 
-Function248a:: ; 248a
+RestoreFacingAfterWarp:: ; 248a
 	call GetMapScriptHeaderBank
 	rst Bankswitch
 
@@ -664,9 +674,9 @@
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
+rept 3
 	inc hl
-	inc hl
-	inc hl
+endr
 	ld a, [WarpNumber]
 	dec a
 	ld c, a
@@ -683,7 +693,7 @@
 	call Function24ba
 
 .asm_24b3
-	callba Function10486d
+	callba GetCoordOfUpperLeftCorner
 	ret
 ; 24ba
 
@@ -697,21 +707,21 @@
 	ret
 ; 24cd
 
-Function24cd:: ; 24cd
+LoadBlockData:: ; 24cd
 	ld hl, OverworldMap
 	ld bc, OverworldMapEnd - OverworldMap
 	ld a, 0
 	call ByteFill
-	call Function24e4
+	call ChangeMap
 	call FillMapConnections
 	ld a, $1
-	call Function263b
+	call RunMapCallback
 	ret
 ; 24e4
 
 
 
-Function24e4:: ; 24e4
+ChangeMap:: ; 24e4
 	ld a, [hROMBank]
 	push af
 
@@ -722,9 +732,9 @@
 	ld [hConnectionStripLength], a
 	ld c, a
 	ld b, 0
+rept 3
 	add hl, bc
-	add hl, bc
-	add hl, bc
+endr
 	ld c, 3
 	add hl, bc
 	ld a, [MapBlockDataBank]
@@ -938,7 +948,7 @@
 	ret
 ; 261b
 
-Function261b:: ; 261b
+LoadMapStatus:: ; 261b
 	ld [MapStatus], a
 	ret
 ; 261f
@@ -968,11 +978,12 @@
 	jr CallScript
 ; 263b
 
-Function263b:: ; 263b
+RunMapCallback:: ; 263b
+; Will run the first callback found in the map header with execution index equal to a.
 	ld b, a
 	ld a, [hROMBank]
 	push af
-	call Function2c52
+	call SwitchToMapScriptHeaderBank
 	call Function2653
 	jr nc, .done
 
@@ -980,7 +991,7 @@
 	ld b, a
 	ld d, h
 	ld e, l
-	call Function2674
+	call ExecuteCallbackScript
 
 .done
 	pop af
@@ -999,18 +1010,18 @@
 	ld l, a
 	or h
 	ret z
-	ld de, $0003
-.asm_2664
+	ld de, 3
+.loop
 	ld a, [hl]
 	cp b
-	jr z, .asm_266e
+	jr z, .done
 	add hl, de
 	dec c
-	jr nz, .asm_2664
+	jr nz, .loop
 	xor a
 	ret
 
-.asm_266e
+.done
 	inc hl
 	ld a, [hli]
 	ld h, [hl]
@@ -1019,7 +1030,7 @@
 	ret
 ; 2674
 
-Function2674:: ; 2674
+ExecuteCallbackScript:: ; 2674
 	callba Function974f3
 	ld a, [ScriptMode]
 	push af
@@ -1027,7 +1038,7 @@
 	ld a, [hl]
 	push af
 	set 1, [hl]
-	callba Function96c56
+	callba EnableScriptMode
 	callba ScriptEvents
 	pop af
 	ld [ScriptFlags], a
@@ -1036,7 +1047,7 @@
 	ret
 ; 269a
 
-Function269a:: ; 269a
+MapTextbox:: ; 269a
 	ld a, [hROMBank]
 	push af
 
@@ -1059,7 +1070,7 @@
 	ret
 ; 26b7
 
-Function26b7:: ; 26b7
+Call_a_de:: ; 26b7
 ; Call a:de.
 
 	ld [hBuffer], a
@@ -1079,7 +1090,7 @@
 	ret
 ; 26c7
 
-Function26c7:: ; 26c7
+GetMovementData:: ; 26c7
 	ld a, [hROMBank]
 	push af
 	ld a, b
@@ -1315,8 +1326,9 @@
 	ld a, d
 	ld [hli], a
 	ld a, e
+rept 2
 	inc a
-	inc a
+endr
 	and $1f
 	ld b, a
 	ld a, e
@@ -1412,7 +1424,7 @@
 	ret
 ; 2879
 
-Function2879:: ; 2879
+BufferScreen:: ; 2879
 	ld hl, wd194
 	ld a, [hli]
 	ld h, [hl]
@@ -1441,7 +1453,7 @@
 	ret
 ; 289d
 
-Function289d:: ; 289d
+SaveScreen:: ; 289d
 	ld hl, wd194
 	ld a, [hli]
 	ld h, [hl]
@@ -1491,7 +1503,7 @@
 	jr Function28f7
 
 
-Function28e3:: ; 28e3
+LoadNeighboringBlockData:: ; 28e3
 	ld hl, wd194
 	ld a, [hli]
 	ld h, [hl]
@@ -1607,13 +1619,13 @@
 	ld a, [TileDown]
 	and $7
 	cp $2
-	jr z, .asm_299f
+	jr z, .ok
 	cp $6
-	jr z, .asm_299f
+	jr z, .ok
 	cp $7
 	ret nz
 
-.asm_299f
+.ok
 	ld a, [TilePermissions]
 	or $8
 	ld [TilePermissions], a
@@ -1626,13 +1638,13 @@
 	ld a, [TileUp]
 	and $7
 	cp $3
-	jr z, .asm_29bc
+	jr z, .ok
 	cp $4
-	jr z, .asm_29bc
+	jr z, .ok
 	cp $5
 	ret nz
 
-.asm_29bc
+.ok
 	ld a, [TilePermissions]
 	or $4
 	ld [TilePermissions], a
@@ -1645,13 +1657,13 @@
 	ld a, [TileRight]
 	and $7
 	cp $1
-	jr z, .asm_29d9
+	jr z, .ok
 	cp $5
-	jr z, .asm_29d9
+	jr z, .ok
 	cp $7
 	ret nz
 
-.asm_29d9
+.ok
 	ld a, [TilePermissions]
 	or $1
 	ld [TilePermissions], a
@@ -1664,13 +1676,13 @@
 	ld a, [TileLeft]
 	and $7
 	cp $0
-	jr z, .asm_29f6
+	jr z, .ok
 	cp $4
-	jr z, .asm_29f6
+	jr z, .ok
 	cp $6
 	ret nz
 
-.asm_29f6
+.ok
 	ld a, [TilePermissions]
 	or $2
 	ld [TilePermissions], a
@@ -1696,8 +1708,9 @@
 	srl a
 	ld l, a
 	ld h, 0
-	add hl, hl
-	add hl, hl
+rept 2
+	add hl,hl
+endr
 	ld de, .Directions
 	add hl, de
 
@@ -1733,14 +1746,15 @@
 
 
 Function2a3c:: ; 2a3c
-	call Function2a66
+	call GetBlockLocation
 	ld a, [hl]
 	and a
-	jr z, .asm_2a63
+	jr z, .nope
 	ld l, a
 	ld h, $0
-	add hl, hl
-	add hl, hl
+rept 2
+	add hl,hl
+endr
 	ld a, [TilesetCollisionAddress]
 	ld c, a
 	ld a, [TilesetCollisionAddress + 1]
@@ -1747,51 +1761,52 @@
 	ld b, a
 	add hl, bc
 	rr d
-	jr nc, .asm_2a56
+	jr nc, .nocarry
 	inc hl
 
-.asm_2a56
+.nocarry
 	rr e
-	jr nc, .asm_2a5c
+	jr nc, .nocarry2
+rept 2
 	inc hl
-	inc hl
+endr
 
-.asm_2a5c
+.nocarry2
 	ld a, [TilesetCollisionBank]
 	call GetFarByte
 	ret
 
-.asm_2a63
-	ld a, $ff
+.nope
+	ld a, -1
 	ret
 ; 2a66
 
-Function2a66:: ; 2a66
+GetBlockLocation:: ; 2a66
 	ld a, [MapWidth]
-	add $6
+	add 6
 	ld c, a
-	ld b, $0
+	ld b, 0
 	ld hl, wc801
 	add hl, bc
 	ld a, e
 	srl a
-	jr z, .asm_2a84
+	jr z, .nope
 	and a
-.asm_2a78
+.loop
 	srl a
-	jr nc, .asm_2a7d
+	jr nc, .ok
 	add hl, bc
 
-.asm_2a7d
+.ok
 	sla c
 	rl b
 	and a
-	jr nz, .asm_2a78
+	jr nz, .loop
 
-.asm_2a84
+.nope
 	ld c, d
 	srl c
-	ld b, $0
+	ld b, 0
 	add hl, bc
 	ret
 ; 2a8b
@@ -1799,7 +1814,9 @@
 
 CheckFacingSign:: ; 2a8b
 	call GetFacingTileCoord
+; Load facing into b.
 	ld b, a
+; Convert the coordinates at de to within-boundaries coordinates.
 	ld a, d
 	sub 4
 	ld d, a
@@ -1806,14 +1823,15 @@
 	ld a, e
 	sub 4
 	ld e, a
-	ld a, [wdc01]
+; If there are no signposts, we don't need to be here.
+	ld a, [wCurrentMapSignpostCount]
 	and a
 	ret z
 	ld c, a
 	ld a, [hROMBank]
 	push af
-	call Function2c52
-	call Function2aaa
+	call SwitchToMapScriptHeaderBank
+	call CheckIfFacingTileCoordIsSign
 	pop hl
 	ld a, h
 	rst Bankswitch
@@ -1820,53 +1838,56 @@
 	ret
 ; 2aaa
 
-Function2aaa:: ; 2aaa
+CheckIfFacingTileCoordIsSign:: ; 2aaa
+; Checks to see if you are facing a signpost.  If so, copies it into EngineBuffer1 and sets carry.
 	ld hl, wdc02
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
-.asm_2ab0
+.loop
 	push hl
 	ld a, [hli]
 	cp e
-	jr nz, .asm_2abb
+	jr nz, .next
 	ld a, [hli]
 	cp d
-	jr nz, .asm_2abb
-	jr .asm_2ac8
+	jr nz, .next
+	jr .copysign
 
-.asm_2abb
+.next
 	pop hl
-	ld a, 5
+	ld a, 5 ; signpost event length
 	add l
 	ld l, a
-	jr nc, .asm_2ac3
+	jr nc, .nocarry
 	inc h
 
-.asm_2ac3
+.nocarry
 	dec c
-	jr nz, .asm_2ab0
+	jr nz, .loop
 	xor a
 	ret
 
-.asm_2ac8
+.copysign
 	pop hl
 	ld de, EngineBuffer1
-	ld bc, 5
+	ld bc, 5 ; signpost event length
 	call CopyBytes
 	scf
 	ret
 ; 2ad4
 
-Function2ad4:: ; 2ad4
-	ld a, [wdbfe]
+CheckCurrentMapXYTriggers:: ; 2ad4
+; If there are no xy triggers, we don't need to be here.
+	ld a, [wCurrentMapXYTriggerCount]
 	and a
 	ret z
+; Copy the trigger count into c.
 	ld c, a
 	ld a, [hROMBank]
 	push af
-	call Function2c52
-	call Function2ae7
+	call SwitchToMapScriptHeaderBank
+	call CheckStandingOnXYTrigger
 	pop hl
 	ld a, h
 	rst Bankswitch
@@ -1873,54 +1894,58 @@
 	ret
 ; 2ae7
 
-Function2ae7:: ; 2ae7
+CheckStandingOnXYTrigger:: ; 2ae7
+; Checks to see if you are standing on an xy-trigger.  If yes, copies the trigger to EngineBuffer1 and sets carry.
 	ld hl, wdbff
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
-	call Function211b
+; Load the active trigger ID into b
+	call CheckTriggers
 	ld b, a
+; Load your current coordinates into de.  This will be used to check if your position is in the xy-trigger table for the current map.
 	ld a, [MapX]
-	sub $4
+	sub 4
 	ld d, a
 	ld a, [MapY]
-	sub $4
+	sub 4
 	ld e, a
-.asm_2afd
+
+.loop
 	push hl
 	ld a, [hli]
 	cp b
-	jr z, .asm_2b06
-	cp $ff
-	jr nz, .asm_2b10
+	jr z, .got_id
+	cp -1
+	jr nz, .next
 
-.asm_2b06
+.got_id
 	ld a, [hli]
 	cp e
-	jr nz, .asm_2b10
+	jr nz, .next
 	ld a, [hli]
 	cp d
-	jr nz, .asm_2b10
-	jr .asm_2b1d
+	jr nz, .next
+	jr .copytrigger
 
-.asm_2b10
+.next
 	pop hl
-	ld a, $8
+	ld a, $8 ; xy-trigger size
 	add l
 	ld l, a
-	jr nc, .asm_2b18
+	jr nc, .nocarry
 	inc h
 
-.asm_2b18
+.nocarry
 	dec c
-	jr nz, .asm_2afd
+	jr nz, .loop
 	xor a
 	ret
 
-.asm_2b1d
+.copytrigger
 	pop hl
 	ld de, EngineBuffer1
-	ld bc, $0008
+	ld bc, $0008 ; xy-trigger size
 	call CopyBytes
 	scf
 	ret
@@ -1931,7 +1956,7 @@
 	xor a
 	ld [hBGMapMode], a
 	call Function1d6e
-	callba Function8c084
+	callba FadeBlackBGMap
 	call ClearSprites
 	call Function2ed3
 	ret
@@ -1941,7 +1966,7 @@
 Function2b3c:: ; 2b3c
 	call WhiteBGMap
 	call Function2bae
-	call Function1ad2
+	call DrawOnMap
 	call Function1d7d
 	call Functiond90
 	jr Function2b5c
@@ -1951,7 +1976,7 @@
 	call WhiteBGMap
 	call Function1d7d
 	call Function2bae
-	call Function1ad2
+	call DrawOnMap
 	call Functiond90
 ; 2b5c
 
@@ -1960,7 +1985,7 @@
 	call GetSGBLayout
 	callba Function49409
 	call Function3200
-	callba Function8c079
+	callba FadeInBGMap
 	call Function2ee4
 	ret
 ; 2b74
@@ -1978,7 +2003,7 @@
 	call TextBox
 	ld hl, VramState
 	set 0, [hl]
-	call Function1ad2
+	call DrawOnMap
 	call Function3200
 	ld b, $9
 	call GetSGBLayout
@@ -2041,8 +2066,9 @@
 	ld c, b
 	ld b, 0
 	ld hl, MapGroupPointers
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 
 	ld a, [hli]
 	ld h, [hl]
@@ -2139,7 +2165,7 @@
 	ret
 ; 2c52
 
-Function2c52:: ; 2c52
+SwitchToMapScriptHeaderBank:: ; 2c52
 	ld a, [MapScriptHeaderBank]
 	rst Bankswitch
 	ret
@@ -2292,23 +2318,23 @@
 	jr .done
 ; 2cff
 
-Function2cff:: ; 2cff
-	call Function2d0d
+GetMapHeaderTimeOfDayNybble:: ; 2cff
+	call GetPhoneServiceTimeOfDayByte
 	and $f
 	ret
 ; 2d05
 
-Function2d05:: ; 2d05
-	call Function2d0d
+GetMapHeaderPhoneServiceNybble:: ; 2d05
+	call GetPhoneServiceTimeOfDayByte
 	and $f0
 	swap a
 	ret
 ; 2d0d
 
-Function2d0d:: ; 2d0d
+GetPhoneServiceTimeOfDayByte:: ; 2d0d
 	push hl
 	push bc
-	ld de, $0007
+	ld de, 7 ; phone service and time of day
 	call GetMapHeaderMember
 	ld a, c
 	pop bc
@@ -2320,7 +2346,7 @@
 	push de
 	push hl
 	push bc
-	ld de, $0008
+	ld de, 8 ; fishing group
 	call GetMapHeaderMember
 	ld a, c
 	pop bc
--- a/home/map_objects.asm
+++ b/home/map_objects.asm
@@ -19,33 +19,34 @@
 	push hl
 	push bc
 	ld hl, UsedSprites + 2
-	ld c, $1f
+	ld c, SPRITE_GFX_LIST_CAPACITY - 1
 	ld b, a
 	ld a, [hConnectionStripLength]
-	cp $0
-	jr z, .asm_182b
+	cp 0
+	jr z, .nope
 	ld a, b
-.asm_181d
+.loop
 	cp [hl]
-	jr z, .asm_1830
+	jr z, .found
+rept 2
 	inc hl
-	inc hl
+endr
 	dec c
-	jr nz, .asm_181d
+	jr nz, .loop
 	ld a, [UsedSprites + 1]
 	scf
-	jr .asm_1833
+	jr .done
 
-.asm_182b
+.nope
 	ld a, [UsedSprites + 1]
-	jr .asm_1833
+	jr .done
 
-.asm_1830
+.found
 	inc hl
 	xor a
 	ld a, [hl]
 
-.asm_1833
+.done
 	pop bc
 	pop hl
 	ret
@@ -125,13 +126,13 @@
 	ld d, a
 	and $f0
 	cp $10
-	jr z, .asm_1882
+	jr z, .ok_10
 	cp $20
-	jr z, .asm_1888
+	jr z, .ok_20
 	scf
 	ret
 
-.asm_1882
+.ok_10
 	ld a, d
 	and 7
 	ret z
@@ -138,7 +139,7 @@
 	scf
 	ret
 
-.asm_1888
+.ok_20
 	ld a, d
 	and 7
 	ret z
@@ -223,7 +224,7 @@
 GetMapObject:: ; 18d2
 ; Return the location of map object a in bc.
 	ld hl, MapObjects
-	ld bc, $10
+	ld bc, OBJECT_LENGTH
 	call AddNTimes
 	ld b, h
 	ld c, l
@@ -232,93 +233,94 @@
 
 
 Function18de:: ; 18de
+; Sets carry if the object is not visible on the screen.
 	ld [hConnectionStripLength], a
 	call GetMapObject
-	ld hl, $0000
+	ld hl, MAPOBJECT_OBJECT_STRUCT_ID
 	add hl, bc
 	ld a, [hl]
-	cp $ff
-	jr z, .asm_18f3
+	cp -1
+	jr z, .not_visible
 	ld [hConnectedMapWidth], a
-	call Function1ae5
+	call GetObjectStruct
 	and a
 	ret
 
-.asm_18f3
+.not_visible
 	scf
 	ret
 ; 18f5
 
 Function18f5:: ; 18f5
-	ld hl, $0006
+	ld hl, MAPOBJECT_HOUR
 	add hl, bc
 	ld a, [hl]
-	cp $ff
-	jr nz, .asm_1921
-	ld hl, $0007
+	cp -1
+	jr nz, .check_hour
+	ld hl, MAPOBJECT_TIMEOFDAY
 	add hl, bc
 	ld a, [hl]
-	cp $ff
-	jr z, .asm_191c
-	ld hl, .data_191e
+	cp -1
+	jr z, .timeofday_always
+	ld hl, .TimeOfDayValues_191e
 	ld a, [TimeOfDay]
 	add l
 	ld l, a
-	jr nc, .asm_1912
+	jr nc, .ok
 	inc h
 
-.asm_1912
+.ok
 	ld a, [hl]
-	ld hl, $0007
+	ld hl, MAPOBJECT_TIMEOFDAY
 	add hl, bc
 	and [hl]
-	jr nz, .asm_191c
+	jr nz, .timeofday_always
 	scf
 	ret
 
-.asm_191c
+.timeofday_always
 	and a
 	ret
 
-.data_191e
-	db $1
-	db $2
-	db $4
+.TimeOfDayValues_191e
+	db 1 << MORN ; 1
+	db 1 << DAY  ; 2
+	db 1 << NITE ; 4
 
-.asm_1921
-	ld hl, $0006
+.check_hour
+	ld hl, MAPOBJECT_HOUR
 	add hl, bc
 	ld d, [hl]
-	ld hl, $0007
+	ld hl, MAPOBJECT_TIMEOFDAY
 	add hl, bc
 	ld e, [hl]
 	ld hl, hHours
 	ld a, d
 	cp e
-	jr z, .asm_1949
-	jr c, .asm_193f
+	jr z, .yes
+	jr c, .check_timeofday
 	ld a, [hl]
 	cp d
-	jr nc, .asm_1949
+	jr nc, .yes
 	cp e
-	jr c, .asm_1949
-	jr z, .asm_1949
-	jr .asm_194b
+	jr c, .yes
+	jr z, .yes
+	jr .no
 
-.asm_193f
+.check_timeofday
 	ld a, e
 	cp [hl]
-	jr c, .asm_194b
+	jr c, .no
 	ld a, [hl]
 	cp d
-	jr nc, .asm_1949
-	jr .asm_194b
+	jr nc, .yes
+	jr .no
 
-.asm_1949
+.yes
 	and a
 	ret
 
-.asm_194b
+.no
 	scf
 	ret
 ; 194d
@@ -326,18 +328,18 @@
 Function194d:: ; 194d
 	ld [hConnectionStripLength], a
 	call GetMapObject
-	call Function80e7
+	call CopyObjectStruct
 	ret
 ; 1956
 
 
 
-Function1956:: ; 1956
+_CopyObjectStruct:: ; 1956
 	ld [hConnectionStripLength], a
 	call Function271e
 	ld a, [hConnectionStripLength]
 	call GetMapObject
-	callba Function80e7
+	callba CopyObjectStruct
 	ret
 ; 1967
 
@@ -344,16 +346,16 @@
 Function1967:: ; 1967
 	ld [hConnectionStripLength], a
 	call GetMapObject
-	ld hl, $0000
+	ld hl, MAPOBJECT_OBJECT_STRUCT_ID
 	add hl, bc
 	ld a, [hl]
-	cp $ff
+	cp -1
 	ret z
-	ld [hl], $ff
+	ld [hl], -1
 	push af
 	call Function1985
 	pop af
-	call Function1ae5
+	call GetObjectStruct
 	callba Function4357
 	ret
 ; 1985
@@ -361,20 +363,20 @@
 Function1985:: ; 1985
 	ld hl, wd4cd
 	cp [hl]
-	jr z, .asm_1990
+	jr z, .ok
 	ld hl, wd4ce
 	cp [hl]
 	ret nz
 
-.asm_1990
+.ok
 	callba Function581f
-	ld a, $ff
+	ld a, -1
 	ld [wd4cd], a
 	ld [wd4ce], a
 	ret
 ; 199f
 
-Function199f:: ; 199f
+DeleteObjectStruct:: ; 199f
 	call Function1967
 	call Function2712
 	ret
@@ -385,11 +387,11 @@
 	call GetMapObject
 	ld d, b
 	ld e, c
-	ld a, $ff
+	ld a, -1
 	ld [de], a
 	inc de
 	pop hl
-	ld bc, $000f
+	ld bc, OBJECT_LENGTH - 1
 	call CopyBytes
 	ret
 ; 19b8
@@ -396,17 +398,17 @@
 
 Function19b8:: ; 19b8
 	call GetMapObject
-	ld hl, $0000
+	ld hl, MAPOBJECT_OBJECT_STRUCT_ID
 	add hl, bc
 	ld a, [hl]
 	push af
-	ld [hl], $ff
+	ld [hl], -1
 	inc hl
-	ld bc, $000f
+	ld bc, OBJECT_LENGTH - 1
 	xor a
 	call ByteFill
 	pop af
-	cp $ff
+	cp -1
 	ret z
 	cp $d
 	ret nc
@@ -413,13 +415,13 @@
 	ld b, a
 	ld a, [wd4cd]
 	cp b
-	jr nz, .asm_19de
-	ld a, $ff
+	jr nz, .ok
+	ld a, -1
 	ld [wd4cd], a
 
-.asm_19de
+.ok
 	ld a, b
-	call Function1ae5
+	call GetObjectStruct
 	callba Function4357
 	ret
 ; 19e9
@@ -437,12 +439,12 @@
 	ld a, [wc2e2]
 	call Function18de
 	ret c
-	ld hl, $0003
+	ld hl, OBJECT_03
 	add hl, bc
 	ld [hl], $14
-	ld hl, $0009
+	ld hl, OBJECT_09
 	add hl, bc
-	ld [hl], $0
+	ld [hl], 0
 	ld hl, VramState
 	set 7, [hl]
 	and a
@@ -455,24 +457,24 @@
 	push bc
 	push de
 	ld hl, ObjectStructs
-	ld de, $0028
-	ld c, $d
-.asm_1a1d
+	ld de, OBJECT_STRUCT_LENGTH
+	ld c, NUM_OBJECT_STRUCTS
+.loop
 	ld a, [hl]
 	and a
-	jr z, .asm_1a28
+	jr z, .empty
 	add hl, de
 	dec c
-	jr nz, .asm_1a1d
+	jr nz, .loop
 	xor a
-	jr .asm_1a2c
+	jr .done
 
-.asm_1a28
+.empty
 	ld a, $d
 	sub c
 	scf
 
-.asm_1a2c
+.done
 	pop de
 	pop bc
 	ret
@@ -481,23 +483,20 @@
 
 
 Function1a2f:: ; 1a2f
-	ld hl, $0003
+	ld hl, OBJECT_03
 	add hl, bc
 	ld a, [hl]
-	cp $25
-	jr c, .asm_1a39
+	cp OBJECT_STRUCT_3_DATA_HEIGHT
+	jr c, .ok
 	xor a
 
-.asm_1a39
-	ld hl, Data4273
+.ok
+	ld hl, ObjectStruct3_Data
 	ld e, a
 	ld d, 0
-	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
+rept OBJECT_STRUCT_3_DATA_WIDTH
+	add hl,de
+endr
 	ld a, [hl]
 	ret
 ; 1a47
@@ -507,17 +506,15 @@
 	push de
 	ld e, a
 	ld d, 0
-	ld hl, Data4273 + 1
-	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
-	ld a, BANK(Data4273)
+	ld hl, ObjectStruct3_Data + 1
+rept OBJECT_STRUCT_3_DATA_WIDTH
+	add hl,de
+endr
+	ld a, BANK(ObjectStruct3_Data)
 	call GetFarByte
+rept 2
 	add a
-	add a
+endr
 	and $c
 	pop de
 	pop bc
@@ -529,7 +526,7 @@
 	ld l, a
 	ld a, [hROMBank]
 	push af
-	ld a, BANK(Data4273)
+	ld a, BANK(ObjectStruct3_Data)
 	rst Bankswitch
 	ld a, l
 	push bc
@@ -544,19 +541,16 @@
 ; 1a71
 
 Function1a71:: ; 1a71
-	ld hl, $0003
+	ld hl, OBJECT_03
 	add hl, de
 	ld [hl], a
 	push de
 	ld e, a
 	ld d, 0
-	ld hl, Data4273 + 1
-	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
+	ld hl, ObjectStruct3_Data + 1
+rept OBJECT_STRUCT_3_DATA_WIDTH
+	add hl,de
+endr
 	ld b, h
 	ld c, l
 	pop de
@@ -565,27 +559,27 @@
 	rlca
 	rlca
 	and $c
-	ld hl, $0008
+	ld hl, OBJECT_FACING
 	add hl, de
 	ld [hl], a
 	ld a, [bc]
 	inc bc
-	ld hl, $000b
+	ld hl, OBJECT_11
 	add hl, de
 	ld [hl], a
 	ld a, [bc]
 	inc bc
-	ld hl, $0004
+	ld hl, OBJECT_04
 	add hl, de
 	ld [hl], a
 	ld a, [bc]
 	inc bc
-	ld hl, $0005
+	ld hl, OBJECT_FLAGS
 	add hl, de
 	ld [hl], a
 	ld a, [bc]
 	inc bc
-	ld hl, $0006
+	ld hl, OBJECT_PALETTE
 	add hl, de
 	ld [hl], a
 	ret
@@ -599,12 +593,12 @@
 
 	ld a, [hli]
 	ld d, [hl]
-	ld hl, $001b
+	ld hl, OBJECT_27
 	add hl, bc
 	add [hl]
 	ld e, a
 	ld a, d
-	adc $0
+	adc 0
 	ld d, a
 	inc [hl]
 	ld a, [de]
@@ -616,13 +610,13 @@
 	ret
 ; 1ac6
 
-Function1ac6:: ; 1ac6
+SetVramState_Bit0:: ; 1ac6
 	ld hl, VramState
 	set 0, [hl]
 	ret
 ; 1acc
 
-Function1acc:: ; 1acc
+ResetVramState_Bit0:: ; 1acc
 	ld hl, VramState
 	res 0, [hl]
 	ret
@@ -629,18 +623,18 @@
 ; 1ad2
 
 
-Function1ad2:: ; 1ad2
+DrawOnMap:: ; 1ad2
 	ld a, [VramState]
 	bit 0, a
 	ret z
 	callba Function55e0
-	callba Function5920
+	callba RefreshMapAppearDisappear
 	ret
 ; 1ae5
 
 
-Function1ae5:: ; 1ae5
-	ld bc, $0028
+GetObjectStruct:: ; 1ae5
+	ld bc, OBJECT_STRUCT_LENGTH
 	ld hl, ObjectStructs
 	call AddNTimes
 	ld b, h
@@ -648,8 +642,8 @@
 	ret
 ; 1af1
 
-Function1af1:: ; 1af1
-	ld hl, $0000
+GetObjectSprite:: ; 1af1
+	ld hl, OBJECT_SPRITE
 	add hl, bc
 	ld a, [hl]
 	and a
@@ -656,15 +650,15 @@
 	ret
 ; 1af8
 
-Function1af8:: ; 1af8
+SetSpriteDirection:: ; 1af8
 	push af
-	ld hl, $0008
+	ld hl, OBJECT_FACING
 	add hl, bc
 	ld a, [hl]
-	and $f3
+	and %11110011
 	ld e, a
 	pop af
-	and $c
+	and %00001100
 	or e
 	ld [hl], a
 	ret
@@ -672,9 +666,9 @@
 
 
 GetSpriteDirection:: ; 1b07
-	ld hl, $0008
+	ld hl, OBJECT_FACING
 	add hl, bc
 	ld a, [hl]
-	and $c
+	and %00001100
 	ret
 ; 1b0f
--- a/home/menu.asm
+++ b/home/menu.asm
@@ -2,11 +2,11 @@
 
 
 LoadMenuDataHeader:: ; 0x1d35
-	call Function1d3c
+	call CopyMenuDataHeader
 	call Function1c00
 	ret
 
-Function1d3c:: ; 0x1d3c
+CopyMenuDataHeader:: ; 0x1d3c
 	ld de, wcf81
 	ld bc, $0010
 	call CopyBytes
@@ -21,9 +21,9 @@
 ; 1d4f
 
 
-Function1d4f:: ; 1d4f
+MenuTextBox:: ; 1d4f
 	push hl
-	call Function1d58
+	call LoadMenuTextBox
 	pop hl
 	jp PrintText
 ; 1d57
@@ -32,7 +32,7 @@
 	ret
 ; 1d58
 
-Function1d58:: ; 1d58
+LoadMenuTextBox:: ; 1d58
 	ld hl, MenuDataHeader_0x1d5f
 	call LoadMenuDataHeader
 	ret
@@ -46,9 +46,9 @@
 	db 0 ; default option
 ; 1d67
 
-Function1d67:: ; 1d67
-	call Function1d4f
-	call Function1c17
+MenuTextBoxBackup:: ; 1d67
+	call MenuTextBox
+	call WriteBackup
 	ret
 ; 1d6e
 
@@ -67,15 +67,15 @@
 ; 1d7d
 
 Function1d7d:: ; 1d7d
-	call Function1c07
+	call ExitMenu
 	ret
 ; 1d81
 
-Function1d81:: ; 0x1d81
+InterpretMenu2:: ; 0x1d81
 	xor a
 	ld [hBGMapMode], a
 	call Function1cbb
-	call Function1ad2
+	call DrawOnMap
 	call Function1c89
 	call Function321c
 	call Function1c66
@@ -95,10 +95,10 @@
 	ret
 ; 0x1dab
 
-Function1dab:: ; 1dab
+GetMenu2:: ; 1dab
 	call LoadMenuDataHeader
-	call Function1d81
-	call Function1c17
+	call InterpretMenu2
+	call WriteBackup
 	ld a, [wcfa9]
 	ret
 ; 1db8
@@ -111,8 +111,9 @@
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
+rept 2
 	inc hl
-	inc hl
+endr
 	pop af
 	call GetNthString
 	ld d, h
@@ -138,7 +139,7 @@
 ; Return nc (yes) or c (no).
 	push bc
 	ld hl, YesNoMenuDataHeader
-	call Function1d3c
+	call CopyMenuDataHeader
 	pop bc
 	ld a, b
 	cp $e
@@ -158,11 +159,11 @@
 	call Function1c00
 
 Function1dfe:: ; 1dfe
-	call Function1d81
+	call InterpretMenu2
 	push af
 	ld c, $f
 	call DelayFrames
-	call Function1c17
+	call WriteBackup
 	pop af
 	jr c, .asm_1e16
 	ld a, [wcfa9]
@@ -201,7 +202,7 @@
 
 Function1e35:: ; 1e35
 	push de
-	call Function1d3c
+	call CopyMenuDataHeader
 	pop de
 	ld a, [wcf83]
 	ld h, a
@@ -252,7 +253,7 @@
 MenuWriteText:: ; 0x1e8c
 	xor a
 	ld [hBGMapMode], a
-	call Function1ebd ; sort out the text 
+	call Function1ebd ; sort out the text
 	call Function1eda ; actually write it
 	call Function2e31
 	ld a, [hOAMUpdate]
@@ -439,8 +440,9 @@
 	push de
 	ld a, [MenuSelection]
 	call Function1fb1
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [hli]
 	ld d, [hl]
 	ld e, a
@@ -451,8 +453,9 @@
 
 Function1f9e:: ; 1f9e
 	call Function1fb1
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [hli]
 	ld d, [hl]
 	ld e, a
@@ -475,10 +478,9 @@
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
+rept 4
 	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
+endr
 	ret
 ; 1fbf
 
@@ -497,8 +499,9 @@
 	ld [rSVBK], a
 	xor a
 	ld hl, $dfff
+rept 2
 	ld [hld], a
-	ld [hld], a
+endr
 	ld a, l
 	ld [wcf71], a
 	ld a, h
@@ -530,7 +533,7 @@
 ; 2009
 
 
-PlayClickSFX:: ; 2009 
+PlayClickSFX:: ; 2009
 	push de
 	ld de, SFX_READ_TEXT_2
 	call PlaySFX
@@ -539,9 +542,9 @@
 ; 0x2012
 
 Function2012:: ; 2012
-	call Function1d4f
-	call Functiona46
-	call Function1c07
+	call MenuTextBox
+	call CloseText
+	call ExitMenu
 	ret
 ; 201c
 
@@ -559,7 +562,7 @@
 	ret
 ; 202a
 
-Function202a:: ; 202a
+InterpretMenu:: ; 202a
 	ld a, [hROMBank]
 	ld [wcf94], a
 	callba Function2400e
--- a/home/movement.asm
+++ b/home/movement.asm
@@ -102,8 +102,9 @@
 	push hl
 	ld l, b
 	ld h, 0
+rept 2
 	add hl, hl
-	add hl, hl
+endr
 	ld e, a
 	ld d, 0
 	add hl, de
@@ -131,12 +132,13 @@
 	dec b
 	jr nz, .asm_1bb8
 	ld a, $1
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	xor a
+rept 3
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	pop bc
 	pop hl
 	ret
@@ -193,7 +195,7 @@
 	ret
 ; 1c07
 
-Function1c07:: ; 0x1c07
+ExitMenu:: ; 0x1c07
 	push af
 	callab Function243e8
 	pop af
@@ -203,11 +205,11 @@
 	callab Function2446d
 	ret
 
-Function1c17:: ; 0x1c17
+WriteBackup:: ; 0x1c17
 	push af
-	call Function1c07
+	call ExitMenu
 	call Function321c
-	call Function1ad2
+	call DrawOnMap
 	pop af
 	ret
 
--- a/home/palettes.asm
+++ b/home/palettes.asm
@@ -302,7 +302,7 @@
 ; d91
 
 
-Functiond91:: ; d91
+Special_ReloadSpritesNoPalettes:: ; d91
 	ld a, [hCGB]
 	and a
 	ret z
--- a/home/text.asm
+++ b/home/text.asm
@@ -126,10 +126,12 @@
 ; Fill text box width c height b at hl with pal 7
 	ld de, AttrMap - TileMap
 	add hl, de
+rept 2
 	inc b
-	inc b
+endr
+rept 2
 	inc c
-	inc c
+endr
 	ld a, TEXTBOX_PAL
 .col
 	push bc
@@ -169,7 +171,7 @@
 
 
 PrintText:: ; 1057
-	call Function106c
+	call SetUpTextBox
 Function105a:: ; 105a
 	push hl
 	hlcoord TEXTBOX_INNERX, TEXTBOX_INNERY
@@ -183,10 +185,10 @@
 	ret
 ; 106c
 
-Function106c:: ; 106c
+SetUpTextBox:: ; 106c
 	push hl
 	call SpeechTextBox
-	call Function1ad2
+	call DrawOnMap
 	call Function321c
 	pop hl
 	ret
@@ -385,7 +387,7 @@
 	ld de, String12a2
 	call PlaceString
 	push bc
-	callab Function39939
+	callab Battle_GetTrainerName
 	pop hl
 	ld de, StringBuffer1
 	jr Function126a
@@ -517,7 +519,7 @@
 .asm_1301
 
 	call Function13b6
-	call Functionaaf
+	call KeepTextOpen
 	hlcoord TEXTBOX_INNERX, TEXTBOX_INNERY
 	lb bc, TEXTBOX_INNERH - 1, TEXTBOX_INNERW
 	call ClearBox
@@ -540,7 +542,7 @@
 	call Function13b6
 
 	push de
-	call Functionaaf
+	call KeepTextOpen
 	pop de
 
 	ld a, [InLinkBattle]
@@ -590,7 +592,7 @@
 .ok
 
 	call Function13b6
-	call Functionaaf
+	call KeepTextOpen
 	ld a, [InLinkBattle]
 	cp $3
 	jr z, DoneText
@@ -626,10 +628,12 @@
 	inc de
 	dec c
 	jr nz, .row
+rept 2
 	inc de
-	inc de
+endr
+rept 2
 	inc hl
-	inc hl
+endr
 	pop af
 	dec a
 	jr nz, .col
@@ -719,8 +723,9 @@
 	ld c, a
 	ld b, 0
 	ld hl, TextCommands
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
@@ -904,7 +909,7 @@
 	push hl
 	call Function13c7
 	push bc
-	call Functionaaf
+	call KeepTextOpen
 	pop bc
 	call Function13cd
 	pop hl
@@ -992,8 +997,9 @@
 	jr z, .done
 	cp b
 	jr z, .play
+rept 2
 	inc hl
-	inc hl
+endr
 	jr .loop
 
 .play
@@ -1066,7 +1072,7 @@
 ; display arrow
 	push hl
 	push bc
-	call Functionaaf
+	call KeepTextOpen
 	pop bc
 	pop hl
 	ret
@@ -1088,8 +1094,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Unknown_24000
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, BANK(Unknown_24000)
 	call GetFarHalfword
 	ld d, h
@@ -1110,8 +1117,9 @@
 	ld c, a
 	ld b, 0
 	ld hl, .Days
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
--- a/home/tilemap.asm
+++ b/home/tilemap.asm
@@ -175,11 +175,13 @@
 	ld a, c
 	ld b, h
 	ld c, l
+rept 2
 	add hl, hl
-	add hl, hl
+endr
 	add hl, bc
+rept 2
 	add hl, hl
-	add hl, hl
+endr
 	ld c, a
 	xor a
 	ld b, a
@@ -203,11 +205,13 @@
 	ld a, c
 	ld b, h
 	ld c, l
+rept 2
 	add hl, hl
-	add hl, hl
+endr
 	add hl, bc
+rept 2
 	add hl, hl
-	add hl, hl
+endr
 	ld c, a
 	xor a
 	ld b, a
--- a/home/vblank.asm
+++ b/home/vblank.asm
@@ -19,8 +19,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, .VBlanks
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -363,7 +364,7 @@
 ; bg map
 ; tiles
 ; joypad
-; 
+;
 
 	ld a, [hROMBank]
 	ld [hROMBankBackup], a
--- a/home/video.asm
+++ b/home/video.asm
@@ -77,8 +77,9 @@
 
 ; We've done 2 16x8 blocks
 	ld a, [$ffdc]
+rept 2
 	dec a
-	dec a
+endr
 	ld [$ffdc], a
 
 	jr nz, .next
--- a/home/window.asm
+++ b/home/window.asm
@@ -40,8 +40,8 @@
 	call Function2e31
 	ld a, $90
 	ld [hWY], a
-	call Functione4a
-	callba Functionb8000
+	call Special_ReplaceKrisSprite
+	callba ReturnFromMapSetupScript
 	callba Function106594
 	ret
 ; 2e08
@@ -83,7 +83,7 @@
 	ld [hBGMapMode], a
 	ld a, $1
 	ld [hOAMUpdate], a
-	call Function1ad2
+	call DrawOnMap
 	xor a
 	ld [hOAMUpdate], a
 	call DelayFrame
--- a/hram.asm
+++ b/hram.asm
@@ -41,6 +41,8 @@
 
 hMathBuffer        EQU $ffb8
 
+hMoneyTemp         EQU $ffc3
+
 hLCDStatCustom     EQU $ffc6
 
 hSerialSend        EQU $ffcd
--- a/items/item_attributes.asm
+++ b/items/item_attributes.asm
@@ -1,2051 +1,777 @@
+item_attribute: macro
+	; price, effect, param, permissions, pocket, battle permissions
+	dw \1
+	db \2, \3, \4, \5, \6
+	endm
+
 Item1Attributes:
 
 ; MASTER BALL
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db BALL
-	db $06 ; ball
+	item_attribute 0, NONE, 0, CANT_SELECT, BALL, $06
 
 Item2Attributes:
 
 ; ULTRA BALL
-	dw 1200 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db BALL
-	db $06 ; ball
+	item_attribute 1200, NONE, 0, CANT_SELECT, BALL, $06
 
 ; BRIGHTPOWDER
-	dw 10 ; price
-	db HELD_BRIGHTPOWDER ; effect
-	db 20 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 10, HELD_BRIGHTPOWDER, 20, CANT_SELECT, ITEM, $00
 
 ; GREAT BALL
-	dw 600 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db BALL
-	db $06 ; ball
+	item_attribute 600, NONE, 0, CANT_SELECT, BALL, $06
 
 ; # BALL
-	dw 200 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db BALL
-	db $06 ; ball
+	item_attribute 200, NONE, 0, CANT_SELECT, BALL, $06
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; BICYCLE
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_TOSS
-	db KEY_ITEM
-	db $60 ; overworld
+	item_attribute 0, NONE, 0, CANT_TOSS, KEY_ITEM, $60
 
 ; MOON STONE
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $50 ; party menu
+	item_attribute 0, NONE, 0, CANT_SELECT, ITEM, $50
 
 ; ANTIDOTE
-	dw 100 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 100, NONE, 0, CANT_SELECT, ITEM, $55
 
 ; BURN HEAL
-	dw 250 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 250, NONE, 0, CANT_SELECT, ITEM, $55
 
 ; ICE HEAL
-	dw 250 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 250, NONE, 0, CANT_SELECT, ITEM, $55
 
 ; AWAKENING
-	dw 250 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 250, NONE, 0, CANT_SELECT, ITEM, $55
 
 ; PARLYZ HEAL
-	dw 200 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 200, NONE, 0, CANT_SELECT, ITEM, $55
 
 ; FULL RESTORE
-	dw 3000 ; price
-	db NONE ; effect
-	db 255 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 3000, NONE, -1, CANT_SELECT, ITEM, $55
 
 ; MAX POTION
-	dw 2500 ; price
-	db NONE ; effect
-	db 255 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 2500, NONE, -1, CANT_SELECT, ITEM, $55
 
 ; HYPER POTION
-	dw 1200 ; price
-	db NONE ; effect
-	db 200 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 1200, NONE, 200, CANT_SELECT, ITEM, $55
 
 ; SUPER POTION
-	dw 700 ; price
-	db NONE ; effect
-	db 50 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 700, NONE, 50, CANT_SELECT, ITEM, $55
 
 ; POTION
-	dw 300 ; price
-	db NONE ; effect
-	db 20 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 300, NONE, 20, CANT_SELECT, ITEM, $55
 
 ; ESCAPE ROPE
-	dw 550 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $60 ; overworld
+	item_attribute 550, NONE, 0, CANT_SELECT, ITEM, $60
 
 ; REPEL
-	dw 350 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $40 ; current menu
+	item_attribute 350, NONE, 0, CANT_SELECT, ITEM, $40
 
 ; MAX ELIXER
-	dw 4500 ; price
-	db NONE ; effect
-	db 255 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 4500, NONE, -1, CANT_SELECT, ITEM, $55
 
 ; FIRE STONE
-	dw 2100 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $50 ; party menu
+	item_attribute 2100, NONE, 0, CANT_SELECT, ITEM, $50
 
 ; THUNDERSTONE
-	dw 2100 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $50 ; party menu
+	item_attribute 2100, NONE, 0, CANT_SELECT, ITEM, $50
 
 ; WATER STONE
-	dw 2100 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $50 ; party menu
+	item_attribute 2100, NONE, 0, CANT_SELECT, ITEM, $50
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; HP UP
-	dw 9800 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $50 ; party menu
+	item_attribute 9800, NONE, 0, CANT_SELECT, ITEM, $50
 
 ; PROTEIN
-	dw 9800 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $50 ; party menu
+	item_attribute 9800, NONE, 0, CANT_SELECT, ITEM, $50
 
 ; IRON
-	dw 9800 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $50 ; party menu
+	item_attribute 9800, NONE, 0, CANT_SELECT, ITEM, $50
 
 ; CARBOS
-	dw 9800 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $50 ; party menu
+	item_attribute 9800, NONE, 0, CANT_SELECT, ITEM, $50
 
 ; LUCKY PUNCH
-	dw 10 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 10, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; CALCIUM
-	dw 9800 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $50 ; party menu
+	item_attribute 9800, NONE, 0, CANT_SELECT, ITEM, $50
 
 ; RARE CANDY
-	dw 4800 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $50 ; party menu
+	item_attribute 4800, NONE, 0, CANT_SELECT, ITEM, $50
 
 ; X ACCURACY
-	dw 950 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $06 ; ball
+	item_attribute 950, NONE, 0, CANT_SELECT, ITEM, $06
 
 ; LEAF STONE
-	dw 2100 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $50 ; party menu
+	item_attribute 2100, NONE, 0, CANT_SELECT, ITEM, $50
 
 ; METAL POWDER
-	dw 10 ; price
-	db HELD_METAL_POWDER ; effect
-	db 10 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 10, HELD_METAL_POWDER, 10, CANT_SELECT, ITEM, $00
 
 ; NUGGET
-	dw 10000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 10000, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; # DOLL
-	dw 1000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $06 ; ball
+	item_attribute 1000, NONE, 0, CANT_SELECT, ITEM, $06
 
 ; FULL HEAL
-	dw 600 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 600, NONE, 0, CANT_SELECT, ITEM, $55
 
 ; REVIVE
-	dw 1500 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 1500, NONE, 0, CANT_SELECT, ITEM, $55
 
 ; MAX REVIVE
-	dw 4000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 4000, NONE, 0, CANT_SELECT, ITEM, $55
 
 ; GUARD SPEC.
-	dw 700 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $06 ; ball
+	item_attribute 700, NONE, 0, CANT_SELECT, ITEM, $06
 
 ; SUPER REPEL
-	dw 500 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $40 ; current menu
+	item_attribute 500, NONE, 0, CANT_SELECT, ITEM, $40
 
 ; MAX REPEL
-	dw 700 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $40 ; current menu
+	item_attribute 700, NONE, 0, CANT_SELECT, ITEM, $40
 
 ; DIRE HIT
-	dw 650 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $06 ; ball
+	item_attribute 650, NONE, 0, CANT_SELECT, ITEM, $06
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; FRESH WATER
-	dw 200 ; price
-	db NONE ; effect
-	db 50 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 200, NONE, 50, CANT_SELECT, ITEM, $55
 
 ; SODA POP
-	dw 300 ; price
-	db NONE ; effect
-	db 60 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 300, NONE, 60, CANT_SELECT, ITEM, $55
 
 ; LEMONADE
-	dw 350 ; price
-	db NONE ; effect
-	db 80 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 350, NONE, 80, CANT_SELECT, ITEM, $55
 
 ; X ATTACK
-	dw 500 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $06 ; ball
+	item_attribute 500, NONE, 0, CANT_SELECT, ITEM, $06
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; X DEFEND
-	dw 550 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $06 ; ball
+	item_attribute 550, NONE, 0, CANT_SELECT, ITEM, $06
 
 ; X SPEED
-	dw 350 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $06 ; ball
+	item_attribute 350, NONE, 0, CANT_SELECT, ITEM, $06
 
 ; X SPECIAL
-	dw 350 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $06 ; ball
+	item_attribute 350, NONE, 0, CANT_SELECT, ITEM, $06
 
 ; COIN CASE
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT | CANT_TOSS
-	db KEY_ITEM
-	db $40 ; current menu
+	item_attribute 0, NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, $40
 
 ; ITEMFINDER
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_TOSS
-	db KEY_ITEM
-	db $60 ; overworld
+	item_attribute 0, NONE, 0, CANT_TOSS, KEY_ITEM, $60
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; EXP.SHARE
-	dw 3000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 3000, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; OLD ROD
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_TOSS
-	db KEY_ITEM
-	db $60 ; overworld
+	item_attribute 0, NONE, 0, CANT_TOSS, KEY_ITEM, $60
 
 ; GOOD ROD
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_TOSS
-	db KEY_ITEM
-	db $60 ; overworld
+	item_attribute 0, NONE, 0, CANT_TOSS, KEY_ITEM, $60
 
 ; SILVER LEAF
-	dw 1000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 1000, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; SUPER ROD
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_TOSS
-	db KEY_ITEM
-	db $60 ; overworld
+	item_attribute 0, NONE, 0, CANT_TOSS, KEY_ITEM, $60
 
 ; PP UP
-	dw 9800 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $50 ; party menu
+	item_attribute 9800, NONE, 0, CANT_SELECT, ITEM, $50
 
 ; ETHER
-	dw 1200 ; price
-	db NONE ; effect
-	db 10 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 1200, NONE, 10, CANT_SELECT, ITEM, $55
 
 ; MAX ETHER
-	dw 2000 ; price
-	db NONE ; effect
-	db 255 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 2000, NONE, -1, CANT_SELECT, ITEM, $55
 
 ; ELIXER
-	dw 3000 ; price
-	db NONE ; effect
-	db 10 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 3000, NONE, 10, CANT_SELECT, ITEM, $55
 
 ; RED SCALE
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT | CANT_TOSS
-	db KEY_ITEM
-	db $00 ; can't use
+	item_attribute 0, NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, $00
 
 ; SECRETPOTION
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT | CANT_TOSS
-	db KEY_ITEM
-	db $00 ; can't use
+	item_attribute 0, NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, $00
 
 ; S.S.TICKET
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT | CANT_TOSS
-	db KEY_ITEM
-	db $00 ; can't use
+	item_attribute 0, NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, $00
 
 ; MYSTERY EGG
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT | CANT_TOSS
-	db KEY_ITEM
-	db $00 ; can't use
+	item_attribute 0, NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, $00
 
 ; CLEAR BELL
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT | CANT_TOSS
-	db KEY_ITEM
-	db $00 ; can't use
+	item_attribute 0, NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, $00
 
 ; SILVER WING
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT | CANT_TOSS
-	db KEY_ITEM
-	db $00 ; can't use
+	item_attribute 0, NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, $00
 
 ; MOOMOO MILK
-	dw 500 ; price
-	db NONE ; effect
-	db 100 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 500, NONE, 100, CANT_SELECT, ITEM, $55
 
 ; QUICK CLAW
-	dw 100 ; price
-	db HELD_QUICK_CLAW ; effect
-	db 60 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 100, HELD_QUICK_CLAW, 60, CANT_SELECT, ITEM, $00
 
 ; PSNCUREBERRY
-	dw 10 ; price
-	db HELD_HEAL_POISON ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 10, HELD_HEAL_POISON, 0, CANT_SELECT, ITEM, $55
 
 ; GOLD LEAF
-	dw 1000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 1000, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; SOFT SAND
-	dw 100 ; price
-	db HELD_GROUND_BOOST ; effect
-	db 10 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 100, HELD_GROUND_BOOST, 10, CANT_SELECT, ITEM, $00
 
 ; SHARP BEAK
-	dw 100 ; price
-	db HELD_FLYING_BOOST ; effect
-	db 10 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 100, HELD_FLYING_BOOST, 10, CANT_SELECT, ITEM, $00
 
 ; PRZCUREBERRY
-	dw 10 ; price
-	db HELD_HEAL_PARALYZE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 10, HELD_HEAL_PARALYZE, 0, CANT_SELECT, ITEM, $55
 
 ; BURNT BERRY
-	dw 10 ; price
-	db HELD_HEAL_FREEZE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 10, HELD_HEAL_FREEZE, 0, CANT_SELECT, ITEM, $55
 
 ; ICE BERRY
-	dw 10 ; price
-	db HELD_HEAL_BURN ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 10, HELD_HEAL_BURN, 0, CANT_SELECT, ITEM, $55
 
 ; POISON BARB
-	dw 100 ; price
-	db HELD_POISON_BOOST ; effect
-	db 10 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 100, HELD_POISON_BOOST, 10, CANT_SELECT, ITEM, $00
 
 ; KING'S ROCK
-	dw 100 ; price
-	db HELD_TRADE_EVOLVE ; effect
-	db 30 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 100, HELD_TRADE_EVOLVE, 30, CANT_SELECT, ITEM, $00
 
 ; BITTER BERRY
-	dw 10 ; price
-	db HELD_HEAL_CONFUSION ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $05 ; heal menu (battle only)
+	item_attribute 10, HELD_HEAL_CONFUSION, 0, CANT_SELECT, ITEM, $05
 
 ; MINT BERRY
-	dw 10 ; price
-	db HELD_HEAL_SLEEP ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 10, HELD_HEAL_SLEEP, 0, CANT_SELECT, ITEM, $55
 
 ; RED APRICORN
-	dw 200 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 200, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; TINYMUSHROOM
-	dw 500 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 500, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; BIG MUSHROOM
-	dw 5000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 5000, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; SILVERPOWDER
-	dw 100 ; price
-	db HELD_BUG_BOOST ; effect
-	db 10 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 100, HELD_BUG_BOOST, 10, CANT_SELECT, ITEM, $00
 
 ; BLU APRICORN
-	dw 200 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 200, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; AMULET COIN
-	dw 100 ; price
-	db HELD_AMULET_COIN ; effect
-	db 10 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 100, HELD_AMULET_COIN, 10, CANT_SELECT, ITEM, $00
 
 ; YLW APRICORN
-	dw 200 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 200, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; GRN APRICORN
-	dw 200 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 200, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; CLEANSE TAG
-	dw 200 ; price
-	db HELD_CLEANSE_TAG ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 200, HELD_CLEANSE_TAG, 0, CANT_SELECT, ITEM, $00
 
 ; MYSTIC WATER
-	dw 100 ; price
-	db HELD_WATER_BOOST ; effect
-	db 10 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 100, HELD_WATER_BOOST, 10, CANT_SELECT, ITEM, $00
 
 ; TWISTEDSPOON
-	dw 100 ; price
-	db HELD_PSYCHIC_BOOST ; effect
-	db 10 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 100, HELD_PSYCHIC_BOOST, 10, CANT_SELECT, ITEM, $00
 
 ; WHT APRICORN
-	dw 200 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 200, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; BLACKBELT
-	dw 100 ; price
-	db HELD_FIGHTING_BOOST ; effect
-	db 10 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 100, HELD_FIGHTING_BOOST, 10, CANT_SELECT, ITEM, $00
 
 ; BLK APRICORN
-	dw 200 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 200, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; PNK APRICORN
-	dw 200 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 200, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; BLACKGLASSES
-	dw 100 ; price
-	db HELD_DARK_BOOST ; effect
-	db 10 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 100, HELD_DARK_BOOST, 10, CANT_SELECT, ITEM, $00
 
 ; SLOWPOKETAIL
-	dw 9800 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 9800, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; PINK BOW
-	dw 100 ; price
-	db HELD_NORMAL_BOOST ; effect
-	db 10 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 100, HELD_NORMAL_BOOST, 10, CANT_SELECT, ITEM, $00
 
 ; STICK
-	dw 200 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 200, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; SMOKE BALL
-	dw 200 ; price
-	db HELD_ESCAPE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 200, HELD_ESCAPE, 0, CANT_SELECT, ITEM, $00
 
 ; NEVERMELTICE
-	dw 100 ; price
-	db HELD_ICE_BOOST ; effect
-	db 10 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 100, HELD_ICE_BOOST, 10, CANT_SELECT, ITEM, $00
 
 ; MAGNET
-	dw 100 ; price
-	db HELD_ELECTRIC_BOOST ; effect
-	db 10 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 100, HELD_ELECTRIC_BOOST, 10, CANT_SELECT, ITEM, $00
 
 ; MIRACLEBERRY
-	dw 10 ; price
-	db HELD_HEAL_STATUS ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 10, HELD_HEAL_STATUS, 0, CANT_SELECT, ITEM, $55
 
 ; PEARL
-	dw 1400 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 1400, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; BIG PEARL
-	dw 7500 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 7500, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; EVERSTONE
-	dw 200 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 200, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; SPELL TAG
-	dw 100 ; price
-	db HELD_GHOST_BOOST ; effect
-	db 10 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 100, HELD_GHOST_BOOST, 10, CANT_SELECT, ITEM, $00
 
 ; RAGECANDYBAR
-	dw 300 ; price
-	db NONE ; effect
-	db 20 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 300, NONE, 20, CANT_SELECT, ITEM, $55
 
 ; GS BALL
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT | CANT_TOSS
-	db KEY_ITEM
-	db $00 ; can't use
+	item_attribute 0, NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, $00
 
 ; BLUE CARD
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT | CANT_TOSS
-	db KEY_ITEM
-	db $40 ; current menu
+	item_attribute 0, NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, $40
 
 ; MIRACLE SEED
-	dw 100 ; price
-	db HELD_GRASS_BOOST ; effect
-	db 10 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 100, HELD_GRASS_BOOST, 10, CANT_SELECT, ITEM, $00
 
 ; THICK CLUB
-	dw 500 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 500, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; FOCUS BAND
-	dw 200 ; price
-	db HELD_FOCUS_BAND ; effect
-	db 30 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 200, HELD_FOCUS_BAND, 30, CANT_SELECT, ITEM, $00
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; ENERGYPOWDER
-	dw 500 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 500, NONE, 0, CANT_SELECT, ITEM, $55
 
 ; ENERGY ROOT
-	dw 800 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 800, NONE, 0, CANT_SELECT, ITEM, $55
 
 ; HEAL POWDER
-	dw 450 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 450, NONE, 0, CANT_SELECT, ITEM, $55
 
 ; REVIVAL HERB
-	dw 2800 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 2800, NONE, 0, CANT_SELECT, ITEM, $55
 
 ; HARD STONE
-	dw 100 ; price
-	db HELD_ROCK_BOOST ; effect
-	db 10 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 100, HELD_ROCK_BOOST, 10, CANT_SELECT, ITEM, $00
 
 ; LUCKY EGG
-	dw 200 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 200, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; CARD KEY
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT | CANT_TOSS
-	db KEY_ITEM
-	db $60 ; overworld
+	item_attribute 0, NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, $60
 
 ; MACHINE PART
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT | CANT_TOSS
-	db KEY_ITEM
-	db $00 ; can't use
+	item_attribute 0, NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, $00
 
 ; EGG TICKET
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT | CANT_TOSS
-	db KEY_ITEM
-	db $00 ; can't use
+	item_attribute 0, NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, $00
 
 ; LOST ITEM
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT | CANT_TOSS
-	db KEY_ITEM
-	db $00 ; can't use
+	item_attribute 0, NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, $00
 
 ; STARDUST
-	dw 2000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 2000, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; STAR PIECE
-	dw 9800 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 9800, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; BASEMENT KEY
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT | CANT_TOSS
-	db KEY_ITEM
-	db $60 ; overworld
+	item_attribute 0, NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, $60
 
 ; PASS
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT | CANT_TOSS
-	db KEY_ITEM
-	db $00 ; can't use
+	item_attribute 0, NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, $00
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; CHARCOAL
-	dw 9800 ; price
-	db HELD_FIRE_BOOST ; effect
-	db 10 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 9800, HELD_FIRE_BOOST, 10, CANT_SELECT, ITEM, $00
 
 ; BERRY JUICE
-	dw 100 ; price
-	db HELD_BERRY ; effect
-	db 20 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 100, HELD_BERRY, 20, CANT_SELECT, ITEM, $55
 
 ; SCOPE LENS
-	dw 200 ; price
-	db HELD_CRITICAL_UP ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 200, HELD_CRITICAL_UP, 0, CANT_SELECT, ITEM, $00
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; METAL COAT
-	dw 100 ; price
-	db HELD_STEEL_BOOST ; effect
-	db 10 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 100, HELD_STEEL_BOOST, 10, CANT_SELECT, ITEM, $00
 
 ; DRAGON FANG
-	dw 100 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 100, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; LEFTOVERS
-	dw 200 ; price
-	db HELD_LEFTOVERS ; effect
-	db 10 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 200, HELD_LEFTOVERS, 10, CANT_SELECT, ITEM, $00
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; MYSTERYBERRY
-	dw 10 ; price
-	db HELD_RESTORE_PP ; effect
-	db 255 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 10, HELD_RESTORE_PP, -1, CANT_SELECT, ITEM, $55
 
 ; DRAGON SCALE
-	dw 2100 ; price
-	db HELD_DRAGON_BOOST ; effect
-	db 10 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 2100, HELD_DRAGON_BOOST, 10, CANT_SELECT, ITEM, $00
 
 ; BERSERK GENE
-	dw 200 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 200, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; SACRED ASH
-	dw 200 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $60 ; overworld
+	item_attribute 200, NONE, 0, CANT_SELECT, ITEM, $60
 
 ; HEAVY BALL
-	dw 150 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db BALL
-	db $06 ; ball
+	item_attribute 150, NONE, 0, CANT_SELECT, BALL, $06
 
 ; FLOWER MAIL
-	dw 50 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 50, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; LEVEL BALL
-	dw 150 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db BALL
-	db $06 ; ball
+	item_attribute 150, NONE, 0, CANT_SELECT, BALL, $06
 
 ; LURE BALL
-	dw 150 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db BALL
-	db $06 ; ball
+	item_attribute 150, NONE, 0, CANT_SELECT, BALL, $06
 
 ; FAST BALL
-	dw 150 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db BALL
-	db $06 ; ball
+	item_attribute 150, NONE, 0, CANT_SELECT, BALL, $06
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; LIGHT BALL
-	dw 100 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 100, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; FRIEND BALL
-	dw 150 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db BALL
-	db $06 ; ball
+	item_attribute 150, NONE, 0, CANT_SELECT, BALL, $06
 
 ; MOON BALL
-	dw 150 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db BALL
-	db $06 ; ball
+	item_attribute 150, NONE, 0, CANT_SELECT, BALL, $06
 
 ; LOVE BALL
-	dw 150 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db BALL
-	db $06 ; ball
+	item_attribute 150, NONE, 0, CANT_SELECT, BALL, $06
 
 ; NORMAL BOX
-	dw 10 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $40 ; current menu
+	item_attribute 10, NONE, 0, CANT_SELECT, ITEM, $40
 
 ; GORGEOUS BOX
-	dw 10 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $40 ; current menu
+	item_attribute 10, NONE, 0, CANT_SELECT, ITEM, $40
 
 ; SUN STONE
-	dw 2100 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $50 ; party menu
+	item_attribute 2100, NONE, 0, CANT_SELECT, ITEM, $50
 
 ; POLKADOT BOW
-	dw 100 ; price
-	db HELD_NORMAL_BOOST ; effect
-	db 10 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 100, HELD_NORMAL_BOOST, 10, CANT_SELECT, ITEM, $00
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; UP-GRADE
-	dw 2100 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 2100, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; BERRY
-	dw 10 ; price
-	db HELD_BERRY ; effect
-	db 10 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 10, HELD_BERRY, 10, CANT_SELECT, ITEM, $55
 
 ; GOLD BERRY
-	dw 10 ; price
-	db HELD_BERRY ; effect
-	db 30 ; param
-	db CANT_SELECT
-	db ITEM
-	db $55 ; heal menu
+	item_attribute 10, HELD_BERRY, 30, CANT_SELECT, ITEM, $55
 
 ; SQUIRTBOTTLE
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT | CANT_TOSS
-	db KEY_ITEM
-	db $60 ; overworld
+	item_attribute 0, NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, $60
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; PARK BALL
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db BALL
-	db $06 ; ball
+	item_attribute 0, NONE, 0, CANT_SELECT, BALL, $06
 
 ; RAINBOW WING
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT | CANT_TOSS
-	db KEY_ITEM
-	db $00 ; can't use
+	item_attribute 0, NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, $00
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; BRICK PIECE
-	dw 50 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 50, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; SURF MAIL
-	dw 50 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 50, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; LITEBLUEMAIL
-	dw 50 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 50, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; PORTRAITMAIL
-	dw 50 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 50, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; LOVELY MAIL
-	dw 50 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 50, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; EON MAIL
-	dw 50 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 50, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; MORPH MAIL
-	dw 50 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 50, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; BLUESKY MAIL
-	dw 50 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 50, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; MUSIC MAIL
-	dw 50 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 50, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; MIRAGE MAIL
-	dw 50 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db ITEM
-	db $00 ; can't use
+	item_attribute 50, NONE, 0, CANT_SELECT, ITEM, $00
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; TM01
-	dw 3000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 3000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM02
-	dw 2000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 2000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM03
-	dw 3000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 3000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM04
-	dw 2000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 2000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; TM05
-	dw 1000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 1000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM06
-	dw 3000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 3000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM07
-	dw 2000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 2000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM08
-	dw 1000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 1000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM09
-	dw 1000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 1000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM10
-	dw 3000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 3000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM11
-	dw 2000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 2000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM12
-	dw 1000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 1000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM13
-	dw 1000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 1000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM14
-	dw 3000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 3000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM15
-	dw 3000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 3000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM16
-	dw 3000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 3000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM17
-	dw 3000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 3000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM18
-	dw 2000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 2000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM19
-	dw 3000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 3000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM20
-	dw 3000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 3000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM21
-	dw 1000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 1000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM22
-	dw 3000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 3000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM23
-	dw 3000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 3000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM24
-	dw 3000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 3000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM25
-	dw 2000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 2000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM26
-	dw 3000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 3000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM27
-	dw 1000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 1000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM28
-	dw 2000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 2000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; TM29
-	dw 2000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 2000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM30
-	dw 3000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 3000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM31
-	dw 3000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 3000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM32
-	dw 2000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 2000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM33
-	dw 3000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 3000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM34
-	dw 1000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 1000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM35
-	dw 1000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 1000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM36
-	dw 1000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 1000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM37
-	dw 2000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 2000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM38
-	dw 2000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 2000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM39
-	dw 2000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 2000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM40
-	dw 1000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 1000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM41
-	dw 3000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 3000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM42
-	dw 3000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 3000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM43
-	dw 1000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 1000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM44
-	dw 3000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 3000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM45
-	dw 3000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 3000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM46
-	dw 3000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 3000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM47
-	dw 3000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 3000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM48
-	dw 3000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 3000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM49
-	dw 3000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 3000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; TM50
-	dw 2000 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 2000, NONE, 0, CANT_SELECT, TM_HM, $50
 
 ; HM01
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT | CANT_TOSS
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 0, NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, $50
 
 ; HM02
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT | CANT_TOSS
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 0, NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, $50
 
 ; HM03
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT | CANT_TOSS
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 0, NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, $50
 
 ; HM04
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT | CANT_TOSS
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 0, NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, $50
 
 ; HM05
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT | CANT_TOSS
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 0, NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, $50
 
 ; HM06
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT | CANT_TOSS
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 0, NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, $50
 
 ; HM07
-	dw 0 ; price
-	db NONE ; effect
-	db 0 ; param
-	db CANT_SELECT | CANT_TOSS
-	db TM_HM
-	db $50 ; party menu
+	item_attribute 0, NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, $50
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; TERU-SAMA
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
 
 ; ?
-	dw $9999 ; price
-	db NONE ; effect
-	db 0 ; param
-	db 0 ; can select + toss
-	db ITEM
-	db $00 ; can't use
+	item_attribute $9999, NONE, 0, 0, ITEM, $00
--- a/items/item_descriptions.asm
+++ b/items/item_descriptions.asm
@@ -2,7 +2,7 @@
 ; Print the description for item [CurSpecies] at de.
 
 	ld a, [CurSpecies]
-	cp TM_01
+	cp TM01
 	jr c, .not_a_tm
 
 	ld [CurItem], a
@@ -21,8 +21,9 @@
 	dec a
 	ld c, a
 	ld b, 0
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
--- a/items/item_effects.asm
+++ b/items/item_effects.asm
@@ -253,8 +253,9 @@
 	jr z, .asm_e906
 	cp c
 	jr z, .asm_e8fe
+rept 2
 	inc hl
-	inc hl
+endr
 	jr .asm_e8f2
 
 .asm_e8fe
@@ -287,8 +288,9 @@
 
 	ld h, d
 	ld l, e
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld d, h
 	ld e, l
 	ld a, d
@@ -603,7 +605,7 @@
 	ld b, 0
 	callba Function116c1
 
-	call Function4b6
+	call FadeToWhite
 
 	call Functione51
 
@@ -685,7 +687,7 @@
 	ld hl, UnknownText_0xedeb
 	call PrintText
 
-	call Function4b6
+	call FadeToWhite
 	call Functione51
 	jr .asm_ebe2
 
@@ -802,8 +804,9 @@
 	dec a
 	ld e, a
 	ld d, 0
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, BANK(PokedexDataPointerTable)
 	call GetFarHalfword
 
@@ -816,8 +819,9 @@
 
 	call GetPokedexEntryBank
 	push bc
+rept 2
 	inc hl
-	inc hl
+endr
 	call GetFarHalfword
 
 	srl h
@@ -863,8 +867,9 @@
 	ld a, c
 	cp [hl]
 	jr c, .heavymon
+rept 2
 	inc hl
-	inc hl
+endr
 	jr .lookup
 
 .heavymon
@@ -923,8 +928,9 @@
 	ld c, a
 	ld b, 0
 	ld hl, EvosAttacksPointers
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, BANK(EvosAttacksPointers)
 	call GetFarHalfword
 	pop bc
@@ -936,9 +942,9 @@
 	pop bc
 	ret nz
 
+rept 3
 	inc hl
-	inc hl
-	inc hl
+endr
 
 ; Moon Stone's constant from Pokémon Red is used.
 ; No Pokémon evolve with Burn Heal,
@@ -1177,7 +1183,7 @@
 
 
 Bicycle: ; ee08
-	callba Functiond0b3
+	callba BikeFunction
 	ret
 ; ee0f
 
@@ -1415,7 +1421,7 @@
 	ld a, [hl]
 	adc b
 	ld [hl], a
-	callba Function2709e
+	callba LevelUpHappinessMod
 
 	ld a, $f8
 	call Functionf24a
@@ -2119,8 +2125,9 @@
 	jr z, .asm_f3a9
 	cp d
 	jr z, .done
+rept 2
 	inc hl
-	inc hl
+endr
 	jr .next
 
 .asm_f3a9
@@ -2209,7 +2216,7 @@
 .asm_f440
 	push bc
 	ld hl, UnknownText_0xf44a
-	call Function1d67
+	call MenuTextBoxBackup
 	pop bc
 	jr Functionf419
 ; f44a (3:744a)
@@ -2224,7 +2231,7 @@
 EscapeRope: ; f44f
 	xor a
 	ld [wd0ec], a
-	callba Functioncb95
+	callba EscapeRopeFunction
 
 	ld a, [wd0ec]
 	cp 1
@@ -2322,8 +2329,9 @@
 .asm_f4ce
 	cp [hl]
 	jr z, .asm_f4d5
+rept 2
 	inc hl
-	inc hl
+endr
 	jr .asm_f4ce
 
 .asm_f4d5
@@ -2492,13 +2500,13 @@
 ; f5b1
 
 Function_0xf5b1: ; f5b1
-	callba Functioncf8e
+	callba FishFunction
 	ret
 ; f5b8
 
 
 Itemfinder: ; f5b8
-	callba Function12580
+	callba ItemFinder
 	ret
 ; f5bf
 
@@ -2810,7 +2818,7 @@
 ; f769
 
 Function_0xf769: ; f769
-	callba Function26f02
+	callba SetSpecificDecorationFlag
 
 	ld hl, UnknownText_0xf778
 	call PrintText
--- a/items/marts.asm
+++ b/items/marts.asm
@@ -144,37 +144,37 @@
 
 Mart9: ; 1613b
 	db 3 ; # items
-	db TM_41
-	db TM_48
-	db TM_33
+	db TM_THUNDERPUNCH
+	db TM_FIRE_PUNCH
+	db TM_ICE_PUNCH
 	db $ff
 ; 16140
 
 Mart10: ; 16140
 	db 4 ; # items
-	db TM_41
-	db TM_48
-	db TM_33
-	db TM_02
+	db TM_THUNDERPUNCH
+	db TM_FIRE_PUNCH
+	db TM_ICE_PUNCH
+	db TM_HEADBUTT
 	db $ff
 ; 16146
 
 Mart11: ; 16146
 	db 4 ; # items
-	db TM_41
-	db TM_48
-	db TM_33
-	db TM_08
+	db TM_THUNDERPUNCH
+	db TM_FIRE_PUNCH
+	db TM_ICE_PUNCH
+	db TM_ROCK_SMASH
 	db $ff
 ; 1614c
 
 Mart12: ; 1614c
 	db 5 ; # items
-	db TM_41
-	db TM_48
-	db TM_33
-	db TM_02
-	db TM_08
+	db TM_THUNDERPUNCH
+	db TM_FIRE_PUNCH
+	db TM_ICE_PUNCH
+	db TM_HEADBUTT
+	db TM_ROCK_SMASH
 	db $ff
 ; 16153
 
@@ -339,11 +339,11 @@
 
 Mart25: ; 161ce
 	db 5 ; # items
-	db TM_10
-	db TM_11
-	db TM_17
-	db TM_18
-	db TM_37
+	db TM_HIDDEN_POWER
+	db TM_SUNNY_DAY
+	db TM_PROTECT
+	db TM_RAIN_DANCE
+	db TM_SANDSTORM
 	db $ff
 ; 161d5
 
--- a/lib/mobile/main.asm
+++ b/lib/mobile/main.asm
@@ -665,8 +665,9 @@
 	ld hl, Unknown_112037
 	ld de, $cb74
 	call Function110000
+rept 2
 	inc de
-	inc de
+endr
 	pop hl
 	ld bc, $0000
 	call Function110007
@@ -724,9 +725,9 @@
 	ld a, $c8
 	ld [hli], a
 	xor a
+rept 3
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 	ld a, $ff
 	ld [$c86e], a
@@ -947,9 +948,9 @@
 	ld a, $c8
 	ld [hli], a
 	xor a
+rept 3
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 	ld a, $ff
 	ld [$c86e], a
@@ -1110,8 +1111,9 @@
 	ld hl, Unknown_112072
 	ld b, $5
 	call Function110000
+rept 2
 	inc de
-	inc de
+endr
 	ld bc, $0001
 	ld hl, Unknown_11209e
 	call Function110007
@@ -1377,8 +1379,9 @@
 	ld hl, Unknown_112072
 	ld b, $5
 	call Function110000
+rept 2
 	inc de
-	inc de
+endr
 	ld hl, Unknown_1120c8
 	call Function110007
 	pop hl
@@ -1542,10 +1545,12 @@
 	ld [hli], a
 	ld a, d
 	ld [hli], a
+rept 2
 	inc de
-	inc de
+endr
+rept 2
 	dec bc
-	dec bc
+endr
 	ld hl, $c98f
 	ld a, e
 	ld [hli], a
@@ -1565,8 +1570,9 @@
 	xor a
 	ld [hli], a
 	xor a
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	xor a
 	ld [$c86b], a
 	ld de, $cb47
@@ -1606,8 +1612,9 @@
 	ld [hli], a
 	ld a, d
 	ld [hli], a
+rept 2
 	inc de
-	inc de
+endr
 	ld a, e
 	ld [hli], a
 	ld a, d
@@ -1618,8 +1625,9 @@
 	ld [$c86e], a
 	ld [$c86f], a
 	jr z, .asm_110b5c
+rept 2
 	dec bc
-	dec bc
+endr
 	ld a, [$c993]
 	or a
 	jp nz, .asm_110bd5
@@ -1885,10 +1893,12 @@
 	ld [hli], a
 	ld a, d
 	ld [hli], a
+rept 2
 	inc de
-	inc de
+endr
+rept 2
 	dec bc
-	dec bc
+endr
 	ld hl, $c98f
 	ld a, e
 	ld [hli], a
@@ -1908,8 +1918,9 @@
 	xor a
 	ld [hli], a
 	xor a
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	xor a
 	ld [$c86b], a
 	ld de, $cb47
@@ -2124,14 +2135,16 @@
 	ld [$c833], a
 	ld a, [hli]
 	ld [$c834], a
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, l
 	ld [$c97f], a
 	ld a, h
 	ld [$c980], a
+rept 2
 	dec hl
-	dec hl
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -2253,9 +2266,9 @@
 .asm_110ee3
 	ld hl, $c98b
 	xor a
+rept 3
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 	pop bc
 	pop de
@@ -2273,8 +2286,9 @@
 	ld [hli], a
 	ld a, d
 	ld [hli], a
+rept 2
 	inc hl
-	inc hl
+endr
 	xor a
 	ld [$c994], a
 
@@ -2320,8 +2334,9 @@
 	ld hl, $c866
 	ld b, $4
 	call Function110000
+rept 2
 	inc de
-	inc de
+endr
 	ld b, $6
 	call Function111f63
 	ld a, [$cabc]
@@ -2393,8 +2408,9 @@
 	ld [hli], a
 	ld a, d
 	ld [hli], a
+rept 2
 	inc de
-	inc de
+endr
 	ld a, e
 	ld [hli], a
 	ld a, d
@@ -2404,8 +2420,9 @@
 	or c
 	ld [$c86e], a
 	ld [$c86f], a
+rept 2
 	dec bc
-	dec bc
+endr
 	jp z, Function1111ca
 	ld a, [$c991]
 	or a
@@ -2701,22 +2718,23 @@
 	push de
 	push bc
 	push hl
+rept 4
 	inc hl
-	inc hl
-	inc hl
-	inc hl
+endr
 	ld a, [hli]
 	ld [$c833], a
 	ld a, [hli]
 	ld [$c834], a
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, l
 	ld [$c97f], a
 	ld a, h
 	ld [$c980], a
+rept 2
 	dec hl
-	dec hl
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -2794,8 +2812,9 @@
 	ld a, [hld]
 	cp $2f
 	jr nz, .asm_1112a4
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [hl]
 	cp $30
 	jr c, .asm_1112cc
@@ -2849,8 +2868,9 @@
 	ld [hli], a
 	ld a, d
 	ld [hli], a
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, e
 	ld [hli], a
 	ld a, d
@@ -2868,8 +2888,9 @@
 	ld [$c9ac], a
 	ld a, [hli]
 	ld [$c9ad], a
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [hli]
 	ld [$c876], a
 	ld a, [hl]
@@ -2885,8 +2906,9 @@
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -3061,9 +3083,9 @@
 	push hl
 	ld hl, $c829
 	xor a
+rept 3
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 	ld de, $cb47
 	ld hl, Unknown_112072
@@ -3076,8 +3098,9 @@
 	cp $81
 	jr nc, .asm_111485
 	ld c, a
+rept 2
 	inc a
-	inc a
+endr
 	ld [de], a
 	inc de
 	ld a, $ff
@@ -3089,8 +3112,9 @@
 	ld b, c
 	call Function110000
 	ld b, c
+rept 2
 	inc b
-	inc b
+endr
 	call Function111f63
 	ld hl, $c822
 	set 7, [hl]
@@ -3417,8 +3441,9 @@
 	ld a, b
 	srl a
 	srl a
+rept 2
 	add b
-	add b
+endr
 	ld [hl], a
 	ret
 
@@ -3558,9 +3583,9 @@
 	ld [$c800], a
 	xor a
 	ld hl, $c80a
+rept 3
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld hl, $c81f
 	ld a, [hli]
 	ld b, a
@@ -4087,8 +4112,9 @@
 	ld [$c800], a
 	xor a
 	ld hl, $c80a
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 	ld hl, $c815
 	ld a, [$c820]
@@ -4291,8 +4317,9 @@
 .asm_111c52
 	ld b, a
 	ld a, [$ca3f]
+rept 2
 	dec a
-	dec a
+endr
 	cp b
 	jr c, .asm_111c6e
 .asm_111c5b
@@ -5563,8 +5590,9 @@
 	xor a
 	ld [hli], a
 	xor a
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	pop de
 	ld a, $1
 	ld [$c994], a
@@ -5689,21 +5717,24 @@
 	ld [hli], a
 	ld a, d
 	ld [hli], a
+rept 2
 	inc de
-	inc de
+endr
 	ld a, $80
 	ld [hli], a
 	ld a, $c8
 	ld [hli], a
+rept 2
 	dec bc
-	dec bc
+endr
 	ld a, $fa
 	ld [hli], a
 	ld a, $0
 	ld [hli], a
 	xor a
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ld de, $cb47
 	ld hl, Unknown_112072
 	ld b, $6
@@ -6191,8 +6222,9 @@
 	ld de, $cb4c
 	ld a, $1
 	ld [de], a
+rept 2
 	inc de
-	inc de
+endr
 	ld b, $1
 	call Function111f63
 	jr .asm_112941
@@ -6425,8 +6457,9 @@
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, e
 	ld [hli], a
 	ld a, d
@@ -6923,8 +6956,9 @@
 	ld hl, $c821
 	res 2, [hl]
 	ld hl, $c86b
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 
 .asm_112d82
 	ld hl, $c86b
@@ -7083,8 +7117,9 @@
 	cp $1
 	ld a, $32
 	jr z, .asm_112e95
+rept 2
 	inc de
-	inc de
+endr
 	inc a
 
 .asm_112e95
@@ -7463,8 +7498,9 @@
 .asm_1130d6
 	ld a, [$c82b]
 	ld c, a
+rept 2
 	dec b
-	dec b
+endr
 	ld a, b
 	ld [$c82d], a
 	jr z, .asm_11310d
@@ -7472,8 +7508,9 @@
 	ld d, a
 	ld a, [$c872]
 	ld e, a
+rept 2
 	dec de
-	dec de
+endr
 	xor a
 	or d
 	jr nz, .asm_1130f5
@@ -7492,8 +7529,9 @@
 	ld e, a
 	ld a, [$c875]
 	ld d, a
+rept 2
 	inc de
-	inc de
+endr
 	call Function110000
 
 .asm_11310d
@@ -7606,8 +7644,9 @@
 	ld a, b
 	ld [de], a
 	inc de
+rept 2
 	dec b
-	dec b
+endr
 	call Function110000
 	xor a
 	ld [de], a
@@ -7629,8 +7668,9 @@
 	inc b
 	cp $a
 	jr nz, .asm_1131b7
+rept 2
 	inc hl
-	inc hl
+endr
 	dec b
 	ld c, b
 	call Function110000
@@ -7674,8 +7714,9 @@
 	ld hl, $c821
 	res 2, [hl]
 	ld hl, $c86b
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ld a, $4
 	ret
 ; 113206
@@ -7698,8 +7739,9 @@
 	ld e, a
 	ld a, [$c875]
 	ld d, a
+rept 2
 	inc de
-	inc de
+endr
 	call Function110000
 	ld a, [$c991]
 	ld [$c993], a
@@ -7970,8 +8012,9 @@
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -7982,8 +8025,9 @@
 	ld a, [hld]
 	cp $2f
 	jr nz, .asm_11344c
+rept 2
 	inc hl
-	inc hl
+endr
 	ld e, l
 	ld d, h
 .asm_113455
@@ -8001,8 +8045,9 @@
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -8099,8 +8144,9 @@
 	ret
 
 .asm_1134f0
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	jr .asm_1134fc
 
 .asm_1134f4
@@ -8585,10 +8631,9 @@
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
+rept 4
 	inc hl
-	inc hl
-	inc hl
-	inc hl
+endr
 	ld a, h
 	ld [$cc0d], a
 	ld a, l
@@ -9126,9 +9171,9 @@
 	ld bc, $0003
 
 .asm_113ccf
+rept 3
 	dec bc
-	dec bc
-	dec bc
+endr
 	ld a, c
 	ld [$cc10], a
 	ld a, b
@@ -9164,8 +9209,9 @@
 	ld a, $3f
 	and c
 	ld [hld], a
+rept 2
 	dec hl
-	dec hl
+endr
 	pop de
 	ld b, h
 	ld c, l
@@ -9276,10 +9322,9 @@
 	ld c, a
 	ld a, [$cc11]
 	ld b, a
+rept 4
 	dec bc
-	dec bc
-	dec bc
-	dec bc
+endr
 	ld a, b
 	or c
 	jr z, .asm_113dae
@@ -9513,8 +9558,9 @@
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [hld]
 	dec hl
 	xor $80
@@ -9555,8 +9601,9 @@
 	ld l, a
 	ld e, l
 	ld d, h
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld e, l
 	ld d, h
 	ld hl, $c815
@@ -9616,8 +9663,9 @@
 	ld l, a
 	ld e, l
 	ld d, h
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld e, l
 	ld d, h
 	ld hl, $c815
--- a/macros.asm
+++ b/macros.asm
@@ -1,4 +1,5 @@
 INCLUDE "macros/enum.asm"
+INCLUDE "macros/basestats.asm"
 
 INCLUDE "macros/event.asm"
 INCLUDE "macros/sound.asm"
@@ -12,6 +13,7 @@
 INCLUDE "macros/predef.asm"
 INCLUDE "macros/rst.asm"
 INCLUDE "macros/mobile.asm"
+INCLUDE "macros/trainer.asm"
 
 
 
@@ -36,6 +38,11 @@
 dbbw: MACRO
 	db \1, \2
 	dw \3
+	ENDM
+
+dbww: MACRO
+	db \1
+	dw \2, \3
 	ENDM
 
 dbwww: MACRO
--- /dev/null
+++ b/macros/basestats.asm
@@ -1,0 +1,66 @@
+define: macro
+if !def(\1)
+\1 equs \2
+endc
+endm
+
+const_value = 0
+
+add_tm: MACRO
+if !def(TM01)
+TM01 = const_value
+	enum_start 1
+endc
+	define _\@_1, "TM_\1"
+	const _\@_1
+	enum \1_TMNUM
+ENDM
+
+add_hm: MACRO
+if !def(HM01)
+HM01 = const_value
+endc
+	define _\@_1, "HM_\1"
+	const _\@_1
+	enum \1_TMNUM
+ENDM
+
+add_mt: MACRO
+	enum \1_TMNUM
+ENDM
+
+tmhm: MACRO
+x = 0
+y = 0
+w = 0
+	rept _NARG
+	if def(\1_TMNUM)
+	if \1_TMNUM < 25
+x = x | (1 << ((\1_TMNUM) - 1))
+	else
+	if \1_TMNUM < 49
+y = y | (1 << ((\1_TMNUM) - 1 - 24))
+	else
+w = w | (1 << ((\1_TMNUM) - 1 - 48))
+	endc
+	endc
+	else
+		fail "\1 is not a TM, HM, or move tutor move"
+	endc
+
+	shift
+	endr
+
+	rept 3
+	db x & $ff
+x = x >> 8
+	endr
+	rept 3
+	db y & $ff
+y = y >> 8
+	endr
+	rept 2
+	db w & $ff
+w = w >> 8
+	endr
+ENDM
--- a/macros/charmap.asm
+++ b/macros/charmap.asm
@@ -281,5 +281,6 @@
 	charmap "<TARGET>", $59
 	charmap "<USER>",   $5a
 	charmap "<ENEMY>",  $3f
+	charmap "<PKMN>",   $4a
 
 	charmap "<PLAY_G>", $14 ; <PLAYER> + gender
--- a/macros/enum.asm
+++ b/macros/enum.asm
@@ -29,3 +29,8 @@
 \1 EQU const_value
 const_value = const_value + 1
 ENDM
+
+shift_const: MACRO
+\1 EQU 1 << const_value
+const_value = const_value + 1
+ENDM
--- a/macros/event.asm
+++ b/macros/event.asm
@@ -690,7 +690,7 @@
 	enum variablesprite_command
 variablesprite: macro
 	db variablesprite_command
-	db \1 ; byte
+	db \1 - SPRITE_VARS ; byte
 	db \2 ; sprite
 	endm
 
--- a/macros/map.asm
+++ b/macros/map.asm
@@ -67,11 +67,13 @@
 
 
 map_header: MACRO
-	; label, tileset, permission, location, music, time of day, fishing group
+	; label, tileset, permission, location, music, phone service flag, time of day, fishing group
 \1_MapHeader:
 	db BANK(\1_SecondMapHeader), \2, \3
 	dw \1_SecondMapHeader
-	db \4, \5, \6, \7
+	db \4, \5
+	dn \6, \7
+	db \8
 ENDM
 
 
@@ -159,4 +161,19 @@
 	dw OverworldMap + \2_WIDTH + 7
 endc
 
+ENDM
+
+mapgroup: MACRO
+; map id, height, width
+\1\@  EQUS "GROUP_\1"
+\1\@2 EQUS "MAP_\1"
+\1\@ EQU const_value
+	enum \1\@2
+\1_HEIGHT EQU \2
+\1_WIDTH EQU \3
+ENDM
+
+newgroup: MACRO
+const_value = const_value + 1
+	enum_start 1
 ENDM
--- a/macros/movement.asm
+++ b/macros/movement.asm
@@ -1,285 +1,384 @@
+	enum_start
+
+	enum movement_turn_head_down
 turn_head_down: macro
-	db $00
+	db movement_turn_head_down ; $00
 	endm
 
+	enum movement_turn_head_up
 turn_head_up: macro
-	db $01
+	db movement_turn_head_up ; $01
 	endm
 
+	enum movement_turn_head_left
 turn_head_left: macro
-	db $02
+	db movement_turn_head_left ; $02
 	endm
 
+	enum movement_turn_head_right
 turn_head_right: macro
-	db $03
+	db movement_turn_head_right ; $03
 	endm
 
+	enum movement_half_step_down
 half_step_down: macro
-	db $04
+	db movement_half_step_down ; $04
 	endm
 
+	enum movement_half_step_up
 half_step_up: macro
-	db $05
+	db movement_half_step_up ; $05
 	endm
 
+	enum movement_half_step_left
 half_step_left: macro
-	db $06
+	db movement_half_step_left ; $06
 	endm
 
+	enum movement_half_step_right
 half_step_right: macro
-	db $07
+	db movement_half_step_right ; $07
 	endm
 
+	enum movement_slow_step_down
 slow_step_down: macro
-	db $08
+	db movement_slow_step_down ; $08
 	endm
 
+	enum movement_slow_step_up
 slow_step_up: macro
-	db $09
+	db movement_slow_step_up ; $09
 	endm
 
+	enum movement_slow_step_left
 slow_step_left: macro
-	db $0a
+	db movement_slow_step_left ; $0a
 	endm
 
+	enum movement_slow_step_right
 slow_step_right: macro
-	db $0b
+	db movement_slow_step_right ; $0b
 	endm
 
+	enum movement_step_down
 step_down: macro
-	db $0c
+	db movement_step_down ; $0c
 	endm
 
+	enum movement_step_up
 step_up: macro
-	db $0d
+	db movement_step_up ; $0d
 	endm
 
+	enum movement_step_left
 step_left: macro
-	db $0e
+	db movement_step_left ; $0e
 	endm
 
+	enum movement_step_right
 step_right: macro
-	db $0f
+	db movement_step_right ; $0f
 	endm
 
+	enum movement_big_step_down
 big_step_down: macro
-	db $10
+	db movement_big_step_down ; $10
 	endm
 
+	enum movement_big_step_up
 big_step_up: macro
-	db $11
+	db movement_big_step_up ; $11
 	endm
 
+	enum movement_big_step_left
 big_step_left: macro
-	db $12
+	db movement_big_step_left ; $12
 	endm
 
+	enum movement_big_step_right
 big_step_right: macro
-	db $13
+	db movement_big_step_right ; $13
 	endm
 
+	enum movement_slow_slide_step_down
 slow_slide_step_down: macro
-	db $14
+	db movement_slow_slide_step_down ; $14
 	endm
 
+	enum movement_slow_slide_step_up
 slow_slide_step_up: macro
-	db $15
+	db movement_slow_slide_step_up ; $15
 	endm
 
+	enum movement_slow_slide_step_left
 slow_slide_step_left: macro
-	db $16
+	db movement_slow_slide_step_left ; $16
 	endm
 
+	enum movement_slow_slide_step_right
 slow_slide_step_right: macro
-	db $17
+	db movement_slow_slide_step_right ; $17
 	endm
 
+	enum movement_slide_step_down
 slide_step_down: macro
-	db $18
+	db movement_slide_step_down ; $18
 	endm
 
+	enum movement_slide_step_up
 slide_step_up: macro
-	db $19
+	db movement_slide_step_up ; $19
 	endm
 
+	enum movement_slide_step_left
 slide_step_left: macro
-	db $1a
+	db movement_slide_step_left ; $1a
 	endm
 
+	enum movement_slide_step_right
 slide_step_right: macro
-	db $1b
+	db movement_slide_step_right ; $1b
 	endm
 
+	enum movement_fast_slide_step_down
 fast_slide_step_down: macro
-	db $1c
+	db movement_fast_slide_step_down ; $1c
 	endm
 
+	enum movement_fast_slide_step_up
 fast_slide_step_up: macro
-	db $1d
+	db movement_fast_slide_step_up ; $1d
 	endm
 
+	enum movement_fast_slide_step_left
 fast_slide_step_left: macro
-	db $1e
+	db movement_fast_slide_step_left ; $1e
 	endm
 
+	enum movement_fast_slide_step_right
 fast_slide_step_right: macro
-	db $1f
+	db movement_fast_slide_step_right ; $1f
 	endm
 
+	enum movement_turn_away_down
 turn_away_down: macro
-	db $20
+	db movement_turn_away_down ; $20
 	endm
 
+	enum movement_turn_away_up
 turn_away_up: macro
-	db $21
+	db movement_turn_away_up ; $21
 	endm
 
+	enum movement_turn_away_left
 turn_away_left: macro
-	db $22
+	db movement_turn_away_left ; $22
 	endm
 
+	enum movement_turn_away_right
 turn_away_right: macro
-	db $23
+	db movement_turn_away_right ; $23
 	endm
 
+	enum movement_turn_in_down
 turn_in_down: macro
-	db $24
+	db movement_turn_in_down ; $24
 	endm
 
+	enum movement_turn_in_up
 turn_in_up: macro
-	db $25
+	db movement_turn_in_up ; $25
 	endm
 
+	enum movement_turn_in_left
 turn_in_left: macro
-	db $26
+	db movement_turn_in_left ; $26
 	endm
 
+	enum movement_turn_in_right
 turn_in_right: macro
-	db $27
+	db movement_turn_in_right ; $27
 	endm
 
+	enum movement_turn_waterfall_down
 turn_waterfall_down: macro
-	db $28
+	db movement_turn_waterfall_down ; $28
 	endm
 
+	enum movement_turn_waterfall_up
 turn_waterfall_up: macro
-	db $29
+	db movement_turn_waterfall_up ; $29
 	endm
 
+	enum movement_turn_waterfall_left
 turn_waterfall_left: macro
-	db $2a
+	db movement_turn_waterfall_left ; $2a
 	endm
 
+	enum movement_turn_waterfall_right
 turn_waterfall_right: macro
-	db $2b
+	db movement_turn_waterfall_right ; $2b
 	endm
 
+	enum movement_slow_jump_step_down
 slow_jump_step_down: macro
-	db $2c
+	db movement_slow_jump_step_down ; $2c
 	endm
 
+	enum movement_slow_jump_step_up
 slow_jump_step_up: macro
-	db $2d
+	db movement_slow_jump_step_up ; $2d
 	endm
 
+	enum movement_slow_jump_step_left
 slow_jump_step_left: macro
-	db $2e
+	db movement_slow_jump_step_left ; $2e
 	endm
 
+	enum movement_slow_jump_step_right
 slow_jump_step_right: macro
-	db $2f
+	db movement_slow_jump_step_right ; $2f
 	endm
 
+	enum movement_jump_step_down
 jump_step_down: macro
-	db $30
+	db movement_jump_step_down ; $30
 	endm
 
+	enum movement_jump_step_up
 jump_step_up: macro
-	db $31
+	db movement_jump_step_up ; $31
 	endm
 
+	enum movement_jump_step_left
 jump_step_left: macro
-	db $32
+	db movement_jump_step_left ; $32
 	endm
 
+	enum movement_jump_step_right
 jump_step_right: macro
-	db $33
+	db movement_jump_step_right ; $33
 	endm
 
+	enum movement_fast_jump_step_down
 fast_jump_step_down: macro
-	db $34
+	db movement_fast_jump_step_down ; $34
 	endm
 
+	enum movement_fast_jump_step_up
 fast_jump_step_up: macro
-	db $35
+	db movement_fast_jump_step_up ; $35
 	endm
 
+	enum movement_fast_jump_step_left
 fast_jump_step_left: macro
-	db $36
+	db movement_fast_jump_step_left ; $36
 	endm
 
+	enum movement_fast_jump_step_right
 fast_jump_step_right: macro
-	db $37
+	db movement_fast_jump_step_right ; $37
 	endm
 
+__enum__ = $3a
+
+	enum movement_remove_fixed_facing
 remove_fixed_facing: macro
-	db $3a
+	db movement_remove_fixed_facing ; $3a
 	endm
 
+	enum movement_fix_facing
 fix_facing: macro
-	db $3b
+	db movement_fix_facing ; $3b
 	endm
 
+	enum movement_return_dig
+return_dig: macro
+	db movement_return_dig
+	db \1
+	endm
+
+	enum movement_hide_person
 hide_person: macro
-	db $3d
+	db movement_hide_person ; $3d
 	endm
 
+	enum movement_show_person
 show_person: macro
-	db $3e
+	db movement_show_person ; $3e
 	endm
 
+__enum__ = $45
+
+	enum movement_accelerate_last
 accelerate_last: macro
-	db $45
+	db movement_accelerate_last ; $45
 	endm
 
+	enum movement_step_sleep
 step_sleep: macro
-	db $46
+	db movement_step_sleep ; $46
 	db \1 ; duration
 	endm
 
+	enum movement_step_end
 step_end: macro
-	db $47
+	db movement_step_end ; $47
 	endm
 
+__enum__ = $49
+
+	enum movement_remove_person
 remove_person: macro
-	db $49
+	db movement_remove_person ; $49
 	endm
 
+__enum__ = $4c
+
+	enum movement_teleport_from
 teleport_from: macro
-	db $4c
+	db movement_teleport_from ; $4c
 	endm
 
+	enum movement_teleport_to
 teleport_to: macro
-	db $4d
+	db movement_teleport_to ; $4d
 	endm
 
+	enum movement_skyfall
 skyfall: macro
-	db $4e
+	db movement_skyfall ; $4e
 	endm
 
+	enum movement_step_wait5
 step_wait5: macro
-	db $4f
+	db movement_step_wait5 ; $4f
 	endm
 
+__enum__ = $51
+
+	enum movement_fish_got_bite
+fish_got_bite: macro
+	db movement_fish_got_bite
+	endm
+
+	enum movement_fish_got_bite_2
+fish_got_bite_2: macro
+	db movement_fish_got_bite_2
+	endm
+
+	enum movement_hide_emote
 hide_emote: macro
-	db $53
+	db movement_hide_emote ; $53
 	endm
 
+	enum movement_show_emote
 show_emote: macro
-	db $54
+	db movement_show_emote ; $54
 	endm
 
+	enum movement_step_shake
 step_shake: macro
-	db $55
+	db movement_step_shake ; $55
 	db \1 ; displacement
 	endm
--- a/macros/predef.asm
+++ b/macros/predef.asm
@@ -1,7 +1,6 @@
 add_predef: MACRO
 \1Predef::
-	dw \1
-	db BANK(\1)
+	dwb \1, BANK(\1)
 ENDM
 
 predef_id: MACRO
--- /dev/null
+++ b/macros/trainer.asm
@@ -1,0 +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
--- a/main.asm
+++ b/main.asm
@@ -11,15 +11,15 @@
 
 	ld a, [IsInBattle]
 	and a
-	jr z, .asm_4012
+	jr z, .notinbattle
 
 	call TextBox
-	jr .asm_4017
+	jr .incave
 
-.asm_4012
+.notinbattle
 	predef Function28eef
 
-.asm_4017
+.incave
 	hlcoord 4, 11
 	ld de, .Waiting
 	call PlaceString
@@ -118,7 +118,7 @@
 MysteryGift: ; 5b54
 	call UpdateTime
 	callba Function11548
-	callba Function1048ba
+	callba DoMysteryGift
 	ret
 ; 5b64
 
@@ -130,12 +130,12 @@
 NewGame: ; 5b6b
 	xor a
 	ld [wc2cc], a
-	call Function5ba7
+	call ResetWRAM
 	call Function5b44
 	call Function5b8f
 	call OakSpeech
-	call Function5d23
-	ld a, $1
+	call InitializeWorld
+	ld a, 1
 	ld [wc2d8], a
 
 	ld a, 0 ; SPAWN_HOME
@@ -148,24 +148,24 @@
 
 Function5b8f: ; 5b8f
 	callba Function10632f
-	jr c, .asm_5b9e
+	jr c, .ok
 	callba Function48dcb
 	ret
 
-.asm_5b9e
-	ld c, $0
+.ok
+	ld c, 0
 	callba Function4802f
 	ret
 ; 5ba7
 
-Function5ba7: ; 5ba7
+ResetWRAM: ; 5ba7
 	xor a
 	ld [hBGMapMode], a
-	call Function5bae
+	call _ResetWRAM
 	ret
 ; 5bae
 
-Function5bae: ; 5bae
+_ResetWRAM: ; 5bae
 
 	ld hl, Sprites
 	ld bc, Options - Sprites
@@ -207,7 +207,7 @@
 	ld [wCurBox], a
 	ld [wd4b4], a
 
-	call Function5ca6
+	call SetDefaultBoxNames
 
 	ld a, 1
 	call GetSRAMBank
@@ -214,7 +214,7 @@
 	ld hl, sBoxCount
 	call Function5ca1
 	call CloseSRAM
-	
+
 	ld hl, NumItems
 	call Function5ca1
 
@@ -301,10 +301,10 @@
 	ret
 ; 5ca6
 
-Function5ca6: ; 5ca6
+SetDefaultBoxNames: ; 5ca6
 	ld hl, wBoxNames
 	ld c, 0
-.asm_5cab
+.loop
 	push hl
 	ld de, .Box
 	call CopyName2
@@ -312,12 +312,12 @@
 	ld a, c
 	inc a
 	cp 10
-	jr c, .asm_5cbe
+	jr c, .less
 	sub 10
 	ld [hl], "1"
 	inc hl
 
-.asm_5cbe
+.less
 	add "0"
 	ld [hli], a
 	ld [hl], "@"
@@ -327,7 +327,7 @@
 	inc c
 	ld a, c
 	cp NUM_BOXES
-	jr c, .asm_5cab
+	jr c, .loop
 	ret
 
 .Box
@@ -376,9 +376,9 @@
 .Mom    db "MOM@"
 ; 5d23
 
-Function5d23: ; 5d23
+InitializeWorld: ; 5d23
 	call Function610f
-	callba Function8029
+	callba GetSpawnCoord
 	callba Function113d6
 	ret
 ; 5d33
@@ -411,7 +411,7 @@
 ; 5d65
 
 Continue: ; 5d65
-	callba Function14ea5
+	callba TryLoadSaveFile
 	jr c, .asm_5dd6
 	callba Function150b9
 	call Function1d6e
@@ -422,13 +422,13 @@
 	call DelayFrames
 	call Function5e34
 	jr nc, .asm_5d8c
-	call Function1c17
+	call WriteBackup
 	jr .asm_5dd6
 
 .asm_5d8c
 	call Function5e48
 	jr nc, .asm_5d96
-	call Function1c17
+	call WriteBackup
 	jr .asm_5dd6
 
 .asm_5d96
@@ -440,11 +440,11 @@
 	ld [MusicFadeIDHi], a
 	call WhiteBGMap
 	call Function5df0
-	call Function1c17
+	call WriteBackup
 	call ClearTileMap
 	ld c, $14
 	call DelayFrames
-	callba Function2a394
+	callba RestoreRoamMons
 	callba Function105091
 	callba Function140ae
 	ld a, [wd4b5]
@@ -582,7 +582,7 @@
 	call Function5f1c
 	call Function5f40
 	call Functione5f
-	call Function1ad2
+	call DrawOnMap
 	ret
 ; 5eaf
 
@@ -591,7 +591,7 @@
 	call Function5f1c
 	call Function5f48
 	call Functione5f
-	call Function1ad2
+	call DrawOnMap
 	ret
 ; 5ebf
 
@@ -734,7 +734,7 @@
 	call PlayMusic
 
 	call Function4a3
-	call Function4b6
+	call FadeToWhite
 	xor a
 	ld [CurPartySpecies], a
 	ld a, POKEMON_PROF
@@ -743,11 +743,11 @@
 
 	ld b, $1c
 	call GetSGBLayout
-	call Function616a
+	call Intro_FadeInFrontpic
 
 	ld hl, OakText1
 	call PrintText
-	call Function4b6
+	call FadeToWhite
 	call ClearTileMap
 
 	ld a, WOOPER
@@ -764,13 +764,13 @@
 
 	ld b, $1c
 	call GetSGBLayout
-	call Function6182
+	call Intro_WipeInFrontpic
 
 	ld hl, OakText2
 	call PrintText
 	ld hl, OakText4
 	call PrintText
-	call Function4b6
+	call FadeToWhite
 	call ClearTileMap
 
 	xor a
@@ -781,11 +781,11 @@
 
 	ld b, $1c
 	call GetSGBLayout
-	call Function616a
+	call Intro_FadeInFrontpic
 
 	ld hl, OakText5
 	call PrintText
-	call Function4b6
+	call FadeToWhite
 	call ClearTileMap
 
 	xor a
@@ -794,7 +794,7 @@
 
 	ld b, $1c
 	call GetSGBLayout
-	call Function616a
+	call Intro_FadeInFrontpic
 
 	ld hl, OakText6
 	call PrintText
@@ -842,7 +842,7 @@
 	ld a, [wcfa9]
 	dec a
 	jr z, .NewName
-	call Function60fa
+	call StorePlayerName
 	callba Function8c1d
 	callba MovePlayerPicLeft
 	ret
@@ -852,7 +852,7 @@
 	ld de, PlayerName
 	callba Function116c1
 
-	call Function4b6
+	call FadeToWhite
 	call ClearTileMap
 
 	call Functione5f
@@ -884,17 +884,17 @@
 
 Function60e9: ; 60e9
 	call LoadMenuDataHeader
-	call Function1d81
+	call InterpretMenu2
 	ld a, [wcfa9]
 	dec a
 	call Function1db8
-	call Function1c17
+	call WriteBackup
 	ret
 ; 60fa
 
-Function60fa: ; 60fa
-	ld a, $50
-	ld bc, $000b
+StorePlayerName: ; 60fa
+	ld a, "@"
+	ld bc, NAME_LENGTH
 	ld hl, PlayerName
 	call ByteFill
 	ld hl, PlayerName
@@ -952,12 +952,12 @@
 	ld c, 50
 	call DelayFrames
 
-	call Function4b6
+	call FadeToWhite
 	call ClearTileMap
 	ret
 ; 616a
 
-Function616a: ; 616a
+Intro_FadeInFrontpic: ; 616a
 	ld hl, IntroFadePalettes
 	ld b, IntroFadePalettesEnd - IntroFadePalettes
 .asm_616f
@@ -980,13 +980,13 @@
 IntroFadePalettesEnd
 ; 6182
 
-Function6182: ; 6182
+Intro_WipeInFrontpic: ; 6182
 	ld a, $77
 	ld [hWX], a
 	call DelayFrame
 	ld a, $e4
 	call DmgToCgbBGPals
-.asm_618e
+.loop
 	call DelayFrame
 	ld a, [hWX]
 	sub $8
@@ -993,7 +993,7 @@
 	cp $ff
 	ret z
 	ld [hWX], a
-	jr .asm_618e
+	jr .loop
 ; 619c
 
 Function619c: ; 619c
@@ -1002,7 +1002,7 @@
 	xor a
 	ld [$ffad], a
 	hlcoord 6, 4
-	ld bc, $0707
+	lb bc, 7, 7
 	predef FillBox
 	ret
 ; 61b4
@@ -1014,7 +1014,7 @@
 	xor a
 	ld [$ffad], a
 	hlcoord 6, 4
-	ld bc, $0707
+	lb bc, 7, 7
 	predef FillBox
 	ret
 ; 61cd
@@ -1032,7 +1032,7 @@
 	inc de
 
 	ld c, a
-.asm_61e4
+.loop
 	ld a, [de]
 	inc de
 	ld [hli], a
@@ -1046,14 +1046,14 @@
 	ld b, 0
 	ld a, [PlayerGender]
 	bit 0, a
-	jr z, .asm_61f8
+	jr z, .male
 	ld b, 1
-.asm_61f8
+.male
 	ld a, b
 
 	ld [hli], a
 	dec c
-	jr nz, .asm_61e4
+	jr nz, .loop
 	ret
 ; 61fe
 
@@ -1078,9 +1078,9 @@
 	ld [rSVBK], a
 	call TitleScreen
 	call DelayFrame
-.asm_6226
+.loop
 	call Function627b
-	jr nc, .asm_6226
+	jr nc, .loop
 	call ClearSprites
 	call WhiteBGMap
 	pop af
@@ -1102,14 +1102,15 @@
 	call UpdateTimePals
 	ld a, [wcf64]
 	cp $5
-	jr c, .asm_625e
+	jr c, .ok
 	xor a
-.asm_625e
+.ok
 	ld e, a
 	ld d, 0
-	ld hl, .data_626a
+	ld hl, .jumptable_626a
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -1116,7 +1117,7 @@
 	jp [hl]
 ; 626a
 
-.data_626a
+.jumptable_626a
 	dw Function5ae8
 	dw Function6389
 	dw Function620b
@@ -1133,7 +1134,7 @@
 Function627b: ; 627b
 	ld a, [wcf63]
 	bit 7, a
-	jr nz, .asm_6290
+	jr nz, .true
 	call TitleScreenScene
 	callba Function10eea7
 	call DelayFrame
@@ -1140,7 +1141,7 @@
 	and a
 	ret
 
-.asm_6290
+.true
 	scf
 	ret
 ; 6292
@@ -1161,8 +1162,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, .scenes
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -1202,7 +1204,7 @@
 ; Reversed signage for every other line's position.
 ; This is responsible for the interlaced effect.
 	ld a, e
-	xor $ff
+	xor -1
 	inc a
 
 	ld b, 8 * 10 / 2 ; logo height / 2
@@ -1222,7 +1224,7 @@
 	inc [hl]
 	xor a
 	ld [hLCDStatCustom], a
-	
+
 ; Play the title screen music.
 	ld de, MUSIC_TITLE
 	call PlayMusic
@@ -1306,10 +1308,10 @@
 .check_start
 	ld a, [hl]
 	and START | A_BUTTON
-	jr nz, .continue
+	jr nz, .incave
 	ret
 
-.continue
+.incave
 	ld a, 0
 	jr .done
 
@@ -1389,8 +1391,9 @@
 	add hl, bc
 	ld l, [hl]
 	ld h, 0
+rept 2
 	add hl, hl
-	add hl, hl
+endr
 	ld de, Data63ca
 	add hl, de
 	ld a, [wcf65]
@@ -1399,8 +1402,9 @@
 	srl a
 	ld e, a
 	ld d, 0
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	and a
 	ret z
@@ -2201,7 +2205,7 @@
 	call Function6f7f
 	ret nc
 	push af
-	ld hl, OBJECT_07
+	ld hl, OBJECT_DIRECTION_WALKING
 	add hl, bc
 	ld a, [hl]
 	and 3
@@ -2217,7 +2221,7 @@
 ; 6f5b
 
 .data_6f5b
-	db 1, 2, 8, 4
+	db 1 << DOWN, 1 << UP, 1 << RIGHT, 1 << LEFT
 ; 6f5f
 
 Function6f5f: ; 6f5f
@@ -2227,7 +2231,7 @@
 	call Function6f7f
 	ret nc
 	push af
-	ld hl, OBJECT_07
+	ld hl, OBJECT_DIRECTION_WALKING
 	add hl, bc
 	and 3
 	ld e, a
@@ -2242,7 +2246,7 @@
 ; 6f7b
 
 .data_6f7b
-	db 2, 1, 4, 8
+	db 1 << UP, 1 << DOWN, 1 << LEFT, 1 << RIGHT
 ; 6f7f
 
 Function6f7f: ; 6f7f
@@ -2249,13 +2253,13 @@
 	ld d, a
 	and $f0
 	cp $b0
-	jr z, .asm_6f8c
+	jr z, .done
 	cp $c0
-	jr z, .asm_6f8c
+	jr z, .done
 	xor a
 	ret
 
-.asm_6f8c
+.done
 	ld a, d
 	and 7
 	ld e, a
@@ -2273,7 +2277,7 @@
 ; 6fa1
 
 Function6fa1: ; 6fa1
-	ld hl, OBJECT_07
+	ld hl, OBJECT_DIRECTION_WALKING
 	add hl, bc
 	ld a, [hl]
 	and 3
@@ -2353,15 +2357,15 @@
 	ld [$ffaf], a
 	call Function7041
 	ret nc
-	ld hl, OBJECT_07
+	ld hl, OBJECT_DIRECTION_WALKING
 	add hl, bc
 	ld a, [hl]
-	cp $ff
-	jr z, .asm_7007
+	cp STANDING
+	jr z, .standing
 	xor a
 	ret
 
-.asm_7007
+.standing
 	scf
 	ret
 ; 7009
@@ -2379,7 +2383,7 @@
 
 Function7015: ; 7015
 	ld a, [$ffaf]
-	call Function1ae5
+	call GetObjectStruct
 	call Function7021
 	call Function7041
 	ret
@@ -2393,23 +2397,23 @@
 	ld e, [hl]
 	call GetSpriteDirection
 	and a
-	jr z, .asm_703b
-	cp $4
-	jr z, .asm_703d
-	cp $8
-	jr z, .asm_703f
+	jr z, .down
+	cp OW_UP
+	jr z, .up
+	cp OW_LEFT
+	jr z, .left
 	inc d
 	ret
 
-.asm_703b
+.down
 	inc e
 	ret
 
-.asm_703d
+.up
 	dec e
 	ret
 
-.asm_703f
+.left
 	dec d
 	ret
 ; 7041
@@ -2417,71 +2421,71 @@
 Function7041: ; 7041
 	ld bc, ObjectStructs
 	xor a
-.asm_7045
+.loop
 	ld [$ffb0], a
-	call Function1af1
-	jr z, .asm_7093
+	call GetObjectSprite
+	jr z, .nope
 	ld hl, OBJECT_04
 	add hl, bc
 	bit 7, [hl]
-	jr nz, .asm_7093
+	jr nz, .nope
 	ld hl, OBJECT_PALETTE
 	add hl, bc
 	bit 7, [hl]
-	jr z, .asm_7063
+	jr z, .got
 	call Function7171
-	jr nc, .asm_707b
-	jr .asm_7073
+	jr nc, .ok
+	jr .ok2
 
-.asm_7063
+.got
 	ld hl, OBJECT_MAP_X
 	add hl, bc
 	ld a, [hl]
 	cp d
-	jr nz, .asm_707b
+	jr nz, .ok
 	ld hl, OBJECT_MAP_Y
 	add hl, bc
 	ld a, [hl]
 	cp e
-	jr nz, .asm_707b
+	jr nz, .ok
 
-.asm_7073
+.ok2
 	ld a, [$ffaf]
 	ld l, a
 	ld a, [$ffb0]
 	cp l
-	jr nz, .asm_70a2
+	jr nz, .setcarry
 
-.asm_707b
+.ok
 	ld hl, OBJECT_NEXT_MAP_X
 	add hl, bc
 	ld a, [hl]
 	cp d
-	jr nz, .asm_7093
+	jr nz, .nope
 	ld hl, OBJECT_NEXT_MAP_Y
 	add hl, bc
 	ld a, [hl]
 	cp e
-	jr nz, .asm_7093
+	jr nz, .nope
 	ld a, [$ffaf]
 	ld l, a
 	ld a, [$ffb0]
 	cp l
-	jr nz, .asm_70a2
+	jr nz, .setcarry
 
-.asm_7093
-	ld hl, ObjectStruct2 - ObjectStruct1
+.nope
+	ld hl, OBJECT_STRUCT_LENGTH
 	add hl, bc
 	ld b, h
 	ld c, l
 	ld a, [$ffb0]
 	inc a
-	cp $d
-	jr nz, .asm_7045
+	cp NUM_OBJECT_STRUCTS
+	jr nz, .loop
 	and a
 	ret
 
-.asm_70a2
+.setcarry
 	scf
 	ret
 ; 70a4
@@ -2584,9 +2588,9 @@
 	ld e, a
 	ld bc, ObjectStructs
 	xor a
-.asm_711f
+.loop
 	ld [$ffb0], a
-	call Function1af1
+	call GetObjectSprite
 	jr z, .asm_7160
 	ld hl, OBJECT_03
 	add hl, bc
@@ -2627,14 +2631,14 @@
 	jr .asm_716f
 
 .asm_7160
-	ld hl, ObjectStruct2 - ObjectStruct1
+	ld hl, OBJECT_STRUCT_LENGTH
 	add hl, bc
 	ld b, h
 	ld c, l
 	ld a, [$ffb0]
 	inc a
-	cp $d
-	jr nz, .asm_711f
+	cp NUM_OBJECT_STRUCTS
+	jr nz, .loop
 	xor a
 	ret
 
@@ -2667,24 +2671,24 @@
 	ret
 ; 718d
 
-Function718d: ; 718d
+GetFirstPokemonHappiness: ; 718d
 	ld hl, PartyMon1Happiness
 	ld bc, PartyMon2 - PartyMon1
 	ld de, PartySpecies
-.asm_7196
+.loop
 	ld a, [de]
 	cp EGG
-	jr nz, .asm_719f
+	jr nz, .done
 	inc de
 	add hl, bc
-	jr .asm_7196
+	jr .loop
 
-.asm_719f
+.done
 	ld [wd265], a
 	ld a, [hl]
 	ld [ScriptVar], a
 	call GetPokemonName
-	jp Function746e
+	jp CopyPokemonName_Buffer1_Buffer3
 ; 71ac
 
 Function71ac: ; 71ac
@@ -2692,13 +2696,13 @@
 	ld [wd265], a
 	cp EGG
 	ld a, $1
-	jr z, .asm_71b9
+	jr z, .egg
 	xor a
 
-.asm_71b9
+.egg
 	ld [ScriptVar], a
 	call GetPokemonName
-	jp Function746e
+	jp CopyPokemonName_Buffer1_Buffer3
 ; 71c2
 
 
@@ -2729,19 +2733,19 @@
 	ld a, [de]
 	cp 100
 	ld e, 0
-	jr c, .asm_71ef
+	jr c, .ok
 	inc e
 	cp 200
-	jr c, .asm_71ef
+	jr c, .ok
 	inc e
 
-.asm_71ef
+.ok
 	dec c
 	ld b, 0
 	ld hl, .Actions
+rept 3
 	add hl, bc
-	add hl, bc
-	add hl, bc
+endr
 	ld d, 0
 	add hl, de
 	ld a, [hl]
@@ -2751,16 +2755,16 @@
 	ld a, [de]
 	jr nc, .negative
 	add [hl]
-	jr nc, .asm_720d
-	ld a, $ff
-	jr .asm_720d
+	jr nc, .done
+	ld a, -1
+	jr .done
 
 .negative
 	add [hl]
-	jr c, .asm_720d
+	jr c, .done
 	xor a
 
-.asm_720d
+.done
 	ld [de], a
 	ld a, [IsInBattle]
 	and a
@@ -2776,14 +2780,14 @@
 ; 7221
 
 .Actions
-	db  +5,  +3,  +2
-	db  +5,  +3,  +2
+	db  +5,  +3,  +2 ; Gained a level
+	db  +5,  +3,  +2 ; Used a stat-boosting item (vitamin or X-item)
 	db  +1,  +1,  +0
 	db  +3,  +2,  +1 ; Battled a Gym Leader
 	db  +1,  +1,  +0 ; Learned a move
-	db  -1,  -1,  -1
+	db  -1,  -1,  -1 ; Lost to an enemy
 	db  -5,  -5, -10
-	db  -5,  -5, -10
+	db  -5,  -5, -10 ; Lost to a much weaker enemy
 	db  +1,  +1,  +1
 	db  +3,  +3,  +1
 	db  +5,  +5,  +2
@@ -2790,11 +2794,11 @@
 	db  +1,  +1,  +1
 	db  +3,  +3,  +1
 	db +10, +10,  +4
-	db  -5,  -5, -10
-	db -10, -10, -15
-	db -15, -15, -20
+	db  -5,  -5, -10 ; Used Heal Powder or Energypowder (bitter)
+	db -10, -10, -15 ; Used Energy Root (bitter)
+	db -15, -15, -20 ; Used Revival Herb (bitter)
 	db  +3,  +3,  +1
-	db +10,  +6,  +4
+	db +10,  +6,  +4 ; Gained a level in the place where it was caught
 ; 725a
 
 
@@ -2971,7 +2975,7 @@
 	call CopyName2
 
 ; Engine flag for this event.
-	ld hl, wdc1e
+	ld hl, DailyFlags
 	set 5, [hl]
 
 	ld a, 1
@@ -2991,7 +2995,7 @@
 
 
 SpecialReturnShuckle: ; 737e
-	callba Function50000
+	callba SelectMonFromParty
 	jr c, .asm_73e6
 
 	ld a, [CurPartySpecies]
@@ -3063,13 +3067,13 @@
 ; 73f7
 
 Function73f7: ; 73f7
-	callba Function50000
+	callba SelectMonFromParty
 	jr c, .asm_740e
 	ld a, [CurPartySpecies]
 	ld [ScriptVar], a
 	ld [wd265], a
 	call GetPokemonName
-	jp Function746e
+	jp CopyPokemonName_Buffer1_Buffer3
 
 .asm_740e
 	xor a
@@ -3090,26 +3094,26 @@
 
 Function7420: ; 7420
 	push hl
-	callba Function50000
+	callba SelectMonFromParty
 	pop hl
-	jr c, .asm_744e
+	jr c, .nope
 	ld a, [CurPartySpecies]
 	cp EGG
-	jr z, .asm_7453
+	jr z, .egg
 	push hl
 	call GetCurNick
-	call Function746e
+	call CopyPokemonName_Buffer1_Buffer3
 	pop hl
 	call Random
-.next
+.loop
 	sub [hl]
-	jr c, .asm_7444
+	jr c, .ok
+rept 3
 	inc hl
-	inc hl
-	inc hl
-	jr .next
+endr
+	jr .loop
 
-.asm_7444
+.ok
 	inc hl
 	ld a, [hli]
 	ld [ScriptVar], a
@@ -3117,12 +3121,12 @@
 	call ChangeHappiness
 	ret
 
-.asm_744e
+.nope
 	xor a
 	ld [ScriptVar], a
 	ret
 
-.asm_7453
+.egg
 	ld a, $1
 	ld [ScriptVar], a
 	ret
@@ -3142,10 +3146,10 @@
 	db $ff, $02, $12
 ; 746e
 
-Function746e: ; 746e
+CopyPokemonName_Buffer1_Buffer3: ; 746e
 	ld hl, StringBuffer1
 	ld de, StringBuffer3
-	ld bc, $000b
+	ld bc, PKMN_NAME_LENGTH
 	jp CopyBytes
 ; 747a
 
@@ -3163,11 +3167,11 @@
 	ld [hBGMapMode], a
 	call WhiteBGMap
 	call ClearSprites
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, TileMapEnd - TileMap
 	ld a, " "
 	call ByteFill
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, AttrMapEnd - AttrMap
 	ld a, $7
 	call ByteFill
@@ -3176,7 +3180,7 @@
 	ret
 ; 8029
 
-Function8029: ; 8029
+GetSpawnCoord: ; 8029
 	ld a, $ff
 	ld [wd4cd], a
 	ld [wd4ce], a
@@ -3187,18 +3191,18 @@
 	call Function808f
 	ld a, $0
 	call GetMapObject
-	ld hl, $0008
+	ld hl, MAPOBJECT_COLOR
 	add hl, bc
 	ld e, $80
 	ld a, [wd45b]
 	bit 2, a
-	jr nz, .asm_8059
+	jr nz, .ok
 	ld a, [PlayerGender]
 	bit 0, a
-	jr z, .asm_8059
-	ld e, $90
+	jr z, .ok
+	ld e, (PAL_OW_BLUE << 4) | $80
 
-.asm_8059
+.ok
 	ld [hl], e
 	ld a, $0
 	ld [$ffaf], a
@@ -3216,7 +3220,8 @@
 ; 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.
-	db $01, $00, $00, $0b, $ff, $ff, $ff, $00, $00, $00, $00, $ff, $ff
+	person_event SPRITE_CHRIS, 0, 0, OW_LEFT | $3, $ff, -1, -1, $0, 0, $0000, -1
+	; db $01, $00, $00, $0b, $ff, $ff, $ff, $00, $00, $00, $00, $ff, $ff
 ; 807e
 
 Function807e:: ; 807e
@@ -3224,10 +3229,10 @@
 	ld a, b
 	call GetMapObject
 	pop de
-	ld hl, $0003
+	ld hl, MAPOBJECT_X_COORD
 	add hl, bc
 	ld [hl], d
-	ld hl, $0002
+	ld hl, MAPOBJECT_Y_COORD
 	add hl, bc
 	ld [hl], e
 	ret
@@ -3236,10 +3241,10 @@
 Function808f: ; 808f
 	push bc
 	ld a, [XCoord]
-	add $4
+	add 4
 	ld d, a
 	ld a, [YCoord]
-	add $4
+	add 4
 	ld e, a
 	pop bc
 	call Function807e
@@ -3264,25 +3269,25 @@
 	ret
 ; 80b8
 
-Function80b8: ; 80b8
+RefreshPlayerCoords: ; 80b8
 	ld a, [XCoord]
-	add $4
+	add 4
 	ld d, a
 	ld hl, MapX
 	sub [hl]
 	ld [hl], d
-	ld hl, MapObjects + 3
+	ld hl, MapObjects + MAPOBJECT_X_COORD
 	ld [hl], d
 	ld hl, MapX2
 	ld [hl], d
 	ld d, a
 	ld a, [YCoord]
-	add $4
+	add 4
 	ld e, a
 	ld hl, MapY
 	sub [hl]
 	ld [hl], e
-	ld hl, MapObjects + 2
+	ld hl, MapObjects + MAPOBJECT_Y_COORD
 	ld [hl], e
 	ld hl, MapY2
 	ld [hl], e
@@ -3294,27 +3299,27 @@
 ; 80e7
 
 
-Function80e7:: ; 80e7
+CopyObjectStruct:: ; 80e7
 	call Function2707
 	and a
 	ret nz
-	ld hl, ObjectStructs + (ObjectStruct2 - ObjectStruct1) * 1
+	ld hl, ObjectStructs + OBJECT_STRUCT_LENGTH * 1
 	ld a, 1
-	ld de, ObjectStruct2 - ObjectStruct1
-.asm_80f4
+	ld de, OBJECT_STRUCT_LENGTH
+.loop
 	ld [$ffb0], a
 	ld a, [hl]
 	and a
-	jr z, .asm_8104
+	jr z, .done
 	add hl, de
 	ld a, [$ffb0]
 	inc a
-	cp $d
-	jr nz, .asm_80f4
+	cp NUM_OBJECT_STRUCTS
+	jr nz, .loop
 	scf
 	ret
 
-.asm_8104
+.done
 	ld d, h
 	ld e, l
 	call Function8116
@@ -3335,12 +3340,12 @@
 
 Function811d: ; 811d
 	ld a, [$ffb0]
-	ld hl, OBJECT_00
+	ld hl, MAPOBJECT_OBJECT_STRUCT_ID
 	add hl, bc
 	ld [hl], a
 	ld a, [$ffaf]
 	ld [wc2f0], a
-	ld hl, OBJECT_01
+	ld hl, MAPOBJECT_SPRITE
 	add hl, bc
 	ld a, [hl]
 	ld [wc2f1], a
@@ -3349,33 +3354,33 @@
 	ld a, [hl]
 	call GetSpritePalette
 	ld [wc2f3], a
-	ld hl, OBJECT_08
+	ld hl, MAPOBJECT_COLOR
 	add hl, bc
 	ld a, [hl]
 	and $f0
-	jr z, .asm_814e
+	jr z, .no_color
 	swap a
 	and $7
 	ld [wc2f3], a
 
-.asm_814e
-	ld hl, OBJECT_04
+.no_color
+	ld hl, MAPOBJECT_FACING
 	add hl, bc
 	ld a, [hl]
 	ld [wc2f4], a
-	ld hl, OBJECT_09
+	ld hl, MAPOBJECT_RANGE
 	add hl, bc
 	ld a, [hl]
 	ld [wc2f5], a
-	ld hl, OBJECT_03
+	ld hl, MAPOBJECT_X_COORD
 	add hl, bc
 	ld a, [hl]
 	ld [wc2f6], a
-	ld hl, OBJECT_SPRITE
+	ld hl, MAPOBJECT_Y_COORD
 	add hl, bc
 	ld a, [hl]
 	ld [wc2f7], a
-	ld hl, OBJECT_FLAGS
+	ld hl, MAPOBJECT_MOVEMENT
 	add hl, bc
 	ld a, [hl]
 	ld [wc2f8], a
@@ -3384,45 +3389,45 @@
 
 Function8177: ; 8177
 	ld bc, MapObjects + OBJECT_LENGTH
-	ld a, $1
-.asm_817c
+	ld a, 1
+.loop
 	ld [$ffaf], a
-	ld hl, $0001
+	ld hl, MAPOBJECT_SPRITE
 	add hl, bc
 	ld a, [hl]
 	and a
-	jr z, .asm_81bb
-	ld hl, $0000
+	jr z, .next
+	ld hl, MAPOBJECT_OBJECT_STRUCT_ID
 	add hl, bc
 	ld a, [hl]
-	cp $ff
-	jr nz, .asm_81bb
+	cp -1
+	jr nz, .next
 	ld a, [XCoord]
 	ld d, a
 	ld a, [YCoord]
 	ld e, a
-	ld hl, $0003
+	ld hl, MAPOBJECT_X_COORD
 	add hl, bc
 	ld a, [hl]
-	add $1
+	add 1
 	sub d
-	jr c, .asm_81bb
-	cp $c
-	jr nc, .asm_81bb
-	ld hl, $0002
+	jr c, .next
+	cp MAPOBJECT_SCREEN_WIDTH
+	jr nc, .next
+	ld hl, MAPOBJECT_Y_COORD
 	add hl, bc
 	ld a, [hl]
-	add $1
+	add 1
 	sub e
-	jr c, .asm_81bb
-	cp $b
-	jr nc, .asm_81bb
+	jr c, .next
+	cp MAPOBJECT_SCREEN_HEIGHT
+	jr nc, .next
 	push bc
-	call Function80e7
+	call CopyObjectStruct
 	pop bc
 	jp c, Function81c9
 
-.asm_81bb
+.next
 	ld hl, OBJECT_LENGTH
 	add hl, bc
 	ld b, h
@@ -3429,8 +3434,8 @@
 	ld c, l
 	ld a, [$ffaf]
 	inc a
-	cp $10
-	jr nz, .asm_817c
+	cp NUM_OBJECTS
+	jr nz, .loop
 	ret
 ; 81c9
 
@@ -3469,39 +3474,39 @@
 	ld a, [XCoord]
 	ld e, a
 	ld bc, MapObjects + OBJECT_LENGTH
-	ld a, $1
-.asm_81f4
+	ld a, 1
+.loop
 	ld [$ffaf], a
-	ld hl, $0001
+	ld hl, MAPOBJECT_SPRITE
 	add hl, bc
 	ld a, [hl]
 	and a
-	jr z, .asm_8224
-	ld hl, $0002
+	jr z, .next
+	ld hl, MAPOBJECT_Y_COORD
 	add hl, bc
 	ld a, d
 	cp [hl]
-	jr nz, .asm_8224
-	ld hl, $0000
+	jr nz, .next
+	ld hl, MAPOBJECT_OBJECT_STRUCT_ID
 	add hl, bc
 	ld a, [hl]
-	cp $ff
-	jr nz, .asm_8224
-	ld hl, $0003
+	cp -1
+	jr nz, .next
+	ld hl, MAPOBJECT_X_COORD
 	add hl, bc
 	ld a, [hl]
-	add $1
+	add 1
 	sub e
-	jr c, .asm_8224
-	cp $c
-	jr nc, .asm_8224
+	jr c, .next
+	cp MAPOBJECT_SCREEN_WIDTH
+	jr nc, .next
 	push de
 	push bc
-	call Function80e7
+	call CopyObjectStruct
 	pop bc
 	pop de
 
-.asm_8224
+.next
 	ld hl, OBJECT_LENGTH
 	add hl, bc
 	ld b, h
@@ -3508,14 +3513,14 @@
 	ld c, l
 	ld a, [$ffaf]
 	inc a
-	cp $10
-	jr nz, .asm_81f4
+	cp NUM_OBJECTS
+	jr nz, .loop
 	ret
 ; 8232
 
 Function8232: ; 8232
 	ld a, [XCoord]
-	sub $1
+	sub 1
 	jr Function823e
 
 Function8239: ; 8239
@@ -3527,39 +3532,39 @@
 	ld a, [YCoord]
 	ld d, a
 	ld bc, MapObjects + OBJECT_LENGTH
-	ld a, $1
-.asm_8248
+	ld a, 1
+.loop
 	ld [$ffaf], a
-	ld hl, $0001
+	ld hl, MAPOBJECT_SPRITE
 	add hl, bc
 	ld a, [hl]
 	and a
-	jr z, .asm_8278
-	ld hl, $0003
+	jr z, .next
+	ld hl, MAPOBJECT_X_COORD
 	add hl, bc
 	ld a, e
 	cp [hl]
-	jr nz, .asm_8278
-	ld hl, $0000
+	jr nz, .next
+	ld hl, MAPOBJECT_OBJECT_STRUCT_ID
 	add hl, bc
 	ld a, [hl]
-	cp $ff
-	jr nz, .asm_8278
-	ld hl, $0002
+	cp -1
+	jr nz, .next
+	ld hl, MAPOBJECT_Y_COORD
 	add hl, bc
 	ld a, [hl]
-	add $1
+	add 1
 	sub d
-	jr c, .asm_8278
-	cp $b
-	jr nc, .asm_8278
+	jr c, .next
+	cp MAPOBJECT_SCREEN_HEIGHT
+	jr nc, .next
 	push de
 	push bc
-	call Function80e7
+	call CopyObjectStruct
 	pop bc
 	pop de
 
-.asm_8278
+.next
 	ld hl, OBJECT_LENGTH
 	add hl, bc
 	ld b, h
@@ -3566,8 +3571,8 @@
 	ld c, l
 	ld a, [$ffaf]
 	inc a
-	cp $10
-	jr nz, .asm_8248
+	cp NUM_OBJECTS
+	jr nz, .loop
 	ret
 ; 8286
 
@@ -3574,7 +3579,7 @@
 
 Function8286: ; 8286
 	ld a, [wc2f0]
-	ld hl, OBJECT_01
+	ld hl, OBJECT_MAP_OBJECT_INDEX
 	add hl, de
 	ld [hl], a
 	ld a, [wc2f4]
@@ -3589,17 +3594,17 @@
 	ld a, [wc2f6]
 	call Function82f1
 	ld a, [wc2f1]
-	ld hl, OBJECT_00
+	ld hl, OBJECT_SPRITE
 	add hl, de
 	ld [hl], a
 	ld a, [wc2f2]
-	ld hl, OBJECT_SPRITE
+	ld hl, OBJECT_SPRITE_TILE
 	add hl, de
 	ld [hl], a
 	ld hl, OBJECT_09
 	add hl, de
 	ld [hl], $0
-	ld hl, OBJECT_FACING
+	ld hl, OBJECT_FACING_STEP
 	add hl, de
 	ld [hl], $ff
 	ld a, [wc2f8]
@@ -3675,8 +3680,8 @@
 	jr z, Function833b
 	ld a, [$ffe0]
 	ld b, a
-	ld c, $0
-	ld d, $1
+	ld c, 0
+	ld d, 1
 	call Function8341
 	call Function1b35
 
@@ -3691,19 +3696,19 @@
 	push bc
 	ld a, c
 	call GetMapObject
-	ld hl, $0000
+	ld hl, MAPOBJECT_OBJECT_STRUCT_ID
 	add hl, bc
 	ld a, [hl]
-	call Function1ae5
+	call GetObjectStruct
 	ld d, b
 	ld e, c
 	pop bc
 	ld a, b
 	call GetMapObject
-	ld hl, $0000
+	ld hl, MAPOBJECT_OBJECT_STRUCT_ID
 	add hl, bc
 	ld a, [hl]
-	call Function1ae5
+	call GetObjectStruct
 	ld hl, OBJECT_MAP_X
 	add hl, bc
 	ld a, [hl]
@@ -3834,34 +3839,37 @@
 	ret
 ; 8417
 
-Function8417:: ; 8417
+GetRelativeFacing:: ; 8417
+; Determines which way map object e would have to turn to face map object d.  Returns carry if it's impossible for whatever reason.
 	ld a, d
 	call GetMapObject
-	ld hl, $0000
+	ld hl, MAPOBJECT_OBJECT_STRUCT_ID
 	add hl, bc
 	ld a, [hl]
-	cp $d
-	jr nc, .asm_8437
+	cp NUM_OBJECT_STRUCTS
+	jr nc, .carry
 	ld d, a
 	ld a, e
 	call GetMapObject
-	ld hl, $0000
+	ld hl, MAPOBJECT_OBJECT_STRUCT_ID
 	add hl, bc
 	ld a, [hl]
-	cp $d
-	jr nc, .asm_8437
+	cp NUM_OBJECT_STRUCTS
+	jr nc, .carry
 	ld e, a
-	call Function8439
+	call .GetFacing_e_relativeto_d
 	ret
 
-.asm_8437
+.carry
 	scf
 	ret
 ; 8439
 
-Function8439: ; 8439
+.GetFacing_e_relativeto_d: ; 8439
+; Determines which way object e would have to turn to face object d.  Returns carry if it's impossible.
+; load the coordinates of object d into bc
 	ld a, d
-	call Function1ae5
+	call GetObjectStruct
 	ld hl, OBJECT_MAP_X
 	add hl, bc
 	ld a, [hl]
@@ -3870,8 +3878,9 @@
 	ld c, [hl]
 	ld b, a
 	push bc
+; load the coordinates of object e into de
 	ld a, e
-	call Function1ae5
+	call GetObjectStruct
 	ld hl, OBJECT_MAP_X
 	add hl, bc
 	ld d, [hl]
@@ -3879,55 +3888,61 @@
 	add hl, bc
 	ld e, [hl]
 	pop bc
+; |x1 - x2|
 	ld a, b
 	sub d
-	jr z, .asm_846c
-	jr nc, .asm_8460
+	jr z, .same_x_1
+	jr nc, .b_right_of_d_1
 	cpl
 	inc a
 
-.asm_8460
+.b_right_of_d_1
+; |y1 - y2|
 	ld h, a
 	ld a, c
 	sub e
-	jr z, .asm_847a
-	jr nc, .asm_8469
+	jr z, .same_y_1
+	jr nc, .c_below_e_1
 	cpl
 	inc a
 
-.asm_8469
+.c_below_e_1
+; |y1 - y2| - |x1 - x2|
 	sub h
-	jr c, .asm_847a
+	jr c, .same_y_1
 
-.asm_846c
+.same_x_1
+; compare the y coordinates
 	ld a, c
 	cp e
-	jr z, .asm_8488
-	jr c, .asm_8476
-	ld d, $0
+	jr z, .same_x_and_y
+	jr c, .c_directly_below_e
+; c directly above e
+	ld d, DOWN
 	and a
 	ret
 
-.asm_8476
-	ld d, $1
+.c_directly_below_e
+	ld d, UP
 	and a
 	ret
 
-.asm_847a
+.same_y_1
 	ld a, b
 	cp d
-	jr z, .asm_8488
-	jr c, .asm_8484
-	ld d, $3
+	jr z, .same_x_and_y
+	jr c, .b_directly_right_of_d
+; b directly left of d
+	ld d, RIGHT
 	and a
 	ret
 
-.asm_8484
-	ld d, $2
+.b_directly_right_of_d
+	ld d, LEFT
 	and a
 	ret
 
-.asm_8488
+.same_x_and_y
 	scf
 	ret
 ; 848a
@@ -3934,14 +3949,14 @@
 
 Function848a: ; 848a
 	call Function849d
-	jr c, .asm_8497
+	jr c, .same
 	ld [wd4d1], a
 	xor a
 	ld [wd4d0], a
 	ret
 
-.asm_8497
-	ld a, $ff
+.same
+	ld a, -1
 	ld [wd4d0], a
 	ret
 ; 849d
@@ -3948,7 +3963,7 @@
 
 Function849d: ; 849d
 	ld a, [wd4cd]
-	call Function1ae5
+	call GetObjectStruct
 	ld hl, OBJECT_MAP_X
 	add hl, bc
 	ld d, [hl]
@@ -3956,39 +3971,39 @@
 	add hl, bc
 	ld e, [hl]
 	ld a, [wd4ce]
-	call Function1ae5
+	call GetObjectStruct
 	ld hl, OBJECT_MAP_X
 	add hl, bc
 	ld a, d
 	cp [hl]
-	jr z, .asm_84c5
-	jr c, .asm_84c1
+	jr z, .check_y
+	jr c, .left
 	and a
-	ld a, $f
+	ld a, $c + RIGHT
 	ret
 
-.asm_84c1
+.left
 	and a
-	ld a, $e
+	ld a, $c + LEFT
 	ret
 
-.asm_84c5
+.check_y
 	ld hl, OBJECT_MAP_Y
 	add hl, bc
 	ld a, e
 	cp [hl]
-	jr z, .asm_84d7
-	jr c, .asm_84d3
+	jr z, .same_xy
+	jr c, .up
 	and a
-	ld a, $c
+	ld a, $c + DOWN
 	ret
 
-.asm_84d3
+.up
 	and a
-	ld a, $d
+	ld a, $c + UP
 	ret
 
-.asm_84d7
+.same_xy
 	scf
 	ret
 ; 84d9
@@ -4021,8 +4036,9 @@
 	ld a, d
 	ld d, 0
 	ld hl, SineWave
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
@@ -4048,124 +4064,17 @@
 ; 854b
 
 
-GetPredefPointer:: ; 854b
-; Return the bank and address of PredefID in a and PredefAddress.
+INCLUDE "engine/predef.asm"
 
-; Save hl for later (back in Predef)
-	ld a, h
-	ld [PredefTemp], a
-	ld a, l
-	ld [PredefTemp + 1], a
 
-	push de
-	ld a, [PredefID]
-	ld e, a
-	ld d, 0
-	ld hl, PredefPointers
-	add hl, de
-	add hl, de
-	add hl, de
-	pop de
-
-	ld a, [hli]
-	ld [PredefAddress + 1], a
-	ld a, [hli]
-	ld [PredefAddress], a
-	ld a, [hl]
-
-	ret
-; 856b
-
-PredefPointers:: ; 856b
-; $4b Predef pointers
-; address, bank
-
-	add_predef LearnMove ; $0
-	add_predef Predef1
-	add_predef HealParty
-	add_predef FlagPredef
-	add_predef Functionc699
-	add_predef FillPP
-	add_predef Functiond88c
-	add_predef Functionda96
-	add_predef Functiondb3f ; $8
-	add_predef Functionde6e
-	add_predef GiveEgg
-	add_predef Functionc6e0
-	add_predef Functione167
-	add_predef Functione17b
-	add_predef CanLearnTMHMMove
-	add_predef GetTMHMMove
-	add_predef Function28eef ; $ 10
-	add_predef PrintMoveDesc
-	add_predef UpdatePlayerHUD
-	add_predef FillBox
-	add_predef Function3d873
-	add_predef UpdateEnemyHUD
-	add_predef StartBattle
-	add_predef FillInExpBar
-	add_predef Function3f43d ; $18
-	add_predef Function3f47c
-	add_predef LearnLevelMoves
-	add_predef FillMoves
-	add_predef Function421e6
-	add_predef Function28f63
-	add_predef Function28f24
-	add_predef Function5084a
-	add_predef ListMoves ; $20
-	add_predef Function50d2e
-	add_predef Function50cdb
-	add_predef Function50c50
-	add_predef GetGender
-	add_predef StatsScreenInit
-	add_predef DrawPlayerHP
-	add_predef DrawEnemyHP
-	add_predef PrintTempMonStats ; $28
-	add_predef GetTypeName
-	add_predef PrintMoveType
-	add_predef PrintType
-	add_predef PrintMonTypes
-	add_predef GetUnownLetter
-	add_predef Functioncbcdd
-	add_predef Predef2F
-	add_predef Function9853 ; $30
-	add_predef Function864c
-	add_predef Function91d11
-	add_predef CheckContestMon
-	add_predef Function8c20f
-	add_predef Function8c000
-	add_predef Function8c000_2
-	add_predef PlayBattleAnim
-	add_predef Predef38 ; $38
-	add_predef Predef39
-	add_predef Functionfd1d0
-	add_predef PartyMonItemName
-	add_predef GetFrontpic
-	add_predef GetBackpic
-	add_predef Function5108b
-	add_predef GetTrainerPic
-	add_predef DecompressPredef ; $40
-	add_predef Function347d3
-	add_predef Functionfb908
-	add_predef Functionfb877
-	add_predef Functiond0000
-	add_predef Function50d0a
-	add_predef Functiond00a3
-	add_predef Functiond008e
-	add_predef Functiond0669 ; $48
-	add_predef Functiond066e
-	dbw $ff, Function2d43 ; ????
-; 864c
-
-
 INCLUDE "engine/color.asm"
 
 
 SECTION "bank3", ROMX, BANK[$3]
 
-Functionc000:: ; c000
+CheckTime:: ; c000
 	ld a, [TimeOfDay]
-	ld hl, Datac012
+	ld hl, TimeOfDayTable
 	ld de, 2
 	call IsInArray
 	inc hl
@@ -4177,7 +4086,7 @@
 	ret
 ; c012
 
-Datac012: ; c012
+TimeOfDayTable: ; c012
 	db MORN, 1
 	db DAY,  2
 	db NITE, 4
@@ -4319,10 +4228,10 @@
 
 .two
 	dec e
-	jr nz, .asm_c583
+	jr nz, .two_skip
 	ld a, "0"
 	ld [$ffb3], a
-.asm_c583
+.two_skip
 
 	ld c, 0
 	ld a, [$ffb6]
@@ -4337,11 +4246,11 @@
 	ld b, a
 	ld a, [$ffb3]
 	or c
-	jr nz, .asm_c59b
+	jr nz, .money
 	call .PrintLeadingZero
-	jr .asm_c5ad
+	jr .money_leading_zero
 
-.asm_c59b
+.money
 	call .PrintYen
 	push af
 	ld a, "0"
@@ -4351,11 +4260,11 @@
 	ld [$ffb3], a
 	inc e
 	dec e
-	jr nz, .asm_c5ad
+	jr nz, .money_leading_zero
 	inc hl
 	ld [hl], $f2 ; XXX
 
-.asm_c5ad
+.money_leading_zero
 	call .AdvancePointer
 	call .PrintYen
 	ld a, "0"
@@ -4371,14 +4280,14 @@
 	push af
 	ld a, [$ffb3]
 	and a
-	jr nz, .asm_c5c9
+	jr nz, .stop
 	bit 5, d
-	jr z, .asm_c5c9
+	jr z, .stop
 	ld a, "¥"
 	ld [hli], a
 	res 5, d
 
-.asm_c5c9
+.stop
 	pop af
 	ret
 ; c5cb
@@ -4390,13 +4299,13 @@
 	ld [$ffb3], a
 .ok
 	ld c, 0
-.asm_c5d4
+.loop
 	ld a, [$ffb7]
 	ld b, a
 	ld a, [$ffb4]
 	ld [$ffba], a
 	cp b
-	jr c, .asm_c624
+	jr c, .skip1
 	sub b
 	ld [$ffb4], a
 	ld a, [$ffb8]
@@ -4404,14 +4313,14 @@
 	ld a, [$ffb5]
 	ld [$ffbb], a
 	cp b
-	jr nc, .asm_c5f6
+	jr nc, .skip2
 	ld a, [$ffb4]
 	or 0
-	jr z, .asm_c620
+	jr z, .skip3
 	dec a
 	ld [$ffb4], a
 	ld a, [$ffb5]
-.asm_c5f6
+.skip2
 	sub b
 	ld [$ffb5], a
 	ld a, [$ffb9]
@@ -4419,44 +4328,44 @@
 	ld a, [$ffb6]
 	ld [$ffbc], a
 	cp b
-	jr nc, .asm_c616
+	jr nc, .skip4
 	ld a, [$ffb5]
 	and a
-	jr nz, .asm_c611
+	jr nz, .skip5
 	ld a, [$ffb4]
 	and a
-	jr z, .asm_c61c
+	jr z, .skip6
 	dec a
 	ld [$ffb4], a
 	xor a
-.asm_c611
+.skip5
 	dec a
 	ld [$ffb5], a
 	ld a, [$ffb6]
-.asm_c616
+.skip4
 	sub b
 	ld [$ffb6], a
 	inc c
-	jr .asm_c5d4
-.asm_c61c
+	jr .loop
+.skip6
 	ld a, [$ffbb]
 	ld [$ffb5], a
-.asm_c620
+.skip3
 	ld a, [$ffba]
 	ld [$ffb4], a
-.asm_c624
+.skip1
 	ld a, [$ffb3]
 	or c
 	jr z, .PrintLeadingZero
 	ld a, [$ffb3]
 	and a
-	jr nz, .asm_c637
+	jr nz, .done
 	bit 5, d
-	jr z, .asm_c637
+	jr z, .done
 	ld a, $f0
 	ld [hli], a
 	res 5, d
-.asm_c637
+.done
 	ld a, "0"
 	add c
 	ld [hl], a
@@ -4497,7 +4406,7 @@
 	ld hl, PartySpecies
 .loop
 	ld a, [hli]
-	cp $ff
+	cp -1
 	jr z, .done
 	cp EGG
 	jr z, .next
@@ -4522,7 +4431,7 @@
 	ld d, h
 	ld e, l
 
-	ld hl, PartyMon1Status - PartyMon1Species 
+	ld hl, PartyMon1Status - PartyMon1Species
 	add hl, de
 	xor a
 	ld [hli], a
@@ -4534,8 +4443,9 @@
 	; bc = PartyMon1HP - PartyMon1Species
 	ld b, h
 	ld c, l
+rept 2
 	dec bc
-	dec bc
+endr
 
 	ld a, [hli]
 	ld [bc], a
@@ -4550,7 +4460,7 @@
 Functionc699: ; c699
 	ld a, b
 	or c
-	jr z, .asm_c6dd
+	jr z, .zero
 	push hl
 	xor a
 	ld [hMultiplicand], a
@@ -4563,7 +4473,7 @@
 	call Multiply
 	ld a, d
 	and a
-	jr z, .asm_c6cc
+	jr z, .divide
 	srl d
 	rr e
 	srl d
@@ -4579,7 +4489,7 @@
 	ld a, b
 	ld [$ffb5], a
 
-.asm_c6cc
+.divide
 	ld a, e
 	ld [hMultiplier], a
 	ld b, $4
@@ -4592,7 +4502,7 @@
 	ld e, $1
 	ret
 
-.asm_c6dd
+.zero
 	ld e, $0
 	ret
 ; c6e0
@@ -4605,24 +4515,24 @@
 ; c6ea
 
 
-Functionc6ea: ; c6ea
+ClearBuffer1: ; c6ea
 	xor a
 	ld hl, Buffer1
-	ld bc, $0007
+	ld bc, 7
 	call ByteFill
 	ret
 ; c6f5
 
-Functionc6f5: ; c6f5
+FieldMoveJumptable: ; c6f5
 	ld a, [Buffer1]
 	rst JumpTable
 	ld [Buffer1], a
 	bit 7, a
-	jr nz, .asm_c702
+	jr nz, .okay
 	and a
 	ret
 
-.asm_c702
+.okay
 	and $7f
 	scf
 	ret
@@ -4666,7 +4576,7 @@
 	call CheckEngineFlag
 	ret nc
 	ld hl, BadgeRequiredText
-	call Function1d67 ; push text to queue
+	call MenuTextBoxBackup ; push text to queue
 	scf
 	ret
 ; c73d
@@ -4693,7 +4603,7 @@
 	ld a, [hl]
 	and a
 	jr z, .no
-	cp a, $ff
+	cp a, -1
 	jr z, .no
 	cp a, EGG
 	jr z, .next
@@ -4725,9 +4635,9 @@
 ; c779
 
 
-Functionc779: ; c779
+FieldMoveFailed: ; c779
 	ld hl, UnknownText_0xc780
-	call Function1d67
+	call MenuTextBoxBackup
 	ret
 ; c780
 
@@ -4736,11 +4646,11 @@
 	db "@"
 ; 0xc785
 
-Functionc785: ; c785
-	call Functionc6ea
+CutFunction: ; c785
+	call ClearBuffer1
 .loop
-	ld hl, Jumptable_c796
-	call Functionc6f5
+	ld hl, .Jumptable
+	call FieldMoveJumptable
 	jr nc, .loop
 	and $7f
 	ld [wd0ec], a
@@ -4748,36 +4658,36 @@
 ; c796
 
 
-Jumptable_c796: ; c796 (3:4796)
-	dw Functionc79c
-	dw Functionc7b2
-	dw Functionc7bb
+.Jumptable: ; c796 (3:4796)
+	dw .CheckAble
+	dw .DoCut
+	dw .FailCut
 
 
-Functionc79c: ; c79c (3:479c)
+.CheckAble: ; c79c (3:479c)
 	ld de, ENGINE_HIVEBADGE
 	call CheckBadge
-	jr c, .asm_c7ac
-	call Functionc7ce
-	jr c, .asm_c7af
+	jr c, .nohivebadge
+	call CheckMapForSomethingToCut
+	jr c, .nothingtocut
 	ld a, $1
 	ret
-.asm_c7ac
+.nohivebadge
 	ld a, $80
 	ret
-.asm_c7af
+.nothingtocut
 	ld a, $2
 	ret
 
-Functionc7b2: ; c7b2 (3:47b2)
-	ld hl, UnknownScript_0xc7fe
-	call Function31cd
+.DoCut: ; c7b2 (3:47b2)
+	ld hl, Script_CutFromMenu
+	call ExitMenuCallScript
 	ld a, $81
 	ret
 
-Functionc7bb: ; c7bb (3:47bb)
+.FailCut: ; c7bb (3:47bb)
 	ld hl, UnknownText_0xc7c9
-	call Function1d67
+	call MenuTextBoxBackup
 	ld a, $80
 	ret
 
@@ -4793,20 +4703,20 @@
 	db "@"
 ; 0xc7ce
 
-Functionc7ce: ; c7ce
+CheckMapForSomethingToCut: ; c7ce
 	call GetFacingTileCoord
 	ld c, a
 	push de
-	callba Function149f5
+	callba CheckCutCollision
 	pop de
-	jr nc, .asm_c7fc
-	call Function2a66
+	jr nc, .fail
+	call GetBlockLocation
 	ld c, [hl]
 	push hl
-	ld hl, Unknown_c862
-	call Functionc840
+	ld hl, CutTreeBlockPointers
+	call CheckOverworldTileArrays
 	pop hl
-	jr nc, .asm_c7fc
+	jr nc, .fail
 	ld a, l
 	ld [wd1ec], a
 	ld a, h
@@ -4818,25 +4728,25 @@
 	xor a
 	ret
 
-.asm_c7fc
+.fail
 	scf
 	ret
 ; c7fe
 
-UnknownScript_0xc7fe: ; c7fe
+Script_CutFromMenu: ; c7fe
 	reloadmappart
 	special UpdateTimePals
 
-UnknownScript_0xc802: ; 0xc802
+Script_Cut: ; 0xc802
 	callasm GetPartyNick
 	writetext UnknownText_0xc7c4
 	reloadmappart
-	callasm Functionc810
+	callasm CutDownTreeOrGrass
 	loadmovesprites
 	end
 ; 0xc810
 
-Functionc810: ; c810
+CutDownTreeOrGrass: ; c810
 	ld hl, wd1ec
 	ld a, [hli]
 	ld h, [hl]
@@ -4846,26 +4756,26 @@
 	xor a
 	ld [hBGMapMode], a
 	call Function2173
-	call Function1ad2
+	call DrawOnMap
 	call DelayFrame
 	ld a, [wd1ef]
 	ld e, a
 	callba Function8c940
-	call Function2879
+	call BufferScreen
 	call Function2914
-	call Function1ad2
+	call DrawOnMap
 	call DelayFrame
 	call Functione51
 	ret
 ; c840
 
-Functionc840: ; c840
+CheckOverworldTileArrays: ; c840
 	push bc
 	ld a, [wd199]
 	ld de, 3
 	call IsInArray
 	pop bc
-	jr nc, .asm_c860
+	jr nc, .nope
 	inc hl
 	ld a, [hli]
 	ld h, [hl]
@@ -4873,7 +4783,7 @@
 	ld de, 3
 	ld a, c
 	call IsInArray
-	jr nc, .asm_c860
+	jr nc, .nope
 	inc hl
 	ld b, [hl]
 	inc hl
@@ -4881,21 +4791,23 @@
 	scf
 	ret
 
-.asm_c860
+.nope
 	xor a
 	ret
 ; c862
 
-Unknown_c862: ; c862
-	dbw $01, Unknown_c872
-	dbw $02, Unknown_c882
-	dbw $03, Unknown_c886
-	dbw $19, Unknown_c899
-	dbw $1f, Unknown_c8a0
+CutTreeBlockPointers: ; c862
+; Which tileset are we in?
+	dbw $01, .one
+	dbw $02, .two
+	dbw $03, .three
+	dbw $19, .twentyfive
+	dbw $1f, .thirtyone
 	db -1
 ; c872
 
-Unknown_c872: ; c872
+.one: ; Johto OW
+; Which meta tile are we facing, which should we replace it with, and does it affect encounters?
 	db $03, $02, $01
 	db $5b, $3c, $00
 	db $5f, $3d, $00
@@ -4904,12 +4816,12 @@
 	db -1
 ; c882
 
-Unknown_c882: ; c882
+.two: ; Goldenrod area
 	db $03, $02, $01
 	db -1
 ; c886
 
-Unknown_c886: ; c886
+.three: ; Kanto OW
 	db $0b, $0a, $01
 	db $32, $6d, $00
 	db $33, $6c, $00
@@ -4919,23 +4831,23 @@
 	db -1
 ; c899
 
-Unknown_c899: ; c899
+.twentyfive: ; National Park
 	db $13, $03, $01
 	db $03, $04, $01
 	db -1
 ; c8a0
 
-Unknown_c8a0: ; c8a0
+.thirtyone: ; Ilex Forest
 	db $0f, $17, $00
 	db -1
 ; c8a4
 
-Unknown_c8a4: ; c8a4
-	dbw $01, Unknown_c8a8
+WhirlpoolBlockPointers: ; c8a4
+	dbw $01, .one
 	db -1
 ; c8a8
 
-Unknown_c8a8: ; c8a8
+.one: ; c8a8
 	db $07, $36, $00
 	db -1
 ; c8ac
@@ -4951,40 +4863,40 @@
 ; Flash
 	ld de, ENGINE_ZEPHYRBADGE
 	callba CheckBadge
-	jr c, .asm_c8dd
+	jr c, .nozephyrbadge
 	push hl
-	callba Function8ae30
+	callba SpecialAerodactylChamber
 	pop hl
-	jr c, .asm_c8d1
+	jr c, .useflash
 	ld a, [wd847]
-	cp $ff
-	jr nz, .asm_c8d7
+	cp -1
+	jr nz, .notadarkcave
 
-.asm_c8d1
-	call Functionc8e0
+.useflash
+	call UseFlash
 	ld a, $81
 	ret
 
-.asm_c8d7
-	call Functionc779
+.notadarkcave
+	call FieldMoveFailed
 	ld a, $80
 	ret
 
-.asm_c8dd
+.nozephyrbadge
 	ld a, $80
 	ret
 ; c8e0
 
-Functionc8e0: ; c8e0
-	ld hl, UnknownScript_0xc8e6
-	jp Function31cd
+UseFlash: ; c8e0
+	ld hl, Script_UseFlash
+	jp ExitMenuCallScript
 ; c8e6
 
-UnknownScript_0xc8e6: ; 0xc8e6
+Script_UseFlash: ; 0xc8e6
 	reloadmappart
 	special UpdateTimePals
 	writetext UnknownText_0xc8f3
-	callasm Function8c7e1
+	callasm BlindingFlash
 	loadmovesprites
 	end
 ; 0xc8f3
@@ -5007,12 +4919,12 @@
 	db "@"
 ; 0xc909
 
-Functionc909: ; c909
-	call Functionc6ea
-.asm_c90c
-	ld hl, Jumptable_c91a
-	call Functionc6f5
-	jr nc, .asm_c90c
+SurfFunction: ; c909
+	call ClearBuffer1
+.loop
+	ld hl, .Jumptable
+	call FieldMoveJumptable
+	jr nc, .loop
 	and $7f
 	ld [wd0ec], a
 	ret
@@ -5019,68 +4931,68 @@
 ; c91a
 
 
-Jumptable_c91a: ; c91a (3:491a)
-	dw Functionc922
-	dw Functionc95f
-	dw Functionc971
-	dw Functionc97a
+.Jumptable: ; c91a (3:491a)
+	dw .TrySurf
+	dw .DoSurf
+	dw .FailSurf
+	dw .AlreadySurfing
 
 
-Functionc922: ; c922 (3:4922)
+.TrySurf: ; c922 (3:4922)
 	ld de, ENGINE_FOGBADGE
 	call CheckBadge
 	jr c, .asm_c956
 	ld hl, BikeFlags
 	bit 1, [hl] ; always on bike
-	jr nz, .asm_c95c
+	jr nz, .cannotsurf
 	ld a, [PlayerState]
 	cp PLAYER_SURF
-	jr z, .asm_c959
+	jr z, .alreadysurfing
 	cp PLAYER_SURF_PIKA
-	jr z, .asm_c959
+	jr z, .alreadysurfing
 	call GetFacingTileCoord
 	call GetTileCollision
 	cp $1
-	jr nz, .asm_c95c
+	jr nz, .cannotsurf
 	call CheckDirection
-	jr c, .asm_c95c
+	jr c, .cannotsurf
 	callba CheckFacingObject
-	jr c, .asm_c95c
+	jr c, .cannotsurf
 	ld a, $1
 	ret
 .asm_c956
 	ld a, $80
 	ret
-.asm_c959
+.alreadysurfing
 	ld a, $3
 	ret
-.asm_c95c
+.cannotsurf
 	ld a, $2
 	ret
 
-Functionc95f: ; c95f (3:495f)
+.DoSurf: ; c95f (3:495f)
 	call GetSurfType
 	ld [Buffer2], a ; wd1eb (aliases: MovementType)
 	call GetPartyNick
-	ld hl, UnknownScript_0xc983
-	call Function31cd
+	ld hl, SurfFromMenuScript
+	call ExitMenuCallScript
 	ld a, $81
 	ret
 
-Functionc971: ; c971 (3:4971)
+.FailSurf: ; c971 (3:4971)
 	ld hl, CantSurfText
-	call Function1d67
+	call MenuTextBoxBackup
 	ld a, $80
 	ret
 
-Functionc97a: ; c97a (3:497a)
+.AlreadySurfing: ; c97a (3:497a)
 	ld hl, AlreadySurfingText
-	call Function1d67
+	call MenuTextBoxBackup
 	ld a, $80
 	ret
 ; c983 (3:4983)
 
-UnknownScript_0xc983: ; c983
+SurfFromMenuScript: ; c983
 	special UpdateTimePals
 
 UsedSurfScript: ; c986
@@ -5093,11 +5005,11 @@
 	copybytetovar Buffer2
 	writevarcode VAR_MOVEMENT
 
-	special Functione4a
+	special Special_ReplaceKrisSprite
 	special PlayMapMusic
 ; step into the water
 	special Function8379 ; (slow_step_x, step_end)
-	applymovement 0, MovementBuffer ; PLAYER, MovementBuffer
+	applymovement $0, MovementBuffer ; PLAYER, MovementBuffer
 	end
 ; c9a2
 
@@ -5239,11 +5151,11 @@
 ; ca3b
 
 
-Functionca3b: ; ca3b
-	call Functionc6ea
+FlyFunction: ; ca3b
+	call ClearBuffer1
 .asm_ca3e
 	ld hl, .data_ca4c
-	call Functionc6f5
+	call FieldMoveJumptable
 	jr nc, .asm_ca3e
 	and $7f
 	ld [wd0ec], a
@@ -5251,40 +5163,40 @@
 ; ca4c
 
 .data_ca4c
- 	dw Functionca52
- 	dw Functionca94
- 	dw Functionca9d
+ 	dw .TryFly
+ 	dw .DoFly
+ 	dw .FailFly
 ; ca52
 
 
-Functionca52: ; ca52
+.TryFly: ; ca52
 ; Fly
 	ld de, ENGINE_STORMBADGE
 	call CheckBadge
-	jr c, .asm_ca85
+	jr c, .nostormbadge
 	call GetMapPermission
 	call CheckOutdoorMap
-	jr z, .asm_ca64
+	jr z, .outdoors
 	jr .indoors
 
-.asm_ca64
+.outdoors
 	xor a
 	ld [$ffde], a
 	call Function1d6e
 	call ClearSprites
-	callba Function91af3
+	callba _FlyMap
 	ld a, e
 	cp -1
-	jr z, .asm_ca8b
+	jr z, .illegal
 	cp $1c ; NUM_SPAWNS
-	jr nc, .asm_ca8b
+	jr nc, .illegal
 
 	ld [wd001], a
-	call Function1c17
+	call WriteBackup
 	ld a, $1
 	ret
 
-.asm_ca85
+.nostormbadge
 	ld a, $82
 	ret
 
@@ -5292,35 +5204,35 @@
 	ld a, $2
 	ret
 
-.asm_ca8b
-	call Function1c17
+.illegal
+	call WriteBackup
 	call WaitBGMap
 	ld a, $80
 	ret
 ; ca94
 
-Functionca94: ; ca94
-	ld hl, UnknownScript_0xcaa3
-	call Function31cd
+.DoFly: ; ca94
+	ld hl, .FlyScript
+	call ExitMenuCallScript
 	ld a, $81
 	ret
 ; ca9d
 
-Functionca9d: ; ca9d
-	call Functionc779
+.FailFly: ; ca9d
+	call FieldMoveFailed
 	ld a, $82
 	ret
 ; caa3
 
-UnknownScript_0xcaa3: ; 0xcaa3
+.FlyScript: ; 0xcaa3
 	reloadmappart
 	callasm HideSprites
 	special UpdateTimePals
 	callasm Function8caed
 	farscall UnknownScript_0x122c1
-	special Function97c28
-	callasm Function154f1
-	writecode $8, $0
+	special WarpToSpawnPoint
+	callasm DelayLoadingNewSprites
+	writecode VAR_MOVEMENT, $0
 	newloadmap $fc
 	callasm Function8cb33
 	special WaitSFX
@@ -5331,58 +5243,58 @@
 Functioncacb: ; cacb
 	callba Function561d
 	call DelayFrame
-	call Functione4a
+	call Special_ReplaceKrisSprite
 	callba Function106594
 	ret
 ; cade
 
 Functioncade: ; cade
-	call Functioncae7
+	call AttemptToWaterfall
 	and $7f
 	ld [wd0ec], a
 	ret
 ; cae7
 
-Functioncae7: ; cae7
+AttemptToWaterfall: ; cae7
 ; Waterfall
 	ld de, ENGINE_RISINGBADGE
 	callba CheckBadge
 	ld a, $80
 	ret c
-	call Functioncb07
-	jr c, .asm_cb01
-	ld hl, UnknownScript_0xcb1c
-	call Function31cd
+	call CheckMapCanWaterfall
+	jr c, .failed
+	ld hl, Script_WaterfallFromMenu
+	call ExitMenuCallScript
 	ld a, $81
 	ret
 
-.asm_cb01
-	call Functionc779
+.failed
+	call FieldMoveFailed
 	ld a, $80
 	ret
 ; cb07
 
-Functioncb07: ; cb07
+CheckMapCanWaterfall: ; cb07
 	ld a, [PlayerDirection]
 	and $c
 	cp FACE_UP
-	jr nz, .asm_cb1a
+	jr nz, .failed
 	ld a, [TileUp]
 	call CheckWaterfallTile
-	jr nz, .asm_cb1a
+	jr nz, .failed
 	xor a
 	ret
 
-.asm_cb1a
+.failed
 	scf
 	ret
 ; cb1c
 
-UnknownScript_0xcb1c: ; 0xcb1c
+Script_WaterfallFromMenu: ; 0xcb1c
 	reloadmappart
 	special UpdateTimePals
 
-UnknownScript_0xcb20: ; 0xcb20
+Script_UsedWaterfall: ; 0xcb20
 	callasm GetPartyNick
 	writetext UnknownText_0xcb51
 	closetext
@@ -5390,12 +5302,12 @@
 	playsound SFX_BUBBLEBEAM
 .loop
 	applymovement $0, WaterfallStep
-	callasm Functioncb38
+	callasm CheckContinueWaterfall
 	iffalse .loop
 	end
 ; 0xcb38
 
-Functioncb38: ; cb38
+CheckContinueWaterfall: ; cb38
 	xor a
 	ld [ScriptVar], a
 	ld a, [StandingTile]
@@ -5420,27 +5332,27 @@
 TryWaterfallOW:: ; cb56
 	ld d, WATERFALL
 	call CheckPartyMove
-	jr c, .asm_cb74
+	jr c, .failed
 	ld de, ENGINE_RISINGBADGE
 	call CheckEngineFlag
-	jr c, .asm_cb74
-	call Functioncb07
-	jr c, .asm_cb74
-	ld a, BANK(UnknownScript_0xcb86)
-	ld hl, UnknownScript_0xcb86
+	jr c, .failed
+	call CheckMapCanWaterfall
+	jr c, .failed
+	ld a, BANK(Script_AskWaterfall)
+	ld hl, Script_AskWaterfall
 	call CallScript
 	scf
 	ret
 
-.asm_cb74
-	ld a, BANK(UnknownScript_0xcb7e)
-	ld hl, UnknownScript_0xcb7e
+.failed
+	ld a, BANK(Script_CantDoWaterfall)
+	ld hl, Script_CantDoWaterfall
 	call CallScript
 	scf
 	ret
 ; cb7e
 
-UnknownScript_0xcb7e: ; 0xcb7e
+Script_CantDoWaterfall: ; 0xcb7e
 	jumptext UnknownText_0xcb81
 ; 0xcb81
 
@@ -5449,11 +5361,11 @@
 	db "@"
 ; 0xcb86
 
-UnknownScript_0xcb86: ; 0xcb86
+Script_AskWaterfall: ; 0xcb86
 	loadfont
 	writetext UnknownText_0xcb90
 	yesorno
-	iftrue UnknownScript_0xcb20
+	iftrue Script_UsedWaterfall
 	loadmovesprites
 	end
 ; 0xcb90
@@ -5464,89 +5376,89 @@
 ; 0xcb95
 
 
-Functioncb95: ; cb95
-	call Functionc6ea
+EscapeRopeFunction: ; cb95
+	call ClearBuffer1
 	ld a, $1
-	jr asm_cba1
+	jr dig_incave
 
-Functioncb9c: ; cb9c
-	call Functionc6ea
+DigFunction: ; cb9c
+	call ClearBuffer1
 	ld a, $2
 
-asm_cba1
+dig_incave
 	ld [Buffer2], a
-.asm_cba4
-	ld hl, Tablecbb2
-	call Functionc6f5
-	jr nc, .asm_cba4
+.loop
+	ld hl, .DigTable
+	call FieldMoveJumptable
+	jr nc, .loop
 	and $7f
 	ld [wd0ec], a
 	ret
 ; cbb2
 
-Tablecbb2: ; cbb2
-	dw Functioncbb8
-	dw Functioncbd8
-	dw Functioncc06
+.DigTable: ; cbb2
+	dw .CheckCanDig
+	dw .DoDig
+	dw .FailDig
 ; cbb8
 
-Functioncbb8: ; cbb8
+.CheckCanDig: ; cbb8
 	call GetMapPermission
 	cp $4
-	jr z, .asm_cbc6
+	jr z, .incave
 	cp $7
-	jr z, .asm_cbc6
-.asm_cbc3
+	jr z, .incave
+.fail
 	ld a, $2
 	ret
 
-.asm_cbc6
+.incave
 	ld hl, wdca9
 	ld a, [hli]
 	and a
-	jr z, .asm_cbc3
+	jr z, .fail
 	ld a, [hli]
 	and a
-	jr z, .asm_cbc3
+	jr z, .fail
 	ld a, [hl]
 	and a
-	jr z, .asm_cbc3
+	jr z, .fail
 	ld a, $1
 	ret
 ; cbd8
 
-Functioncbd8: ; cbd8
+.DoDig: ; cbd8
 	ld hl, wdca9
 	ld de, wd146
-	ld bc, $0003
+	ld bc, 3
 	call CopyBytes
 	call GetPartyNick
 	ld a, [Buffer2]
 	cp $2
-	jr nz, .asm_cbf7
-	ld hl, UnknownScript_0xcc35
-	call Function31cd
+	jr nz, .escaperope
+	ld hl, UsedDigScript
+	call ExitMenuCallScript
 	ld a, $81
 	ret
 
-.asm_cbf7
-	callba Function8ae4e
-	ld hl, UnknownScript_0xcc2b
-	call Function31cd
+.escaperope
+	callba SpecialKabutoChamber
+	ld hl, UsedEscapeRopeScript
+	call ExitMenuCallScript
 	ld a, $81
 	ret
 ; cc06
 
-Functioncc06: ; cc06
+.FailDig: ; cc06
 	ld a, [Buffer2]
 	cp $2
-	jr nz, .asm_cc19
+	jr nz, .failescaperope
 	ld hl, UnknownText_0xcc26
-	call Function1d4f
+	call MenuTextBox
 	call Functiona80
-	call Function1c17
+	call WriteBackup
 
-.asm_cc19
+.failescaperope
 	ld a, $80
 	ret
 ; cc1c
@@ -5569,26 +5481,26 @@
 	db "@"
 ; 0xcc2b
 
-UnknownScript_0xcc2b: ; 0xcc2b
+UsedEscapeRopeScript: ; 0xcc2b
 	reloadmappart
 	special UpdateTimePals
 	writetext UnknownText_0xcc21
-	jump UnknownScript_0xcc3c
+	jump UsedDigOrEscapeRopeScript
 ; 0xcc35
 
-UnknownScript_0xcc35: ; 0xcc35
+UsedDigScript: ; 0xcc35
 	reloadmappart
 	special UpdateTimePals
 	writetext UnknownText_0xcc1c
 
-UnknownScript_0xcc3c: ; 0xcc3c
+UsedDigOrEscapeRopeScript: ; 0xcc3c
 	closetext
 	loadmovesprites
 	playsound SFX_WARP_TO
 	applymovement $0, MovementData_0xcc59
 	farscall UnknownScript_0x122c1
-	special Function97c28
-	writecode $8, $0
+	special WarpToSpawnPoint
+	writecode VAR_MOVEMENT, $0
 	newloadmap $f5
 	playsound SFX_WARP_FROM
 	applymovement $0, MovementData_0xcc5d
@@ -5603,62 +5515,62 @@
 ; 0xcc5d
 
 MovementData_0xcc5d: ; 0xcc5d
-	db $3c, $58
+	return_dig $58
 	turn_away_down
 	step_end
 ; 0xcc61
 
-Functioncc61: ; cc61
-	call Functionc6ea
-.asm_cc64
-	ld hl, Tablecc72
-	call Functionc6f5
-	jr nc, .asm_cc64
+TeleportFunction: ; cc61
+	call ClearBuffer1
+.loop
+	ld hl, .Jumptable
+	call FieldMoveJumptable
+	jr nc, .loop
 	and $7f
 	ld [wd0ec], a
 	ret
 ; cc72
 
-Tablecc72: ; cc72
-	dw Functioncc78
-	dw Functioncc9c
-	dw Functioncca8
+.Jumptable: ; cc72
+	dw .TryTeleport
+	dw .DoTeleport
+	dw .FailTeleport
 ; cc78
 
-Functioncc78: ; cc78
+.TryTeleport: ; cc78
 	call GetMapPermission
 	call CheckOutdoorMap
-	jr z, .asm_cc82
-	jr .asm_cc99
+	jr z, .CheckIfSpawnPoint
+	jr .nope
 
-.asm_cc82
+.CheckIfSpawnPoint
 	ld a, [wdcb2]
 	ld d, a
 	ld a, [wdcb3]
 	ld e, a
 	callba IsSpawnPoint
-	jr nc, .asm_cc99
+	jr nc, .nope
 	ld a, c
 	ld [wd001], a
 	ld a, $1
 	ret
 
-.asm_cc99
+.nope
 	ld a, $2
 	ret
 ; cc9c
 
-Functioncc9c: ; cc9c
+.DoTeleport: ; cc9c
 	call GetPartyNick
-	ld hl, UnknownScript_0xccbb
-	call Function31cd
+	ld hl, Script_UsedTeleport
+	call ExitMenuCallScript
 	ld a, $81
 	ret
 ; cca8
 
-Functioncca8: ; cca8
+.FailTeleport: ; cca8
 	ld hl, UnknownText_0xccb6
-	call Function1d67
+	call MenuTextBoxBackup
 	ld a, $80
 	ret
 ; ccb1
@@ -5675,7 +5587,7 @@
 	db "@"
 ; 0xccbb
 
-UnknownScript_0xccbb: ; 0xccbb
+Script_UsedTeleport: ; 0xccbb
 	reloadmappart
 	special UpdateTimePals
 	writetext UnknownText_0xccb1
@@ -5685,8 +5597,8 @@
 	playsound SFX_WARP_TO
 	applymovement $0, MovementData_0xcce1
 	farscall UnknownScript_0x122c1
-	special Function97c28
-	writecode $8, $0
+	special WarpToSpawnPoint
+	writecode VAR_MOVEMENT, $0
 	newloadmap $f4
 	playsound SFX_WARP_FROM
 	applymovement $0, MovementData_0xcce3
@@ -5703,24 +5615,24 @@
 	step_end
 ; cce5
 
-Functioncce5: ; cce5
-	call Functionccee
+StrengthFunction: ; cce5
+	call .TryStrength
 	and $7f
 	ld [wd0ec], a
 	ret
 ; ccee
 
-Functionccee: ; ccee
+.TryStrength: ; ccee
 ; Strength
 	ld de, ENGINE_PLAINBADGE
 	call CheckBadge
-	jr c, Functioncd06
-	jr Functioncd09
+	jr c, FailedStrength
+	jr StartToUseStrength
 ; ccf8
 
-Functionccf8: ; ccf8
+AlreadyUsingStrength: ; ccf8
 	ld hl, UnknownText_0xcd01
-	call Function1d67
+	call MenuTextBoxBackup
 	ld a, $80
 	ret
 ; cd01
@@ -5730,14 +5642,14 @@
 	db "@"
 ; 0xcd06
 
-Functioncd06: ; cd06
+FailedStrength: ; cd06
 	ld a, $80
 	ret
 ; cd09
 
-Functioncd09: ; cd09
-	ld hl, UnknownScript_0xcd29
-	call Function31cd
+StartToUseStrength: ; cd09
+	ld hl, Script_StrengthFromMenu
+	call ExitMenuCallScript
 	ld a, $81
 	ret
 ; cd12
@@ -5760,11 +5672,11 @@
 	ret
 ; cd29
 
-UnknownScript_0xcd29: ; 0xcd29
+Script_StrengthFromMenu: ; 0xcd29
 	reloadmappart
 	special UpdateTimePals
 
-UnknownScript_0xcd2d: ; 0xcd2d
+Script_UsedStrength: ; 0xcd2d
 	callasm Functioncd12
 	writetext UnknownText_0xcd41
 	copybytetovar wd1ef
@@ -5786,25 +5698,25 @@
 ; 0xcd4b
 
 AskStrengthScript:
-	callasm Functioncd78
-	iffalse UnknownScript_0xcd5f
-	if_equal $1, UnknownScript_0xcd59
-	jump UnknownScript_0xcd5c
+	callasm TryStrengthOW
+	iffalse .AskStrength
+	if_equal $1, .DontMeetRequirements
+	jump .AlreadyUsedStrength
 ; 0xcd59
 
-UnknownScript_0xcd59: ; 0xcd59
+.DontMeetRequirements: ; 0xcd59
 	jumptext UnknownText_0xcd73
 ; 0xcd5c
 
-UnknownScript_0xcd5c: ; 0xcd5c
+.AlreadyUsedStrength: ; 0xcd5c
 	jumptext UnknownText_0xcd6e
 ; 0xcd5f
 
-UnknownScript_0xcd5f: ; 0xcd5f
+.AskStrength: ; 0xcd5f
 	loadfont
 	writetext UnknownText_0xcd69
 	yesorno
-	iftrue UnknownScript_0xcd2d
+	iftrue Script_UsedStrength
 	loadmovesprites
 	end
 ; 0xcd69
@@ -5827,41 +5739,41 @@
 	db "@"
 ; 0xcd78
 
-Functioncd78: ; cd78
+TryStrengthOW: ; cd78
 	ld d, STRENGTH
 	call CheckPartyMove
-	jr c, .asm_cd92
+	jr c, .nope
 
 	ld de, ENGINE_PLAINBADGE
 	call CheckEngineFlag
-	jr c, .asm_cd92
+	jr c, .nope
 
 	ld hl, BikeFlags
 	bit 0, [hl]
-	jr z, .asm_cd96
+	jr z, .already_using
 
 	ld a, 2
-	jr .asm_cd99
+	jr .done
 
-.asm_cd92
+.nope
 	ld a, 1
-	jr .asm_cd99
+	jr .done
 
-.asm_cd96
+.already_using
 	xor a
-	jr .asm_cd99
+	jr .done
 
-.asm_cd99
+.done
 	ld [ScriptVar], a
 	ret
 ; cd9d
 
-Functioncd9d: ; cd9d
-	call Functionc6ea
-.asm_cda0
+WhirlpoolFunction: ; cd9d
+	call ClearBuffer1
+.loop
 	ld hl, Jumptable_cdae
-	call Functionc6f5
-	jr nc, .asm_cda0
+	call FieldMoveJumptable
+	jr nc, .loop
 	and $7f
 	ld [wd0ec], a
 	ret
@@ -5868,38 +5780,38 @@
 ; cdae
 
 Jumptable_cdae: ; cdae
-	dw Functioncdb4
-	dw Functioncdca
-	dw Functioncdd3
+	dw .TryWhirlpool
+	dw .DoWhirlpool
+	dw .FailWhirlpool
 ; cdb4
 
-Functioncdb4: ; cdb4
+.TryWhirlpool: ; cdb4
 	ld de, ENGINE_GLACIERBADGE
 	call CheckBadge
-	jr c, .asm_cdc7
-	call Functioncdde
-	jr c, .asm_cdc4
+	jr c, .noglacierbadge
+	call TryWhirlpoolMenu
+	jr c, .failed
 	ld a, $1
 	ret
 
-.asm_cdc4
+.failed
 	ld a, $2
 	ret
 
-.asm_cdc7
+.noglacierbadge
 	ld a, $80
 	ret
 ; cdca
 
-Functioncdca: ; cdca
-	ld hl, UnknownScript_0xce0b
-	call Function31cd
+.DoWhirlpool: ; cdca
+	ld hl, Script_WhirlpoolFromMenu
+	call ExitMenuCallScript
 	ld a, $81
 	ret
 ; cdd3
 
-Functioncdd3: ; cdd3
-	call Functionc779
+.FailWhirlpool: ; cdd3
+	call FieldMoveFailed
 	ld a, $80
 	ret
 ; cdd9
@@ -5910,20 +5822,20 @@
 	db "@"
 ; 0xcdde
 
-Functioncdde: ; cdde
+TryWhirlpoolMenu: ; cdde
 	call GetFacingTileCoord
 	ld c, a
 	push de
 	call CheckWhirlpoolTile
 	pop de
-	jr c, .asm_ce09
-	call Function2a66
+	jr c, .failed
+	call GetBlockLocation
 	ld c, [hl]
 	push hl
-	ld hl, Unknown_c8a4
-	call Functionc840
+	ld hl, WhirlpoolBlockPointers
+	call CheckOverworldTileArrays
 	pop hl
-	jr nc, .asm_ce09
+	jr nc, .failed
 	ld a, l
 	ld [wd1ec], a
 	ld a, h
@@ -5935,25 +5847,25 @@
 	xor a
 	ret
 
-.asm_ce09
+.failed
 	scf
 	ret
 ; ce0b
 
-UnknownScript_0xce0b: ; 0xce0b
+Script_WhirlpoolFromMenu: ; 0xce0b
 	reloadmappart
 	special UpdateTimePals
 
-UnknownScript_0xce0f: ; 0xce0f
+Script_UsedWhirlpool: ; 0xce0f
 	callasm GetPartyNick
 	writetext UnknownText_0xcdd9
 	reloadmappart
-	callasm Functionce1d
+	callasm DisappearWhirlpool
 	loadmovesprites
 	end
 ; 0xce1d
 
-Functionce1d: ; ce1d
+DisappearWhirlpool: ; ce1d
 	ld hl, wd1ec
 	ld a, [hli]
 	ld h, [hl]
@@ -5966,7 +5878,7 @@
 	ld a, [wd1ef]
 	ld e, a
 	callba Function8c7d4
-	call Function2879
+	call BufferScreen
 	call Function2914
 	ret
 ; ce3e
@@ -5974,27 +5886,27 @@
 TryWhirlpoolOW:: ; ce3e
 	ld d, WHIRLPOOL
 	call CheckPartyMove
-	jr c, .asm_ce5c
+	jr c, .failed
 	ld de, ENGINE_GLACIERBADGE
 	call CheckEngineFlag
-	jr c, .asm_ce5c
-	call Functioncdde
-	jr c, .asm_ce5c
-	ld a, BANK(UnknownScript_0xce6e)
-	ld hl, UnknownScript_0xce6e
+	jr c, .failed
+	call TryWhirlpoolMenu
+	jr c, .failed
+	ld a, BANK(Script_AskWhirlpoolOW)
+	ld hl, Script_AskWhirlpoolOW
 	call CallScript
 	scf
 	ret
 
-.asm_ce5c
-	ld a, BANK(UnknownScript_0xce66)
-	ld hl, UnknownScript_0xce66
+.failed
+	ld a, BANK(Script_MightyWhirlpool)
+	ld hl, Script_MightyWhirlpool
 	call CallScript
 	scf
 	ret
 ; ce66
 
-UnknownScript_0xce66: ; 0xce66
+Script_MightyWhirlpool: ; 0xce66
 	jumptext UnknownText_0xce69
 ; 0xce69
 
@@ -6003,11 +5915,11 @@
 	db "@"
 ; 0xce6e
 
-UnknownScript_0xce6e: ; 0xce6e
+Script_AskWhirlpoolOW: ; 0xce6e
 	loadfont
 	writetext UnknownText_0xce78
 	yesorno
-	iftrue UnknownScript_0xce0f
+	iftrue Script_UsedWhirlpool
 	loadmovesprites
 	end
 ; 0xce78
@@ -6018,25 +5930,25 @@
 ; 0xce7d
 
 
-Functionce7d: ; ce7d
-	call Functionce86
+HeadbuttFunction: ; ce7d
+	call TryHeadbuttFromMenu
 	and $7f
 	ld [wd0ec], a
 	ret
 ; ce86
 
-Functionce86: ; ce86
+TryHeadbuttFromMenu: ; ce86
 	call GetFacingTileCoord
 	call CheckHeadbuttTreeTile
 	jr nz, .no_tree
 
 	ld hl, HeadbuttFromMenuScript
-	call Function31cd
+	call ExitMenuCallScript
 	ld a, $81
 	ret
 
 .no_tree
-	call Functionc779
+	call FieldMoveFailed
 	ld a, $80
 	ret
 ; ce9d
@@ -6111,15 +6023,15 @@
 ; 0xceeb
 
 
-Functionceeb: ; ceeb
-	call Functioncef4
+RockSmashFunction: ; ceeb
+	call TryRockSmashFromMenu
 	and $7f
 	ld [wd0ec], a
 	ret
 ; cef4
 
-Functioncef4: ; cef4
-	call Functioncf0d
+TryRockSmashFromMenu: ; cef4
+	call GetFacingObject
 	jr c, .no_rock
 	ld a, d
 	cp $18
@@ -6126,28 +6038,28 @@
 	jr nz, .no_rock
 
 	ld hl, RockSmashFromMenuScript
-	call Function31cd
+	call ExitMenuCallScript
 	ld a, $81
 	ret
 
 .no_rock
-	call Functionc779
+	call FieldMoveFailed
 	ld a, $80
 	ret
 ; cf0d
 
-Functioncf0d: ; cf0d
+GetFacingObject: ; cf0d
 	callba CheckFacingObject
-	jr nc, .asm_cf2c
+	jr nc, .fail
 
 	ld a, [$ffb0]
-	call Function1ae5
-	ld hl, $0001
+	call GetObjectStruct
+	ld hl, OBJECT_MAP_OBJECT_INDEX
 	add hl, bc
 	ld a, [hl]
 	ld [$ffe0], a
 	call GetMapObject
-	ld hl, $0004
+	ld hl, MAPOBJECT_FACING
 	add hl, bc
 	ld a, [hl]
 	ld d, a
@@ -6154,7 +6066,7 @@
 	and a
 	ret
 
-.asm_cf2c
+.fail
 	scf
 	ret
 ; cf2e
@@ -6171,7 +6083,7 @@
 	playsound SFX_STRENGTH
 	earthquake 84
 	applymovement2 MovementData_0xcf55
-	disappear $fe
+	disappear -2
 
 	callasm RockMonEncounter
 	copybytetovar wd22e
@@ -6233,52 +6145,52 @@
 	ret
 
 
-Functioncf8e: ; cf8e
+FishFunction: ; cf8e
 	ld a, e
 	push af
-	call Functionc6ea
+	call ClearBuffer1
 	pop af
 	ld [Buffer2], a
-.asm_cf97
-	ld hl, Jumptable_cfa5
-	call Functionc6f5
-	jr nc, .asm_cf97
+.loop
+	ld hl, .FishTable
+	call FieldMoveJumptable
+	jr nc, .loop
 	and $7f
 	ld [wd0ec], a
 	ret
 ; cfa5
 
-Jumptable_cfa5: ; cfa5
-	dw Functioncfaf
-	dw Functiond002
-	dw Functioncff4
-	dw Functioncff1
-	dw Functiond010
+.FishTable: ; cfa5
+	dw .TryFish
+	dw .FishNoBite
+	dw .FishGotSomething
+	dw .SurfingFish
+	dw .FailFish
 ; cfaf
 
-Functioncfaf: ; cfaf
+.TryFish: ; cfaf
 	ld a, [PlayerState]
 	cp PLAYER_SURF
-	jr z, .asm_cfc4
+	jr z, .surfing
 	cp PLAYER_SURF_PIKA
-	jr z, .asm_cfc4
+	jr z, .surfing
 	call GetFacingTileCoord
 	call GetTileCollision
 	cp $1
-	jr z, .asm_cfc7
+	jr z, .facingwater
 
-.asm_cfc4
+.surfing
 	ld a, $3
 	ret
 
-.asm_cfc7
+.facingwater
 	call Function2d19
 	and a
-	jr nz, .asm_cfd0
+	jr nz, .goodtofish
 	ld a, $4
 	ret
 
-.asm_cfd0
+.goodtofish
 	ld d, a
 	ld a, [Buffer2]
 	ld e, a
@@ -6285,7 +6197,7 @@
 	callba FishAction
 	ld a, d
 	and a
-	jr z, .asm_cfee
+	jr z, .nonibble
 	ld [wd22e], a
 	ld a, e
 	ld [CurPartyLevel], a
@@ -6294,76 +6206,76 @@
 	ld a, $2
 	ret
 
-.asm_cfee
+.nonibble
 	ld a, $1
 	ret
 ; cff1
 
-Functioncff1: ; cff1
+.SurfingFish: ; cff1
 	ld a, $80
 	ret
 ; cff4
 
-Functioncff4: ; cff4
+.FishGotSomething: ; cff4
 	ld a, $1
 	ld [wd1ef], a
-	ld hl, UnknownScript_0xd035
-	call Function31cd
+	ld hl, Script_GotABite
+	call ExitMenuCallScript
 	ld a, $81
 	ret
 ; d002
 
-Functiond002: ; d002
+.FishNoBite: ; d002
 	ld a, $2
 	ld [wd1ef], a
-	ld hl, UnknownScript_0xd01e
-	call Function31cd
+	ld hl, Script_NotEvenANibble
+	call ExitMenuCallScript
 	ld a, $81
 	ret
 ; d010
 
-Functiond010: ; d010
+.FailFish: ; d010
 	ld a, $0
 	ld [wd1ef], a
-	ld hl, UnknownScript_0xd027
-	call Function31cd
+	ld hl, Script_NotEvenANibble2
+	call ExitMenuCallScript
 	ld a, $81
 	ret
 ; d01e
 
-UnknownScript_0xd01e: ; 0xd01e
-	scall UnknownScript_0xd07c
+Script_NotEvenANibble: ; 0xd01e
+	scall Script_FishCastRod
 	writetext UnknownText_0xd0a9
-	jump UnknownScript_0xd02d
+	jump Script_NotEvenANibble_FallThrough
 ; 0xd027
 
-UnknownScript_0xd027: ; 0xd027
-	scall UnknownScript_0xd07c
+Script_NotEvenANibble2: ; 0xd027
+	scall Script_FishCastRod
 	writetext UnknownText_0xd0a9
 
-UnknownScript_0xd02d: ; 0xd02d
+Script_NotEvenANibble_FallThrough: ; 0xd02d
 	loademote $8
-	callasm Functiond095
+	callasm PutTheRodAway
 	loadmovesprites
 	end
 ; 0xd035
 
-UnknownScript_0xd035: ; 0xd035
-	scall UnknownScript_0xd07c
-	callasm Functiond06c
-	iffalse UnknownScript_0xd046
+Script_GotABite: ; 0xd035
+	scall Script_FishCastRod
+	callasm Fishing_CheckFacingUp
+	iffalse .FacingUp
 	applymovement $0, MovementData_0xd062
-	jump UnknownScript_0xd04a
+	jump .FightTheHookedPokemon
 ; 0xd046
 
-UnknownScript_0xd046: ; 0xd046
+.FacingUp: ; 0xd046
 	applymovement $0, MovementData_0xd05c
 
-UnknownScript_0xd04a: ; 0xd04a
+.FightTheHookedPokemon: ; 0xd04a
 	pause 40
 	applymovement $0, MovementData_0xd069
 	writetext UnknownText_0xd0a4
-	callasm Functiond095
+	callasm PutTheRodAway
 	loadmovesprites
 	battlecheck
 	startbattle
@@ -6372,19 +6284,19 @@
 ; 0xd05c
 
 MovementData_0xd05c: ; d05c
-	db $51
-	db $51
-	db $51
-	db $51
+	fish_got_bite
+	fish_got_bite
+	fish_got_bite
+	fish_got_bite
 	show_emote
 	step_end
 ; d062
 
 MovementData_0xd062: ; d062
-	db $51
-	db $51
-	db $51
-	db $51
+	fish_got_bite
+	fish_got_bite
+	fish_got_bite
+	fish_got_bite
 	show_person
 	show_emote
 	step_end
@@ -6392,24 +6304,24 @@
 
 MovementData_0xd069: ; d069
 	hide_emote
-	db $52
+	fish_got_bite_2
 	step_end
 ; d06c
 
-Functiond06c: ; d06c
+Fishing_CheckFacingUp: ; d06c
 	ld a, [PlayerDirection]
 	and $c
 	cp $4
 	ld a, $1
-	jr z, .asm_d078
+	jr z, .up
 	xor a
 
-.asm_d078
+.up
 	ld [ScriptVar], a
 	ret
 ; d07c
 
-UnknownScript_0xd07c: ; 0xd07c
+Script_FishCastRod: ; 0xd07c
 	reloadmappart
 	loadvar $ffd4, $0
 	special UpdateTimePals
@@ -6426,13 +6338,13 @@
 	step_end
 ; d095
 
-Functiond095: ; d095
+PutTheRodAway: ; d095
 	xor a
 	ld [hBGMapMode], a
 	ld a, $1
 	ld [PlayerAction], a
-	call Function1ad2
-	call Functione4a
+	call DrawOnMap
+	call Special_ReplaceKrisSprite
 	ret
 ; d0a4
 
@@ -6454,28 +6366,28 @@
 	db "@"
 ; 0xd0b3
 
-Functiond0b3: ; d0b3
-	call Functiond0bc
+BikeFunction: ; d0b3
+	call .TryBike
 	and $7f
 	ld [wd0ec], a
 	ret
 ; d0bc
 
-Functiond0bc: ; d0bc
-	call Functiond121
-	jr c, .asm_d110
+.TryBike: ; d0bc
+	call .CheckEnvironment
+	jr c, .CannotUseBike
 	ld a, [PlayerState]
 	cp PLAYER_NORMAL
-	jr z, .asm_d0ce
+	jr z, .GetOnBike
 	cp PLAYER_BIKE
-	jr z, .asm_d0f7
-	jr .asm_d110
+	jr z, .GetOffBike
+	jr .CannotUseBike
 
-.asm_d0ce
-	ld hl, UnknownScript_0xd13e
-	ld de, UnknownScript_0xd14e
-	call Functiond119
-	call Function31cd
+.GetOnBike
+	ld hl, Script_GetOnBike
+	ld de, Script_GetOnBike_Register
+	call .CheckIfRegistered
+	call ExitMenuCallScript
 	xor a
 	ld [MusicFade], a
 	ld de, MUSIC_NONE
@@ -6489,31 +6401,31 @@
 	ld a, $1
 	ret
 
-.asm_d0f7
+.GetOffBike
 	ld hl, BikeFlags
 	bit 1, [hl]
-	jr nz, .asm_d10b
-	ld hl, UnknownScript_0xd158
-	ld de, UnknownScript_0xd16b
-	call Functiond119
+	jr nz, .CantGetOffBike
+	ld hl, Script_GetOffBike
+	ld de, Script_GetOffBike_Register
+	call .CheckIfRegistered
 	ld a, $3
-	jr .asm_d113
+	jr .done
 
-.asm_d10b
+.CantGetOffBike
 	ld hl, UnknownScript_0xd171
-	jr .asm_d113
+	jr .done
 
-.asm_d110
+.CannotUseBike
 	ld a, $0
 	ret
 
-.asm_d113
-	call Function31cd
+.done
+	call ExitMenuCallScript
 	ld a, $1
 	ret
 ; d119
 
-Functiond119: ; d119
+.CheckIfRegistered: ; d119
 	ld a, [wd0ef]
 	and a
 	ret z
@@ -6522,43 +6434,43 @@
 	ret
 ; d121
 
-Functiond121: ; d121
+.CheckEnvironment: ; d121
 	call GetMapPermission
 	call CheckOutdoorMap
-	jr z, .asm_d133
+	jr z, .ok
 	cp CAVE
-	jr z, .asm_d133
+	jr z, .ok
 	cp GATE
-	jr z, .asm_d133
-	jr .asm_d13c
+	jr z, .ok
+	jr .nope
 
-.asm_d133
+.ok
 	call Function184a
 	and $f
-	jr nz, .asm_d13c
+	jr nz, .nope
 	xor a
 	ret
 
-.asm_d13c
+.nope
 	scf
 	ret
 ; d13e
 
-UnknownScript_0xd13e: ; 0xd13e
+Script_GetOnBike: ; 0xd13e
 	reloadmappart
 	special UpdateTimePals
-	writecode $8, $1
+	writecode VAR_MOVEMENT, $1
 	writetext UnknownText_0xd17c
 	closetext
 	loadmovesprites
-	special Functione4a
+	special Special_ReplaceKrisSprite
 	end
 ; 0xd14e
 
-UnknownScript_0xd14e: ; 0xd14e
-	writecode $8, $1
+Script_GetOnBike_Register: ; 0xd14e
+	writecode VAR_MOVEMENT, $1
 	loadmovesprites
-	special Functione4a
+	special Special_ReplaceKrisSprite
 	end
 ; 0xd156
 
@@ -6566,22 +6478,22 @@
 	nop
 	ret
 
-UnknownScript_0xd158: ; 0xd158
+Script_GetOffBike: ; 0xd158
 	reloadmappart
 	special UpdateTimePals
-	writecode $8, $0
+	writecode VAR_MOVEMENT, $0
 	writetext UnknownText_0xd181
 	closetext
 
 UnknownScript_0xd163:
 	loadmovesprites
-	special Functione4a
+	special Special_ReplaceKrisSprite
 	special PlayMapMusic
 	end
 ; 0xd16b
 
-UnknownScript_0xd16b: ; 0xd16b
-	writecode $8, $0
+Script_GetOffBike_Register: ; 0xd16b
+	writecode VAR_MOVEMENT, $0
 	jump UnknownScript_0xd163
 ; 0xd171
 
@@ -6639,17 +6551,17 @@
 	writetext UnknownText_0xd1c8
 	yesorno
 	iffalse .script_d1b8
-	callasm Functiond1ba
-	iftrue UnknownScript_0xc802
+	callasm .CheckMap
+	iftrue Script_Cut
 .script_d1b8
 	loadmovesprites
 	end
 ; 0xd1ba
 
-Functiond1ba: ; d1ba
+.CheckMap: ; d1ba
 	xor a
 	ld [ScriptVar], a
-	call Functionc7ce
+	call CheckMapForSomethingToCut
 	ret c
 	ld a, 1
 	ld [ScriptVar], a
@@ -6672,54 +6584,54 @@
 
 
 _ReceiveItem:: ; d1d5
-	call Functiond27b
-	jp nz, Functiond29c
+	call CheckHLequTMsHMsEnd
+	jp nz, PutItemInPocket
 	push hl
 	call CheckItemPocket
 	pop de
 	ld a, [wd142]
 	dec a
-	ld hl, Tabled1e9
+	ld hl, .Pockets
 	rst JumpTable
 	ret
 ; d1e9
 
-Tabled1e9: ; d1e9
-	dw Functiond1f1
-	dw Functiond1f6
-	dw Functiond1fb
-	dw Functiond201
+.Pockets: ; d1e9
+	dw .Item
+	dw .KeyItem
+	dw .Ball
+	dw .TMHM
 ; d1f1
 
-Functiond1f1: ; d1f1
+.Item: ; d1f1
 	ld h, d
 	ld l, e
-	jp Functiond29c
+	jp PutItemInPocket
 ; d1f6
 
-Functiond1f6: ; d1f6
+.KeyItem: ; d1f6
 	ld h, d
 	ld l, e
-	jp Functiond35a
+	jp ReceiveKeyItem
 ; d1fb
 
-Functiond1fb: ; d1fb
+.Ball: ; d1fb
 	ld hl, NumBalls
-	jp Functiond29c
+	jp PutItemInPocket
 ; d201
 
-Functiond201: ; d201
+.TMHM: ; d201
 	ld h, d
 	ld l, e
 	ld a, [CurItem]
 	ld c, a
 	call GetTMHMNumber
-	jp Functiond3c4
+	jp ReceiveTMHM
 ; d20d
 
 
 _TossItem:: ; d20d
-	call Functiond27b
+	call CheckHLequTMsHMsEnd
 	jr nz, .asm_d241
 	push hl
 	call CheckItemPocket
@@ -6726,11 +6638,11 @@
 	pop de
 	ld a, [wd142]
 	dec a
-	ld hl, .data_d220
+	ld hl, .Pockets
 	rst JumpTable
 	ret
 
-.data_d220
+.Pockets
 	dw .Item
 	dw .KeyItem
 	dw .Ball
@@ -6739,7 +6651,7 @@
 
 .Ball ; d228
 	ld hl, NumBalls
-	jp Functiond2ff
+	jp RemoveItemFromPocket
 ; d22e
 
 .TMHM ; d22e
@@ -6748,13 +6660,13 @@
 	ld a, [CurItem]
 	ld c, a
 	call GetTMHMNumber
-	jp Functiond3d8
+	jp TossTMHM
 ; d23a
 
 .KeyItem ; d23a
 	ld h, d
 	ld l, e
-	jp Functiond374
+	jp TossKeyItem
 ; d23f
 
 .Item ; d23f
@@ -6763,11 +6675,11 @@
 ; d241
 
 .asm_d241
-	jp Functiond2ff
+	jp RemoveItemFromPocket
 ; d244
 
 _CheckItem:: ; d244
-	call Functiond27b
+	call CheckHLequTMsHMsEnd
 	jr nz, .asm_d278
 	push hl
 	call CheckItemPocket
@@ -6774,11 +6686,11 @@
 	pop de
 	ld a, [wd142]
 	dec a
-	ld hl, .data_d257
+	ld hl, .Pockets
 	rst JumpTable
 	ret
 
-.data_d257
+.Pockets
 	dw .Item
 	dw .KeyItem
 	dw .Ball
@@ -6787,7 +6699,7 @@
 
 .Ball ; d25f
 	ld hl, NumBalls
-	jp Functiond349
+	jp CheckTheItem
 ; d265
 
 .TMHM ; d265
@@ -6796,13 +6708,13 @@
 	ld a, [CurItem]
 	ld c, a
 	call GetTMHMNumber
-	jp Functiond3fb
+	jp CheckTMHM
 ; d271
 
 .KeyItem ; d271
 	ld h, d
 	ld l, e
-	jp Functiond3b1
+	jp CheckKeyItems
 ; d276
 
 .Item ; d276
@@ -6811,10 +6723,10 @@
 ; d278
 
 .asm_d278
-	jp Functiond349
+	jp CheckTheItem
 ; d27b
 
-Functiond27b: ; d27b
+CheckHLequTMsHMsEnd: ; d27b
 	ld a, l
 	cp TMsHMsEnd % $100
 	ret nz
@@ -6823,30 +6735,30 @@
 	ret
 ; d283
 
-Functiond283: ; d283
-	ld c, 20
+GetPocketCapacity: ; d283
+	ld c, MAX_ITEMS
 	ld a, e
-	cp TMsHMsEnd % $100
+	cp NumItems % $100
 	jr nz, .asm_d28e
 	ld a, d
-	cp TMsHMsEnd / $100
+	cp NumItems / $100
 	ret z
 
 .asm_d28e
-	ld c, 50
+	ld c, MAX_PC_ITEMS
 	ld a, e
-	cp BallsEnd % $100
+	cp PCItems % $100
 	jr nz, .asm_d299
 	ld a, d
-	cp BallsEnd / $100
+	cp PCItems / $100
 	ret z
 
 .asm_d299
-	ld c, $c
+	ld c, MAX_BALLS
 	ret
 ; d29c
 
-Functiond29c: ; d29c
+PutItemInPocket: ; d29c
 	ld d, h
 	ld e, l
 	inc hl
@@ -6853,34 +6765,34 @@
 	ld a, [CurItem]
 	ld c, a
 	ld b, 0
-.asm_d2a5
+.loop
 	ld a, [hli]
-	cp $ff
-	jr z, .asm_d2bd
+	cp -1
+	jr z, .terminator
 	cp c
-	jr nz, .asm_d2ba
-	ld a, $63
+	jr nz, .next
+	ld a, 99
 	sub [hl]
 	add b
 	ld b, a
 	ld a, [wd10c]
 	cp b
-	jr z, .asm_d2c6
-	jr c, .asm_d2c6
+	jr z, .ok
+	jr c, .ok
 
-.asm_d2ba
+.next
 	inc hl
-	jr .asm_d2a5
+	jr .loop
 
-.asm_d2bd
-	call Functiond283
+.terminator
+	call GetPocketCapacity
 	ld a, [de]
 	cp c
-	jr c, .asm_d2c6
+	jr c, .ok
 	and a
 	ret
 
-.asm_d2c6
+.ok
 	ld h, d
 	ld l, e
 	ld a, [CurItem]
@@ -6887,43 +6799,43 @@
 	ld c, a
 	ld a, [wd10c]
 	ld [wd10d], a
-.asm_d2d2
+.loop2
 	inc hl
 	ld a, [hli]
-	cp $ff
-	jr z, .asm_d2ef
+	cp -1
+	jr z, .terminator2
 	cp c
-	jr nz, .asm_d2d2
+	jr nz, .loop2
 	ld a, [wd10d]
 	add [hl]
-	cp $64
-	jr nc, .asm_d2e6
+	cp 100
+	jr nc, .newstack
 	ld [hl], a
-	jr .asm_d2fd
+	jr .done
 
-.asm_d2e6
-	ld [hl], $63
-	sub $63
+.newstack
+	ld [hl], 99
+	sub 99
 	ld [wd10d], a
-	jr .asm_d2d2
+	jr .loop2
 
-.asm_d2ef
+.terminator2
 	dec hl
 	ld a, [CurItem]
 	ld [hli], a
 	ld a, [wd10d]
 	ld [hli], a
-	ld [hl], $ff
+	ld [hl], -1
 	ld h, d
 	ld l, e
 	inc [hl]
 
-.asm_d2fd
+.done
 	scf
 	ret
 ; d2ff
 
-Functiond2ff: ; d2ff
+RemoveItemFromPocket: ; d2ff
 	ld d, h
 	ld e, l
 	ld a, [hli]
@@ -6930,150 +6842,152 @@
 	ld c, a
 	ld a, [wd107]
 	cp c
-	jr nc, .asm_d318
+	jr nc, .ok
 	ld c, a
 	ld b, $0
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [CurItem]
 	cp [hl]
 	inc hl
-	jr z, .asm_d327
+	jr z, .skip
 	ld h, d
 	ld l, e
 	inc hl
 
-.asm_d318
+.ok
 	ld a, [CurItem]
 	ld b, a
-.asm_d31c
+.loop
 	ld a, [hli]
 	cp b
-	jr z, .asm_d327
-	cp $ff
-	jr z, .asm_d347
+	jr z, .skip
+	cp -1
+	jr z, .nope
 	inc hl
-	jr .asm_d31c
+	jr .loop
 
-.asm_d327
+.skip
 	ld a, [wd10c]
 	ld b, a
 	ld a, [hl]
 	sub b
-	jr c, .asm_d347
+	jr c, .nope
 	ld [hl], a
 	ld [wd10d], a
 	and a
-	jr nz, .asm_d345
+	jr nz, .yup
 	dec hl
 	ld b, h
 	ld c, l
+rept 2
 	inc hl
-	inc hl
-.asm_d33b
+endr
+.loop2
 	ld a, [hli]
 	ld [bc], a
 	inc bc
-	cp $ff
-	jr nz, .asm_d33b
+	cp -1
+	jr nz, .loop2
 	ld h, d
 	ld l, e
 	dec [hl]
 
-.asm_d345
+.yup
 	scf
 	ret
 
-.asm_d347
+.nope
 	and a
 	ret
 ; d349
 
-Functiond349: ; d349
+CheckTheItem: ; d349
 	ld a, [CurItem]
 	ld c, a
-.asm_d34d
+.loop
 	inc hl
 	ld a, [hli]
-	cp $ff
-	jr z, .asm_d358
+	cp -1
+	jr z, .done
 	cp c
-	jr nz, .asm_d34d
+	jr nz, .loop
 	scf
 	ret
 
-.asm_d358
+.done
 	and a
 	ret
 ; d35a
 
-Functiond35a: ; d35a
+ReceiveKeyItem: ; d35a
 	ld hl, NumKeyItems
 	ld a, [hli]
-	cp $19
-	jr nc, .asm_d372
+	cp MAX_KEY_ITEMS
+	jr nc, .nope
 	ld c, a
-	ld b, $0
+	ld b, 0
 	add hl, bc
 	ld a, [CurItem]
 	ld [hli], a
-	ld [hl], $ff
+	ld [hl], -1
 	ld hl, NumKeyItems
 	inc [hl]
 	scf
 	ret
 
-.asm_d372
+.nope
 	and a
 	ret
 ; d374
 
-Functiond374: ; d374
+TossKeyItem: ; d374
 	ld a, [wd107]
 	ld e, a
-	ld d, $0
+	ld d, 0
 	ld hl, NumKeyItems
 	ld a, [hl]
 	cp e
-	jr nc, .asm_d387
-	call Functiond396
+	jr nc, .ok
+	call .Toss
 	ret nc
-	jr .asm_d38a
+	jr .ok2
 
-.asm_d387
+.ok
 	dec [hl]
 	inc hl
 	add hl, de
 
-.asm_d38a
+.ok2
 	ld d, h
 	ld e, l
 	inc hl
-.asm_d38d
+.loop
 	ld a, [hli]
 	ld [de], a
 	inc de
-	cp $ff
-	jr nz, .asm_d38d
+	cp -1
+	jr nz, .loop
 	scf
 	ret
 ; d396
 
-Functiond396: ; d396
+.Toss: ; d396
 	ld hl, NumKeyItems
 	ld a, [CurItem]
 	ld c, a
-.asm_d39d
+.loop3
 	inc hl
 	ld a, [hl]
 	cp c
-	jr z, .asm_d3a8
-	cp $ff
-	jr nz, .asm_d39d
+	jr z, .ok3
+	cp -1
+	jr nz, .loop3
 	xor a
 	ret
 
-.asm_d3a8
+.ok3
 	ld a, [NumKeyItems]
 	dec a
 	ld [NumKeyItems], a
@@ -7081,20 +6995,20 @@
 	ret
 ; d3b1
 
-Functiond3b1: ; d3b1
+CheckKeyItems: ; d3b1
 	ld a, [CurItem]
 	ld c, a
 	ld hl, KeyItems
-.asm_d3b8
+.loop
 	ld a, [hli]
 	cp c
-	jr z, .asm_d3c2
-	cp $ff
-	jr nz, .asm_d3b8
+	jr z, .done
+	cp -1
+	jr nz, .loop
 	and a
 	ret
 
-.asm_d3c2
+.done
 	scf
 	ret
 ; d3c4
@@ -7101,27 +7015,27 @@
 
 
 
-Functiond3c4: ; d3c4
+ReceiveTMHM: ; d3c4
 	dec c
-	ld b, $0
+	ld b, 0
 	ld hl, TMsHMs
 	add hl, bc
 	ld a, [wd10c]
 	add [hl]
-	cp $64
-	jr nc, .asm_d3d6
+	cp 100
+	jr nc, .toomany
 	ld [hl], a
 	scf
 	ret
 
-.asm_d3d6
+.toomany
 	and a
 	ret
 ; d3d8
 
-Functiond3d8: ; d3d8
+TossTMHM: ; d3d8
 	dec c
-	ld b, $0
+	ld b, 0
 	ld hl, TMsHMs
 	add hl, bc
 	ld a, [wd10c]
@@ -7128,26 +7042,26 @@
 	ld b, a
 	ld a, [hl]
 	sub b
-	jr c, .asm_d3f9
+	jr c, .nope
 	ld [hl], a
 	ld [wd10d], a
-	jr nz, .asm_d3f7
+	jr nz, .yup
 	ld a, [wd0e2]
 	and a
-	jr z, .asm_d3f7
+	jr z, .yup
 	dec a
 	ld [wd0e2], a
 
-.asm_d3f7
+.yup
 	scf
 	ret
 
-.asm_d3f9
+.nope
 	and a
 	ret
 ; d3fb
 
-Functiond3fb: ; d3fb
+CheckTMHM: ; d3fb
 	dec c
 	ld b, $0
 	ld hl, TMsHMs
@@ -7176,7 +7090,7 @@
 .skip
 	dec a
 .done
-	sub TM_01
+	sub TM01
 	inc a
 	ld c, a
 	ret
@@ -7186,12 +7100,12 @@
 GetNumberedTMHM: ; d417
 ; Return the item id of a TM/HM by number c.
 
-	ld a, c 
+	ld a, c
 
 ; Skip any gaps.
-	cp ITEM_C3 - (TM_01 - 1)
+	cp ITEM_C3 - (TM01 - 1)
 	jr c, .done
-	cp ITEM_DC - (TM_01 - 1) - 1
+	cp ITEM_DC - (TM01 - 1) - 1
 	jr c, .skip_one
 
 .skip_two
@@ -7199,7 +7113,7 @@
 .skip_one
 	inc a
 .done
-	add TM_01
+	add TM01
 	dec a
 	ld c, a
 	ret
@@ -7208,7 +7122,7 @@
 
 _CheckTossableItem:: ; d427
 ; Return 1 in wd142 and carry if CurItem can't be removed from the bag.
-	ld a, 4
+	ld a, ITEMATTR_PERMISSIONS
 	call GetItemAttr
 	bit 7, a
 	jr nz, Functiond47f
@@ -7218,7 +7132,7 @@
 
 CheckSelectableItem: ; d432
 ; Return 1 in wd142 and carry if CurItem can't be selected.
-	ld a, 4
+	ld a, ITEMATTR_PERMISSIONS
 	call GetItemAttr
 	bit 6, a
 	jr nz, Functiond47f
@@ -7228,7 +7142,7 @@
 
 CheckItemPocket:: ; d43d
 ; Return the pocket for CurItem in wd142.
-	ld a, 5
+	ld a, ITEMATTR_POCKET
 	call GetItemAttr
 	and $f
 	ld [wd142], a
@@ -7237,7 +7151,7 @@
 
 CheckItemContext: ; d448
 ; Return the context for CurItem in wd142.
-	ld a, 6
+	ld a, ITEMATTR_HELP
 	call GetItemAttr
 	and $f
 	ld [wd142], a
@@ -7246,7 +7160,7 @@
 
 CheckItemMenu: ; d453
 ; Return the menu for CurItem in wd142.
-	ld a, 6
+	ld a, ITEMATTR_HELP
 	call GetItemAttr
 	swap a
 	and $f
@@ -7271,7 +7185,7 @@
 	ld a, [CurItem]
 	dec a
 	ld c, a
-	ld a, 7
+	ld a, NUM_ITEMATTRS
 	call AddNTimes
 	ld a, BANK(ItemAttributes)
 	call GetFarByte
@@ -7293,10 +7207,10 @@
 ; Return the price of CurItem in de.
 	push hl
 	push bc
-	ld a, $0
+	ld a, ITEMATTR_PRICE
 	call GetItemAttr
 	ld e, a
-	ld a, $1
+	ld a, ITEMATTR_PRICE_HI
 	call GetItemAttr
 	ld d, a
 	pop bc
@@ -7364,7 +7278,7 @@
 
 Jumptable_d4f2: ; d4f2 (3:54f2)
 	dw Function2914
-	dw Function2879
+	dw BufferScreen
 	dw Functiond509
 	dw Functiond510
 	dw Functiond508
@@ -7833,9 +7747,10 @@
 .asm_d795
 	push hl
 	add hl, de
-	ld a, $7f
+	ld a, " "
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ld [hld], a
 	dec hl
 	ld a, [wd1ec]
@@ -8118,10 +8033,9 @@
 
 .asm_d950
 	pop de
+rept 4
 	inc de
-	inc de
-	inc de
-	inc de
+endr
 	ld a, [PlayerID]
 	ld [de], a
 	inc de
@@ -8188,15 +8102,15 @@
 	inc de
 	push hl
 	push de
+rept 2
 	inc hl
-	inc hl
+endr
 	call FillPP
 	pop de
 	pop hl
+rept 4
 	inc de
-	inc de
-	inc de
-	inc de
+endr
 	ld a, $46
 	ld [de], a
 	inc de
@@ -8610,8 +8524,9 @@
 	ld a, [CurPartySpecies]
 	cp EGG
 	jr z, .asm_dc9e
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [hli]
 	ld [de], a
 	ld a, [hl]
@@ -9359,8 +9274,9 @@
 	ld a, c
 	cp $6
 	jr nz, .asm_e193
+rept 2
 	dec hl
-	dec hl
+endr
 
 .asm_e193
 	sla c
@@ -9397,14 +9313,15 @@
 	ld a, [hl]
 	swap a
 	and $1
+rept 3
 	add a
-	add a
-	add a
+endr
 	ld b, a
 	ld a, [hli]
 	and $1
+rept 2
 	add a
-	add a
+endr
 	add b
 	ld b, a
 	ld a, [hl]
@@ -9529,7 +9446,7 @@
 	ret
 ; e277
 
-Functione277:: ; e277
+GivePoke:: ; e277
 	push de
 	push bc
 	xor a
@@ -9606,8 +9523,9 @@
 	ld a, [ScriptBank]
 	call FarCopyBytes
 	pop hl
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [ScriptBank]
 	call GetFarHalfword
 	pop bc
@@ -9751,7 +9669,7 @@
 	and a
 	ret nz
 	ld hl, UnknownText_0xe417
-	call Function1d67
+	call MenuTextBoxBackup
 	scf
 	ret
 ; e417 (3:6417)
@@ -9810,7 +9728,7 @@
 	ld a, b
 	jr nc, .asm_e44b
 .asm_e46b
-	call Function1c17
+	call WriteBackup
 	ret
 ; e46f (3:646f)
 
@@ -9876,7 +9794,7 @@
 	call ClearPCItemScreen
 
 .asm_e4f4
-	call Function1c17
+	call WriteBackup
 	and a
 	ret
 ; e4f9
@@ -9892,7 +9810,7 @@
 	callba Functione2391
 	call Function222a
 	call ClearPCItemScreen
-	call Function1c17
+	call WriteBackup
 	and a
 	ret
 ; e512 (3:6512)
@@ -9908,13 +9826,13 @@
 
 .asm_e51e
 	ld hl, UnknownText_0xe52e
-	call Function1d67
+	call MenuTextBoxBackup
 	scf
 	ret
 
 .asm_e526
 	ld hl, UnknownText_0xe533
-	call Function1d67
+	call MenuTextBoxBackup
 	scf
 	ret
 ; e52e
@@ -9968,7 +9886,7 @@
 	callba Functione2583
 	call Function222a
 	call ClearPCItemScreen
-	call Function1c17
+	call WriteBackup
 	and a
 	ret
 ; e56d (3:656d)
@@ -9982,7 +9900,7 @@
 
 .asm_e576
 	ld hl, UnknownText_0xe57e
-	call Function1d67
+	call MenuTextBoxBackup
 	scf
 	ret
 ; e57e
@@ -10004,8 +9922,8 @@
 	ld [hBGMapMode], a
 	call WhiteBGMap
 	call ClearSprites
-	ld hl, TileMap
-	ld bc, 18 * 20
+	hlcoord 0, 0
+	ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
 	ld a, " "
 	call ByteFill
 	hlcoord 0,0
@@ -10458,26 +10376,23 @@
 	call Function11420
 	ret nc
 	xor a
-	ld hl, wdc1e
+	ld hl, DailyFlags
+rept 3
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 	ld hl, wdc4c
+rept 4
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld hl, wdc50
+rept 4
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld hl, wdc54
+rept 4
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld hl, wdc58
 	ld a, [hl]
 	and a
@@ -10587,7 +10502,7 @@
 ; 1151c
 
 Function1151c: ; 1151c
-	ld hl, wdc1e
+	ld hl, DailyFlags
 	set 2, [hl]
 	ret
 ; 11522
@@ -10594,7 +10509,7 @@
 
 Function11522: ; 11522
 	and a
-	ld hl, wdc1e
+	ld hl, DailyFlags
 	bit 2, [hl]
 	ret nz
 	scf
@@ -10732,16 +10647,17 @@
 ; 115d6
 
 Function115d6: ; 115d6
+rept 2
 	inc hl
-	inc hl
+endr
 	xor a
 	jr Function115eb
 ; 115db
 
 Function115db: ; 115db
+rept 3
 	inc hl
-	inc hl
-	inc hl
+endr
 	ld a, [hSeconds]
 	ld c, a
 	sub [hl]
@@ -10936,7 +10852,7 @@
 	db 0 ; end
 ; 116b7
 
-Function116b7: ; 0x116b7
+_NamingScreen: ; 0x116b7
 	call Function2ed3
 	call Function116c1
 	call Function2b74
@@ -11000,8 +10916,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_1172e
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -11209,8 +11126,8 @@
 
 Function118a8: ; 118a8
 	call WaitTop
-	ld hl, TileMap
-	ld bc, $0168
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	ld a, $60
 	call ByteFill
 	hlcoord 1, 1
@@ -11321,8 +11238,9 @@
 	ld e, a
 	ld d, $0
 	ld hl, Jumptable_11977
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -11570,8 +11488,9 @@
 	jr nz, .asm_11ade
 	ld a, $4
 .asm_11ade
+rept 2
 	dec a
-	dec a
+endr
 	ld e, a
 	add a
 	add e
@@ -11782,7 +11701,7 @@
 	srl a
 	srl a
 	ld d, a
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $14
 .asm_11c43
 	ld a, d
@@ -11974,13 +11893,13 @@
 
 Function11f84: ; 11f84 (4:5f84)
 	call WaitTop
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $78
 	ld a, $60
 	call ByteFill
 	hlcoord 0, 6
 	ld bc, $f0
-	ld a, $7f
+	ld a, " "
 	call ByteFill
 	hlcoord 1, 1
 	ld bc, $412
@@ -11989,21 +11908,21 @@
 
 Function11fa9: ; 11fa9 (4:5fa9)
 	hlcoord 1, 7
-	ld b, $6
-.asm_11fae
-	ld c, $13
-.asm_11fb0
+	ld b, 6
+.next
+	ld c, SCREEN_WIDTH - 1
+.loop
 	ld a, [de]
 	ld [hli], a
 	inc de
 	dec c
-	jr nz, .asm_11fb0
+	jr nz, .loop
 	push de
-	ld de, $15
+	ld de, 21
 	add hl, de
 	pop de
 	dec b
-	jr nz, .asm_11fae
+	jr nz, .next
 	ret
 
 Function11fc0: ; 11fc0 (4:5fc0)
@@ -12047,8 +11966,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_12017
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -12262,8 +12182,9 @@
 	jr nz, .asm_1215f
 	ld a, $4
 .asm_1215f
+rept 2
 	dec a
-	dec a
+endr
 	ld e, a
 	add a
 	add e
@@ -12338,8 +12259,9 @@
 	jr nz, .asm_121c3
 	push hl
 	ld hl, wc6d2
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	jr .asm_121c8
 
 .asm_121c3
@@ -12384,17 +12306,17 @@
 ; 122c1
 
 UnknownScript_0x122c1: ; 0x122c1
-	checkflag $0011
+	checkflag ENGINE_BUG_CONTEST_TIMER
 	iffalse .script_122cd
-	setflag $0051
-	special Function13a31
+	setflag ENGINE_DAILY_BUG_CONTEST
+	special ContestReturnMons
 .script_122cd
 	end
 ; 0x122ce
 
-UnknownScript_0x122ce:: ; 0x122ce
+FindItemInBallScript:: ; 0x122ce
 	callasm Function122f8
-	iffalse UnknownScript_0x122e3
+	iffalse NoRoomForItemInBallScript
 	disappear $fe
 	loadfont
 	writetext UnknownText_0x122ee
@@ -12405,7 +12327,7 @@
 	end
 ; 0x122e3
 
-UnknownScript_0x122e3: ; 0x122e3
+NoRoomForItemInBallScript: ; 0x122e3
 	loadfont
 	writetext UnknownText_0x122ee
 	closetext
@@ -12448,9 +12370,14 @@
 ; 12324
 
 HealMachineAnim: ; 12324
+	; If you have no Pokemon, don't change the buffer.  This can lead to some glitchy effects if you have no Pokemon.
 	ld a, [PartyCount]
 	and a
 	ret z
+	; The location of the healing machine relative to the player is stored in ScriptVar.
+	; 0: Up and left (Pokemon Center)
+	; 1: Left (Elm's Lab)
+	; 2: Up (Hall of Fame)
 	ld a, [ScriptVar]
 	ld [Buffer1], a
 	ld a, [rOBP1]
@@ -12469,8 +12396,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Unknown_12365
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -12661,9 +12589,9 @@
 	ld [hld], a
 	ld a, e
 	ld [hli], a
+rept 3
 	inc hl
-	inc hl
-	inc hl
+endr
 	dec c
 	jr nz, .asm_12486
 	pop de
@@ -12718,15 +12646,15 @@
 UnknownScript_0x124ce: ; 0x124ce
 	writetext UnknownText_0x124f5
 	closetext
-	special Function8c084
+	special FadeBlackBGMap
 	pause 40
 	special HealParty
-	checkflag $0011
+	checkflag ENGINE_BUG_CONTEST_TIMER
 	iftrue .script_64f2
 	callasm HalveMoney
 	callasm Function12527
 	farscall UnknownScript_0x122c1
-	special Function97c28
+	special WarpToSpawnPoint
 	newloadmap $f1
 	resetfuncs
 
@@ -12783,20 +12711,20 @@
 	ld e, a
 	callba IsSpawnPoint
 	ld a, c
-	jr c, .asm_12539
+	jr c, .yes
 	xor a
 
-.asm_12539
+.yes
 	ld [wd001], a
 	ret
 ; 1253d
 
-UnknownScript_0x1253d:: ; 0x1253d
-	checkcode $9
-	if_equal $0, UnknownScript_0x12555
-	if_equal $1, UnknownScript_0x12550
-	if_equal $2, UnknownScript_0x1255f
-	if_equal $3, UnknownScript_0x1255a
+Script_ForcedMovement:: ; 0x1253d
+	checkcode VAR_FACING
+	if_equal DOWN, UnknownScript_0x12555
+	if_equal UP, UnknownScript_0x12550
+	if_equal LEFT, UnknownScript_0x1255f
+	if_equal RIGHT, UnknownScript_0x1255a
 	end
 ; 0x12550
 
@@ -12861,8 +12789,8 @@
 ; 0x12580
 
 
-Function12580: ; 12580
-	callba Functionb8172
+ItemFinder: ; 12580
+	callba CheckForSignpostItems
 	jr c, .asm_1258d
 	ld hl, UnknownScript_0x125ba
 	jr .asm_12590
@@ -12871,7 +12799,7 @@
 	ld hl, UnknownScript_0x125ad
 
 .asm_12590
-	call Function31cd
+	call ExitMenuCallScript
 	ld a, $1
 	ld [wd0ec], a
 	ret
@@ -12952,7 +12880,7 @@
 	jr .Select
 
 .Reopen
-	call Function1ad2
+	call DrawOnMap
 	call UpdateTimePals
 	call .SetUpMenuItems
 	ld a, [wd0d2]
@@ -12973,13 +12901,14 @@
 	ld hl, .MenuReturns
 	ld e, a
 	ld d, 0
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
 	jp [hl]
-	
+
 .MenuReturns
 	dw .Reopen
 	dw .Exit
@@ -12998,7 +12927,7 @@
 	pop af
 	ld [hOAMUpdate], a
 .ReturnEnd
-	call Function1c07
+	call ExitMenu
 .ReturnEnd2
 	call Function2dcf
 	call UpdateTimePals
@@ -13031,7 +12960,7 @@
 ; 12691
 
 .ReturnFour ; 12691
-	call Function1c07
+	call ExitMenu
 	ld a, $80
 	ld [$ffa0], a
 	ret
@@ -13038,7 +12967,7 @@
 ; 12699
 
 .ReturnThree ; 12699
-	call Function1c07
+	call ExitMenu
 	ld a, $80
 	ld [$ffa0], a
 	jr .ReturnEnd2
@@ -13045,7 +12974,7 @@
 ; 126a2
 
 .ReturnTwo ; 126a2
-	call Function1c07
+	call ExitMenu
 	ld hl, wd0e9
 	ld a, [hli]
 	ld h, [hl]
@@ -13067,7 +12996,7 @@
 	call .DrawMenuAccount_
 	call MenuFunc_1e7f
 	call .DrawBugContestStatus
-	call Function1ad2
+	call DrawOnMap
 	call Functiond90
 	call Function2b5c
 	ret
@@ -13157,8 +13086,9 @@
 	push de
 	ld a, [MenuSelection]
 	call .GetMenuAccountTextPointer
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [hli]
 	ld d, [hl]
 	ld e, a
@@ -13171,12 +13101,11 @@
 	push de
 	ld a, [MenuSelection]
 	cp $ff
-	jr z, .none 
+	jr z, .none
 	call .GetMenuAccountTextPointer
+rept 4
 	inc hl
-	inc hl
-	inc hl
-	inc hl
+endr
 	ld a, [hli]
 	ld d, [hl]
 	ld e, a
@@ -13196,12 +13125,9 @@
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
+rept 6
 	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
+endr
 	ret
 ; 12829
 
@@ -13349,8 +13275,8 @@
 	ld hl, .EndTheContestText
 	call Function12cf5
 	jr c, .asm_12903
-	ld a, BANK(UnknownScript_0x1360b)
-	ld hl, UnknownScript_0x1360b
+	ld a, BANK(BugCatchingContestReturnToGateScript)
+	ld hl, BugCatchingContestReturnToGateScript
 	call Function31cf
 	ld a, 4
 	ret
@@ -13367,7 +13293,7 @@
 StartMenu_Save: ; 1290b
 ; Save the game.
 
-	call Function2879
+	call BufferScreen
 	callba Function14a1a
 	jr nc, .asm_12919
 	ld a, 0
@@ -13503,7 +13429,7 @@
 	and a
 	ret nz
 	ld hl, TMsHMs
-	ld b, $39
+	ld b, NUM_TMS + NUM_HMS
 .asm_129e9
 	ld a, [hli]
 	and a
@@ -13524,18 +13450,18 @@
 	and a
 	jr nz, .asm_12a3f
 	ld hl, UnknownText_0x12a45
-	call Function1d4f
+	call MenuTextBox
 	callba Function24fbf
 	push af
-	call Function1c17
-	call Function1c07
+	call WriteBackup
+	call ExitMenu
 	pop af
 	jr c, .asm_12a42
 	ld hl, UnknownText_0x12a4a
-	call Function1d4f
+	call MenuTextBox
 	call YesNoBox
 	push af
-	call Function1c07
+	call ExitMenu
 	pop af
 	jr c, .asm_12a42
 	pop hl
@@ -13543,8 +13469,8 @@
 	call TossItem
 	call PartyMonItemName
 	ld hl, UnknownText_0x12a4f
-	call Function1d4f
-	call Function1c07
+	call MenuTextBox
+	call ExitMenu
 	and a
 	ret
 .asm_12a3f
@@ -13575,7 +13501,7 @@
 
 Function12a54: ; 12a54 (4:6a54)
 	ld hl, UnknownText_0x12a5b
-	call Function1d67
+	call MenuTextBoxBackup
 	ret
 ; 12a5b (4:6a5b)
 
@@ -13722,8 +13648,8 @@
 
 	ld hl, GiveTakeItemMenuData
 	call LoadMenuDataHeader
-	call Function1d81
-	call Function1c07
+	call InterpretMenu2
+	call ExitMenu
 	jr c, .asm_12ba6
 
 	call GetCurNick
@@ -13740,7 +13666,7 @@
 	call Function12ba9
 	call ClearPalettes
 	call Functione58
-	call Function1c07
+	call ExitMenu
 	ld a, 0
 	ret
 
@@ -13780,7 +13706,7 @@
 
 .next
 	ld hl, CantBeHeldText
-	call Function1d67
+	call MenuTextBoxBackup
 	jr .loop
 
 .quit
@@ -13808,13 +13734,13 @@
 .asm_12bf4
 	call Function12cea
 	ld hl, MadeHoldText
-	call Function1d67
+	call MenuTextBoxBackup
 	call GivePartyItem
 	ret
 
 .asm_12c01
 	ld hl, PleaseRemoveMailText
-	call Function1d67
+	call MenuTextBoxBackup
 	ret
 
 .asm_12c08
@@ -13835,7 +13761,7 @@
 	jr nc, .asm_12c3c
 
 	ld hl, TookAndMadeHoldText
-	call Function1d67
+	call MenuTextBoxBackup
 	ld a, [wd265]
 	ld [CurItem], a
 	call GivePartyItem
@@ -13846,7 +13772,7 @@
 	ld [CurItem], a
 	call Function12cdf
 	ld hl, ItemStorageIsFullText
-	call Function1d67
+	call MenuTextBoxBackup
 
 .asm_12c4b
 	ret
@@ -13887,17 +13813,17 @@
 	ld [hl], NO_ITEM
 	call GetItemName
 	ld hl, TookFromText
-	call Function1d67
+	call MenuTextBoxBackup
 	jr .asm_12c9a
 
 .asm_12c8c
 	ld hl, IsntHoldingAnythingText
-	call Function1d67
+	call MenuTextBoxBackup
 	jr .asm_12c9a
 
 .asm_12c94
 	ld hl, ItemStorageIsFullText
-	call Function1d67
+	call MenuTextBoxBackup
 
 .asm_12c9a
 	ret
@@ -13984,9 +13910,9 @@
 	jp TossItem
 
 Function12cf5: ; 12cf5
-	call Function1d4f
+	call MenuTextBox
 	call YesNoBox
-	jp Function1c07
+	jp ExitMenu
 ; 12cfe
 
 
@@ -14027,8 +13953,8 @@
 	jr z, .asm_12d6d
 	ld hl, MenuDataHeader_0x12dc9
 	call LoadMenuDataHeader
-	call Function1d81
-	call Function1c07
+	call InterpretMenu2
+	call ExitMenu
 	jp c, .asm_12dc6
 	ld a, [wcfa9]
 	cp $1
@@ -14051,12 +13977,12 @@
 	callba Function4456e
 	jr c, .asm_12d92
 	ld hl, UnknownText_0x12dfb
-	call Function1d67
+	call MenuTextBoxBackup
 	jr .asm_12dc6
 
 .asm_12d92
 	ld hl, UnknownText_0x12df6
-	call Function1d67
+	call MenuTextBoxBackup
 	jr .asm_12dc6
 
 .asm_12d9a
@@ -14072,12 +13998,12 @@
 	ld [hl], $0
 	call GetCurNick
 	ld hl, UnknownText_0x12de7
-	call Function1d67
+	call MenuTextBoxBackup
 	jr .asm_12dc6
 
 .asm_12dbe
 	ld hl, UnknownText_0x12dec
-	call Function1d67
+	call MenuTextBoxBackup
 	jr .asm_12dc6
 
 .asm_12dc6
@@ -14150,7 +14076,7 @@
 
 
 Function12e1b: ; 12e1b
-	callba Functionc785
+	callba CutFunction
 	ld a, [wd0ec]
 	cp $1
 	jr nz, .asm_12e2d
@@ -14165,7 +14091,7 @@
 
 
 Function12e30: ; 12e30
-	callba Functionca3b
+	callba FlyFunction
 	ld a, [wd0ec]
 	cp $2
 	jr z, .asm_12e4c
@@ -14204,7 +14130,7 @@
 ; 12e6a
 
 Function12e6a: ; 12e6a
-	callba Functioncce5
+	callba StrengthFunction
 	ld a, [wd0ec]
 	cp $1
 	jr nz, .asm_12e7c
@@ -14218,7 +14144,7 @@
 ; 12e7f
 
 Function12e7f: ; 12e7f
-	callba Functioncd9d
+	callba WhirlpoolFunction
 	ld a, [wd0ec]
 	cp $1
 	jr nz, .asm_12e91
@@ -14246,7 +14172,7 @@
 ; 12ea9
 
 Function12ea9: ; 12ea9
-	callba Functioncc61
+	callba TeleportFunction
 	ld a, [wd0ec]
 	and a
 	jr z, .asm_12eba
@@ -14260,7 +14186,7 @@
 ; 12ebd
 
 Function12ebd: ; 12ebd
-	callba Functionc909
+	callba SurfFunction
 	ld a, [wd0ec]
 	and a
 	jr z, .asm_12ece
@@ -14274,7 +14200,7 @@
 ; 12ed1
 
 Function12ed1: ; 12ed1
-	callba Functioncb9c
+	callba DigFunction
 	ld a, [wd0ec]
 	cp $1
 	jr nz, .asm_12ee3
@@ -14332,7 +14258,7 @@
 ; 12f26
 
 Function12f26: ; 12f26
-	callba Functionce7d
+	callba HeadbuttFunction
 	ld a, [wd0ec]
 	cp $1
 	jr nz, .asm_12f38
@@ -14346,7 +14272,7 @@
 ; 12f3b
 
 Function12f3b: ; 12f3b
-	callba Functionceeb
+	callba RockSmashFunction
 	ld a, [wd0ec]
 	cp $1
 	jr nz, .asm_12f4d
@@ -14360,7 +14286,7 @@
 ; 12f50
 
 Function12f50: ; 12f50
-	callba Function506bc
+	callba DoMovementFunctionc
 	ld b, $4
 	ld a, $2
 	ret
@@ -14889,8 +14815,8 @@
 	call Function2e08
 	ld b, BANK(ItemMayBeRegisteredText)
 	ld hl, ItemMayBeRegisteredText
-	call Function269a
-	call Functiona46
+	call MapTextbox
+	call CloseText
 	jp Function2dcf
 ; 13340
 
@@ -14926,8 +14852,9 @@
 	inc hl
 	ld e, a
 	ld d, 0
+rept 2
 	add hl, de
-	add hl, de
+endr
 	call .IsSameItem
 	jr c, .NoRegisteredItem
 	and a
@@ -14951,8 +14878,9 @@
 	inc hl
 	ld e, a
 	ld d, 0
+rept 2
 	add hl, de
-	add hl, de
+endr
 	call .IsSameItem
 	jr c, .NoRegisteredItem
 	ret
@@ -15070,7 +14998,7 @@
 ; 1342d
 
 
-Function1342d:: ; 1342d
+Elevator:: ; 1342d
 	call Function1344a
 	call Function1347d
 	jr c, .asm_13448
@@ -15142,8 +15070,9 @@
 	call GetFarByte
 	cp $ff
 	jr z, .asm_134be
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [EngineBuffer1]
 	call GetFarByte
 	inc hl
@@ -15193,17 +15122,17 @@
 
 Function134dd: ; 134dd
 	call Function1d6e
-	ld hl, UnknownText_0x1350d
+	ld hl, Elevator_WhichFloorText
 	call PrintText
-	call Function13512
-	ld hl, MenuDataHeader_0x13550
-	call Function1d3c
+	call Elevator_GetCurrentFloorText
+	ld hl, Elevator_MenuDataHeader
+	call CopyMenuDataHeader
 	call Function352f
-	call Function1ad2
+	call DrawOnMap
 	xor a
 	ld [wd0e4], a
 	call Function350c
-	call Function1c17
+	call WriteBackup
 	ld a, [wcf73]
 	cp $2
 	jr z, .asm_1350b
@@ -15216,7 +15145,7 @@
 	ret
 ; 1350d
 
-UnknownText_0x1350d: ; 0x1350d
+Elevator_WhichFloorText: ; 0x1350d
 	; Which floor?
 	text_jump UnknownText_0x1bd2bc
 	db "@"
@@ -15223,31 +15152,31 @@
 ; 0x13512
 
 
-Function13512: ; 13512
+Elevator_GetCurrentFloorText: ; 13512
 	ld hl, Options
 	ld a, [hl]
 	push af
 	set 4, [hl]
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld b, $4
 	ld c, $8
 	call TextBox
 	hlcoord 1, 2
-	ld de, String_13537
+	ld de, Elevator_CurrentFloorText
 	call PlaceString
 	hlcoord 4, 4
-	call Function1353f
+	call Elevator_GetCurrentFloorString
 	pop af
 	ld [Options], a
 	ret
 ; 13537
 
-String_13537: ; 13537
+Elevator_CurrentFloorText: ; 13537
 	db "Now on:@"
 ; 1353f
 
 
-Function1353f: ; 1353f
+Elevator_GetCurrentFloorString: ; 1353f
 	push hl
 	ld a, [wd041]
 	ld e, a
@@ -15256,34 +15185,34 @@
 	add hl, de
 	ld a, [hl]
 	pop de
-	call Function1356b
+	call GetFloorString
 	ret
 ; 13550
 
-MenuDataHeader_0x13550: ; 0x13550
+Elevator_MenuDataHeader: ; 0x13550
 	db $40 ; flags
 	db 01, 12 ; start coords
 	db 09, 18 ; end coords
-	dw MenuData2_0x13558
+	dw Elevator_MenuData2
 	db 1 ; default option
 ; 0x13558
 
-MenuData2_0x13558: ; 0x13558
+Elevator_MenuData2: ; 0x13558
 	db $10 ; flags
 	db 4, 0 ; rows, columns
 	db 1 ; horizontal spacing
 	dbw 0, OBPals + 8 * 6
-	dbw BANK(Function13568), Function13568
+	dbw BANK(GetElevatorFlorStrings), GetElevatorFlorStrings
 	dbw BANK(NULL), NULL
 	dbw BANK(NULL), NULL
 ; 13568
 
-Function13568: ; 13568
+GetElevatorFlorStrings: ; 13568
 	ld a, [MenuSelection]
 
-Function1356b: ; 1356b
+GetFloorString: ; 1356b
 	push de
-	call Function13575
+	call FloorToString
 	ld d, h
 	ld e, l
 	pop hl
@@ -15290,13 +15219,14 @@
 	jp PlaceString
 ; 13575
 
-Function13575: ; 13575
+FloorToString: ; 13575
 	push de
 	ld e, a
 	ld d, 0
 	ld hl, .floors
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -15357,40 +15287,40 @@
 ; 135db
 
 
-Function135db: ; 135db
+Special_GiveParkBalls: ; 135db
 	xor a
 	ld [wdf9c], a
-	ld a, $14
+	ld a, 20
 	ld [wdc79], a
 	callba Function11490
 	ret
 ; 135eb
 
-UnknownScript_0x135eb:: ; 0x135eb
-	writecode $3, BATTLETYPE_CONTEST
+BugCatchingContestBattleScript:: ; 0x135eb
+	writecode VAR_BATTLETYPE, BATTLETYPE_CONTEST
 	battlecheck
 	startbattle
 	returnafterbattle
 	copybytetovar wdc79
-	iffalse UnknownScript_0x13603
+	iffalse BugCatchingContestOutOfBallsScript
 	end
 ; 0x135f8
 
-UnknownScript_0x135f8:: ; 0x135f8
+BugCatchingContestOverScript:: ; 0x135f8
 	playsound SFX_ELEVATOR_END
 	loadfont
 	writetext UnknownText_0x1360f
 	closetext
-	jump UnknownScript_0x1360b
+	jump BugCatchingContestReturnToGateScript
 ; 0x13603
 
-UnknownScript_0x13603: ; 0x13603
+BugCatchingContestOutOfBallsScript: ; 0x13603
 	playsound SFX_ELEVATOR_END
 	loadfont
 	writetext UnknownText_0x13614
 	closetext
 
-UnknownScript_0x1360b: ; 0x1360b
+BugCatchingContestReturnToGateScript: ; 0x1360b
 	loadmovesprites
 	jumpstd bugcontestresultswarp
 ; 0x1360f
@@ -15407,7 +15337,7 @@
 	db "@"
 ; 0x13619
 
-UnknownScript_0x13619:: ; 0x13619
+RepelWoreOffScript:: ; 0x13619
 	loadfont
 	writetext UnknownText_0x13620
 	closetext
@@ -15421,14 +15351,14 @@
 	db "@"
 ; 0x13625
 
-UnknownScript_0x13625:: ; 0x13625
+SignpostItemScript:: ; 0x13625
 	loadfont
 	copybytetovar Unkn2Pals
-	itemtotext $0, $0
+	itemtotext 0, 0
 	writetext UnknownText_0x13645
-	giveitem $ff, $1
+	giveitem -1, 1
 	iffalse UnknownScript_0x1363e
-	callasm Function1364f
+	callasm SetMemEvent
 	specialsound
 	itemnotify
 	jump UnknownScript_0x13643
@@ -15456,22 +15386,23 @@
 	db "@"
 ; 0x1364f
 
-Function1364f: ; 1364f
+SetMemEvent: ; 1364f
 	ld hl, EngineBuffer1 ; wd03e (aliases: MenuItemsList, CurFruitTree, CurInput)
 	ld a, [hli]
 	ld d, [hl]
 	ld e, a
-	ld b, $1
+	ld b, SET_FLAG
 	call EventFlagAction
 	ret
 
 
-Function1365b:: ; 1365b
+CheckFacingTileForStd:: ; 1365b
+; Checks to see if the tile you're facing has a std script associated with it.  If so, executes the script and returns carry.
 	ld a, c
-	ld de, .table2 - .table1
+	ld de, 3
 	ld hl, .table1
 	call IsInArray
-	jr nc, .asm_1367f
+	jr nc, .notintable
 
 	ld a, jumpstd_command
 	ld [wd03f], a
@@ -15480,13 +15411,13 @@
 	ld [wd03f + 1], a
 	ld a, [hli]
 	ld [wd03f + 2], a
-	ld a, BANK(UnknownScript_0x1369a)
-	ld hl, UnknownScript_0x1369a
+	ld a, BANK(Script_JumpStdFromRAM)
+	ld hl, Script_JumpStdFromRAM
 	call CallScript
 	scf
 	ret
 
-.asm_1367f
+.notintable
 	xor a
 	ret
 ; 13681
@@ -15493,8 +15424,7 @@
 
 .table1
 	dbw $91, magazinebookshelf
-.table2
-	dbw $93, $0031 ; pc
+	dbw $93, pcscript
 	dbw $94, radio1
 	dbw $95, townmap
 	dbw $96, merchandiseshelf
@@ -15504,215 +15434,226 @@
 	db $ff ; end
 ; 1369a
 
-UnknownScript_0x1369a: ; 0x1369a
+Script_JumpStdFromRAM: ; 0x1369a
 	jump wd03f
 ; 0x1369d
 
 
-Function1369d: ; 1369d
+_BugContestJudging: ; 1369d
 	call ContestScore
 	callba Function105f79
 	call Function13819
 	ld a, [wd00a]
-	call Function13730
+	call LoadContestantName
 	ld a, [wd00b]
 	ld [wd265], a
 	call GetPokemonName
-	ld hl, UnknownText_0x13719
+	ld hl, BugContest_ThirdPlaceText
 	call PrintText
 	ld a, [EndFlypoint]
-	call Function13730
+	call LoadContestantName
 	ld a, [MovementBuffer]
 	ld [wd265], a
 	call GetPokemonName
-	ld hl, UnknownText_0x13702
+	ld hl, BugContest_SecondPlaceText
 	call PrintText
 	ld a, [DefaultFlypoint]
-	call Function13730
+	call LoadContestantName
 	ld a, [wd003]
 	ld [wd265], a
 	call GetPokemonName
-	ld hl, UnknownText_0x136eb
+	ld hl, BugContest_FirstPlaceText
 	call PrintText
 	jp Function13807
 ; 136eb
 
-UnknownText_0x136eb: ; 0x136eb
-	text_jump UnknownText_0x1c10fa
+BugContest_FirstPlaceText: ; 0x136eb
+	text_jump ContestJudging_FirstPlaceText
 	start_asm
 ; 0x136f0
 
-Function136f0: ; 136f0
+BugContest_FirstPlace: ; 136f0
 	ld de, SFX_1ST_PLACE
 	call PlaySFX
 	call WaitSFX
-	ld hl, UnknownText_0x136fd
+	ld hl, BugContest_FirstPlaceScoreText
 	ret
 ; 136fd
 
-UnknownText_0x136fd: ; 0x136fd
+BugContest_FirstPlaceScoreText: ; 0x136fd
 	; The winning score was @  points!
-	text_jump UnknownText_0x1c113f
+	text_jump ContestJudging_FirstPlaceScoreText
 	db "@"
 ; 0x13702
 
-UnknownText_0x13702: ; 0x13702
+BugContest_SecondPlaceText: ; 0x13702
 	; Placing second was @ , who caught a @ !@ @
-	text_jump UnknownText_0x1c1166
+	text_jump ContestJudging_SecondPlaceText
 	start_asm
 ; 0x13707
 
-Function13707: ; 13707
+BugContest_SecondPlace: ; 13707
 	ld de, SFX_2ND_PLACE
 	call PlaySFX
 	call WaitSFX
-	ld hl, UnknownText_0x13714
+	ld hl, BugContest_SecondPlaceScoreText
 	ret
 ; 13714
 
-UnknownText_0x13714: ; 0x13714
+BugContest_SecondPlaceScoreText: ; 0x13714
 	; The score was @  points!
-	text_jump UnknownText_0x1c1196
+	text_jump ContestJudging_SecondPlaceScoreText
 	db "@"
 ; 0x13719
 
-UnknownText_0x13719: ; 0x13719
+BugContest_ThirdPlaceText: ; 0x13719
 	; Placing third was @ , who caught a @ !@ @
-	text_jump UnknownText_0x1c11b5
+	text_jump ContestJudging_ThirdPlaceText
 	start_asm
 ; 0x1371e
 
-Function1371e: ; 1371e
+BugContest_ThirdPlace: ; 1371e
 	ld de, SFX_3RD_PLACE
 	call PlaySFX
 	call WaitSFX
-	ld hl, UnknownText_0x1372b
+	ld hl, BugContest_ThirdPlaceScoreText
 	ret
 ; 1372b
 
-UnknownText_0x1372b: ; 0x1372b
+BugContest_ThirdPlaceScoreText: ; 0x1372b
 	; The score was @  points!
-	text_jump UnknownText_0x1c11e4
+	text_jump ContestJudging_ThirdPlaceScoreText
 	db "@"
 ; 0x13730
 
-Function13730: ; 13730
+LoadContestantName: ; 13730
+
+; If a = 0, get your name.
 	dec a
-	jr z, .asm_13777
+	jr z, .done
+; Find the pointer for the trainer class of the Bug Catching Contestant whose ID is in a.
 	ld c, a
 	ld b, 0
-	ld hl, Unknown_13783
+	ld hl, BugContestantPointers
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
+; Copy the Trainer Class to c.
 	ld a, [hli]
 	ld c, a
+; Save hl and bc for later.
 	push hl
 	push bc
+; Get the Trainer Class name and copy it into wd016.
 	callab Function3952d
 	ld hl, StringBuffer1
 	ld de, wd016
-	ld bc, $000d
+	ld bc, TRAINER_CLASS_NAME_LENGTH
 	call CopyBytes
 	ld hl, wd016
-.asm_13757
+; Delete the trailing terminator and replace it with a space.
+.next
 	ld a, [hli]
-	cp $50
-	jr nz, .asm_13757
+	cp "@"
+	jr nz, .next
 	dec hl
-	ld [hl], $7f
+	ld [hl], " "
 	inc hl
 	ld d, h
 	ld e, l
+; Restore the Trainer Class ID and Trainer ID pointer.  Save de for later.
 	pop bc
 	pop hl
 	push de
+; Get the name of the trainer with class c and ID b.
 	ld a, [hl]
 	ld b, a
-	callab Function3994c
+	callab GetTrainerName
+; Append the name to wd016.
 	ld hl, StringBuffer1
 	pop de
-	ld bc, $000a
+	ld bc, NAME_LENGTH - 1
 	jp CopyBytes
 
-.asm_13777
+.done
 	ld hl, PlayerName
 	ld de, wd016
-	ld bc, $000b
+	ld bc, NAME_LENGTH
 	jp CopyBytes
 ; 13783
 
-Unknown_13783: ; 13783
-	dw Unknown_13799
-	dw Unknown_13799
-	dw Unknown_137a4
-	dw Unknown_137af
-	dw Unknown_137ba
-	dw Unknown_137c5
-	dw Unknown_137d0
-	dw Unknown_137db
-	dw Unknown_137e6
-	dw Unknown_137f1
-	dw Unknown_137fc
+BugContestantPointers: ; 13783
+	dw BugContestant_BugCatcherDon ; This reverts back to the player
+	dw BugContestant_BugCatcherDon
+	dw BugContestant_BugCatcherEd
+	dw BugContestant_CooltrainerMNick
+	dw BugContestant_PokefanMWilliam
+	dw BugContestant_BugCatcherBenny
+	dw BugContestant_CamperBarry
+	dw BugContestant_PicnickerCindy
+	dw BugContestant_BugCatcherJosh
+	dw BugContestant_YoungsterSamuel
+	dw BugContestant_SchoolboyKipp
 ; 13799
 
-Unknown_13799:
+BugContestant_BugCatcherDon:
 	db BUG_CATCHER, DON
 	dbw KAKUNA,     300
 	dbw METAPOD,    285
 	dbw CATERPIE,   226
 
-Unknown_137a4:
+BugContestant_BugCatcherEd:
 	db BUG_CATCHER, ED
 	dbw BUTTERFREE, 286
 	dbw BUTTERFREE, 251
 	dbw CATERPIE,   237
 
-Unknown_137af:
+BugContestant_CooltrainerMNick:
 	db COOLTRAINERM, NICK
 	dbw SCYTHER,    357
 	dbw BUTTERFREE, 349
 	dbw PINSIR,     368
 
-Unknown_137ba:
+BugContestant_PokefanMWilliam:
 	db POKEFANM, WILLIAM
 	dbw PINSIR,     332
 	dbw BUTTERFREE, 324
 	dbw VENONAT,    321
 
-Unknown_137c5:
+BugContestant_BugCatcherBenny:
 	db BUG_CATCHER, BUG_CATCHER_BENNY
 	dbw BUTTERFREE, 318
 	dbw WEEDLE,     295
 	dbw CATERPIE,   285
 
-Unknown_137d0:
+BugContestant_CamperBarry:
 	db CAMPER, BARRY
 	dbw PINSIR,     366
 	dbw VENONAT,    329
 	dbw KAKUNA,     314
 
-Unknown_137db:
+BugContestant_PicnickerCindy:
 	db PICNICKER, CINDY
 	dbw BUTTERFREE, 341
 	dbw METAPOD,    301
 	dbw CATERPIE,   264
 
-Unknown_137e6:
+BugContestant_BugCatcherJosh:
 	db BUG_CATCHER, JOSH
 	dbw SCYTHER,    326
 	dbw BUTTERFREE, 292
 	dbw METAPOD,    282
 
-Unknown_137f1:
+BugContestant_YoungsterSamuel:
 	db YOUNGSTER, SAMUEL
 	dbw WEEDLE,     270
 	dbw PINSIR,     282
 	dbw CATERPIE,   251
 
-Unknown_137fc:
+BugContestant_SchoolboyKipp:
 	db SCHOOLBOY, KIPP
 	dbw VENONAT,    267
 	dbw PARAS,      254
@@ -15721,17 +15662,17 @@
 
 Function13807: ; 13807
 	ld hl, wd00a
-	ld de, $fffc
-	ld b, $3
-.asm_1380f
+	ld de, -4
+	ld b, 3
+.loop
 	ld a, [hl]
-	cp $1
-	jr z, .asm_13818
+	cp 1
+	jr z, .done
 	add hl, de
 	dec b
-	jr nz, .asm_1380f
+	jr nz, .loop
 
-.asm_13818
+.done
 	ret
 ; 13819
 
@@ -15739,7 +15680,7 @@
 	call Function13833
 	call Function138b0
 	ld hl, wd00e
-	ld a, $1
+	ld a, 1
 	ld [hli], a
 	ld a, [wdf9c]
 	ld [hli], a
@@ -15753,12 +15694,12 @@
 
 Function13833: ; 13833
 	ld hl, DefaultFlypoint
-	ld b, $c
+	ld b, 12
 	xor a
-.asm_13839
+.loop
 	ld [hli], a
 	dec b
-	jr nz, .asm_13839
+	jr nz, .loop
 	ret
 ; 1383e
 
@@ -15765,9 +15706,9 @@
 Function1383e: ; 1383e
 	ld de, wd010
 	ld hl, wd004
-	ld c, $2
+	ld c, 2
 	call StringCmp
-	jr c, .asm_1386b
+	jr c, .next
 	ld hl, EndFlypoint
 	ld de, wd00a
 	ld bc, $0004
@@ -15774,36 +15715,36 @@
 	call CopyBytes
 	ld hl, DefaultFlypoint
 	ld de, EndFlypoint
-	ld bc, $0004
+	ld bc, 4
 	call CopyBytes
 	ld hl, DefaultFlypoint
 	call Function138a0
-	jr .asm_1389f
+	jr .done
 
-.asm_1386b
+.next
 	ld de, wd010
 	ld hl, wd008
-	ld c, $2
+	ld c, 2
 	call StringCmp
-	jr c, .asm_1388c
+	jr c, .next2
 	ld hl, EndFlypoint
 	ld de, wd00a
-	ld bc, $0004
+	ld bc, 4
 	call CopyBytes
 	ld hl, EndFlypoint
 	call Function138a0
-	jr .asm_1389f
+	jr .done
 
-.asm_1388c
+.next2
 	ld de, wd010
 	ld hl, wd00c
-	ld c, $2
+	ld c, 2
 	call StringCmp
-	jr c, .asm_1389f
+	jr c, .done
 	ld hl, wd00a
 	call Function138a0
 
-.asm_1389f
+.done
 	ret
 ; 138a0
 
@@ -15825,37 +15766,40 @@
 ; 138b0
 
 Function138b0: ; 138b0
-	ld e, $0
-.asm_138b2
+	ld e, 0
+.loop
 	push de
-	call Function139ed
+	call Special_CheckBugContestContestantFlag
 	pop de
-	jr nz, .asm_138f9
+	jr nz, .done
 	ld a, e
+rept 2
 	inc a
-	inc a
+endr
 	ld [wd00e], a
 	dec a
 	ld c, a
 	ld b, 0
-	ld hl, Unknown_13783
+	ld hl, BugContestantPointers
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
+rept 2
 	inc hl
-	inc hl
-.asm_138cd
+endr
+.loop2
 	call Random
-	and $3
-	cp $3
-	jr z, .asm_138cd
+	and 3
+	cp 3
+	jr z, .loop2
 	ld c, a
-	ld b, $0
+	ld b, 0
+rept 3
 	add hl, bc
-	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld [wd00f], a
 	ld a, [hli]
@@ -15862,9 +15806,9 @@
 	ld h, [hl]
 	ld l, a
 	call Random
-	and $7
+	and 7
 	ld c, a
-	ld b, $0
+	ld b, 0
 	add hl, bc
 	ld a, h
 	ld [wd010], a
@@ -15874,11 +15818,11 @@
 	call Function1383e
 	pop de
 
-.asm_138f9
+.done
 	inc e
 	ld a, e
-	cp $a
-	jr nz, .asm_138b2
+	cp 10
+	jr nz, .loop
 	ret
 ; 13900
 
@@ -15921,8 +15865,9 @@
 	ld a, [wContestMonDVs + 0]
 	ld b, a
 	and 2
+rept 2
 	add a
-	add a
+endr
 	ld c, a
 
 	swap b
@@ -15941,10 +15886,12 @@
 	ld a, b
 	and 2
 	srl a
+rept 2
 	add c
-	add c
+endr
+rept 2
 	add d
-	add d
+endr
 
 	call .AddContestStat
 
@@ -15979,20 +15926,20 @@
 
 ; decreases all pokemon's pokerus counter by b. if the lower nybble reaches zero, the pokerus is cured.
 ApplyPokerusTick: ; 13988
-	ld hl, PartyMon1PokerusStatus
+	ld hl, PartyMon1PokerusStatus ; PartyMon1 + MON_PKRS
 	ld a, [PartyCount]
 	and a
 	ret z
 	ld c, a
-.asm_13991
+.loop
 	ld a, [hl]
 	and $f
-	jr z, .asm_139a0
+	jr z, .does_not_have_pokerus
 	sub b
-	jr nc, .asm_1399a
+	jr nc, .ok
 	xor a
 
-.asm_1399a
+.ok
 	ld d, a
 	ld a, [hl]
 	and $f0
@@ -15999,95 +15946,111 @@
 	add d
 	ld [hl], a
 
-.asm_139a0
+.does_not_have_pokerus
 	ld de, PartyMon2 - PartyMon1
 	add hl, de
 	dec c
-	jr nz, .asm_13991
+	jr nz, .loop
 	ret
 ; 139a8
 
-Function139a8: ; 139a8
-	ld c, $a
-	ld hl, Unknown_139fe
-.asm_139ad
+Special_SelectRandomBugContestContestants: ; 139a8
+; Select five random people to participate in the current contest.
+
+; First we have to make sure that any old data is cleared away.
+	ld c, 10 ; Number of people to choose from.
+	ld hl, BugCatchingContestantEventFlagTable
+.loop1
 	push bc
 	push hl
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
-	ld b, $0
+	ld b, RESET_FLAG
 	call EventFlagAction
 	pop hl
+rept 2
 	inc hl
-	inc hl
+endr
 	pop bc
 	dec c
-	jr nz, .asm_139ad
-	ld c, $5
-.asm_139c0
+	jr nz, .loop1
+
+; Now that that's out of the way, we can get on to the good stuff.
+	ld c, 5
+.loop2
 	push bc
-.asm_139c1
+.next
+; Choose a flag at uniform random to be set.
 	call Random
-	cp $fa
-	jr nc, .asm_139c1
-	ld c, $19
+	cp $fa ; 250
+	jr nc, .next
+	ld c, $19 ; 25
 	call SimpleDivide
 	ld e, b
 	ld d, 0
-	ld hl, Unknown_139fe
+	ld hl, BugCatchingContestantEventFlagTable
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
 	push de
-	ld b, $2
+; If we've already set it, it doesn't count.
+	ld b, CHECK_FLAG
 	call EventFlagAction
 	pop de
 	ld a, c
 	and a
-	jr nz, .asm_139c1
-	ld b, $1
+	jr nz, .next
+; Set the flag.  This will cause that sprite to not be visible in the contest.
+	ld b, SET_FLAG
 	call EventFlagAction
 	pop bc
+; Check if we're done.  If so, return.  Otherwise, choose the next victim.
 	dec c
-	jr nz, .asm_139c0
+	jr nz, .loop2
 	ret
 ; 139ed
 
-Function139ed: ; 139ed
-	ld hl, Unknown_139fe
+Special_CheckBugContestContestantFlag: ; 139ed
+; Checks the flag of the Bug Catching Contestant whose index is loaded in a.
+
+; Bug: If a >= 10 when this is called, it will read beyond the table.
+
+	ld hl, BugCatchingContestantEventFlagTable
 	ld e, a
 	ld d, 0
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
-	ld b, $2
+	ld b, CHECK_FLAG
 	call EventFlagAction
 	ret
 ; 139fe
 
-Unknown_139fe: ; 139fe
-	dw $0716
-	dw $0717
-	dw $0718
-	dw $0719
-	dw $071a
-	dw $071b
-	dw $071c
-	dw $071d
-	dw $071e
-	dw $071f
+BugCatchingContestantEventFlagTable: ; 139fe
+	dw EVENT_BUG_CATCHING_CONTESTANT_1A
+	dw EVENT_BUG_CATCHING_CONTESTANT_2A
+	dw EVENT_BUG_CATCHING_CONTESTANT_3A
+	dw EVENT_BUG_CATCHING_CONTESTANT_4A
+	dw EVENT_BUG_CATCHING_CONTESTANT_5A
+	dw EVENT_BUG_CATCHING_CONTESTANT_6A
+	dw EVENT_BUG_CATCHING_CONTESTANT_7A
+	dw EVENT_BUG_CATCHING_CONTESTANT_8A
+	dw EVENT_BUG_CATCHING_CONTESTANT_9A
+	dw EVENT_BUG_CATCHING_CONTESTANT_10A
 ; 13a12
 
-Function13a12: ; 13a12
+CheckFirstMonFainted: ; 13a12
 	ld hl, PartyMon1HP
 	ld a, [hli]
 	or [hl]
-	jr z, .asm_13a2b
+	jr z, .fainted
 	ld hl, PartyCount
 	ld a, 1
 	ld [hli], a
@@ -16099,13 +16062,13 @@
 	ld [ScriptVar], a
 	ret
 
-.asm_13a2b
+.fainted
 	ld a, $1
 	ld [ScriptVar], a
 	ret
 ; 13a31
 
-Function13a31: ; 13a31
+ContestReturnMons: ; 13a31
 	ld hl, PartySpecies + 1
 	ld a, [wdf9b]
 	ld [hl], a
@@ -16422,7 +16385,7 @@
 ; get time of day based on the current hour
 	ld a, [hHours] ; hour
 	ld hl, TimesOfDay
-	
+
 .check
 ; if we're within the given time period,
 ; get the corresponding time of day
@@ -16429,11 +16392,12 @@
 	cp [hl]
 	jr c, .match
 ; else, get the next entry
+rept 2
 	inc hl
-	inc hl
+endr
 ; try again
 	jr .check
-	
+
 .match
 ; get time of day
 	inc hl
@@ -16626,7 +16590,7 @@
 	push af
 	res 7, [hl]
 	set 6, [hl]
-	call Function14209
+	call RunCallback_04
 	pop af
 	ld [wd13e], a
 	ret
@@ -16638,7 +16602,7 @@
 	push af
 	set 7, [hl]
 	res 6, [hl]
-	call Function14209
+	call RunCallback_04
 	pop af
 	ld [wd13e], a
 	ret
@@ -16647,7 +16611,7 @@
 
 Function14168:: ; 14168
 	call Function1416f
-	call Function14209
+	call RunCallback_04
 	ret
 ; 1416f
 
@@ -16753,8 +16717,9 @@
 	ld c, a
 	ld b, 0
 	ld hl, OutdoorSprites
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -16770,9 +16735,9 @@
 ; 14209
 
 
-Function14209: ; 14209
+RunCallback_04: ; 14209
 	ld a, $4
-	call Function263b
+	call RunMapCallback
 	call Function1439b
 	call Function14215
 	ret
@@ -16808,21 +16773,25 @@
 	call GetMonSprite
 	ret c
 
-	ld hl, SpriteHeaders
+	ld hl, SpriteHeaders ; address
 	dec a
 	ld c, a
 	ld b, 0
 	ld a, 6
 	call AddNTimes
+	; load the address into de
 	ld a, [hli]
 	ld e, a
 	ld a, [hli]
 	ld d, a
+	; load the length into c
 	ld a, [hli]
 	swap a
 	ld c, a
+	; load the sprite bank into both b and h
 	ld b, [hl]
 	ld a, [hli]
+	; load the sprite type into l
 	ld l, [hl]
 	ld h, a
 	ret
@@ -16865,7 +16834,7 @@
 .Mon
 	ld e, a
 	and a
-	jr z, .asm_1429f
+	jr z, .NoBreedmon
 
 	callba Function8e82b
 
@@ -16884,7 +16853,7 @@
 	and a
 	jp nz, GetMonSprite
 
-.asm_1429f
+.NoBreedmon
 	ld a, 1
 	ld l, 1
 	ld h, 0
@@ -16895,11 +16864,11 @@
 
 Function142a7:: ; 142a7
 	cp SPRITE_POKEMON
-	jr nc, .asm_142c2
+	jr nc, .is_pokemon
 
 	push hl
 	push bc
-	ld hl, SpriteHeaders + 4
+	ld hl, SpriteHeaders + 4 ; type
 	dec a
 	ld c, a
 	ld b, 0
@@ -16909,11 +16878,11 @@
 	pop bc
 	pop hl
 	cp 3
-	jr nz, .asm_142c2
+	jr nz, .is_pokemon
 	scf
 	ret
 
-.asm_142c2
+.is_pokemon
 	and a
 	ret
 ; 142c4
@@ -16922,7 +16891,7 @@
 _GetSpritePalette:: ; 142c4
 	ld a, c
 	call GetMonSprite
-	jr c, .asm_142d8
+	jr c, .is_pokemon
 
 	ld hl, SpriteHeaders + 5 ; palette
 	dec a
@@ -16933,7 +16902,7 @@
 	ld c, [hl]
 	ret
 
-.asm_142d8
+.is_pokemon
 	xor a
 	ld c, a
 	ret
@@ -16956,7 +16925,7 @@
 	push bc
 	ld b, a
 	ld hl, UsedSprites + 2
-	ld c, $1f
+	ld c, SPRITE_GFX_LIST_CAPACITY - 1
 .loop
 	ld a, [hl]
 	cp b
@@ -16963,8 +16932,9 @@
 	jr z, .exists
 	and a
 	jr z, .new
+rept 2
 	inc hl
-	inc hl
+endr
 	dec c
 	jr nz, .loop
 
@@ -16990,10 +16960,10 @@
 
 LoadSpriteGFX: ; 14306
 ; Bug: b is not preserved, so
-; it's useless as a loop count.
+; it's useless as a next count.
 
 	ld hl, UsedSprites
-	ld b, $20
+	ld b, SPRITE_GFX_LIST_CAPACITY
 .loop
 	ld a, [hli]
 	and a
@@ -17020,14 +16990,15 @@
 
 ; Run backwards through UsedSprites to find the last one.
 
-	ld c, $20
-	ld de, UsedSprites + ($20 - 1) * 2
+	ld c, SPRITE_GFX_LIST_CAPACITY
+	ld de, UsedSprites + (SPRITE_GFX_LIST_CAPACITY - 1) * 2
 .FindLastSprite
 	ld a, [de]
 	and a
 	jr nz, .FoundLastSprite
+rept 2
 	dec de
-	dec de
+endr
 	dec c
 	jr nz, .FindLastSprite
 .FoundLastSprite
@@ -17048,7 +17019,7 @@
 .CheckFollowing
 	ld a, [de]
 	cp [hl]
-	jr nc, .next
+	jr nc, .loop
 
 ; Swap the two sprites.
 
@@ -17068,15 +17039,17 @@
 
 ; Keep doing this until everything's in order.
 
-.next
+.loop
+rept 2
 	dec de
-	dec de
+endr
 	dec c
 	jr nz, .CheckFollowing
 
 	pop hl
+rept 2
 	inc hl
-	inc hl
+endr
 	pop de
 	pop bc
 	dec c
@@ -17092,7 +17065,7 @@
 ; Crystal introduces a second table in VRAM bank 0.
 
 	ld hl, UsedSprites
-	ld c, $20
+	ld c, SPRITE_GFX_LIST_CAPACITY
 	ld b, 0
 .FirstTableLength
 ; Keep going until the end of the list.
@@ -17106,10 +17079,10 @@
 ; Spill over into the second table after $80 tiles.
 	add b
 	cp $80
-	jr z, .next
+	jr z, .loop
 	jr nc, .SecondTable
 
-.next
+.loop
 	ld [hl], b
 	inc hl
 	ld b, a
@@ -17172,7 +17145,7 @@
 
 Function1439b: ; 1439b
 	ld hl, UsedSprites
-	ld c, $20
+	ld c, SPRITE_GFX_LIST_CAPACITY
 .asm_143a0
 	ld a, [wd13e]
 	res 5, a
@@ -17219,10 +17192,9 @@
 	pop bc
 	ld l, c
 	ld h, $0
+rept 4
 	add hl, hl
-	add hl, hl
-	add hl, hl
-	add hl, hl
+endr
 	pop de
 	add hl, de
 	ld d, h
@@ -17249,10 +17221,9 @@
 	and $7f
 	ld l, a
 	ld h, $0
+rept 4
 	add hl, hl
-	add hl, hl
-	add hl, hl
-	add hl, hl
+endr
 	ld a, l
 	add $0
 	ld l, a
@@ -17396,8 +17367,8 @@
 	db LUGIA
 	db HO_OH
 ; 144b8
-	
 
+
 OutdoorSprites: ; 144b8
 ; Valid sprite IDs for each map group.
 
@@ -18135,15 +18106,15 @@
 	ret
 ; 149c6
 
-Function149c6: ; 149c6
+CheckWarpCollision: ; 149c6
 	ld de, 1
-	ld hl, Unknown_149d3
+	ld hl, .blocks
 	ld a, [StandingTile]
 	call IsInArray
 	ret
 ; 149d3
 
-Unknown_149d3: ; 149d3
+.blocks: ; 149d3
 	db $71 ; door
 	db $79
 	db $7a ; stairs
@@ -18158,13 +18129,13 @@
 
 Function149dd:: ; 149dd
 	ld a, [StandingTile]
-	ld hl, Unknown_149ea
+	ld hl, .blocks
 	ld de, 1
 	call IsInArray
 	ret
 ; 149ea
 
-Unknown_149ea: ; 149ea
+.blocks: ; 149ea
 	db $08
 	db $18 ; tall grass
 	db $14 ; tall grass
@@ -18178,15 +18149,15 @@
 	db -1
 ; 149f5
 
-Function149f5: ; 149f5
+CheckCutCollision: ; 149f5
 	ld a, c
-	ld hl, Unknown_14a00
+	ld hl, .blocks
 	ld de, 1
 	call IsInArray
 	ret
 ; 14a00
 
-Unknown_14a00: ; 14a00
+.blocks: ; 14a00
 	db $12 ; cut tree
 	db $1a ; cut tree
 	db $10 ; tall grass
@@ -18212,21 +18183,21 @@
 	call Function1d6e
 	callba Function5e9a
 	call SpeechTextBox
-	call Function1ad2
+	call DrawOnMap
 	callba Function4cf45
 	ld hl, UnknownText_0x15283
-	call Function14baf
-	jr nz, .asm_14a4a
-	call Function14b89
-	jr c, .asm_14a4a
-	call Function14b54
-	call Function14be3
-	call Function14b5a
-	call Function1c07
+	call SaveTheGame_yesorno
+	jr nz, .refused
+	call CheckForExistingSaveFile
+	jr c, .refused
+	call SetWRAMStateForSave
+	call _SavingDontTurnOffThePower
+	call ClearWRAMStateAfterSave
+	call ExitMenu
 	and a
 	ret
-.asm_14a4a
-	call Function1c07
+.refused
+	call ExitMenu
 	call Functiond90
 	callba Function4cf45
 	scf
@@ -18233,16 +18204,16 @@
 	ret
 
 Function14a58: ; 14a58
-	call Function14b54
+	call SetWRAMStateForSave
 	callba Function14056
 	callba Function1050d9
-	call Function14df7
+	call SavePartyData
 	call Function14e13
-	call Function14e76
+	call LoadSavedPartyData
 	call Function14e8b
 	callba Function44725
 	callba Function1406a
-	call Function14b5a
+	call ClearWRAMStateAfterSave
 	ret
 ; 14a83
 
@@ -18250,41 +18221,41 @@
 Function14a83: ; 14a83 (5:4a83)
 	push de
 	ld hl, UnknownText_0x152a1
-	call Function1d4f
+	call MenuTextBox
 	call YesNoBox
-	call Function1c07
-	jr c, .asm_14ab0
-	call Function14b89
-	jr c, .asm_14ab0
-	call Function14b54
-	call Function14c99
+	call ExitMenu
+	jr c, .refused
+	call CheckForExistingSaveFile
+	jr c, .refused
+	call SetWRAMStateForSave
+	call SavingDontTurnOffThePower
 	call Function14e0c
 	pop de
 	ld a, e
 	ld [wCurBox], a
 	call Function15021
-	call Function14be6
-	call Function14b5a
+	call SavedTheGame
+	call ClearWRAMStateAfterSave
 	and a
 	ret
-.asm_14ab0
+.refused
 	pop de
 	ret
 
 Function14ab2: ; 14ab2
-	call Function14b89
-	jr c, .asm_14ac1
-	call Function14b54
-	call Function14be3
-	call Function14b5a
+	call CheckForExistingSaveFile
+	jr c, .refused
+	call SetWRAMStateForSave
+	call _SavingDontTurnOffThePower
+	call ClearWRAMStateAfterSave
 	and a
 
-.asm_14ac1
+.refused
 	ret
 ; 14ac2
 
 Function14ac2: ; 14ac2
-	call Function14b54
+	call SetWRAMStateForSave
 	push de
 	call Function14e0c
 	pop de
@@ -18291,12 +18262,12 @@
 	ld a, e
 	ld [wCurBox], a
 	call Function15021
-	call Function14b5a
+	call ClearWRAMStateAfterSave
 	ret
 ; 14ad5
 
 Function14ad5: ; 14ad5
-	call Function14b54
+	call SetWRAMStateForSave
 	push de
 	call Function14e0c
 	pop de
@@ -18307,20 +18278,20 @@
 	callba Function14056
 	callba Function1050d9
 	call Function14da9
-	call Function14dbb
-	call Function14dd7
-	call Function14df7
+	call SaveOptionsSelection
+	call SavePlayerData
+	call SavePartyData
 	call Function14e13
 	call Function14e2d
-	call Function14e40
-	call Function14e55
-	call Function14e76
+	call LoadSavedOptions
+	call LoadSavedPlayerData
+	call LoadSavedPartyData
 	call Function14e8b
 	callba Function44725
 	callba Function106187
 	callba Function1406a
 	call Function15021
-	call Function14b5a
+	call ClearWRAMStateAfterSave
 	ld de, SFX_SAVE
 	call PlaySFX
 	ld c, $18
@@ -18330,15 +18301,15 @@
 
 Function14b34: ; 14b34
 	ld hl, UnknownText_0x152a6
-	call Function1d4f
+	call MenuTextBox
 	call YesNoBox
-	call Function1c07
+	call ExitMenu
 	jr c, .asm_14b52
-	call Function14b89
+	call CheckForExistingSaveFile
 	jr c, .asm_14b52
-	call Function14b54
-	call Function14be3
-	call Function14b5a
+	call SetWRAMStateForSave
+	call _SavingDontTurnOffThePower
+	call ClearWRAMStateAfterSave
 	and a
 	ret
 
@@ -18347,13 +18318,13 @@
 	ret
 ; 14b54
 
-Function14b54: ; 14b54
+SetWRAMStateForSave: ; 14b54
 	ld a, $1
 	ld [wc2cd], a
 	ret
 ; 14b5a
 
-Function14b5a: ; 14b5a
+ClearWRAMStateAfterSave: ; 14b5a
 	xor a
 	ld [wc2cd], a
 	ret
@@ -18366,7 +18337,7 @@
 	ld hl, $bdd9
 	ld de, $be3b
 	ld bc, $0b1a
-.asm_14b6d
+.loop
 	ld a, [hld]
 	ld [de], a
 	dec de
@@ -18373,10 +18344,10 @@
 	dec bc
 	ld a, c
 	or b
-	jr nz, .asm_14b6d
+	jr nz, .loop
 	ld hl, OverworldMap
 	ld de, $b2c0
-	ld bc, $0062
+	ld bc, 7 * 14
 	call CopyBytes
 	call CloseSRAM
 	ret
@@ -18387,44 +18358,44 @@
 	ret
 ; 14b89
 
-Function14b89: ; 14b89
+CheckForExistingSaveFile: ; 14b89
 	ld a, [wcfcd]
 	and a
-	jr z, .asm_14ba8
+	jr z, .getridofpreviousplayersave
 	call Function14bcb
-	jr z, .asm_14b9e
+	jr z, .yoursavefile
 	ld hl, UnknownText_0x15297
-	call Function14baf
-	jr nz, .asm_14bad
-	jr .asm_14ba8
+	call SaveTheGame_yesorno
+	jr nz, .refused
+	jr .getridofpreviousplayersave
 
-.asm_14b9e
+.yoursavefile
 	ld hl, UnknownText_0x15292
-	call Function14baf
-	jr nz, .asm_14bad
-	jr .asm_14bab
+	call SaveTheGame_yesorno
+	jr nz, .refused
+	jr .ok
 
-.asm_14ba8
-	call Function14cbb
+.getridofpreviousplayersave
+	call GetRidOfPreviousPlayersSave
 
-.asm_14bab
+.ok
 	and a
 	ret
 
-.asm_14bad
+.refused
 	scf
 	ret
 ; 14baf
 
-Function14baf: ; 14baf
+SaveTheGame_yesorno: ; 14baf
 	ld b, BANK(UnknownText_0x15283)
-	call Function269a
-	call Function1d58
+	call MapTextbox
+	call LoadMenuTextBox
 	lb bc, 0, 7
 	call PlaceYesNoBox
 	ld a, [wcfa9]
 	dec a
-	call Function1c17
+	call WriteBackup
 	push af
 	call Functiond90
 	pop af
@@ -18448,23 +18419,29 @@
 	ret
 ; 14be3
 
-Function14be3: ; 14be3
-	call Function14c99
-Function14be6: ; 14be6
+_SavingDontTurnOffThePower: ; 14be3
+	call SavingDontTurnOffThePower
+SavedTheGame: ; 14be6
 	call Function14c10
+	; wait 32 frames
 	ld c, $20
 	call DelayFrames
+	; copy the original text speed setting to the stack
 	ld a, [Options]
 	push af
-	ld a, $3
+	; set text speed super slow
+	ld a, 3
 	ld [Options], a
+	; <PLAYER> saved the game!
 	ld hl, UnknownText_0x1528d
 	call PrintText
+	; restore the original text speed setting
 	pop af
 	ld [Options], a
 	ld de, SFX_SAVE
 	call WaitPlaySFX
 	call WaitSFX
+	; wait 30 frames
 	ld c, $1e
 	call DelayFrames
 	ret
@@ -18472,20 +18449,20 @@
 
 
 Function14c10: ; 14c10
-	ld a, $1
+	ld a, 1
 	ld [wcfcd], a
 	callba Function14056
 	callba Function1050d9
 	call Function14da9
-	call Function14dbb
-	call Function14dd7
-	call Function14df7
+	call SaveOptionsSelection
+	call SavePlayerData
+	call SavePartyData
 	call Function14e0c
 	call Function14e13
 	call Function14e2d
-	call Function14e40
-	call Function14e55
-	call Function14e76
+	call LoadSavedOptions
+	call LoadSavedPlayerData
+	call LoadSavedPartyData
 	call Function14e8b
 	call Function14c6b
 	callba Function44725
@@ -18541,20 +18518,26 @@
 	jr .asm_14c93
 ; 14c99
 
-Function14c99: ; 14c99
+SavingDontTurnOffThePower: ; 14c99
+	; Prevent joypad interrupts
 	xor a
 	ld [hJoypadReleased], a
 	ld [hJoypadPressed], a
 	ld [hJoypadSum], a
 	ld [hJoypadDown], a
+	; Save the text speed setting to the stack
 	ld a, [Options]
 	push af
+	; Set the text speed to super slow
 	ld a, $3
 	ld [Options], a
+	; SAVING... DON'T TURN OFF THE POWER.
 	ld hl, UnknownText_0x15288
 	call PrintText
+	; Restore the text speed setting
 	pop af
 	ld [Options], a
+	; Wait for 16 frames
 	ld c, $10
 	call DelayFrames
 	ret
@@ -18561,7 +18544,7 @@
 ; 14cbb
 
 
-Function14cbb: ; 14cbb
+GetRidOfPreviousPlayersSave: ; 14cbb
 	call Function151fb
 	call Function14d06
 	call Function14ce2
@@ -18610,11 +18593,12 @@
 ; 14d18
 
 Function14d18: ; 14d18
+; copy Unknown_14d2c to SRA4:a007
 	ld a, $4
 	call GetSRAMBank
 	ld hl, Unknown_14d2c
 	ld de, $a007
-	ld bc, $0030
+	ld bc, 48
 	call CopyBytes
 	jp CloseSRAM
 ; 14d2c
@@ -18649,10 +18633,10 @@
 	ld a, [$a60b]
 	ld b, $0
 	and a
-	jr z, .asm_14d7b
+	jr z, .ok
 	ld b, $2
 
-.asm_14d7b
+.ok
 	ld a, b
 	ld [$a60b], a
 	call CloseSRAM
@@ -18683,7 +18667,7 @@
 	ld a, [wd4b4]
 	and a
 	ret nz
-	call Function14cbb
+	call GetRidOfPreviousPlayersSave
 	ret
 ; 14da9
 
@@ -18690,19 +18674,20 @@
 Function14da9: ; 14da9
 	ld a, $1
 	call GetSRAMBank
-	ld a, $63
+	ld a, 99
 	ld [$a008], a
-	ld a, $7f
+	ld a, " "
 	ld [$ad0f], a
 	jp CloseSRAM
 ; 14dbb
 
-Function14dbb: ; 14dbb
+SaveOptionsSelection: ; 14dbb
+; Copy Options to SRA1:a000
 	ld a, $1
 	call GetSRAMBank
 	ld hl, Options
 	ld de, $a000
-	ld bc, $0008
+	ld bc, OptionsEnd - Options
 	call CopyBytes
 	ld a, [Options]
 	and $ef
@@ -18710,26 +18695,28 @@
 	jp CloseSRAM
 ; 14dd7
 
-Function14dd7: ; 14dd7
+SavePlayerData: ; 14dd7
+; Copy 2122 bytes starting at PlayerID to SRA1:a009
 	ld a, $1
 	call GetSRAMBank
 	ld hl, PlayerID
 	ld de, $a009
-	ld bc, $082a
+	ld bc, VisitedSpawns - PlayerID
 	call CopyBytes
 	ld hl, VisitedSpawns
 	ld de, $a833
-	ld bc, $0032
+	ld bc, PartyCount - VisitedSpawns
 	call CopyBytes
 	jp CloseSRAM
 ; 14df7
 
-Function14df7: ; 14df7
+SavePartyData: ; 14df7
+; Copy your party to SRA1:a865.
 	ld a, $1
 	call GetSRAMBank
 	ld hl, PartyCount
 	ld de, $a865
-	ld bc, $031e
+	ld bc, wdff5 - PartyCount
 	call CopyBytes
 	call CloseSRAM
 	ret
@@ -18758,46 +18745,46 @@
 Function14e2d: ; 14e2d
 	ld a, $0
 	call GetSRAMBank
-	ld a, $63
+	ld a, 99
 	ld [$b208], a
-	ld a, $7f
+	ld a, " "
 	ld [$bf0f], a
 	call CloseSRAM
 	ret
 ; 14e40
 
-Function14e40: ; 14e40
+LoadSavedOptions: ; 14e40
 	ld a, $0
 	call GetSRAMBank
 	ld hl, Options
 	ld de, $b200
-	ld bc, $0008
+	ld bc, OptionsEnd - Options
 	call CopyBytes
 	call CloseSRAM
 	ret
 ; 14e55
 
-Function14e55: ; 14e55
+LoadSavedPlayerData: ; 14e55
 	ld a, $0
 	call GetSRAMBank
 	ld hl, PlayerID
 	ld de, $b209
-	ld bc, $082a
+	ld bc, VisitedSpawns - PlayerID
 	call CopyBytes
 	ld hl, VisitedSpawns
 	ld de, $ba33
-	ld bc, $0032
+	ld bc, PartyCount - VisitedSpawns
 	call CopyBytes
 	call CloseSRAM
 	ret
 ; 14e76
 
-Function14e76: ; 14e76
+LoadSavedPartyData: ; 14e76
 	ld a, $0
 	call GetSRAMBank
 	ld hl, PartyCount
 	ld de, $ba65
-	ld bc, $031e
+	ld bc, wdff5 - PartyCount
 	call CopyBytes
 	call CloseSRAM
 	ret
@@ -18818,9 +18805,9 @@
 ; 14ea5
 
 
-Function14ea5: ; 14ea5 (5:4ea5)
+TryLoadSaveFile: ; 14ea5 (5:4ea5)
 	call Function15028
-	jr nz, .asm_14ed6
+	jr nz, .trytowrite
 	call Function14fd7
 	call Function1500c
 	call Function15021
@@ -18828,15 +18815,15 @@
 	callba Function10619d
 	callba Function1050ea
 	call Function14e2d
-	call Function14e40
-	call Function14e55
-	call Function14e76
+	call LoadSavedOptions
+	call LoadSavedPlayerData
+	call LoadSavedPartyData
 	call Function14e8b
 	and a
 	ret
-.asm_14ed6
+.trytowrite
 	call Function1507c
-	jr nz, .asm_14f07
+	jr nz, .corrupt
 	call Function15046
 	call Function15067
 	call Function15021
@@ -18844,13 +18831,13 @@
 	callba Function10619d
 	callba Function1050ea
 	call Function14da9
-	call Function14dbb
-	call Function14dd7
-	call Function14df7
+	call SaveOptionsSelection
+	call SavePlayerData
+	call SavePartyData
 	call Function14e13
 	and a
 	ret
-.asm_14f07
+.corrupt
 	ld a, [Options]
 	push af
 	set 4, a
@@ -18892,7 +18879,7 @@
 	call GetSRAMBank
 	ld hl, $b244
 	ld de, StartDay
-	ld bc, $0008
+	ld bc, 8
 	call CopyBytes
 	ld hl, $b5da
 	ld de, StatusFlags
@@ -18904,7 +18891,7 @@
 .asm_14f6c
 	ld hl, DefaultOptions
 	ld de, Options
-	ld bc, $0008
+	ld bc, OptionsEnd - Options
 	call CopyBytes
 	call Function67e
 	ret
@@ -18921,25 +18908,24 @@
 	db $00
 ; 14f84
 
-
 Function14f84: ; 14f84
 	ld a, $1
 	call GetSRAMBank
 	ld a, [$a008]
-	cp $63
-	jr nz, .asm_14fab
+	cp 99
+	jr nz, .nope
 	ld a, [$ad0f]
-	cp $7f
-	jr nz, .asm_14fab
+	cp " "
+	jr nz, .nope
 	ld hl, $a000
 	ld de, Options
-	ld bc, $0008
+	ld bc, OptionsEnd - Options
 	call CopyBytes
 	call CloseSRAM
 	ld a, $1
 	ld [wcfcd], a
 
-.asm_14fab
+.nope
 	call CloseSRAM
 	ret
 ; 14faf
@@ -18948,19 +18934,19 @@
 	ld a, $0
 	call GetSRAMBank
 	ld a, [$b208]
-	cp $63
-	jr nz, .asm_14fd3
+	cp 99
+	jr nz, .nope
 	ld a, [$bf0f]
-	cp $7f
-	jr nz, .asm_14fd3
+	cp " "
+	jr nz, .nope
 	ld hl, $b200
 	ld de, Options
-	ld bc, $0008
+	ld bc, OptionsEnd - Options
 	call CopyBytes
 	ld a, $2
 	ld [wcfcd], a
 
-.asm_14fd3
+.nope
 	call CloseSRAM
 	ret
 ; 14fd7
@@ -18971,11 +18957,11 @@
 	call GetSRAMBank
 	ld hl, $a009
 	ld de, PlayerID
-	ld bc, $82a
+	ld bc, VisitedSpawns - PlayerID
 	call CopyBytes
 	ld hl, $a833
 	ld de, VisitedSpawns
-	ld bc, $32
+	ld bc, PartyCount - VisitedSpawns
 	call CopyBytes
 	call CloseSRAM
 	ld a, $1
@@ -18994,7 +18980,7 @@
 	call GetSRAMBank
 	ld hl, $a865
 	ld de, PartyCount
-	ld bc, $031e
+	ld bc, wdff5 - PartyCount
 	call CopyBytes
 	call CloseSRAM
 	ret
@@ -19028,11 +19014,11 @@
 	call GetSRAMBank
 	ld hl, $b209
 	ld de, PlayerID
-	ld bc, $82a
+	ld bc, VisitedSpawns - PlayerID
 	call CopyBytes
 	ld hl, $ba33
 	ld de, VisitedSpawns
-	ld bc, $32
+	ld bc, PartyCount - VisitedSpawns
 	call CopyBytes
 	call CloseSRAM
 	ret
@@ -19042,7 +19028,7 @@
 	call GetSRAMBank
 	ld hl, $ba65
 	ld de, PartyCount
-	ld bc, $31e
+	ld bc, wdff5 - PartyCount
 	call CopyBytes
 	call CloseSRAM
 	ret
@@ -19070,7 +19056,7 @@
 	call GetSRAMBank
 	ld hl, PlayerGender
 	ld de, $be3d
-	ld bc, $0007
+	ld bc, wd479 - PlayerGender
 	call CopyBytes
 	ld hl, wd479
 	ld a, [hli]
@@ -19086,7 +19072,7 @@
 	call GetSRAMBank
 	ld hl, $be3d
 	ld de, PlayerGender
-	ld bc, $7
+	ld bc, wd479 - PlayerGender
 	call CopyBytes
 	ld hl, wd479
 	ld a, [$a60e]
@@ -19107,11 +19093,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Unknown_1522d
+rept 5
 	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	push af
 	ld a, [hli]
@@ -19247,7 +19231,7 @@
 Function151fb: ; 151fb
 	ld hl, Unknown_1522d
 	ld c, $e
-.asm_15200
+.outerloop
 	push bc
 	ld a, [hli]
 	call GetSRAMBank
@@ -19258,11 +19242,11 @@
 	xor a
 	ld [de], a
 	inc de
-	ld a, $ff
+	ld a, -1
 	ld [de], a
 	inc de
 	ld bc, $044c
-.asm_15213
+.loop
 	xor a
 	ld [de], a
 	inc de
@@ -19269,12 +19253,12 @@
 	dec bc
 	ld a, b
 	or c
-	jr nz, .asm_15213
+	jr nz, .loop
 	ld a, [hli]
 	ld e, a
 	ld a, [hli]
 	ld d, a
-	ld a, $ff
+	ld a, -1
 	ld [de], a
 	inc de
 	xor a
@@ -19282,43 +19266,43 @@
 	call CloseSRAM
 	pop bc
 	dec c
-	jr nz, .asm_15200
+	jr nz, .outerloop
 	ret
 ; 1522d
 
 Unknown_1522d: ; 1522d
 ; dbww bank, address, address
-	db $02, $00, $a0, $4e, $a4 ; 2, $a000, $a44e
-	db $02, $50, $a4, $9e, $a8 ; 2, $a450, $a89e
-	db $02, $a0, $a8, $ee, $ac ; 2, $a8a0, $acee
-	db $02, $f0, $ac, $3e, $b1 ; 2, $acf0, $b13e
-	db $02, $40, $b1, $8e, $b5 ; 2, $b140, $b5de
-	db $02, $90, $b5, $de, $b9 ; 2, $b590, $b9de
-	db $02, $e0, $b9, $2e, $be ; 2, $b9e0, $be2e
+	dbww $02, $a000, $a44e ; 2, $a000, $a44e
+	dbww $02, $a450, $a89e ; 2, $a450, $a89e
+	dbww $02, $a8a0, $acee ; 2, $a8a0, $acee
+	dbww $02, $acf0, $b13e ; 2, $acf0, $b13e
+	dbww $02, $b140, $b58e ; 2, $b140, $b5de
+	dbww $02, $b590, $b9de ; 2, $b590, $b9de
+	dbww $02, $b9e0, $be2e ; 2, $b9e0, $be2e
 
-	db $03, $00, $a0, $4e, $a4 ; 3, $a000, $a44e
-	db $03, $50, $a4, $9e, $a8 ; 3, $a450, $a89e
-	db $03, $a0, $a8, $ee, $ac ; 3, $a8a0, $acee
-	db $03, $f0, $ac, $3e, $b1 ; 3, $acf0, $b13e
-	db $03, $40, $b1, $8e, $b5 ; 3, $b140, $b58e
-	db $03, $90, $b5, $de, $b9 ; 3, $b590, $b9de
-	db $03, $e0, $b9, $2e, $be ; 3, $b9e0, $be2e
+	dbww $03, $a000, $a44e ; 3, $a000, $a44e
+	dbww $03, $a450, $a89e ; 3, $a450, $a89e
+	dbww $03, $a8a0, $acee ; 3, $a8a0, $acee
+	dbww $03, $acf0, $b13e ; 3, $acf0, $b13e
+	dbww $03, $b140, $b58e ; 3, $b140, $b58e
+	dbww $03, $b590, $b9de ; 3, $b590, $b9de
+	dbww $03, $b9e0, $be2e ; 3, $b9e0, $be2e
 ; 15273
 
 
 Function15273: ; 15273
-	ld de, $0000
-.asm_15276
+	ld de, 0
+.loop
 	ld a, [hli]
 	add e
 	ld e, a
-	ld a, $0
+	ld a, 0
 	adc d
 	ld d, a
 	dec bc
 	ld a, b
 	or c
-	jr nz, .asm_15276
+	jr nz, .loop
 	ret
 ; 15283
 
@@ -19376,73 +19360,81 @@
 
 INCLUDE "engine/map_setup.asm"
 
-Function1559a: ; 1559a
-	call Function15650
+PokemonCenterPC: ; 1559a
+	call PC_CheckPartyForPokemon
 	ret c
-	call Function156b3
+	call PC_PlayBootSound
 	ld hl, UnknownText_0x15a27
-	call Function15a20
+	call PC_DisplayText
 	ld hl, UnknownText_0x15a2c
-	call Function157bb
-	ld hl, MenuDataHeader_0x155d6
+	call PC_DisplayTextWaitMenu
+	ld hl, .TopMenu
 	call LoadMenuDataHeader
-.asm_155b3
+.loop
 	xor a
 	ld [hBGMapMode], a
 	call Function1563e
 	ld [wcf76], a
 	call Function1e5d
-	jr c, .asm_155cc
+	jr c, .shutdown
 	ld a, [MenuSelection]
-	ld hl, Unknown_155e6
+	ld hl, .JumpTable
 	call Function1fa7
-	jr nc, .asm_155b3
+	jr nc, .loop
 
-.asm_155cc
+.shutdown
 	call Function156b8
-	call Function1c07
-	call Function1c17
+	call ExitMenu
+	call WriteBackup
 	ret
 ; 155d6
 
-MenuDataHeader_0x155d6: ; 0x155d6
+.TopMenu: ; 0x155d6
 	db $48 ; flags
 	db 00, 00 ; start coords
 	db 12, 15 ; end coords
-	dw MenuData2_0x155de
+	dw .MenuData2
 	db 1 ; default option
 ; 0x155de
 
-MenuData2_0x155de: ; 0x155de
+.MenuData2: ; 0x155de
 	db $a0 ; flags
 	db 0 ; items
-	dw Unknown_1562c
+	dw .WhichPC
 	dw Function1f8d
-	dw Unknown_155e6
+	dw .JumpTable
 ; 0x155e6
 
-Unknown_155e6: ; 155e6
-	dw Function15679, String_155fa
-	dw Function15668, String_15600
-	dw Function15689, String_15609
-	dw Function1569a, String_15616
-	dw Function156ab, String_15623
+.JumpTable: ; 155e6
+	dw Function15679, .String_PlayersPC
+	dw Function15668, .String_BillsPC
+	dw Function15689, .String_OaksPC
+	dw Function1569a, .String_HallOfFame
+	dw Function156ab, .String_TurnOff
 ; 155fa
 
-String_155fa:	db "<PLAYER>'s PC@"
-String_15600:	db "BILL's PC@"
-String_15609:	db "PROF.OAK's PC@"
-String_15616:	db "HALL OF FAME@"
-String_15623:	db "TURN OFF@"
+.String_PlayersPC:	db "<PLAYER>'s PC@"
+.String_BillsPC:	db "BILL's PC@"
+.String_OaksPC:	    db "PROF.OAK's PC@"
+.String_HallOfFame:	db "HALL OF FAME@"
+.String_TurnOff:	db "TURN OFF@"
 ; 1562c
 
-Unknown_1562c: ; 1562c
-	db 3
-	db 1, 0, 4, $ff
-	db 4
-	db 1, 0, 2, 4, $ff
-	db 5
-	db 1, 0, 2, 3, 4, $ff
+.WhichPC: ; 1562c
+	; before pokedex
+	db  3 ; items
+	db  1, 0, 4 ; bill's, player's, turn off
+	db -1
+
+	; before Hall Of Fame
+	db  4 ; items
+	db  1, 0, 2, 4 ; bill's, player's, oak's, turn off
+	db -1
+
+	; postgame
+	db  5 ; items
+	db  1, 0, 2, 3, 4 ; bill's, player's, oak's, hall of fame, turn off
+	db -1
 ; 1563e
 
 Function1563e: ; 1563e
@@ -19460,7 +19452,7 @@
 	ret
 ; 15650
 
-Function15650: ; 15650
+PC_CheckPartyForPokemon: ; 15650
 	ld a, [PartyCount]
 	and a
 	ret nz
@@ -19467,7 +19459,7 @@
 	ld de, SFX_CHOOSE_PC_OPTION
 	call PlaySFX
 	ld hl, UnknownText_0x15663
-	call Function15a20
+	call PC_DisplayText
 	scf
 	ret
 ; 15663
@@ -19481,7 +19473,7 @@
 Function15668: ; 15668
 	call Function156c2
 	ld hl, UnknownText_0x15a31
-	call Function15a20
+	call PC_DisplayText
 	callba Functione3fd
 	and a
 	ret
@@ -19490,7 +19482,7 @@
 Function15679: ; 15679
 	call Function156c2
 	ld hl, UnknownText_0x15a36
-	call Function15a20
+	call PC_DisplayText
 	ld b, $0
 	call Function15704
 	and a
@@ -19500,7 +19492,7 @@
 Function15689: ; 15689
 	call Function156c2
 	ld hl, UnknownText_0x15a3b
-	call Function15a20
+	call PC_DisplayText
 	callba ProfOaksPC
 	and a
 	ret
@@ -19522,7 +19514,7 @@
 	ret
 ; 156b3
 
-Function156b3: ; 156b3
+PC_PlayBootSound: ; 156b3
 	ld de, SFX_BOOT_PC
 	jr Function156d0
 
@@ -19550,9 +19542,9 @@
 ; 156d9
 
 Function156d9: ; 156d9
-	call Function156b3
+	call PC_PlayBootSound
 	ld hl, UnknownText_0x156ff
-	call Function15a20
+	call PC_DisplayText
 	ld b, $1
 	call Function15704
 	and a
@@ -19559,7 +19551,7 @@
 	jr nz, .asm_156f9
 	call Function2173
 	call Function321c
-	call Function1ad2
+	call DrawOnMap
 	call Function156b8
 	ld c, $0
 	ret
@@ -19580,9 +19572,9 @@
 	ld a, b
 	ld [wcf76], a
 	ld hl, UnknownText_0x157cc
-	call Function157bb
+	call PC_DisplayTextWaitMenu
 	call Function15715
-	call Function1c07
+	call ExitMenu
 	ret
 ; 15715
 
@@ -19604,7 +19596,7 @@
 	xor a
 
 .asm_15732
-	call Function1c07
+	call ExitMenu
 	ret
 ; 15736
 
@@ -19654,7 +19646,7 @@
 	db TOSS_ITEM
 	db MAIL_BOX
 	db TURN_OFF
-	db $ff
+	db -1
 
 .KrissPCMenuList2
 	db 6
@@ -19664,14 +19656,14 @@
 	db MAIL_BOX
 	db DECORATION
 	db LOG_OFF
-	db $ff
+	db -1
 
-Function157bb: ; 157bb
+PC_DisplayTextWaitMenu: ; 157bb
 	ld a, [Options]
 	push af
 	set 4, a
 	ld [Options], a
-	call Function1d4f
+	call MenuTextBox
 	pop af
 	ld [Options], a
 	ret
@@ -19712,10 +19704,10 @@
 
 .askquantity
 	ld hl, .HowManyText
-	call Function1d4f
+	call MenuTextBox
 	callba Function24fbf
-	call Function1c07
-	call Function1c07
+	call ExitMenu
+	call ExitMenu
 	jr c, .done
 
 .withdraw
@@ -19734,15 +19726,15 @@
 	call TossItem
 	predef PartyMonItemName
 	ld hl, .WithdrewText
-	call Function1d4f
+	call MenuTextBox
 	xor a
 	ld [hBGMapMode], a
-	call Function1c07
+	call ExitMenu
 	ret
 
 .PackFull
 	ld hl, .NoRoomText
-	call Function1d67
+	call MenuTextBoxBackup
 	ret
 
 .done
@@ -19823,7 +19815,7 @@
 	callba Function129d5
 	ret nc
 	ld hl, UnknownText_0x158c7
-	call Function1d67
+	call MenuTextBoxBackup
 	scf
 	ret
 ; 0x158c7
@@ -19884,11 +19876,11 @@
 
 .asm_1591d
 	ld hl, .HowManyText
-	call Function1d4f
+	call MenuTextBox
 	callba Function24fbf
 	push af
-	call Function1c07
-	call Function1c07
+	call ExitMenu
+	call ExitMenu
 	pop af
 	jr c, .asm_1596c
 
@@ -19951,7 +19943,7 @@
 	ld a, $0
 	ld [wc2ce], a
 	ld hl, MenuData15a08
-	call Function1d3c
+	call CopyMenuDataHeader
 	hlcoord 0, 0
 	ld b, $a
 	ld c, $12
@@ -20030,9 +20022,9 @@
 	dbw BANK(Function24ac3), Function24ac3
 	dbw BANK(Function244c3), Function244c3
 
-Function15a20: ; 15a20
-	call Function1d4f
-	call Function1c07
+PC_DisplayText: ; 15a20
+	call MenuTextBox
+	call ExitMenu
 	ret
 ; 15a27
 
@@ -20078,7 +20070,7 @@
 	call GetMart
 	ld a, c
 	ld [EngineBuffer1], a
-	call Function15b10
+	call LoadMartPointer
 	ld a, [EngineBuffer1]
 	ld hl, .dialogs
 	rst JumpTable
@@ -20090,7 +20082,7 @@
 	dw HerbShop
 	dw BargainShop
 	dw Pharmacist
-	dw VendingMachine
+	dw RooftopSale
 ; 15a61
 
 MartDialog: ; 15a61
@@ -20114,9 +20106,9 @@
 ; 15a84
 
 BargainShop: ; 15a84
-	ld b, BANK(Unknown_15c51)
-	ld de, Unknown_15c51
-	call Function15b10
+	ld b, BANK(BargainShopData)
+	ld de, BargainShopData
+	call LoadMartPointer
 	call Function15c25
 	call Function1d6e
 	ld hl, UnknownText_0x15e6d
@@ -20126,7 +20118,7 @@
 	ld a, [hli]
 	or [hl]
 	jr z, .asm_15aa7
-	ld hl, wdc1e
+	ld hl, DailyFlags
 	set 6, [hl]
 
 .asm_15aa7
@@ -20146,17 +20138,17 @@
 	ret
 ; 15ac4
 
-VendingMachine: ; 15ac4
-	ld b, BANK(Unknown_15aee)
-	ld de, Unknown_15aee
+RooftopSale: ; 15ac4
+	ld b, BANK(RooftopSaleData1)
+	ld de, RooftopSaleData1
 	ld hl, StatusFlags
-	bit 6, [hl]
-	jr z, .asm_15ad5
-	ld b, BANK(Unknown_15aff)
-	ld de, Unknown_15aff
+	bit 6, [hl] ; hall of fame
+	jr z, .ok
+	ld b, BANK(RooftopSaleData2)
+	ld de, RooftopSaleData2
 
-.asm_15ad5
-	call Function15b10
+.ok
+	call LoadMartPointer
 	call Function15c25
 	call Function1d6e
 	ld hl, UnknownText_0x15f83
@@ -20167,15 +20159,27 @@
 	ret
 ; 15aee
 
-Unknown_15aee: ; 15aee
-	db $05, $05, $96, $00, $04, $f4, $01, $11, $f4, $01, $26, $f4, $01, $27, $b0, $04, $ff
-Unknown_15aff: ; 15aff
-	db $05, $10, $e8, $03, $0e, $d0, $07, $26, $f4, $01, $02, $e8, $03, $1b, $78, $1e, $ff
+RooftopSaleData1: ; 15aee
+	db 5
+	dbw POKE_BALL,     150
+	dbw GREAT_BALL,    500
+	dbw SUPER_POTION,  500
+	dbw FULL_HEAL,     500
+	dbw REVIVE,       1200
+	db -1
+RooftopSaleData2: ; 15aff
+	db 5
+	dbw HYPER_POTION, 1000
+	dbw FULL_RESTORE, 2000
+	dbw FULL_HEAL,     500
+	dbw ULTRA_BALL,   1000
+	dbw PROTEIN,      7800
+	db -1
 ; 15b10
 
-Function15b10: ; 15b10
+LoadMartPointer: ; 15b10
 	ld a, b
-	ld [wd03f], a
+	ld [MartPointerBank], a
 	ld a, e
 	ld [MartPointer], a
 	ld a, d
@@ -20201,8 +20205,9 @@
 
 .IsAMart
 	ld hl, Marts
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
@@ -20239,8 +20244,8 @@
 
 Function15b6e: ; 15b6e
 	ld hl, MenuDataHeader_0x15f88
-	call Function1d3c
-	call Function1d81
+	call CopyMenuDataHeader
+	call InterpretMenu2
 	jr c, .asm_15b84
 	ld a, [wcfa9]
 	cp $1
@@ -20259,7 +20264,7 @@
 ; 15b8d
 
 Function15b8d: ; 15b8d
-	call Function1c07
+	call ExitMenu
 	call ReadMart
 	call Function15c62
 	and a
@@ -20268,7 +20273,7 @@
 ; 15b9a
 
 Function15b9a: ; 15b9a
-	call Function1c07
+	call ExitMenu
 	call Function15eb3
 	ld a, $5
 	ret
@@ -20275,7 +20280,7 @@
 ; 15ba3
 
 Function15ba3: ; 15ba3
-	call Function1c07
+	call ExitMenu
 	ld hl, UnknownText_0x15fb4
 	call Function15fcd
 	ld a, $ff
@@ -20302,7 +20307,7 @@
 	ld [de], a
 	inc hl
 	inc de
-	cp $ff
+	cp -1
 	jr nz, .CopyMart
 	ld hl, DefaultFlypoint
 	ld de, CurMart + 1
@@ -20336,13 +20341,13 @@
 	ld [StringBuffer2 + 1], a
 	ld hl, StringBuffer1
 	ld de, StringBuffer2
-	ld bc, $82 << 8 + 6 ; 6 digits
+	lb bc, $82, 6 ; 6 digits
 	call PrintNum
 	pop hl
 
 	ld de, StringBuffer1
 	ld c, 6 / 2 ; 6 digits
-.asm_15c0b
+.loop
 	call .TileToNum
 	swap a
 	ld b, a
@@ -20350,7 +20355,7 @@
 	or b
 	ld [hli], a
 	dec c
-	jr nz, .asm_15c0b
+	jr nz, .loop
 	ret
 ; 15c1a
 
@@ -20375,12 +20380,12 @@
 	inc hl
 	ld bc, wd002
 	ld de, CurMart + 1
-.asm_15c33
+.loop
 	ld a, [hli]
 	ld [de], a
 	inc de
-	cp $ff
-	jr z, .asm_15c4b
+	cp -1
+	jr z, .done
 
 	push de
 	ld a, [hli]
@@ -20395,9 +20400,9 @@
 	ld c, l
 	pop hl
 	pop de
-	jr .asm_15c33
+	jr .loop
 
-.asm_15c4b
+.done
 	pop hl
 	ld a, [hl]
 	ld [CurMart], a
@@ -20404,8 +20409,14 @@
 	ret
 ; 15c51
 
-Unknown_15c51: ; 15c51
-	db $05, $24, $94, $11, $6e, $8a, $02, $6f, $ac, $0d, $83, $84, $03, $84, $f8, $11, $ff
+BargainShopData: ; 15c51
+	db 5
+	dbw NUGGET,     4500
+	dbw PEARL,       650
+	dbw BIG_PEARL,  3500
+	dbw STARDUST,    900
+	dbw STAR_PIECE, 4600
+	db -1
 ; 15c62
 
 
@@ -20432,8 +20443,9 @@
 	pop af
 	ld e, a
 	ld d, 0
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -20443,8 +20455,9 @@
 
 Function15c91: ; 15c91
 	call Function15ca3
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [hl]
 	and a
 	jp z, Function15d83
@@ -20458,9 +20471,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, .data_15cb0
+rept 3
 	add hl, de
-	add hl, de
-	add hl, de
+endr
 	ret
 ; 15cb0
 
@@ -20508,9 +20521,9 @@
 
 Function15cef: ; 15cef
 	callba Function24ae8
-	call Function1ad2
+	call DrawOnMap
 	ld hl, MenuDataHeader_0x15e18
-	call Function1d3c
+	call CopyMenuDataHeader
 	ld a, [WalkingX]
 	ld [wcf88], a
 	ld a, [WalkingY]
@@ -20533,9 +20546,9 @@
 	call Function15d97
 	jr c, .asm_15d68
 	ld de, Money
-	ld bc, $ffc3
+	ld bc, hMoneyTemp
 	ld a, $3
-	call Function1600b
+	call CheckMoney
 	jr c, .asm_15d79
 	ld hl, NumItems
 	call ReceiveItem
@@ -20548,8 +20561,8 @@
 	call FlagAction
 	call Function15fc3
 	ld de, Money
-	ld bc, $ffc3
-	call Function15ffa
+	ld bc, hMoneyTemp
+	call TakeMoney
 	ld a, $4
 	call Function15c7d
 	call Functiona36
@@ -20584,7 +20597,7 @@
 	ld a, $0
 	call Function15c7d
 	callba Function24fc9
-	call Function1c07
+	call ExitMenu
 	ret
 ; 15d97
 
@@ -20616,9 +20629,9 @@
 	ld h, [hl]
 	ld l, a
 	inc hl
+rept 3
 	add hl, de
-	add hl, de
-	add hl, de
+endr
 	inc hl
 	ld a, [hli]
 	ld [$ffc5], a
@@ -20625,7 +20638,7 @@
 	ld a, [hl]
 	ld [$ffc4], a
 	xor a
-	ld [$ffc3], a
+	ld [hMoneyTemp], a
 	and a
 	ret
 
@@ -20644,7 +20657,7 @@
 	ld a, $63
 	ld [wd10d], a
 	callba Function24fcf
-	call Function1c07
+	call ExitMenu
 	ret
 ; 15df9
 
@@ -20657,9 +20670,9 @@
 	ld h, [hl]
 	ld l, a
 	inc hl
+rept 3
 	add hl, de
-	add hl, de
-	add hl, de
+endr
 	inc hl
 	ld e, [hl]
 	inc hl
@@ -20703,9 +20716,9 @@
 	ld c, a
 	ld b, 0
 	ld hl, DefaultFlypoint
+rept 3
 	add hl, bc
-	add hl, bc
-	add hl, bc
+endr
 	push de
 	ld d, h
 	ld e, l
@@ -20864,7 +20877,7 @@
 
 Function15ed3: ; 15ed3
 	ld hl, UnknownText_0x15edb
-	call Function1d67
+	call MenuTextBoxBackup
 	and a
 	ret
 ; 15edb
@@ -20914,7 +20927,7 @@
 	call PrintText
 	callba Function24af8
 	callba Function24fe1
-	call Function1c07
+	call ExitMenu
 	jr c, .asm_15f6e
 	hlcoord 1, 14
 	ld bc, $0312
@@ -20924,8 +20937,8 @@
 	call YesNoBox
 	jr c, .asm_15f6e
 	ld de, Money
-	ld bc, $ffc3
-	call Function15fd7
+	ld bc, hMoneyTemp
+	call GiveMoney
 	ld a, [wd107]
 	ld hl, NumItems
 	call TossItem
@@ -20940,7 +20953,7 @@
 	call Functiona36
 
 .asm_15f6e
-	call Function1c07
+	call ExitMenu
 	and a
 	ret
 ; 15f73
@@ -21030,21 +21043,21 @@
 ; 15fcd
 
 Function15fcd: ; 15fcd
-	call Function1d4f
+	call MenuTextBox
 	call Functiona36
-	call Function1c07
+	call ExitMenu
 	ret
 ; 15fd7
 
-Function15fd7:: ; 15fd7
+GiveMoney:: ; 15fd7
 	ld a, $3
 	call Function16053
-	ld bc, Unknown_15ff7
+	ld bc, MaxMoney
 	ld a, $3
-	call Function1600b
+	call CheckMoney
 	jr z, .asm_15ff5
 	jr c, .asm_15ff5
-	ld hl, Unknown_15ff7
+	ld hl, MaxMoney
 	ld a, [hli]
 	ld [de], a
 	inc de
@@ -21061,12 +21074,12 @@
 	ret
 ; 15ff7
 
-Unknown_15ff7: ; 15ff7
+MaxMoney: ; 15ff7
 	dt 999999
 ; 15ffa
 
 
-Function15ffa:: ; 15ffa
+TakeMoney:: ; 15ffa
 	ld a, $3
 	call Function16035
 	jr nc, .asm_16009
@@ -21084,9 +21097,9 @@
 	ret
 ; 1600b
 
-Function1600b:: ; 1600b
+CheckMoney:: ; 1600b
 	ld a, $3
-Function1600d: ; 1600d
+CheckFunds: ; 1600d
 	push hl
 	push de
 	push bc
@@ -21196,13 +21209,13 @@
 	ret
 ; 1606f
 
-Function1606f:: ; 1606f
+GiveCoins:: ; 1606f
 	ld a, $2
 	ld de, Coins
 	call Function16055
 	ld a, $2
 	ld bc, Unknown_1608d
-	call Function1600d
+	call CheckFunds
 	jr c, .asm_1608b
 	ld hl, Unknown_1608d
 	ld a, [hli]
@@ -21223,7 +21236,7 @@
 ; 1608f
 
 
-Function1608f:: ; 1608f
+TakeCoins:: ; 1608f
 	ld a, $2
 	ld de, Coins
 	call Function16037
@@ -21240,10 +21253,10 @@
 	ret
 ; 160a1
 
-Function160a1:: ; 160a1
+CheckCoins:: ; 160a1
 	ld a, $2
 	ld de, Coins
-	jp Function1600d
+	jp CheckFunds
 ; 160a9
 
 
@@ -21250,7 +21263,7 @@
 INCLUDE "items/marts.asm"
 
 
-Function16218: ; 16218
+Special_BankOfMom: ; 16218
 	ld a, [$ffaa]
 	push af
 	ld a, $1
@@ -21275,8 +21288,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_16242
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -21356,9 +21370,9 @@
 	call PrintText
 	call Function1d6e
 	ld hl, MenuDataHeader_0x166b5
-	call Function1d3c
-	call Function1d81
-	call Function1c17
+	call CopyMenuDataHeader
+	call InterpretMenu2
+	call WriteBackup
 	jr c, .asm_162ce
 	ld a, [wcfa9]
 	cp $1
@@ -21393,8 +21407,9 @@
 	call PrintText
 	xor a
 	ld hl, StringBuffer2
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 	ld a, $5
 	ld [wcf64], a
@@ -21402,7 +21417,7 @@
 	call Function16517
 	call Function1656b
 	call Function16571
-	call Function1c17
+	call WriteBackup
 	jr c, .asm_1636d
 	ld hl, StringBuffer2
 	ld a, [hli]
@@ -21412,7 +21427,7 @@
 	jr z, .asm_1636d
 	ld de, Money
 	ld bc, StringBuffer2
-	callba Function1600b
+	callba CheckMoney
 	jr c, .asm_1635f
 	ld hl, StringBuffer2
 	ld de, StringBuffer2 + 3
@@ -21420,11 +21435,11 @@
 	call CopyBytes
 	ld bc, wd851
 	ld de, StringBuffer2
-	callba Function15fd7
+	callba GiveMoney
 	jr c, .asm_16366
 	ld bc, StringBuffer2 + 3
 	ld de, Money
-	callba Function15ffa
+	callba TakeMoney
 	ld hl, StringBuffer2
 	ld de, wd851
 	ld bc, $0003
@@ -21460,8 +21475,9 @@
 	call PrintText
 	xor a
 	ld hl, StringBuffer2
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 	ld a, $5
 	ld [wcf64], a
@@ -21469,7 +21485,7 @@
 	call Function16512
 	call Function1656b
 	call Function16571
-	call Function1c17
+	call WriteBackup
 	jr c, .asm_16400
 	ld hl, StringBuffer2
 	ld a, [hli]
@@ -21483,15 +21499,15 @@
 	call CopyBytes
 	ld de, wd851
 	ld bc, StringBuffer2
-	callba Function1600b
+	callba CheckMoney
 	jr c, .asm_163f2
 	ld bc, Money
 	ld de, StringBuffer2
-	callba Function15fd7
+	callba GiveMoney
 	jr c, .asm_163f9
 	ld bc, StringBuffer2 + 3
 	ld de, wd851
-	callba Function15ffa
+	callba TakeMoney
 	ld hl, StringBuffer2
 	ld de, Money
 	ld bc, $0003
@@ -21561,11 +21577,11 @@
 	jr z, .asm_16447
 	and a ; within one hour of 00:00?
 	jr z, .LostBooklet
-	jr .next
+	jr .loop
 
 .asm_16447
 	cp 23 ; within one hour of 23:00?
-	jr nz, .next
+	jr nz, .loop
 	; fallthrough
 
 .LostBooklet
@@ -21581,7 +21597,7 @@
 	call Function13e5
 	ret
 
-.next
+.loop
 	call Function164ea
 	bccoord 1, 14
 	ld a, [wDST]
@@ -21703,7 +21719,7 @@
 	push de
 	xor a
 	ld [hBGMapMode], a
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $0612
 	call TextBox
 	hlcoord 1, 2
@@ -21727,7 +21743,7 @@
 	ld de, StringBuffer2
 	ld bc, $a306
 	call PrintNum
-	call Function1ad2
+	call DrawOnMap
 	call Function3238
 	ret
 ; 1656b
@@ -21821,7 +21837,7 @@
 	ld c, l
 	ld b, h
 	ld de, StringBuffer2
-	callba Function15fd7
+	callba GiveMoney
 	ret
 
 .asm_165f5
@@ -21830,7 +21846,7 @@
 	ld c, l
 	ld b, h
 	ld de, StringBuffer2
-	callba Function15ffa
+	callba TakeMoney
 	ret
 ; 16607
 
@@ -21839,9 +21855,9 @@
 	push de
 	ld e, a
 	ld d, 0
+rept 3
 	add hl, de
-	add hl, de
-	add hl, de
+endr
 	pop de
 	ret
 ; 16613
@@ -21998,7 +22014,7 @@
 	db "CANCEL@"
 ; 0x166d6
 
-Function166d6: ; 166d6
+Special_DayCareMan: ; 166d6
 	ld hl, wDaycareMan
 	bit 0, [hl]
 	jr nz, .asm_166fe
@@ -22037,7 +22053,7 @@
 	ret
 ; 1672a
 
-Function1672a: ; 1672a
+Special_DayCareLady: ; 1672a
 	ld hl, wDaycareLady
 	bit 0, [hl]
 	jr nz, .asm_16752
@@ -22150,7 +22166,7 @@
 ; 167f1
 
 UnknownText_0x167f1: ; 0x167f1
-	; 
+	;
 	text_jump UnknownText_0x1bdaa7
 	db "@"
 ; 0x167f6
@@ -22188,7 +22204,7 @@
 .asm_1682d
 	ld de, Money
 	ld bc, StringBuffer2 + 2
-	callba Function1600b
+	callba CheckMoney
 	jr c, .asm_16848
 	ld a, [PartyCount]
 	cp $6
@@ -22215,7 +22231,7 @@
 Function16850: ; 16850
 	ld bc, StringBuffer2 + 2
 	ld de, Money
-	callba Function15ffa
+	callba TakeMoney
 	ld a, $d
 	call Function1689b
 	ld a, [CurPartySpecies]
@@ -22252,8 +22268,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, TextTable_168aa
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -22404,7 +22421,7 @@
 	db "@"
 ; 0x16936
 
-Function16936: ; 16936
+Special_DayCareManOutside: ; 16936
 	ld hl, wDaycareMan
 	bit 6, [hl]
 	jr nz, Function16949
@@ -22753,8 +22770,9 @@
 	ld hl, wEggMonHappiness
 	ld [hli], a
 	xor a
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 	ld a, [CurPartyLevel]
 	ld [wEggMonLevel], a
@@ -22791,12 +22809,12 @@
 	lb bc, BANK(UnownDexBTile), 1
 	call Request1bpp
 
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $0312
 	call TextBox
 
 	hlcoord 0, 5
-	ld bc, $0707
+	lb bc, 7, 7
 	call TextBox
 
 	hlcoord 0, 14
@@ -22914,7 +22932,7 @@
 	hlcoord 1, 6
 	xor a
 	ld [$ffad], a
-	ld bc, $0707
+	lb bc, 7, 7
 	predef FillBox
 	ld de, $9310
 	callba Functione0000
@@ -22942,7 +22960,7 @@
 
 Function16d20: ; 16d20
 	hlcoord 1, 6
-	ld bc, $0707
+	lb bc, 7, 7
 	call ClearBox
 	hlcoord 1, 9
 	ld de, UnownDexVacantString
@@ -22988,14 +23006,14 @@
 ; 16dac
 
 Function16dac: ; 16dac
-	ld hl, TileMap
-	ld bc, $0168
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	ld a, $7f
 	call ByteFill
 	hlcoord 7, 11
 	ld a, $31
 	ld [$ffad], a
-	ld bc, $0707
+	lb bc, 7, 7
 	predef FillBox
 	ret
 ; 16dc7
@@ -23003,7 +23021,7 @@
 Function16dc7: ; 16dc7
 	ld hl, UnknownText_0x16e04
 	call PrintText
-	callba Function50000
+	callba SelectMonFromParty
 	jr c, .asm_16df8
 	ld a, [CurPartySpecies]
 	cp EGG
@@ -23234,7 +23252,7 @@
 .loop
 	ld a, [de]
 	inc de
-	cp $ff
+	cp -1
 	ret z
 	cp EGG
 	jr nz, .next
@@ -23252,7 +23270,7 @@
 	jr .loop
 ; 16f5e
 
-Function16f5e:: ; 16f5e
+OverworldHatchEgg:: ; 16f5e
 	call ResetWindow
 	call Function1d6e
 	call Function16f70
@@ -23270,7 +23288,7 @@
 Function16f7a: ; 16f7a (5:6f7a)
 	ld a, [de]
 	inc de
-	cp $ff
+	cp -1
 	jp z, Function1708a
 	push de
 	push hl
@@ -23296,11 +23314,12 @@
 
 	ld a, [CurPartySpecies]
 	cp TOGEPI
-	jr nz, .asm_16fbf
-	ld de, $54
-	ld b, $1
+	jr nz, .nottogepi
+	; set the event flag for hatching togepi
+	ld de, EVENT_TOGEPI_HATCHED
+	ld b, SET_FLAG
 	call EventFlagAction
-.asm_16fbf
+.nottogepi
 
 	pop de
 
@@ -23361,7 +23380,7 @@
 	ld [hl], a
 	ld a, [CurPartyMon]
 	ld hl, PartyMonOT ; wddff (aliases: PartyMonOT)
-	ld bc, $b
+	ld bc, NAME_LENGTH
 	call AddNTimes
 	ld d, h
 	ld e, l
@@ -23380,7 +23399,7 @@
 	call PrintText
 	call YesNoBox
 	pop de
-	jr c, .asm_17074
+	jr c, .nonickname
 	ld a, $1
 	ld [wd26b], a
 	xor a
@@ -23392,9 +23411,9 @@
 	ld de, StringBuffer1
 	call InitName
 	jr Function1707d
-.asm_17074
+.nonickname
 	ld hl, StringBuffer1
-	ld bc, $b
+	ld bc, PKMN_NAME_LENGTH
 	call CopyBytes
 
 Function1707d: ; 1707d (5:707d)
@@ -23437,7 +23456,7 @@
 ; 170b0 (5:70b0)
 
 UnknownText_0x170b0: ; 0x170b0
-	; 
+	;
 	text_jump UnknownText_0x1c0db8
 	db "@"
 ; 0x170b5
@@ -23459,29 +23478,29 @@
 	ld d, h
 	ld e, l
 	ld b, NUM_MOVES
-.asm_170c6
+.loop
 	ld a, [de]
 	and a
-	jr z, .asm_170e3
+	jr z, .done
 	ld hl, wEggMonMoves
 	ld c, NUM_MOVES
-.asm_170cf
+.next
 	ld a, [de]
 	cp [hl]
-	jr z, .asm_170df
+	jr z, .skip
 	inc hl
 	dec c
-	jr nz, .asm_170cf
+	jr nz, .next
 	call Function170e4
-	jr nc, .asm_170df
+	jr nc, .skip
 	call Function17169
 
-.asm_170df
+.skip
 	inc de
 	dec b
-	jr nz, .asm_170c6
+	jr nz, .loop
 
-.asm_170e3
+.done
 	ret
 ; 170e4
 
@@ -23494,55 +23513,57 @@
 	ld c, a
 	ld b, 0
 	ld hl, EggMovePointers
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, BANK(EggMovePointers)
 	call GetFarHalfword
-.asm_170f6
+.loop
 	ld a, BANK(EggMoves)
 	call GetFarByte
-	cp $ff
-	jr z, .asm_17107
+	cp -1
+	jr z, .found_mon
 	ld b, a
 	ld a, [de]
 	cp b
-	jr z, .asm_17163
+	jr z, .done_carry
 	inc hl
-	jr .asm_170f6
+	jr .loop
 
-.asm_17107
+.found_mon
 	call Function1720b
 	ld b, NUM_MOVES
-.asm_1710c
+.loop2
 	ld a, [de]
 	cp [hl]
-	jr z, .asm_17116
+	jr z, .found_eggmove
 	inc hl
 	dec b
-	jr z, .asm_17146
-	jr .asm_1710c
+	jr z, .inherit_tmhm
+	jr .loop2
 
-.asm_17116
+.found_eggmove
 	ld a, [wEggMonSpecies]
 	dec a
 	ld c, a
 	ld b, 0
 	ld hl, EvosAttacksPointers
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, BANK(EvosAttacksPointers)
 	call GetFarHalfword
-.asm_17127
+.loop3
 	ld a, BANK(EvosAttacks)
 	call GetFarByte
 	inc hl
 	and a
-	jr nz, .asm_17127
-.asm_17130
+	jr nz, .loop3
+.loop4
 	ld a, BANK(EvosAttacks)
 	call GetFarByte
 	and a
-	jr z, .asm_17146
+	jr z, .inherit_tmhm
 	inc hl
 	ld a, BANK(EvosAttacks)
 	call GetFarByte
@@ -23549,34 +23570,34 @@
 	ld b, a
 	ld a, [de]
 	cp b
-	jr z, .asm_17163
+	jr z, .done_carry
 	inc hl
-	jr .asm_17130
+	jr .loop4
 
-.asm_17146
+.inherit_tmhm
 	ld hl, TMHMMoves
-.asm_17149
+.loop5
 	ld a, BANK(TMHMMoves)
 	call GetFarByte
 	inc hl
 	and a
-	jr z, .asm_17166
+	jr z, .done
 	ld b, a
 	ld a, [de]
 	cp b
-	jr nz, .asm_17149
+	jr nz, .loop5
 	ld [wd262], a
 	predef CanLearnTMHMMove
 	ld a, c
 	and a
-	jr z, .asm_17166
+	jr z, .done
 
-.asm_17163
+.done_carry
 	pop bc
 	scf
 	ret
 
-.asm_17166
+.done
 	pop bc
 	and a
 	ret
@@ -23589,12 +23610,12 @@
 	ld b, a
 	ld hl, wEggMonMoves
 	ld c, NUM_MOVES
-.asm_17172
+.loop
 	ld a, [hli]
 	and a
-	jr z, .asm_17187
+	jr z, .done
 	dec c
-	jr nz, .asm_17172
+	jr nz, .loop
 	ld de, wEggMonMoves
 	ld hl, wEggMonMoves + 1
 	ld a, [hli]
@@ -23606,7 +23627,7 @@
 	ld a, [hli]
 	ld [de], a
 
-.asm_17187
+.done
 	dec hl
 	ld [hl], b
 	ld hl, wEggMonMoves
@@ -23621,10 +23642,10 @@
 	ld hl, wBreedMon2Moves
 	ld a, [wBreedMon1Species]
 	cp DITTO
-	jr z, .asm_171b1
+	jr z, .ditto1
 	ld a, [wBreedMon2Species]
 	cp DITTO
-	jr z, .asm_171d7
+	jr z, .ditto2
 	ld a, [wDittoInDaycare]
 	and a
 	ret z
@@ -23631,7 +23652,7 @@
 	ld hl, wBreedMon1Moves
 	ret
 
-.asm_171b1
+.ditto1
 	ld a, [CurPartySpecies]
 	push af
 	ld a, [wBreedMon2Species]
@@ -23643,11 +23664,11 @@
 	ld a, $3
 	ld [MonType], a
 	predef GetGender
-	jr c, .asm_171fb
-	jr nz, .asm_171fb
-	jr .asm_17203
+	jr c, .inherit_mon2_moves
+	jr nz, .inherit_mon2_moves
+	jr .inherit_mon1_moves
 
-.asm_171d7
+.ditto2
 	ld a, [CurPartySpecies]
 	push af
 	ld a, [wBreedMon1Species]
@@ -23659,16 +23680,16 @@
 	ld a, $3
 	ld [MonType], a
 	predef GetGender
-	jr c, .asm_17203
-	jr nz, .asm_17203
+	jr c, .inherit_mon1_moves
+	jr nz, .inherit_mon1_moves
 
-.asm_171fb
+.inherit_mon2_moves
 	ld hl, wBreedMon2Moves
 	pop af
 	ld [CurPartySpecies], a
 	ret
 
-.asm_17203
+.inherit_mon1_moves
 	ld hl, wBreedMon1Moves
 	pop af
 	ld [CurPartySpecies], a
@@ -23682,12 +23703,12 @@
 	ret z
 	ld a, [wBreedMon2Species]
 	cp DITTO
-	jr z, .asm_17220
+	jr z, .ditto
 	ld a, [wDittoInDaycare]
 	and a
 	ret z
 
-.asm_17220
+.ditto
 	ld hl, wBreedMon2Moves
 	ret
 ; 17224
@@ -23718,7 +23739,7 @@
 	call WaitTop
 	push hl
 	push bc
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $168
 	ld a, $7f
 	call ByteFill
@@ -23936,7 +23957,7 @@
 	ld a, [wDaycareLady]
 	bit 0, a
 	jr z, Function1745f
-	call Functionaaf
+	call KeepTextOpen
 	ld hl, wBreedMon2Nick
 	call Function1746c
 	jp PrintText
@@ -23949,7 +23970,7 @@
 	ld a, [wDaycareMan]
 	bit 0, a
 	jr z, Function1745f
-	call Functionaaf
+	call KeepTextOpen
 	ld hl, wBreedMon1Nick
 	call Function1746c
 	jp PrintText
@@ -24061,10 +24082,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Unknown_20015
+rept 4
 	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
+endr
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
@@ -24099,7 +24119,7 @@
 	ld hl, UnknownText_0x2004c
 	call PrintText
 	call Function20051
-	call Function1c07
+	call ExitMenu
 	pop bc
 	ld hl, Options
 	ld [hl], b
@@ -24320,7 +24340,7 @@
 	ld a, [wcf94]
 	rst FarCall
 	call Function24085
-	call Function1ad2
+	call DrawOnMap
 	call Function321c
 	call Function2408f
 	ret
@@ -24332,7 +24352,7 @@
 	rst FarCall
 	call Function24085
 	callba MobileTextBorder
-	call Function1ad2
+	call DrawOnMap
 	call Function321c
 	call Function2408f
 	ret
@@ -24344,7 +24364,7 @@
 	rst FarCall
 	call Function24085
 	callba MobileTextBorder
-	call Function1ad2
+	call DrawOnMap
 	call Function321c
 	call Function2411a
 	ld hl, wcfa5
@@ -24980,7 +25000,7 @@
 	dec c
 	jr nz, .asm_243d7
 	pop hl
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	pop bc
 	dec b
@@ -25010,19 +25030,19 @@
 	call Function1c47
 	ld a, [wcf81]
 	bit 0, a
-	jr z, .asm_24411
+	jr z, .next
 	ld d, h
 	ld e, l
 	call Function1c23
 
-.asm_24411
+.next
 	call Function1c7e
 	ld a, h
 	or l
-	jr z, .asm_2441b
+	jr z, .next2
 	call Function1c47
 
-.asm_2441b
+.next2
 	pop af
 	ld [rSVBK], a
 	ld hl, wcf78
@@ -25037,9 +25057,9 @@
 	ret z
 	xor a
 	call GetSRAMBank
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld de, $a000
-	ld bc, $0168
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call CopyBytes
 	call CloseSRAM
 	call Function2173
@@ -25046,8 +25066,8 @@
 	xor a
 	call GetSRAMBank
 	ld hl, $a000
-	ld de, TileMap
-	ld bc, $0168
+	decoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 .asm_2444c
 	ld a, [hl]
 	cp $61
@@ -25138,9 +25158,9 @@
 	ld a, $1
 	ld [hli], a
 	xor a
+rept 3
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ret
 ; 244c3
 
@@ -25160,11 +25180,11 @@
 	ret
 ; 0x244e3
 
-Function244e3:: ; 244e3
+Pokepic:: ; 244e3
 	ld hl, MenuDataHeader_0x24547
-	call Function1d3c
+	call CopyMenuDataHeader
 	call Function1cbb
-	call Function1ad2
+	call DrawOnMap
 	call Function321c
 	ld b, $12
 	call GetSGBLayout
@@ -25184,15 +25204,15 @@
 	call GetTileCoord
 	ld a, $80
 	ld [$ffad], a
-	ld bc, $0707
+	lb bc, 7, 7
 	predef FillBox
 	call WaitBGMap
 	ret
 ; 24528
 
-Function24528:: ; 24528
+PokepicYesOrNo:: ; 24528
 	ld hl, MenuDataHeader_0x24547
-	call Function1d3c
+	call CopyMenuDataHeader
 	call Function1ce1
 	call WaitBGMap
 	call ClearSGB
@@ -25200,7 +25220,7 @@
 	ld [hBGMapMode], a
 	call Function2173
 	call Function321c
-	call Function1ad2
+	call DrawOnMap
 	call Functione51
 	ret
 ; 24547
@@ -25222,14 +25242,14 @@
 	ld bc, MapObjects
 	ld de, wd81e
 	xor a
-.asm_24561
+.loop
 	push af
 	push bc
 	push de
 	call Function245a7
-	jr c, .asm_2456c
+	jr c, .next
 	call Function2457d
-.asm_2456c
+.next
 	pop de
 	ld [de], a
 	inc de
@@ -25241,44 +25261,44 @@
 	pop af
 	inc a
 	cp $10
-	jr nz, .asm_24561
+	jr nz, .loop
 	ret
 
 Function2457d: ; 2457d (9:457d)
-	ld hl, $1
+	ld hl, MAPOBJECT_SPRITE
 	add hl, bc
 	ld a, [hl]
 	and a
-	jr z, .asm_245a3
-	ld hl, $c
+	jr z, .minus_one
+	ld hl, MAPOBJECT_EVENT_FLAG
 	add hl, bc
 	ld a, [hli]
 	ld e, a
 	ld a, [hl]
 	ld d, a
-	cp $ff
-	jr nz, .asm_24598
+	cp -1
+	jr nz, .check
 	ld a, e
-	cp $ff
-	jr z, .asm_245a1
-	jr .asm_245a3
-.asm_24598
-	ld b, $2
+	cp -1
+	jr z, .zero
+	jr .minus_one
+.check
+	ld b, CHECK_FLAG
 	call EventFlagAction
 	ld a, c
 	and a
-	jr nz, .asm_245a3
-.asm_245a1
+	jr nz, .minus_one
+.zero
 	xor a
 	ret
-.asm_245a3
-	ld a, $ff
+.minus_one
+	ld a, -1
 	scf
 	ret
 
 Function245a7: ; 245a7 (9:45a7)
 	call Function18f5
-	ld a, $ff
+	ld a, -1
 	ret c
 	xor a
 	ret
@@ -25301,17 +25321,17 @@
 ; 245cb
 
 Function245cb:: ; 245cb
-.asm_245cb
+.loop
 	call Function24609
 	jp c, Function245d6
 	call z, Function245e1
-	jr .asm_245cb
+	jr .loop
 ; 245d6
 
 Function245d6: ; 245d6
 	call Function1ff8
 	ld [wcf73], a
-	ld a, $0
+	ld a, 0
 	ld [$ffaa], a
 	ret
 ; 245e1
@@ -25318,9 +25338,9 @@
 
 Function245e1: ; 245e1
 	call Function245f1
-	ld a, $1
+	ld a, 1
 	ld [hBGMapMode], a
-	ld c, $3
+	ld c, 3
 	call DelayFrames
 	xor a
 	ld [hBGMapMode], a
@@ -26058,8 +26078,9 @@
 	ld c, a
 	ld b, 0
 	ld hl, Unknown_24a91
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld c, [hl]
 	inc hl
 	ld b, [hl]
@@ -26130,12 +26151,12 @@
 
 Function24ae8: ; 24ae8
 	ld hl, MenuDataHeader_0x24b15
-	call Function1d3c
+	call CopyMenuDataHeader
 	jr Function24b01
 
 Function24af0: ; 24af0
 	ld hl, MenuDataHeader_0x24b1d
-	call Function1d3c
+	call CopyMenuDataHeader
 	jr Function24b01
 
 Function24af8: ; 24af8
@@ -26223,7 +26244,7 @@
 	ld a, [hl]
 	push af
 	set 4, [hl]
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld b, $3
 	ld c, $7
 	call TextBox
@@ -26253,7 +26274,7 @@
 ; 24bdc
 
 Function24bdc: ; 24bdc
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld b, $5
 	ld c, $11
 	call TextBox
@@ -26340,8 +26361,9 @@
 	ld a, [hl]
 	call Function24c94
 .asm_24c89
+rept 2
 	inc hl
-	inc hl
+endr
 	jr .asm_24c73
 
 .asm_24c8d
@@ -26431,7 +26453,7 @@
 	call Function24d59
 	ld [MenuSelection], a
 
-	call Function1c07
+	call ExitMenu
 	ret
 ; 24d3f
 
@@ -26674,11 +26696,11 @@
 Function24e99: ; 24e99
 ; BattleMonMenu
 	ld hl, MenuDataHeader_0x24ed4
-	call Function1d3c
+	call CopyMenuDataHeader
 	xor a
 	ld [hBGMapMode], a
 	call Function1cbb
-	call Function1ad2
+	call DrawOnMap
 	call Function1c89
 	call WaitBGMap
 	call Function1c66
@@ -26730,7 +26752,7 @@
 	call Function2039
 	ld a, [wcf88]
 	ld [wd0d2], a
-	call Function1c07
+	call ExitMenu
 	ret
 ; 24f0b
 
@@ -26750,10 +26772,10 @@
 Function24f19: ; 24f19
 	ld a, [wd0d2]
 	ld [wcf88], a
-	call Function202a
+	call InterpretMenu
 	ld a, [wcf88]
 	ld [wd0d2], a
-	call Function1c07
+	call ExitMenu
 	ret
 ; 24f2c
 
@@ -27047,7 +27069,7 @@
 
 Function250d1: ; 250d1
 	push hl
-	ld hl, $ffc3
+	ld hl, hMoneyTemp
 	ld a, [hMultiplicand]
 	ld [hli], a
 	ld a, [$ffb5]
@@ -27056,7 +27078,7 @@
 	ld [hl], a
 	pop hl
 	inc hl
-	ld de, $ffc3
+	ld de, hMoneyTemp
 	ld bc, $2306
 	call PrintNum
 	call WaitBGMap
@@ -27144,9 +27166,9 @@
 	call WaitBGMap
 	ld hl, wcf63
 	xor a
+rept 3
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 	ret
 
@@ -27155,8 +27177,9 @@
 	ld e, a
 	ld d, $0
 	ld hl, Jumptable_2519d
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -27306,7 +27329,7 @@
 	ret
 
 Function25299: ; 25299 (9:5299)
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld d, $5
 	call Function253b0
 	hlcoord 2, 2
@@ -27367,7 +27390,7 @@
 	hlcoord 2, 8
 	ld de, Tilemap_25366
 	call Function253a8
-	ld a, [StatusFlags]
+	ld a, [StatusFlags] ; pokedex
 	bit 0, a
 	ret nz
 	hlcoord 1, 9
@@ -27399,10 +27422,9 @@
 	ld c, $4
 .asm_2537c
 	call Function253f4
+rept 4
 	inc hl
-	inc hl
-	inc hl
-	inc hl
+endr
 	dec c
 	jr nz, .asm_2537c
 	hlcoord 2, 13
@@ -27410,10 +27432,9 @@
 	ld c, $4
 .asm_2538d
 	call Function253f4
+rept 4
 	inc hl
-	inc hl
-	inc hl
-	inc hl
+endr
 	dec c
 	jr nz, .asm_2538d
 	xor a
@@ -27694,7 +27715,7 @@
 
 ProfOaksPC: ; 0x265d3
 	ld hl, OakPCText1
-	call Function1d4f
+	call MenuTextBox
 	call YesNoBox
 	jr c, .shutdown
 	call ProfOaksPCBoot ; player chose "yes"?
@@ -27702,7 +27723,7 @@
 	ld hl, OakPCText4
 	call PrintText
 	call Functiona36
-	call Function1c07
+	call ExitMenu
 	ret
 ; 0x265ee
 
@@ -27783,10 +27804,9 @@
 	ld a, [hli]
 	cp c
 	jr nc, .match
+rept 4
 	inc hl
-	inc hl
-	inc hl
-	inc hl
+endr
 	jr .loop
 
 .match
@@ -28004,7 +28024,7 @@
 	jr nc, .asm_2676f
 
 .asm_2678e
-	call Function1c07
+	call ExitMenu
 	pop af
 	ld [wcf76], a
 	ld a, [wd1ee]
@@ -28081,25 +28101,25 @@
 
 Function2683a: ; 2683a (9:683a)
 	ld hl, Jumptable_26855
-.asm_2683d
+.loop
 	ld a, [hli]
 	ld e, a
 	ld a, [hli]
 	ld d, a
 	or e
-	jr z, .asm_26854
+	jr z, .done
 	push hl
 	call _de_
 	pop hl
-	jr nc, .asm_26851
+	jr nc, .next
 	ld a, [hl]
 	push hl
 	call Function26830
 	pop hl
-.asm_26851
+.next
 	inc hl
-	jr .asm_2683d
-.asm_26854
+	jr .loop
+.done
 	ret
 ; 26855 (9:6855)
 
@@ -28118,21 +28138,21 @@
 	xor a
 	ld hl, DefaultFlypoint
 	ld [hli], a
-	ld a, $ff
+	ld a, -1
 	ld bc, $0010
 	call ByteFill
 	ret
 ; 2687a
 
-Function2687a: ; 2687a
-.asm_2687a
+CheckAllDecorationFlags: ; 2687a
+.loop
 	ld a, [hli]
-	cp $ff
-	jr z, .asm_26890
+	cp -1
+	jr z, .done
 	push hl
 	push af
-	ld b, $2
-	call Function26a3b
+	ld b, CHECK_FLAG
+	call DecorationFlagAction
 	ld a, c
 	and a
 	pop bc
@@ -28139,9 +28159,9 @@
 	ld a, b
 	call nz, Function26891
 	pop hl
-	jr .asm_2687a
+	jr .loop
 
-.asm_26890
+.done
 	ret
 ; 26891
 
@@ -28160,7 +28180,7 @@
 	push hl
 	call Function2686c
 	pop hl
-	call Function2687a
+	call CheckAllDecorationFlags
 	pop bc
 	ld a, [DefaultFlypoint]
 	and a
@@ -28274,7 +28294,7 @@
 Unknown_2692d: ; 2692d
 	db 30, 31, 32, 33, 34, 35, 36, 37, 38, 39
 	db 40, 41, 42, 43, 44, 45, 46, 47, 48, 49
-	db 50, 51, 52, $ff
+	db 50, 51, 52, -1
 ; 26945
 
 Function26945: ; 26945
@@ -28291,7 +28311,7 @@
 ; 26955
 
 Unknown_26955: ; 26955
-	db 26, 27, 28, $ff
+	db 26, 27, 28, -1
 ; 26959
 
 Function26959: ; 26959
@@ -28302,31 +28322,31 @@
 Function2695b: ; 2695b
 	ld a, [DefaultFlypoint]
 	and a
-	jr z, .asm_269a9
-	cp $8
-	jr nc, .asm_2697b
+	jr z, .empty
+	cp 8
+	jr nc, .beyond_eight
 	xor a
 	ld [wcf76], a
 	ld hl, MenuDataHeader_0x269b5
 	call LoadMenuDataHeader
 	call Function1e5d
-	jr c, .asm_26977
-	call Function26a02
+	jr c, .no_action_1
+	call DoDecorationAction2
 
-.asm_26977
-	call Function1c07
+.no_action_1
+	call ExitMenu
 	ret
 
-.asm_2697b
+.beyond_eight
 	ld hl, DefaultFlypoint
 	ld e, [hl]
 	dec [hl]
-	ld d, $0
+	ld d, 0
 	add hl, de
-	ld [hl], $ff
+	ld [hl], -1
 	call Function1d6e
 	ld hl, MenuDataHeader_0x269c5
-	call Function1d3c
+	call CopyMenuDataHeader
 	xor a
 	ld [hBGMapMode], a
 	call Function352f
@@ -28334,17 +28354,17 @@
 	ld [wd0e4], a
 	call Function350c
 	ld a, [wcf73]
-	cp $2
-	jr z, .asm_269a5
-	call Function26a02
+	cp 2
+	jr z, .no_action_2
+	call DoDecorationAction2
 
-.asm_269a5
-	call Function1c07
+.no_action_2
+	call ExitMenu
 	ret
 
-.asm_269a9
+.empty
 	ld hl, UnknownText_0x269b0
-	call Function1d67
+	call MenuTextBoxBackup
 	ret
 ; 269b0
 
@@ -28366,7 +28386,7 @@
 	db $a0 ; flags
 	db 0 ; items
 	dw wd002
-	dw Function269f3
+	dw DecorationMenuFunction
 	dw DecorationAttributes
 ; 0x269c5
 
@@ -28383,71 +28403,71 @@
 	db 8, 0 ; rows, columns
 	db 1 ; horizontal spacing
 	dbw 0, wd002 ; text pointer
-	dbw BANK(Function269f3), Function269f3
+	dbw BANK(DecorationMenuFunction), DecorationMenuFunction
 	dbw 0, 0
 	dbw 0, 0
 ; 269dd
 
 
-Function269dd: ; 269dd
+GetDecorationData: ; 269dd
 	ld hl, DecorationAttributes
-	ld bc, $0006
+	ld bc, 6
 	call AddNTimes
 	ret
 ; 269e7
 
-Function269e7: ; 269e7
+GetDecorationName: ; 269e7
 	push hl
-	call Function269dd
-	call Function26c72
+	call GetDecorationData
+	call GetDecoName
 	pop hl
 	call CopyName2
 	ret
 ; 269f3
 
-Function269f3: ; 269f3
+DecorationMenuFunction: ; 269f3
 	ld a, [MenuSelection]
 	push de
-	call Function269dd
-	call Function26c72
+	call GetDecorationData
+	call GetDecoName
 	pop hl
 	call PlaceString
 	ret
 ; 26a02
 
-Function26a02: ; 26a02
+DoDecorationAction2: ; 26a02
 	ld a, [MenuSelection]
-	call Function269dd
-	ld de, $0002
+	call GetDecorationData
+	ld de, 2 ; function 2
 	add hl, de
 	ld a, [hl]
-	ld hl, Jumptable_26a12
+	ld hl, .DecoActions
 	rst JumpTable
 	ret
 ; 26a12
 
-Jumptable_26a12: ; 26a12
-	dw Function26ce3
-	dw Function26ce5
-	dw Function26ceb
-	dw Function26cf1
-	dw Function26cf7
-	dw Function26cfd
-	dw Function26d03
-	dw Function26d09
-	dw Function26d0f
-	dw Function26d15
-	dw Function26d1b
-	dw Function26d21
-	dw Function26d27
-	dw Function26db3
-	dw Function26dc9
+.DecoActions: ; 26a12
+	dw DecoAction_nothing
+	dw DecoAction_setupbed
+	dw DecoAction_putawaybed
+	dw DecoAction_setupcarpet
+	dw DecoAction_putawaycarpet
+	dw DecoAction_setupplant
+	dw DecoAction_putawayplant
+	dw DecoAction_setupposter
+	dw DecoAction_putawayposter
+	dw DecoAction_setupconsole
+	dw DecoAction_putawayconsole
+	dw DecoAction_setupbigdoll
+	dw DecoAction_putawaybigdoll
+	dw DecoAction_setupornament
+	dw DecoAction_putawayornament
 ; 26a30
 
 
-Function26a30: ; 26a30
-	call Function269dd
-	ld de, $0003
+GetDecorationFlag: ; 26a30
+	call GetDecorationData
+	ld de, 3 ; event flag
 	add hl, de
 	ld a, [hli]
 	ld d, [hl]
@@ -28455,18 +28475,18 @@
 	ret
 ; 26a3b
 
-Function26a3b: ; 26a3b
+DecorationFlagAction: ; 26a3b
 	push bc
-	call Function26a30
+	call GetDecorationFlag
 	pop bc
 	call EventFlagAction
 	ret
 ; 26a44
 
-Function26a44: ; 26a44
+GetDecorationSprite: ; 26a44
 	ld a, c
-	call Function269dd
-	ld de, $0005
+	call GetDecorationData
+	ld de, 5 ; sprite
 	add hl, de
 	ld a, [hl]
 	ld c, a
@@ -28473,60 +28493,67 @@
 	ret
 ; 26a4f
 
+decoration: MACRO
+	; type, name, command, event flag, tile/sprite
+	db \1, \2, \3
+	dw \4
+	db \5
+ENDM
+
 DecorationAttributes: ; 26a4f
-	db $01, $00, $00, $00, $00, $00
-	db $01, $01, $02, $00, $00, $00
-	db $02, $12, $01, $a4, $02, $1b
-	db $02, $14, $01, $a5, $02, $1c
-	db $02, $15, $01, $a6, $02, $1d
-	db $02, $13, $01, $a7, $02, $1e
-	db $01, $01, $04, $00, $00, $00
-	db $03, $16, $03, $a8, $02, $08
-	db $03, $17, $03, $a9, $02, $0b
-	db $03, $18, $03, $aa, $02, $0e
-	db $03, $19, $03, $ab, $02, $11
-	db $01, $01, $06, $00, $00, $00
-	db $01, $02, $05, $ac, $02, $20
-	db $01, $03, $05, $ad, $02, $21
-	db $01, $04, $05, $ae, $02, $22
-	db $01, $01, $08, $00, $00, $00
-	db $01, $05, $07, $af, $02, $1f
-	db $04, $19, $07, $b0, $02, $23
-	db $04, $23, $07, $b1, $02, $24
-	db $04, $27, $07, $b2, $02, $25
-	db $01, $01, $0a, $00, $00, $00
-	db $01, $06, $09, $b3, $02, $5c
-	db $01, $07, $09, $b4, $02, $5b
-	db $01, $08, $09, $b5, $02, $51
-	db $01, $09, $09, $b6, $02, $57
-	db $01, $01, $0c, $00, $00, $00
-	db $06, $8f, $0b, $cf, $02, $33
-	db $06, $5f, $0b, $d0, $02, $50
-	db $06, $83, $0b, $d1, $02, $47
-	db $01, $01, $0e, $00, $00, $00
-	db $05, $19, $0d, $b7, $02, $8e
-	db $01, $0c, $0d, $b8, $02, $34
-	db $05, $23, $0d, $b9, $02, $8f
-	db $05, $27, $0d, $ba, $02, $94
-	db $05, $01, $0d, $bb, $02, $93
-	db $05, $04, $0d, $bc, $02, $90
-	db $05, $07, $0d, $bd, $02, $89
-	db $05, $3c, $0d, $be, $02, $8d
-	db $05, $32, $0d, $bf, $02, $8c
-	db $05, $78, $0d, $c0, $02, $92
-	db $05, $81, $0d, $c1, $02, $88
-	db $05, $2b, $0d, $c2, $02, $85
-	db $05, $5e, $0d, $c3, $02, $86
-	db $05, $5a, $0d, $c4, $02, $84
-	db $05, $58, $0d, $c5, $02, $95
-	db $05, $64, $0d, $c6, $02, $9b
-	db $05, $0d, $0d, $c7, $02, $83
-	db $05, $c9, $0d, $c8, $02, $80
-	db $05, $4a, $0d, $c9, $02, $81
-	db $05, $42, $0d, $ca, $02, $9a
-	db $05, $48, $0d, $cb, $02, $98
-	db $01, $0a, $0d, $cd, $02, $5e
-	db $01, $0b, $0d, $ce, $02, $5f
+	decoration DECO_PLANT,    $00,               $0,                 EVENT_GAVE_KURT_APRICORNS,                         $00
+	decoration DECO_PLANT,    PUT_IT_AWAY,       PUT_AWAY_BED,       EVENT_GAVE_KURT_APRICORNS,                         $00
+	decoration DECO_BED,      FEATHERY_BED,      SET_UP_BED,         EVENT_DECO_BED_1,                  $1b
+	decoration DECO_BED,      PINK_BED,          SET_UP_BED,         EVENT_DECO_BED_2,                  $1c
+	decoration DECO_BED,      POLKADOT_BED,      SET_UP_BED,         EVENT_DECO_BED_3,                  $1d
+	decoration DECO_BED,      PIKACHU_BED,       SET_UP_BED,         EVENT_DECO_BED_4,                  $1e
+	decoration DECO_PLANT,    PUT_IT_AWAY,       PUT_AWAY_CARPET,    EVENT_GAVE_KURT_APRICORNS,                         $00
+	decoration DECO_CARPET,   RED_CARPET,        SET_UP_CARPET,      EVENT_DECO_CARPET_1,               $08
+	decoration DECO_CARPET,   BLUE_CARPET,       SET_UP_CARPET,      EVENT_DECO_CARPET_2,               $0b
+	decoration DECO_CARPET,   YELLOW_CARPET,     SET_UP_CARPET,      EVENT_DECO_CARPET_3,               $0e
+	decoration DECO_CARPET,   GREEN_CARPET,      SET_UP_CARPET,      EVENT_DECO_CARPET_4,               $11
+	decoration DECO_PLANT,    PUT_IT_AWAY,       PUT_AWAY_PLANT,     EVENT_GAVE_KURT_APRICORNS,                         $00
+	decoration DECO_PLANT,    MAGNAPLANT,        SET_UP_PLANT,       EVENT_DECO_PLANT_1,                $20
+	decoration DECO_PLANT,    TROPICPLANT,       SET_UP_PLANT,       EVENT_DECO_PLANT_2,                $21
+	decoration DECO_PLANT,    JUMBOPLANT,        SET_UP_PLANT,       EVENT_DECO_PLANT_3,                $22
+	decoration DECO_PLANT,    PUT_IT_AWAY,       PUT_AWAY_POSTER,    EVENT_GAVE_KURT_APRICORNS,                         $00
+	decoration DECO_PLANT,    TOWN_MAP_D,        SET_UP_POSTER,      EVENT_DECO_PLANT_4,                $1f
+	decoration DECO_POSTER,   PIKACHU,           SET_UP_POSTER,      EVENT_DECO_POSTER_1,               $23
+	decoration DECO_POSTER,   CLEFAIRY,          SET_UP_POSTER,      EVENT_DECO_POSTER_2,               $24
+	decoration DECO_POSTER,   JIGGLYPUFF,        SET_UP_POSTER,      EVENT_DECO_POSTER_3,               $25
+	decoration DECO_PLANT,    PUT_IT_AWAY,       PUT_AWAY_CONSOLE,   EVENT_GAVE_KURT_APRICORNS,                         $00
+	decoration DECO_PLANT,    FAMICOM,           SET_UP_CONSOLE,     EVENT_DECO_FAMICOM,                SPRITE_FAMICOM
+	decoration DECO_PLANT,    SUPER_NES,         SET_UP_CONSOLE,     EVENT_DECO_SNES,                   SPRITE_SNES
+	decoration DECO_PLANT,    NINTENDO_64,       SET_UP_CONSOLE,     EVENT_DECO_N64,                    SPRITE_N64
+	decoration DECO_PLANT,    VIRTUAL_BOY,       SET_UP_CONSOLE,     EVENT_DECO_VIRTUAL_BOY,            SPRITE_VIRTUAL_BOY
+	decoration DECO_PLANT,    PUT_IT_AWAY,       PUT_AWAY_BIG_DOLL,  EVENT_GAVE_KURT_APRICORNS,                         $00
+	decoration DECO_BIGDOLL,  SNORLAX,           SET_UP_BIG_DOLL,    EVENT_DECO_BIG_SNORLAX_DOLL,       SPRITE_BIG_SNORLAX
+	decoration DECO_BIGDOLL,  ONIX,              SET_UP_BIG_DOLL,    EVENT_DECO_BIG_ONIX_DOLL,          SPRITE_BIG_ONIX
+	decoration DECO_BIGDOLL,  LAPRAS,            SET_UP_BIG_DOLL,    EVENT_DECO_BIG_LAPRAS_DOLL,        SPRITE_BIG_LAPRAS
+	decoration DECO_PLANT,    PUT_IT_AWAY,       PUT_AWAY_DOLL,      EVENT_GAVE_KURT_APRICORNS,                         $00
+	decoration DECO_DOLL,     PIKACHU,           SET_UP_DOLL,        EVENT_DECO_PIKACHU_DOLL,           SPRITE_PIKACHU
+	decoration DECO_PLANT,    SURF_PIKA_DOLL,    SET_UP_DOLL,        EVENT_DECO_SURFING_PIKACHU_DOLL,   SPRITE_SURFING_PIKACHU
+	decoration DECO_DOLL,     CLEFAIRY,          SET_UP_DOLL,        EVENT_DECO_CLEFAIRY_DOLL,          SPRITE_CLEFAIRY
+	decoration DECO_DOLL,     JIGGLYPUFF,        SET_UP_DOLL,        EVENT_DECO_JIGGLYPUFF_DOLL,        SPRITE_JIGGLYPUFF
+	decoration DECO_DOLL,     BULBASAUR,         SET_UP_DOLL,        EVENT_DECO_BULBASAUR_DOLL,         SPRITE_BULBASAUR
+	decoration DECO_DOLL,     CHARMANDER,        SET_UP_DOLL,        EVENT_DECO_CHARMANDER_DOLL,        SPRITE_CHARMANDER
+	decoration DECO_DOLL,     SQUIRTLE,          SET_UP_DOLL,        EVENT_DECO_SQUIRTLE_DOLL,          SPRITE_SQUIRTLE
+	decoration DECO_DOLL,     POLIWAG,           SET_UP_DOLL,        EVENT_DECO_POLIWAG_DOLL,           SPRITE_POLIWAG
+	decoration DECO_DOLL,     DIGLETT,           SET_UP_DOLL,        EVENT_DECO_DIGLETT_DOLL,           SPRITE_DIGLETT
+	decoration DECO_DOLL,     STARYU,            SET_UP_DOLL,        EVENT_DECO_STARMIE_DOLL,           SPRITE_STARMIE
+	decoration DECO_DOLL,     MAGIKARP,          SET_UP_DOLL,        EVENT_DECO_MAGIKARP_DOLL,          SPRITE_MAGIKARP
+	decoration DECO_DOLL,     ODDISH,            SET_UP_DOLL,        EVENT_DECO_ODDISH_DOLL,            SPRITE_ODDISH
+	decoration DECO_DOLL,     GENGAR,            SET_UP_DOLL,        EVENT_DECO_GENGAR_DOLL,            SPRITE_GENGAR
+	decoration DECO_DOLL,     SHELLDER,          SET_UP_DOLL,        EVENT_DECO_SHELLDER_DOLL,          SPRITE_SHELLDER
+	decoration DECO_DOLL,     GRIMER,            SET_UP_DOLL,        EVENT_DECO_GRIMER_DOLL,            SPRITE_GRIMER
+	decoration DECO_DOLL,     VOLTORB,           SET_UP_DOLL,        EVENT_DECO_VOLTORB_DOLL,           SPRITE_VOLTORB
+	decoration DECO_DOLL,     WEEDLE,            SET_UP_DOLL,        EVENT_DECO_WEEDLE_DOLL,            SPRITE_WEEDLE
+	decoration DECO_DOLL,     UNOWN,             SET_UP_DOLL,        EVENT_DECO_UNOWN_DOLL,             SPRITE_UNOWN
+	decoration DECO_DOLL,     GEODUDE,           SET_UP_DOLL,        EVENT_DECO_GEODUDE_DOLL,           SPRITE_GEODUDE
+	decoration DECO_DOLL,     MACHOP,            SET_UP_DOLL,        EVENT_DECO_MACHOP_DOLL,            SPRITE_MACHOP
+	decoration DECO_DOLL,     TENTACOOL,         SET_UP_DOLL,        EVENT_DECO_TENTACOOL_DOLL,         SPRITE_TENTACOOL
+	decoration DECO_PLANT,    GOLD_TROPHY,       SET_UP_DOLL,        EVENT_DECO_GOLD_TROPHY,            SPRITE_GOLD_TROPHY
+	decoration DECO_PLANT,    SILVER_TROPHY,     SET_UP_DOLL,        EVENT_DECO_SILVER_TROPHY,          SPRITE_SILVER_TROPHY
 ; 26b8d
 
 
@@ -28559,85 +28586,85 @@
 	db "GREEN@"
 ; 26c72
 
-Function26c72: ; 26c72
+GetDecoName: ; 26c72
 	ld a, [hli]
 	ld e, [hl]
 	ld bc, StringBuffer2
 	push bc
-	ld hl, Table26c7e
+	ld hl, .NameFunctions
 	rst JumpTable
 	pop de
 	ret
 ; 26c7e
 
-Table26c7e: ; 26c7e
-	dw Function26c8c
-	dw Function26c8d
-	dw Function26c90
-	dw Function26c97
-	dw Function26c9e
-	dw Function26ca6
-	dw Function26cae
+.NameFunctions: ; 26c7e
+	dw .invalid
+	dw .plant
+	dw .bed
+	dw .carpet
+	dw .poster
+	dw .doll
+	dw .bigdoll
 ; 26c8c
 
 
-Function26c8c: ; 26c8c
+.invalid: ; 26c8c
 	ret
 ; 26c8d
 
-Function26c8d: ; 26c8d
+.plant: ; 26c8d
 	ld a, e
-	jr Function26cca
+	jr .getdeconame
 
-Function26c90: ; 26c90
-	call Function26c8d
-	ld a, $d
-	jr Function26cca
+.bed: ; 26c90
+	call .plant
+	ld a, _BED
+	jr .getdeconame
 
-Function26c97: ; 26c97
-	call Function26c8d
-	ld a, $e
-	jr Function26cca
+.carpet: ; 26c97
+	call .plant
+	ld a, _CARPET
+	jr .getdeconame
 
-Function26c9e: ; 26c9e
+.poster: ; 26c9e
 	ld a, e
-	call Function26cc0
-	ld a, $f
-	jr Function26cca
+	call .getpokename
+	ld a, _POSTER
+	jr .getdeconame
 
-Function26ca6: ; 26ca6
+.doll: ; 26ca6
 	ld a, e
-	call Function26cc0
-	ld a, $10
-	jr Function26cca
+	call .getpokename
+	ld a, _DOLL
+	jr .getdeconame
 
-Function26cae: ; 26cae
+.bigdoll: ; 26cae
 	push de
-	ld a, $11
-	call Function26cca
+	ld a, BIG_
+	call .getdeconame
 	pop de
 	ld a, e
-	jr Function26cc0
+	jr .getpokename
 
-Function26cb8: ; 26cb8
+.unused: ; 26cb8
 	push de
-	call Function26cca
+	call .getdeconame
 	pop de
 	ld a, e
-	jr Function26cca
+	jr .getdeconame
 
-Function26cc0: ; 26cc0
+.getpokename: ; 26cc0
 	push bc
 	ld [wd265], a
 	call GetPokemonName
 	pop bc
-	jr Function26cda
+	jr .copy
 
-Function26cca: ; 26cca
-	call Function26ccf
-	jr Function26cda
+.getdeconame: ; 26cca
+	call ._getdeconame
+	jr .copy
 
-Function26ccf: ; 26ccf
+._getdeconame: ; 26ccf
 	push bc
 	ld hl, DecorationNames
 	call GetNthString
@@ -28646,7 +28673,7 @@
 	pop bc
 	ret
 
-Function26cda: ; 26cda
+.copy: ; 26cda
 	ld h, b
 	ld l, c
 	call CopyName2
@@ -28656,78 +28683,78 @@
 	ret
 ; 26ce3
 
-Function26ce3: ; 26ce3
+DecoAction_nothing: ; 26ce3
 	scf
 	ret
 ; 26ce5
 
-Function26ce5: ; 26ce5
+DecoAction_setupbed: ; 26ce5
 	ld hl, Bed
-	jp Function26d2d
+	jp DecoAction_TrySetItUp
 ; 26ceb
 
-Function26ceb: ; 26ceb
+DecoAction_putawaybed: ; 26ceb
 	ld hl, Bed
-	jp Function26d86
+	jp DecoAction_TryPutItAway
 ; 26cf1
 
-Function26cf1: ; 26cf1
+DecoAction_setupcarpet: ; 26cf1
 	ld hl, Carpet
-	jp Function26d2d
+	jp DecoAction_TrySetItUp
 ; 26cf7
 
-Function26cf7: ; 26cf7
+DecoAction_putawaycarpet: ; 26cf7
 	ld hl, Carpet
-	jp Function26d86
+	jp DecoAction_TryPutItAway
 ; 26cfd
 
-Function26cfd: ; 26cfd
+DecoAction_setupplant: ; 26cfd
 	ld hl, Plant
-	jp Function26d2d
+	jp DecoAction_TrySetItUp
 ; 26d03
 
-Function26d03: ; 26d03
+DecoAction_putawayplant: ; 26d03
 	ld hl, Plant
-	jp Function26d86
+	jp DecoAction_TryPutItAway
 ; 26d09
 
-Function26d09: ; 26d09
+DecoAction_setupposter: ; 26d09
 	ld hl, Poster
-	jp Function26d2d
+	jp DecoAction_TrySetItUp
 ; 26d0f
 
-Function26d0f: ; 26d0f
+DecoAction_putawayposter: ; 26d0f
 	ld hl, Poster
-	jp Function26d86
+	jp DecoAction_TryPutItAway
 ; 26d15
 
-Function26d15: ; 26d15
+DecoAction_setupconsole: ; 26d15
 	ld hl, Console
-	jp Function26d2d
+	jp DecoAction_TrySetItUp
 ; 26d1b
 
-Function26d1b: ; 26d1b
+DecoAction_putawayconsole: ; 26d1b
 	ld hl, Console
-	jp Function26d86
+	jp DecoAction_TryPutItAway
 ; 26d21
 
-Function26d21: ; 26d21
+DecoAction_setupbigdoll: ; 26d21
 	ld hl, BigDoll
-	jp Function26d2d
+	jp DecoAction_TrySetItUp
 ; 26d27
 
-Function26d27: ; 26d27
+DecoAction_putawaybigdoll: ; 26d27
 	ld hl, BigDoll
-	jp Function26d86
+	jp DecoAction_TryPutItAway
 ; 26d2d
 
-Function26d2d: ; 26d2d
+DecoAction_TrySetItUp: ; 26d2d
 	ld a, [hl]
 	ld [Buffer1], a
 	push hl
-	call Function26d46
-	jr c, .asm_26d43
-	ld a, $1
+	call DecoAction_SetItUp
+	jr c, .failed
+	ld a, 1
 	ld [wd1ee], a
 	pop hl
 	ld a, [MenuSelection]
@@ -28735,48 +28762,52 @@
 	xor a
 	ret
 
-.asm_26d43
+.failed
 	pop hl
 	xor a
 	ret
 ; 26d46
 
-Function26d46: ; 26d46
+DecoAction_SetItUp: ; 26d46
+; See if there's anything of the same type already out
 	ld a, [Buffer1]
 	and a
-	jr z, .asm_26d6d
+	jr z, .nothingthere
+; See if that item is already out
 	ld b, a
 	ld a, [MenuSelection]
 	cp b
-	jr z, .asm_26d7e
+	jr z, .alreadythere
+; Put away the item that's already out, and set up the new one
 	ld a, [MenuSelection]
 	ld hl, StringBuffer4
-	call Function269e7
+	call GetDecorationName
 	ld a, [Buffer1]
 	ld hl, StringBuffer3
-	call Function269e7
+	call GetDecorationName
 	ld hl, UnknownText_0x26ee0
-	call Function1d67
+	call MenuTextBoxBackup
 	xor a
 	ret
 
-.asm_26d6d
+.nothingthere
 	ld a, [MenuSelection]
 	ld hl, StringBuffer3
-	call Function269e7
+	call GetDecorationName
 	ld hl, UnknownText_0x26edb
-	call Function1d67
+	call MenuTextBoxBackup
 	xor a
 	ret
 
-.asm_26d7e
+.alreadythere
 	ld hl, UnknownText_0x26ee5
-	call Function1d67
+	call MenuTextBoxBackup
 	scf
 	ret
 ; 26d86
 
-Function26d86: ; 26d86
+DecoAction_TryPutItAway: ; 26d86
+; If there is no item of that type already set, there is nothing to put away.
 	ld a, [hl]
 	ld [Buffer1], a
 	xor a
@@ -28783,51 +28814,52 @@
 	ld [hl], a
 	ld a, [Buffer1]
 	and a
-	jr z, .asm_26dab
+	jr z, .nothingthere
+; Put it away.
 	ld a, $1
 	ld [wd1ee], a
 	ld a, [Buffer1]
 	ld [MenuSelection], a
 	ld hl, StringBuffer3
-	call Function269e7
+	call GetDecorationName
 	ld hl, UnknownText_0x26ed1
-	call Function1d67
+	call MenuTextBoxBackup
 	xor a
 	ret
 
-.asm_26dab
+.nothingthere
 	ld hl, UnknownText_0x26ed6
-	call Function1d67
+	call MenuTextBoxBackup
 	xor a
 	ret
 ; 26db3
 
-Function26db3: ; 26db3
+DecoAction_setupornament: ; 26db3
 	ld hl, UnknownText_0x26e41
-	call Function26e70
-	jr c, .asm_26dc7
-	call Function26de3
-	jr c, .asm_26dc7
+	call DecoAction_AskWhichSide
+	jr c, .cancel
+	call DecoAction_SetItUp_Ornament
+	jr c, .cancel
 	ld a, $1
 	ld [wd1ee], a
-	jr Function26dd6
+	jr DecoAction_FinishUp_Ornament
 
-.asm_26dc7
+.cancel
 	xor a
 	ret
 
-Function26dc9: ; 26dc9
+DecoAction_putawayornament: ; 26dc9
 	ld hl, UnknownText_0x26e6b
-	call Function26e70
-	jr nc, .asm_26dd3
+	call DecoAction_AskWhichSide
+	jr nc, .incave
 	xor a
 	ret
 
-.asm_26dd3
-	call Function26e46
+.incave
+	call DecoAction_PutItAway_Ornament
 
-Function26dd6: ; 26dd6
-	call Function26e9a
+DecoAction_FinishUp_Ornament: ; 26dd6
+	call QueryWhichSide
 	ld a, [wd1ec]
 	ld [hl], a
 	ld a, [wd1ed]
@@ -28836,48 +28868,48 @@
 	ret
 ; 26de3
 
-Function26de3: ; 26de3
+DecoAction_SetItUp_Ornament: ; 26de3
 	ld a, [wd1ec]
 	and a
-	jr z, .asm_26e11
+	jr z, .nothingthere
 	ld b, a
 	ld a, [MenuSelection]
 	cp b
-	jr z, .asm_26e2b
+	jr z, .failed
 	ld a, b
 	ld hl, StringBuffer3
-	call Function269e7
+	call GetDecorationName
 	ld a, [MenuSelection]
 	ld hl, StringBuffer4
-	call Function269e7
+	call GetDecorationName
 	ld a, [MenuSelection]
 	ld [wd1ec], a
-	call Function26e33
+	call .getwhichside
 	ld hl, UnknownText_0x26ee0
-	call Function1d67
+	call MenuTextBoxBackup
 	xor a
 	ret
 
-.asm_26e11
+.nothingthere
 	ld a, [MenuSelection]
 	ld [wd1ec], a
-	call Function26e33
+	call .getwhichside
 	ld a, [MenuSelection]
 	ld hl, StringBuffer3
-	call Function269e7
+	call GetDecorationName
 	ld hl, UnknownText_0x26edb
-	call Function1d67
+	call MenuTextBoxBackup
 	xor a
 	ret
 
-.asm_26e2b
+.failed
 	ld hl, UnknownText_0x26ee5
-	call Function1d67
+	call MenuTextBoxBackup
 	scf
 	ret
 ; 26e33
 
-Function26e33: ; 26e33
+.getwhichside: ; 26e33
 	ld a, [MenuSelection]
 	ld b, a
 	ld a, [wd1ed]
@@ -28894,24 +28926,24 @@
 	db "@"
 ; 0x26e46
 
-Function26e46: ; 26e46
+DecoAction_PutItAway_Ornament: ; 26e46
 	ld a, [wd1ec]
 	and a
-	jr z, .asm_26e63
+	jr z, .nothingthere
 	ld hl, StringBuffer3
-	call Function269e7
+	call GetDecorationName
 	ld a, $1
 	ld [wd1ee], a
 	xor a
 	ld [wd1ec], a
 	ld hl, UnknownText_0x26ed1
-	call Function1d67
+	call MenuTextBoxBackup
 	xor a
 	ret
 
-.asm_26e63
+.nothingthere
 	ld hl, UnknownText_0x26ed6
-	call Function1d67
+	call MenuTextBoxBackup
 	xor a
 	ret
 ; 26e6b
@@ -28922,18 +28954,18 @@
 	db "@"
 ; 0x26e70
 
-Function26e70: ; 26e70
-	call Function1d4f
+DecoAction_AskWhichSide: ; 26e70
+	call MenuTextBox
 	ld hl, MenuDataHeader_0x26eab
-	call Function1dab
-	call Function1c07
+	call GetMenu2
+	call ExitMenu
 	call Function1c66
-	jr c, .asm_26e98
+	jr c, .nope
 	ld a, [wcfa9]
-	cp $3
-	jr z, .asm_26e98
+	cp 3
+	jr z, .nope
 	ld [Buffer2], a
-	call Function26e9a
+	call QueryWhichSide
 	ld a, [hl]
 	ld [wd1ec], a
 	ld a, [de]
@@ -28941,16 +28973,16 @@
 	xor a
 	ret
 
-.asm_26e98
+.nope
 	scf
 	ret
 ; 26e9a
 
-Function26e9a: ; 26e9a
+QueryWhichSide: ; 26e9a
 	ld hl, RightOrnament
 	ld de, LeftOrnament
 	ld a, [Buffer2]
-	cp $1
+	cp 1
 	ret z
 	push hl
 	ld h, d
@@ -29005,44 +29037,44 @@
 	db "@"
 ; 0x26eea
 
-Function26eea: ; 26eea
+GetDecorationName_c_de: ; 26eea
 	ld a, c
 	ld h, d
 	ld l, e
-	call Function269e7
+	call GetDecorationName
 	ret
 ; 26ef1
 
-Function26ef1: ; 26ef1
+DecorationFlagAction_c: ; 26ef1
 	ld a, c
-	jp Function26a3b
+	jp DecorationFlagAction
 ; 26ef5
 
 
-Function26ef5: ; 26ef5 (9:6ef5)
+GetDecorationName_c: ; 26ef5 (9:6ef5)
 	ld a, c
-	call Function26f0c
+	call GetDecorationID
 	ld hl, StringBuffer1
 	push hl
-	call Function269e7
+	call GetDecorationName
 	pop de
 	ret
 
 
-Function26f02: ; 26f02
+SetSpecificDecorationFlag: ; 26f02
 	ld a, c
-	call Function26f0c
-	ld b, $1
-	call Function26a3b
+	call GetDecorationID
+	ld b, SET_FLAG
+	call DecorationFlagAction
 	ret
 ; 26f0c
 
-Function26f0c: ; 26f0c
+GetDecorationID: ; 26f0c
 	push hl
 	push de
 	ld e, a
 	ld d, 0
-	ld hl, Unknown_26f2b
+	ld hl, DecorationIDs
 	add hl, de
 	ld a, [hl]
 	pop de
@@ -29050,62 +29082,103 @@
 	ret
 ; 26f19
 
-Function26f19: ; 26f19
-	ld hl, Unknown_26f2b
-.asm_26f1c
+SetAllDecorationFlags: ; 26f19
+	ld hl, DecorationIDs
+.loop
 	ld a, [hli]
-	cp $ff
-	jr z, .asm_26f2a
+	cp -1
+	jr z, .done
 	push hl
-	ld b, $1
-	call Function26a3b
+	ld b, SET_FLAG
+	call DecorationFlagAction
 	pop hl
-	jr .asm_26f1c
+	jr .loop
 
-.asm_26f2a
+.done
 	ret
 ; 26f2b
 
-Unknown_26f2b: ; 26f2b
-	db $02, $03, $04, $05, $07
-	db $08, $09, $0a, $0c, $0d
-	db $0e, $10, $11, $12, $13
-	db $15, $16, $17, $18, $1e
-	db $1f, $20, $21, $22, $23
-	db $24, $25, $26, $27, $28
-	db $29, $2a, $2b, $2c, $2d
-	db $2e, $2f, $30, $31, $32
-	db $1a, $1b, $1c, $33, $34
-	db $ff
+DecorationIDs: ; 26f2b
+	db DECO_FEATHERY_BED ; 2
+	db DECO_PINK_BED ; 3
+	db DECO_POLKADOT_BED ; 4
+	db DECO_PIKACHU_BED ; 5
+
+	db DECO_RED_CARPET ; 7
+	db DECO_BLUE_CARPET ; 8
+	db DECO_YELLOW_CARPET ; 9
+	db DECO_GREEN_CARPET ; a
+
+	db DECO_MAGNAPLANT ; c
+	db DECO_TROPICPLANT ; d
+	db DECO_JUMBOPLANT ; e
+
+	db DECO_TOWN_MAP ; 10
+	db DECO_PIKACHU_POSTER ; 11
+	db DECO_CLEFAIRY_POSTER ; 12
+	db DECO_JIGGLYPUFF_POSTER ; 13
+
+	db DECO_FAMICOM ; 15
+	db DECO_SNES ; 16
+	db DECO_N64 ; 17
+	db DECO_VIRTUAL_BOY ; 18
+
+	db DECO_PIKACHU_DOLL ; 1e
+	db DECO_SURF_PIKACHU_DOLL ; 1f
+	db DECO_CLEFAIRY_DOLL ; 20
+	db DECO_JIGGLYPUFF_DOLL ; 21
+	db DECO_BULBASAUR_DOLL ; 22
+	db DECO_CHARMANDER_DOLL ; 23
+	db DECO_SQUIRTLE_DOLL ; 24
+	db DECO_POLIWAG_DOLL ; 25
+	db DECO_DIGLETT_DOLL ; 26
+	db DECO_STARMIE_DOLL ; 27
+	db DECO_MAGIKARP_DOLL ; 28
+	db DECO_ODDISH_DOLL ; 29
+	db DECO_GENGAR_DOLL ; 2a
+	db DECO_SHELLDER_DOLL ; 2b
+	db DECO_GRIMER_DOLL ; 2c
+	db DECO_VOLTORB_DOLL ; 2d
+	db DECO_WEEDLE_DOLL ; 2e
+	db DECO_UNOWN_DOLL ; 2f
+	db DECO_GEODUDE_DOLL ; 30
+	db DECO_MACHOP_DOLL ; 31
+	db DECO_TENTACOOL_DOLL ; 32
+	db DECO_BIG_SNORLAX_DOLL ; 1a
+	db DECO_BIG_ONIX_DOLL ; 1b
+	db DECO_BIG_LAPRAS_DOLL ; 1c
+	db DECO_GOLD_TROPHY_DOLL ; 33
+	db DECO_SILVER_TROPHY_DOLL ; 34
+	db -1
 ; 26f59
 
-Function26f59:: ; 26f59
+DescribeDecoration:: ; 26f59
 	ld a, b
-	ld hl, Table26f5f
+	ld hl, JumpTable_DecorationDesc
 	rst JumpTable
 	ret
 ; 26f5f
 
-Table26f5f: ; 26f5f
-	dw Function26f69
-	dw Function26fb9
-	dw Function26fbe
-	dw Function26fdd
-	dw Function26fc3
+JumpTable_DecorationDesc: ; 26f5f
+	dw DecorationDesc_Poster
+	dw DecorationDesc_LeftOrnament
+	dw DecorationDesc_RightOrnament
+	dw DecorationDesc_GiantDoll
+	dw DecorationDesc_Console
 ; 26f69
 
-Function26f69: ; 26f69
+DecorationDesc_Poster: ; 26f69
 	ld a, [Poster]
-	ld hl, Unknown_26f84
+	ld hl, DecorationDesc_PosterPointers
 	ld de, 3
 	call IsInArray
-	jr c, .asm_26f7d
-	ld de, UnknownScript_0x26fb8
-	ld b, BANK(UnknownScript_0x26fb8)
+	jr c, .nope
+	ld de, DecorationDesc_NullPoster
+	ld b, BANK(DecorationDesc_NullPoster)
 	ret
 
-.asm_26f7d
-	ld b, BANK(UnknownScript_0x26f91)
+.nope
+	ld b, BANK(DecorationDesc_TownMapPoster)
 	inc hl
 	ld a, [hli]
 	ld d, [hl]
@@ -29113,19 +29186,19 @@
 	ret
 ; 26f84
 
-Unknown_26f84: ; 26f84
-	dbw $10, UnknownScript_0x26f91
-	dbw $11, UnknownScript_0x26fa0
-	dbw $12, UnknownScript_0x26fa8
-	dbw $13, UnknownScript_0x26fb0
-	db $ff
+DecorationDesc_PosterPointers: ; 26f84
+	dbw DECO_TOWN_MAP, DecorationDesc_TownMapPoster
+	dbw DECO_PIKACHU_POSTER, DecorationDesc_PikachuPoster
+	dbw DECO_CLEFAIRY_POSTER, DecorationDesc_ClefairyPoster
+	dbw DECO_JIGGLYPUFF_POSTER, DecorationDesc_JigglypuffPoster
+	db -1
 ; 26f91
 
-UnknownScript_0x26f91: ; 0x26f91
+DecorationDesc_TownMapPoster: ; 0x26f91
 	loadfont
 	writetext UnknownText_0x26f9b
 	closetext
-	special Functionc2c0
+	special Special_TownMap
 	loadmovesprites
 	end
 ; 0x26f9b
@@ -29136,7 +29209,7 @@
 	db "@"
 ; 0x26fa0
 
-UnknownScript_0x26fa0: ; 0x26fa0
+DecorationDesc_PikachuPoster: ; 0x26fa0
 	jumptext UnknownText_0x26fa3
 ; 0x26fa3
 
@@ -29146,7 +29219,7 @@
 	db "@"
 ; 0x26fa8
 
-UnknownScript_0x26fa8: ; 0x26fa8
+DecorationDesc_ClefairyPoster: ; 0x26fa8
 	jumptext UnknownText_0x26fab
 ; 0x26fab
 
@@ -29156,7 +29229,7 @@
 	db "@"
 ; 0x26fb0
 
-UnknownScript_0x26fb0: ; 0x26fb0
+DecorationDesc_JigglypuffPoster: ; 0x26fb0
 	jumptext UnknownText_0x26fb3
 ; 0x26fb3
 
@@ -29166,26 +29239,26 @@
 	db "@"
 ; 0x26fb8
 
-UnknownScript_0x26fb8: ; 26fb8
+DecorationDesc_NullPoster: ; 26fb8
 	end
 ; 26fb9
 
-Function26fb9: ; 26fb9
+DecorationDesc_LeftOrnament: ; 26fb9
 	ld a, [LeftOrnament]
-	jr Function26fc8
+	jr DecorationDesc_OrnamentOrConsole
 
-Function26fbe: ; 26fbe
+DecorationDesc_RightOrnament: ; 26fbe
 	ld a, [RightOrnament]
-	jr Function26fc8
+	jr DecorationDesc_OrnamentOrConsole
 
-Function26fc3: ; 26fc3
+DecorationDesc_Console: ; 26fc3
 	ld a, [Console]
-	jr Function26fc8
+	jr DecorationDesc_OrnamentOrConsole
 
-Function26fc8: ; 26fc8
+DecorationDesc_OrnamentOrConsole: ; 26fc8
 	ld c, a
 	ld de, StringBuffer3
-	call Function26eea
+	call GetDecorationName_c_de
 	ld b, BANK(Unknown_26fd5)
 	ld de, Unknown_26fd5
 	ret
@@ -29201,7 +29274,7 @@
 	db "@"
 ; 0x26fdd
 
-Function26fdd: ; 26fdd
+DecorationDesc_GiantDoll: ; 26fdd
 	ld b, BANK(Unknown_26fe3)
 	ld de, Unknown_26fe3
 	ret
@@ -29217,27 +29290,27 @@
 	db "@"
 ; 0x26feb
 
-Function26feb: ; 26feb
-	ld de, $0004
+ToggleMaptileDecorations: ; 26feb
+	lb de, 0, 4
 	ld a, [Bed]
-	call Function27037
-	ld de, $0704
+	call SetDecorationTile
+	lb de, 7, 4
 	ld a, [Plant]
-	call Function27037
-	ld de, $0600
+	call SetDecorationTile
+	lb de, 6, 0
 	ld a, [Poster]
-	call Function27037
-	call Function27027
-	ld de, $0000
-	call Function27092
+	call SetDecorationTile
+	call SetPosterVisibility
+	lb de, 0, 0
+	call PadCoords_de
 	ld a, [Carpet]
 	and a
 	ret z
-	call Function27085
+	call _GetDecorationSprite
 	ld [hl], a
 	push af
-	ld de, $0002
-	call Function27092
+	lb de, 0, 2
+	call PadCoords_de
 	pop af
 	inc a
 	ld [hli], a
@@ -29248,67 +29321,67 @@
 	ret
 ; 27027
 
-Function27027: ; 27027
-	ld b, $1
+SetPosterVisibility: ; 27027
+	ld b, SET_FLAG
 	ld a, [Poster]
 	and a
-	jr nz, .asm_27031
-	ld b, $0
+	jr nz, .ok
+	ld b, RESET_FLAG
 
-.asm_27031
-	ld de, $02cc
+.ok
+	ld de, EVENT_KRISS_ROOM_POSTER
 	jp EventFlagAction
 ; 27037
 
-Function27037: ; 27037
+SetDecorationTile: ; 27037
 	push af
-	call Function27092
+	call PadCoords_de
 	pop af
 	and a
 	ret z
-	call Function27085
+	call _GetDecorationSprite
 	ld [hl], a
 	ret
 ; 27043
 
-Function27043: ; 27043
-	ld de, $0741
-	ld hl, VariableSprites
+ToggleDecorationsVisibility: ; 27043
+	ld de, EVENT_KRISS_HOUSE_2F_CONSOLE
+	ld hl, VariableSprites + SPRITE_CONSOLE - SPRITE_VARS
 	ld a, [Console]
-	call Function27074
-	ld de, $0742
-	ld hl, VariableSprites + 1
+	call ToggleDecorationVisibility
+	ld de, EVENT_KRISS_HOUSE_2F_DOLL_1
+	ld hl, VariableSprites + SPRITE_DOLL_1 - SPRITE_VARS
 	ld a, [LeftOrnament]
-	call Function27074
-	ld de, $0743
-	ld hl, VariableSprites + 2
+	call ToggleDecorationVisibility
+	ld de, EVENT_KRISS_HOUSE_2F_DOLL_2
+	ld hl, VariableSprites + SPRITE_DOLL_2 - SPRITE_VARS
 	ld a, [RightOrnament]
-	call Function27074
-	ld de, $0744
-	ld hl, VariableSprites + 3
+	call ToggleDecorationVisibility
+	ld de, EVENT_KRISS_HOUSE_2F_BIG_DOLL
+	ld hl, VariableSprites + SPRITE_BIG_DOLL - SPRITE_VARS
 	ld a, [BigDoll]
-	call Function27074
+	call ToggleDecorationVisibility
 	ret
 ; 27074
 
-Function27074: ; 27074
+ToggleDecorationVisibility: ; 27074
 	and a
-	jr z, .asm_27080
-	call Function27085
+	jr z, .hide
+	call _GetDecorationSprite
 	ld [hl], a
-	ld b, $0
+	ld b, RESET_FLAG
 	jp EventFlagAction
 
-.asm_27080
-	ld b, $1
+.hide
+	ld b, SET_FLAG
 	jp EventFlagAction
 ; 27085
 
-Function27085: ; 27085
+_GetDecorationSprite: ; 27085
 	ld c, a
 	push de
 	push hl
-	callba Function26a44
+	callba GetDecorationSprite
 	pop hl
 	pop de
 	ld a, c
@@ -29315,19 +29388,19 @@
 	ret
 ; 27092
 
-Function27092: ; 27092
+PadCoords_de: ; 27092
 	ld a, d
-	add $4
+	add 4
 	ld d, a
 	ld a, e
-	add $4
+	add 4
 	ld e, a
-	call Function2a66
+	call GetBlockLocation
 	ret
 ; 2709e
 
 
-Function2709e: ; 2709e
+LevelUpHappinessMod: ; 2709e
 	ld a, [CurPartyMon]
 	ld hl, PartyMon1CaughtLocation
 	call GetPartyLocation
@@ -29340,11 +29413,11 @@
 	ld c, a
 	call GetWorldMapLocation
 	cp d
-	ld c, $1
-	jr nz, .asm_270bd
-	ld c, $13
+	ld c, 1
+	jr nz, .ok
+	ld c, 19
 
-.asm_270bd
+.ok
 	callab ChangeHappiness
 	ret
 ; 270c4
@@ -29356,18 +29429,18 @@
 	call ClearTileMap
 	ld a, [BattleType]
 	cp BATTLETYPE_TUTORIAL
-	jr z, .asm_27171
+	jr z, .gettutorialbackpic
 	callba Function3f43d
-	jr .asm_27177
+	jr .continue
 
-.asm_27171
+.gettutorialbackpic
 	callba GetBattleBackpic
 
-.asm_27177
+.continue
 	callba Function3f47c
 	callba Function3ed9f
 	call ClearSGB
-	call Function1c17
+	call WriteBackup
 	call Function1d6e
 	call WaitBGMap
 	jp Function32f9
@@ -29382,12 +29455,12 @@
 	ld hl, OTPartyMon1Item
 	ld de, EnemyMonItem
 	ld a, [CurOTMon]
-	jr z, .asm_271ac
+	jr z, .theirturn
 	ld hl, PartyMon1Item
 	ld de, BattleMonItem
 	ld a, [CurBattleMon]
 
-.asm_271ac
+.theirturn
 	push hl
 	push af
 	ld a, [de]
@@ -29394,12 +29467,12 @@
 	ld b, a
 	callba GetItem
 	ld hl, Unknown_271de
-.asm_271b9
+.loop
 	ld a, [hli]
 	cp b
-	jr z, .asm_271c6
+	jr z, .ok
 	inc a
-	jr nz, .asm_271b9
+	jr nz, .loop
 	pop af
 	pop hl
 	pop bc
@@ -29407,7 +29480,7 @@
 	pop hl
 	ret
 
-.asm_271c6
+.ok
 	xor a
 	ld [de], a
 	pop af
@@ -29415,15 +29488,15 @@
 	call GetPartyLocation
 	ld a, [hBattleTurn]
 	and a
-	jr nz, .asm_271d8
+	jr nz, .ourturn
 	ld a, [IsInBattle]
 	dec a
-	jr z, .asm_271da
+	jr z, .done
 
-.asm_271d8
+.ourturn
 	ld [hl], $0
 
-.asm_271da
+.done
 	pop bc
 	pop de
 	pop hl
@@ -29453,7 +29526,7 @@
 	db $47
 	db HELD_ESCAPE
 	db HELD_CRITICAL_UP
-	db $ff
+	db -1
 ; 271f4
 
 MoveEffectsPointers: ; 271f4
@@ -29477,7 +29550,7 @@
 	call DelayFrames
 	call ClearScreen
 	call ClearSprites
-	call Function1ad2
+	call DrawOnMap
 	xor a
 	ld [hSCX], a
 	ld [hSCY], a
@@ -29484,7 +29557,7 @@
 	ld c, $50
 	call DelayFrames
 	call ClearScreen
-	call Function1ad2
+	call DrawOnMap
 	call Functione51
 	call Functione58
 	callba Function16d69a
@@ -29623,7 +29696,7 @@
 	ld [wd265], a
 	push hl
 	push de
-	callab Functionfb908
+	callab ConvertMon_1to2
 	pop de
 	pop hl
 	ld a, [wd265]
@@ -29966,7 +30039,7 @@
 	pop hl
 	bccoord 1, 14
 	call Function13e5
-	call Function4b6
+	call FadeToWhite
 	call ClearScreen
 	ld b, $8
 	call GetSGBLayout
@@ -30049,9 +30122,9 @@
 	jr nz, .asm_28441
 	ld hl, wc608
 	ld a, $fd
+rept 3
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld b, $c8
 	xor a
 .asm_28457
@@ -30130,7 +30203,7 @@
 	ld [wd265], a
 	push hl
 	push de
-	callab Functionfb8f1
+	callab ConvertMon_2to1
 	pop de
 	pop hl
 	ld a, [wd265]
@@ -30170,7 +30243,7 @@
 	push bc
 	ld a, [hl]
 	ld [wd265], a
-	callab Functionfb8f1
+	callab ConvertMon_2to1
 	pop bc
 	pop de
 	ld a, [wd265]
@@ -30450,7 +30523,7 @@
 	push bc
 	push de
 	ld [wd265], a
-	callab Functionfb908
+	callab ConvertMon_1to2
 	pop de
 	pop bc
 	ld a, [wd265]
@@ -30555,12 +30628,14 @@
 	ld a, $46
 	ld [hli], a
 	xor a
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 	pop hl
+rept 2
 	inc de
-	inc de
+endr
 	ret
 ; 28771
 
@@ -30670,9 +30745,9 @@
 	callba Function16d673
 	xor a
 	ld hl, wcf51
+rept 3
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 	ld a, $1
 	ld [wcfa9], a
@@ -31054,7 +31129,7 @@
 	jr nz, .asm_28ade
 
 Function28b22: ; 28b22
-	call Function4b6
+	call FadeToWhite
 	call ClearScreen
 	ld b, $8
 	call GetSGBLayout
@@ -31078,7 +31153,7 @@
 	call ByteFill
 	hlcoord 1, 16
 	ld a, $7f
-	ld bc, $0012
+	ld bc, SCREEN_HEIGHT
 	call ByteFill
 	hlcoord 2, 16
 	ld de, String_28b61
@@ -31092,7 +31167,7 @@
 Function28b68: ; 28b68
 	ld a, [wcf51]
 	hlcoord 6, 9
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	call AddNTimes
 	ld [hl], $ec
 	ret
@@ -31107,7 +31182,7 @@
 	dec c
 	jr nz, .asm_28b79
 	pop hl
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	pop bc
 	dec b
@@ -31730,8 +31805,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, JumpTable290af
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -32019,8 +32095,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_2928f
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -32050,7 +32127,7 @@
 Function292af: ; 292af
 	call Function297cf
 	hlcoord 0, 3
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	ld a, $60
 	call ByteFill
 	ret
@@ -32066,7 +32143,7 @@
 	ld a, $5d
 	ld [hl], a
 	ld a, $61
-	ld de, $0014
+	ld de, SCREEN_WIDTH
 	ld c, $3
 .asm_292d9
 	add hl, de
@@ -32097,8 +32174,8 @@
 	ld a, $9c
 	ld [$ffd7], a
 	call ClearTileMap
-	ld hl, TileMap
-	ld bc, $0014
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH
 	ld a, $7a
 	call ByteFill
 	hlcoord 0, 1
@@ -32363,7 +32440,7 @@
 	hlcoord 7, 2
 	xor a
 	ld [$ffad], a
-	ld bc, $0707
+	lb bc, 7, 7
 	predef FillBox
 	call WaitBGMap
 	ret
@@ -32604,8 +32681,9 @@
 	ld e, [hl]
 	ld d, 0
 	ld hl, Jumptable_29686
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -32739,7 +32817,7 @@
 ; 0x29737
 
 UnknownText_0x29737: ; 0x29737
-	; 
+	;
 	text_jump UnknownText_0x1bc701
 	db "@"
 ; 0x2973c
@@ -32844,8 +32922,8 @@
 ; 297cf
 
 Function297cf: ; 297cf
-	ld hl, TileMap
-	ld bc, $0168
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	ld a, $7f
 	call ByteFill
 	ret
@@ -32862,7 +32940,7 @@
 	dec c
 	jr nz, .asm_297dd
 	pop hl
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	pop bc
 	dec b
@@ -33040,23 +33118,31 @@
 TradeBallGFX:   INCBIN "gfx/trade/ball.2bpp"
 TradePoofGFX:   INCBIN "gfx/trade/poof.2bpp"
 
-Function29bfb: ; 29bfb
+Special_CheckTimeCapsuleCompatibility: ; 29bfb
+; Checks to see if your Party is compatible with the generation 1 games.  Returns the following in ScriptVar:
+; 0: Party is okay
+; 1: At least one Pokemon was introduced in GS
+; 2: At least one Pokemon has a move that was introduced in GS
+; 3: At least one Pokemon is holding mail
+
+; If any party Pokemon was introduced in the generation 2 games, don't let it in.
 	ld hl, PartySpecies
-	ld b, PARTY_LENGTH
-.asm_29c00
+	ld b, PARTY_LENGTH ; 6
+.loop
 	ld a, [hli]
 	cp $ff
-	jr z, .asm_29c0c
-	cp 151 + 1
-	jr nc, .asm_29c42
+	jr z, .checkitem
+	cp CHIKORITA ; MEW + 1 ; 151 + 1
+	jr nc, .mon_too_new
 	dec b
-	jr nz, .asm_29c00
+	jr nz, .loop
 
-.asm_29c0c
+; If any party Pokemon is holding mail, don't let it in.
+.checkitem
 	ld a, [PartyCount]
 	ld b, a
 	ld hl, PartyMon1Item
-.asm_29c13
+.itemloop
 	push hl
 	push bc
 	ld d, [hl]
@@ -33063,37 +33149,38 @@
 	callba ItemIsMail
 	pop bc
 	pop hl
-	jr c, .asm_29c5e
+	jr c, .mon_has_mail
 	ld de, PartyMon2 - PartyMon1
 	add hl, de
 	dec b
-	jr nz, .asm_29c13
+	jr nz, .itemloop
 
+; If any party Pokemon has a move that was introduced in the generation 2 games, don't let it in.
 	ld hl, PartyMon1Moves
 	ld a, [PartyCount]
 	ld b, a
-.asm_29c2e
+.move_loop
 	ld c, NUM_MOVES
-.asm_29c30
+.move_next
 	ld a, [hli]
 	cp STRUGGLE + 1
-	jr nc, .asm_29c4c
+	jr nc, .move_too_new
 	dec c
-	jr nz, .asm_29c30
+	jr nz, .move_next
 	ld de, PartyMon2 - (PartyMon1 + NUM_MOVES)
 	add hl, de
 	dec b
-	jr nz, .asm_29c2e
+	jr nz, .move_loop
 	xor a
-	jr .asm_29c63
+	jr .done
 
-.asm_29c42
+.mon_too_new
 	ld [wd265], a
 	call GetPokemonName
 	ld a, $1
-	jr .asm_29c63
+	jr .done
 
-.asm_29c4c
+.move_too_new
 	push bc
 	ld [wd265], a
 	call GetMoveName
@@ -33101,13 +33188,13 @@
 	pop bc
 	call Function29c67
 	ld a, $2
-	jr .asm_29c63
+	jr .done
 
-.asm_29c5e
+.mon_has_mail
 	call Function29c67
 	ld a, $3
 
-.asm_29c63
+.done
 	ld [ScriptVar], a
 	ret
 ; 29c67
@@ -33126,7 +33213,7 @@
 	ret
 ; 29c7b
 
-Function29c7b: ; 29c7b
+Special_EnterTimeCapsule: ; 29c7b
 	ld c, $a
 	call DelayFrames
 	ld a, $4
@@ -33140,7 +33227,7 @@
 	ret
 ; 29c92
 
-Function29c92: ; 29c92
+Special_AbortLink: ; 29c92
 	ld c, $3
 	call DelayFrames
 	ld a, $ff
@@ -33188,7 +33275,7 @@
 	ret
 ; 29ce8
 
-Function29ce8: ; 29ce8
+Special_SetBitsForLinkTradeRequest: ; 29ce8
 	ld a, $1
 	ld [wcf56], a
 	ld [wd265], a
@@ -33195,7 +33282,7 @@
 	ret
 ; 29cf1
 
-Function29cf1: ; 29cf1
+Special_SetBitsForBattleRequest: ; 29cf1
 	ld a, $2
 	ld [wcf56], a
 	ld [wd265], a
@@ -33202,7 +33289,7 @@
 	ret
 ; 29cfa
 
-Function29cfa: ; 29cfa
+Special_SetBitsForTimeCapsuleRequest: ; 29cfa
 	ld a, $2
 	ld [rSB], a
 	xor a
@@ -33217,7 +33304,7 @@
 	ret
 ; 29d11
 
-Function29d11: ; 29d11
+Special_WaitForLinkedFriend: ; 29d11
 	ld a, [wcf56]
 	and a
 	jr z, .asm_29d2f
@@ -33289,7 +33376,7 @@
 	ret
 ; 29d92
 
-Function29d92: ; 29d92
+Special_CheckLinkTimeout: ; 29d92
 	ld a, $1
 	ld [wcf56], a
 	ld hl, wcf5b
@@ -33425,7 +33512,7 @@
 	ret
 ; 29e66
 
-Function29e66: ; 29e66
+Special_TryQuickSave: ; 29e66
 	ld a, [wd265]
 	push af
 	callba Function14ab2
@@ -33442,7 +33529,7 @@
 	ret
 ; 29e82
 
-Function29e82: ; 29e82
+Special_CheckBothSelectedSameRoom: ; 29e82
 	ld a, [wd265]
 	call Function29f17
 	push af
@@ -33469,7 +33556,7 @@
 	ret
 ; 29eaf
 
-Function29eaf: ; 29eaf
+Special_TimeCapsule: ; 29eaf
 	ld a, $1
 	ld [InLinkBattle], a
 	call Function2ed3
@@ -33480,7 +33567,7 @@
 	ret
 ; 29ec4
 
-Function29ec4: ; 29ec4
+Special_TradeCenter: ; 29ec4
 	ld a, $2
 	ld [InLinkBattle], a
 	call Function2ed3
@@ -33491,7 +33578,7 @@
 	ret
 ; 29ed9
 
-Function29ed9: ; 29ed9
+Special_Colosseum: ; 29ed9
 	ld a, $3
 	ld [InLinkBattle], a
 	call Function2ed3
@@ -33502,7 +33589,7 @@
 	ret
 ; 29eee
 
-Function29eee: ; 29eee
+Special_CloseLink: ; 29eee
 	xor a
 	ld [InLinkBattle], a
 	ld c, $3
@@ -33510,7 +33597,7 @@
 	jp Function29f04
 ; 29efa
 
-Function29efa: ; 29efa
+Special_FailedLinkToPast: ; 29efa
 	ld c, $28
 	call DelayFrames
 	ld a, $e
@@ -33559,14 +33646,14 @@
 	ret
 ; 29f47
 
-Function29f47: ; 29f47
+Special_CableClubCheckWhichChris: ; 29f47
 	ld a, [$ffcb]
 	cp $1
 	ld a, $1
-	jr z, .asm_29f50
+	jr z, .yes
 	dec a
 
-.asm_29f50
+.yes
 	ld [ScriptVar], a
 	ret
 ; 29f54
@@ -33587,18 +33674,20 @@
 	ret
 ; 29ff8
 
-Function29ff8: ; 29ff8
+LoadWildMonData: ; 29ff8
 	call Function2a205
 	jr c, .asm_2a006
 	ld hl, wd25a
 	xor a
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 	jr .asm_2a011
 .asm_2a006
+rept 2
 	inc hl
-	inc hl
+endr
 	ld de, wd25a
 	ld bc, $3
 	call CopyBytes
@@ -33606,8 +33695,9 @@
 	call Function2a21d
 	ld a, $0
 	jr nc, .asm_2a01b
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [hl]
 .asm_2a01b
 	ld [wd25d], a
@@ -33614,14 +33704,14 @@
 	ret
 
 Function2a01f: ; 2a01f
-	ld hl, TileMap
-	ld bc, $0168
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	xor a
 	call ByteFill
 	ld a, e
 	and a
 	jr nz, .asm_2a043
-	ld de, TileMap
+	decoord 0, 0
 	ld hl, WildMons1
 	call Function2a052
 	ld hl, WildMons2
@@ -33631,7 +33721,7 @@
 	ret
 
 .asm_2a043
-	ld de, TileMap
+	decoord 0, 0
 	ld hl, WildMons3
 	call Function2a052
 	ld hl, WildMons4
@@ -33648,9 +33738,9 @@
 	ld b, a
 	ld a, [hli]
 	ld c, a
+rept 3
 	inc hl
-	inc hl
-	inc hl
+endr
 	ld a, $15
 	call Function2a088
 	jr nc, .asm_2a067
@@ -33695,8 +33785,9 @@
 	ld a, [wd265]
 	cp [hl]
 	jr z, .asm_2a098
+rept 2
 	inc hl
-	inc hl
+endr
 	pop af
 	dec a
 	jr nz, .asm_2a089
@@ -33712,8 +33803,8 @@
 	push de
 	call GetWorldMapLocation
 	ld c, a
-	ld hl, TileMap
-	ld de, $0168
+	hlcoord 0, 0
+	ld de, SCREEN_WIDTH * SCREEN_HEIGHT
 .asm_2a0a7
 	ld a, [hli]
 	cp c
@@ -33834,13 +33925,13 @@
 	ld de, PartyMon2 - PartyMon1
 	ld a, [PartyCount]
 	ld c, a
-.next
+.loop
 	ld a, [hl]
 	cp CLEANSE_TAG
 	jr z, .asm_2a14c
 	add hl, de
 	dec c
-	jr nz, .next
+	jr nz, .loop
 	ret
 
 .asm_2a14c
@@ -33854,14 +33945,15 @@
 	call Function2a2ce
 	jp c, .asm_2a1c9
 
+rept 3
 	inc hl
-	inc hl
-	inc hl
+endr
 	call Function1852
 	ld de, Unknown_2a1d9
 	jr z, .asm_2a174
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [TimeOfDay]
 	ld bc, $e
 	call AddNTimes
@@ -33971,10 +34063,9 @@
 
 .asm_2a1f2
 ; to PartyMonLevel
+rept 4
 	dec hl
-	dec hl
-	dec hl
-	dec hl
+endr
 
 	ld a, [CurPartyLevel]
 	cp [hl]
@@ -34024,7 +34115,7 @@
 asm_2a23d
 	call Function2a27f
 	push hl
-	ld hl, wdc20
+	ld hl, SwarmFlags
 	bit 2, [hl]
 	pop hl
 	jr z, .asm_2a25c
@@ -34041,7 +34132,7 @@
 
 .asm_2a25c
 	push hl
-	ld hl, wdc20
+	ld hl, SwarmFlags
 	bit 3, [hl]
 	pop hl
 	jr z, asm_2a278
@@ -34171,9 +34262,9 @@
 	ld a, e
 	cp [hl]
 	jr nz, .asm_2a30a
+rept 3
 	dec hl
-	dec hl
-	dec hl
+endr
 	ld a, [hli]
 	ld [wd22e], a
 	ld a, [hl]
@@ -34192,7 +34283,7 @@
 ; 2a30d
 
 
-Function2a30d: ; 2a30d
+UpdateRoamMons: ; 2a30d
 	ld a, [wRoamMon1MapGroup]
 	cp $ff
 	jr z, .asm_2a324
@@ -34272,8 +34363,9 @@
 	inc hl
 	ld c, a
 	ld b, $0
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [wdfe7]
 	cp [hl]
 	jr nz, .asm_2a390
@@ -34289,7 +34381,7 @@
 	ld c, [hl]
 	ret
 
-Function2a394: ; 2a394
+RestoreRoamMons: ; 2a394
 	ld a, [wRoamMon1MapGroup]
 	cp $ff
 	jr z, .asm_2a3a6
@@ -34433,8 +34525,9 @@
 	dec a
 	ld c, a
 	ld b, $0
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	inc hl
 	ld c, [hl]
 	pop hl
@@ -34506,8 +34599,9 @@
 	and $3
 	ld c, a
 	ld b, $0
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	inc hl
 	ld a, [hl]
 	ld [wd265], a
@@ -34526,8 +34620,9 @@
 	dec a
 	ld c, a
 	ld b, 0
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, BANK(TrainerGroups)
 	call GetFarHalfword
 
@@ -34887,9 +34982,9 @@
 	jr z, .asm_2c08b
 
 .asm_2c07f
+rept 3
 	dec hl
-	dec hl
-	dec hl
+endr
 	ld a, [hl]
 	and a
 	ld b, $32
@@ -34898,9 +34993,9 @@
 	jr .asm_2c08e
 
 .asm_2c08b
+rept 3
 	dec hl
-	dec hl
-	dec hl
+endr
 
 .asm_2c08e
 	ld a, b
@@ -34968,7 +35063,7 @@
 Function2c0f1: ; 2c0f1
 	ld a, [wd004]
 	ld [hl], a
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	ld a, [StartFlypoint]
 	ld [hl], a
@@ -35084,7 +35179,7 @@
 	db "RIVAL@"
 	db "#MON PROF.@"
 	db "ELITE FOUR@"
-	db $4a, " TRAINER@"
+	db "<PKMN> TRAINER@"
 	db "ELITE FOUR@"
 	db "ELITE FOUR@"
 	db "ELITE FOUR@"
@@ -35135,7 +35230,7 @@
 	db "KIMONO GIRL@"
 	db "TWINS@"
 	db "#FAN@"
-	db $4a, " TRAINER@"
+	db "<PKMN> TRAINER@"
 	db "LEADER@"
 	db "OFFICER@"
 	db "ROCKET@"
@@ -35563,7 +35658,7 @@
 	push af
 	res 4, [hl]
 	ld a, [CurItem]
-	cp TM_01
+	cp TM01
 	jr c, .asm_2c7f5
 	call GetTMHMItemMove
 	ld a, [wd265]
@@ -35572,7 +35667,7 @@
 	call CopyName1
 	ld hl, UnknownText_0x2c8bf
 	ld a, [CurItem]
-	cp HM_01
+	cp HM01
 	jr c, .asm_2c7e9
 	ld hl, UnknownText_0x2c8c4
 .asm_2c7e9
@@ -35942,9 +36037,9 @@
 	jr .asm_2ca85
 .asm_2ca77
 	call Function2ca86
+rept 3
 	inc hl
-	inc hl
-	inc hl
+endr
 	push de
 	ld de, String_2caae
 	call PlaceString
@@ -36099,8 +36194,9 @@
 	dec a
 	ld c, a
 	ld b, 0
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld e, a
 	ld d, [hl]
@@ -36243,7 +36339,7 @@
 	push hl
 	ld a, [hl]
 	cp SHUCKLE
-	jr nz, .nextMon
+	jr nz, .loopMon
 	ld bc, PartyMon1Item - PartyMon1Species
 	add hl, bc
 	ld a, [hl]
@@ -36250,7 +36346,7 @@
 	cp BERRY
 	jr z, .convertToJuice
 
-.nextMon
+.loopMon
 	pop hl
 	ld bc, PartyMon2 - PartyMon1
 	add hl, bc
@@ -36424,9 +36520,9 @@
 	ld [wd0ee], a
 
 	ld hl, wd0d8
+rept 3
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 
 	ld [wd0e4], a
@@ -36651,8 +36747,9 @@
 	ld c, a
 	ld b, 0
 	ld hl, TrainerGroups
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -36662,10 +36759,10 @@
 .skip_trainer
 	dec b
 	jr z, .got_trainer
-.next
+.loop
 	ld a, [hli]
 	cp $ff
-	jr nz, .next
+	jr nz, .loop
 	jr .skip_trainer
 .got_trainer
 
@@ -36680,8 +36777,9 @@
 	ld d, h
 	ld e, l
 	ld hl, TrainerTypes
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -36929,9 +37027,9 @@
 Function3991b: ; 3991b (e:591b)
 	ld hl, $ffb3
 	xor a
+rept 3
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld a, [wc652] ; base reward
 	ld [hli], a
 	ld a, [CurPartyLevel]
@@ -36947,11 +37045,11 @@
 	ret
 
 
-Function39939:: ; 39939
+Battle_GetTrainerName:: ; 39939
 	ld a, [wcfc0]
 	bit 0, a
 	ld hl, wd26b
-	jp nz, Function39984
+	jp nz, CopyTrainerName
 
 	ld a, [OtherTrainerID]
 	ld b, a
@@ -36958,10 +37056,10 @@
 	ld a, [OtherTrainerClass]
 	ld c, a
 
-Function3994c:: ; 3994c
+GetTrainerName:: ; 3994c
 	ld a, c
 	cp CAL
-	jr nz, .asm_3996d
+	jr nz, .not_cal2
 
 	ld a, $0
 	call GetSRAMBank
@@ -36968,40 +37066,41 @@
 	ld a, [$abfd]
 	and a
 	call CloseSRAM
-	jr z, .asm_3996d
+	jr z, .not_cal2
 
 	ld a, $0
 	call GetSRAMBank
 	ld hl, $abfe
-	call Function39984
+	call CopyTrainerName
 	jp CloseSRAM
 
-.asm_3996d
+.not_cal2
 	dec c
 	push bc
 	ld b, 0
 	ld hl, TrainerGroups
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
 	pop bc
 
-.asm_3997a
+.loop
 	dec b
-	jr z, Function39984
+	jr z, CopyTrainerName
 
-.asm_3997d
+.skip
 	ld a, [hli]
 	cp $ff
-	jr nz, .asm_3997d
-	jr .asm_3997a
+	jr nz, .skip
+	jr .loop
 
-Function39984: ; 39984
+CopyTrainerName: ; 39984
 	ld de, StringBuffer1
 	push de
-	ld bc, $000b
+	ld bc, NAME_LENGTH
 	call CopyBytes
 	pop de
 	ret
@@ -37008,9 +37107,10 @@
 ; 39990
 
 Function39990: ; 39990
+; This function is useless.
 	ld de, StringBuffer1
 	push de
-	ld bc, $000b
+	ld bc, NAME_LENGTH
 	pop de
 	ret
 ; 39999
@@ -37150,8 +37250,9 @@
 	ld b, 0
 	ld c, a
 	ld hl, EvosAttacksPointers
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -37321,7 +37422,7 @@
 
 	xor a
 	ld [hBGMapMode], a
-	ld hl, TileMap
+	hlcoord 0, 0
 	lb bc, 12, 20
 	call ClearBox
 
@@ -37541,8 +37642,9 @@
 	ld b, 0
 	ld c, a
 	ld hl, EvosAttacksPointers
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -37741,8 +37843,9 @@
 .asm_42583
 	ld hl, EvosAttacksPointers
 	ld b, 0
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -37808,9 +37911,9 @@
 ; The default score is 20. Unusable moves are given a score of 80.
 	ld a, 20
 	ld hl, Buffer1
+rept 3
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 
 ; Don't pick disabled moves.
@@ -37894,8 +37997,9 @@
 	ld hl, AIScoringPointers
 	dec c
 	ld b, 0
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -37909,7 +38013,7 @@
 	ld hl, Buffer1
 	ld de, EnemyMonMoves
 	ld c, EnemyMonMovesEnd - EnemyMonMoves
-	
+
 .DecrementNextScore
 	; If the enemy has no moves, this will infinite.
 	ld a, [de]
@@ -37933,7 +38037,7 @@
 ; This means that the minimum score will be 1.
 .PickLowestScoreMoves
 	ld a, c
-	
+
 .asm_44175
 	inc [hl]
 	dec hl
@@ -37944,13 +38048,13 @@
 	ld hl, Buffer1
 	ld de, EnemyMonMoves
 	ld c, NUM_MOVES
-	
+
 ; Give a score of 0 to a blank move	
 .asm_44184
 	ld a, [de]
 	and a
 	jr nz, .asm_44189
-	ld [hl], a 
+	ld [hl], a
 
 ; Disregard the move if its score is not 1	
 .asm_44189
@@ -37960,7 +38064,7 @@
 	xor a
 	ld [hli], a
 	jr .asm_44193
-	
+
 .asm_44191
 	ld a, [de]
 	ld [hli], a
@@ -38128,8 +38232,9 @@
 	ld d, l
 	ld e, h
 	pop hl
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, d
 	or e
 	jr z, .asm_442b0
@@ -38229,8 +38334,9 @@
 	dec a
 	ld d, 0
 	ld e, a
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
@@ -38260,7 +38366,7 @@
 	db BANK(PokedexEntries3)
 	db BANK(PokedexEntries4)
 ; 44355
-	
+
 Function44355: ; 44355
 	call Function44333
 	push hl
@@ -38272,10 +38378,9 @@
 	inc hl
 	cp $50
 	jr nz, .asm_4435b
+rept 4
 	inc hl
-	inc hl
-	inc hl
-	inc hl
+endr
 	dec c
 	jr z, .asm_44374
 .asm_4436b
@@ -38425,7 +38530,7 @@
 Function44654:: ; 44654
 	push bc
 	push de
-	callba Function50000
+	callba SelectMonFromParty
 	ld a, $2
 	jr c, .asm_446c6
 	ld a, [CurPartyMon]
@@ -38488,7 +38593,7 @@
 	ret
 ; 446cc
 
-Function446cc:: ; 446cc
+GivePokeItem:: ; 446cc
 	ld a, [PartyCount]
 	dec a
 	push af
@@ -38608,11 +38713,11 @@
 	jr z, .nomail
 	call Function1d6e
 	call Function44806
-	jp Function1c17
+	jp WriteBackup
 
 .nomail
 	ld hl, .EmptyMailboxText
-	jp Function1d67
+	jp MenuTextBoxBackup
 ; 0x447b4
 
 .EmptyMailboxText ; 0x447b4
@@ -38682,11 +38787,11 @@
 .asm_4480f
 	call InitMail
 	ld hl, MenuData4494c
-	call Function1d3c
+	call CopyMenuDataHeader
 	xor a
 	ld [hBGMapMode], a
 	call Function352f
-	call Function1ad2
+	call DrawOnMap
 	ld a, [wd0f1]
 	ld [wcf88], a
 	ld a, [OBPals + 8 * 6]
@@ -38710,8 +38815,8 @@
 Function4484a: ; 0x4484a
 	ld hl, MenuData44964
 	call LoadMenuDataHeader
-	call Function1d81
-	call Function1c07
+	call InterpretMenu2
+	call ExitMenu
 	jr c, .asm_44860
 	ld a, [wcfa9]
 	dec a
@@ -38739,9 +38844,9 @@
 
 .PutInPack ; 0x44877
 	ld hl, .MessageLostText
-	call Function1d4f
+	call MenuTextBox
 	call YesNoBox
-	call Function1c07
+	call ExitMenu
 	ret c
 	ld a, [MenuSelection]
 	dec a
@@ -38752,7 +38857,7 @@
 	call ReceiveItem
 	jr c, .asm_4489e
 	ld hl, .PackFullText
-	jp Function1d67
+	jp MenuTextBoxBackup
 
 .asm_4489e
 	ld a, [MenuSelection]
@@ -38760,7 +38865,7 @@
 	ld b, a
 	call Function445c0
 	ld hl, .PutAwayText
-	jp Function1d67
+	jp MenuTextBoxBackup
 ; 0x448ac
 
 .PutAwayText ; 0x448ac
@@ -38954,7 +39059,7 @@
 	ld b, $1
 	call Function4930f
 	call WhiteBGMap
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld b, $2
 	ld c, $14
 	call ClearBox
@@ -39209,7 +39314,7 @@
 	ld [wcf88], a
 	call Function1bc9
 	call PlayClickSFX
-	call Function1c07
+	call ExitMenu
 	bit 0, a
 	jp z, Function4840c
 	ld hl, wcfa9
@@ -39279,8 +39384,8 @@
 	ld [wd0e4], a
 	ld a, d
 	push af
-	call Function1c07
-	call Function1c07
+	call ExitMenu
+	call ExitMenu
 	pop af
 	ld a, [hJoyPressed] ; $ff00+$a7
 	bit 0, a
@@ -39425,8 +39530,9 @@
 .asm_4844b
 	and a
 	jr z, .asm_48453
+rept 2
 	inc hl
-	inc hl
+endr
 	dec a
 	jr .asm_4844b
 .asm_48453
@@ -39572,7 +39678,7 @@
 	ld b, $1
 	call Function4930f
 	call WhiteBGMap
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld b, $4
 	ld c, $14
 	call ClearBox
@@ -39651,12 +39757,13 @@
 	pop af
 	ld [hli], a
 	ld a, $1
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	xor a
+rept 3
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ret
 
 Function48725: ; 48725 (12:4725)
@@ -39707,9 +39814,9 @@
 	ld a, $1
 	ld [hli], a
 	xor a
+rept 3
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ret
 
 Function4876f: ; 4876f (12:476f)
@@ -39764,7 +39871,7 @@
 	ld [wd473], a
 .asm_487da
 	ld a, [wd473]
-	call Function1c07
+	call ExitMenu
 	hlcoord 11, 6
 	call Function487ec
 	pop af
@@ -39776,10 +39883,9 @@
 	ld de, wd473
 	call Function487ff
 	pop hl
+rept 4
 	inc hl
-	inc hl
-	inc hl
-	inc hl
+endr
 	ld de, String_4880d
 	call PlaceString
 	ret
@@ -40064,7 +40170,7 @@
 	pop de
 	pop bc
 	pop af
-	call Function1c07
+	call ExitMenu
 	hlcoord 11, 10
 	call Function489ea
 	hlcoord 11, 9
@@ -40137,7 +40243,7 @@
 	call Function1bc9
 	push af
 	call PlayClickSFX
-	call Function1c07
+	call ExitMenu
 	pop af
 	bit 1, a
 	jp nz, Function48a9a
@@ -40577,10 +40683,12 @@
 	pop bc
 	ld de, AttrMap - TileMap
 	add hl, de
+rept 2
 	inc b
-	inc b
+endr
+rept 2
 	inc c
-	inc c
+endr
 	ld a, $0
 .asm_48ced
 	push bc
@@ -40742,8 +40850,8 @@
 	ld hl, MenuDataHeader_0x48dfc
 	call LoadMenuDataHeader
 	call Function3200
-	call Function1d81
-	call Function1c17
+	call InterpretMenu2
+	call WriteBackup
 	ld a, [wcfa9]
 	dec a
 	ld [PlayerGender], a
@@ -40785,11 +40893,11 @@
 	call WhiteBGMap
 	call Function48000
 	call Functione5f
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $168
 	ld a, $0
 	call ByteFill
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, $168
 	xor a
 	call ByteFill
@@ -40826,8 +40934,9 @@
 
 Function48e81: ; 48e81
 	ld hl, PackFGFXPointers
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld e, a
 	ld d, [hl]
@@ -40942,12 +41051,12 @@
 	jr .learned
 
 .didnt_learn
-	call Function1c07
+	call ExitMenu
 	and a
 	ret
 
 .learned
-	call Function1c07
+	call ExitMenu
 	scf
 	ret
 ; 4930a
@@ -40997,7 +41106,7 @@
 	dec c
 	jr nz, .asm_49338
 	pop hl
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	pop bc
 	dec b
@@ -41007,7 +41116,7 @@
 
 
 Function49346: ; 49346 (12:5346)
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, $168
 	xor a
 	call ByteFill
@@ -41035,7 +41144,7 @@
 	ret
 
 Function49384: ; 49384 (12:5384)
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, $401
 	ld a, $1
 	call Function49336
@@ -41133,8 +41242,8 @@
 	ld a, $5 ; BANK(Unkn1Pals)
 	call FarCopyWRAM
 	call Function49346
-	ld hl, AttrMap
-	ld bc, $0168
+	hlcoord 0, 0, AttrMap
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	xor a
 	call ByteFill
 	hlcoord 0, 14, AttrMap
@@ -41166,7 +41275,7 @@
 ; 49480
 
 Function49480: ; 49480
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, $0414
 	ld a, $7
 	call Function49336
@@ -41179,7 +41288,7 @@
 ; 49496
 
 Function49496: ; 49496
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, $0214
 	ld a, $7
 	call Function49336
@@ -41218,7 +41327,7 @@
 	ret
 
 .ice_path
-	ld a, [wd19a] ; permission
+	ld a, [wPermission] ; permission
 	and 7
 	cp 3 ; Hall of Fame
 	jr z, .do_nothing
@@ -41476,13 +41585,13 @@
 ; 49797
 
 Function49797: ; 49797
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, $1002
 	ld a, $4
 	call Function49336
 	ld a, $3
-	ld [AttrMap + 0 + 1 * SCREEN_WIDTH], a
-	ld [AttrMap + 0 + 14 * SCREEN_WIDTH], a
+	ld [AttrMap + 0 + 1 * SCREEN_WIDTH], a ; (0, 1)
+	ld [AttrMap + 0 + 14 * SCREEN_WIDTH], a ; (0, 14)
 	hlcoord 2, 0, AttrMap
 	ld bc, $0812
 	ld a, $5
@@ -41515,9 +41624,9 @@
 	hlcoord 2, 16, AttrMap
 	ld [hli], a
 	ld a, $7
+rept 3
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld a, $2
 	ld [hl], a
 	hlcoord 2, 17, AttrMap
@@ -41607,10 +41716,10 @@
 	ld a, $a0
 	ld [wcf64], a
 	ld d, $0
-.asm_498ca
+.loop
 	ld a, [wcf63]
 	bit 7, a
-	jr nz, .asm_498ee
+	jr nz, .done
 	push bc
 	call Function49bae
 	inc d
@@ -41623,9 +41732,9 @@
 	call DelayFrames
 	pop de
 	pop bc
-	jr .asm_498ca
+	jr .loop
 
-.asm_498ee
+.done
 	pop af
 	ld [VramState], a
 	call Function498f9
@@ -41637,14 +41746,14 @@
 	ld hl, Sprites + 2
 	xor a
 	ld c, $4
-.asm_498ff
+.loop
 	ld [hli], a
+rept 3
 	inc hl
-	inc hl
-	inc hl
+endr
 	inc a
 	dec c
-	jr nz, .asm_498ff
+	jr nz, .loop
 	ld hl, Sprites + $10
 	ld bc, $0090
 	xor a
@@ -41830,8 +41939,9 @@
 	ld a, d
 	ld d, $0
 	ld hl, Unknown_49b6e
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
@@ -41957,7 +42067,7 @@
 	ld hl, MenuDataHeader_0x49d14
 	call LoadMenuDataHeader
 	call Function49de4
-	call Function1c17
+	call WriteBackup
 	jr c, .quit
 	call ClearTileMap
 	ld a, [MenuSelection]
@@ -42092,11 +42202,11 @@
 	nop
 	ld a, [wcfcd]
 	and a
-	jr nz, .asm_49db0
+	jr nz, .next
 	ld a, $0
 	ret
 
-.asm_49db0
+.next
 	ld a, [hCGB]
 	cp $1
 	ld a, $1
@@ -42106,30 +42216,30 @@
 	ld a, [$abe5]
 	cp $ff
 	call CloseSRAM
-	jr nz, .asm_49dd6
+	jr nz, .done
 	ld a, [StatusFlags]
 	bit 7, a
 	ld a, $1
-	jr z, .asm_49dd1
-	jr .asm_49dd1
+	jr z, .ok
+	jr .ok
 
-.asm_49dd1
-	jr .asm_49dd3
+.ok
+	jr .ok2
 
-.asm_49dd3
+.ok2
 	ld a, $1
 	ret
 
-.asm_49dd6
+.done
 	ld a, [StatusFlags]
 	bit 7, a
-	jr z, .asm_49ddf
-	jr .asm_49ddf
+	jr z, .ok3
+	jr .ok3
 
-.asm_49ddf
-	jr .asm_49de1
+.ok3
+	jr .ok4
 
-.asm_49de1
+.ok4
 	ld a, $6
 	ret
 ; 49de4
@@ -42464,8 +42574,9 @@
 	add $2
 	ld [hli], a
 	ld a, $1
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ret
 
 Function4a098: ; 4a098 (12:6098)
@@ -42547,8 +42658,9 @@
 	add $2
 	ld [hli], a
 	ld a, $1
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ret
 
 Function4a13b: ; 4a13b (12:613b)
@@ -42736,7 +42848,7 @@
 	callba Function104148
 	ld hl, MenuDataHeader_0x4a362
 	call LoadMenuDataHeader
-	call Function1d81
+	call InterpretMenu2
 	bit 1, a
 	jr nz, .asm_4a338
 	ld a, [wcfa9]
@@ -42753,7 +42865,7 @@
 	call PrintText
 	call Functiona36
 .asm_4a338
-	call Function1c07
+	call ExitMenu
 .asm_4a33b
 	call Function1d7d
 	callba Function104148
@@ -42822,8 +42934,9 @@
 	add $2
 	ld [hli], a
 	ld a, $1
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ret
 ; 4a39a (12:639a)
 
@@ -42838,7 +42951,7 @@
 Function4a3a7: ; 4a3a7 (12:63a7)
 	call Function4a485
 Function4a3aa: ; 4a3aa
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $301
 	xor a
 	call Function4a6d8
@@ -42904,7 +43017,7 @@
 Function4a449: ; 4a449
 	ld bc, $003c
 	ld a, $0
-	ld hl, TileMap
+	hlcoord 0, 0
 	call ByteFill
 	ld bc, $0028
 	ld a, $1
@@ -42915,13 +43028,13 @@
 	ld bc, $0028
 	ld a, $1
 	call ByteFill
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	ld a, $2
 	call ByteFill
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	ld a, $3
 	call ByteFill
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	ld a, $7f
 	call ByteFill
 	ret
@@ -43134,12 +43247,13 @@
 	add $2
 	ld [hli], a
 	ld a, $1
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	xor a
+rept 3
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ret
 
 Function4a6ab: ; 4a6ab (12:66ab)
@@ -43269,13 +43383,13 @@
 	ld bc, sBoxMonOT
 .openboxmon
 	call CheckOwnMon
-	jr nc, .next
+	jr nc, .loop
 
 	; found!
 	call CloseSRAM
 	ret
 
-.next
+.loop
 	push bc
 	ld bc, sBoxMon2 - sBoxMon1
 	add hl, bc
@@ -43294,14 +43408,14 @@
 	ld a, [wCurBox]
 	and $f
 	cp c
-	jr z, .nextbox
+	jr z, .loopbox
 
 	; Load the box.
-	ld hl, Unknown_4a810
+	ld hl, BoxAddressTable1
 	ld b, 0
+rept 3
 	add hl, bc
-	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	call GetSRAMBank
 	ld a, [hli]
@@ -43311,7 +43425,7 @@
 	; Number of monsters in the box
 	ld a, [hl]
 	and a
-	jr z, .nextbox
+	jr z, .loopbox
 
 	push bc
 
@@ -43332,7 +43446,7 @@
 
 .boxmon
 	call CheckOwnMon
-	jr nc, .nextboxmon
+	jr nc, .loopboxmon
 
 	; found!
 	pop bc
@@ -43339,7 +43453,7 @@
 	call CloseSRAM
 	ret
 
-.nextboxmon
+.loopboxmon
 	push bc
 	ld bc, sBoxMon2 - sBoxMon1
 	add hl, bc
@@ -43349,7 +43463,7 @@
 	jr nz, .boxmon
 	pop bc
 
-.nextbox
+.loopbox
 	inc c
 	ld a, c
 	cp NUM_BOXES
@@ -43430,7 +43544,7 @@
 	ret
 ; 0x4a810
 
-Unknown_4a810: ; 4a810
+BoxAddressTable1: ; 4a810
 	;  bank, address
 	dbw $02, $a000
 	dbw $02, $a450
@@ -43459,7 +43573,7 @@
 ; 0x4a843
 
 
-Function4a843: ; 4a843
+MobileCheckOwnMonAnywhere: ; 4a843
 ; Like CheckOwnMonAnywhere, but only check for species.
 ; OT/ID don't matter.
 
@@ -43512,11 +43626,11 @@
 	and $f
 	cp c
 	jr z, .asm_4a8d1
-	ld hl, Unknown_4a8f4
+	ld hl, BoxAddressTable2
 	ld b, 0
+rept 3
 	add hl, bc
-	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	call GetSRAMBank
 	ld a, [hli]
@@ -43593,7 +43707,7 @@
 	ret
 ; 4a8f4
 
-Unknown_4a8f4: ; 4a8f4
+BoxAddressTable2: ; 4a8f4
 	;  bank, address
 	dbw $02, $a000
 	dbw $02, $a450
@@ -44079,8 +44193,9 @@
 	ld a, [wcfa9]
 	ld [wcfa9], a
 	ld a, [PartyCount]
+rept 2
 	inc a
-	inc a
+endr
 	ld b, a
 	ld a, [wcfa9]
 	cp b
@@ -44172,7 +44287,7 @@
 	ld a, $1
 	ld [hBGMapMode], a
 	call Function4acaa
-	call Function1c07
+	call ExitMenu
 	and a
 	ret
 ; 4aca2
@@ -44413,7 +44528,7 @@
 	ld bc, $0e07
 	push bc
 	ld hl, YesNoMenuDataHeader
-	call Function1d3c
+	call CopyMenuDataHeader
 	pop bc
 	ld a, b
 	ld [wcf83], a
@@ -44424,7 +44539,7 @@
 	add $4
 	ld [wcf84], a
 	call Function1c00
-	call Function1d81
+	call InterpretMenu2
 	push af
 	ld c, $f
 	call DelayFrames
@@ -44447,8 +44562,8 @@
 Function4ae5e: ; 4ae5e
 	ld a, [hOAMUpdate]
 	push af
-	call Function1c07
-	call Function1ad2
+	call ExitMenu
+	call DrawOnMap
 	xor a
 	ld [hOAMUpdate], a
 	call DelayFrame
@@ -44464,8 +44579,8 @@
 SECTION "bank13", ROMX, BANK[$13]
 
 Function4c000:: ; 4c000
-	ld hl, TileMap
-	ld de, AttrMap
+	hlcoord 0, 0
+	decoord 0, 0, AttrMap
 	ld b, $12
 .asm_4c008
 	push bc
@@ -44640,11 +44755,11 @@
 	di
 	ld a, $1
 	ld [rVBK], a ; $ff00+$4f
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	call Function4cf80
 	ld a, $0
 	ld [rVBK], a ; $ff00+$4f
-	ld hl, TileMap
+	hlcoord 0, 0
 	call Function4cf80
 .asm_4cf72
 	ld a, [rLY] ; $ff00+$44
@@ -44810,11 +44925,12 @@
 	ld a, [wd197]
 	and a
 	jr z, .asm_4d170
+rept 2
 	inc hl
-	inc hl
+endr
 
 .asm_4d170
-	ld de, TileMap
+	decoord 0, 0
 	ld b, SCREEN_HEIGHT
 .asm_4d175
 	ld c, SCREEN_WIDTH
@@ -44858,11 +44974,11 @@
 	di
 	ld a, $1
 	ld [rVBK], a
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	call Function4d1cb
 	ld a, $0
 	ld [rVBK], a
-	ld hl, TileMap
+	hlcoord 0, 0
 	call Function4d1cb
 .asm_4d1bd
 	ld a, [rLY]
@@ -45035,10 +45151,12 @@
 	pop bc
 	ld de, AttrMap - TileMap
 	add hl, de
+rept 2
 	inc b
-	inc b
+endr
+rept 2
 	inc c
-	inc c
+endr
 	ld a, $7
 .asm_4d36e
 	push bc
@@ -45048,7 +45166,7 @@
 	dec c
 	jr nz, .asm_4d370
 	pop hl
-	ld de, $0014
+	ld de, SCREEN_WIDTH
 	add hl, de
 	pop bc
 	dec b
@@ -45065,7 +45183,7 @@
 	inc a
 	ld [hl], a
 	pop hl
-	ld de, $0014
+	ld de, SCREEN_WIDTH
 	add hl, de
 .asm_4d38d
 	push hl
@@ -45075,7 +45193,7 @@
 	call Function4d3ab
 	ld [hl], $7a
 	pop hl
-	ld de, $0014
+	ld de, SCREEN_WIDTH
 	add hl, de
 	dec b
 	jr nz, .asm_4d38d
@@ -45107,8 +45225,8 @@
 	ld hl, UnknownText_0x4d408
 	call PrintText
 	ld hl, MenuDataHeader_0x4d40d
-	call Function1d3c
-	call Function1d81
+	call CopyMenuDataHeader
+	call InterpretMenu2
 	ret c
 	ld a, [wcfa9]
 	cp $1
@@ -45385,8 +45503,8 @@
 	ld hl, UnknownText_0x4d580
 	call PrintText
 	ld hl, MenuDataHeader_0x4d585
-	call Function1d3c
-	call Function1d81
+	call CopyMenuDataHeader
+	call InterpretMenu2
 	ret c
 	ld a, [wcfa9]
 	cp $1
@@ -45617,9 +45735,9 @@
 	jr z, .asm_4d90b
 	ld hl, Unknown_4d99f
 	ld b, 0
+rept 3
 	add hl, bc
-	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	call GetSRAMBank
 	ld a, [hli]
@@ -45794,7 +45912,7 @@
 	ret
 ; 4d9e5
 
-Function4d9e5: ; 4d9e5
+CheckPartyFullAfterContest: ; 4d9e5
 	ld a, [wdf9c]
 	and a
 	jp z, Function4db35
@@ -46226,7 +46344,7 @@
 	push hl
 	call WhiteBGMap
 	call ClearTileMap
-	call Function1ad2
+	call DrawOnMap
 	callba Functionfb53e
 	pop hl
 	call _hl_
@@ -46814,8 +46932,9 @@
 	inc a
 	ld d, a
 	callba Function50e47
+rept 2
 	ld hl, TempMonExp + 2
-	ld hl, TempMonExp + 2
+endr
 	ld a, [$ffb6]
 	sub [hl]
 	dec hl
@@ -46831,8 +46950,9 @@
 .asm_4e111
 	ld hl, Buffer1 ; wd1ea (aliases: MagikarpLength)
 	xor a
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 	ret
 ; 4e119 (13:6119)
@@ -47004,13 +47124,13 @@
 	ld a, [CurPartySpecies]
 	cp UNOWN
 	jr z, .asm_4e266
-	ld hl, TileMap
+	hlcoord 0, 0
 	call Function3786
 	ret
 .asm_4e266
 	xor a
 	ld [wc2c6], a
-	ld hl, TileMap
+	hlcoord 0, 0
 	call Function378b
 	ret
 
@@ -47035,7 +47155,7 @@
 	call Function4e307
 	ld de, $9000
 	predef Function5108b
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld d, $0
 	ld e, $2
 	predef Functiond00a3
@@ -47178,7 +47298,7 @@
 	set 5, [hl]
 	call Function32f9 ; pals
 	call DelayFrame
-	ld hl, TileMap
+	hlcoord 0, 0
 	call Function3786
 	callba Function10402d
 	call Function4e497
@@ -47239,7 +47359,7 @@
 	ld de, $9000
 	predef Function5108b
 	pop de
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld d, $0
 	predef Functiond00a3
 	ld hl, wcf64
@@ -47342,8 +47462,9 @@
 	ld c, a
 	ld hl, Jumptable_4e564
 	ld b, 0
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -47407,8 +47528,9 @@
 	ld a, $1
 	ld [hli], a
 	ld a, $5
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], $ff
 	ret
 ; 4e5da (13:65da)
@@ -47611,8 +47733,9 @@
 	call Function4e741
 	pop bc
 	inc b
+rept 2
 	dec c
-	dec c
+endr
 	jr nz, .asm_4e72c
 	and a
 	ret
@@ -47640,7 +47763,7 @@
 	xor a
 	ld [hBGMapMode], a
 	hlcoord 7, 2
-	ld bc, $0707
+	lb bc, 7, 7
 	ld de, $000d
 .asm_4e762
 	push bc
@@ -47768,8 +47891,9 @@
 	ld a, [$ff9b]
 	and $e
 	srl a
+rept 2
 	inc a
-	inc a
+endr
 	and $7
 	ld b, a
 	ld hl, Sprites + 3
@@ -47778,9 +47902,9 @@
 	ld a, [hl]
 	or b
 	ld [hli], a
+rept 3
 	inc hl
-	inc hl
-	inc hl
+endr
 	dec c
 	jr nz, .asm_4e823
 	pop bc
@@ -47804,8 +47928,8 @@
 	ld bc, $400
 	ld a, $7f
 	call ByteFill
-	ld hl, AttrMap
-	ld bc, $0168
+	hlcoord 0, 0, AttrMap
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	xor a
 	call ByteFill
 	xor a
@@ -47837,8 +47961,8 @@
 	ld bc, $400
 	ld a, $7f
 	call ByteFill
-	ld hl, AttrMap
-	ld bc, $0168
+	hlcoord 0, 0, AttrMap
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	xor a
 	call ByteFill
 	ld hl, wd000
@@ -48010,10 +48134,12 @@
 	ld a, d
 	ld [hSCX], a
 	call Function4e9f1
+rept 2
 	inc e
-	inc e
+endr
+rept 2
 	dec d
-	dec d
+endr
 	pop af
 	push af
 	cp $1
@@ -48035,8 +48161,9 @@
 	ld c, $12
 	ld de, $0004
 .asm_4e9de
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	add hl, de
 	dec c
 	jr nz, .asm_4e9de
@@ -48163,7 +48290,7 @@
 
 SECTION "bank14", ROMX, BANK[$14]
 
-Function50000: ; 50000
+SelectMonFromParty: ; 50000
 	call Function2ed3
 	xor a
 	ld [PartyMenuActionText], a
@@ -48218,8 +48345,8 @@
 	set 4, [hl] ; Disable text delay
 	xor a
 	ld [hBGMapMode], a
-	ld hl, TileMap
-	ld bc, $0168
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	ld a, " "
 	call ByteFill ; blank the tilemap
 	call Function50396 ; This reads from a pointer table???
@@ -48275,8 +48402,9 @@
 	jr nz, .asm_500a7
 
 .asm_500bf
+rept 2
 	dec hl
-	dec hl
+endr
 	ld de, String_500c8
 	call PlaceString
 	ret
@@ -48384,8 +48512,9 @@
 	pop de
 	ld a, $f3
 	ld [hli], a
+rept 2
 	inc de
-	inc de
+endr
 	ld bc, $0203
 	call PrintNum
 
@@ -48552,8 +48681,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, EvosAttacksPointers
+rept 2
 	add hl, de
-	add hl, de
+endr
 	call Function50268
 	pop hl
 	call PlaceString
@@ -48587,16 +48717,19 @@
 	ld a, [hli]
 	and a
 	jr z, .asm_5029f
+rept 2
 	inc hl
-	inc hl
+endr
 	cp EVOLVE_ITEM
 	jr nz, .asm_50287
+rept 2
 	dec hl
-	dec hl
+endr
 	ld a, [CurItem]
 	cp [hl]
+rept 2
 	inc hl
-	inc hl
+endr
 	jr nz, .asm_50287
 	ld de, String_502a3
 	ret
@@ -48771,8 +48904,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Unknown_503b2
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -48945,8 +49079,9 @@
 	ld hl, PartyMenuStrings
 	ld e, a
 	ld d, $0
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld d, [hl]
 	ld e, a
@@ -49082,8 +49217,9 @@
 Function505c1: ; 505c1
 	ld e, a
 	ld d, 0
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -49251,9 +49387,9 @@
 ; 506bc
 
 
-Function506bc: ; 506bc
+DoMovementFunctionc: ; 506bc
 	ld hl, UnknownScript_0x506c8
-	call Function31cd
+	call ExitMenuCallScript
 	ld a, $1
 	ld [wd0ec], a
 	ret
@@ -49267,7 +49403,7 @@
 	closetext
 	callasm Function506ef
 	iffalse UnknownScript_0x506e9
-	checkflag $0011
+	checkflag ENGINE_BUG_CONTEST_TIMER
 	iftrue UnknownScript_0x506e5
 	battlecheck
 	startbattle
@@ -49276,7 +49412,7 @@
 ; 0x506e5
 
 UnknownScript_0x506e5: ; 0x506e5
-	farjump UnknownScript_0x135eb
+	farjump BugCatchingContestBattleScript
 ; 0x506e9
 
 UnknownScript_0x506e9: ; 0x506e9
@@ -49330,7 +49466,7 @@
 
 _Squirtbottle: ; 50730
 	ld hl, UnknownScript_0x5073c
-	call Function31cd
+	call ExitMenuCallScript
 	ld a, $1
 	ld [wd0ec], a
 	ret
@@ -49363,7 +49499,7 @@
 	cp MAP_ROUTE_36
 	jr nz, .asm_50774
 
-	callba Functioncf0d
+	callba GetFacingObject
 	jr c, .asm_50774
 
 	ld a, d
@@ -49384,32 +49520,32 @@
 _CardKey: ; 50779
 	ld a, [MapGroup]
 	cp GROUP_RADIO_TOWER_3F
-	jr nz, .asm_507a9
+	jr nz, .nope
 
 	ld a, [MapNumber]
 	cp MAP_RADIO_TOWER_3F
-	jr nz, .asm_507a9
+	jr nz, .nope
 
 	ld a, [PlayerDirection]
 	and $c
-	cp UP << 2
-	jr nz, .asm_507a9
+	cp OW_UP
+	jr nz, .nope
 
 	call GetFacingTileCoord
 	ld a, d
 	cp 18
-	jr nz, .asm_507a9
+	jr nz, .nope
 	ld a, e
 	cp 6
-	jr nz, .asm_507a9
+	jr nz, .nope
 
 	ld hl, UnknownScript_0x507af
-	call Function31cd
+	call ExitMenuCallScript
 	ld a, $1
 	ld [wd0ec], a
 	ret
 
-.asm_507a9
+.nope
 	ld a, $0
 	ld [wd0ec], a
 	ret
@@ -49424,35 +49560,35 @@
 _BasementKey: ; 507b4
 	ld a, [MapGroup]
 	cp GROUP_WAREHOUSE_ENTRANCE
-	jr nz, .asm_507db
+	jr nz, .nope
 
 	ld a, [MapNumber]
 	cp MAP_WAREHOUSE_ENTRANCE
-	jr nz, .asm_507db
+	jr nz, .nope
 
 	call GetFacingTileCoord
 	ld a, d
 	cp 22
-	jr nz, .asm_507db
+	jr nz, .nope
 	ld a, e
 	cp 10
-	jr nz, .asm_507db
+	jr nz, .nope
 
-	ld hl, UnknownScript_0x507e1
-	call Function31cd
-	ld a, $1
+	ld hl, UnlockBasementDoorScript
+	call ExitMenuCallScript
+	ld a, 1
 	ld [wd0ec], a
 	ret
 
-.asm_507db
+.nope
 	ld a, $0
 	ld [wd0ec], a
 	ret
 ; 507e1
 
-UnknownScript_0x507e1: ; 0x507e1
+UnlockBasementDoorScript: ; 0x507e1
 	loadmovesprites
-	farjump MapWarehouseEntranceSignpost0Script
+	farjump BasementDoorScript
 ; 0x507e6
 
 
@@ -49462,8 +49598,8 @@
 	call CheckAnyFaintedMon
 	ret nc
 
-	ld hl, UnknownScript_0x50821
-	call Function31cd
+	ld hl, SacredAshScript
+	call ExitMenuCallScript
 	ld a, $1
 	ld [wd0ec], a
 	ret
@@ -49487,7 +49623,7 @@
 
 	ld a, [hli]
 	or [hl]
-	jr z, .asm_5081d
+	jr z, .done
 
 .next
 	pop hl
@@ -49498,7 +49634,7 @@
 	xor a
 	ret
 
-.asm_5081d
+.done
 	pop hl
 	pop af
 	scf
@@ -49505,16 +49641,16 @@
 	ret
 ; 50821
 
-UnknownScript_0x50821: ; 0x50821
+SacredAshScript: ; 0x50821
 	special HealParty
 	reloadmappart
 	playsound SFX_WARP_TO
-	special Function8c084
-	special Function8c079
-	special Function8c084
-	special Function8c079
-	special Function8c084
-	special Function8c079
+	special FadeBlackBGMap
+	special FadeInBGMap
+	special FadeBlackBGMap
+	special FadeInBGMap
+	special FadeBlackBGMap
+	special FadeInBGMap
 	waitbutton
 	writetext UnknownText_0x50845
 	playsound SFX_CAUGHT_MON
@@ -49670,8 +49806,9 @@
 	dec a
 	ld c, a
 	ld b, 0
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -49820,7 +49957,7 @@
 	call DrawHPBar
 	pop hl
 
-; Print HP 
+; Print HP
 	ld bc, $0015 ; move (1,1)
 	add hl, bc
 	ld de, TempMonHP
@@ -49909,44 +50046,44 @@
 	ld a, [MonType]
 	and a
 	jr z, .PartyMon
-	
+
 ; 1: OTPartyMon
 	ld hl, OTPartyMon1DVs
 	dec a
 	jr z, .PartyMon
-	
+
 ; 2: sBoxMon
 	ld hl, sBoxMon1DVs
 	ld bc, sBoxMon2 - sBoxMon1
 	dec a
 	jr z, .sBoxMon
-	
+
 ; 3: Unknown
 	ld hl, TempMonDVs
 	dec a
 	jr z, .DVs
-	
+
 ; else: WildMon
 	ld hl, EnemyMonDVs
 	jr .DVs
-	
-	
+
+
 ; Get our place in the party/box.
-	
+
 .PartyMon
 .sBoxMon
 	ld a, [CurPartyMon]
 	call AddNTimes
-	
-	
+
+
 .DVs
-	
+
 ; sBoxMon data is read directly from SRAM.
 	ld a, [MonType]
 	cp BOXMON
 	ld a, 1
 	call z, GetSRAMBank
-	
+
 ; Attack DV
 	ld a, [hli]
 	and $f0
@@ -49955,7 +50092,7 @@
 	ld a, [hl]
 	and $f0
 	swap a
-	
+
 ; Put our DVs together.
 	or b
 	ld b, a
@@ -49964,8 +50101,8 @@
 	ld a, [MonType]
 	cp BOXMON
 	call z, CloseSRAM
-	
-	
+
+
 ; We need the gender ratio to do anything with this.
 	push bc
 	ld a, [CurPartySpecies]
@@ -49974,35 +50111,35 @@
 	ld bc, BaseData1 - BaseData
 	call AddNTimes
 	pop bc
-	
+
 	ld a, BANK(BaseData)
 	call GetFarByte
-	
-	
+
+
 ; The higher the ratio, the more likely the monster is to be female.
-	
+
 	cp $ff
 	jr z, .Genderless
-	
+
 	and a
 	jr z, .Male
-	
+
 	cp $fe
 	jr z, .Female
-	
+
 ; Values below the ratio are male, and vice versa.
 	cp b
 	jr c, .Male
-	
+
 .Female
 	xor a
 	ret
-	
+
 .Male
 	ld a, 1
 	and a
 	ret
-	
+
 .Genderless
 	scf
 	ret
@@ -50030,9 +50167,9 @@
 
 .asm_50c6f
 	pop hl
+rept 3
 	inc hl
-	inc hl
-	inc hl
+endr
 	ld d, h
 	ld e, l
 	ld hl, TempMonMoves
@@ -50144,8 +50281,9 @@
 
 Function50d0a: ; 50d0a
 	push de
+rept 2
 	inc de
-	inc de
+endr
 	ld a, [de]
 	ld b, a
 	inc de
@@ -50365,8 +50503,9 @@
 Function50e47: ; 50e47
 
 	ld a, [BaseGrowthRate]
+rept 2
 	add a
-	add a
+endr
 	ld c, a
 	ld b, 0
 	ld hl, GrowthRates
@@ -50503,8 +50642,8 @@
 ENDM
 
 	growth_rate 1, 1,   0,   0,   0 ; Medium Fast
-	growth_rate 3, 4,  10,   0,  30
-	growth_rate 3, 4,  20,   0,  70
+	growth_rate 3, 4,  10,   0,  30 ; Slightly Fast
+	growth_rate 3, 4,  20,   0,  70 ; Slightly Slow
 	growth_rate 6, 5, -15, 100, 140 ; Medium Slow
 	growth_rate 4, 5,   0,   0,   0 ; Fast
 	growth_rate 5, 4,   0,   0,   0 ; Slow
@@ -50675,7 +50814,7 @@
 	srl a
 	or b
 	ld b, a
-	
+
 	; spd
 	ld a, [hl]
 	and %01100000
@@ -51805,8 +51944,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, .Steps
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -52144,7 +52284,7 @@
 	push bc
 	ld a, PLAYER_NORMAL
 	ld [PlayerState], a
-	call Functione4a ; UpdateSprites
+	call Special_ReplaceKrisSprite ; UpdateSprites
 	pop bc
 	ret
 ; 80404
@@ -52204,32 +52344,33 @@
 	jr z, .ceiling
 	jr c, .read ; cp 0 can't set carry!
 	jr .invalid
-	
+
 ; There are only $a2 engine flags, so
 ; anything beyond that is invalid too.
-	
+
 .ceiling
 	ld a, e
 	cp $a2
 	jr c, .read
-	
-; Invalid flags are treated as flag $00.
-	
+
+; Invalid flags are treated as flag 00.
+
 .invalid
 	xor a
 	ld e, a
 	ld d, a
-	
+
 ; Get this flag's location.
-	
+
 .read
 	ld hl, EngineFlags
 ; location
+rept 2
 	add hl, de
-	add hl, de
+endr
 ; bit
 	add hl, de
-	
+
 ; location
 	ld e, [hl]
 	inc hl
@@ -52237,14 +52378,14 @@
 	inc hl
 ; bit
 	ld c, [hl]
-	
+
 ; What are we doing with this flag?
-	
+
 	ld a, b
 	cp 1
 	jr c, .reset ; b = 0
 	jr z, .set   ; b = 1
-	
+
 ; Return the given flag in c.
 .check
 	ld a, [de]
@@ -52251,7 +52392,7 @@
 	and c
 	ld c, a
 	ret
-	
+
 ; Set the given flag.
 .set
 	ld a, [de]
@@ -52258,7 +52399,7 @@
 	or c
 	ld [de], a
 	ret
-	
+
 ; Reset the given flag.
 .reset
 	ld a, c
@@ -52277,7 +52418,7 @@
 
 
 
-Function80648:: ; 80648 (20:4648)
+_GetVarAction:: ; 80648 (20:4648)
 	ld a, c
 	cp NUM_VARS
 	jr c, .asm_8064e
@@ -52285,10 +52426,10 @@
 .asm_8064e
 	ld c, a
 	ld b, 0
-	ld hl, Unknown_80671
+	ld hl, VarActionTable
+rept 3
 	add hl, bc
-	add hl, bc
-	add hl, bc
+endr
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
@@ -52312,7 +52453,7 @@
 	ret
 ; 80671 (20:4671)
 
-Unknown_80671: ; 80671
+VarActionTable: ; 80671
 ; $00: return address
 ; $40: return at StringBuffer2
 ; $80: return function result at StringBuffer2
@@ -52331,12 +52472,12 @@
 	dwb MapGroup,      $00
 	dwb MapNumber,     $00
 	dwb Function806ff, $80
-	dwb wd19a,         $00
+	dwb wPermission,         $00
 	dwb Function80715, $80
 	dwb wd46c,         $00
 	dwb XCoord,        $00
 	dwb YCoord,        $00
-	dwb wdc31,         $00
+	dwb wSpecialPhoneCallID,         $00
 	dwb wcf64,         $00
 	dwb wdca4,         $00
 	dwb wdbf9,         $40
@@ -52548,12 +52689,12 @@
 	ld bc, $2000
 	xor a
 	call ByteFill
-	ld hl, AttrMap
-	ld bc, $0168
+	hlcoord 0, 0, AttrMap
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	xor a
 	call ByteFill
-	ld hl, TileMap
-	ld bc, $0168
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	xor a
 	call ByteFill
 	call ClearSprites
@@ -52734,8 +52875,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_81acf
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -52793,8 +52935,8 @@
 Function81adb: ; 81adb
 	xor a
 	ld [hBGMapMode], a
-	ld hl, TileMap
-	ld bc, $0168
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	ld a, $6f
 	call ByteFill
 	hlcoord 1, 3
@@ -52868,7 +53010,7 @@
 	ld [TempEnemyMonSpecies], a
 	ld [$ffad], a
 	hlcoord 2, 3
-	ld bc, $0707
+	lb bc, 7, 7
 	predef FillBox
 
 .asm_81ba9
@@ -52915,8 +53057,9 @@
 	inc a
 	ld l, a
 	ld h, $0
+rept 2
 	add hl, hl
-	add hl, hl
+endr
 	ld de, OverworldMap
 	add hl, de
 	ld de, wc608
@@ -52990,8 +53133,9 @@
 	ld a, [wc608 + 3]
 	ld [hli], a
 	xor a
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 	ld hl, wcda9
 	call Function81f0c
@@ -53007,9 +53151,9 @@
 ; 81ca7
 
 Function81ca7: ; 81ca7
+rept 3
 	inc hl
-	inc hl
-	inc hl
+endr
 	ld a, [de]
 	call Function81cbc
 	ld a, [de]
@@ -53040,8 +53184,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_81d02
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -53285,8 +53430,9 @@
 Function81e55: ; 81e55
 	cp $32
 	jr c, .asm_81e5b
+rept 2
 	inc a
-	inc a
+endr
 
 .asm_81e5b
 	add $bf
@@ -53367,8 +53513,9 @@
 	inc a
 	ld l, a
 	ld h, $0
+rept 2
 	add hl, hl
-	add hl, hl
+endr
 	ld de, OverworldMap
 	add hl, de
 	ld e, l
@@ -53398,8 +53545,9 @@
 	inc de
 	ld [hli], a
 	xor a
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	dec c
 	jr nz, .asm_81ee3
 	ret
@@ -53414,7 +53562,7 @@
 	dec c
 	jr nz, .asm_81efe
 	pop hl
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	pop bc
 	dec b
@@ -53534,8 +53682,9 @@
 	ld a, b
 	ld [hli], a
 	ld a, [de]
+rept 2
 	add a
-	add a
+endr
 	add $18
 	ld [hli], a
 	xor a
@@ -53587,12 +53736,12 @@
 	call Request2bpp
 	ld a, $9c
 	ld [$ffd7], a
-	ld hl, TileMap
-	ld bc, $0168
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	ld a, $6f
 	call ByteFill
-	ld hl, AttrMap
-	ld bc, $0168
+	hlcoord 0, 0, AttrMap
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	ld a, $7
 	call ByteFill
 	ld de, $0015
@@ -53617,31 +53766,28 @@
 ; 821d2
 
 Function821d2: ; 821d2
-	ld hl, TileMap
+	hlcoord 0, 0
 	call Function821de
 
 Function821d8: ; 821d8
 	ld a, [wcf64]
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 
 Function821de: ; 821de
 	add hl, de
+rept 4
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld bc, $0010
 	add hl, bc
+rept 4
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld bc, $0010
 	add hl, bc
+rept 4
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ret
 ; 821f4
 
@@ -53669,9 +53815,9 @@
 	ld a, [wcf64]
 	ld l, a
 	ld h, $0
+rept 3
 	add hl, hl
-	add hl, hl
-	add hl, hl
+endr
 	ld de, Unkn1Pals
 	add hl, de
 	ld de, wc608
@@ -53689,7 +53835,7 @@
 	ld hl, $ffa9
 	ld a, [hl]
 	and $4
-	jr nz, .asm_82247
+	jr nz, .loop7
 	ld a, [hl]
 	and $2
 	jr nz, .asm_82299
@@ -53696,7 +53842,7 @@
 	call Function822f0
 	ret
 
-.asm_82247
+.loop7
 	ld hl, wcf64
 	ld a, [hl]
 	inc a
@@ -53784,8 +53930,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_82301
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -53827,8 +53974,9 @@
 	ld e, a
 	ld d, $0
 	ld hl, wc608
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld e, l
 	ld d, h
 	call Function81ea5
@@ -53926,8 +54074,9 @@
 	ld c, a
 	ld b, $0
 	ld hl, wc608
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, e
 	ld [hli], a
 	ld [hl], d
@@ -53967,8 +54116,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_84031
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -54236,9 +54386,9 @@
 Function841fb: ; 841fb (21:41fb)
 	xor a
 	ld hl, wca82
+rept 3
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 	ld hl, wca86
 	ld [hli], a
@@ -54989,9 +55139,9 @@
 ; 84728
 
 Function84728: ; 84728
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld de, wca90
-	ld bc, $0168
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call CopyBytes
 	ret
 ; 84735
@@ -54998,8 +55148,8 @@
 
 Function84735: ; 84735
 	ld hl, wca90
-	ld de, TileMap
-	ld bc, $0168
+	decoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call CopyBytes
 	ret
 ; 84742
@@ -55027,12 +55177,12 @@
 Function84757: ; 84757
 	ld a, [wca88]
 	cp $ff
-	jr nz, .asm_84765
+	jr nz, .c_directly_below_e5
 	ld a, [wca89]
 	cp $ff
 	jr z, .asm_8477f
 
-.asm_84765
+.c_directly_below_e5
 	ld a, [wca89]
 	and $e0
 	ret z
@@ -55073,8 +55223,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Unknown_84807
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
@@ -55105,8 +55256,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Unknown_84807
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
@@ -55141,12 +55293,12 @@
 Function84817: ; 84817 (21:4817)
 	xor a
 	ld [wd002], a
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $168
 	ld a, $7f
 	call ByteFill
 	call Function84a0e
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $b4
 	ld a, $7f
 	call ByteFill
@@ -55176,7 +55328,7 @@
 ; 8486f
 
 Function8486f: ; 8486f (21:486f)
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $168
 	ld a, $7f
 	call ByteFill
@@ -55193,7 +55345,7 @@
 	ret
 
 Function84893: ; 84893 (21:4893)
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $168
 	ld a, $7f
 	call ByteFill
@@ -55210,7 +55362,7 @@
 	ret
 
 Function848b7: ; 848b7 (21:48b7)
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $168
 	ld a, $7f
 	call ByteFill
@@ -55260,7 +55412,7 @@
 	ld a, [CurPartySpecies]
 	cp $fd
 	pop hl
-	jr z, .asm_84972
+	jr z, .ok2
 	ld bc, $b
 	add hl, bc
 	call Function8498a
@@ -55304,7 +55456,7 @@
 	ld a, [hl]
 	pop hl
 	call Function383d
-.asm_84972
+.ok2
 	ld hl, DefaultFlypoint
 	inc [hl]
 	pop de
@@ -55370,7 +55522,7 @@
 	ret
 
 Function849d7: ; 849d7 (21:49d7)
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld a, $79
 	ld [hli], a
 	ld a, $7a
@@ -55384,7 +55536,7 @@
 	ret
 
 Function849e9: ; 849e9 (21:49e9)
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld de, $13
 	ld c, $12
 .asm_849f1
@@ -55440,23 +55592,23 @@
 	call Function8648e
 	ld a, [StatusFlags]
 	push af
-	ld a, $1
+	ld a, 1
 	ld [wc2cd], a
 	call Function2ed3
-	ld a, $1
+	ld a, 1
 	ld [wd4b5], a
 
 	; Enable the Pokégear map to cycle through all of Kanto
 	ld hl, StatusFlags
-	set 6, [hl]
+	set 6, [hl] ; hall of fame
 
 	callba Function14da0
 	ld hl, wd95e
 	ld a, [hl]
-	cp $c8
-	jr nc, .asm_86436 ; 0x86433 $1
+	cp 200
+	jr nc, .ok ; 0x86433 $1
 	inc [hl]
-.asm_86436
+.ok
 	callba Function14b85
 	call Function8653f
 	callba Function14b5f
@@ -55476,7 +55628,7 @@
 	ld [MusicFadeIDHi], a
 	ld a, $a
 	ld [MusicFade], a
-	callba Function8c084
+	callba FadeBlackBGMap
 	xor a
 	ld [VramState], a
 	ld [$ffde], a
@@ -55497,14 +55649,14 @@
 	ld [MusicFadeIDLo], a
 	ld a, MUSIC_NONE / $100
 	ld [MusicFadeIDHi], a
-	ld a, $a
+	ld a, 10
 	ld [MusicFade], a
-	callba Function8c084
+	callba FadeBlackBGMap
 	xor a
 	ld [VramState], a
 	ld [$ffde], a
 	callba Function4e881
-	ld c, $64
+	ld c, 100
 	jp DelayFrames
 ; 864b4
 
@@ -55522,35 +55674,35 @@
 	xor a
 	ld [wcf63], a
 	call Function8671c
-	jr c, .asm_864fb
-	ld de, $0014
+	jr c, .done
+	ld de, SCREEN_WIDTH
 	call Function864b4
 	xor a
 	ld [wcf64], a
-.asm_864d6
+.loop
 	ld a, [wcf64]
-	cp $6
-	jr nc, .asm_864fb
+	cp 6
+	jr nc, .done
 	ld hl, wc608 + 1
 	ld bc, $0010
 	call AddNTimes
 	ld a, [hl]
-	cp $ff
-	jr z, .asm_864fb
+	cp -1
+	jr z, .done
 	push hl
 	call Function865b5
 	pop hl
 	call Function8650c
-	jr c, .asm_864fb
+	jr c, .done
 	ld hl, wcf64
 	inc [hl]
-	jr .asm_864d6
+	jr .loop
 
-.asm_864fb
+.done
 	call Function86810
 	ld a, $4
 	ld [MusicFade], a
-	call Function4b6
+	call FadeToWhite
 	ld c, $8
 	call DelayFrames
 	ret
@@ -55664,8 +55816,9 @@
 	ld a, [hli]
 	ld [TempMonSpecies], a
 	ld [CurPartySpecies], a
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [hli]
 	ld [TempMonDVs], a
 	ld a, [hli]
@@ -55672,8 +55825,8 @@
 	ld [TempMonDVs + 1], a
 	ld hl, TempMonDVs
 	predef GetUnownLetter
-	ld hl, TileMap
-	ld bc, $0168
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	ld a, $7f
 	call ByteFill
 	ld de, $9310
@@ -55696,8 +55849,8 @@
 	call Function86635
 	xor a
 	ld [wc2c6], a
-	ld hl, TileMap
-	ld bc, $0168
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	ld a, $7f
 	call ByteFill
 	hlcoord 6, 5
@@ -55726,8 +55879,9 @@
 	ld a, [hSCX]
 	and a
 	ret z
+rept 2
 	dec a
-	dec a
+endr
 	ld [hSCX], a
 	call DelayFrame
 	jr .asm_86643
@@ -55897,11 +56051,11 @@
 	call CopyBytes
 	ld a, $50
 	ld [StringBuffer2 + 10], a
-	ld hl, TileMap
-	ld bc, $0168
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	ld a, $7f
 	call ByteFill
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $0312
 	call TextBox
 	hlcoord 0, 12
@@ -55970,8 +56124,8 @@
 	ld de, FontExtra + $d0
 	lb bc, BANK(FontExtra), 1
 	call Request2bpp
-	ld hl, TileMap
-	ld bc, $0168
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	ld a, $7f
 	call ByteFill
 	callba GetPlayerBackpic
@@ -55994,8 +56148,8 @@
 	call Function86635
 	xor a
 	ld [wc2c6], a
-	ld hl, TileMap
-	ld bc, $0168
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	ld a, $7f
 	call ByteFill
 	callba Function88840
@@ -56002,7 +56156,7 @@
 	xor a
 	ld [$ffad], a
 	hlcoord 12, 5
-	ld bc, $0707
+	lb bc, 7, 7
 	predef FillBox
 	ld a, $c0
 	ld [hSCX], a
@@ -56118,13 +56272,13 @@
 	callba Function24c64
 	jr c, .asm_88083
 	ld hl, MenuDataHeader_0x88086
-	call Function1d3c
+	call CopyMenuDataHeader
 	ld a, [MenuSelection]
 	ld [wcf88], a
 	xor a
 	ld [hBGMapMode], a
 	call Function352f
-	call Function1ad2
+	call DrawOnMap
 	call Function350c
 	ld a, [wcf73]
 	cp $2
@@ -56194,7 +56348,7 @@
 	xor a
 	ld [hBGMapMode], a
 	call Function1cbb
-	call Function1ad2
+	call DrawOnMap
 	call Function88116
 	call Function88126
 	call Function321c
@@ -56211,7 +56365,7 @@
 	scf
 
 .asm_88109
-	call Function1c17
+	call WriteBackup
 	ret
 ; 8810d
 
@@ -56406,8 +56560,9 @@
 	inc hl
 	ld c, a
 	ld b, $0
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	inc hl
 	ld a, [hl]
 	pop bc
@@ -56422,8 +56577,9 @@
 	ld c, a
 	ld b, $0
 	inc hl
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [CurItem]
 	ld c, a
 	ld a, [hli]
@@ -56489,7 +56645,7 @@
 	push de
 	xor a
 	ld [hBGMapMode], a
-	ld bc, $0707
+	lb bc, 7, 7
 	predef FillBox
 	xor a
 	ld [hBGMapThird], a
@@ -56509,7 +56665,7 @@
 	ld a, h
 	sbc d
 	ld h, a
-	ld bc, $0707
+	lb bc, 7, 7
 	call ClearBox
 	pop bc
 	pop hl
@@ -56520,15 +56676,15 @@
 	ld hl, ChrisNameMenuHeader
 	ld a, [PlayerGender]
 	bit 0, a
-	jr z, .GotGender
+	jr z, .GotClass
 	ld hl, KrisNameMenuHeader
-.GotGender
+.GotClass
 	call LoadMenuDataHeader
-	call Function1d81
+	call InterpretMenu2
 	ld a, [wcfa9]
 	dec a
 	call Function1db8
-	call Function1c17
+	call WriteBackup
 	ret
 ; 882b5
 
@@ -56576,15 +56732,15 @@
 	db " NAME @" ; title
 ; 88318
 
-Function88318: ; 88318
+GetPlayerNameArray: ; 88318 This Function is never called
 	ld hl, PlayerName
 	ld de, Unknown_882c9
 	ld a, [PlayerGender]
 	bit 0, a
-	jr z, .asm_88328
+	jr z, .done
 	ld de, Unknown_882f9
 
-.asm_88328
+.done
 	call InitName
 	ret
 ; 8832c
@@ -56595,15 +56751,15 @@
 ; Male
 	ld de, ChrisSpriteGFX
 	ld b, BANK(ChrisSpriteGFX)
-	
+
 	ld a, [PlayerGender]
 	bit 0, a
 	jr z, .done
-	
+
 ; Female
 	ld de, KrisSpriteGFX
 	ld b, BANK(KrisSpriteGFX)
-	
+
 .done
 	ret
 ; 8833e
@@ -56612,9 +56768,9 @@
 	ld hl, ChrisCardPic
 	ld a, [PlayerGender]
 	bit 0, a
-	jr z, .asm_8834b
+	jr z, .GotClass
 	ld hl, KrisCardPic
-.asm_8834b
+.GotClass
 	ld de, $9000
 	ld bc, $230
 	ld a, BANK(ChrisCardPic) ; BANK(KrisCardPic)
@@ -56651,7 +56807,7 @@
 	ld hl, ChrisBackpic
 	ld b, BANK(ChrisBackpic)
 	ld de, $9310
-	ld c, $31
+	ld c, 7 * 7
 	predef DecompressPredef
 	ret
 ; 88840
@@ -56663,22 +56819,22 @@
 	ld e, 0
 	ld a, [PlayerGender]
 	bit 0, a
-	jr z, .asm_88851
+	jr z, .GotClass
 	ld e, 1
 
-.asm_88851
+.GotClass
 	ld a, e
 	ld [TrainerClass], a
 	ld de, ChrisPic
 	ld a, [PlayerGender]
 	bit 0, a
-	jr z, .asm_88862
+	jr z, .GotPic
 	ld de, KrisPic
 
-.asm_88862
+.GotPic
 	ld hl, VTiles2
 	ld b, BANK(ChrisPic) ; BANK(KrisPic)
-	ld c, $31
+	ld c, 7 * 7
 	call Get2bpp
 	call WaitBGMap
 	ld a, $1
@@ -56717,7 +56873,7 @@
 	xor a
 	ld [$ffad], a
 	hlcoord 6, 4
-	ld bc, $0707
+	lb bc, 7, 7
 	predef FillBox
 	ret
 ; 888a9
@@ -56796,30 +56952,32 @@
 	ret
 
 Function89185: ; 89185 (22:5185)
+; Compares c bytes starting at de and hl and incrementing together until a match is found.
 	push de
 	push hl
-.asm_89187
+.loop
 	ld a, [de]
 	inc de
 	cp [hl]
-	jr nz, .asm_89190
+	jr nz, .done
 	inc hl
 	dec c
-	jr nz, .asm_89187
-.asm_89190
+	jr nz, .loop
+.done
 	pop hl
 	pop de
 	ret
 
 Function89193: ; 89193
+; Copies c bytes from hl to de.
 	push de
 	push hl
-.asm_89195
+.loop
 	ld a, [hli]
 	ld [de], a
 	inc de
 	dec c
-	jr nz, .asm_89195
+	jr nz, .loop
 	pop hl
 	pop de
 	ret
@@ -56827,16 +56985,17 @@
 
 
 Function8919e: ; 8919e (22:519e)
+; Searches for the c'th string starting at de.  Returns the pointer in de.
 	ld a, c
 	and a
 	ret z
-.asm_891a1
+.loop
 	ld a, [de]
 	inc de
-	cp $50
-	jr nz, .asm_891a1
+	cp "@"
+	jr nz, .loop
 	dec c
-	jr nz, .asm_891a1
+	jr nz, .loop
 	ret
 
 Function891ab: ; 891ab
@@ -56848,9 +57007,9 @@
 
 Function891b8: ; 891b8
 	call Function8923c
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld a, $7f
-	ld bc, $0168
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call ByteFill
 	call DelayFrame
 	ret
@@ -56875,13 +57034,13 @@
 Function891de: ; 891de
 	call Function8923c
 	call ClearPalettes
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld a, $7
-	ld bc, $0168
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call ByteFill
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld a, $7f
-	ld bc, $0168
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call ByteFill
 	call Function891ab
 	ret
@@ -56897,13 +57056,13 @@
 ; 89209
 
 Function89209: ; 89209
-	ld a, $1
+	ld a, 1
 	ld [wc2ce], a
 	ret
 ; 8920f
 
 Function8920f: ; 8920f
-	ld a, $0
+	ld a, 0
 	ld [wc2ce], a
 	ret
 ; 89215
@@ -56922,11 +57081,11 @@
 
 Function8921f: ; 8921f (22:521f)
 	push de
-	ld de, $14
+	ld de, SCREEN_WIDTH
 	add hl, de
 	inc hl
 	ld a, $7f
-.asm_89227
+.loop
 	push bc
 	push hl
 .asm_89229
@@ -56937,7 +57096,7 @@
 	add hl, de
 	pop bc
 	dec b
-	jr nz, .asm_89227
+	jr nz, .loop
 	pop de
 	ret
 
@@ -56960,7 +57119,7 @@
 
 
 Function89245: ; 89245 (22:5245)
-	callba Function14ea5
+	callba TryLoadSaveFile
 	ret c
 	callba Function150b9
 	and a
@@ -56981,7 +57140,7 @@
 	push af
 	push bc
 	ld hl, MenuDataHeader_0x892a3
-	call Function1d3c
+	call CopyMenuDataHeader
 	pop bc
 	ld hl, wcf82
 	ld a, c
@@ -56999,21 +57158,21 @@
 	call Function1c00
 	call Function8923c
 	call Function89209
-	call Function1d81
+	call InterpretMenu2
 	push af
 	ld c, $a
 	call DelayFrames
-	call Function1c17
+	call WriteBackup
 	call Function8920f
 	pop af
-	jr c, .asm_892a1
+	jr c, .done
 	ld a, [wcfa9]
 	cp $2
-	jr z, .asm_892a1
+	jr z, .done
 	and a
 	ret
 
-.asm_892a1
+.done
 	scf
 	ret
 ; 892a3
@@ -57039,49 +57198,49 @@
 Function892b7: ; 892b7
 	ld d, b
 	ld e, c
-	ld hl, $0000
+	ld hl, 0
 	add hl, bc
-	ld a, $50
-	ld bc, $0006
+	ld a, "@"
+	ld bc, 6
 	call ByteFill
 	ld b, d
 	ld c, e
-	ld hl, $0006
+	ld hl, 6
 	add hl, bc
-	ld a, $50
-	ld bc, $0006
+	ld a, "@"
+	ld bc, 6
 	call ByteFill
 	ld b, d
 	ld c, e
-	ld hl, $000c
+	ld hl, 12
 	add hl, bc
 	xor a
 	ld [hli], a
 	ld [hl], a
-	ld hl, $000e
+	ld hl, 14
 	add hl, bc
 	ld [hli], a
 	ld [hl], a
-	ld hl, $0010
+	ld hl, 16
 	add hl, bc
 	ld [hl], a
-	ld hl, $0011
+	ld hl, 17
 	add hl, bc
-	ld a, $ff
-	ld bc, $0008
+	ld a, -1
+	ld bc, 8
 	call ByteFill
 	ld b, d
 	ld c, e
-	ld e, $6
-	ld hl, $0019
+	ld e, 6
+	ld hl, 25
 	add hl, bc
-.asm_892fb
-	ld a, $ff
+.loop
+	ld a, -1
 	ld [hli], a
-	ld a, $ff
+	ld a, -1
 	ld [hli], a
 	dec e
-	jr nz, .asm_892fb
+	jr nz, .loop
 	ret
 ; 89305
 
@@ -57089,8 +57248,8 @@
 Function89305: ; 89305 (22:5305)
 	xor a
 	ld [MenuSelection], a
-	ld c, $28
-.asm_8930b
+	ld c, 40
+.loop
 	ld a, [MenuSelection]
 	inc a
 	ld [MenuSelection], a
@@ -57098,7 +57257,7 @@
 	call Function892b4
 	pop bc
 	dec c
-	jr nz, .asm_8930b
+	jr nz, .loop
 	ret
 
 Function8931b: ; 8931b
@@ -57115,29 +57274,30 @@
 ; 8932d
 
 Function8932d: ; 8932d
-	ld hl, $0000
+	ld hl, 0
 	add hl, bc
 
 Function89331: ; 89331
+; Scans up to 5 characters starting at hl, looking for a nonspace character up to the next terminator.  Sets carry if it does not find a nonspace character.  Returns the location of the following character in hl.
 	push bc
-	ld c, $5
-.asm_89334
+	ld c, 5
+.loop
 	ld a, [hli]
-	cp $50
-	jr z, .asm_89340
-	cp $7f
-	jr nz, .asm_89343
+	cp "@"
+	jr z, .terminator
+	cp " "
+	jr nz, .nonspace
 	dec c
-	jr nz, .asm_89334
+	jr nz, .loop
 
-.asm_89340
+.terminator
 	scf
-	jr .asm_89344
+	jr .done
 
-.asm_89343
+.nonspace
 	and a
 
-.asm_89344
+.done
 	pop bc
 	ret
 ; 89346
@@ -57146,62 +57306,64 @@
 Function89346: ; 89346 (22:5346)
 	ld h, b
 	ld l, c
-	jr asm_8934e
+	jr _incave
 
 Function8934a: ; 8934a
-	ld hl, $0006
+	ld hl, 6
 	add hl, bc
-asm_8934e:
+_incave:
+; Scans up to 5 characters starting at hl, looking for a nonspace character up to the next terminator.  Sets carry if it does not find a nonspace character.  Returns the location of the following character in hl.
 	push bc
-	ld c, $5
-.asm_89351
+	ld c, 5
+.loop
 	ld a, [hli]
-	cp $50
-	jr z, .asm_8935d
-	cp $7f
-	jr nz, .asm_89360
+	cp "@"
+	jr z, .terminator
+	cp " "
+	jr nz, .nonspace
 	dec c
-	jr nz, .asm_89351
+	jr nz, .loop
 
-.asm_8935d
+.terminator
 	scf
-	jr .asm_89361
+	jr .done
 
-.asm_89360
+.nonspace
 	and a
 
-.asm_89361
+.done
 	pop bc
 	ret
 ; 89363
 
 Function89363: ; 89363
+; Scans six byte pairs starting at bc to find $ff.  Sets carry if it does not find a $ff.  Returns the location of the byte after the first $ff found in hl.
 	ld h, b
 	ld l, c
-	jr .asm_8936b
+	jr ._incave
 
-	ld hl, $0019
+	ld hl, 25
 	add hl, bc
 
-.asm_8936b
+._incave
 	push de
-	ld e, $6
-.asm_8936e
+	ld e, 6
+.loop
 	ld a, [hli]
-	cp $ff
-	jr nz, .asm_8937e
+	cp -1
+	jr nz, .ok
 	ld a, [hli]
-	cp $ff
-	jr nz, .asm_8937e
+	cp -1
+	jr nz, .ok
 	dec e
-	jr nz, .asm_8936e
+	jr nz, .loop
 	scf
-	jr .asm_8937f
+	jr .done
 
-.asm_8937e
+.ok
 	and a
 
-.asm_8937f
+.done
 	pop de
 	ret
 ; 89381
@@ -57210,16 +57372,16 @@
 	push bc
 	push de
 	call Function89b45
-	jr c, .asm_89392
+	jr c, .ok
 	push hl
-	ld a, $ff
-	ld bc, $0008
+	ld a, -1
+	ld bc, 8
 	call ByteFill
 	pop hl
 
-.asm_89392
+.ok
 	pop de
-	ld c, $8
+	ld c, 8
 	call Function89193
 	pop bc
 	ret
@@ -57227,13 +57389,13 @@
 
 Function8939a: ; 8939a
 	push bc
-	ld hl, $0000
+	ld hl, 0
 	add hl, bc
 	ld de, DefaultFlypoint
-	ld c, $6
+	ld c, 6
 	call Function89193
 	pop bc
-	ld hl, $0011
+	ld hl, 17
 	add hl, bc
 	ld de, wd008
 	call Function89381
@@ -57274,7 +57436,7 @@
 Function893ef: ; 893ef
 	ld de, VTiles0
 	ld hl, GFX_8940b
-	ld bc, $0020
+	ld bc, $20
 	ld a, BANK(GFX_8940b)
 	call FarCopyBytes
 	ret
@@ -57306,14 +57468,15 @@
 	ret
 
 Function89448: ; 89448 (22:5448)
+; Clears the Sprites array
 	push af
 	ld hl, Sprites
-	ld d, $60
+	ld d, $10 * 6
 	xor a
-.asm_8944f
+.loop
 	ld [hli], a
 	dec d
-	jr nz, .asm_8944f
+	jr nz, .loop
 	pop af
 	ret
 
@@ -57340,11 +57503,11 @@
 ; 89481
 
 Function89481: ; 89481
-	ld d, $2
+	ld d, 2
 	call Function8934a
 	ret c
-	ld d, $0
-	ld hl, $0010
+	ld d, 0
+	ld hl, 16
 	add hl, bc
 	bit 0, [hl]
 	ret z
@@ -57354,7 +57517,7 @@
 
 
 Function89492: ; 89492 (22:5492)
-	ld d, $0
+	ld d, 0
 	ld a, [PlayerGender]
 	bit 0, a
 	ret z
@@ -57364,11 +57527,11 @@
 Function8949c: ; 8949c
 	ld a, [rSVBK]
 	push af
-	ld a, $5
+	ld a, 5
 	ld [rSVBK], a
 	ld hl, Palette_894b3
 	ld de, Unkn1Pals + 8 * 7
-	ld bc, $0008
+	ld bc, 8
 	call CopyBytes
 	pop af
 	ld [rSVBK], a
@@ -57407,22 +57570,23 @@
 	push bc
 	ld a, [rSVBK]
 	push af
-	ld a, $5
+	ld a, 5
 	ld [rSVBK], a
 	ld c, d
 	ld b, 0
 	ld hl, Unknown_89509
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
 	ld de, Unkn1Pals
-	ld bc, $0018
+	ld bc, 24
 	call CopyBytes
 	ld hl, Palette_89557
 	ld de, wd018
-	ld bc, $0018
+	ld bc, 24
 	call CopyBytes
 	pop af
 	ld [rSVBK], a
@@ -57503,7 +57667,7 @@
 
 Function8956f: ; 8956f
 	push bc
-	ld hl, $0010
+	ld hl, 16
 	add hl, bc
 	ld d, h
 	ld e, l
@@ -57516,20 +57680,21 @@
 	ld [TrainerClass], a
 	ld a, [rSVBK]
 	push af
-	ld a, $5
+	ld a, 5
 	ld [rSVBK], a
 	ld hl, wd030
-	ld a, $ff
+	ld a, -1
 	ld [hli], a
-	ld a, $7f
+	ld a, " "
 	ld [hl], a
 	pop af
 	ld [rSVBK], a
 	ld a, [TrainerClass]
-	ld h, $0
+	ld h, 0
 	ld l, a
+rept 2
 	add hl, hl
-	add hl, hl
+endr
 	ld de, TrainerPalettes
 	add hl, de
 	ld a, [rSVBK]
@@ -57537,8 +57702,8 @@
 	ld a, $5
 	ld [rSVBK], a
 	ld de, wd032
-	ld c, $4
-.asm_895b1
+	ld c, 4
+.loop
 	ld a, BANK(TrainerPalettes)
 	call GetFarByte
 	ld [de], a
@@ -57545,7 +57710,7 @@
 	inc de
 	inc hl
 	dec c
-	jr nz, .asm_895b1
+	jr nz, .loop
 	ld hl, wd036
 	xor a
 	ld [hli], a
@@ -57560,11 +57725,11 @@
 Function895c7: ; 895c7 (22:55c7)
 	ld a, [rSVBK] ; $ff00+$70
 	push af
-	ld a, $5
+	ld a, 5
 	ld [rSVBK], a ; $ff00+$70
 	ld hl, Palette_895de
 	ld de, wd030
-	ld bc, $8
+	ld bc, 8
 	call CopyBytes
 	pop af
 	ld [rSVBK], a ; $ff00+$70
@@ -57579,9 +57744,9 @@
 ; 895e6
 
 Function895e6: ; 895e6
-	ld a, $7
-	ld hl, AttrMap
-	ld bc, $0168
+	ld a, 7
+	hlcoord 0, 0, AttrMap
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call ByteFill
 	ret
 ; 895f2
@@ -57589,8 +57754,8 @@
 Function895f2: ; 895f2
 	push bc
 	xor a
-	ld hl, AttrMap
-	ld bc, $0168
+	hlcoord 0, 0, AttrMap
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call ByteFill
 	call Function89605
 	call Function89655
@@ -57600,13 +57765,13 @@
 
 Function89605: ; 89605
 	hlcoord 19, 2, AttrMap
-	ld a, $1
-	ld de, $0014
-	ld c, $e
-.asm_8960f
+	ld a, 1
+	ld de, SCREEN_WIDTH
+	ld c, 14
+.loop
 	ld [hl], a
 	dec c
-	jr z, .asm_8961b
+	jr z, .done
 	add hl, de
 	inc a
 	ld [hl], a
@@ -57613,25 +57778,25 @@
 	dec a
 	add hl, de
 	dec c
-	jr nz, .asm_8960f
+	jr nz, .loop
 
-.asm_8961b
+.done
 	hlcoord 0, 16, AttrMap
-	ld c, $a
-	ld a, $2
-.asm_89622
+	ld c, 10
+	ld a, 2
+.loop2
 	ld [hli], a
 	dec a
 	ld [hli], a
 	inc a
 	dec c
-	jr nz, .asm_89622
+	jr nz, .loop2
 	hlcoord 1, 11, AttrMap
-	ld a, $4
-	ld bc, $0004
+	ld a, 4
+	ld bc, 4
 	call ByteFill
-	ld a, $5
-	ld bc, $000e
+	ld a, 5
+	ld bc, 14
 	call ByteFill
 	ret
 ; 8963d
@@ -57638,39 +57803,39 @@
 
 Function8963d: ; 8963d
 	hlcoord 12, 3, AttrMap
-	ld a, $6
-	ld de, $0014
-	ld bc, $0707
-.asm_89648
+	ld a, 6
+	ld de, SCREEN_WIDTH
+	lb bc, 7, 7
+.loop
 	push hl
-	ld c, $7
-.asm_8964b
+	ld c, 7
+.next
 	ld [hli], a
 	dec c
-	jr nz, .asm_8964b
+	jr nz, .next
 	pop hl
 	add hl, de
 	dec b
-	jr nz, .asm_89648
+	jr nz, .loop
 	ret
 ; 89655
 
 Function89655: ; 89655
-	ld hl, AttrMap + SCREEN_WIDTH * 12 + 1
+	hlcoord 1, 12, AttrMap
 	ld de, SCREEN_WIDTH
 	ld a, 5
 	ld b, 4
-.asm_8965f
+.loop
 	ld c, 18
 	push hl
-.asm_89662
+.next
 	ld [hli], a
 	dec c
-	jr nz, .asm_89662
+	jr nz, .next
 	pop hl
 	add hl, de
 	dec b
-	jr nz, .asm_8965f
+	jr nz, .loop
 	ret
 ; 8966c
 
@@ -57678,7 +57843,7 @@
 	push bc
 	call Function89688
 	hlcoord 4, 0
-	ld c, $8
+	ld c, 8
 	call Function896f5
 	pop bc
 	ret
@@ -57689,73 +57854,73 @@
 	push bc
 	call Function89688
 	hlcoord 2, 0
-	ld c, $c
+	ld c, 12
 	call Function896f5
 	pop bc
 	ret
 
 Function89688: ; 89688
-	ld hl, TileMap
-	ld a, $1
-	ld e, $14
+	hlcoord 0, 0
+	ld a, 1
+	ld e, SCREEN_WIDTH
 	call Function896e1
-	ld a, $2
-	ld e, $14
+	ld a, 2
+	ld e, SCREEN_WIDTH
 	call Function896eb
-	ld a, $3
+	ld a, 3
 	ld [hli], a
-	ld a, $4
-	ld e, $12
+	ld a, 4
+	ld e, SCREEN_HEIGHT
 	call Function896e1
-	ld a, $6
+	ld a, 6
 	ld [hli], a
 	push bc
-	ld c, $d
-.asm_896a9
+	ld c, 13
+.loop
 	call Function896cb
 	dec c
-	jr z, .asm_896b5
+	jr z, .done
 	call Function896d6
 	dec c
-	jr nz, .asm_896a9
+	jr nz, .loop
 
-.asm_896b5
+.done
 	pop bc
-	ld a, $19
+	ld a, 25
 	ld [hli], a
-	ld a, $1a
-	ld e, $12
+	ld a, 26
+	ld e, SCREEN_HEIGHT
 	call Function896e1
-	ld a, $1c
+	ld a, 28
 	ld [hli], a
-	ld a, $2
-	ld e, $14
+	ld a, 2
+	ld e, SCREEN_WIDTH
 	call Function896eb
 	ret
 ; 896cb
 
 Function896cb: ; 896cb
-	ld de, $0013
-	ld a, $7
+	ld de, SCREEN_WIDTH - 1
+	ld a, 7
 	ld [hl], a
 	add hl, de
-	ld a, $9
+	ld a, 9
 	ld [hli], a
 	ret
 ; 896d6
 
 Function896d6: ; 896d6
-	ld de, $0013
-	ld a, $a
+	ld de, SCREEN_WIDTH - 1
+	ld a, 10
 	ld [hl], a
 	add hl, de
-	ld a, $b
+	ld a, 11
 	ld [hli], a
 	ret
 ; 896e1
 
 Function896e1: ; 896e1
-.asm_896e1
+.loop
 	ld [hli], a
 	inc a
 	dec e
@@ -57763,12 +57928,12 @@
 	ld [hli], a
 	dec a
 	dec e
-	jr nz, .asm_896e1
+	jr nz, .loop
 	ret
 ; 896eb
 
 Function896eb: ; 896eb
-.asm_896eb
+.loop
 	ld [hli], a
 	dec a
 	dec e
@@ -57776,7 +57941,7 @@
 	ld [hli], a
 	inc a
 	dec e
-	jr nz, .asm_896eb
+	jr nz, .loop
 	ret
 ; 896f5
 
@@ -57783,8 +57948,9 @@
 Function896f5: ; 896f5
 	call Function8971f
 	call Function89736
+rept 2
 	inc hl
-	inc hl
+endr
 	ld b, 2
 
 ClearScreenArea: ; 0x896ff
@@ -57810,8 +57976,9 @@
 	jr nz, .loop
 
 	dec hl
+rept 2
 	inc c
-	inc c
+endr
 .asm_89713
 	ld a, $36
 	ld [hli], a
@@ -57830,7 +57997,7 @@
 	ld a, $2d
 	ld [hld], a
 	push hl
-	ld de, $0014
+	ld de, SCREEN_WIDTH
 	add hl, de
 	ld a, $31
 	ld [hli], a
@@ -57845,8 +58012,9 @@
 
 Function89736: ; 89736
 	push hl
+rept 2
 	inc hl
-	inc hl
+endr
 	ld e, c
 	ld d, $0
 	add hl, de
@@ -57854,7 +58022,7 @@
 	ld [hli], a
 	ld a, $30
 	ld [hld], a
-	ld de, $0014
+	ld de, SCREEN_WIDTH
 	add hl, de
 	ld a, $33
 	ld [hli], a
@@ -57882,8 +58050,9 @@
 	ld [hli], a
 	ld a, $d
 	ld [hl], a
+rept 2
 	dec hl
-	dec hl
+endr
 	ld a, $4
 	ld e, $3
 .asm_89769
@@ -57930,7 +58099,7 @@
 	push bc
 	ld a, $e
 	ld [hl], a
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	ld a, $11
 	ld [hli], a
@@ -57973,8 +58142,8 @@
 	jr nc, .asm_897f3
 	hlcoord 12, 3, AttrMap
 	xor a
-	ld de, $0014
-	ld bc, $0707
+	ld de, SCREEN_WIDTH
+	lb bc, 7, 7
 .asm_897e5
 	push hl
 	ld c, $7
@@ -57993,7 +58162,7 @@
 	ld a, $37
 	ld [$ffad], a
 	hlcoord 12, 3
-	ld bc, $0707
+	lb bc, 7, 7
 	predef FillBox
 	call Function8963d
 	pop bc
@@ -58207,7 +58376,7 @@
 Function8994e: ; 8994e
 	push hl
 	push de
-	ld de, $0014
+	ld de, SCREEN_WIDTH
 	ld a, l
 	sub e
 	ld l, a
@@ -58648,8 +58817,9 @@
 	and a
 	jr z, .asm_89bae
 .asm_89ba9
+rept 2
 	inc hl
-	inc hl
+endr
 	dec a
 	jr nz, .asm_89ba9
 .asm_89bae
@@ -58929,7 +59099,7 @@
 
 Function89d5e: ; 89d5e (22:5d5e)
 	push af
-	call Function1d3c
+	call CopyMenuDataHeader
 	pop af
 	ld [wcf88], a
 	call Function8923c
@@ -59165,10 +59335,9 @@
 	ld a, $ff
 	ld [hli], a
 	xor a
+rept 4
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 .asm_89f09
 	ld hl, wd012
@@ -59259,8 +59428,9 @@
 	ld [hli], a
 	ld a, c
 	ld [hli], a
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, $8
 	add c
 	ld c, a
@@ -59391,9 +59561,9 @@
 	ld a, $5
 	call Function8a5a3
 	pop hl
+rept 3
 	inc hl
-	inc hl
-	inc hl
+endr
 	ld a, $6
 	call Function8a5a3
 	call Function3238
@@ -59445,7 +59615,7 @@
 
 Function8a0c9: ; 8a0c9 (22:60c9)
 	push bc
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld de, $14
 	ld a, b
 	and a
@@ -59542,7 +59712,7 @@
 	ld c, $10
 	call DelayFrames
 .asm_8a15a
-	call Function1c07
+	call ExitMenu
 	call Function891de
 	call Function893e2
 	call Function89245
@@ -59551,7 +59721,7 @@
 	ret
 .asm_8a16b
 	call Function89209
-	call Function1c17
+	call WriteBackup
 	call Function8920f
 	scf
 	ret
@@ -59722,7 +59892,7 @@
 	call Function8a20d
 	jr .asm_8a2ea
 .asm_8a2cf
-	call Function1c07
+	call ExitMenu
 	call Function8a241
 	jr c, .asm_8a2ed
 	ld a, $1
@@ -59734,7 +59904,7 @@
 	and a
 	ret
 .asm_8a2ea
-	call Function1c17
+	call WriteBackup
 .asm_8a2ed
 	scf
 	ret
@@ -59870,7 +60040,7 @@
 	call Function89b3b
 	ld hl, MenuDataHeader_0x8a40f
 .asm_8a3db
-	call Function1d3c
+	call CopyMenuDataHeader
 	ret
 
 Function8a3df: ; 8a3df (22:63df)
@@ -60634,7 +60804,7 @@
 	jr .asm_8a9a1
 .asm_8a9bb
 	call Function89209
-	call Function1c17
+	call WriteBackup
 	call Function8920f
 	ret
 
@@ -61178,7 +61348,7 @@
 	cp HO_OH ; is Ho-oh the first Pokémon in the party?
 	jr nz, .done ; if not, we're done
 	call GetSecondaryMapHeaderPointer
-	ld de, $0326
+	ld de, EVENT_WALL_OPENED_IN_HO_OH_CHAMBER
 	ld b, SET_FLAG
 	call EventFlagAction
 .done
@@ -61185,27 +61355,27 @@
 	ret
 ; 0x8adef
 
-Function8adef: ; 8adef
+SpecialOmanyteChamber: ; 8adef
 	call GetSecondaryMapHeaderPointer
-	ld de, $0328
+	ld de, EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER
 	ld b, CHECK_FLAG
 	call EventFlagAction
 	ld a, c
 	and a
-	jr nz, .asm_8ae2f
+	jr nz, .nope
 
 	ld a, WATER_STONE
 	ld [CurItem], a
 	ld hl, NumItems
 	call CheckItem
-	jr c, .asm_8ae24
+	jr c, .open
 
 	ld a, [PartyCount]
 	ld b, a
 	inc b
-.asm_8ae10
+.loop
 	dec b
-	jr z, .asm_8ae2f
+	jr z, .nope
 	ld a, b
 	dec a
 	ld [CurPartyMon], a
@@ -61215,19 +61385,19 @@
 	pop bc
 	ld a, [hl]
 	cp WATER_STONE
-	jr nz, .asm_8ae10
+	jr nz, .loop
 
-.asm_8ae24
+.open
 	call GetSecondaryMapHeaderPointer
-	ld de, $0328
+	ld de, EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER
 	ld b, SET_FLAG
 	call EventFlagAction
 
-.asm_8ae2f
+.nope
 	ret
 ; 8ae30
 
-Function8ae30: ; 8ae30
+SpecialAerodactylChamber: ; 8ae30
 	push de
 	push bc
 
@@ -61234,12 +61404,12 @@
 	call GetSecondaryMapHeaderPointer
 	ld a, h
 	cp RuinsofAlphAerodactylChamber_SecondMapHeader / $100
-	jr nz, .asm_8ae4a
+	jr nz, .nope
 	ld a, l
 	cp RuinsofAlphAerodactylChamber_SecondMapHeader % $100
-	jr nz, .asm_8ae4a
+	jr nz, .nope
 
-	ld de, $0329
+	ld de, EVENT_WALL_OPENED_IN_AERODACTYL_CHAMBER
 	ld b, SET_FLAG
 	call EventFlagAction
 
@@ -61246,7 +61416,7 @@
 	scf
 	jr .done
 
-.asm_8ae4a
+.nope
 	and a
 
 .done
@@ -61255,7 +61425,7 @@
 	ret
 ; 8ae4e
 
-Function8ae4e: ; 8ae4e
+SpecialKabutoChamber: ; 8ae4e
 	push hl
 	push de
 
@@ -61267,7 +61437,7 @@
 	cp RuinsofAlphKabutoChamber_SecondMapHeader % $100
 	jr nz, .done
 
-	ld de, $0327
+	ld de, EVENT_WALL_OPENED_IN_KABUTO_CHAMBER
 	ld b, SET_FLAG
 	call EventFlagAction
 
@@ -61277,7 +61447,7 @@
 	ret
 ; 8ae68
 
-Function8ae68: ; 8ae68
+Special_DisplayUnownWords: ; 8ae68
 	ld a, [ScriptVar]
 	ld hl, MenuDataHeader_0x8aed5
 	and a
@@ -61295,14 +61465,15 @@
 	xor a
 	ld [hBGMapMode], a
 	call Function1cbb
-	call Function1ad2
+	call DrawOnMap
 	call Function321c
 	call Function1cfd
 	inc hl
 	ld d, $0
 	ld e, $14
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [ScriptVar]
 	ld c, a
 	ld de, Unknown_8aebc
@@ -61324,7 +61495,7 @@
 	call Function3200
 	call Functiona36
 	call PlayClickSFX
-	call Function1c17
+	call WriteBackup
 	ret
 ; 8aebc
 
@@ -61368,8 +61539,9 @@
 
 .asm_8aef5
 	call Function8aefd
+rept 2
 	inc hl
-	inc hl
+endr
 	inc de
 	jr .asm_8aee9
 ; 8aefd
@@ -61396,8 +61568,9 @@
 	jr z, .asm_8af19
 	ld c, a
 	call Function8af1c
+rept 2
 	inc hl
-	inc hl
+endr
 	inc de
 	jr .asm_8af0b
 
@@ -61472,7 +61645,7 @@
 	xor a
 	ld [wcf76], a
 	ld hl, MenuDataHeader_0x8afa9
-	call Function1d3c
+	call CopyMenuDataHeader
 	ld a, [wdc4a]
 	ld c, a
 	callba Functionb8f8f
@@ -61517,7 +61690,8 @@
 
 Unknown_8afb8: ; 8afb8
 	db 3
-	db 0, 1, 2, $ff
+	db 0, 1, 2
+	db -1
 
 Function8afbd: ; 8afbd
 	push de
@@ -61550,7 +61724,7 @@
 
 .asm_8aff1
 	call DelayFrame
-	call Function1ad2
+	call DrawOnMap
 	call Function8b097
 	call Function8b0e2
 	jr z, .asm_8b05f
@@ -61606,8 +61780,8 @@
 	jr .asm_8afeb
 
 .asm_8b05f
-	call Function1c17
-	call Function1c17
+	call WriteBackup
+	call WriteBackup
 	ld hl, UnknownText_0x8b08b
 	call PrintText
 	call Functiona36
@@ -61668,9 +61842,9 @@
 	xor a
 	ld [hBGMapMode], a
 	ld hl, MenuDataHeader_0x8b0d1
-	call Function1d3c
+	call CopyMenuDataHeader
 	call Function1cbb
-	call Function1ad2
+	call DrawOnMap
 	call Function1cfd
 	ld bc, $0015
 	add hl, bc
@@ -61712,7 +61886,7 @@
 
 Function8b0e2: ; 8b0e2
 	ld hl, MenuDataHeader_0x8b113
-	call Function1d3c
+	call CopyMenuDataHeader
 	ld a, [MenuSelection]
 	ld [wcf88], a
 	xor a
@@ -61719,7 +61893,7 @@
 	ld [wcf76], a
 	ld [hBGMapMode], a
 	call Function352f
-	call Function1ad2
+	call DrawOnMap
 	call Function350c
 	ld a, [MenuSelection]
 	ld c, a
@@ -61789,8 +61963,9 @@
 	ld hl, BuenaPrizes
 	ld b, 0
 	ld c, a
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ret
 ; 8b15e
 
@@ -61969,9 +62144,9 @@
 ; 8b281
 
 Function8b281: ; 8b281
+rept 3
 	inc de
-	inc de
-	inc de
+endr
 	ld a, [de]
 	ld l, a
 	inc de
@@ -62012,11 +62187,13 @@
 Function8b2a9: ; 8b2a9
 	push bc
 	call Function8b281
+rept 2
 	inc hl
-	inc hl
+endr
 	ld b, $0
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	call Function8b28a
 	call PrintText
 	pop bc
@@ -62465,8 +62642,9 @@
 	ld hl, Unknown_8b529
 	call Function8b50a
 	push hl
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [hli]
 	ld b, a
 	ld a, [hl]
@@ -62481,8 +62659,9 @@
 	ld hl, Unknown_8b529
 	call Function8b50a
 	push hl
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [hli]
 	ld b, a
 	ld a, [hl]
@@ -62784,7 +62963,7 @@
 ; 8b6ed
 
 Function8b6ed: ; 8b6ed
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, $012c
 	xor a
 	call ByteFill
@@ -62807,7 +62986,7 @@
 	pop hl
 	push hl
 	push bc
-	ld de, $0014
+	ld de, SCREEN_WIDTH
 	add hl, de
 .asm_8b717
 	push hl
@@ -62818,7 +62997,7 @@
 	ld a, $11
 	ld [hl], a
 	pop hl
-	ld de, $0014
+	ld de, SCREEN_WIDTH
 	add hl, de
 	dec b
 	jr nz, .asm_8b717
@@ -62850,10 +63029,12 @@
 Function8b744: ; 8b744
 	ld de, AttrMap - TileMap
 	add hl, de
+rept 2
 	inc b
-	inc b
+endr
+rept 2
 	inc c
-	inc c
+endr
 	xor a
 .asm_8b74d
 	push bc
@@ -62863,7 +63044,7 @@
 	dec c
 	jr nz, .asm_8b74f
 	pop hl
-	ld de, $0014
+	ld de, SCREEN_WIDTH
 	add hl, de
 	pop bc
 	dec b
@@ -62873,9 +63054,9 @@
 
 Function8b75d: ; 8b75d
 	call Function8923c
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld a, $1
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	call ByteFill
 	hlcoord 0, 1
 	ld a, $2
@@ -62948,7 +63129,7 @@
 Function8b7bd: ; 8b7bd
 	call Function8b855
 	ld hl, MenuDataHeader_0x8b867
-	call Function1d3c
+	call CopyMenuDataHeader
 	ld a, [wd030]
 	ld [wcf88], a
 	ld a, [wd031]
@@ -62973,7 +63154,7 @@
 	ld c, $12
 	call Function8b703
 	call Function8b75d
-	call Function1ad2
+	call DrawOnMap
 	call Function89209
 	call Function350c
 	call Function8920f
@@ -63125,8 +63306,9 @@
 	ld b, 0
 	ld c, a
 	ld hl, Unknown_8b903
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -63196,7 +63378,7 @@
 	call Function89d5e
 	ld hl, Function8b9ab
 	call Function89d85
-	call Function1c07
+	call ExitMenu
 	jr c, .asm_8b99c
 	call Function8b99f
 	jr nz, .asm_8b99d
@@ -63326,32 +63508,32 @@
 	ld hl, wd846
 	bit 7, [hl]
 	jr nz, .dontchange
-	
+
 ; do we need to bother updating?
 	ld a, [TimeOfDay]
 	ld hl, CurTimeOfDay
 	cp [hl]
 	jr z, .dontchange
-	
+
 ; if so, the time of day has changed
 	ld a, [TimeOfDay]
 	ld [CurTimeOfDay], a
-	
+
 ; get palette id
 	call GetTimePalette
-	
+
 ; same palette as before?
 	ld hl, TimeOfDayPal
 	cp [hl]
 	jr z, .dontchange
-	
+
 ; update palette id
 	ld [TimeOfDayPal], a
-	
-	
+
+
 ; save bg palette 8
 	ld hl, Unkn1Pals + 8 * 7 ; Unkn1Pals + 7 pals
-	
+
 ; save wram bank
 	ld a, [rSVBK]
 	ld b, a
@@ -63358,7 +63540,7 @@
 ; wram bank 5
 	ld a, 5
 	ld [rSVBK], a
-	
+
 ; push palette
 	ld c, 4 ; NUM_PAL_COLORS
 .push
@@ -63369,20 +63551,20 @@
 	push de
 	dec c
 	jr nz, .push
-	
+
 ; restore wram bank
 	ld a, b
 	ld [rSVBK], a
-	
-	
+
+
 ; update sgb pals
 	ld b, $9
 	call GetSGBLayout
-	
-	
+
+
 ; restore bg palette 8
 	ld hl, wd03f ; last byte in Unkn1Pals
-	
+
 ; save wram bank
 	ld a, [rSVBK]
 	ld d, a
@@ -63389,7 +63571,7 @@
 ; wram bank 5
 	ld a, 5
 	ld [rSVBK], a
-	
+
 ; pop palette
 	ld e, 4 ; NUM_PAL_COLORS
 .pop
@@ -63400,19 +63582,19 @@
 	dec hl
 	dec e
 	jr nz, .pop
-	
+
 ; restore wram bank
 	ld a, d
 	ld [rSVBK], a
-	
+
 ; update palettes
 	call _UpdateTimePals
 	call DelayFrame
-	
+
 ; successful change
 	scf
 	ret
-	
+
 .dontchange
 ; no change occurred
 	and a
@@ -63427,7 +63609,7 @@
 	ret
 ; 8c079
 
-Function8c079:: ; 8c079
+FadeInBGMap:: ; 8c079
 	ld c, $12
 	call GetTimePalFade
 	ld b, $4
@@ -63435,7 +63617,7 @@
 	ret
 ; 8c084
 
-Function8c084:: ; 8c084
+FadeBlackBGMap:: ; 8c084
 	call Function8c0c1
 	ld c, $9
 	call GetTimePalFade
@@ -63444,7 +63626,7 @@
 	ret
 ; 8c092
 
-Function8c092: ; 8c092
+Special_BattleTowerFade: ; 8c092
 	call Function8c0c1
 	ld c, $9
 	call GetTimePalFade
@@ -63451,9 +63633,9 @@
 	ld b, $4
 .asm_8c09c
 	call DmgToCgbTimePals
+rept 3
 	inc hl
-	inc hl
-	inc hl
+endr
 	ld c, $7
 	call DelayFrames
 	dec b
@@ -63461,7 +63643,7 @@
 	ret
 ; 8c0ab
 
-Function8c0ab: ; 8c0ab
+Special_FadeInQuickly: ; 8c0ab
 	ld c, $0
 	call GetTimePalFade
 	ld b, $4
@@ -63469,7 +63651,7 @@
 	ret
 ; 8c0b6
 
-Function8c0b6: ; 8c0b6
+Special_FadeBlackQuickly: ; 8c0b6
 	ld c, $9
 	call GetTimePalFade
 	ld b, $4
@@ -63495,12 +63677,9 @@
 	ld [hli], a
 	ld a, d
 	ld [hli], a
+rept 6
 	inc hl
-	inc hl
-	inc hl
-	inc hl
-	inc hl
-	inc hl
+endr
 	dec c
 	jr nz, .asm_8c0d4
 	pop af
@@ -63551,8 +63730,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, .TimePalettes
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -63610,9 +63790,9 @@
 Function8c15e: ; 8c15e
 .asm_8c15e
 	call DmgToCgbTimePals
+rept 3
 	inc hl
-	inc hl
-	inc hl
+endr
 	ld c, $2
 	call DelayFrames
 	dec b
@@ -63623,9 +63803,9 @@
 Function8c16d: ; 8c16d
 .asm_8c16d
 	call DmgToCgbTimePals
+rept 3
 	dec hl
-	dec hl
-	dec hl
+endr
 	ld c, $2
 	call DelayFrames
 	dec b
@@ -63639,30 +63819,31 @@
 	ld a, [hCGB]
 	and a
 	jr nz, .cgb
-	
+
 ; else: dmg
 
 ; index
 	ld a, [TimeOfDayPal]
 	and %11
-	
+
 ; get fade table
 	push bc
 	ld c, a
 	ld b, $0
 	ld hl, .dmgfades
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
 	pop bc
-	
+
 ; get place in fade table
 	ld b, $0
 	add hl, bc
 	ret
-	
+
 .cgb
 	ld hl, .cgbfade
 	ld b, $0
@@ -63776,7 +63957,7 @@
 	cp $4
 	jr z, .asm_8c288
 	callba Function6454
-	call Function1ad2
+	call DrawOnMap
 	call DelayFrame
 	call Function8c2a0
 	call Function8cf4f
@@ -63793,8 +63974,9 @@
 	ld [hBGMapMode], a
 	ld hl, wcf63
 	xor a
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 	call Function8c6d8
 	ret
@@ -63861,8 +64043,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_8c323
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -63914,7 +64097,7 @@
 	jr nc, .asm_8c375
 	set 0, e
 .asm_8c375
-	ld a, [wd19a]
+	ld a, [wPermission]
 	cp $4
 	jr z, .asm_8c386
 	cp $5
@@ -64071,13 +64254,11 @@
 	ld e, a
 	ld d, 0
 	ld hl, Unknown_8c490
+rept 5
 	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
-	cp $ff
+	cp -1
 	jr z, .asm_8c47a
 	ld [wcf65], a
 	call Function8c4f5
@@ -64259,7 +64440,7 @@
 	jp z, Function8c673
 	xor a
 	ld [hBGMapMode], a ; $ff00+$d4
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, $168
 	inc b
 	inc c
@@ -64380,20 +64561,29 @@
 	RGB 31, 05, 05
 	RGB 31, 05, 05
 	RGB 31, 05, 05
-; 8c6b1
 
-Function8c6b1: ; 8c6b1 (23:46b1)
+Function8c6b1:
 	ld a, [OtherTrainerClass]
-	ld de, Unknown_8c6b8
+	ld de, PokeBallTransition
 	ret
-; 8c6b8 (23:46b8)
 
-Unknown_8c6b8: ; 8c6b8
-	db $03, $c0, $0f, $f0, $3c, $3c, $30, $0c
-	db $60, $06, $63, $c6, $c6, $63, $fc, $3f
-	db $fc, $3f, $c6, $63, $63, $c6, $60, $06
-	db $30, $0c, $3c, $3c, $0f, $f0, $03, $c0
-; 8c6d8
+PokeBallTransition:
+	db %00000011,%11000000
+	db %00001111,%11110000
+	db %00111100,%00111100
+	db %00110000,%00001100
+	db %01100000,%00000110
+	db %01100011,%11000110
+	db %11000110,%01100011
+	db %11111100,%00111111
+	db %11111100,%00111111
+	db %11000110,%01100011
+	db %01100011,%11000110
+	db %01100000,%00000110
+	db %00110000,%00001100
+	db %00111100,%00111100
+	db %00001111,%11110000
+	db %00000011,%11000000
 
 Function8c6d8: ; 8c6d8
 	ld a, [rSVBK]
@@ -64440,8 +64630,9 @@
 	ld a, d
 	ld d, 0
 	ld hl, Unknown_8c728
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
@@ -64543,8 +64734,8 @@
 	ret
 ; 8c7e1
 
-Function8c7e1: ; 8c7e1
-	callba Function8c084
+BlindingFlash: ; 8c7e1
+	callba FadeBlackBGMap
 	ld hl, StatusFlags
 	set 2, [hl]
 	callba Function8c0e5
@@ -64552,7 +64743,7 @@
 	ld b, $9
 	call GetSGBLayout
 	callba Function49409
-	callba Function8c079
+	callba FadeInBGMap
 	ret
 ; 8c80a
 
@@ -64607,7 +64798,7 @@
 	ld hl, VTiles1
 	lb bc, BANK(Font), $c
 	call Get1bpp
-	call Functione4a
+	call Special_ReplaceKrisSprite
 	ret
 ; 8c893
 
@@ -64631,7 +64822,7 @@
 	ld a, $5
 	ld [hli], a
 	ld [hld], a
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	ld [hli], a
 	ld [hld], a
@@ -64697,8 +64888,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_8ca1b
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -64723,8 +64915,9 @@
 	ld a, $20
 	ld [wcf64], a
 	ld hl, wcf63
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	ret
 
 Function8ca3c: ; 8ca3c (23:4a3c)
@@ -64796,8 +64989,9 @@
 	add e
 	ld e, a
 	ld hl, Unknown_8cab3
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
@@ -64921,9 +65115,9 @@
 	ld c, $4
 .asm_8cb88
 	ld [hli], a
+rept 3
 	inc hl
-	inc hl
-	inc hl
+endr
 	inc a
 	dec c
 	jr nz, .asm_8cb88
@@ -64990,7 +65184,7 @@
 	ld [hl], $80
 	ret
 
-Function8cc04: ; 8cc04
+Special_MagnetTrain: ; 8cc04
 	ld a, [ScriptVar]
 	and a
 	jr nz, .asm_8cc14
@@ -65090,8 +65284,9 @@
 	ld d, a
 	ld hl, wcf64
 	ld a, [hl]
+rept 2
 	add d
-	add d
+endr
 	ld [hl], a
 	ret
 ; 8ccc4
@@ -65140,9 +65335,9 @@
 	xor a
 	ld [hli], a
 	ld a, [wd192]
+rept 3
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld de, MUSIC_MAGNET_TRAIN
 	call PlayMusic2
 	ret
@@ -65201,8 +65396,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, MagnetTrainBGTiles
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
@@ -65285,8 +65481,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_8ce06
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -65385,15 +65582,17 @@
 	inc a
 	ld d, a
 	ld a, e
+rept 2
 	add d
-	add d
+endr
 	ld [wcf65], a
 	ld hl, wc3c0
 	ld a, [wd191]
 	ld d, a
 	ld a, [hl]
+rept 2
 	add d
-	add d
+endr
 	ld [hl], a
 	ret
 
@@ -65424,13 +65623,13 @@
 	ld [rSVBK], a
 	ld a, [TimeOfDayPal]
 	push af
-	ld a, [wd19a]
+	ld a, [wPermission]
 	push af
 	ld a, [TimeOfDay]
 	and $3
 	ld [TimeOfDayPal], a
 	ld a, $1
-	ld [wd19a], a
+	ld [wPermission], a
 	ld b, $9
 	call GetSGBLayout
 	call UpdateTimePals
@@ -65441,7 +65640,7 @@
 	ld a, [rOBP1]
 	ld [wcfc9], a
 	pop af
-	ld [wd19a], a
+	ld [wPermission], a
 	pop af
 	ld [TimeOfDayPal], a
 	pop af
@@ -65599,9 +65798,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Unknown_8d1c4
+rept 3
 	add hl, de
-	add hl, de
-	add hl, de
+endr
 	ld e, l
 	ld d, h
 	ld hl, $0000
@@ -65625,18 +65824,19 @@
 	ld a, d
 	ld [hli], a
 	xor a
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	xor a
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	dec a
 	ld [hli], a
 	xor a
+rept 4
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 	ld a, c
 	ld [wc3b8], a
@@ -65895,8 +66095,9 @@
 	ld [hl], a
 	ld hl, $000a
 	add hl, bc
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	jr .asm_8d132
 
 .asm_8d17b
@@ -65917,8 +66118,9 @@
 	ld e, [hl]
 	ld d, 0
 	ld hl, Unknown_8d6e6
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
@@ -65935,9 +66137,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Unknown_8d94d
+rept 3
 	add hl, de
-	add hl, de
-	add hl, de
+endr
 	ret
 ; 8d1ac
 
@@ -65945,8 +66147,9 @@
 	push hl
 	ld l, a
 	ld h, 0
+rept 2
 	add hl, hl
-	add hl, hl
+endr
 	ld de, Unknown_8e706
 	add hl, de
 	ld c, [hl]
@@ -66018,8 +66221,9 @@
 	ld e, [hl]
 	ld d, 0
 	ld hl, Jumptable_8d25b
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -66228,8 +66432,9 @@
 	ld a, [hl]
 	and a
 	jr z, .asm_8d3ba
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ld d, a
 	and $1f
 	jr nz, .asm_8d395
@@ -66512,8 +66717,9 @@
 	ld hl, $4
 	add hl, bc
 	ld a, [hl]
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	cp $b0
 	jr nc, .asm_8d53f
 	and $3
@@ -66582,9 +66788,9 @@
 	ld hl, $c
 	add hl, bc
 	ld a, [hl]
+rept 3
 	inc [hl]
-	inc [hl]
-	inc [hl]
+endr
 	push af
 	push de
 	call Function8d6de
@@ -66613,8 +66819,9 @@
 	ret c
 	ld hl, $5
 	add hl, bc
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ld hl, $f
 	add hl, bc
 	ld a, [hl]
@@ -66640,8 +66847,9 @@
 	ld a, [hl]
 	cp $b8
 	jr nc, .asm_8d603
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	ld hl, $5
 	add hl, bc
 	dec [hl]
@@ -66667,8 +66875,9 @@
 	ret z
 	ld hl, $5
 	add hl, bc
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	ld hl, $f
 	add hl, bc
 	ld a, [hl]
@@ -66743,9 +66952,9 @@
 	ld hl, $b
 	add hl, bc
 	ld d, [hl]
+rept 3
 	inc [hl]
-	inc [hl]
-	inc [hl]
+endr
 	ld hl, $c
 	add hl, bc
 	ld a, [hl]
@@ -68213,8 +68422,9 @@
 	ld a, d
 	ld d, 0
 	ld hl, Unknown_8e75d
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
@@ -68254,8 +68464,9 @@
 	call Function8e7c6
 	call DelayFrame
 	pop bc
+rept 2
 	inc d
-	inc d
+endr
 	dec c
 	jr nz, .asm_8e7b5
 	call ClearSprites
@@ -68353,8 +68564,9 @@
 Function8e849: ; 8e849
 	ld d, 0
 	ld hl, Jumptable_8e854
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -68490,10 +68702,9 @@
 	ld [CurIcon], a
 	call Function8e9db
 	ld a, [$ffb0]
+rept 4
 	add a
-	add a
-	add a
-	add a
+endr
 	add $1c
 	ld d, a
 	ld e, $10
@@ -68623,7 +68834,7 @@
 	add 10
 	ld [wc3b7], a
 	ret
-	
+
 HeldItemIcons:
 INCBIN "gfx/icon/mail.2bpp"
 INCBIN "gfx/icon/item.2bpp"
@@ -68634,21 +68845,20 @@
 	ld l, e
 	ld h, d
 	jr GetIcon
-	
+
 GetIcon_a: ; 8ea1b
 ; Load icon graphics into VRAM starting from tile a.
 	ld l, a
 	ld h, 0
-	
+
 GetIcon: ; 8ea1e
 ; Load icon graphics into VRAM starting from tile hl.
 
 ; One tile is 16 bytes long.
+rept 4
 	add hl, hl
-	add hl, hl
-	add hl, hl
-	add hl, hl
-	
+endr
+
 	ld de, VTiles0
 	add hl, de
 	push hl
@@ -68666,7 +68876,7 @@
 	ld e, a
 	ld d, [hl]
 	pop hl
-	
+
 	lb bc, BANK(Icons), 8
 	call GetGFXUnlessMobile
 
@@ -68773,8 +68983,8 @@
 
 SECTION "bank24", ROMX, BANK[$24]
 
-Function90000:: ; 90000
-	call Function9001c
+AddPhoneNumber:: ; 90000
+	call _CheckCellNum
 	jr c, .asm_9000d
 	call Function9002d
 	jr nc, .asm_9000d
@@ -68788,8 +68998,8 @@
 ; 9000f
 
 
-Function9000f:: ; 9000f
-	call Function9001c
+DelCellNum:: ; 9000f
+	call _CheckCellNum
 	jr nc, .asm_90017
 	xor a
 	ld [hl], a
@@ -68800,11 +69010,11 @@
 	ret
 ; 90019
 
-Function90019:: ; 90019
-	jp Function9001c
+CheckCellNum:: ; 90019
+	jp _CheckCellNum
 ; 9001c
 
-Function9001c: ; 9001c
+_CheckCellNum: ; 9001c
 	ld hl, wdc7c
 	ld b, $a
 .asm_90021
@@ -68854,7 +69064,7 @@
 	push bc
 	push hl
 	ld c, a
-	call Function9001c
+	call _CheckCellNum
 	jr c, .asm_9005b
 	ld hl, Buffer1
 	inc [hl]
@@ -68908,7 +69118,7 @@
 	cp b
 	jr nz, .no_call
 
-	call Function2d05
+	call GetMapHeaderPhoneServiceNybble
 	and a
 	jr nz, .no_call
 
@@ -68937,7 +69147,7 @@
 	push bc
 	push de
 	push af
-	callba Functionc000
+	callba CheckTime
 	pop af
 	and $7
 	and c
@@ -68968,7 +69178,7 @@
 	ret
 
 Function900de: ; 900de (24:40de)
-	callba Functionc000
+	callba CheckTime
 	ld a, c
 	ld [EngineBuffer1], a ; wd03e (aliases: MenuItemsList, CurFruitTree, CurInput)
 	ld hl, wd040
@@ -69015,7 +69225,7 @@
 	ret
 
 Function90136:: ; 90136 (24:4136)
-	ld a, [wdc31]
+	ld a, [wSpecialPhoneCallID]
 	and a
 	jr z, .asm_90171
 	dec a
@@ -69030,8 +69240,9 @@
 	call _hl_
 	jr nc, .asm_90171
 	call Function90178
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [hli]
 	ld e, a
 	push hl
@@ -69062,7 +69273,7 @@
 ; 0x90178
 
 Function90178: ; 90178 (24:4178)
-	ld a, [wdc31]
+	ld a, [wSpecialPhoneCallID]
 	dec a
 	ld c, a
 	ld b, 0
@@ -69072,7 +69283,7 @@
 	ret
 
 Function90188: ; 90188
-	ld a, [wd19a]
+	ld a, [wPermission]
 	cp $1
 	jr z, .asm_90195
 	cp $2
@@ -69091,7 +69302,7 @@
 	ld a, [InLinkBattle]
 	and a
 	jr nz, .asm_901e7
-	call Function2d05
+	call GetMapHeaderPhoneServiceNybble
 	and a
 	jr nz, .asm_901e7
 	ld a, b
@@ -69134,7 +69345,7 @@
 .asm_901e7
 	ld b, BANK(UnknownScript_0x90209)
 	ld de, UnknownScript_0x90209
-	call Function2674
+	call ExecuteCallbackScript
 	ret
 
 .asm_901f0
@@ -69146,7 +69357,7 @@
 	ld [wd004], a
 	ld b, BANK(UnknownScript_0x90205)
 	ld de, UnknownScript_0x90205
-	call Function2674
+	call ExecuteCallbackScript
 	ret
 ; 90205 (24:4205)
 
@@ -69199,7 +69410,7 @@
 	callasm Function9026f
 	ptcall wd048
 	closetext
-	callasm Function902eb
+	callasm HangUp
 	loadmovesprites
 	callasm Function113e5
 	end
@@ -69234,16 +69445,16 @@
 ; 9027c
 
 Function9027c: ; 9027c (24:427c)
-	call Function9033f
-	call Function90357
-	call Function90292
-	call Function90357
-	call Function90375
-	call Function90357
-	call Function90292
+	call Phone_StartRinging
+	call Phone_Wait20Frames
+	call Phone_CallerTextboxWithName
+	call Phone_Wait20Frames
+	call Phone_CallerTextbox
+	call Phone_Wait20Frames
+	call Phone_CallerTextboxWithName
 	ret
 
-Function90292: ; 90292 (24:4292)
+Phone_CallerTextboxWithName: ; 90292 (24:4292)
 	ld a, [wdbf9]
 	ld b, a
 	call Function90363
@@ -69250,41 +69461,42 @@
 	ret
 
 
-Function9029a:: ; 9029a
+PhoneCall:: ; 9029a
 	ld a, b
-	ld [DefaultFlypoint], a
+	ld [PhoneScriptBank], a
 	ld a, e
-	ld [wd003], a
+	ld [PhoneCallerLo], a
 	ld a, d
-	ld [wd004], a
-	call Function902b3
-	call Function902b3
+	ld [PhoneCallerHi], a
+	call Phone_FirstOfTwoRings
+	call Phone_FirstOfTwoRings
 	callba Function1060d3
 	ret
 ; 902b3
 
-Function902b3: ; 902b3
-	call Function9033f
-	call Function90357
-	call Function902c9
-	call Function90357
-	call Function90375
-	call Function90357
-	call Function902c9
+Phone_FirstOfTwoRings: ; 902b3
+	call Phone_StartRinging
+	call Phone_Wait20Frames
+	call Phone_CallerTextboxWithName2
+	call Phone_Wait20Frames
+	call Phone_CallerTextbox
+	call Phone_Wait20Frames
+	call Phone_CallerTextboxWithName2
 	ret
 ; 902c9
 
-Function902c9: ; 902c9
-	call Function90375
+Phone_CallerTextboxWithName2: ; 902c9
+	call Phone_CallerTextbox
 	hlcoord 1, 2
 	ld [hl], $62
+rept 2
 	inc hl
-	inc hl
-	ld a, [wd002]
+endr
+	ld a, [PhoneScriptBank]
 	ld b, a
-	ld a, [wd003]
+	ld a, [PhoneCallerLo]
 	ld e, a
-	ld a, [wd004]
+	ld a, [PhoneCallerHi]
 	ld d, a
 	call Function90069
 	ret
@@ -69291,27 +69503,27 @@
 ; 902e3
 
 
-Function902e3: ; 902e3 (24:42e3)
+Phone_NoSignal: ; 902e3 (24:42e3)
 	ld de, SFX_NO_SIGNAL
 	call PlaySFX
-	jr Function902f1
+	jr Phone_CallEnd
 
-Function902eb:: ; 902eb
-	call Function9031d
-	call Function90355
-Function902f1:
-	call Function9032f
-	call Function90355
-	call Function9033b
-	call Function90355
-	call Function9032f
-	call Function90355
-	call Function9033b
-	call Function90355
-	call Function9032f
-	call Function90355
-	call Function9033b
-	call Function90355
+HangUp:: ; 902eb
+	call HangUp_Beep
+	call HangUp_Wait20Frames
+Phone_CallEnd:
+	call HangUp_BoopOn
+	call HangUp_Wait20Frames
+	call HangUp_BoopOff
+	call HangUp_Wait20Frames
+	call HangUp_BoopOn
+	call HangUp_Wait20Frames
+	call HangUp_BoopOff
+	call HangUp_Wait20Frames
+	call HangUp_BoopOn
+	call HangUp_Wait20Frames
+	call HangUp_BoopOff
+	call HangUp_Wait20Frames
 	ret
 ; 90316
 
@@ -69321,7 +69533,7 @@
 	ret
 ; 9031d
 
-Function9031d: ; 9031d
+HangUp_Beep: ; 9031d
 	ld hl, UnknownText_0x9032a
 	call PrintText
 	ld de, SFX_HANG_UP
@@ -69335,7 +69547,7 @@
 ; 9032f
 
 
-Function9032f: ; 9032f
+HangUp_BoopOn: ; 9032f
 	ld hl, UnknownText_0x90336
 	call PrintText
 	ret
@@ -69347,25 +69559,25 @@
 ; 0x9033b
 
 
-Function9033b: ; 9033b
+HangUp_BoopOff: ; 9033b
 	call SpeechTextBox
 	ret
 ; 9033f
 
-Function9033f: ; 9033f
+Phone_StartRinging: ; 9033f
 	call WaitSFX
 	ld de, SFX_CALL
 	call PlaySFX
-	call Function90375
-	call Function1ad2
+	call Phone_CallerTextbox
+	call DrawOnMap
 	callba Function4d188
 	ret
 ; 90355
 
-Function90355: ; 90355
-	jr Function90357
+HangUp_Wait20Frames: ; 90355
+	jr Phone_Wait20Frames
 
-Function90357
+Phone_Wait20Frames
 	ld c, 20
 	call DelayFrames
 	callba Function4d188
@@ -69375,11 +69587,12 @@
 
 Function90363: ; 90363 (24:4363)
 	push bc
-	call Function90375
+	call Phone_CallerTextbox
 	hlcoord 1, 1
 	ld [hl], $62
+rept 2
 	inc hl
-	inc hl
+endr
 	ld d, h
 	ld e, l
 	pop bc
@@ -69387,8 +69600,8 @@
 	ret
 
 
-Function90375: ; 90375
-	ld hl, TileMap
+Phone_CallerTextbox: ; 90375
+	hlcoord 0, 0
 	ld b, $2
 	ld c, $12
 	call TextBox
@@ -69454,8 +69667,9 @@
 	ld c, b
 	ld b, 0
 	ld hl, Unknown_903d6
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld e, a
 	ld d, [hl]
@@ -69483,7 +69697,7 @@
 Function90423: ; 90423 (24:4423)
 	push hl
 	push bc
-	callba Function3994c
+	callba GetTrainerName
 	pop bc
 	pop hl
 	ret
@@ -69748,7 +69962,7 @@
 Function90783: ; 90783 (24:4783)
 	xor a
 	ld [hBGMapMode], a ; $ff00+$d4
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $168
 	xor a
 	call ByteFill
@@ -69828,8 +70042,9 @@
 	push hl
 	call Function907de
 	pop de
+rept 2
 	inc de
-	inc de
+endr
 	ld a, $9c
 	ld [de], a
 	inc de
@@ -69843,9 +70058,9 @@
 	ld [hl], a
 	pop hl
 	call Function90859
+rept 3
 	inc hl
-	inc hl
-	inc hl
+endr
 	ret
 ; 90810
 
@@ -70031,7 +70246,7 @@
 INCBIN "gfx/unknown/09090b.2bpp"
 ; 90913
 
-Function90913: ; 90913
+Special_SetDayOfWeek: ; 90913
 	ld a, [$ffaa]
 	push af
 	ld a, $1
@@ -70070,8 +70285,8 @@
 	call Functiona57
 	call Function90993
 	jr nc, .asm_9096a
-	call Function1c07
-	call Function1ad2
+	call ExitMenu
+	call DrawOnMap
 	ld hl, UnknownText_0x90a44
 	call PrintText
 	call YesNoBox
@@ -70147,8 +70362,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Unknown_909f2
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld d, [hl]
 	ld e, a
@@ -70625,7 +70841,7 @@
 Function90da8: ; 90da8 (24:4da8)
 	xor a
 	ld [hBGMapMode], a
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, TileMapEnd - TileMap
 	ld a, $4f
 	call ByteFill
@@ -70767,7 +70983,7 @@
 	hlcoord 17, 2
 	inc a
 	ld [hli], a
-	call Function2d05
+	call GetMapHeaderPhoneServiceNybble
 	and a
 	ret nz
 	hlcoord 18, 2
@@ -70775,7 +70991,7 @@
 	ret
 
 Function90eb0: ; 90eb0 (24:4eb0)
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $8
 	ld a, $4f
 	call ByteFill
@@ -70793,7 +71009,7 @@
 	ld a, [de]
 	bit 1, a
 	call nz, Function90ef2
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld a, $46
 	call Function90ef7
 	ret
@@ -70829,8 +71045,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_90f13
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -71303,7 +71520,7 @@
 	ret
 
 Function911eb: ; 911eb (24:51eb)
-	call Function2d05
+	call GetMapHeaderPhoneServiceNybble
 	and a
 	jr nz, .asm_91234
 	ld hl, Options
@@ -71334,7 +71551,7 @@
 	inc [hl]
 	ret
 .asm_91234
-	callba Function902e3
+	callba Phone_NoSignal
 	ld hl, OutOfServiceAreaText
 	call PrintText
 	ld a, $8
@@ -71360,7 +71577,7 @@
 	ld a, [hJoyPressed] ; $ff00+$a7
 	and $3
 	ret z
-	callba Function902eb
+	callba HangUp
 	ld a, $8
 	ld [wcf63], a
 	ld hl, UnknownText_0x914ce
@@ -71434,7 +71651,7 @@
 	hlcoord 1, 10
 	ld [hl], a
 	hlcoord 1, 4
-	ld a, [wc6d1] 
+	ld a, [wc6d1]
 	ld bc, $28
 	call AddNTimes
 	ld [hl], "▶"
@@ -71450,23 +71667,24 @@
 	ld [hli], a
 	dec c
 	jr nz, .asm_912e1
+rept 2
 	inc hl
-	inc hl
+endr
 	dec b
 	jr nz, .asm_912df
-	ld a, [wc6d2] 
+	ld a, [wc6d2]
 	ld e, a
 	ld d, $0
 	ld hl, wdc7c
 	add hl, de
 	xor a
-	ld [wc6d0], a 
+	ld [wc6d0], a
 .asm_912f8
 	ld a, [hli]
 	push hl
 	push af
 	hlcoord 2, 4
-	ld a, [wc6d0] 
+	ld a, [wc6d0]
 	ld bc, $28
 	call AddNTimes
 	ld d, h
@@ -71475,9 +71693,9 @@
 	ld b, a
 	call Function90380
 	pop hl
-	ld a, [wc6d0] 
+	ld a, [wc6d0]
 	inc a
-	ld [wc6d0], a 
+	ld [wc6d0], a
 	cp $4
 	jr c, .asm_912f8
 	call Function912b7
@@ -71512,11 +71730,11 @@
 
 Function91342: ; 91342 (24:5342)
 	ld hl, wdc7c
-	ld a, [wc6d2] 
+	ld a, [wc6d2]
 	ld e, a
 	ld d, 0
 	add hl, de
-	ld a, [wc6d1] 
+	ld a, [wc6d1]
 	ld e, a
 	ld d, 0
 	add hl, de
@@ -71561,7 +71779,7 @@
 	call PlaceString
 	pop de
 	xor a
-	ld [wc6d4], a 
+	ld [wc6d4], a
 	call Function9141d
 	call WaitBGMap
 
@@ -71594,11 +71812,11 @@
 .asm_913c1
 	ld hl, 2
 	add hl, de
-	ld a, [wc6d4] 
+	ld a, [wc6d4]
 	inc a
 	cp [hl]
 	jr nc, .asm_91398
-	ld [wc6d4], a 
+	ld [wc6d4], a
 	call Function9141d
 	jr .asm_91398
 
@@ -71613,11 +71831,12 @@
 	and B_BUTTON
 	jr nz, Function913f1
 
-	ld a, [wc6d4] 
+	ld a, [wc6d4]
 	ld e, a
 	ld d, 0
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -71632,9 +71851,9 @@
 
 Function913f9: ; 913f9
 	ld hl, UnknownText_0x914d8
-	call Function1d4f
+	call MenuTextBox
 	call YesNoBox
-	call Function1c07
+	call ExitMenu
 	jr c, .asm_91419
 	call Function9131e
 	xor a
@@ -71763,7 +71982,7 @@
 	ret
 
 Function914bb: ; 914bb (24:54bb)
-	ld hl, TileMap
+	hlcoord 0, 0
 .asm_914be
 	ld a, [de]
 	cp $ff
@@ -71842,8 +72061,9 @@
 	ld a, [hl]
 	and a
 	ret z
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	jr .update
 
 .up
@@ -71851,8 +72071,9 @@
 	ld a, [hl]
 	cp 80
 	ret nc
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 
 .update
 
@@ -71866,8 +72087,9 @@
 	jr z, .asm_91682
 	cp d
 	jr z, .asm_91686
+rept 2
 	inc hl
-	inc hl
+endr
 	jr .asm_91676
 
 .asm_91682
@@ -71882,7 +72104,7 @@
 	push de
 	jp [hl]
 .asm_9168e
-	ld a, [wc6d9] 
+	ld a, [wc6d9]
 	and a
 	ret z
 	xor a
@@ -71895,9 +72117,9 @@
 ; 916a1 (24:56a1)
 
 Function916a1: ; 916a1
-	ld [wc6d9], a 
+	ld [wc6d9], a
 	ld a, [hli]
-	ld [wc6da], a 
+	ld [wc6da], a
 	ld a, [hli]
 	ld [wc6db], a
 	ret
@@ -72024,8 +72246,8 @@
 
 Function91753: ; 91753 (24:5753)
 	xor a ; OAKS_POKEMON_TALK
-	ld [wd002], a 
-	ld [wd005], a 
+	ld [wd002], a
+	ld [wd005], a
 	ld a, BANK(PlayRadioShow)
 	ld hl, PlayRadioShow
 	call Function9187c
@@ -72034,9 +72256,9 @@
 
 Function91766: ; 91766 (24:5766)
 	ld a, POKEDEX_SHOW
-	ld [wd002], a 
+	ld [wd002], a
 	xor a
-	ld [wd005], a 
+	ld [wd005], a
 	ld a, BANK(PlayRadioShow)
 	ld hl, PlayRadioShow
 	call Function9187c
@@ -72045,9 +72267,9 @@
 
 Function9177b: ; 9177b (24:577b)
 	ld a, POKEMON_MUSIC
-	ld [wd002], a 
+	ld [wd002], a
 	xor a
-	ld [wd005], a 
+	ld [wd005], a
 	ld a, BANK(PlayRadioShow)
 	ld hl, PlayRadioShow
 	call Function9187c
@@ -72056,9 +72278,9 @@
 
 Function91790: ; 91790 (24:5790)
 	ld a, LUCKY_CHANNEL
-	ld [wd002], a 
+	ld [wd002], a
 	xor a
-	ld [wd005], a 
+	ld [wd005], a
 	ld a, BANK(PlayRadioShow)
 	ld hl, PlayRadioShow
 	call Function9187c
@@ -72067,9 +72289,9 @@
 
 Function917a5: ; 917a5 (24:57a5)
 	ld a, BUENAS_PASSWORD
-	ld [wd002], a 
+	ld [wd002], a
 	xor a
-	ld [wd005], a 
+	ld [wd005], a
 	ld a, BANK(PlayRadioShow)
 	ld hl, PlayRadioShow
 	call Function9187c
@@ -72086,9 +72308,9 @@
 
 Function917d5: ; 917d5 (24:57d5)
 	ld a, UNOWN_RADIO
-	ld [wd002], a 
+	ld [wd002], a
 	xor a
-	ld [wd005], a 
+	ld [wd005], a
 	ld a, BANK(PlayRadioShow)
 	ld hl, PlayRadioShow
 	call Function9187c
@@ -72097,9 +72319,9 @@
 
 Function917ea: ; 917ea (24:57ea)
 	ld a, PLACES_AND_PEOPLE
-	ld [wd002], a 
+	ld [wd002], a
 	xor a
-	ld [wd005], a 
+	ld [wd005], a
 	ld a, BANK(PlayRadioShow)
 	ld hl, PlayRadioShow
 	call Function9187c
@@ -72108,9 +72330,9 @@
 
 Function917ff: ; 917ff (24:57ff)
 	ld a, LETS_ALL_SING
-	ld [wd002], a 
+	ld [wd002], a
 	xor a
-	ld [wd005], a 
+	ld [wd005], a
 	ld a, BANK(PlayRadioShow)
 	ld hl, PlayRadioShow
 	call Function9187c
@@ -72120,9 +72342,9 @@
 
 Function91814: ; 91814
 	ld a, ROCKET_RADIO
-	ld [wd002], a 
+	ld [wd002], a
 	xor a
-	ld [wd005], a 
+	ld [wd005], a
 	ld a, BANK(PlayRadioShow)
 	ld hl, PlayRadioShow
 	call Function9187c
@@ -72132,9 +72354,9 @@
 
 Function91829: ; 91829 (24:5829)
 	ld a, POKE_FLUTE_RADIO
-	ld [wd002], a 
+	ld [wd002], a
 	xor a
-	ld [wd005], a 
+	ld [wd005], a
 	ld a, BANK(PlayRadioShow)
 	ld hl, PlayRadioShow
 	call Function9187c
@@ -72143,9 +72365,9 @@
 
 Function9183e: ; 9183e (24:583e)
 	ld a, EVOLUTION_RADIO
-	ld [wd002], a 
+	ld [wd002], a
 	xor a
-	ld [wd005], a 
+	ld [wd005], a
 	ld a, BANK(PlayRadioShow)
 	ld hl, PlayRadioShow
 	call Function9187c
@@ -72159,7 +72381,7 @@
 Function91854: ; 91854 (24:5854)
 	push de
 	ld a, e
-	ld [wc6dc], a 
+	ld [wc6dc], a
 	ld de, MUSIC_NONE
 	call PlayMusic
 	pop de
@@ -72171,7 +72393,7 @@
 Function91868: ; 91868 (24:5868)
 	push de
 	ld a, $fe
-	ld [wc6dc], a 
+	ld [wc6dc], a
 	ld de, MUSIC_NONE
 	call PlayMusic
 	pop de
@@ -72180,9 +72402,9 @@
 	ret
 
 Function9187c: ; 9187c (24:587c)
-	ld [wc6d9], a 
+	ld [wc6d9], a
 	ld a, l
-	ld [wc6da], a 
+	ld [wc6da], a
 	ld a, h
 	ld [wc6db], a
 	ret
@@ -72191,8 +72413,8 @@
 	call NoRadioMusic
 	call NoRadioName
 	xor a
-	ld [wc6d9], a 
-	ld [wc6da], a 
+	ld [wc6d9], a
+	ld [wc6da], a
 	ld [wc6db], a
 	ld a, $1
 	ld [hBGMapMode], a ; $ff00+$d4
@@ -72202,7 +72424,7 @@
 	ld de, MUSIC_NONE
 	call PlayMusic
 	ld a, $ff
-	ld [wc6dc], a 
+	ld [wc6dc], a
 	ret
 
 NoRadioName: ; 918a9 (24:58a9)
@@ -72375,7 +72597,7 @@
 	ld bc, $0006
 	hlcoord 1, 0
 	call ByteFill
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld [hl], $6
 	hlcoord 7, 0
 	ld [hl], $17
@@ -72395,19 +72617,19 @@
 	ret
 ; 91a53
 
-Function91a53: ; 91a53
+PlayRadio: ; 91a53
 	ld hl, Options
 	ld a, [hl]
 	push af
 	set 4, [hl]
-	call Function91a87
+	call .PlayStation
 	ld c, 100
 	call DelayFrames
-.asm_91a62
+.loop
 	call Functiona57
 	ld a, [hJoyPressed]
 	and A_BUTTON | B_BUTTON
-	jr nz, .asm_91a7f
+	jr nz, .stop
 	ld a, [wc6da]
 	ld l, a
 	ld a, [wc6db]
@@ -72414,14 +72636,14 @@
 	ld h, a
 	ld a, [wc6d9]
 	and a
-	jr z, .asm_91a7a
+	jr z, .zero
 	rst FarCall
 
-.asm_91a7a
+.zero
 	call DelayFrame
-	jr .asm_91a62
+	jr .loop
 
-.asm_91a7f
+.stop
 	pop af
 	ld [Options], a
 	call Function91492
@@ -72428,13 +72650,14 @@
 	ret
 ; 91a87
 
-Function91a87: ; 91a87
-	ld a, $ff
+.PlayStation: ; 91a87
+	ld a, -1
 	ld [EnemyTurnsTaken], a
-	ld hl, Jumptable_91ab9
+	ld hl, .StationPointers
 	ld d, $0
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -72459,7 +72682,7 @@
 	ret
 ; 91ab9
 
-Jumptable_91ab9: ; 91ab9
+.StationPointers: ; 91ab9
 	dw Function91acb
 	dw Function91753
 	dw Function91766
@@ -72474,7 +72697,7 @@
 Function91acb: ; 91acb
 	call IsInJohto
 	and a
-	jr nz, .asm_91ade
+	jr nz, .kanto
 	call UpdateTime
 	ld a, [TimeOfDay]
 	and a
@@ -72481,7 +72704,7 @@
 	jp z, Function91766
 	jp Function91753
 
-.asm_91ade
+.kanto
 	jp Function917ea
 ; 91ae1
 
@@ -72488,12 +72711,12 @@
 Function91ae1: ; 91ae1
 	ld a, e
 	and a
-	jr nz, .asm_91aec
+	jr nz, .kanto
 	call Function91ff2
 	call FillJohtoMap
 	ret
 
-.asm_91aec
+.kanto
 	call Function91ff2
 	call FillKantoMap
 	ret
@@ -72500,7 +72723,7 @@
 ; 91af3
 
 
-Function91af3: ; 91af3
+_FlyMap: ; 91af3
 	call WhiteBGMap
 	call ClearTileMap
 	call ClearSprites
@@ -72521,26 +72744,26 @@
 	ld b, $2
 	call GetSGBLayout
 	call Function32f9
-.asm_91b29
+.loop
 	call Functiona57
 	ld hl, hJoyPressed
 	ld a, [hl]
-	and $2
-	jr nz, .asm_91b4a
+	and B_BUTTON
+	jr nz, .pressedB
 	ld a, [hl]
-	and $1
-	jr nz, .asm_91b4e
+	and A_BUTTON
+	jr nz, .pressedA
 	call Function91b73
 	call Function91c17
 	callba Function8cf69
 	call DelayFrame
-	jr .asm_91b29
+	jr .loop
 
-.asm_91b4a
-	ld a, $ff
-	jr .asm_91b5a
+.pressedB
+	ld a, -1
+	jr .exit
 
-.asm_91b4e
+.pressedA
 	ld a, [DefaultFlypoint]
 	ld l, a
 	ld h, 0
@@ -72549,7 +72772,7 @@
 	add hl, de
 	ld a, [hl]
 
-.asm_91b5a
+.exit
 	ld [DefaultFlypoint], a
 	pop af
 	ld [$ffaa], a
@@ -72618,57 +72841,57 @@
 
 TownMapBubble: ; 91bb5
 ; Draw the bubble containing the location text in the town map HUD
-	
+
 ; Top-left corner
-	ld hl, TileMap + 1 ; (1,0)
+	hlcoord 1, 0
 	ld a, $30
 	ld [hli], a
-	
+
 ; Top row
 	ld bc, 16
 	ld a, " "
 	call ByteFill
-	
+
 ; Top-right corner
 	ld a, $31
 	ld [hl], a
-	ld hl, TileMap + 1 + 20 ; (1,1)
-	
-	
+	hlcoord 1, 1
+
+
 ; Middle row
 	ld bc, 18
 	ld a, " "
 	call ByteFill
-	
-	
+
+
 ; Bottom-left corner
-	ld hl, TileMap + 1 + 40 ; (1,2)
+	hlcoord 1, 2
 	ld a, $32
 	ld [hli], a
-	
+
 ; Bottom row
 	ld bc, 16
 	ld a, " "
 	call ByteFill
-	
+
 ; Bottom-right corner
 	ld a, $33
 	ld [hl], a
-	
-	
+
+
 ; Print "Where?"
-	ld hl, TileMap + 2 ; (2,0)
+	hlcoord 2, 0
 	ld de, .Where
 	call PlaceString
-	
+
 ; Print the name of the default flypoint
 	call .Name
-	
+
 ; Up/down arrows
-	ld hl, TileMap + 18 + 20 ; (18,1)
+	hlcoord 18, 1
 	ld [hl], $34	
 	ret
-	
+
 .Where
 	db "Where?@"
 
@@ -72681,10 +72904,10 @@
 	ld de, Flypoints
 	add hl, de
 	ld e, [hl]
-	
+
 	callba GetLandmarkName
-	
-	ld hl, TileMap + 2 + 20 ; (2,1)
+
+	hlcoord 2, 1
 	ld de, StringBuffer1
 	call PlaceString
 	ret
@@ -72790,45 +73013,45 @@
 ; 91c90
 
 FlyMap: ; 91c90
-	
+
 	ld a, [MapGroup]
 	ld b, a
 	ld a, [MapNumber]
 	ld c, a
 	call GetWorldMapLocation
-	
+
 ; If we're not in a valid location, i.e. Pokecenter floor 2F,
 ; the backup map information is used
-	
+
 	cp SPECIAL_MAP
 	jr nz, .CheckRegion
-	
+
 	ld a, [BackupMapGroup]
 	ld b, a
 	ld a, [BackupMapNumber]
 	ld c, a
 	call GetWorldMapLocation
-	
+
 .CheckRegion
 ; The first 46 locations are part of Johto. The rest are in Kanto
 	cp KANTO_LANDMARK
 	jr nc, .KantoFlyMap
-	
+
 .JohtoFlyMap
 ; Note that .NoKanto should be modified in tandem with this branch
-	
+
 	push af
-	
+
 ; Start from New Bark Town
 	ld a, FLY_NEW_BARK
 	ld [DefaultFlypoint], a
-	
+
 ; Flypoints begin at New Bark Town...
 	ld [StartFlypoint], a
 ; ..and end at Silver Cave
 	ld a, FLY_MT_SILVER
 	ld [EndFlypoint], a
-	
+
 ; Fill out the map
 	call FillJohtoMap
 	call .MapHud
@@ -72835,27 +73058,27 @@
 	pop af
 	call TownMapPlayerIcon
 	ret
-	
+
 .KantoFlyMap
-	
+
 ; The event that there are no flypoints enabled in a map is not
 ; accounted for. As a result, if you attempt to select a flypoint
 ; when there are none enabled, the game will crash. Additionally,
 ; the flypoint selection has a default starting point that
 ; can be flown to even if none are enabled
-	
+
 ; To prevent both of these things from happening when the player
 ; enters Kanto, fly access is restricted until Indigo Plateau is
 ; visited and its flypoint enabled
-	
+
 	push af
 	ld c, SPAWN_INDIGO
 	call HasVisitedSpawn
 	and a
 	jr z, .NoKanto
-	
+
 ; Kanto's map is only loaded if we've visited Indigo Plateau
-	
+
 ; Flypoints begin at Pallet Town...
 	ld a, FLY_PALLET
 	ld [StartFlypoint], a
@@ -72862,11 +73085,11 @@
 ; ...and end at Indigo Plateau
 	ld a, FLY_INDIGO
 	ld [EndFlypoint], a
-	
+
 ; Because Indigo Plateau is the first flypoint the player
 ; visits, it's made the default flypoint
 	ld [DefaultFlypoint], a
-	
+
 ; Fill out the map
 	call FillKantoMap
 	call .MapHud
@@ -72873,31 +73096,31 @@
 	pop af
 	call TownMapPlayerIcon
 	ret
-	
+
 .NoKanto
 ; If Indigo Plateau hasn't been visited, we use Johto's map instead
-	
+
 ; Start from New Bark Town
 	ld a, FLY_NEW_BARK
 	ld [DefaultFlypoint], a
-	
+
 ; Flypoints begin at New Bark Town...
 	ld [StartFlypoint], a
 ; ..and end at Silver Cave
 	ld a, FLY_MT_SILVER
 	ld [EndFlypoint], a
-	
+
 	call FillJohtoMap
-	
+
 	pop af
-	
+
 .MapHud
 	call TownMapBubble
 	call TownMapPals
-	
+
 	ld hl, VBGMap0 ; BG Map 0
 	call TownMapBGUpdate
-	
+
 	call TownMapMon
 	ld a, c
 	ld [wd003], a
@@ -73020,7 +73243,7 @@
 	ret
 
 .asm_91ddc
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld de, Sprites
 	ld bc, $00a0
 	call CopyBytes
@@ -73028,14 +73251,14 @@
 ; 91de9
 
 Function91de9: ; 91de9
-	ld hl, TileMap
-	ld bc, $0014
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH
 	ld a, $7f
 	call ByteFill
 	hlcoord 0, 1
 	ld a, $6
 	ld [hli], a
-	ld bc, $0012
+	ld bc, SCREEN_HEIGHT
 	ld a, $7
 	call ByteFill
 	ld [hl], $17
@@ -73057,7 +73280,7 @@
 	ld [wd003], a
 	ld e, a
 	callba Function2a01f
-	ld de, TileMap
+	decoord 0, 0
 	ld hl, Sprites
 .asm_91e2e
 	ld a, [de]
@@ -73084,7 +73307,7 @@
 
 .asm_91e4d
 	ld hl, Sprites
-	ld de, TileMap
+	decoord 0, 0
 	ld bc, $00a0
 	call CopyBytes
 	ret
@@ -73201,25 +73424,25 @@
 	ld [hBGMapAddress], a
 	ld a, h
 	ld [$ffd7], a
-	
+
 ; Only update palettes on CGB
 	ld a, [hCGB]
 	and a
 	jr z, .tiles
-	
+
 ; BG Map mode 2 (palettes)
 	ld a, 2
 	ld [hBGMapMode], a
-	
+
 ; The BG Map is updated in thirds, so we wait
 ; 3 frames to update the whole screen's palettes.
 	ld c, 3
 	call DelayFrames
-	
+
 .tiles
 ; Update BG Map tiles
 	call WaitBGMap
-	
+
 ; Turn off BG Map update
 	xor a
 	ld [hBGMapMode], a
@@ -73229,12 +73452,12 @@
 FillJohtoMap: ; 91eff
 	ld de, JohtoMap
 	jr FillTownMap
-	
+
 FillKantoMap: ; 91f04
 	ld de, KantoMap
-	
+
 FillTownMap: ; 91f07
-	ld hl, TileMap
+	hlcoord 0, 0
 .loop
 	ld a, [de]
 	cp $ff
@@ -73248,24 +73471,24 @@
 TownMapPals: ; 91f13
 ; Assign palettes based on tile ids
 
-	ld hl, TileMap
-	ld de, AttrMap
+	hlcoord 0, 0
+	decoord 0, 0, AttrMap
 	ld bc, 360
 .loop
 ; Current tile
 	ld a, [hli]
 	push hl
-	
+
 ; HP/borders use palette 0
 	cp $60
 	jr nc, .pal0
-	
+
 ; The palette data is condensed to nybbles,
 ; least-significant first.
 	ld hl, TownMapPalMap
 	srl a
 	jr c, .odd
-	
+
 ; Even-numbered tile ids take the bottom nybble...
 	add l
 	ld l, a
@@ -73275,7 +73498,7 @@
 	ld a, [hl]
 	and %111
 	jr .update
-	
+
 .odd
 ; ...and odd ids take the top.
 	add l
@@ -73287,10 +73510,10 @@
 	swap a
 	and %111
 	jr .update
-	
+
 .pal0
 	xor a
-	
+
 .update
 	pop hl
 	ld [de], a
@@ -73309,7 +73532,7 @@
 ; 91f7b
 
 TownMapMon: ; 91f7b
-; Draw the FlyMon icon at town map location in 
+; Draw the FlyMon icon at town map location in
 
 ; Get FlyMon species
 	ld a, [CurPartyMon]
@@ -73319,16 +73542,16 @@
 	add hl, de
 	ld a, [hl]
 	ld [wd265], a
-	
+
 ; Get FlyMon icon
 	ld e, 8 ; starting tile in VRAM
 	callba GetSpeciesIcon
-	
+
 ; Animation/palette
 	ld de, $0000
 	ld a, $0
 	call Function3b2a
-	
+
 	ld hl, 3
 	add hl, bc
 	ld [hl], 8
@@ -73341,14 +73564,14 @@
 TownMapPlayerIcon: ; 91fa6
 ; Draw the player icon at town map location in a
 	push af
-	
+
 	callba GetPlayerIcon
-	
+
 ; Standing icon
 	ld hl, $8100
 	ld c, 4 ; # tiles
 	call Request2bpp
-	
+
 ; Walking icon
 	ld hl, $00c0
 	add hl, de
@@ -73358,7 +73581,7 @@
 	ld c, 4 ; # tiles
 	ld a, BANK(ChrisSpriteGFX) ; does nothing
 	call Request2bpp
-	
+
 ; Animation/palette
 	ld de, $0000
 	ld b, $0a ; Male
@@ -73369,17 +73592,17 @@
 .asm_91fd3
 	ld a, b
 	call Function3b2a
-	
+
 	ld hl, $0003
 	add hl, bc
 	ld [hl], $10
-	
+
 	pop af
 	ld e, a
 	push bc
 	callba GetLandmarkCoords
 	pop bc
-	
+
 	ld hl, 4
 	add hl, bc
 	ld [hl], e
@@ -73553,7 +73776,7 @@
 INCLUDE "data/wild/fish.asm"
 
 
-Function926c7:
+_SlotMachine:
 	ld hl, Options
 	set 4, [hl]
 	call Function926f7
@@ -73605,7 +73828,7 @@
 	ld de, $9250
 	call Decompress
 	ld hl, SlotsTilemap
-	ld de, TileMap
+	decoord 0, 0
 	ld bc, 20 * 12
 	call CopyBytes
 	ld hl, rLCDC ; $ff40
@@ -73736,9 +73959,9 @@
 	ld a, [hl]
 	xor $20
 	ld [hli], a
+rept 3
 	inc hl
-	inc hl
-	inc hl
+endr
 	dec c
 	jr nz, .asm_92839
 	ret
@@ -73749,8 +73972,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_92853
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -74225,9 +74449,9 @@
 	ld a, [hl]
 	add d
 	ld [hli], a
+rept 3
 	inc hl
-	inc hl
-	inc hl
+endr
 	dec e
 	jr nz, .asm_92b49
 	ret
@@ -74287,8 +74511,9 @@
 	add $8
 	ld [hli], a
 	ld a, [de]
+rept 2
 	inc a
-	inc a
+endr
 	ld [hli], a
 	srl a
 	srl a
@@ -74327,8 +74552,9 @@
 	ld e, [hl]
 	ld d, 0
 	ld hl, Jumptable_92be4
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -74706,8 +74932,9 @@
 	ld [hl], $0
 	ld hl, $0000
 	add hl, bc
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	ld a, $1
 	ld [wcf64], a
 	ret
@@ -74827,8 +75054,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_92ebd
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -74929,8 +75157,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_92f48
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -75185,8 +75414,8 @@
 	call PrintText
 	ld hl, MenuDataHeader_0x930d6
 	call LoadMenuDataHeader
-	call Function1d81
-	call Function1c17
+	call InterpretMenu2
+	call WriteBackup
 	ret c
 	ld a, [wcfa9]
 	ld b, a
@@ -75268,12 +75497,12 @@
 .asm_930fd
 	ld hl, UnknownText_9311f
 	call PrintText
-	call Function1d58
+	call LoadMenuTextBox
 	lb bc, 14, 12
 	call PlaceYesNoBox
 	ld a, [wcfa9]
 	dec a
-	call Function1c17
+	call WriteBackup
 	and a
 	jr nz, .asm_93118
 	and a
@@ -75337,9 +75566,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Unknown_93195
+rept 3
 	add hl, de
-	add hl, de
-	add hl, de
+endr
 	ld de, StringBuffer2
 	ld bc, $4
 	call CopyBytes
@@ -75388,10 +75617,9 @@
 	hlcoord 18, 17
 	ld [hl], $ee
 	ld hl, UnknownText_0x931db
+rept 4
 	inc bc
-	inc bc
-	inc bc
-	inc bc
+endr
 	ret
 ; 931db
 
@@ -75450,8 +75678,9 @@
 	ld e, [hl]
 	ld d, 0
 	ld hl, Jumptable_9322d
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -75519,8 +75748,9 @@
 	ld hl, $6
 	add hl, bc
 	ld a, [hl]
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	cp $48
 	jr nc, .asm_932a3
 	and $3
@@ -75547,8 +75777,9 @@
 	ld e, [hl]
 	ld d, 0
 	ld hl, Jumptable_932bc
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -75694,7 +75925,7 @@
 
 SECTION "bank2E", ROMX, BANK[$2E]
 
-Functionb8000:: ; b8000
+ReturnFromMapSetupScript:: ; b8000
 	xor a
 	ld [hBGMapMode], a
 	callba Functionb800a
@@ -75830,7 +76061,7 @@
 ; b80d3
 
 Functionb80d3: ; b80d3
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld b, $2
 	ld c, $12
 	call Functionb8115
@@ -75859,15 +76090,15 @@
 	ld c, $0
 	push hl
 	ld hl, StringBuffer1
-.asm_b8107
+.loop
 	ld a, [hli]
 	cp $50
-	jr z, .asm_b8113
+	jr z, .stop
 	cp $25
-	jr z, .asm_b8107
+	jr z, .loop
 	inc c
-	jr .asm_b8107
-.asm_b8113
+	jr .loop
+.stop
 	pop hl
 	ret
 
@@ -75875,118 +76106,133 @@
 Functionb8115: ; b8115
 	ld de, AttrMap - TileMap
 	add hl, de
+rept 2
 	inc b
-	inc b
+endr
+rept 2
 	inc c
-	inc c
+endr
 	ld a, $87
-.asm_b811f
+.loop
 	push bc
 	push hl
-.asm_b8121
+.inner_loop
 	ld [hli], a
 	dec c
-	jr nz, .asm_b8121
+	jr nz, .inner_loop
 	pop hl
-	ld de, $0014
+	ld de, SCREEN_WIDTH
 	add hl, de
 	pop bc
 	dec b
-	jr nz, .asm_b811f
+	jr nz, .loop
 	ret
 ; b812f
 
 Functionb812f: ; b812f
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld a, $61
 	ld [hli], a
 	ld a, $62
-	call Functionb8164
+	call .Fill5Words
 	ld a, $64
 	ld [hli], a
 	ld a, $65
 	ld [hli], a
-	call Functionb815b
+	call .Fill18Bytes
 	ld a, $6b
 	ld [hli], a
 	ld a, $66
 	ld [hli], a
-	call Functionb815b
+	call .Fill18Bytes
 	ld a, $6c
 	ld [hli], a
 	ld a, $67
 	ld [hli], a
 	ld a, $68
-	call Functionb8164
+	call .Fill5Words
 	ld a, $6a
 	ld [hl], a
 	ret
 ; b815b
 
-Functionb815b: ; b815b
-	ld c, $12
+.Fill18Bytes: ; b815b
+	ld c, 18
 	ld a, $6d
-.asm_b815f
+.loop
 	ld [hli], a
 	dec c
-	jr nz, .asm_b815f
+	jr nz, .loop
 	ret
 ; b8164
 
-Functionb8164: ; b8164
-	ld c, $5
-	jr .asm_b816a
+.Fill5Words: ; b8164
+	ld c, 5
+	jr .enterloop
 
-.asm_b8168
+.continueloop
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 
-.asm_b816a
+.enterloop
 	inc a
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	dec a
 	dec c
-	jr nz, .asm_b8168
+	jr nz, .continueloop
 	ret
 ; b8172
 
-Functionb8172: ; b8172
+CheckForSignpostItems: ; b8172
+; Checks to see if there are hidden items on the screen that have not yet been found.  If it finds one, returns carry.
 	call GetMapScriptHeaderBank
 	ld [Buffer1], a
+; Get the coordinate of the bottom right corner of the screen, and load it in wd1ec/wd1ed.
 	ld a, [XCoord]
-	add $5
+	add SCREEN_WIDTH / 4
 	ld [wd1ed], a
 	ld a, [YCoord]
-	add $4
+	add SCREEN_HEIGHT / 4
 	ld [wd1ec], a
+; Get the pointer for the first signpost header in the map...
 	ld hl, wdc02
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
-	ld a, [wdc01]
+; ... before even checking to see if there are any signposts on this map.
+	ld a, [wCurrentMapSignpostCount]
 	and a
-	jr z, .asm_b81dd
-.asm_b8194
+	jr z, .nosignpostitems
+; For i = 1:wCurrentMapSignpostCount...
+.loop
+; Store the counter in Buffer2, and store the signpost header pointer in the stack.
 	ld [Buffer2], a
 	push hl
-	call Functionb81e2
+; Get the Y coordinate of the signpost.
+	call .GetFarByte
 	ld e, a
+; Is the Y coordinate of the signpost on the screen?  If not, go to the next signpost.
 	ld a, [wd1ec]
 	sub e
-	jr c, .asm_b81d2
-	cp $9
-	jr nc, .asm_b81d2
-	call Functionb81e2
+	jr c, .next
+	cp SCREEN_HEIGHT / 2
+	jr nc, .next
+; Is the X coordinate of the signpost on the screen?  If not, go to the next signpost.
+	call .GetFarByte
 	ld d, a
 	ld a, [wd1ed]
 	sub d
-	jr c, .asm_b81d2
-	cp $a
-	jr nc, .asm_b81d2
-	call Functionb81e2
-	cp $7
-	jr nz, .asm_b81d2
+	jr c, .next
+	cp SCREEN_WIDTH / 2
+	jr nc, .next
+; Is this signpost a hidden item?  If not, go to the next signpost.
+	call .GetFarByte
+	cp SIGNPOST_ITEM
+	jr nz, .next
+; Has this item already been found?  If not, set off the Itemfinder.
 	ld a, [Buffer1]
 	call GetFarHalfword
 	ld a, [Buffer1]
@@ -75993,31 +76239,33 @@
 	call GetFarHalfword
 	ld d, h
 	ld e, l
-	ld b, $2
+	ld b, CHECK_FLAG
 	call EventFlagAction
 	ld a, c
 	and a
-	jr z, .asm_b81df
+	jr z, .itemnearby
 
-.asm_b81d2
+.next
+; Restore the signpost header pointer and increment it by the length of a signpost header.
 	pop hl
-	ld bc, $0005
+	ld bc, 5
 	add hl, bc
+; Restore the signpost counter and decrement it.  If it hits zero, there are no hidden items in range.
 	ld a, [Buffer2]
 	dec a
-	jr nz, .asm_b8194
+	jr nz, .loop
 
-.asm_b81dd
+.nosignpostitems
 	xor a
 	ret
 
-.asm_b81df
+.itemnearby
 	pop hl
 	scf
 	ret
 ; b81e2
 
-Functionb81e2: ; b81e2
+.GetFarByte: ; b81e2
 	ld a, [Buffer1]
 	call GetFarByte
 	inc hl
@@ -76184,8 +76432,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, TreeMons
+rept 2
 	add hl, de
-	add hl, de
+endr
 
 	ld a, [hli]
 	ld h, [hl]
@@ -76370,9 +76619,9 @@
 .loop
 	sub [hl]
 	jr c, .ok
+rept 3
 	inc hl
-	inc hl
-	inc hl
+endr
 	jr .loop
 
 .ok
@@ -76524,2112 +76773,8 @@
 INCBIN "gfx/unknown/0b8582.2bpp"
 ; b8612
 
+INCLUDE "engine/radio.asm"
 
-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, Jumptable_b863a
-	add hl, de
-	add hl, de
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	jp [hl]
-
-Jumptable_b863a: ; b863a (2e:463a)
-	dw Functionb8742
-	dw Functionb8a46
-	dw Functionb8b35
-	dw Functionb8bdc
-	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
-
-Functionb8742: ; b8742 (2e:4742)
-	ld a, $5
-	ld [wd006], a
-	call Functionb91eb
-	ld hl, UnknownText_0xb8820
-	ld a, $b
-	jp Functionb9221
-
-Functionb8752: ; b8752 (2e:4752)
-	ld hl, UnknownText_0xb8825
-	ld a, $c
-	jp Functionb9221
-
-Functionb875a: ; b875a (2e:475a)
-	ld hl, UnknownText_0xb882a
-	ld a, $d
-	jp Functionb9221
-
-Functionb8762: ; b8762 (2e:4762)
-	call Random
-	and $1f
-	cp $f
-	jr nc, Functionb8762
-	ld hl, Unknown_b87f2
-	ld c, a
-	ld b, 0
-	add hl, bc
-	add hl, bc
-	ld b, [hl]
-	inc hl
-	ld c, [hl]
-	push bc
-
-	ld hl, WildMons1
-.loop
-	ld a, BANK(WildMons1)
-	call GetFarByte
-	cp $ff
-	jr z, .asm_b87ec
-	inc hl
-	cp b
-	jr nz, .next
-	ld a, BANK(WildMons1)
-	call GetFarByte
-	cp c
-	jr z, .asm_b8796
-.next
-	dec hl
-	ld de, $2f
-	add hl, de
-	jr .loop
-
-.asm_b8796
-	inc hl
-	inc hl
-	inc hl
-	inc hl
-
-.not3
-	call Random
-	and 3
-	cp 3
-	jr z, .not3
-
-	ld bc, $e
-	call AddNTimes
-.asm_b87a9
-	call Random
-	and 7
-	cp 2
-	jr c, .asm_b87a9
-	cp 5
-	jr nc, .asm_b87a9
-	ld e, a
-	ld d, 0
-	add hl, de
-	add hl, de
-	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
-
-.asm_b87ec
-	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 Functionb9221
-
-Functionb8818: ; b8818 (2e:4818)
-	ld hl, UnknownText_0xb8839
-	ld a, $10
-	jp Functionb9221
-; 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 Functionb9221
-; 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
-	add hl, de
-	add hl, de
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld a, $12
-	jp Functionb9221
-; 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
-	add hl, de
-	add hl, de
-	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 Functionb9221
-; 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
-
-Functionb8a46: ; 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 Functionb9221
-
-Functionb8a6c: ; b8a6c (2e:4a6c)
-	ld a, [CurPartySpecies]
-	dec a
-	ld hl, PokedexDataPointerTable
-	ld c, a
-	ld b, 0
-	add hl, bc
-	add hl, bc
-	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
-	inc hl
-	inc hl
-	inc hl
-	inc hl
-	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
-
-Functionb8b35: ; b8b35 (2e:4b35)
-	call Functionb8b90
-	ld hl, UnknownText_0xb8baa
-	ld a, $17
-	jp Functionb9221
-
-Functionb8b40: ; b8b40 (2e:4b40)
-	ld hl, UnknownText_0xb8baf
-	ld a, $18
-	jp Functionb9221
-
-Functionb8b48: ; b8b48 (2e:4b48)
-	ld hl, UnknownText_0xb8bb4
-	ld a, $19
-	jp Functionb9221
-
-Functionb8b50: ; b8b50 (2e:4b50)
-	call Functionb8b90
-	ld hl, UnknownText_0xb8bb9
-	ld a, $1d
-	jp Functionb9221
-
-Functionb8b5b: ; b8b5b (2e:4b5b)
-	ld hl, UnknownText_0xb8bbe
-	ld a, $19
-	jp Functionb9221
-
-Functionb8b63: ; b8b63 (2e:4b63)
-	ld hl, UnknownText_0xb8bc3
-	ld a, $1a
-	jp Functionb9221
-
-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 Functionb9221
-
-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 Functionb9221
-
-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
-
-Functionb8bdc: ; b8bdc (2e:4bdc)
-	call Functionb91eb
-	callab Functionc434
-	jr nc, .asm_b8bed
-	callab Functionc422
-.asm_b8bed
-	ld hl, UnknownText_0xb8c7e
-	ld a, $1e
-	jp Functionb9221
-
-Functionb8bf5: ; b8bf5 (2e:4bf5)
-	ld hl, UnknownText_0xb8c83
-	ld a, $1f
-	jp Functionb9221
-
-Functionb8bfd: ; b8bfd (2e:4bfd)
-	ld hl, UnknownText_0xb8c88
-	ld a, $20
-	jp Functionb9221
-
-Functionb8c05: ; b8c05 (2e:4c05)
-	ld hl, UnknownText_0xb8c8d
-	ld a, $21
-	jp Functionb9221
-
-Functionb8c0d: ; b8c0d (2e:4c0d)
-	ld hl, UnknownText_0xb8c92
-	ld a, $22
-	jp Functionb9221
-
-Functionb8c15: ; b8c15 (2e:4c15)
-	ld hl, UnknownText_0xb8c97
-	ld a, $23
-	jp Functionb9221
-
-Functionb8c1d: ; b8c1d (2e:4c1d)
-	ld hl, UnknownText_0xb8c9c
-	ld a, $24
-	jp Functionb9221
-
-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 Functionb9221
-
-Functionb8c3e: ; b8c3e (2e:4c3e)
-	ld hl, UnknownText_0xb8ca6
-	ld a, $26
-	jp Functionb9221
-
-Functionb8c46: ; b8c46 (2e:4c46)
-	ld hl, UnknownText_0xb8c9c
-	ld a, $27
-	jp Functionb9221
-
-Functionb8c4e: ; b8c4e (2e:4c4e)
-	ld hl, UnknownText_0xb8ca1
-	ld a, $28
-	jp Functionb9221
-
-Functionb8c56: ; b8c56 (2e:4c56)
-	ld hl, UnknownText_0xb8cab
-	ld a, $29
-	jp Functionb9221
-
-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 Functionb9221
-
-Functionb8c6e: ; b8c6e (2e:4c6e)
-	ld hl, UnknownText_0xb8cb5
-	ld a, $2b
-	jp Functionb9221
-
-Functionb8c76: ; b8c76 (2e:4c76)
-	ld hl, UnknownText_0xb8cba
-	ld a, $3
-	jp Functionb9221
-; 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 Functionb9221
-
-Functionb8cca: ; b8cca (2e:4cca)
-	ld hl, UnknownText_0xb8ce8
-	ld a, $2d
-	jp Functionb9221
-
-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 Functionb9221
-; 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, .asm_b8d14
-	ld hl, Unknown_b8d43
-	ld a, [KantoBadges]
-	cp %11111111
-	jr nz, .asm_b8d14
-	ld hl, Unknown_b8d4b
-.asm_b8d14
-	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 Function3994c
-	ld hl, UnknownText_0xb8d51
-	ld a, $2f
-	jp Functionb9221
-; 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
-	add hl, de
-	add hl, de
-	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 Functionb9221
-; 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
-	add hl, bc
-	add hl, bc
-	ld b, [hl]
-	inc hl
-	ld c, [hl]
-	call GetWorldMapLocation
-	ld e, a
-	callba GetLandmarkName
-	ld hl, UnknownText_0xb8e23
-	ld a, $31
-	jp Functionb9221
-; 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
-	add hl, de
-	add hl, de
-	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 Functionb9221
-
-Functionb8e7d: ; b8e7d (2e:4e7d)
-	ld hl, UnknownText_0xb8eca
-	ld a, $33
-	jp Functionb9221
-
-Functionb8e85: ; b8e85 (2e:4e85)
-	ld hl, UnknownText_0xb8ecf
-	ld a, $34
-	jp Functionb9221
-
-Functionb8e8d: ; b8e8d (2e:4e8d)
-	ld hl, UnknownText_0xb8ed4
-	ld a, $35
-	jp Functionb9221
-
-Functionb8e95: ; b8e95 (2e:4e95)
-	ld hl, UnknownText_0xb8ed9
-	ld a, $36
-	jp Functionb9221
-
-Functionb8e9d: ; b8e9d (2e:4e9d)
-	ld hl, UnknownText_0xb8ede
-	ld a, $37
-	jp Functionb9221
-
-Functionb8ea5: ; b8ea5 (2e:4ea5)
-	ld hl, UnknownText_0xb8ee3
-	ld a, $38
-	jp Functionb9221
-
-Functionb8ead: ; b8ead (2e:4ead)
-	ld hl, UnknownText_0xb8ee8
-	ld a, $39
-	jp Functionb9221
-
-Functionb8eb5: ; b8eb5 (2e:4eb5)
-	ld hl, UnknownText_0xb8eed
-	ld a, $3a
-	jp Functionb9221
-
-Functionb8ebd: ; b8ebd (2e:4ebd)
-	ld hl, UnknownText_0xb8ef2
-	ld a, $7
-	jp Functionb9221
-; 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 Functionb9221
-
-Functionb8f3f: ; b8f3f (2e:4f3f)
-	ld hl, UnknownText_0xb9187
-	ld a, $41
-	jp Functionb9221
-
-Functionb8f47: ; b8f47 (2e:4f47)
-	call Functionb9169
-	ld hl, UnknownText_0xb918c
-	jp c, Functionb90b9
-	ld a, $42
-	jp Functionb9221
-
-Functionb8f55: ; b8f55 (2e:4f55)
-	call Functionb9169
-	jp c, Functionb90c5
-	ld a, [wdc4a]
-	ld hl, wdc1f
-	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, wdc1f
-	set 7, [hl]
-.asm_b8f83
-	ld c, a
-	call Functionb8f8f
-	ld hl, UnknownText_0xb9191
-	ld a, $43
-	jp Functionb9221
-
-Functionb8f8f: ; b8f8f
-	ld a, c
-	swap a
-	and $f
-	ld hl, Unknown_b8ff9
-	ld d, 0
-	ld e, a
-	add hl, de
-	add hl, de
-	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
-	add hl, de
-	add hl, de
-	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 Functionb9221
-
-Functionb90a4: ; b90a4 (2e:50a4)
-	ld hl, UnknownText_0xb919b
-	ld a, $45
-	jp Functionb9221
-
-Functionb90ac: ; b90ac (2e:50ac)
-	call Functionb9169
-	ld hl, UnknownText_0xb91a0
-	jr c, Functionb90b9
-	ld a, $4
-	jp Functionb9221
-
-Functionb90b9: ; b90b9 (2e:50b9)
-	push hl
-	ld hl, wdc1f
-	res 7, [hl]
-	pop hl
-	ld a, $46
-	jp Functionb9221
-
-Functionb90c5: ; b90c5 (2e:50c5)
-	ld hl, wdc1f
-	res 7, [hl]
-	ld hl, UnknownText_0xb91d2
-	ld a, $47
-	jp Functionb9221
-
-Functionb90d2: ; b90d2 (2e:50d2)
-	ld hl, UnknownText_0xb91a5
-	ld a, $48
-	jp Functionb9221
-
-Functionb90da: ; b90da (2e:50da)
-	ld hl, UnknownText_0xb91aa
-	ld a, $49
-	jp Functionb9221
-
-Functionb90e2: ; b90e2 (2e:50e2)
-	ld hl, UnknownText_0xb91af
-	ld a, $4a
-	jp Functionb9221
-
-Functionb90ea: ; b90ea (2e:50ea)
-	ld hl, UnknownText_0xb91b4
-	ld a, $4b
-	jp Functionb9221
-
-Functionb90f2: ; b90f2 (2e:50f2)
-	ld hl, UnknownText_0xb91b9
-	ld a, $4c
-	jp Functionb9221
-
-Functionb90fa: ; b90fa (2e:50fa)
-	ld hl, UnknownText_0xb91be
-	ld a, $4d
-	jp Functionb9221
-
-Functionb9102: ; b9102 (2e:5102)
-	ld hl, UnknownText_0xb91c3
-	ld a, $4e
-	jp Functionb9221
-
-Functionb910a: ; b910a (2e:510a)
-	ld hl, UnknownText_0xb91c8
-	ld a, $4f
-	jp Functionb9221
-
-Functionb9112: ; b9112 (2e:5112)
-	ld hl, UnknownText_0xb91cd
-	ld a, $50
-	jp Functionb9221
-
-Functionb911a: ; b911a (2e:511a)
-	ld hl, UnknownText_0xb91d2
-	ld a, $51
-	jp Functionb9221
-
-Functionb9122: ; b9122 (2e:5122)
-	ld hl, UnknownText_0xb91d2
-	ld a, $52
-	jp Functionb9221
-
-Functionb912a: ; b912a (2e:512a)
-	ld a, [hBGMapMode] ; $ff00+$d4
-	push af
-	callba NoRadioMusic
-	callba NoRadioName
-	pop af
-	ld [hBGMapMode], a ; $ff00+$d4
-	ld hl, wdc1f
-	res 7, [hl]
-	ld a, $4
-	ld [wd002], a
-	xor a
-	ld [wd005], a
-	ld hl, UnknownText_0xb91d7
-	ld a, $53
-	jp Functionb9221
-
-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 Functionb9221
-
-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, Function3a90
-	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
-	add hl, bc
-	add hl, bc
-	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
-
-Functionb9221: ; b9221 (2e:5221)
-	push af
-	call Functionb91dc
-	pop af
-	jp Functionb86ea
-
 Functionb9229: ; b9229
 	ld a, [CurPartyMon]
 	ld hl, $a600
@@ -78724,8 +76869,9 @@
 	cp $ff
 	jr z, .asm_b92e6
 	inc c
+rept 2
 	inc hl
-	inc hl
+endr
 	jr .asm_b92d9
 
 .asm_b92e6
@@ -78873,7 +77019,7 @@
 	ld c, $8
 	call Functionb9915
 	ld a, $31
-	ld hl, TileMap
+	hlcoord 0, 0
 	call Functionb98a8
 	hlcoord 1, 17
 	call Functionb98a8
@@ -79062,7 +77208,7 @@
 	ld c, $8
 	call Functionb990c
 	ld a, $31
-	ld hl, TileMap
+	hlcoord 0, 0
 	call Functionb98dc
 	hlcoord 0, 1
 	call Functionb98e3
@@ -79224,7 +77370,7 @@
 	ld c, $8
 	call Functionb990c
 	ld a, $31
-	ld hl, TileMap
+	hlcoord 0, 0
 	call Functionb98a8
 	hlcoord 1, 17
 	call Functionb98a8
@@ -79364,7 +77510,7 @@
 ; b9858
 
 Functionb9858: ; b9858
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld a, $31
 	ld [hli], a
 	inc a
@@ -79386,7 +77532,7 @@
 ; b987b
 
 Functionb987b: ; b987b
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld a, $31
 	ld [hli], a
 	inc a
@@ -79443,7 +77589,7 @@
 
 Functionb98bd: ; b98bd
 	ld [hl], a
-	ld de, $0014
+	ld de, SCREEN_WIDTH
 	add hl, de
 	inc a
 	ld [hl], a
@@ -79484,7 +77630,7 @@
 
 Functionb98e3: ; b98e3
 	ld b, $10
-	ld de, $0014
+	ld de, SCREEN_WIDTH
 .asm_b98e8
 	ld [hl], a
 	add hl, de
@@ -79514,7 +77660,7 @@
 	ld [hli], a
 	inc a
 	ld [hl], a
-	ld bc, $0012
+	ld bc, SCREEN_HEIGHT
 	add hl, bc
 	inc a
 	ld [hli], a
@@ -79553,8 +77699,9 @@
 .asm_b991e
 	ld a, [de]
 	inc de
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	dec c
 	jr nz, .asm_b991e
 	ret
@@ -79998,8 +78145,9 @@
 	call Functione0057
 	ld hl, Unknown_e008b
 	pop bc
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld e, a
 	ld d, [hl]
@@ -80100,7 +78248,7 @@
 	ret
 ; e00ee (38:40ee)
 
-Functione00ee: ; e00ee (38:40ee)
+_CardFlip: ; e00ee (38:40ee)
 	ld hl, Options
 	set 4, [hl]
 	call WhiteBGMap
@@ -80146,13 +78294,13 @@
 	ld [wcf65], a
 	ld de, MUSIC_GAME_CORNER
 	call PlayMusic
-.asm_e0170
+.MasterLoop
 	ld a, [wcf63]
 	bit 7, a
-	jr nz, .asm_e017c
-	call Functione0191
-	jr .asm_e0170
-.asm_e017c
+	jr nz, .leavethegame
+	call .CardFlip
+	jr .MasterLoop
+.leavethegame
 	call WaitSFX
 	ld de, SFX_QUIT_SLOTS
 	call PlaySFX
@@ -80162,13 +78310,14 @@
 	res 4, [hl]
 	ret
 
-Functione0191: ; e0191 (38:4191)
+.CardFlip: ; e0191 (38:4191)
 	ld a, [wcf63]
 	ld e, a
 	ld d, 0
-	ld hl, Jumptable_e01a0
+	ld hl, .Jumptable
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -80175,45 +78324,45 @@
 	jp [hl]
 ; e01a0 (38:41a0)
 
-Jumptable_e01a0: ; e01a0
-	dw Functione01b5
-	dw Functione01d2
-	dw Functione0217
-	dw Functione02b7
-	dw Functione02da
-	dw Functione0314
-	dw Functione031e
-	dw Functione0360
+.Jumptable: ; e01a0
+	dw .AskPlayWithThree
+	dw .DeductCoins
+	dw .ChooseACard
+	dw .PlaceYourBet
+	dw .CheckTheCard
+	dw .TabulateTheResult
+	dw .PlayAgain
+	dw .Quit
 ; e01b0
 
-Functione01b0: ; e01b0
+.Increment: ; e01b0
 	ld hl, wcf63
 	inc [hl]
 	ret
 ; e01b5
 
-Functione01b5: ; e01b5
-	ld hl, UnknownText_0xe01cd
+.AskPlayWithThree: ; e01b5
+	ld hl, .PlayWithThreeCoinsText
 	call Functione0489
 	call YesNoBox
-	jr c, .asm_e01c7
+	jr c, .SaidNo
 	call Functione0366
-	call Functione01b0
+	call .Increment
 	ret
 
-.asm_e01c7
+.SaidNo
 	ld a, $7
 	ld [wcf63], a
 	ret
 ; e01cd
 
-UnknownText_0xe01cd: ; 0xe01cd
+.PlayWithThreeCoinsText: ; 0xe01cd
 	; Play with three coins?
 	text_jump UnknownText_0x1c5793
 	db "@"
 ; 0xe01d2
 
-Functione01d2: ; e01d2
+.DeductCoins: ; e01d2
 	ld a, [Coins]
 	ld h, a
 	ld a, [Coins + 1]
@@ -80220,17 +78369,17 @@
 	ld l, a
 	ld a, h
 	and a
-	jr nz, .asm_e01ef
+	jr nz, .deduct ; You have at least 256 coins.
 	ld a, l
 	cp 3
-	jr nc, .asm_e01ef
-	ld hl, UnknownText_0xe0212
+	jr nc, .deduct ; You have at least 3 coins.
+	ld hl, .NotEnoughCoinsText
 	call Functione0489
 	ld a, $7
 	ld [wcf63], a
 	ret
 
-.asm_e01ef
+.deduct
 	ld de, -3
 	add hl, de
 	ld a, h
@@ -80245,24 +78394,24 @@
 	ld a, $1
 	ld [hBGMapMode], a
 	call WaitSFX
-	call Functione01b0
+	call .Increment
 	ret
 ; e0212
 
-UnknownText_0xe0212: ; 0xe0212
+.NotEnoughCoinsText: ; 0xe0212
 	; Not enough coins…
 	text_jump UnknownText_0x1c57ab
 	db "@"
 ; 0xe0217
 
-Functione0217: ; e0217
+.ChooseACard: ; e0217
 	xor a
 	ld [hBGMapMode], a
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $0c09
 	call Functione04e5
 	hlcoord 9, 0
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	ld a, [wc6e8]
 	call AddNTimes
 	ld [hl], $f5
@@ -80279,15 +78428,15 @@
 	hlcoord 2, 6
 	call Functione03c1
 	call WaitBGMap
-	ld hl, UnknownText_0xe02b2
+	ld hl, .ChooseACardText
 	call Functione0489
 	xor a
 	ld [wcf66], a
-.asm_e025c
+.loop
 	call Functiona57
 	ld a, [$ffa9]
 	and $1
-	jr nz, .asm_e027c
+	jr nz, .next
 	ld de, SFX_KINESIS
 	call PlaySFX
 	call Functione0849
@@ -80297,13 +78446,13 @@
 	ld a, [hl]
 	xor $1
 	ld [hl], a
-	jr .asm_e025c
+	jr .loop
 
-.asm_e027c
+.next
 	ld de, SFX_SLOT_MACHINE_START
 	call PlaySFX
 	ld a, $3
-.asm_e0284
+.loop2
 	push af
 	call Functione0849
 	ld c, $4
@@ -80313,7 +78462,7 @@
 	call DelayFrames
 	pop af
 	dec a
-	jr nz, .asm_e0284
+	jr nz, .loop2
 	ld hl, wcf66
 	ld a, [hl]
 	push af
@@ -80324,41 +78473,41 @@
 	call Functione04e5
 	pop af
 	ld [wcf66], a
-	call Functione01b0
+	call .Increment
 	ret
 ; e02b2
 
-UnknownText_0xe02b2: ; 0xe02b2
+.ChooseACardText: ; 0xe02b2
 	; Choose a card.
 	text_jump UnknownText_0x1c57be
 	db "@"
 ; 0xe02b7
 
-Functione02b7: ; e02b7
-	ld hl, UnknownText_0xe02d5
+.PlaceYourBet: ; e02b7
+	ld hl, .PlaceYourBetText
 	call Functione0489
-.asm_e02bd
+.betloop
 	call Functiona57
 	ld a, [$ffa9]
 	and $1
-	jr nz, .asm_e02d1
+	jr nz, .betdone
 	call Functione089c
 	call Functione0960
 	call DelayFrame
-	jr .asm_e02bd
+	jr .betloop
 
-.asm_e02d1
-	call Functione01b0
+.betdone
+	call .Increment
 	ret
 ; e02d5
 
-UnknownText_0xe02d5: ; 0xe02d5
+.PlaceYourBetText: ; 0xe02d5
 	; Place your bet.
 	text_jump UnknownText_0x1c57ce
 	db "@"
 ; 0xe02da
 
-Functione02da: ; e02da
+.CheckTheCard: ; e02da
 	xor a
 	ld [$ff9b], a
 	call Functione0960
@@ -80370,8 +78519,9 @@
 	ld e, a
 	ld d, $0
 	ld hl, wc6d0
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [wcf66]
 	ld e, a
 	add hl, de
@@ -80384,62 +78534,62 @@
 	call Functione03ac
 	call Functione03ec
 	call Function3200
-	call Functione01b0
+	call .Increment
 	ret
 ; e0314
 
-Functione0314: ; e0314
+.TabulateTheResult: ; e0314
 	call Functione0637
 	call Functiona80
-	call Functione01b0
+	call .Increment
 	ret
 ; e031e
 
-Functione031e: ; e031e
+.PlayAgain: ; e031e
 	call ClearSprites
-	ld hl, UnknownText_0xe0356
+	ld hl, .PlayAgainText
 	call Functione0489
 	call YesNoBox
-	jr nc, .asm_e0330
-	call Functione01b0
+	jr nc, .Continue
+	call .Increment
 	ret
 
-.asm_e0330
+.Continue
 	ld a, [wc6e8]
 	inc a
 	ld [wc6e8], a
 	cp $c
-	jr c, .asm_e034d
+	jr c, .KeepTheCurrentDeck
 	call Functione04c1
 	ld a, $1
 	ld [hBGMapMode], a
 	call Functione0366
-	ld hl, UnknownText_0xe035b
+	ld hl, .CardsShuffledText
 	call PrintText
-	jr .asm_e0350
+	jr .LoopAround
 
-.asm_e034d
+.KeepTheCurrentDeck
 	call Functione0534
 
-.asm_e0350
+.LoopAround
 	ld a, $1
 	ld [wcf63], a
 	ret
 ; e0356
 
-UnknownText_0xe0356: ; 0xe0356
+.PlayAgainText: ; 0xe0356
 	; Want to play again?
 	text_jump UnknownText_0x1c57df
 	db "@"
 ; 0xe035b
 
-UnknownText_0xe035b: ; 0xe035b
+.CardsShuffledText: ; 0xe035b
 	; The cards have been shuffled.
 	text_jump UnknownText_0x1c57f4
 	db "@"
 ; 0xe0360
 
-Functione0360: ; e0360
+.Quit: ; e0360
 	ld hl, wcf63
 	set 7, [hl]
 	ret
@@ -80532,8 +78682,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Unknown_e0459
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld e, a
 	ld d, [hl]
@@ -80541,10 +78692,10 @@
 	ld bc, $0017
 	add hl, bc
 	ld [hl], e
-	ld bc, $0012
+	ld bc, SCREEN_HEIGHT
 	add hl, bc
 	ld a, d
-	ld de, $0014
+	ld de, SCREEN_WIDTH
 	ld b, $3
 .asm_e0418
 	push hl
@@ -80624,7 +78775,7 @@
 Functione04c1: ; e04c1 (38:44c1)
 	xor a
 	ld [hBGMapMode], a ; $ff00+$d4
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $168
 	ld a, $29
 	call ByteFill
@@ -80750,10 +78901,11 @@
 	and a
 	jr nz, .asm_e0575
 	hlcoord 13, 3
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld [hl], $36
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	ld [hl], $37
 	ret
@@ -80760,10 +78912,11 @@
 
 .asm_e0575
 	hlcoord 13, 3
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld [hl], $36
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	ld [hl], $3d
 	ret
@@ -80776,10 +78929,11 @@
 	and a
 	jr nz, .asm_e0599
 	hlcoord 13, 4
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld [hl], $3b
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	ld [hl], $3a
 	ret
@@ -80786,10 +78940,11 @@
 
 .asm_e0599
 	hlcoord 13, 4
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld [hl], $3d
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	ld [hl], $3a
 	ret
@@ -80802,10 +78957,11 @@
 	and a
 	jr nz, .asm_e05bd
 	hlcoord 13, 6
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld [hl], $36
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	ld [hl], $38
 	ret
@@ -80812,10 +78968,11 @@
 
 .asm_e05bd
 	hlcoord 13, 6
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld [hl], $36
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	ld [hl], $3d
 	ret
@@ -80828,10 +78985,11 @@
 	and a
 	jr nz, .asm_e05e1
 	hlcoord 13, 7
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld [hl], $3c
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	ld [hl], $3a
 	ret
@@ -80838,10 +78996,11 @@
 
 .asm_e05e1
 	hlcoord 13, 7
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld [hl], $3d
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	ld [hl], $3a
 	ret
@@ -80854,10 +79013,11 @@
 	and a
 	jr nz, .asm_e0605
 	hlcoord 13, 9
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld [hl], $36
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	ld [hl], $39
 	ret
@@ -80864,10 +79024,11 @@
 
 .asm_e0605
 	hlcoord 13, 9
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld [hl], $36
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	ld [hl], $3d
 	ret
@@ -80880,10 +79041,11 @@
 	and a
 	jr nz, .asm_e0629
 	hlcoord 13, 10
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld [hl], $3c
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	ld [hl], $3a
 	ret
@@ -80890,10 +79052,11 @@
 
 .asm_e0629
 	hlcoord 13, 10
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld [hl], $3d
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	ld [hl], $3a
 	ret
@@ -81346,8 +79509,9 @@
 	ld [hl], a
 	cp $3
 	jr c, .asm_e08e2
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	jp Functione0959
 
 .asm_e08e2
@@ -81375,8 +79539,9 @@
 	ld [hl], a
 	cp $4
 	ret nc
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	jr Functione0959
 
 Functione090a: ; e090a
@@ -81405,8 +79570,9 @@
 	ld [hl], a
 	cp $3
 	jr c, .asm_e0931
+rept 2
 	dec [hl]
-	dec [hl]
+endr
 	jr Functione0959
 
 .asm_e0931
@@ -81434,8 +79600,9 @@
 	ld [hl], a
 	cp $6
 	ret nc
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 
 Functione0959: ; e0959
 	ld de, SFX_POKEBALLS_PLACED_ON_TABLE
@@ -81454,8 +79621,9 @@
 
 .asm_e096d
 	call Functione0398
+rept 2
 	add hl, hl
-	add hl, hl
+endr
 	ld de, Unknown_e0981
 	add hl, de
 	ld a, [hli]
@@ -81674,7 +79842,7 @@
 	ld a, [hCGB] ; $ff00+$e6
 	and a
 	ret z
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, $168
 	xor a
 	call ByteFill
@@ -81811,8 +79979,8 @@
 	ld de, $8ed0
 	call Decompress
 	call Functione17a3
-	ld hl, TileMap
-	ld bc, $0168
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	ld a, $ee
 	call ByteFill
 	hlcoord 4, 3
@@ -81956,8 +80124,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_e12d9
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -82137,7 +80306,7 @@
 ; e13ee
 
 Functione13ee: ; e13ee
-	ld de, $0014
+	ld de, SCREEN_WIDTH
 .asm_e13f1
 	push bc
 	push hl
@@ -82187,7 +80356,7 @@
 	push hl
 	call Functione1481
 	pop hl
-	ld de, $0014
+	ld de, SCREEN_WIDTH
 	ld b, $3
 .asm_e1431
 	ld c, $3
@@ -82216,7 +80385,7 @@
 	call Functione1463
 	ld a, [hl]
 	pop hl
-	ld de, $0014
+	ld de, SCREEN_WIDTH
 	ld b, $3
 .asm_e1456
 	ld c, $3
@@ -82239,12 +80408,12 @@
 	add hl, de
 	ld a, [wcf65]
 	ld e, a
+rept 4
 	add hl, de
+endr
+rept 2
 	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
-	add hl, de
+endr
 	ret
 ; e1475
 
@@ -82545,10 +80714,9 @@
 	ld l, a
 	call Functione16e2
 	pop hl
+rept 4
 	inc hl
-	inc hl
-	inc hl
-	inc hl
+endr
 	pop af
 	dec a
 	jr nz, .asm_e16cc
@@ -82604,8 +80772,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Unknown_e17bd
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -82640,7 +80809,7 @@
 LZ_e1c9b: ; e1c9b
 INCBIN "gfx/unknown/0e1c9b.2bpp.lz"
 
-Functione1e5b: ; e1e5b (38:5e5b)
+_DummyGame: ; e1e5b (38:5e5b)
 	call Functione1e67
 	call DelayFrame
 .asm_e1e61
@@ -82665,7 +80834,7 @@
 	ld hl, wc300
 	ld [hli], a
 	ld [hl], $0
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $168
 	xor a
 	call ByteFill
@@ -82702,8 +80871,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_e1ee1
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -82743,10 +80913,9 @@
 	xor a
 	ld [wc708], a
 	ld hl, wc703
+rept 4
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 	ld [wc709], a
 
@@ -82939,8 +81108,9 @@
 	ld [wc6fd], a
 	ld hl, wc709
 	ld e, [hl]
+rept 2
 	inc [hl]
-	inc [hl]
+endr
 	ld d, $0
 	hlcoord 5, 0
 	add hl, de
@@ -82973,9 +81143,9 @@
 	call Functione2128
 	ld hl, UnknownText_0xe2093
 	pop bc
+rept 3
 	inc bc
-	inc bc
-	inc bc
+endr
 	ret
 ; e2093
 
@@ -83061,9 +81231,9 @@
 	dec a
 	ld l, a
 	ld h, 0
+rept 3
 	add hl, hl
-	add hl, hl
-	add hl, hl
+endr
 	ld de, Unknown_e2110
 	add hl, de
 	ret
@@ -83084,7 +81254,7 @@
 	inc a
 	ld [hld], a
 	inc a
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	ld [hli], a
 	inc a
@@ -83098,7 +81268,7 @@
 	ld a, $1
 	ld [hli], a
 	ld [hld], a
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	ld [hli], a
 	ld [hl], a
@@ -83108,11 +81278,11 @@
 ; e2152
 
 Functione2152: ; e2152
-	ld hl, TileMap
-	ld bc, $0168
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	ld a, $1
 	call ByteFill
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld de, String_e2177
 	call PlaceString
 	hlcoord 15, 0
@@ -83380,10 +81550,10 @@
 
 Functione247d: ; e247d (38:647d)
 	ld hl, BillsPCDepositMenuDataHeader
-	call Function1d3c
+	call CopyMenuDataHeader
 	ld a, [wcfa9]
 	call Function1d4b
-	call Function1d81
+	call InterpretMenu2
 	jp c, BillsPCDepositFuncCancel
 	ld a, [wcfa9]
 	dec a
@@ -83391,8 +81561,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, BillsPCDepositJumptable
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -83424,7 +81595,7 @@
 BillsPCDepositFuncStats: ; e24c8 (38:64c8)
 	call Function1d6e
 	call Functione2f7e
-	call Function1c07
+	call ExitMenu
 	call PCMonInfo
 	call Functione2def
 	ld [CurPartySpecies], a
@@ -83446,7 +81617,7 @@
 	call PlaceYesNoBox
 	ld a, [wcfa9]
 	dec a
-	call Function1c07
+	call ExitMenu
 	and a
 	jr nz, .asm_e252c
 	ld a, [wcb2b]
@@ -83495,7 +81666,7 @@
 ; 0xe2564 (38:6564)
 
 Functione2564: ; e2564
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld b, $4
 	ld c, $8
 	call ClearBox
@@ -83644,10 +81815,10 @@
 
 Functione2675: ; e2675 (38:6675)
 	ld hl, BillsPCWithdrawMenuDataHeader
-	call Function1d3c
+	call CopyMenuDataHeader
 	ld a, [wcfa9]
 	call Function1d4b
-	call Function1d81
+	call InterpretMenu2
 	jp c, BillsPCWithdrawFuncCancel
 	ld a, [wcfa9]
 	dec a
@@ -83655,8 +81826,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, BillsPCWithdrawJumptable
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -83688,7 +81860,7 @@
 BillsPCWithdrawFuncStats: ; e26c0 (38:66c0)
 	call Function1d6e
 	call Functione2f7e
-	call Function1c07
+	call ExitMenu
 	call PCMonInfo
 	call Functione2def
 	ld [CurPartySpecies], a
@@ -83708,7 +81880,7 @@
 	call PlaceYesNoBox
 	ld a, [wcfa9]
 	dec a
-	call Function1c07
+	call ExitMenu
 	and a
 	jr nz, .asm_e2720
 	ld a, [wcb2b]
@@ -83905,10 +82077,10 @@
 
 Functione285d: ; e285d
 	ld hl, MenuDataHeader_0xe28c3
-	call Function1d3c
+	call CopyMenuDataHeader
 	ld a, [wcfa9]
 	call Function1d4b
-	call Function1d81
+	call InterpretMenu2
 	jp c, Functione28bd
 	ld a, [wcfa9]
 	dec a
@@ -83916,8 +82088,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_e2881
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -83947,7 +82120,7 @@
 Functione28a5: ; e28a5
 	call Function1d6e
 	call Functione2f7e
-	call Function1c07
+	call ExitMenu
 	call PCMonInfo
 	call Functione2def
 	ld [CurPartySpecies], a
@@ -84404,9 +82577,9 @@
 	ld e, a
 	ld d, $0
 	ld hl, wc801
+rept 3
 	add hl, de
-	add hl, de
-	add hl, de
+endr
 	ld a, [hl]
 	and a
 	jr z, .asm_e2bc6
@@ -84513,9 +82686,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, OverworldMap
+rept 3
 	add hl, de
-	add hl, de
-	add hl, de
+endr
 	ld e, l
 	ld d, h
 	hlcoord 9, 4
@@ -84529,9 +82702,9 @@
 	ld de, $28
 	add hl, de
 	pop de
+rept 3
 	inc de
-	inc de
-	inc de
+endr
 	pop af
 	dec a
 	jr nz, .asm_e2c53
@@ -84770,9 +82943,9 @@
 	ld e, a
 	ld d, $0
 	ld hl, OverworldMap
+rept 3
 	add hl, de
-	add hl, de
-	add hl, de
+endr
 	ld a, [hl]
 	ret
 
@@ -84885,7 +83058,7 @@
 	dec c
 	jr nz, .asm_e2ed7
 	pop hl
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	pop bc
 	dec b
@@ -85111,7 +83284,7 @@
 	callba Functione039
 	ld a, [CurPartySpecies]
 	call PlayCry
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $f08
 	call ClearBox
 	hlcoord 8, 14
@@ -85165,7 +83338,7 @@
 	callba Functione039
 	ld a, [CurPartySpecies]
 	call PlayCry
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $f08
 	call ClearBox
 	hlcoord 8, 14
@@ -85200,7 +83373,7 @@
 	ret
 
 Functione3180: ; e3180 (38:7180)
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $f08
 	call ClearBox
 	hlcoord 8, 14
@@ -85279,8 +83452,9 @@
 
 .asm_e321d
 	ld hl, Jumptable_e3245
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -85482,9 +83656,9 @@
 	ld c, b
 	ld b, 0
 	ld hl, Unknown_e33a6
+rept 3
 	add hl, bc
-	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld b, a
 	ld a, [hli]
@@ -85523,8 +83697,9 @@
 Functione33df: ; e33df (38:73df)
 	ld e, a
 	ld d, $0
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -85582,7 +83757,7 @@
 	call Functione36cf
 	call Functione379c
 	ld hl, MenuDataHeader_0xe35f1
-	call Function1d3c
+	call CopyMenuDataHeader
 	xor a
 	ld [wd0e4], a
 	hlcoord 0, 4
@@ -85596,13 +83771,13 @@
 	call Functione36f9
 	jr .asm_e35b0
 .asm_e35de
-	call Function1c17
+	call WriteBackup
 	ret
 
 Functione35e2: ; e35e2 (38:75e2)
 	xor a
 	ld [hBGMapMode], a ; $ff00+$d4
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $168
 	ld a, $7f
 	call ByteFill
@@ -85694,9 +83869,9 @@
 	ld c, a
 	ld b, 0
 	ld hl, Unknown_e36a5
+rept 3
 	add hl, bc
-	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld b, a
 	call GetSRAMBank
@@ -85743,7 +83918,7 @@
 ; e36cf
 
 Functione36cf: ; e36cf (38:76cf)
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld b, $2
 	ld c, $12
 	call TextBox
@@ -85765,8 +83940,8 @@
 Functione36f9: ; e36f9 (38:76f9)
 	ld hl, MenuDataHeader_0xe377b
 	call LoadMenuDataHeader
-	call Function1d81
-	call Function1c07
+	call InterpretMenu2
+	call ExitMenu
 	ret c
 	ld a, [wcfa9]
 	cp $1
@@ -85907,7 +84082,7 @@
 	push af
 	ld [hl], $1
 	call WhiteBGMap
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld b, $10
 	ld c, $12
 	call TextBox
@@ -85917,7 +84092,7 @@
 	xor a
 	ld [wcf63], a
 	ld c, $6 ;number of items on the menu minus 1 (for cancel)
-.asm_e41f3 ;this loop will display the settings of each option when the menu is opened
+.asm_e41f3 ;this next will display the settings of each option when the menu is opened
 	push bc
 	xor a
 	ld [$ffa9], a
@@ -85985,8 +84160,9 @@
 	ld e, a ;copy it to de
 	ld d, 0
 	ld hl, .Pointers
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -86042,8 +84218,9 @@
 .NonePressed
 	ld b, 0
 	ld hl, .Strings
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
@@ -86261,8 +84438,9 @@
 .NonePressed
 	ld b, $0
 	ld hl, .Strings
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
@@ -86466,7 +84644,7 @@
 
 Functione455c: ; e455c
 	hlcoord 1, 1
-	ld de, $0014
+	ld de, SCREEN_WIDTH
 	ld c, $10
 .asm_e4564
 	ld [hl], $7f
@@ -86598,8 +84776,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_e467f
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -86696,8 +84875,9 @@
 	ld e, [hl]
 	ld d, 0
 	ld hl, Jumptable_e46fd
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -86793,8 +84973,9 @@
 	ld e, a
 	ld d, $0
 	ld hl, Unknown_e47ac
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [rSVBK] ; $ff00+$70
 	push af
 	ld a, $5
@@ -86839,7 +85020,7 @@
 	RGB 26, 19, 02
 	RGB 26, 19, 00
 ;' e47cc
- 
+
 GameFreakLogo: ; e47cc
 INCBIN "gfx/splash/logo.1bpp"
 ; e48ac
@@ -86908,8 +85089,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, IntroScenes
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -87278,7 +85460,7 @@
 	xor a
 	ld [hLCDStatCustom], a ; $ff00+$c6
 	call ClearSprites
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, $f0
 	ld a, $1
 	call ByteFill
@@ -87436,8 +85618,9 @@
 	ret z
 	cp c
 	jr z, .asm_e4d48
+rept 2
 	inc hl
-	inc hl
+endr
 	jr .asm_e4d3d
 .asm_e4d48
 	ld a, [hli]
@@ -88106,15 +86289,16 @@
 	ret
 
 Functione5223: ; e5223 (39:5223)
+rept 3
 	add a
-	add a
-	add a
+endr
 	ld e, a
 	ld d, $0
 	ld hl, BGPals
 	add hl, de
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [wcf65]
 	and $3f
 	cp $1f
@@ -88140,8 +86324,9 @@
 	pop hl
 	push hl
 	ld hl, Unknown_e5288
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld d, [hl]
 	ld e, a
@@ -88152,8 +86337,9 @@
 	ld [hli], a
 	push hl
 	ld hl, Unknown_e52c8
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld d, [hl]
 	ld e, a
@@ -88164,8 +86350,9 @@
 	ld [hli], a
 	push hl
 	ld hl, Unknown_e5308
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld d, [hl]
 	ld e, a
@@ -88218,9 +86405,9 @@
 .asm_e5353
 	ld a, [wcf65]
 	and $7
+rept 3
 	add a
-	add a
-	add a
+endr
 	ld c, a
 	ld a, [rSVBK] ; $ff00+$70
 	push af
@@ -88268,17 +86455,16 @@
 ; e539d
 
 Functione539d: ; e539d (39:539d)
+rept 3
 	add a
-	add a
-	add a
+endr
 	ld e, a
 	ld d, $0
 	ld hl, BGPals
 	add hl, de
+rept 4
 	inc hl
-	inc hl
-	inc hl
-	inc hl
+endr
 	ld a, [wcf65]
 	add a
 	ld c, a
@@ -88340,7 +86526,7 @@
 	ld a, $6
 	ld [rSVBK], a ; $ff00+$70
 	ld hl, Unkn1Pals
-	ld de, TileMap
+	decoord 0, 0
 	ld b, $12
 .asm_e542a
 	ld c, $14
@@ -88375,7 +86561,7 @@
 	ret
 
 Functione5451: ; e5451 (39:5451)
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $168
 .asm_e5457
 	ld a, [hl]
@@ -88526,8 +86712,9 @@
 .asm_e5548
 	ld hl, LYOverrides + $5f
 	ld a, [hl]
+rept 2
 	inc a
-	inc a
+endr
 	ld bc, $31
 	call ByteFill
 	ld a, [LYOverrides + 0]
@@ -89267,8 +87454,9 @@
 	ld [CurSpecies], a
 	call GetBaseData
 	ld hl, wcbea
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [BaseType1]
 	cp [hl]
 	jr nz, .asm_fb5db
@@ -89359,7 +87547,7 @@
 	pop de
 	inc de
 	pop hl
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	pop bc
 	inc c
@@ -89566,7 +87754,7 @@
 	call LowVolume
 	call WhiteBGMap
 	call ClearTileMap
-	call Function1ad2
+	call DrawOnMap
 	call ClearSprites
 	ld a, [wPokedexStatus]
 	push af
@@ -89584,7 +87772,7 @@
 	pop af
 	ld [wPokedexStatus], a
 	call MaxVolume
-	call Function4b6
+	call FadeToWhite
 	ld a, [hSCX]
 	add $fb
 	ld [hSCX], a
@@ -89611,18 +87799,19 @@
 	ret
 ; fb8f1
 
-Functionfb8f1: ; fb8f1
+ConvertMon_2to1: ; fb8f1
+; Takes the Gen-2 Pokemon number stored in wd265, finds it in the Pokered_MonIndices table, and returns its index in wd265.
 	push bc
 	push hl
 	ld a, [wd265]
 	ld b, a
 	ld c, 0
-	ld hl, Unknown_fb91c
-.asm_fb8fc
+	ld hl, Pokered_MonIndices
+.loop
 	inc c
 	ld a, [hli]
 	cp b
-	jr nz, .asm_fb8fc
+	jr nz, .loop
 	ld a, c
 	ld [wd265], a
 	pop hl
@@ -89630,12 +87819,13 @@
 	ret
 ; fb908
 
-Functionfb908: ; fb908
+ConvertMon_1to2: ; fb908
+; Takes the Gen-1 Pokemon number stored in wd265 and returns the corresponding value from Pokered_MonIndices in wd265.
 	push bc
 	push hl
 	ld a, [wd265]
 	dec a
-	ld hl, Unknown_fb91c
+	ld hl, Pokered_MonIndices
 	ld b, 0
 	ld c, a
 	add hl, bc
@@ -89646,7 +87836,7 @@
 	ret
 ; fb91c
 
-Unknown_fb91c: ; fb91c
+Pokered_MonIndices: ; fb91c
 	db RHYDON
 	db KANGASKHAN
 	db NIDORAN_M
@@ -89938,8 +88128,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, UnownWords
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld e, a
 	ld d, [hl]
@@ -89983,51 +88174,61 @@
 	dw UnownWord26
 ; fba90
 
-UnownWord1:	db $40, $4d, $46, $51, $58, $ff                ; ANGRY
-UnownWord2:	db $41, $44, $40, $51, $ff                     ; BEAR
-UnownWord3:	db $42, $47, $40, $52, $44, $ff                ; CHASE
-UnownWord4:	db $43, $48, $51, $44, $42, $53, $ff           ; DIRECT
-UnownWord5:	db $44, $4d, $46, $40, $46, $44, $ff           ; ENGAGE
-UnownWord6:	db $45, $48, $4d, $43, $ff                     ; FIND
-UnownWord7:	db $46, $48, $55, $44, $ff                     ; GIVE
-UnownWord8:	db $47, $44, $4b, $4f, $ff                     ; HELP
-UnownWord9:	db $48, $4d, $42, $51, $44, $40, $52, $44, $ff ; INCREASE
-UnownWord10:	db $49, $4e, $48, $4d, $ff                     ; JOIN
-UnownWord11:	db $4a, $44, $44, $4f, $ff                     ; KEEP
-UnownWord12:	db $4b, $40, $54, $46, $47, $ff                ; LAUGH
-UnownWord13:	db $4c, $40, $4a, $44, $ff                     ; MAKE
-UnownWord14:	db $4d, $54, $59, $59, $4b, $44, $ff           ; NUZZLE
-UnownWord15:	db $4e, $41, $52, $44, $51, $55, $44, $ff      ; OBSERVE
-UnownWord16:	db $4f, $44, $51, $45, $4e, $51, $4c, $ff      ; PERFORM
-UnownWord17:	db $50, $54, $48, $42, $4a, $44, $4d, $ff      ; QUICKEN
-UnownWord18:	db $51, $44, $40, $52, $52, $54, $51, $44, $ff ; REASSURE
-UnownWord19:	db $52, $44, $40, $51, $42, $47, $ff           ; SEARCH
-UnownWord20:	db $53, $44, $4b, $4b, $ff                     ; TELL
-UnownWord21:	db $54, $4d, $43, $4e, $ff                     ; UNDO
-UnownWord22:	db $55, $40, $4d, $48, $52, $47, $ff           ; VANISH
-UnownWord23:	db $56, $40, $4d, $53, $ff                     ; WANT
-UnownWord24:	db $57, $57, $57, $57, $57, $ff                ; XXXXX
-UnownWord25:	db $58, $48, $44, $4b, $43, $ff                ; YIELD
-UnownWord26:	db $59, $4e, $4e, $4c, $ff                     ; ZOOM
+unownword: macro
+x = 1
+	rept STRLEN(\1)
+	db STRSUB(\1, x, 1) - $40
+x = x + 1
+	endr
+	db -1
+endm
+
+
+UnownWord1:	 unownword "ANGRY"
+UnownWord2:	 unownword "BEAR"
+UnownWord3:	 unownword "CHASE"
+UnownWord4:	 unownword "DIRECT"
+UnownWord5:	 unownword "ENGAGE"
+UnownWord6:	 unownword "FIND"
+UnownWord7:	 unownword "GIVE"
+UnownWord8:	 unownword "HELP"
+UnownWord9:	 unownword "INCREASE"
+UnownWord10: unownword "JOIN"
+UnownWord11: unownword "KEEP"
+UnownWord12: unownword "LAUGH"
+UnownWord13: unownword "MAKE"
+UnownWord14: unownword "NUZZLE"
+UnownWord15: unownword "OBSERVE"
+UnownWord16: unownword "PERFORM"
+UnownWord17: unownword "QUICKEN"
+UnownWord18: unownword "REASSURE"
+UnownWord19: unownword "SEARCH"
+UnownWord20: unownword "TELL"
+UnownWord21: unownword "UNDO"
+UnownWord22: unownword "VANISH"
+UnownWord23: unownword "WANT"
+UnownWord24: unownword "XXXXX"
+UnownWord25: unownword "YIELD"
+UnownWord26: unownword "ZOOM"
 ; fbb32
 
-Functionfbb32: ; fbb32
-	callba Function50000
-	jr c, .asm_fbb9e
+Special_CheckMagikarpLength: ; fbb32
+	callba SelectMonFromParty
+	jr c, .declined
 	ld a, [CurPartySpecies]
 	cp MAGIKARP
-	jr nz, .asm_fbba4
+	jr nz, .not_magikarp
 	ld a, [CurPartyMon]
 	ld hl, PartyMon1Species
 	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	push hl
-	ld bc, $0015
+	ld bc, MON_DVS
 	add hl, bc
 	ld d, h
 	ld e, l
 	pop hl
-	ld bc, $0006
+	ld bc, MON_ID
 	add hl, bc
 	ld b, h
 	ld c, l
@@ -90040,7 +88241,7 @@
 	ld de, wdfe8
 	ld c, $2
 	call StringCmp
-	jr nc, .asm_fbb98
+	jr nc, .not_long_enough
 	ld hl, Buffer1
 	ld de, wdfe8
 	ld a, [hli]
@@ -90057,17 +88258,17 @@
 	ld [ScriptVar], a
 	ret
 
-.asm_fbb98
+.not_long_enough
 	ld a, $2
 	ld [ScriptVar], a
 	ret
 
-.asm_fbb9e
+.declined
 	ld a, $1
 	ld [ScriptVar], a
 	ret
 
-.asm_fbba4
+.not_magikarp
 	xor a
 	ld [ScriptVar], a
 	ret
@@ -90110,7 +88311,7 @@
 
 INCLUDE "battle/magikarp_length.asm"
 
-Functionfbcd2: ; fbcd2
+Special_MagikarpHouseSign: ; fbcd2
 	ld a, [wdfe8]
 	ld [Buffer1], a
 	ld a, [wdfe9]
@@ -90203,8 +88404,9 @@
 	jr z, .ApplyModifier
 
 .NextWeatherType
+rept 2
 	inc de
-	inc de
+endr
 	jr .CheckWeatherType
 
 
@@ -90229,8 +88431,9 @@
 	jr z, .ApplyModifier
 
 .NextWeatherMove
+rept 2
 	inc de
-	inc de
+endr
 	jr .CheckWeatherMove
 
 .ApplyModifier
@@ -90701,8 +88904,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, NPCTrades
+rept 2
 	add hl, de
-	add hl, de
+endr
 	pop de
 	add hl, de
 	ret
@@ -90790,10 +88994,10 @@
 	call Functionfcdf4
 
 	ld hl, StringBuffer1
-.next
+.loop
 	ld a, [hli]
 	cp "@"
-	jr nz, .next
+	jr nz, .loop
 
 	dec hl
 	push hl
@@ -90835,8 +89039,9 @@
 	call AddNTimes
 	ld a, [wcf64]
 	ld c, a
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -91016,12 +89221,12 @@
 	ld a, [wd45c]
 	and a
 	ret nz
-	call Function2d05
+	call GetMapHeaderPhoneServiceNybble
 	and a
 	ret nz
 	xor a
 	ld [wdc18], a
-	call Functionfd044
+	call CheckBalance_MomItem2
 	ret nc
 	call Functionfd0c3
 	ret nc
@@ -91038,23 +89243,23 @@
 ; 0xfd017
 
 Functionfd017: ; fd017
-	call Functionfd0a6
+	call MomBuysItem_DeductFunds
 	call Functionfd0eb
 	ld a, [wdc18]
 	and a
-	jr nz, .asm_fd027
+	jr nz, .ok
 	ld hl, wdc17
 	inc [hl]
-.asm_fd027
-	ld a, $1
+.ok
+	ld a, 1
 	ld [wdbf9], a
 	ld bc, wd03f
-	ld hl, $0
+	ld hl, 0
 	add hl, bc
-	ld [hl], $0
+	ld [hl], 0
 	inc hl
-	ld [hl], $1
-	ld hl, $9
+	ld [hl], 1
+	ld hl, 9
 	add hl, bc
 	ld a, $3f
 	ld [hli], a
@@ -91065,50 +89270,50 @@
 	ret
 ; fd044
 
-Functionfd044: ; fd044
+CheckBalance_MomItem2: ; fd044
 	ld a, [wdc17]
-	cp $a
-	jr nc, .asm_fd065
-	call Functionfd117
+	cp 10
+	jr nc, .nope
+	call GetItemFromMom
 	ld a, [hli]
-	ld [$ffc3], a
+	ld [hMoneyTemp], a
 	ld a, [hli]
 	ld [$ffc4], a
 	ld a, [hli]
 	ld [$ffc5], a
 	ld de, wd851
-	ld bc, $ffc3
-	callba Function1600b
-	jr nc, .asm_fd067
+	ld bc, hMoneyTemp
+	callba CheckMoney
+	jr nc, .have_enough_money
 
-.asm_fd065
-	jr .asm_fd069
+.nope
+	jr .check_have_2300
 
-.asm_fd067
+.have_enough_money
 	scf
 	ret
 
-.asm_fd069
-	ld hl, $ffc3
-	ld [hl], $0
+.check_have_2300
+	ld hl, hMoneyTemp
+	ld [hl], (2300 / $10000) ; $00
 	inc hl
-	ld [hl], $8
+	ld [hl], ((2300 % $10000) / $100) ; $08
 	inc hl
-	ld [hl], $fc
-.asm_fd074
+	ld [hl], (2300 % $100) ; $fc
+.loop
 	ld de, wdc19
 	ld bc, wd851
-	callba Function1600b
-	jr z, .asm_fd08b
-	jr nc, .asm_fd089
+	callba CheckMoney
+	jr z, .exact
+	jr nc, .less_than
 	call Functionfd099
-	jr .asm_fd074
+	jr .loop
 
-.asm_fd089
+.less_than
 	xor a
 	ret
 
-.asm_fd08b
+.exact
 	call Functionfd099
 	ld a, 5
 	call RandomRange
@@ -91120,43 +89325,43 @@
 
 Functionfd099: ; fd099
 	ld de, wdc19
-	ld bc, $ffc3
+	ld bc, hMoneyTemp
 	callba Function16053
 	ret
 ; fd0a6
 
 
-Functionfd0a6: ; fd0a6 (3f:50a6)
-	call Functionfd117
-	ld de, $3
+MomBuysItem_DeductFunds: ; fd0a6 (3f:50a6)
+	call GetItemFromMom
+	ld de, 3
 	add hl, de
 	ld a, [hli]
-	ld [$ffc3], a
+	ld [hMoneyTemp], a
 	ld a, [hli]
 	ld [$ffc4], a
 	ld a, [hli]
 	ld [$ffc5], a
 	ld de, wd851
-	ld bc, $ffc3
-	callba Function15ffa
+	ld bc, hMoneyTemp
+	callba TakeMoney
 	ret
 
 
 Functionfd0c3: ; fd0c3
-	call Functionfd117
-	ld de, $0006
+	call GetItemFromMom
+	ld de, 6
 	add hl, de
 	ld a, [hli]
-	cp $1
-	jr z, .asm_fd0db
+	cp 1
+	jr z, .not_doll
 	ld a, [hl]
 	ld c, a
-	ld b, $1
-	callba Function26ef1
+	ld b, 1
+	callba DecorationFlagAction_c
 	scf
 	ret
 
-.asm_fd0db
+.not_doll
 	ld a, [hl]
 	ld [CurItem], a
 	ld a, $1
@@ -91168,115 +89373,123 @@
 
 
 Functionfd0eb: ; fd0eb (3f:50eb)
-	call Functionfd117
-	ld de, $6
+	call GetItemFromMom
+	ld de, 6 ; field
 	add hl, de
 	ld a, [hli]
-	ld de, UnknownScript_0xfd0fd
-	cp $1
+	ld de, Script_MomBoughtItem
+	cp 1
 	ret z
-	ld de, UnknownScript_0xfd10a
+	ld de, Script_MomBoughtDoll
 	ret
 ; fd0fd (3f:50fd)
 
-UnknownScript_0xfd0fd: ; 0xfd0fd
-	writetext UnknownText_0xfd1b1
-	writetext UnknownText_0xfd1b6
-	writetext UnknownText_0xfd1bb
-	writetext UnknownText_0xfd1c0
+Script_MomBoughtItem: ; 0xfd0fd
+	writetext _MomText_HiHowAreYou
+	writetext _MomText_FoundAnItem
+	writetext _MomText_BoughtWithYourMoney
+	writetext _MomText_ItsInPC
 	end
 ; 0xfd10a
 
-UnknownScript_0xfd10a: ; 0xfd10a
-	writetext UnknownText_0xfd1b1
-	writetext UnknownText_0xfd1c5
-	writetext UnknownText_0xfd1bb
-	writetext UnknownText_0xfd1ca
+Script_MomBoughtDoll: ; 0xfd10a
+	writetext _MomText_HiHowAreYou
+	writetext _MomText_FoundADoll
+	writetext _MomText_BoughtWithYourMoney
+	writetext _MomText_ItsInRoom
 	end
 ; 0xfd117
 
 
-Functionfd117: ; fd117
+GetItemFromMom: ; fd117
 	ld a, [wdc18]
 	and a
-	jr z, .asm_fd123
+	jr z, .zero
 	dec a
-	ld de, Unknown_fd136
-	jr .asm_fd12e
+	ld de, MomItems_1
+	jr .incave
 
-.asm_fd123
+.zero
 	ld a, [wdc17]
-	cp $a
-	jr c, .asm_fd12b
+	cp 10 ; length of MomItems_2
+	jr c, .ok
 	xor a
 
-.asm_fd12b
-	ld de, Unknown_fd15e
+.ok
+	ld de, MomItems_2
 
-.asm_fd12e
+.incave
 	ld l, a
 	ld h, 0
+rept 3 ; multiply hl by 8
 	add hl, hl
-	add hl, hl
-	add hl, hl
+endr
 	add hl, de
 	ret
 ; fd136
 
-Unknown_fd136: ; fd136
-	db $00, $00, $00, $00, $02, $58, $01, SUPER_POTION
-	db $00, $00, $00, $00, $00, $5a, $01, ANTIDOTE
-	db $00, $00, $00, $00, $00, $b4, $01, POKE_BALL
-	db $00, $00, $00, $00, $01, $c2, $01, ESCAPE_ROPE
-	db $00, $00, $00, $00, $01, $f4, $01, GREAT_BALL
+momitem: macro
+; money to trigger, cost, kind, item
+	dt \1
+	dt \2
+	db \3, \4
+ENDM
+
+
+MomItems_1: ; fd136
+	momitem      0,   600, MOM_ITEM, SUPER_POTION
+	momitem      0,    90, MOM_ITEM, ANTIDOTE
+	momitem      0,   180, MOM_ITEM, POKE_BALL
+	momitem      0,   450, MOM_ITEM, ESCAPE_ROPE
+	momitem      0,   500, MOM_ITEM, GREAT_BALL
 ; fd15e
 
-Unknown_fd15e: ; fd15e
-	db $00, $03, $84, $00, $02, $58, $01, SUPER_POTION
-	db $00, $0f, $a0, $00, $01, $0e, $01, REPEL
-	db $00, $1b, $58, $00, $02, $58, $01, SUPER_POTION
-	db $00, $27, $10, $00, $07, $08, $02, $23 ; CHARMANDER_DOLL
-	db $00, $3a, $98, $00, $0b, $b8, $01, MOON_STONE
-	db $00, $4a, $38, $00, $02, $58, $01, SUPER_POTION
-	db $00, $75, $30, $00, $12, $c0, $02, $20 ; CLEFAIRY_DOLL
-	db $00, $9c, $40, $00, $03, $84, $01, HYPER_POTION
-	db $00, $c3, $50, $00, $1f, $40, $02, $1e ; PIKACHU_DOLL
-	db $01, $86, $a0, $00, $59, $10, $02, $1a ; SNORLAX_DOLL
+MomItems_2: ; fd15e
+	momitem    900,   600, MOM_ITEM, SUPER_POTION
+	momitem   4000,   270, MOM_ITEM, REPEL
+	momitem   7000,   600, MOM_ITEM, SUPER_POTION
+	momitem  10000,  1800, MOM_DOLL, DECO_CHARMANDER_DOLL
+	momitem  15000,  3000, MOM_ITEM, MOON_STONE
+	momitem  19000,   600, MOM_ITEM, SUPER_POTION
+	momitem  30000,  4800, MOM_DOLL, DECO_CLEFAIRY_DOLL
+	momitem  40000,   900, MOM_ITEM, HYPER_POTION
+	momitem  50000,  8000, MOM_DOLL, DECO_PIKACHU_DOLL
+	momitem 100000, 22800, MOM_DOLL, DECO_BIG_SNORLAX_DOLL
 ; fd1ae
 
 	db 0, 0, 0 ; XXX
 
-UnknownText_0xfd1b1: ; 0xfd1b1
+_MomText_HiHowAreYou: ; 0xfd1b1
 	; Hi,  ! How are you?
 	text_jump UnknownText_0x1bc615
 	db "@"
 ; 0xfd1b6
 
-UnknownText_0xfd1b6: ; 0xfd1b6
+_MomText_FoundAnItem: ; 0xfd1b6
 	; I found a useful item shopping, so
 	text_jump UnknownText_0x1bc62a
 	db "@"
 ; 0xfd1bb
 
-UnknownText_0xfd1bb: ; 0xfd1bb
+_MomText_BoughtWithYourMoney: ; 0xfd1bb
 	; I bought it with your money. Sorry!
 	text_jump UnknownText_0x1bc64e
 	db "@"
 ; 0xfd1c0
 
-UnknownText_0xfd1c0: ; 0xfd1c0
+_MomText_ItsInPC: ; 0xfd1c0
 	; It's in your PC. You'll like it!
 	text_jump UnknownText_0x1bc673
 	db "@"
 ; 0xfd1c5
 
-UnknownText_0xfd1c5: ; 0xfd1c5
+_MomText_FoundADoll: ; 0xfd1c5
 	; While shopping today, I saw this adorable doll, so
 	text_jump UnknownText_0x1bc693
 	db "@"
 ; 0xfd1ca
 
-UnknownText_0xfd1ca: ; 0xfd1ca
+_MomText_ItsInRoom: ; 0xfd1ca
 	; It's in your room. You'll love it!
 	text_jump UnknownText_0x1bc6c7
 	db "@"
@@ -91302,10 +89515,10 @@
 ; 104006
 
 Function104006: ; 104006
-	ld de, AttrMap
+	decoord 0, 0, AttrMap
 	ld hl, w6_d000 + $400
 	call Function104263
-	ld de, TileMap
+	decoord 0, 0
 	ld hl, w6_d000
 	call Function10425f
 	ld a, $0
@@ -91325,7 +89538,7 @@
 ; 104033
 
 Function104033: ; 104033
-	ld de, TileMap
+	decoord 0, 0
 	ld hl, w6_d000
 	call Function10425f
 	ld a, $0
@@ -91341,7 +89554,7 @@
 ; 10404d
 
 Function10404d: ; 10404d
-	ld de, AttrMap
+	decoord 0, 0, AttrMap
 	ld hl, $d400
 	call Function104263
 	ld a, $1
@@ -91357,10 +89570,10 @@
 ; 104067
 
 Function104067: ; 104067
-	ld de, AttrMap
+	decoord 0, 0, AttrMap
 	ld hl, $d400
 	call Function104263
-	ld de, TileMap
+	decoord 0, 0
 	ld hl, w6_d000
 	call Function10425f
 	call DelayFrame
@@ -91387,10 +89600,10 @@
 ; 1040a2
 
 Function1040a2: ; 1040a2
-	ld de, AttrMap
+	decoord 0, 0, AttrMap
 	ld hl, $d400
 	call Function104263
-	ld de, TileMap
+	decoord 0, 0
 	ld hl, w6_d000
 	call Function10425f
 	call DelayFrame
@@ -91457,10 +89670,10 @@
 ; 104116
 
 Function104116: ; 104116
-	ld de, AttrMap
+	decoord 0, 0, AttrMap
 	ld hl, $d400
 	call Function104263
-	ld de, TileMap
+	decoord 0, 0
 	ld hl, w6_d000
 	call Function10425f
 	call DelayFrame
@@ -91487,11 +89700,11 @@
 ; 10414e (41:414e)
 
 Function10414e: ; 10414e
-	ld de, AttrMap
+	decoord 0, 0, AttrMap
 	ld hl, $d400
 	call Function104263
 	ld c, $ff
-	ld de, TileMap
+	decoord 0, 0
 	ld hl, w6_d000
 	call Function104265
 	ld a, $1
@@ -91727,10 +89940,9 @@
 	ld a, b
 	ld l, c
 	ld h, $0
+rept 4
 	add hl, hl
-	add hl, hl
-	add hl, hl
-	add hl, hl
+endr
 	ld b, h
 	ld c, l
 	ld h, d
@@ -91787,9 +89999,9 @@
 	ld a, b
 	ld l, c
 	ld h, $0
+rept 3
 	add hl, hl
-	add hl, hl
-	add hl, hl
+endr
 	ld c, l
 	ld b, h
 	ld h, d
@@ -91817,10 +90029,10 @@
 
 Function104309:
 	ld hl, w6_d000
-	ld de, TileMap
+	decoord 0, 0
 	call Function10433a
 	ld hl, w6_d000 + $80
-	ld de, AttrMap
+	decoord 0, 0, AttrMap
 	call Function10433a
 	ld a, $1
 	ld [rVBK], a ; $ff00+$4f
@@ -91868,20 +90080,20 @@
 FishingRodGFX: INCBIN "gfx/misc/fishing.2bpp"
 
 
-Function1045b0: ; 1045b0
-	call Function210f
-	call Function2e50
-	call Function2e5d
+RunCallback_05_03: ; 1045b0
+	call Clearwc7e8
+	call ResetMapBufferEventFlags
+	call ResetFlashIfOutOfCave
 	call GetCurrentMapTrigger
-	call Function2e56
+	call ResetBikeFlags
 	ld a, $5
-	call Function263b
+	call RunMapCallback
 
-Function1045c4: ; 1045c4
+RunCallback_03: ; 1045c4
 	callba Function97df9
 	ld a, $3
-	call Function263b
-	call Function2cff
+	call RunMapCallback
+	call GetMapHeaderTimeOfDayNybble
 	ld [wc2d0], a
 	ret
 
@@ -92033,7 +90245,7 @@
 	ret
 ; 1046c6
 
-Function1046c6: ; 1046c6
+LoadWarpData: ; 1046c6
 	call Function1046df
 	call Function104718
 	ld a, [wd146]
@@ -92101,7 +90313,7 @@
 	ld [wdcb3], a
 	ret
 
-Function104750: ; 104750
+LoadMapTimeOfDay: ; 104750
 	ld hl, VramState
 	res 6, [hl]
 	ld a, $1
@@ -92138,12 +90350,12 @@
 	ret
 
 Function1047a3: ; 1047a3 (41:47a3)
-	ld de, TileMap
+	decoord 0, 0
 	call Function1047b4
 	ld a, [hCGB] ; $ff00+$e6
 	and a
 	ret z
-	ld de, AttrMap
+	decoord 0, 0, AttrMap
 	ld a, $1
 	ld [rVBK], a ; $ff00+$4f
 
@@ -92168,7 +90380,7 @@
 	ld [rVBK], a ; $ff00+$4f
 	ret
 
-Function1047cf: ; 1047cf
+LoadGraphics: ; 1047cf
 	call LoadTilesetHeader
 	call Function2821
 	xor a
@@ -92180,14 +90392,14 @@
 	callba Function106594
 	ret
 
-Function1047eb: ; 1047eb
+LoadMapPalettes: ; 1047eb
 	ld b, $9
 	jp GetSGBLayout
 ; 1047f0
 
-Function1047f0: ; 1047f0
+RefreshMapSprites: ; 1047f0
 	call ClearSprites
-	callba Functionb8000
+	callba ReturnFromMapSetupScript
 	call Function2914
 	callba Function579d
 	callba Function154f7
@@ -92203,60 +90415,60 @@
 	ld [wd45b], a
 	ret
 
-Function104820:: ; 104820 (41:4820)
+CheckMovingOffEdgeOfMap:: ; 104820 (41:4820)
 	ld a, [wd151]
-	cp $ff
+	cp STANDING
 	ret z
 	and a
-	jr z, .asm_104837
-	cp $1
-	jr z, .asm_104846
-	cp $2
-	jr z, .asm_104851
-	cp $3
-	jr z, .asm_10485c
+	jr z, .down
+	cp UP
+	jr z, .up
+	cp LEFT
+	jr z, .left
+	cp RIGHT
+	jr z, .right
 	and a
 	ret
-.asm_104837
+.down
 	ld a, [MapY]
-	sub $4
+	sub 4
 	ld b, a
 	ld a, [MapHeight]
 	add a
 	cp b
-	jr z, .asm_10486b
+	jr z, .ok
 	and a
 	ret
-.asm_104846
+.up
 	ld a, [MapY]
-	sub $4
-	cp $ff
-	jr z, .asm_10486b
+	sub 4
+	cp -1
+	jr z, .ok
 	and a
 	ret
-.asm_104851
+.left
 	ld a, [MapX]
 	sub $4
-	cp $ff
-	jr z, .asm_10486b
+	cp -1
+	jr z, .ok
 	and a
 	ret
-.asm_10485c
+.right
 	ld a, [MapX]
-	sub $4
+	sub 4
 	ld b, a
 	ld a, [MapWidth]
 	add a
 	cp b
-	jr z, .asm_10486b
+	jr z, .ok
 	and a
 	ret
-.asm_10486b
+.ok
 	scf
 	ret
 
 
-Function10486d:: ; 10486d
+GetCoordOfUpperLeftCorner:: ; 10486d
 	ld hl, OverworldMap
 	ld a, [XCoord]
 	bit 0, a
@@ -92304,7 +90516,7 @@
 ; 1048ba
 
 
-Function1048ba: ; 1048ba (41:48ba)
+DoMysteryGift: ; 1048ba (41:48ba)
 	call ClearTileMap
 	call ClearSprites
 	call WaitBGMap
@@ -92380,7 +90592,7 @@
 	call Function105069
 	pop bc
 	jr nz, .asm_104990
-	callab Function26ef5
+	callab GetDecorationName_c
 	ld h, d
 	ld l, e
 	ld de, StringBuffer1
@@ -92408,7 +90620,7 @@
 Function1049b4: ; 1049b4 (41:49b4)
 	ld hl, UnknownText_0x104a02
 	call PrintText
-	jp Function1048ba
+	jp DoMysteryGift
 
 Function1049bd: ; 1049bd (41:49bd)
 	ld hl, UnknownText_0x104a07
@@ -92514,8 +90726,9 @@
 	ld hl, $abe6
 	ld e, a
 	ld d, $0
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [wc901]
 	ld [hli], a
 	ld a, [wc902]
@@ -93363,8 +91576,9 @@
 Function105038: ; 105038 (41:5038)
 	ld a, $20
 	ld [rJOYP], a ; $ff00+$0
+rept 2
 	ld a, [rJOYP] ; $ff00+$0
-	ld a, [rJOYP] ; $ff00+$0
+endr
 	cpl
 	and $f
 	swap a
@@ -93371,22 +91585,19 @@
 	ld b, a
 	ld a, $10
 	ld [rJOYP], a ; $ff00+$0
+rept 6
 	ld a, [rJOYP] ; $ff00+$0
-	ld a, [rJOYP] ; $ff00+$0
-	ld a, [rJOYP] ; $ff00+$0
-	ld a, [rJOYP] ; $ff00+$0
-	ld a, [rJOYP] ; $ff00+$0
-	ld a, [rJOYP] ; $ff00+$0
+endr
 	cpl
 	and $f
 	or b
 	ld c, a
-	ld a, [$ffc3]
+	ld a, [hMoneyTemp]
 	xor c
 	and c
 	ld [$ffc4], a
 	ld a, c
-	ld [$ffc3], a
+	ld [hMoneyTemp], a
 	ld a, $30
 	ld [rJOYP], a ; $ff00+$0
 	ret
@@ -93427,7 +91638,7 @@
 	pop bc
 	jr z, .asm_1050b0
 	push bc
-	callab Function26f02
+	callab SetSpecificDecorationFlag
 	pop bc
 .asm_1050b0
 	inc c
@@ -93436,16 +91647,16 @@
 	jr c, .asm_105096
 	jp CloseSRAM
 
-Function1050b9: ; 1050b9
+Special_UnlockMysteryGift: ; 1050b9
 	call Function105106
 	ld hl, $abe3
 	ld a, [hl]
 	inc a
-	jr nz, .asm_1050c5
+	jr nz, .ok
 	ld [hld], a
 	ld [hl], a
 
-.asm_1050c5
+.ok
 	jp CloseSRAM
 ; 1050c8
 
@@ -93556,7 +91767,7 @@
 	ld a, BANK(MysteryGiftGFX)
 	ld bc, $430
 	call FarCopyBytes
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld a, $42
 	ld bc, $168
 	call ByteFill
@@ -93563,7 +91774,7 @@
 	hlcoord 3, 7
 	ld bc, $90f
 	call ClearBox
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld a, $0
 	ld [hli], a
 	inc a
@@ -93737,10 +91948,9 @@
 	ld b, $8
 .asm_1056f2
 	dec [hl]
+rept 4
 	inc hl
-	inc hl
-	inc hl
-	inc hl
+endr
 	dec b
 	jr nz, .asm_1056f2
 	ld hl, Sprites + $20
@@ -93747,10 +91957,9 @@
 	ld b, $8
 .asm_1056ff
 	inc [hl]
+rept 4
 	inc hl
-	inc hl
-	inc hl
-	inc hl
+endr
 	dec b
 	jr nz, .asm_1056ff
 	dec c
@@ -93861,7 +92070,7 @@
 	ld a, BANK(MysteryGiftJP_GFX)
 	ld bc, $80
 	call FarCopyBytes
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld a, $3f
 	ld bc, $168
 	call ByteFill
@@ -93868,7 +92077,7 @@
 	hlcoord 3, 7
 	ld bc, $90f
 	call ClearBox
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld a, $0
 	ld [hli], a
 	inc a
@@ -94028,38 +92237,38 @@
 	ld a, [hBattleTurn]
 	and a
 	jr nz, .start
-	
+
 	ld a, [wPlayerMoveStruct + MOVE_ANIM]
 	call UpdateUsedMoves
-	
+
 .start
 	ld a, BATTLE_VARS_LAST_MOVE
 	call GetBattleVarAddr
 	ld d, h
 	ld e, l
-	
+
 	ld a, BATTLE_VARS_LAST_COUNTER_MOVE
 	call GetBattleVarAddr
-	
+
 	ld a, BATTLE_VARS_MOVE_ANIM
 	call GetBattleVar
 	ld [wd265], a
-	
+
 	push hl
 	callba Function34548
 	pop hl
 	jr nz, .grammar
-	
+
 	; update last move
 	ld a, [wd265]
 	ld [hl], a
 	ld [de], a
-	
+
 .grammar
 	call GetMoveGrammar
 ; wd265 now contains MoveGrammar
-	
-	
+
+
 ; everything except 'instead' made redundant in localization
 
 	; check obedience
@@ -94067,7 +92276,7 @@
 	and a
 	ld hl, UsedMove2Text
 	ret nz
-	
+
 	; check move grammar
 	ld a, [wd265]
 	cp $3
@@ -94116,13 +92325,13 @@
 GetUsedMoveTextEnder: ; 105e28
 ; get start address
 	ld hl, .endusedmovetexts
-	
+
 ; get move id
 	ld a, [wd265]
-	
+
 ; 2-byte pointer
 	add a
-	
+
 ; seek
 	push bc
 	ld b, $0
@@ -94129,7 +92338,7 @@
 	ld c, a
 	add hl, bc
 	pop bc
-	
+
 ; get pointer to usedmovetext ender
 	ld a, [hli]
 	ld h, [hl]
@@ -94175,7 +92384,7 @@
 	ld a, [wd265]
 	ld c, a
 	ld b, $0
-	
+
 ; read grammar table
 	ld hl, MoveGrammar
 .loop
@@ -94192,12 +92401,12 @@
 ; next grammar type
 	inc b
 	jr .loop
-	
+
 .end
 ; wd265 now contains move grammar
 	ld a, b
 	ld [wd265], a
-	
+
 ; we're done
 	pop bc
 	ret
@@ -94238,7 +92447,7 @@
 	db PSYCH_UP
 	db EXTREMESPEED
 	db 0 ; end set
-	
+
 ; 1
 	db RECOVER
 	db TELEPORT
@@ -94247,7 +92456,7 @@
 	db AMNESIA
 	db FLAIL
 	db 0 ; end set
-	
+
 ; 2
 	db MEDITATE
 	db AGILITY
@@ -94258,7 +92467,7 @@
 	db STRUGGLE
 	db SCARY_FACE
 	db 0 ; end set
-	
+
 ; 3
 	db POUND
 	db SCRATCH
@@ -94299,7 +92508,7 @@
 	db ATTRACT
 	db ROCK_SMASH
 	db 0 ; end set
-	
+
 ; all other moves = 4
 	db $ff ; end
 ; 105ed0
@@ -94313,9 +92522,9 @@
 	ld hl, PlayerUsedMoves
 ; get move id
 	ld b, a
-; loop count
+; next count
 	ld c, NUM_MOVES
-	
+
 .loop
 ; get move from the list
 	ld a, [hli]
@@ -94328,7 +92537,7 @@
 ; next byte
 	dec c
 	jr nz, .loop
-	
+
 ; if the list is full and the move hasn't already been used
 ; shift the list back one byte, deleting the first move used
 ; this can occur with struggle or a new learned move
@@ -94348,13 +92557,13 @@
 	ld a, b
 	ld [PlayerUsedMoves + 3], a
 	jr .quit
-	
+
 .add
 ; go back to the byte we just inced from
 	dec hl
 ; add the new move
 	ld [hl], b
-	
+
 .quit
 ; list updated
 	pop bc
@@ -94546,9 +92755,9 @@
 	inc [hl]
 	jr nz, .asm_106001
 	ld a, $ff
+rept 3
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 
 .asm_106001
@@ -94576,9 +92785,9 @@
 	inc [hl]
 	jr nz, .asm_106027
 	ld a, $ff
+rept 3
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 
 .asm_106027
@@ -94651,7 +92860,7 @@
 	ld hl, $a036
 	jp Function10611d
 
-Function1060a2: mobile ; 1060a2
+Mobile_HealParty: mobile ; 1060a2
 	ld hl, $a039
 	jp Function10611d
 
@@ -94963,19 +93172,19 @@
 	ld de, ._9
 
 .asm_106256
+rept 3
 	inc de
-	inc de
-	inc de
+endr
+rept 2
 	dec a
-	dec a
+endr
 .asm_10625b
 	push af
 	call Function1062b2
 	call Function1062ff
+rept 4
 	inc de
-	inc de
-	inc de
-	inc de
+endr
 	pop af
 	dec a
 	jr nz, .asm_10625b
@@ -95046,9 +93255,9 @@
 	sbc b
 	ld [hMathBuffer], a
 	ld a, [de]
+rept 3
 	inc de
-	inc de
-	inc de
+endr
 	ld b, a
 	ld a, [hProduct]
 	sbc b
@@ -95555,7 +93764,7 @@
 ; 1dc1b0
 
 Function1dc1b0: ; 1dc1b0
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld de, wca90
 	ld bc, $0154
 	call CopyBytes
@@ -95594,7 +93803,7 @@
 	call nz, FarString
 	ld hl, wcaa3
 	ld [hl], $35
-	ld de, $0014
+	ld de, SCREEN_WIDTH
 	add hl, de
 	ld b, $f
 .asm_1dc20a
@@ -95623,11 +93832,11 @@
 	ld [hl], $38
 	inc hl
 	ld a, $39
-	ld bc, $0012
+	ld bc, SCREEN_HEIGHT
 	call ByteFill
 	ld [hl], $3a
 	ld hl, wcb1c
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	ld a, $32
 	call ByteFill
 	ld a, [wd265]
@@ -95647,7 +93856,7 @@
 
 Function1dc26a: ; 1dc26a
 	push de
-	ld de, $0014
+	ld de, SCREEN_WIDTH
 .asm_1dc26e
 	ld [hl], a
 	add hl, de
@@ -95779,7 +93988,7 @@
 	inc [hl]
 
 .asm_1dc469
-	ld hl, TileMap
+	hlcoord 0, 0
 	call Function378b
 	call WaitBGMap
 	ld b, $3
@@ -95798,12 +94007,12 @@
 	xor a
 	ld [MonType], a
 	callba Function5084a
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld b, 15
 	ld c, 18
 	call TextBox
 	ld bc, SCREEN_WIDTH
-	ld de, TileMap
+	decoord 0, 0
 	hlcoord 0, 1
 	call CopyBytes
 	hlcoord 7, 0
@@ -96035,7 +94244,7 @@
 	ld bc, $f0b
 	call ClearBox
 	ld a, $34
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $b
 	call ByteFill
 	ld a, $39
@@ -96070,7 +94279,7 @@
 
 Function1de1d1: ; 1de1d1 (77:61d1)
 	ld a, $34
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $b
 	call ByteFill
 	ld a, $39
@@ -96155,7 +94364,7 @@
 
 Function1de27f: ; 1de27f
 	push de
-	ld de, $0014
+	ld de, SCREEN_WIDTH
 .asm_1de283
 	ld [hl], a
 	add hl, de
@@ -96196,7 +94405,7 @@
 	db A_BUTTON, $00
 	db NO_INPUT, $ff ; end
 ; 1de2a5
-	
+
 DudeAutoInput_RightA: ; 1de2a5
 	db NO_INPUT, $08
 	db D_RIGHT,  $00
@@ -96204,7 +94413,7 @@
 	db A_BUTTON, $00
 	db NO_INPUT, $ff ; end
 ; 1de2af
-	
+
 DudeAutoInput_DownA: ; 1de2af
 	db NO_INPUT, $fe
 	db NO_INPUT, $fe
--- a/maps/AzaleaGym.asm
+++ b/maps/AzaleaGym.asm
@@ -1,16 +1,15 @@
-AzaleaGym_MapScriptHeader: ; 0x18ec1c
-	; trigger count
+AzaleaGym_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18ec1e
 
-BugsyScript_0x18ec1e: ; 0x18ec1e
+BugsyScript_0x18ec1e:
 	faceplayer
 	loadfont
 	checkevent EVENT_BEAT_BUGSY
-	iftrue UnknownScript_0x18ec48
+	iftrue .FightDone
 	writetext UnknownText_0x18ed0b
 	closetext
 	loadmovesprites
@@ -23,10 +22,10 @@
 	writetext UnknownText_0x18ee14
 	playsound SFX_GET_BADGE
 	waitbutton
-	setflag $001c
-	checkcode $7
-	scall UnknownScript_0x18ec73
-UnknownScript_0x18ec48: ; 0x18ec48
+	setflag ENGINE_HIVEBADGE
+	checkcode VAR_BADGES
+	scall AzaleaGymTriggerRockets
+.FightDone
 	checkevent EVENT_GOT_TM49_FURY_CUTTER
 	iftrue UnknownScript_0x18ec6d
 	setevent EVENT_BEAT_TWINS_AMY_AND_MAY
@@ -35,7 +34,7 @@
 	setevent EVENT_BEAT_BUG_CATCHER_JOSH
 	writetext UnknownText_0x18ee2b
 	keeptextopen
-	verbosegiveitem TM_49, 1
+	verbosegiveitem TM_FURY_CUTTER, 1
 	iffalse UnknownScript_0x18ec71
 	setevent EVENT_GOT_TM49_FURY_CUTTER
 	writetext UnknownText_0x18eefa
@@ -42,51 +41,29 @@
 	closetext
 	loadmovesprites
 	end
-; 0x18ec6d
 
-UnknownScript_0x18ec6d: ; 0x18ec6d
+UnknownScript_0x18ec6d:
 	writetext UnknownText_0x18ef98
 	closetext
-UnknownScript_0x18ec71: ; 0x18ec71
+UnknownScript_0x18ec71:
 	loadmovesprites
 	end
-; 0x18ec73
 
-UnknownScript_0x18ec73: ; 0x18ec73
-	if_equal $7, UnknownScript_0x18ec7f
-	if_equal $6, UnknownScript_0x18ec7c
+AzaleaGymTriggerRockets:
+	if_equal 7, .RadioTowerRockets
+	if_equal 6, .GoldenrodRockets
 	end
-; 0x18ec7c
 
-UnknownScript_0x18ec7c: ; 0x18ec7c
+.GoldenrodRockets
 	jumpstd goldenrodrockets
-; 0x18ec7f
 
-UnknownScript_0x18ec7f: ; 0x18ec7f
+.RadioTowerRockets
 	jumpstd radiotowerrockets
-; 0x18ec82
 
-TrainerTwinsAmyandmay1: ; 0x18ec82
-	; bit/flag number
-	dw $464
+TrainerTwinsAmyandmay1:
+	trainer EVENT_BEAT_TWINS_AMY_AND_MAY, TWINS, AMYANDMAY1, TwinsAmyandmay1SeenText, TwinsAmyandmay1BeatenText, $0000, TwinsAmyandmay1Script
 
-	; trainer group && trainer id
-	db TWINS, AMYANDMAY1
-
-	; text when seen
-	dw TwinsAmyandmay1SeenText
-
-	; text when trainer beaten
-	dw TwinsAmyandmay1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw TwinsAmyandmay1Script
-; 0x18ec8e
-
-TwinsAmyandmay1Script: ; 0x18ec8e
+TwinsAmyandmay1Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x18f1fc
@@ -93,29 +70,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x18ec96
 
-TrainerTwinsAmyandmay2: ; 0x18ec96
-	; bit/flag number
-	dw $464
+TrainerTwinsAmyandmay2:
+	trainer EVENT_BEAT_TWINS_AMY_AND_MAY, TWINS, AMYANDMAY2, TwinsAmyandmay2SeenText, TwinsAmyandmay2BeatenText, $0000, TwinsAmyandmay2Script
 
-	; trainer group && trainer id
-	db TWINS, AMYANDMAY2
-
-	; text when seen
-	dw TwinsAmyandmay2SeenText
-
-	; text when trainer beaten
-	dw TwinsAmyandmay2BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw TwinsAmyandmay2Script
-; 0x18eca2
-
-TwinsAmyandmay2Script: ; 0x18eca2
+TwinsAmyandmay2Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x18f269
@@ -122,29 +81,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x18ecaa
 
-TrainerBug_catcherBug_catcher_benny: ; 0x18ecaa
-	; bit/flag number
-	dw $53c
+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 group && trainer id
-	db BUG_CATCHER, BUG_CATCHER_BENNY
-
-	; text when seen
-	dw Bug_catcherBug_catcher_bennySeenText
-
-	; text when trainer beaten
-	dw Bug_catcherBug_catcher_bennyBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Bug_catcherBug_catcher_bennyScript
-; 0x18ecb6
-
-Bug_catcherBug_catcher_bennyScript: ; 0x18ecb6
+Bug_catcherBug_catcher_bennyScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x18f053
@@ -151,29 +92,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x18ecbe
 
-TrainerBug_catcherAl: ; 0x18ecbe
-	; bit/flag number
-	dw $53d
+TrainerBug_catcherAl:
+	trainer EVENT_BEAT_BUG_CATCHER_AL, BUG_CATCHER, AL, Bug_catcherAlSeenText, Bug_catcherAlBeatenText, $0000, Bug_catcherAlScript
 
-	; trainer group && trainer id
-	db BUG_CATCHER, AL
-
-	; text when seen
-	dw Bug_catcherAlSeenText
-
-	; text when trainer beaten
-	dw Bug_catcherAlBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Bug_catcherAlScript
-; 0x18ecca
-
-Bug_catcherAlScript: ; 0x18ecca
+Bug_catcherAlScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x18f0d3
@@ -180,29 +103,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x18ecd2
 
-TrainerBug_catcherJosh: ; 0x18ecd2
-	; bit/flag number
-	dw $53e
+TrainerBug_catcherJosh:
+	trainer EVENT_BEAT_BUG_CATCHER_JOSH, BUG_CATCHER, JOSH, Bug_catcherJoshSeenText, Bug_catcherJoshBeatenText, $0000, Bug_catcherJoshScript
 
-	; trainer group && trainer id
-	db BUG_CATCHER, JOSH
-
-	; text when seen
-	dw Bug_catcherJoshSeenText
-
-	; text when trainer beaten
-	dw Bug_catcherJoshBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Bug_catcherJoshScript
-; 0x18ecde
-
-Bug_catcherJoshScript: ; 0x18ecde
+Bug_catcherJoshScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x18f17e
@@ -209,9 +114,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x18ece6
 
-AzaleaGymGuyScript: ; 0x18ece6
+AzaleaGymGuyScript:
 	faceplayer
 	checkevent EVENT_BEAT_BUGSY
 	iftrue .AzaleaGymGuyWinScript
@@ -227,7 +131,6 @@
 	closetext
 	loadmovesprites
 	end
-; 0x18ecfb
 
 AzaleaGymStatue:
 	checkflag ENGINE_HIVEBADGE
@@ -237,7 +140,7 @@
 	trainertotext BUGSY, 1, $1
 	jumpstd gymstatue2
 
-UnknownText_0x18ed0b: ; 0x18ed0b
+UnknownText_0x18ed0b:
 	text "I'm BUGSY!"
 	line "I never lose when"
 
@@ -254,9 +157,8 @@
 	line "what I've learned"
 	cont "from my studies."
 	done
-; 0x18edae
 
-UnknownText_0x18edae: ; 0x18edae
+UnknownText_0x18edae:
 	text "Whoa, amazing!"
 	line "You're an expert"
 	cont "on #MON!"
@@ -267,15 +169,13 @@
 	para "OK, you win. Take"
 	line "this BADGE."
 	done
-; 0x18ee14
 
-UnknownText_0x18ee14: ; 0x18ee14
+UnknownText_0x18ee14:
 	text "<PLAYER> received"
 	line "HIVEBADGE."
 	done
-; 0x18ee2b
 
-UnknownText_0x18ee2b: ; 0x18ee2b
+UnknownText_0x18ee2b:
 	text "Do you know the"
 	line "benefits of HIVE-"
 	cont "BADGE?"
@@ -295,9 +195,8 @@
 	para "Here, I also want"
 	line "you to have this."
 	done
-; 0x18eefa
 
-UnknownText_0x18eefa: ; 0x18eefa
+UnknownText_0x18eefa:
 	text "TM49 contains"
 	line "FURY CUTTER."
 
@@ -312,9 +211,8 @@
 	para "Isn't that great?"
 	line "I discovered it!"
 	done
-; 0x18ef98
 
-UnknownText_0x18ef98: ; 0x18ef98
+UnknownText_0x18ef98:
 	text "Bug #MON are"
 	line "deep. There are"
 
@@ -324,9 +222,8 @@
 	para "Study your favor-"
 	line "ites thoroughly."
 	done
-; 0x18eff8
 
-Bug_catcherBug_catcher_bennySeenText: ; 0x18eff8
+Bug_catcherBug_catcher_bennySeenText:
 	text "Bug #MON evolve"
 	line "young. So they get"
 
@@ -333,22 +230,19 @@
 	para "stronger that much"
 	line "faster."
 	done
-; 0x18f037
 
-Bug_catcherBug_catcher_bennyBeatenText: ; 0x18f037
+Bug_catcherBug_catcher_bennyBeatenText:
 	text "Just evolving"
 	line "isn't enough!"
 	done
-; 0x18f053
 
-UnknownText_0x18f053: ; 0x18f053
+UnknownText_0x18f053:
 	text "#MON become"
 	line "stronger if they"
 	cont "evolve. Really!"
 	done
-; 0x18f081
 
-Bug_catcherAlSeenText: ; 0x18f081
+Bug_catcherAlSeenText:
 	text "Bug #MON are"
 	line "cool and tough!"
 
@@ -355,15 +249,13 @@
 	para "I'll prove it to"
 	line "you!"
 	done
-; 0x18f0b4
 
-Bug_catcherAlBeatenText: ; 0x18f0b4
+Bug_catcherAlBeatenText:
 	text "You proved how"
 	line "tough you are…"
 	done
-; 0x18f0d3
 
-UnknownText_0x18f0d3: ; 0x18f0d3
+UnknownText_0x18f0d3:
 	text "They're so cool,"
 	line "but most girls"
 
@@ -372,9 +264,8 @@
 
 	para "I don't know why…"
 	done
-; 0x18f118
 
-Bug_catcherJoshSeenText: ; 0x18f118
+Bug_catcherJoshSeenText:
 	text "You saved all the"
 	line "SLOWPOKE? Whew,"
 	cont "you're mighty!"
@@ -383,60 +274,51 @@
 	line "#MON are pretty"
 	cont "tough too!"
 	done
-; 0x18f174
 
-Bug_catcherJoshBeatenText: ; 0x18f174
+Bug_catcherJoshBeatenText:
 	text "Urrgggh!"
 	done
-; 0x18f17e
 
-UnknownText_0x18f17e: ; 0x18f17e
+UnknownText_0x18f17e:
 	text "I guess I should"
 	line "teach them better"
 	cont "moves…"
 	done
-; 0x18f1a9
 
-TwinsAmyandmay1SeenText: ; 0x18f1a9
+TwinsAmyandmay1SeenText:
 	text "AMY: Hi! Are you"
 	line "challenging the"
 	cont "LEADER? No way!"
 	done
-; 0x18f1db
 
-TwinsAmyandmay1BeatenText: ; 0x18f1db
+TwinsAmyandmay1BeatenText:
 	text "AMY & MAY: Oh,"
 	line "double goodness!"
 	done
-; 0x18f1fc
 
-UnknownText_0x18f1fc: ; 0x18f1fc
+UnknownText_0x18f1fc:
 	text "AMY: You're"
 	line "really strong!"
 	done
-; 0x18f217
 
-TwinsAmyandmay2SeenText: ; 0x18f217
+TwinsAmyandmay2SeenText:
 	text "MAY: You want to"
 	line "see the LEADER?"
 	cont "We come first!"
 	done
-; 0x18f248
 
-TwinsAmyandmay2BeatenText: ; 0x18f248
+TwinsAmyandmay2BeatenText:
 	text "AMY & MAY: Oh,"
 	line "double goodness!"
 	done
-; 0x18f269
 
-UnknownText_0x18f269: ; 0x18f269
+UnknownText_0x18f269:
 	text "MAY: Our bug #-"
 	line "MON lost! Oh, what"
 	cont "a shame."
 	done
-; 0x18f296
 
-AzaleaGymGuyText: ; 0x18f296
+AzaleaGymGuyText:
 	text "Yo, challenger!"
 
 	para "BUGSY's young, but"
@@ -457,9 +339,8 @@
 	line "are super-effec-"
 	cont "tive too."
 	done
-; 0x18f359
 
-AzaleaGymGuyWinText: ; 0x18f359
+AzaleaGymGuyWinText:
 	text "Well done! That"
 	line "was a great clash"
 
@@ -470,32 +351,30 @@
 	line "you, the future of"
 	cont "#MON is bright!"
 	done
-; 0x18f3cc
 
-AzaleaGym_MapEventHeader: ; 0x18f3cc
+AzaleaGym_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 13, 3, $0, AzaleaGymStatue
-	signpost 13, 6, $0, AzaleaGymStatue
+	signpost 13, 3, SIGNPOST_READ, AzaleaGymStatue
+	signpost 13, 6, SIGNPOST_READ, AzaleaGymStatue
 
-	; people-events
+.PersonEvents:
 	db 7
-	person_event SPRITE_BUGSY, 11, 9, $3, $0, 255, 255, $a0, 0, BugsyScript_0x18ec1e, $ffff
-	person_event SPRITE_BUG_CATCHER, 7, 9, $a, $0, 255, 255, $b2, 2, TrainerBug_catcherBug_catcher_benny, $ffff
-	person_event SPRITE_BUG_CATCHER, 12, 12, $6, $0, 255, 255, $b2, 3, TrainerBug_catcherAl, $ffff
-	person_event SPRITE_BUG_CATCHER, 6, 4, $6, $0, 255, 255, $b2, 3, TrainerBug_catcherJosh, $ffff
-	person_event SPRITE_TWIN, 14, 8, $6, $0, 255, 255, $82, 1, TrainerTwinsAmyandmay1, $ffff
-	person_event SPRITE_TWIN, 14, 9, $6, $0, 255, 255, $82, 1, TrainerTwinsAmyandmay2, $ffff
-	person_event SPRITE_GYM_GUY, 17, 11, $6, $0, 255, 255, $80, 0, AzaleaGymGuyScript, $ffff
-; 0x18f441
+	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
--- a/maps/AzaleaMart.asm
+++ b/maps/AzaleaMart.asm
@@ -1,27 +1,23 @@
-AzaleaMart_MapScriptHeader: ; 0x18e03e
-	; trigger count
+AzaleaMart_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18e040
 
-ClerkScript_0x18e040: ; 0x18e040
+ClerkScript_0x18e040:
 	loadfont
 	pokemart $0, $0003
 	loadmovesprites
 	end
-; 0x18e047
 
-CooltrainerMScript_0x18e047: ; 0x18e047
+CooltrainerMScript_0x18e047:
 	jumptextfaceplayer UnknownText_0x18e04d
-; 0x18e04a
 
-BugCatcherScript_0x18e04a: ; 0x18e04a
+BugCatcherScript_0x18e04a:
 	jumptextfaceplayer UnknownText_0x18e0b6
-; 0x18e04d
 
-UnknownText_0x18e04d: ; 0x18e04d
+UnknownText_0x18e04d:
 	text "There's no GREAT"
 	line "BALL here. #"
 
@@ -32,9 +28,8 @@
 	line "make me some of"
 	cont "his custom BALLS."
 	done
-; 0x18e0b6
 
-UnknownText_0x18e0b6: ; 0x18e0b6
+UnknownText_0x18e0b6:
 	text "A GREAT BALL is"
 	line "better for catch-"
 	cont "ing #MON than a"
@@ -44,26 +39,24 @@
 	line "be better some-"
 	cont "times."
 	done
-; 0x18e118
 
-AzaleaMart_MapEventHeader: ; 0x18e118
+AzaleaMart_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 7, 5, $9, $0, 255, 255, $0, 0, ClerkScript_0x18e040, $ffff
-	person_event SPRITE_COOLTRAINER_M, 9, 6, $7, $0, 255, 255, $0, 0, CooltrainerMScript_0x18e047, $ffff
-	person_event SPRITE_BUG_CATCHER, 6, 11, $5, $2, 255, 255, $80, 0, BugCatcherScript_0x18e04a, $ffff
-; 0x18e14f
+	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
--- a/maps/AzaleaPokeCenter1F.asm
+++ b/maps/AzaleaPokeCenter1F.asm
@@ -1,35 +1,29 @@
-AzaleaPokeCenter1F_MapScriptHeader: ; 0x18db21
-	; trigger count
+AzaleaPokeCenter1F_MapScriptHeader:
+.MapTriggers:
 	db 1
 
 	; triggers
 	dw UnknownScript_0x18db27, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18db27
 
-UnknownScript_0x18db27: ; 0x18db27
+UnknownScript_0x18db27:
 	end
-; 0x18db28
 
-NurseScript_0x18db28: ; 0x18db28
+NurseScript_0x18db28:
 	jumpstd pokecenternurse
-; 0x18db2b
 
-GentlemanScript_0x18db2b: ; 0x18db2b
+GentlemanScript_0x18db2b:
 	jumptextfaceplayer UnknownText_0x18db34
-; 0x18db2e
 
-FishingGuruScript_0x18db2e: ; 0x18db2e
+FishingGuruScript_0x18db2e:
 	jumptextfaceplayer UnknownText_0x18dbee
-; 0x18db31
 
-PokefanFScript_0x18db31: ; 0x18db31
+PokefanFScript_0x18db31:
 	jumptextfaceplayer UnknownText_0x18dc19
-; 0x18db34
 
-UnknownText_0x18db34: ; 0x18db34
+UnknownText_0x18db34:
 	text "Do your #MON"
 	line "know HM moves?"
 
@@ -39,9 +33,8 @@
 	para "your #MON has"
 	line "fainted."
 	done
-; 0x18db88
 
-UnknownText_0x18db88: ; 0x18db88
+UnknownText_0x18db88:
 	text "This BILL guy"
 	line "created the system"
 
@@ -52,16 +45,14 @@
 	line "store up to 20"
 	cont "#MON per BOX."
 	done
-; 0x18dbee
 
-UnknownText_0x18dbee: ; 0x18dbee
+UnknownText_0x18dbee:
 	text "BILL's PC can"
 	line "store up to 20"
 	cont "#MON per BOX."
 	done
-; 0x18dc19
 
-UnknownText_0x18dc19: ; 0x18dc19
+UnknownText_0x18dc19:
 	text "Do you know about"
 	line "APRICORNS?"
 
@@ -80,28 +71,26 @@
 	para "everyone used"
 	line "APRICORNS."
 	done
-; 0x18dccf
 
-AzaleaPokeCenter1F_MapEventHeader: ; 0x18dccf
+AzaleaPokeCenter1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_NURSE, 5, 7, $6, $0, 255, 255, $0, 0, NurseScript_0x18db28, $ffff
-	person_event SPRITE_GENTLEMAN, 10, 13, $4, $10, 255, 255, $0, 0, GentlemanScript_0x18db2b, $ffff
-	person_event SPRITE_FISHING_GURU, 5, 10, $6, $0, 255, 255, $0, 0, FishingGuruScript_0x18db2e, $ffff
-	person_event SPRITE_POKEFAN_F, 8, 5, $2, $21, 255, 255, $0, 0, PokefanFScript_0x18db31, $ffff
-; 0x18dd18
+	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
--- a/maps/AzaleaTown.asm
+++ b/maps/AzaleaTown.asm
@@ -1,5 +1,5 @@
 AzaleaTown_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 3
 
 	; triggers
@@ -7,7 +7,7 @@
 	dw .Trigger2, $0000
 	dw .Trigger3, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -29,7 +29,7 @@
 UnknownScript_0x198018:
 	moveperson $b, $b, $b
 	spriteface $0, RIGHT
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	special Functionc48f
 	pause 15
 	appear $b
@@ -39,7 +39,7 @@
 
 UnknownScript_0x198034:
 	spriteface $0, RIGHT
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	special Functionc48f
 	pause 15
 	appear $b
@@ -51,7 +51,7 @@
 	writetext UnknownText_0x19814d
 	closetext
 	loadmovesprites
-	setevent $06bf
+	setevent EVENT_RIVAL_AZALEA_TOWN
 	checkevent EVENT_GOT_TOTODILE_FROM_ELM
 	iftrue UnknownScript_0x198071
 	checkevent EVENT_GOT_CHIKORITA_FROM_ELM
@@ -157,9 +157,9 @@
 	closetext
 	verbosegiveitem GS_BALL, 1
 	spriteface $d, LEFT
-	setflag $0064
-	clearevent $06ed
-	setevent $06eb
+	setflag ENGINE_HAVE_EXAMINED_GS_BALL
+	clearevent EVENT_ILEX_FOREST_LASS
+	setevent EVENT_ROUTE_34_ILEX_FOREST_GATE_LASS
 	dotrigger $0
 	loadmovesprites
 	end
@@ -201,8 +201,7 @@
 	fruittree $14
 
 MapAzaleaTownSignpostItem8:
-	dw $00b1
-	db FULL_HEAL
+	dwb EVENT_AZALEA_TOWN_HIDDEN_FULL_HEAL, FULL_HEAL
 	
 
 MovementData_0x198134:
@@ -451,7 +450,7 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -462,35 +461,35 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 3
 	xy_trigger 1, $a, $5, $0, UnknownScript_0x198018, $0, $0
 	xy_trigger 1, $b, $5, $0, UnknownScript_0x198034, $0, $0
 	xy_trigger 2, $6, $9, $0, UnknownScript_0x1980e5, $0, $0
 
-	; signposts
+.Signposts:
 	db 9
-	signpost 9, 19, $0, AzaleaTownSign
-	signpost 9, 10, $0, KurtsHouseSign
-	signpost 15, 14, $0, AzaleaGymSign
-	signpost 7, 29, $0, SlowpokeWellSign
-	signpost 13, 19, $0, CharcoalKilnSign
-	signpost 9, 16, $0, AzaleaTownPokeCenterSign
-	signpost 5, 22, $0, AzaleaTownMartSign
-	signpost 9, 3, $0, AzaleaTownIlextForestSign
-	signpost 6, 31, $7, MapAzaleaTownSignpostItem8
+	signpost 9, 19, SIGNPOST_READ, AzaleaTownSign
+	signpost 9, 10, SIGNPOST_READ, KurtsHouseSign
+	signpost 15, 14, SIGNPOST_READ, AzaleaGymSign
+	signpost 7, 29, SIGNPOST_READ, SlowpokeWellSign
+	signpost 13, 19, SIGNPOST_READ, CharcoalKilnSign
+	signpost 9, 16, SIGNPOST_READ, AzaleaTownPokeCenterSign
+	signpost 5, 22, SIGNPOST_READ, AzaleaTownMartSign
+	signpost 9, 3, SIGNPOST_READ, AzaleaTownIlextForestSign
+	signpost 6, 31, SIGNPOST_ITEM, MapAzaleaTownSignpostItem8
 
-	; people-events
+.PersonEvents:
 	db 12
-	person_event SPRITE_AZALEA_ROCKET, 13, 35, $6, $0, 255, 255, $0, 0, AzaleaRocketScript_0x1980ab, $06fa
-	person_event SPRITE_GRAMPS, 13, 25, $2, $21, 255, 255, $0, 0, GrampsScript_0x1980b1, $ffff
-	person_event SPRITE_TEACHER, 17, 19, $4, $20, 255, 255, $90, 0, TeacherScript_0x1980c5, $ffff
-	person_event SPRITE_YOUNGSTER, 13, 11, $5, $1, 255, 255, $a0, 0, YoungsterScript_0x1980c8, $ffff
-	person_event SPRITE_SLOWPOKE, 21, 12, $1, $0, 255, 255, $0, 0, SlowpokeScript_0x1980cb, $06f9
-	person_event SPRITE_SLOWPOKE, 13, 22, $1, $0, 255, 255, $0, 0, SlowpokeScript_0x1980cb, $06f9
-	person_event SPRITE_SLOWPOKE, 13, 33, $1, $0, 255, 255, $0, 0, SlowpokeScript_0x1980cb, $06f9
-	person_event SPRITE_SLOWPOKE, 19, 19, $1, $0, 255, 255, $0, 0, SlowpokeScript_0x1980cb, $06f9
-	person_event SPRITE_FRUIT_TREE, 6, 12, $1, $0, 255, 255, $0, 0, WhiteApricornTree, $ffff
-	person_event SPRITE_AZALEA_ROCKET, 14, 15, $8, $0, 255, 255, $0, 0, ObjectEvent, $06bf
-	person_event SPRITE_AZALEA_ROCKET, 20, 14, $6, $0, 255, 255, $0, 0, AzaleaRocketScript_0x1980ae, $06fc
-	person_event SPRITE_KURT_OUTSIDE, 9, 10, $8, $0, 255, 255, $0, 0, KurtOutsideScript_0x19810c, $07a4
+	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
--- a/maps/BattleTower1F.asm
+++ b/maps/BattleTower1F.asm
@@ -1,5 +1,5 @@
-BattleTower1F_MapScriptHeader: ; 0x9e393
-	; trigger count
+BattleTower1F_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,11 +6,10 @@
 	dw UnknownScript_0x9e39d, $0000
 	dw UnknownScript_0x9e3d3, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9e39d
 
-UnknownScript_0x9e39d: ; 0x9e39d
+UnknownScript_0x9e39d:
 	writebyte $9
 	special Function170687
 	iffalse UnknownScript_0x9e3d1
@@ -26,24 +25,21 @@
 	loadmovesprites
 	priorityjump UnknownScript_0x9e44e
 	end
-; 0x9e3c4
 
-UnknownScript_0x9e3c4: ; 0x9e3c4
+UnknownScript_0x9e3c4:
 	priorityjump UnknownScript_0x9e555
-; 0x9e3c7
 
-UnknownScript_0x9e3c7: ; 0x9e3c7
+UnknownScript_0x9e3c7:
 	writebyte $4
 	special Function170687
 	writebyte $6
 	special Function170687
-UnknownScript_0x9e3d1: ; 0x9e3d1
+UnknownScript_0x9e3d1:
 	dotrigger $1
-UnknownScript_0x9e3d3: ; 0x9e3d3
+UnknownScript_0x9e3d3:
 	end
-; 0x9e3d4
 
-MapBattleTower1FSignpost0Script: ; 0x9e3d4
+MapBattleTower1FSignpost0Script:
 	loadfont
 	writetext UnknownText_0x9ed3c
 	yesorno
@@ -50,12 +46,11 @@
 	iffalse UnknownScript_0x9e3e0
 	writetext UnknownText_0x9ed72
 	closetext
-UnknownScript_0x9e3e0: ; 0x9e3e0
+UnknownScript_0x9e3e0:
 	loadmovesprites
 	end
-; 0x9e3e2
 
-ReceptionistScript_0x9e3e2: ; 0x9e3e2
+ReceptionistScript_0x9e3e2:
 	writebyte $2
 	special Function170687
 	if_equal $3, BattleTowerBattleRoomScript_0x9f4e4
@@ -66,9 +61,8 @@
 	special Function170687
 	if_not_equal $0, UnknownScript_0x9e3fc
 	jump UnknownScript_0x9e49e
-; 0x9e3fc
 
-UnknownScript_0x9e3fc: ; 0x9e3fc
+UnknownScript_0x9e3fc:
 	writetext UnknownText_0x9e5ea
 	writebyte $1
 	special Function17d224
@@ -75,9 +69,8 @@
 	if_equal $1, UnknownScript_0x9e40f
 	if_equal $2, UnknownScript_0x9e4a5
 	jump UnknownScript_0x9e4b0
-; 0x9e40f
 
-UnknownScript_0x9e40f: ; 0x9e40f
+UnknownScript_0x9e40f:
 	writebyte $1a
 	special Function170687
 	special Function170bd3
@@ -86,7 +79,7 @@
 	yesorno
 	iffalse UnknownScript_0x9e3fc
 	dotrigger $0
-	special Function29e66
+	special Special_TryQuickSave
 	iffalse UnknownScript_0x9e3fc
 	dotrigger $1
 	writebyte $1
@@ -102,13 +95,12 @@
 	writebyte $1e
 	special Function170687
 	jump UnknownScript_0x9e454
-; 0x9e44e
 
-UnknownScript_0x9e44e: ; 0x9e44e
+UnknownScript_0x9e44e:
 	loadmovesprites
 	writebyte $8
 	special Function170687
-UnknownScript_0x9e454: ; 0x9e454
+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
@@ -123,9 +115,8 @@
 	applymovement $0, MovementData_0x9e576
 	warpcheck
 	end
-; 0x9e47a
 
-UnknownScript_0x9e47a: ; 0x9e47a
+UnknownScript_0x9e47a:
 	writebyte $1c
 	special Function170687
 	writebyte $1b
@@ -138,52 +129,46 @@
 	special Function170687
 	loadmovesprites
 	end
-; 0x9e498
 
-UnknownScript_0x9e498: ; 0x9e498
+UnknownScript_0x9e498:
 	writetext UnknownText_0x9eb94
 	closetext
 	loadmovesprites
 	end
-; 0x9e49e
 
-UnknownScript_0x9e49e: ; 0x9e49e
+UnknownScript_0x9e49e:
 	writetext UnknownText_0x9ec3d
 	yesorno
 	iffalse UnknownScript_0x9e4a8
-UnknownScript_0x9e4a5: ; 0x9e4a5
+UnknownScript_0x9e4a5:
 	writetext UnknownText_0x9e886
-UnknownScript_0x9e4a8: ; 0x9e4a8
+UnknownScript_0x9e4a8:
 	writebyte $1
 	special Function170687
 	jump UnknownScript_0x9e3fc
-; 0x9e4b0
 
-UnknownScript_0x9e4b0: ; 0x9e4b0
+UnknownScript_0x9e4b0:
 	writetext UnknownText_0x9ec09
 	closetext
 	loadmovesprites
 	end
-; 0x9e4b6
 
-UnknownScript_0x9e4b6: ; 0x9e4b6
+UnknownScript_0x9e4b6:
 	special Function17f53d
 	loadmovesprites
 	end
-; 0x9e4bb
 
-UnknownScript_0x9e4bb: ; 0x9e4bb
+UnknownScript_0x9e4bb:
 	closetext
 	loadmovesprites
 	end
-; 0x9e4be
 
 
-UnknownScript_0x9e4be: ; 0x9e4be
+UnknownScript_0x9e4be:
 	writetext UnknownText_0x9ef1f
 	yesorno
 	iffalse UnknownScript_0x9e3fc
-	special Function29e66
+	special Special_TryQuickSave
 	iffalse UnknownScript_0x9e3fc
 	writebyte $1
 	special Function170687
@@ -197,9 +182,8 @@
 	spriteface $2, DOWN
 	loadmovesprites
 	end
-; 0x9e4ea
 
-UnknownScript_0x9e4ea: ; 0x9e4ea
+UnknownScript_0x9e4ea:
 	writebyte $18
 	special Function170687
 	if_not_equal $0, UnknownScript_0x9e542
@@ -213,11 +197,10 @@
 	if_equal $0, UnknownScript_0x9e512
 	writetext UnknownText_0x9ecb0
 	jump UnknownScript_0x9e515
-; 0x9e512
 
-UnknownScript_0x9e512: ; 0x9e512
+UnknownScript_0x9e512:
 	writetext UnknownText_0x9ec6d
-UnknownScript_0x9e515: ; 0x9e515
+UnknownScript_0x9e515:
 	yesorno
 	iffalse UnknownScript_0x9e3fc
 	writetext UnknownText_0x9ef79
@@ -224,7 +207,7 @@
 	yesorno
 	iffalse UnknownScript_0x9e3fc
 	dotrigger $0
-	special Function29e66
+	special Special_TryQuickSave
 	iffalse UnknownScript_0x9e3fc
 	dotrigger $1
 	writebyte $6
@@ -234,40 +217,34 @@
 	writetext UnknownText_0x9e60a
 	closetext
 	jump UnknownScript_0x9e44e
-; 0x9e53b
 
-UnknownScript_0x9e53b: ; 0x9e53b
+UnknownScript_0x9e53b:
 	writetext UnknownText_0x9f076
 	closetext
 	jump UnknownScript_0x9e4b0
-; 0x9e542
 
-UnknownScript_0x9e542: ; 0x9e542
+UnknownScript_0x9e542:
 	writetext UnknownText_0x9f1e5
 	closetext
 	jump UnknownScript_0x9e3fc
-; 0x9e549
 
-UnknownScript_0x9e549: ; 0x9e549
+UnknownScript_0x9e549:
 	writetext UnknownText_0x9f217
 	closetext
 	jump UnknownScript_0x9e3fc
-; 0x9e550
 
-UnknownScript_0x9e550: ; 0x9e550
+UnknownScript_0x9e550:
 	special Function17f53d
 	loadmovesprites
 	end
-; 0x9e555
 
-UnknownScript_0x9e555: ; 0x9e555
+UnknownScript_0x9e555:
 	loadfont
 	writetext UnknownText_0x9ee18
 	closetext
 	jump UnknownScript_0x9e4b0
-; 0x9e55d
 
-YoungsterScript_0x9e55d: ; 0x9e55d
+YoungsterScript_0x9e55d:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x9f264
@@ -275,40 +252,34 @@
 	loadmovesprites
 	spriteface $3, RIGHT
 	end
-; 0x9e568
 
-CooltrainerFScript_0x9e568: ; 0x9e568
+CooltrainerFScript_0x9e568:
 	jumptextfaceplayer UnknownText_0x9f2a4
-; 0x9e56b
 
-BugCatcherScript_0x9e56b: ; 0x9e56b
+BugCatcherScript_0x9e56b:
 	jumptextfaceplayer UnknownText_0x9f35b
-; 0x9e56e
 
-GrannyScript_0x9e56e: ; 0x9e56e
+GrannyScript_0x9e56e:
 	jumptextfaceplayer UnknownText_0x9f2e3
-; 0x9e571
 
-MovementData_0x9e571: ; 0x9e571
+MovementData_0x9e571:
 	step_up
 	step_up
 	step_up
 	step_up
 	step_up
-MovementData_0x9e576: ; 0x9e576
+MovementData_0x9e576:
 	step_up
 	step_end
-; 0x9e578
 
-MovementData_0x9e578: ; 0x9e578
+MovementData_0x9e578:
 	step_down
 	step_end
-; 0x9e57a
 
-MovementData_0x9e57a: ; 0x9e57a
+MovementData_0x9e57a:
 	step_right
 	step_right
-MovementData_0x9e57c: ; 0x9e57c
+MovementData_0x9e57c:
 	step_right
 	step_right
 	step_up
@@ -315,15 +286,14 @@
 	step_right
 	turn_head_left
 	step_end
-; 0x9e582
 
-MovementData_0x9e582: ; 0x9e582
+MovementData_0x9e582:
 	step_left
 	step_left
-MovementData_0x9e584: ; 0x9e584
+MovementData_0x9e584:
 	step_left
 	step_left
-MovementData_0x9e586: ; 0x9e586
+MovementData_0x9e586:
 	step_left
 	step_left
 	step_up
@@ -330,9 +300,8 @@
 	step_left
 	turn_head_right
 	step_end
-; 0x9e58c
 
-MovementData_0x9e58c: ; 0x9e58c
+MovementData_0x9e58c:
 	step_up
 	step_up
 	step_up
@@ -339,33 +308,29 @@
 	step_up
 	turn_head_right
 	step_end
-; 0x9e592
 
-MovementData_0x9e592: ; 0x9e592
+MovementData_0x9e592:
 	slow_step_down
 	slow_step_down
 	slow_step_down
 	turn_head_left
 	step_end
-; 0x9e597
 
-MovementData_0x9e597: ; 0x9e597
+MovementData_0x9e597:
 	turn_head_up
 	slow_step_up
 	slow_step_up
 	slow_step_up
 	step_end
-; 0x9e59c
 
-MovementData_0x9e59c: ; 0x9e59c
+MovementData_0x9e59c:
 	slow_step_right
 	slow_step_right
 	slow_step_up
 	slow_step_up
 	step_end
-; 0x9e5a1
 
-MovementData_0x9e5a1: ; 0x9e5a1
+MovementData_0x9e5a1:
 	slow_step_down
 	slow_step_down
 	slow_step_left
@@ -372,19 +337,16 @@
 	slow_step_left
 	turn_head_right
 	step_end
-; 0x9e5a7
 
-MovementData_0x9e5a7: ; 0x9e5a7
+MovementData_0x9e5a7:
 	turn_head_down
 	step_end
-; 0x9e5a9
 
-MovementData_0x9e5a9: ; 0x9e5a9
+MovementData_0x9e5a9:
 	turn_head_right
 	step_end
-; 0x9e5ab
 
-UnknownText_0x9e5ab: ; 0x9e5ab
+UnknownText_0x9e5ab:
 	text "BATTLE TOWER"
 	line "welcomes you!"
 
@@ -391,21 +353,18 @@
 	para "I could show you"
 	line "to a BATTLE ROOM."
 	done
-; 0x9e5ea
 
-UnknownText_0x9e5ea: ; 0x9e5ea
+UnknownText_0x9e5ea:
 	text "Want to go into a"
 	line "BATTLE ROOM?"
 	done
-; 0x9e60a
 
-UnknownText_0x9e60a: ; 0x9e60a
+UnknownText_0x9e60a:
 	text "Right this way to"
 	line "your BATTLE ROOM."
 	done
-; 0x9e62f
 
-UnknownText_0x9e62f: ; 0x9e62f
+UnknownText_0x9e62f:
 	text "BATTLE TOWER is a"
 	line "facility made for"
 	cont "#MON battles."
@@ -464,9 +423,8 @@
 
 	para ""
 	done
-; 0x9e886
 
-UnknownText_0x9e886: ; 0x9e886
+UnknownText_0x9e886:
 	text "BATTLE TOWER is a"
 	line "facility made for"
 	cont "#MON battles."
@@ -501,9 +459,8 @@
 
 	para ""
 	done
-; 0x9e9eb
 
-UnknownText_0x9e9eb: ; 0x9e9eb
+UnknownText_0x9e9eb:
 	text "Received a list of"
 	line "LEADERS on the"
 	cont "HONOR ROLL."
@@ -510,28 +467,24 @@
 
 	para ""
 	done
-; 0x9ea1b
 
-UnknownText_0x9ea1b: ; 0x9ea1b
+UnknownText_0x9ea1b:
 	text "Please confirm on"
 	line "this monitor."
 	done
-; 0x9ea3c
 
-UnknownText_0x9ea3c: ; 0x9ea3c
+UnknownText_0x9ea3c:
 	text "Thank you!"
 
 	para ""
 	done
-; 0x9ea49
 
-UnknownText_0x9ea49: ; 0x9ea49
+UnknownText_0x9ea49:
 	text "Thanks for"
 	line "visiting!"
 	done
-; 0x9ea5f
 
-UnknownText_0x9ea5f: ; 0x9ea5f
+UnknownText_0x9ea5f:
 	text "Congratulations!"
 
 	para "You've beaten all"
@@ -548,9 +501,8 @@
 
 	para ""
 	done
-; 0x9eaef
 
-UnknownText_0x9eaef: ; 0x9eaef
+UnknownText_0x9eaef:
 	text "Congratulations!"
 
 	para "You've beaten all"
@@ -561,9 +513,8 @@
 
 	para ""
 	done
-; 0x9eb45
 
-UnknownText_0x9eb45: ; 0x9eb45
+UnknownText_0x9eb45:
 	text "Would you like to"
 	line "register your"
 
@@ -570,9 +521,8 @@
 	para "record with the"
 	line "CENTER?"
 	done
-; 0x9eb7e
 
-UnknownText_0x9eb7e: ; 0x9eb7e
+UnknownText_0x9eb7e:
 	text "<PLAYER> got five"
 	line "@"
 	text_from_ram StringBuffer4
@@ -580,9 +530,8 @@
 	sound0x0F
 	text_waitbutton
 	db "@"
-; 0x9eb94
 
-UnknownText_0x9eb94: ; 0x9eb94
+UnknownText_0x9eb94:
 	text "Oops, your PACK is"
 	line "stuffed full."
 
@@ -589,36 +538,31 @@
 	para "Please make room"
 	line "and come back."
 	done
-; 0x9ebd6
 
-UnknownText_0x9ebd6: ; 0x9ebd6
+UnknownText_0x9ebd6:
 	text "Your registration"
 	line "is complete."
 
 	para "Please come again!"
 	done
-; 0x9ec09
 
-UnknownText_0x9ec09: ; 0x9ec09
+UnknownText_0x9ec09:
 	text "We hope to serve"
 	line "you again."
 	done
-; 0x9ec26
 
-UnknownText_0x9ec26: ; 0x9ec26
+UnknownText_0x9ec26:
 	text "Please step this"
 	line "way."
 	done
-; 0x9ec3d
 
-UnknownText_0x9ec3d: ; 0x9ec3d
+UnknownText_0x9ec3d:
 	text "Would you like to"
 	line "hear about the"
 	cont "BATTLE TOWER?"
 	done
-; 0x9ec6d
 
-UnknownText_0x9ec6d: ; 0x9ec6d
+UnknownText_0x9ec6d:
 	text "Your record from"
 	line "the previous"
 
@@ -625,9 +569,8 @@
 	para "BATTLE ROOM can't"
 	line "be registered. OK?"
 	done
-; 0x9ecb0
 
-UnknownText_0x9ecb0: ; 0x9ecb0
+UnknownText_0x9ecb0:
 	text "Your record from"
 	line "the previous"
 
@@ -638,23 +581,20 @@
 	line "record will be"
 	cont "deleted. OK?"
 	done
-; 0x9ed1e
 
-UnknownText_0x9ed1e: ; 0x9ed1e
+UnknownText_0x9ed1e:
 	text "Check the LEADER"
 	line "HONOR ROLL?"
 	done
-; 0x9ed3c
 
-UnknownText_0x9ed3c: ; 0x9ed3c
+UnknownText_0x9ed3c:
 	text "BATTLE TOWER rules"
 	line "are written here."
 
 	para "Read the rules?"
 	done
-; 0x9ed72
 
-UnknownText_0x9ed72: ; 0x9ed72
+UnknownText_0x9ed72:
 	text "Three #MON may"
 	line "enter battles."
 
@@ -671,9 +611,8 @@
 	para "level restrictions"
 	line "placed on them."
 	done
-; 0x9ee18
 
-UnknownText_0x9ee18: ; 0x9ee18
+UnknownText_0x9ee18:
 	text "Excuse me!"
 	line "You didn't SAVE"
 
@@ -686,24 +625,21 @@
 	para "will be declared"
 	line "invalid."
 	done
-; 0x9ee92
 
-UnknownText_0x9ee92: ; 0x9ee92
+UnknownText_0x9ee92:
 	text "Your #MON will"
 	line "be healed to full"
 	cont "health."
 	done
-; 0x9eebc
 
-UnknownText_0x9eebc: ; 0x9eebc
+UnknownText_0x9eebc:
 	text "Next up, opponent"
 	line "no.@"
 	text_from_ram StringBuffer3
 	text ". Ready?"
 	done
-; 0x9eee0
 
-UnknownText_0x9eee0: ; 0x9eee0
+UnknownText_0x9eee0:
 	text "Your session will"
 	line "be SAVED before"
 
@@ -710,9 +646,8 @@
 	para "connecting with"
 	line "the CENTER."
 	done
-; 0x9ef1f
 
-UnknownText_0x9ef1f: ; 0x9ef1f
+UnknownText_0x9ef1f:
 	text "Before entering"
 	line "the BATTLE ROOM,"
 
@@ -719,15 +654,13 @@
 	para "your progress will"
 	line "be saved."
 	done
-; 0x9ef5e
 
-UnknownText_0x9ef5e: ; 0x9ef5e
+UnknownText_0x9ef5e:
 	text "SAVE and end the"
 	line "session?"
 	done
-; 0x9ef79
 
-UnknownText_0x9ef79: ; 0x9ef79
+UnknownText_0x9ef79:
 	text "Your record will"
 	line "be SAVED before"
 
@@ -734,15 +667,13 @@
 	para "you go back into"
 	line "the previous ROOM."
 	done
-; 0x9efbf
 
-UnknownText_0x9efbf: ; 0x9efbf
+UnknownText_0x9efbf:
 	text "Cancel your BATTLE"
 	line "ROOM challenge?"
 	done
-; 0x9efe3
 
-UnknownText_0x9efe3: ; 0x9efe3
+UnknownText_0x9efe3:
 	text "We have your"
 	line "previous record on"
 
@@ -750,9 +681,8 @@
 	line "like to register"
 	cont "it at the CENTER?"
 	done
-; 0x9f037
 
-UnknownText_0x9f037: ; 0x9f037
+UnknownText_0x9f037:
 	text "We've been waiting"
 	line "for you. This way"
 
@@ -759,9 +689,8 @@
 	para "to a BATTLE ROOM,"
 	line "please."
 	done
-; 0x9f076
 
-UnknownText_0x9f076: ; 0x9f076
+UnknownText_0x9f076:
 	text "You may enter only"
 	line "five BATTLE ROOMS"
 	cont "each day."
@@ -769,9 +698,8 @@
 	para "Please come back"
 	line "tomorrow."
 	done
-; 0x9f0c1
 
-UnknownText_0x9f0c1: ; 0x9f0c1
+UnknownText_0x9f0c1:
 	text "Sorry, but it's"
 	line "not possible to"
 
@@ -785,10 +713,9 @@
 	line "start of your"
 	cont "challenge."
 	done
-; 0x9f151
 
 ; a dupe?
-UnknownText_0x9f151: ; 0x9f151
+UnknownText_0x9f151:
 	text "Sorry, but it's"
 	line "not possible to"
 
@@ -802,9 +729,8 @@
 	line "start of your"
 	cont "challenge."
 	done
-; 0x9f1e5
 
-UnknownText_0x9f1e5: ; 0x9f1e5
+UnknownText_0x9f1e5:
 	text "One or more of"
 	line "your #MON's"
 	cont "levels exceeds @"
@@ -811,9 +737,8 @@
 	deciram ScriptVar, $13
 	text "."
 	done
-; 0x9f217
 
-UnknownText_0x9f217: ; 0x9f217
+UnknownText_0x9f217:
 	text_from_ram wcd49
 	text " may not"
 	line "enter a BATTLE"
@@ -824,9 +749,8 @@
 	deciram ScriptVar, $13
 	text "."
 	done
-; 0x9f264
 
-UnknownText_0x9f264: ; 0x9f264
+UnknownText_0x9f264:
 	text "Destroyed by the"
 	line "first opponent in"
 
@@ -833,9 +757,8 @@
 	para "no time at all…"
 	line "I'm no good…"
 	done
-; 0x9f2a4
 
-UnknownText_0x9f2a4: ; 0x9f2a4
+UnknownText_0x9f2a4:
 	text "There are lots of"
 	line "BATTLE ROOMS, but"
 
@@ -842,9 +765,8 @@
 	para "I'm going to win"
 	line "them all!"
 	done
-; 0x9f2e3
 
-UnknownText_0x9f2e3: ; 0x9f2e3
+UnknownText_0x9f2e3:
 	text "It's a grueling"
 	line "task, not being"
 
@@ -857,9 +779,8 @@
 	para "is the key to"
 	line "winning battles."
 	done
-; 0x9f35b
 
-UnknownText_0x9f35b: ; 0x9f35b
+UnknownText_0x9f35b:
 	text "I'm trying to see"
 	line "how far I can go"
 
@@ -869,30 +790,28 @@
 	para "Don't let there be"
 	line "any fire #MON…"
 	done
-; 0x9f3b4
 
-BattleTower1F_MapEventHeader: ; 0x9f3b4
+BattleTower1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 6, 6, $0, MapBattleTower1FSignpost0Script
+	signpost 6, 6, SIGNPOST_READ, MapBattleTower1FSignpost0Script
 
-	; people-events
+.PersonEvents:
 	db 5
-	person_event SPRITE_RECEPTIONIST, 10, 11, $6, $0, 255, 255, $0, 0, ReceptionistScript_0x9e3e2, $ffff
-	person_event SPRITE_YOUNGSTER, 13, 18, $9, $0, 255, 255, $b0, 0, YoungsterScript_0x9e55d, $ffff
-	person_event SPRITE_COOLTRAINER_F, 13, 8, $5, $1, 255, 255, $80, 0, CooltrainerFScript_0x9e568, $ffff
-	person_event SPRITE_BUG_CATCHER, 7, 5, $2, $11, 255, 255, $90, 0, BugCatcherScript_0x9e56b, $ffff
-	person_event SPRITE_GRANNY, 7, 18, $4, $10, 255, 255, $0, 0, GrannyScript_0x9e56e, $ffff
-; 0x9f40f
+	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
--- a/maps/BattleTowerBattleRoom.asm
+++ b/maps/BattleTowerBattleRoom.asm
@@ -1,5 +1,5 @@
-BattleTowerBattleRoom_MapScriptHeader: ; 0x9f40f
-	; trigger count
+BattleTowerBattleRoom_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,23 +6,20 @@
 	dw UnknownScript_0x9f419, $0000
 	dw UnknownScript_0x9f420, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9f419
 
-UnknownScript_0x9f419: ; 0x9f419
+UnknownScript_0x9f419:
 	disappear $2
 	priorityjump UnknownScript_0x9f421
 	dotrigger $1
-; 0x9f420
 
-UnknownScript_0x9f420: ; 0x9f420
+UnknownScript_0x9f420:
 	end
-; 0x9f421
 
-UnknownScript_0x9f421: ; 0x9f421
+UnknownScript_0x9f421:
 	applymovement $0, MovementData_0x9e58c
-UnknownScript_0x9f425: ; 0x9f425
+UnknownScript_0x9f425:
 	writebyte $2
 	special Function170b44
 	appear $2
@@ -34,7 +31,7 @@
 	keeptextopen
 	loadmovesprites
 	special Function170215
-	special Function8c084
+	special FadeBlackBGMap
 	reloadmap
 	if_not_equal $0, UnknownScript_0x9f4c2
 	copybytetovar wcf64
@@ -49,23 +46,22 @@
 	closetext
 	loadmovesprites
 	playmusic MUSIC_HEAL
-	special Function8c084
-	special Function1047eb
+	special FadeBlackBGMap
+	special LoadMapPalettes
 	pause 60
-	special Function8c079
+	special FadeInBGMap
 	special RestartMapMusic
 	loadfont
 	writetext UnknownText_0x9eebc
 	yesorno
 	iffalse UnknownScript_0x9f483
-UnknownScript_0x9f477: ; 0x9f477
+UnknownScript_0x9f477:
 	loadmovesprites
 	applymovement $0, MovementData_0x9e5a9
 	applymovement $3, MovementData_0x9e5a1
 	jump UnknownScript_0x9f425
-; 0x9f483
 
-UnknownScript_0x9f483: ; 0x9f483
+UnknownScript_0x9f483:
 	writetext UnknownText_0x9ef5e
 	yesorno
 	iffalse UnknownScript_0x9f4a3
@@ -77,9 +73,9 @@
 	special Function170687
 	playsound SFX_SAVE
 	waitbutton
-	special Function8c084
+	special FadeBlackBGMap
 	special Reset
-UnknownScript_0x9f4a3: ; 0x9f4a3
+UnknownScript_0x9f4a3:
 	writetext UnknownText_0x9efbf
 	yesorno
 	iffalse UnknownScript_0x9f477
@@ -88,15 +84,14 @@
 	writebyte $6
 	special Function170687
 	loadmovesprites
-	special Function8c084
+	special FadeBlackBGMap
 	warpfacing $1, GROUP_BATTLE_TOWER_1F, MAP_BATTLE_TOWER_1F, $7, $7
 	loadfont
 	jump UnknownScript_0x9e4b0
-; 0x9f4c2
 
-UnknownScript_0x9f4c2: ; 0x9f4c2
+UnknownScript_0x9f4c2:
 	pause 60
-	special Function8c092
+	special Special_BattleTowerFade
 	warpfacing $1, GROUP_BATTLE_TOWER_1F, MAP_BATTLE_TOWER_1F, $7, $7
 	writebyte $4
 	special Function170687
@@ -105,19 +100,17 @@
 	closetext
 	loadmovesprites
 	end
-; 0x9f4d9
 
-UnknownScript_0x9f4d9: ; 0x9f4d9
+UnknownScript_0x9f4d9:
 	pause 60
-	special Function8c092
+	special Special_BattleTowerFade
 	warpfacing $1, GROUP_BATTLE_TOWER_1F, MAP_BATTLE_TOWER_1F, $7, $7
-BattleTowerBattleRoomScript_0x9f4e4: ; 0x9f4e4
+BattleTowerBattleRoomScript_0x9f4e4:
 	loadfont
 	writetext UnknownText_0x9eaef
 	jump UnknownScript_0x9e47a
-; 0x9f4eb
 
-UnknownScript_0x9f4eb: ; 0x9f4eb
+UnknownScript_0x9f4eb:
 	writebyte $4
 	special Function170687
 	loadfont
@@ -125,9 +118,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x9f4f7
 
-UnknownScript_0x9f4f7: ; 0x9f4f7
+UnknownScript_0x9f4f7:
 	writebyte $4
 	special Function170687
 	writebyte $6
@@ -138,33 +130,30 @@
 	closetext
 	loadmovesprites
 	end
-; 0x9f50b
 
 
-UnknownText_0x9f50b: ; 0x9f50b
+UnknownText_0x9f50b:
 	text "You'll be returned"
 	line "after you SAVE."
 	done
-; 0x9f52e
 
 
-BattleTowerBattleRoom_MapEventHeader: ; 0x9f52e
+BattleTowerBattleRoom_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_YOUNGSTER, 4, 8, $6, $0, 255, 255, $0, 0, ObjectEvent, $0791
-	person_event SPRITE_RECEPTIONIST, 10, 5, $9, $0, 255, 255, $0, 0, ObjectEvent, $ffff
-; 0x9f558
+	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
--- a/maps/BattleTowerElevator.asm
+++ b/maps/BattleTowerElevator.asm
@@ -1,5 +1,5 @@
-BattleTowerElevator_MapScriptHeader: ; 0x9f558
-	; trigger count
+BattleTowerElevator_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,20 +6,17 @@
 	dw UnknownScript_0x9f562, $0000
 	dw UnknownScript_0x9f567, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9f562
 
-UnknownScript_0x9f562: ; 0x9f562
+UnknownScript_0x9f562:
 	priorityjump UnknownScript_0x9f568
 	dotrigger $1
-; 0x9f567
 
-UnknownScript_0x9f567: ; 0x9f567
+UnknownScript_0x9f567:
 	end
-; 0x9f568
 
-UnknownScript_0x9f568: ; 0x9f568
+UnknownScript_0x9f568:
 	follow $2, $0
 	applymovement $2, MovementData_0x9f58f
 	applymovement $0, MovementData_0x9f592
@@ -36,35 +33,31 @@
 	applymovement $0, MovementData_0x9e578
 	warpcheck
 	end
-; 0x9f58f
 
-MovementData_0x9f58f: ; 0x9f58f
+MovementData_0x9f58f:
 	step_right
 	turn_head_down
 	step_end
-; 0x9f592
 
-MovementData_0x9f592: ; 0x9f592
+MovementData_0x9f592:
 	turn_head_down
 	step_end
-; 0x9f594
 
-BattleTowerElevator_MapEventHeader: ; 0x9f594
+BattleTowerElevator_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_RECEPTIONIST, 6, 5, $9, $0, 255, 255, $0, 0, MovementData_0x9f58f, $ffff
-; 0x9f5b1
+	person_event SPRITE_RECEPTIONIST, 6, 5, OW_LEFT | $1, $0, -1, -1, $0, 0, MovementData_0x9f58f, -1
--- a/maps/BattleTowerHallway.asm
+++ b/maps/BattleTowerHallway.asm
@@ -1,5 +1,5 @@
-BattleTowerHallway_MapScriptHeader: ; 0x9f5b1
-	; trigger count
+BattleTowerHallway_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,27 +6,23 @@
 	dw UnknownScript_0x9f5bb, $0000
 	dw UnknownScript_0x9f5c0, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9f5bb
 
-UnknownScript_0x9f5bb: ; 0x9f5bb
+UnknownScript_0x9f5bb:
 	priorityjump UnknownScript_0x9f5c1
 	dotrigger $1
-; 0x9f5c0
 
-UnknownScript_0x9f5c0: ; 0x9f5c0
+UnknownScript_0x9f5c0:
 	end
-; 0x9f5c1
 
-UnknownScript_0x9f5c1: ; 0x9f5c1
+UnknownScript_0x9f5c1:
 	follow $2, $0
 	callasm Function_0x9f5cb
 	jump UnknownScript_0x9f5dc
-; 0x9f5cb
 
 
-Function_0x9f5cb: ; 0x9f5cb
+Function_0x9f5cb:
 	ld a, [rSVBK]
 	push af
 
@@ -38,10 +34,9 @@
 	pop af
 	ld [rSVBK], a
 	ret
-; 0x9f5dc
 
 
-UnknownScript_0x9f5dc: ; 0x9f5dc
+UnknownScript_0x9f5dc:
 	if_equal $3, UnknownScript_0x9f603
 	if_equal $4, UnknownScript_0x9f603
 	if_equal $5, UnknownScript_0x9f60a
@@ -52,29 +47,24 @@
 	if_equal $a, UnknownScript_0x9f618
 	applymovement $2, MovementData_0x9e57a
 	jump UnknownScript_0x9f61f
-; 0x9f603
 
-UnknownScript_0x9f603: ; 0x9f603
+UnknownScript_0x9f603:
 	applymovement $2, MovementData_0x9e57c
 	jump UnknownScript_0x9f61f
-; 0x9f60a
 
-UnknownScript_0x9f60a: ; 0x9f60a
+UnknownScript_0x9f60a:
 	applymovement $2, MovementData_0x9e586
 	jump UnknownScript_0x9f61f
-; 0x9f611
 
-UnknownScript_0x9f611: ; 0x9f611
+UnknownScript_0x9f611:
 	applymovement $2, MovementData_0x9e584
 	jump UnknownScript_0x9f61f
-; 0x9f618
 
-UnknownScript_0x9f618: ; 0x9f618
+UnknownScript_0x9f618:
 	applymovement $2, MovementData_0x9e582
 	jump UnknownScript_0x9f61f
-; 0x9f61f
 
-UnknownScript_0x9f61f: ; 0x9f61f
+UnknownScript_0x9f61f:
 	faceperson $0, $2
 	loadfont
 	writetext UnknownText_0x9ec26
@@ -84,13 +74,12 @@
 	applymovement $0, MovementData_0x9e576
 	warpcheck
 	end
-; 0x9f62f
 
-BattleTowerHallway_MapEventHeader: ; 0x9f62f
+BattleTowerHallway_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -99,13 +88,12 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_RECEPTIONIST, 6, 15, $6, $0, 255, 255, $0, 0, BattleTowerHallway_MapEventHeader, $ffff
-; 0x9f660
+	person_event SPRITE_RECEPTIONIST, 6, 15, OW_UP | $2, $0, -1, -1, $0, 0, BattleTowerHallway_MapEventHeader, -1
--- a/maps/BattleTowerOutside.asm
+++ b/maps/BattleTowerOutside.asm
@@ -1,8 +1,8 @@
 BattleTowerOutside_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 2
 
 	; callbacks
@@ -13,7 +13,7 @@
 	return
 
 .Callback2
-	clearevent $07cf
+	clearevent EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
 	return
 
 StandingYoungsterScript_0x9f85f:
@@ -126,7 +126,7 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -133,16 +133,16 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 10, 10, $0, MapBattleTowerOutsideSignpost0Script
+	signpost 10, 10, SIGNPOST_READ, MapBattleTowerOutsideSignpost0Script
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_STANDING_YOUNGSTER, 16, 10, $7, $0, 255, 255, $80, 0, StandingYoungsterScript_0x9f85f, $ffff
-	person_event SPRITE_BUENA, 15, 17, $2, $11, 255, 255, $a0, 0, BuenaScript_0x9f862, $ffff
-	person_event SPRITE_SAILOR, 22, 16, $5, $1, 255, 255, $0, 0, SailorScript_0x9f865, $07cf
-	person_event SPRITE_LASS, 28, 16, $3, $0, 255, 255, $a0, 0, ObjectEvent, $ffff
+	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
--- a/maps/BillsHouse.asm
+++ b/maps/BillsHouse.asm
@@ -1,15 +1,14 @@
-BillsHouse_MapScriptHeader: ; 0x189536
-	; trigger count
+BillsHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x189538
 
-GrampsScript_0x189538: ; 0x189538
+GrampsScript_0x189538:
 	faceplayer
 	loadfont
-	checkevent $0000
+	checkevent EVENT_GAVE_KURT_APRICORNS
 	iftrue UnknownScript_0x1896ba
 	checkevent EVENT_GOT_THUNDERSTONE_FROM_BILLS_GRANDPA
 	iftrue UnknownScript_0x1896c0
@@ -18,7 +17,7 @@
 	writetext UnknownText_0x1896ce
 	keeptextopen
 	setevent EVENT_MET_BILLS_GRANDPA
-UnknownScript_0x189553: ; 0x189553
+UnknownScript_0x189553:
 	checkevent EVENT_SHOWED_PICHU_TO_BILLS_GRANDPA
 	iftrue UnknownScript_0x189697
 	checkevent EVENT_SHOWED_GROWLITHE_VULPIX_TO_BILLS_GRANDPA
@@ -41,9 +40,8 @@
 	scall UnknownScript_0x1896b0
 	setevent EVENT_SHOWED_LICKITUNG_TO_BILLS_GRANDPA
 	jump UnknownScript_0x18963b
-; 0x189592
 
-UnknownScript_0x189592: ; 0x189592
+UnknownScript_0x189592:
 	writetext UnknownText_0x1898ff
 	keeptextopen
 	writetext UnknownText_0x189732
@@ -56,9 +54,8 @@
 	scall UnknownScript_0x1896b0
 	setevent EVENT_SHOWED_ODDISH_TO_BILLS_GRANDPA
 	jump UnknownScript_0x189652
-; 0x1895b3
 
-UnknownScript_0x1895b3: ; 0x1895b3
+UnknownScript_0x1895b3:
 	writetext UnknownText_0x189953
 	keeptextopen
 	writetext UnknownText_0x189732
@@ -71,9 +68,8 @@
 	scall UnknownScript_0x1896b0
 	setevent EVENT_SHOWED_STARYU_TO_BILLS_GRANDPA
 	jump UnknownScript_0x189669
-; 0x1895d4
 
-UnknownScript_0x1895d4: ; 0x1895d4
+UnknownScript_0x1895d4:
 	checkver
 	iftrue UnknownScript_0x1895f9
 	writetext UnknownText_0x1899fe
@@ -88,9 +84,8 @@
 	scall UnknownScript_0x1896b0
 	setevent EVENT_SHOWED_GROWLITHE_VULPIX_TO_BILLS_GRANDPA
 	jump UnknownScript_0x189680
-; 0x1895f9
 
-UnknownScript_0x1895f9: ; 0x1895f9
+UnknownScript_0x1895f9:
 	writetext UnknownText_0x189a57
 	keeptextopen
 	writetext UnknownText_0x189732
@@ -103,9 +98,8 @@
 	scall UnknownScript_0x1896b0
 	setevent EVENT_SHOWED_GROWLITHE_VULPIX_TO_BILLS_GRANDPA
 	jump UnknownScript_0x189680
-; 0x18961a
 
-UnknownScript_0x18961a: ; 0x18961a
+UnknownScript_0x18961a:
 	writetext UnknownText_0x189ab1
 	keeptextopen
 	writetext UnknownText_0x189732
@@ -118,9 +112,8 @@
 	scall UnknownScript_0x1896b0
 	setevent EVENT_SHOWED_PICHU_TO_BILLS_GRANDPA
 	jump UnknownScript_0x189697
-; 0x18963b
 
-UnknownScript_0x18963b: ; 0x18963b
+UnknownScript_0x18963b:
 	checkevent EVENT_GOT_EVERSTONE_FROM_BILLS_GRANDPA
 	iftrue UnknownScript_0x189592
 	scall UnknownScript_0x1896b5
@@ -127,12 +120,11 @@
 	verbosegiveitem EVERSTONE, 1
 	iffalse UnknownScript_0x1896cc
 	setevent EVENT_GOT_EVERSTONE_FROM_BILLS_GRANDPA
-	setevent $0000
+	setevent EVENT_GAVE_KURT_APRICORNS
 	loadmovesprites
 	end
-; 0x189652
 
-UnknownScript_0x189652: ; 0x189652
+UnknownScript_0x189652:
 	checkevent EVENT_GOT_LEAF_STONE_FROM_BILLS_GRANDPA
 	iftrue UnknownScript_0x1895b3
 	scall UnknownScript_0x1896b5
@@ -139,12 +131,11 @@
 	verbosegiveitem LEAF_STONE, 1
 	iffalse UnknownScript_0x1896cc
 	setevent EVENT_GOT_LEAF_STONE_FROM_BILLS_GRANDPA
-	setevent $0000
+	setevent EVENT_GAVE_KURT_APRICORNS
 	loadmovesprites
 	end
-; 0x189669
 
-UnknownScript_0x189669: ; 0x189669
+UnknownScript_0x189669:
 	checkevent EVENT_GOT_WATER_STONE_FROM_BILLS_GRANDPA
 	iftrue UnknownScript_0x1895d4
 	scall UnknownScript_0x1896b5
@@ -151,12 +142,11 @@
 	verbosegiveitem WATER_STONE, 1
 	iffalse UnknownScript_0x1896cc
 	setevent EVENT_GOT_WATER_STONE_FROM_BILLS_GRANDPA
-	setevent $0000
+	setevent EVENT_GAVE_KURT_APRICORNS
 	loadmovesprites
 	end
-; 0x189680
 
-UnknownScript_0x189680: ; 0x189680
+UnknownScript_0x189680:
 	checkevent EVENT_GOT_FIRE_STONE_FROM_BILLS_GRANDPA
 	iftrue UnknownScript_0x18961a
 	scall UnknownScript_0x1896b5
@@ -163,12 +153,11 @@
 	verbosegiveitem FIRE_STONE, 1
 	iffalse UnknownScript_0x1896cc
 	setevent EVENT_GOT_FIRE_STONE_FROM_BILLS_GRANDPA
-	setevent $0000
+	setevent EVENT_GAVE_KURT_APRICORNS
 	loadmovesprites
 	end
-; 0x189697
 
-UnknownScript_0x189697: ; 0x189697
+UnknownScript_0x189697:
 	scall UnknownScript_0x1896b5
 	verbosegiveitem THUNDERSTONE, 1
 	iffalse UnknownScript_0x1896cc
@@ -175,60 +164,51 @@
 	setevent EVENT_GOT_THUNDERSTONE_FROM_BILLS_GRANDPA
 	loadmovesprites
 	end
-; 0x1896a5
 
-UnknownScript_0x1896a5: ; 0x1896a5
+UnknownScript_0x1896a5:
 	writetext UnknownText_0x189760
 	keeptextopen
 	end
-; 0x1896aa
 
-UnknownScript_0x1896aa: ; 0x1896aa
+UnknownScript_0x1896aa:
 	writetext UnknownText_0x189784
 	closetext
 	loadmovesprites
 	end
-; 0x1896b0
 
-UnknownScript_0x1896b0: ; 0x1896b0
+UnknownScript_0x1896b0:
 	writetext UnknownText_0x1897a6
 	keeptextopen
 	end
-; 0x1896b5
 
-UnknownScript_0x1896b5: ; 0x1896b5
+UnknownScript_0x1896b5:
 	writetext UnknownText_0x1897e1
 	keeptextopen
 	end
-; 0x1896ba
 
-UnknownScript_0x1896ba: ; 0x1896ba
+UnknownScript_0x1896ba:
 	writetext UnknownText_0x18980e
 	closetext
 	loadmovesprites
 	end
-; 0x1896c0
 
-UnknownScript_0x1896c0: ; 0x1896c0
+UnknownScript_0x1896c0:
 	writetext UnknownText_0x18982a
 	closetext
 	loadmovesprites
 	end
-; 0x1896c6
 
-UnknownScript_0x1896c6: ; 0x1896c6
+UnknownScript_0x1896c6:
 	writetext UnknownText_0x189891
 	closetext
 	loadmovesprites
 	end
-; 0x1896cc
 
-UnknownScript_0x1896cc: ; 0x1896cc
+UnknownScript_0x1896cc:
 	loadmovesprites
 	end
-; 0x1896ce
 
-UnknownText_0x1896ce: ; 0x1896ce
+UnknownText_0x1896ce:
 	text "Hm? You know BILL?"
 	line "He's my grandson."
 
@@ -238,28 +218,24 @@
 	para "with PCs, so I'm"
 	line "house-sitting."
 	done
-; 0x189732
 
-UnknownText_0x189732: ; 0x189732
+UnknownText_0x189732:
 	text "If you have that"
 	line "#MON, may I see"
 	cont "it, please?"
 	done
-; 0x189760
 
-UnknownText_0x189760: ; 0x189760
+UnknownText_0x189760:
 	text "You will show me?"
 	line "How good of you!"
 	done
-; 0x189784
 
-UnknownText_0x189784: ; 0x189784
+UnknownText_0x189784:
 	text "You don't have it?"
 	line "That's too bad…"
 	done
-; 0x1897a6
 
-UnknownText_0x1897a6: ; 0x1897a6
+UnknownText_0x1897a6:
 	text "Ah, so that is"
 	line "@"
 	text_from_ram StringBuffer3
@@ -269,23 +245,20 @@
 	line "That's so kind of"
 	cont "you."
 	done
-; 0x1897e1
 
-UnknownText_0x1897e1: ; 0x1897e1
+UnknownText_0x1897e1:
 	text "Thanks!"
 
 	para "This is a token of"
 	line "my appreciation."
 	done
-; 0x18980e
 
-UnknownText_0x18980e: ; 0x18980e
+UnknownText_0x18980e:
 	text "Come visit again"
 	line "sometime."
 	done
-; 0x18982a
 
-UnknownText_0x18982a: ; 0x18982a
+UnknownText_0x18982a:
 	text "Thanks for showing"
 	line "me so many cute"
 	cont "#MON."
@@ -296,9 +269,8 @@
 	para "I've lived such a"
 	line "long life."
 	done
-; 0x189891
 
-UnknownText_0x189891: ; 0x189891
+UnknownText_0x189891:
 	text "Hm?"
 
 	para "That's not the"
@@ -305,9 +277,8 @@
 	line "#MON that I was"
 	cont "told about."
 	done
-; 0x1898c0
 
-UnknownText_0x1898c0: ; 0x1898c0
+UnknownText_0x1898c0:
 	text "My grandson BILL"
 	line "told me about a"
 
@@ -314,9 +285,8 @@
 	para "#MON that has a"
 	line "long tongue."
 	done
-; 0x1898ff
 
-UnknownText_0x1898ff: ; 0x1898ff
+UnknownText_0x1898ff:
 	text "Ah, my grandson"
 	line "mentioned a round,"
 
@@ -324,9 +294,8 @@
 	line "has leaves growing"
 	cont "on its head."
 	done
-; 0x189953
 
-UnknownText_0x189953: ; 0x189953
+UnknownText_0x189953:
 	text "Do you know of a"
 	line "sea #MON that"
 
@@ -343,9 +312,8 @@
 	para "I would surely"
 	line "like to see it."
 	done
-; 0x1899fe
 
-UnknownText_0x1899fe: ; 0x1899fe
+UnknownText_0x1899fe:
 	text "BILL told me about"
 	line "a #MON that is"
 
@@ -355,9 +323,8 @@
 	para "It's supposed to"
 	line "ROAR well."
 	done
-; 0x189a57
 
-UnknownText_0x189a57: ; 0x189a57
+UnknownText_0x189a57:
 	text "I heard about a"
 	line "cute #MON that"
 	cont "has six tails."
@@ -366,9 +333,8 @@
 	line "hug a cute #MON"
 	cont "like that."
 	done
-; 0x189ab1
 
-UnknownText_0x189ab1: ; 0x189ab1
+UnknownText_0x189ab1:
 	text "Do you know that"
 	line "hugely popular"
 	cont "#MON?"
@@ -383,24 +349,22 @@
 	para "like before it"
 	line "evolves."
 	done
-; 0x189b42
 
-BillsHouse_MapEventHeader: ; 0x189b42
+BillsHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_GRAMPS, 7, 6, $7, $20, 255, 255, $90, 0, GrampsScript_0x189538, $ffff
-; 0x189b5f
+	person_event SPRITE_GRAMPS, 7, 6, OW_UP | $3, $20, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, GrampsScript_0x189538, -1
--- a/maps/BlackthornCity.asm
+++ b/maps/BlackthornCity.asm
@@ -1,8 +1,8 @@
 BlackthornCity_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 2
 
 	; callbacks
@@ -14,7 +14,7 @@
 	return
 
 .Santos
-	checkcode $b
+	checkcode VAR_WEEKDAY
 	if_equal SATURDAY, .SantosAppears
 	disappear $9
 	return
@@ -83,7 +83,7 @@
 	loadfont
 	checkevent EVENT_GOT_SPELL_TAG_FROM_SANTOS
 	iftrue SantosSaturdayScript
-	checkcode $b
+	checkcode VAR_WEEKDAY
 	if_not_equal SATURDAY, SantosNotSaturdayScript
 	checkevent EVENT_MET_SANTOS_OF_SATURDAY
 	iftrue .MetSantos
@@ -307,7 +307,7 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -318,27 +318,27 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 7
-	signpost 24, 34, $0, BlackthornCitySign
-	signpost 13, 17, $0, BlackthornGymSign
-	signpost 31, 7, $0, MoveDeletersHouseSign
-	signpost 3, 21, $0, DragonDensSign
-	signpost 25, 5, $0, BlackthornCityTrainerTips
-	signpost 29, 16, $0, BlackthornCityMartSign
-	signpost 29, 22, $0, BlackthornCityPokeCenterSign
+	signpost 24, 34, SIGNPOST_READ, BlackthornCitySign
+	signpost 13, 17, SIGNPOST_READ, BlackthornGymSign
+	signpost 31, 7, SIGNPOST_READ, MoveDeletersHouseSign
+	signpost 3, 21, SIGNPOST_READ, DragonDensSign
+	signpost 25, 5, SIGNPOST_READ, BlackthornCityTrainerTips
+	signpost 29, 16, SIGNPOST_READ, BlackthornCityMartSign
+	signpost 29, 22, SIGNPOST_READ, BlackthornCityPokeCenterSign
 
-	; people-events
+.PersonEvents:
 	db 9
-	person_event SPRITE_SUPER_NERD, 16, 22, $6, $0, 255, 255, $80, 0, SuperNerdScript_0x1a46e8, $06e3
-	person_event SPRITE_SUPER_NERD, 16, 23, $6, $0, 255, 255, $80, 0, SuperNerdScript_0x1a46e8, $06e4
-	person_event SPRITE_GRAMPS, 6, 24, $6, $0, 255, 255, $0, 0, GrampsScript_0x1a4708, $074c
-	person_event SPRITE_GRAMPS, 6, 25, $8, $0, 255, 255, $0, 0, GrampsScript_0x1a470b, $074d
-	person_event SPRITE_BLACK_BELT, 35, 28, $5, $1, 255, 255, $90, 0, BlackBeltScript_0x1a470e, $ffff
-	person_event SPRITE_COOLTRAINER_F, 29, 13, $5, $2, 255, 255, $80, 0, CooltrainerFScript_0x1a4722, $ffff
-	person_event SPRITE_YOUNGSTER, 19, 17, $5, $1, 255, 255, $0, 0, YoungsterScript_0x1a4725, $ffff
-	person_event SPRITE_YOUNGSTER, 24, 26, $6, $0, 255, 255, $0, 0, SantosScript, $075d
-	person_event SPRITE_COOLTRAINER_F, 23, 39, $7, $0, 255, 255, $a0, 0, CooltrainerFScript_0x1a4728, $ffff
+	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
--- a/maps/BlackthornDodrioTradeHouse.asm
+++ b/maps/BlackthornDodrioTradeHouse.asm
@@ -1,8 +1,8 @@
-BlackthornDodrioTradeHouse_MapScriptHeader: ; 0x195a28
-	; trigger count
+BlackthornDodrioTradeHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 Emy:
@@ -16,24 +16,23 @@
 EmysHouseBookshelf:
 	jumpstd magazinebookshelf
 
-BlackthornDodrioTradeHouse_MapEventHeader: ; 0x195a34
+BlackthornDodrioTradeHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 0, $0, EmysHouseBookshelf
-	signpost 1, 1, $0, EmysHouseBookshelf
+	signpost 1, 0, SIGNPOST_READ, EmysHouseBookshelf
+	signpost 1, 1, SIGNPOST_READ, EmysHouseBookshelf
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_LASS, 7, 6, $3, $0, 255, 255, $a0, 0, Emy, $ffff
-; 0x195a5b
+	person_event SPRITE_LASS, 7, 6, OW_DOWN | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, Emy, -1
--- a/maps/BlackthornDragonSpeechHouse.asm
+++ b/maps/BlackthornDragonSpeechHouse.asm
@@ -1,16 +1,14 @@
-BlackthornDragonSpeechHouse_MapScriptHeader: ; 0x195947
-	; trigger count
+BlackthornDragonSpeechHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x195949
 
-GrannyScript_0x195949: ; 0x195949
+GrannyScript_0x195949:
 	jumptextfaceplayer UnknownText_0x19595c
-; 0x19594c
 
-EkansScript_0x19594c: ; 0x19594c
+EkansScript_0x19594c:
 	loadfont
 	writetext UnknownText_0x1959ee
 	cry DRATINI
@@ -17,7 +15,6 @@
 	closetext
 	loadmovesprites
 	end
-; 0x195956
 
 UnknownScript_0x195956:
 	jumpstd picturebookshelf
@@ -25,7 +22,7 @@
 UnknownScript_0x195959:
 	jumpstd magazinebookshelf
 
-UnknownText_0x19595c: ; 0x19595c
+UnknownText_0x19595c:
 	text "A clan of trainers"
 	line "who can freely"
 
@@ -39,30 +36,27 @@
 	para "about dragons in"
 	line "this town."
 	done
-; 0x1959ee
 
-UnknownText_0x1959ee: ; 0x1959ee
+UnknownText_0x1959ee:
 	text "DRATINI: Draa!"
 	done
-; 0x1959fe
 
-BlackthornDragonSpeechHouse_MapEventHeader: ; 0x1959fe
+BlackthornDragonSpeechHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_GRANNY, 7, 6, $3, $0, 255, 255, $0, 0, GrannyScript_0x195949, $ffff
-	person_event SPRITE_EKANS, 9, 9, $16, $0, 255, 255, $90, 0, EkansScript_0x19594c, $ffff
-; 0x195a28
+	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
--- a/maps/BlackthornGym1F.asm
+++ b/maps/BlackthornGym1F.asm
@@ -1,8 +1,8 @@
 BlackthornGym1F_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -26,10 +26,10 @@
 ClairScript_0x194e24:
 	faceplayer
 	loadfont
-	checkflag $0022
+	checkflag ENGINE_RISINGBADGE
 	iftrue UnknownScript_0x194e69
 	checkevent EVENT_BEAT_CLAIR
-	iftrue UnknownScript_0x194e63
+	iftrue .FightDone
 	writetext UnknownText_0x194efa
 	closetext
 	loadmovesprites
@@ -47,12 +47,11 @@
 	setevent EVENT_BEAT_COOLTRAINERM_MIKE
 	setevent EVENT_BEAT_COOLTRAINERF_FRAN
 	setevent EVENT_BEAT_COOLTRAINERF_LOLA
-	clearevent $0736
-	setevent $074c
-	clearevent $074d
+	clearevent EVENT_MAHOGANY_MART_OWNERS
+	setevent EVENT_BLACKTHORN_CITY_GRAMPS_BLOCKS_DRAGONS_DEN
+	clearevent EVENT_BLACKTHORN_CITY_GRAMPS_NOT_BLOCKING_DRAGONS_DEN
 	end
-
-UnknownScript_0x194e63:
+.FightDone
 	writetext UnknownText_0x195162
 	closetext
 	loadmovesprites
@@ -63,9 +62,9 @@
 	iftrue UnknownScript_0x194e94
 	writetext UnknownText_0x195196
 	keeptextopen
-	giveitem TM_24, $1
+	giveitem TM_DRAGONBREATH, $1
 	iffalse UnknownScript_0x194e8e
-	itemtotext TM_24, $0
+	itemtotext TM_DRAGONBREATH, $0
 	writetext UnknownText_0x1951bf
 	playsound SFX_ITEM
 	waitbutton
@@ -88,24 +87,8 @@
 	end
 
 TrainerCooltrainermPaul:
-	; bit/flag number
-	dw $54a
+	trainer EVENT_BEAT_COOLTRAINERM_PAUL, COOLTRAINERM, PAUL, CooltrainermPaulSeenText, CooltrainermPaulBeatenText, $0000, CooltrainermPaulScript
 
-	; trainer group && trainer id
-	db COOLTRAINERM, PAUL
-
-	; text when seen
-	dw CooltrainermPaulSeenText
-
-	; text when trainer beaten
-	dw CooltrainermPaulBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainermPaulScript
-
 CooltrainermPaulScript:
 	talkaftercancel
 	loadfont
@@ -115,24 +98,8 @@
 	end
 
 TrainerCooltrainermMike:
-	; bit/flag number
-	dw $54c
+	trainer EVENT_BEAT_COOLTRAINERM_MIKE, COOLTRAINERM, MIKE, CooltrainermMikeSeenText, CooltrainermMikeBeatenText, $0000, CooltrainermMikeScript
 
-	; trainer group && trainer id
-	db COOLTRAINERM, MIKE
-
-	; text when seen
-	dw CooltrainermMikeSeenText
-
-	; text when trainer beaten
-	dw CooltrainermMikeBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainermMikeScript
-
 CooltrainermMikeScript:
 	talkaftercancel
 	loadfont
@@ -142,24 +109,8 @@
 	end
 
 TrainerCooltrainerfLola:
-	; bit/flag number
-	dw $55e
+	trainer EVENT_BEAT_COOLTRAINERF_LOLA, COOLTRAINERF, LOLA, CooltrainerfLolaSeenText, CooltrainerfLolaBeatenText, $0000, CooltrainerfLolaScript
 
-	; trainer group && trainer id
-	db COOLTRAINERF, LOLA
-
-	; text when seen
-	dw CooltrainerfLolaSeenText
-
-	; text when trainer beaten
-	dw CooltrainerfLolaBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainerfLolaScript
-
 CooltrainerfLolaScript:
 	talkaftercancel
 	loadfont
@@ -433,7 +384,7 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -443,18 +394,18 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 15, 3, $0, BlackthornGymStatue
-	signpost 15, 6, $0, BlackthornGymStatue
+	signpost 15, 3, SIGNPOST_READ, BlackthornGymStatue
+	signpost 15, 6, SIGNPOST_READ, BlackthornGymStatue
 
-	; people-events
+.PersonEvents:
 	db 5
-	person_event SPRITE_CLAIR, 7, 9, $6, $0, 255, 255, $90, 0, ClairScript_0x194e24, $ffff
-	person_event SPRITE_COOLTRAINER_M, 10, 10, $6, $0, 255, 255, $82, 3, TrainerCooltrainermMike, $ffff
-	person_event SPRITE_COOLTRAINER_M, 18, 5, $6, $0, 255, 255, $82, 3, TrainerCooltrainermPaul, $ffff
-	person_event SPRITE_COOLTRAINER_F, 6, 13, $6, $0, 255, 255, $82, 1, TrainerCooltrainerfLola, $ffff
-	person_event SPRITE_GYM_GUY, 19, 11, $6, $0, 255, 255, $80, 0, BlackthornGymGuyScript, $ffff
+	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
--- a/maps/BlackthornGym2F.asm
+++ b/maps/BlackthornGym2F.asm
@@ -1,8 +1,8 @@
 BlackthornGym2F_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -59,24 +59,8 @@
 	jumpstd strengthboulder
 
 TrainerCooltrainermCody:
-	; bit/flag number
-	dw $54b
+	trainer EVENT_BEAT_COOLTRAINERM_CODY, COOLTRAINERM, CODY, CooltrainermCodySeenText, CooltrainermCodyBeatenText, $0000, CooltrainermCodyScript
 
-	; trainer group && trainer id
-	db COOLTRAINERM, CODY
-
-	; text when seen
-	dw CooltrainermCodySeenText
-
-	; text when trainer beaten
-	dw CooltrainermCodyBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainermCodyScript
-
 CooltrainermCodyScript:
 	talkaftercancel
 	loadfont
@@ -86,24 +70,8 @@
 	end
 
 TrainerCooltrainerfFran:
-	; bit/flag number
-	dw $55d
+	trainer EVENT_BEAT_COOLTRAINERF_FRAN, COOLTRAINERF, FRAN, CooltrainerfFranSeenText, CooltrainerfFranBeatenText, $0000, CooltrainerfFranScript
 
-	; trainer group && trainer id
-	db COOLTRAINERF, FRAN
-
-	; text when seen
-	dw CooltrainerfFranSeenText
-
-	; text when trainer beaten
-	dw CooltrainerfFranBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainerfFranScript
-
 CooltrainerfFranScript:
 	talkaftercancel
 	loadfont
@@ -161,7 +129,7 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -169,19 +137,19 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 8
-	person_event SPRITE_COOLTRAINER_M, 5, 8, $9, $0, 255, 255, $82, 1, TrainerCooltrainermCody, $ffff
-	person_event SPRITE_COOLTRAINER_F, 15, 8, $8, $0, 255, 255, $82, 1, TrainerCooltrainerfFran, $ffff
-	person_event SPRITE_BOULDER, 6, 12, $19, $0, 255, 255, $0, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_1
-	person_event SPRITE_BOULDER, 7, 6, $19, $0, 255, 255, $0, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_2
-	person_event SPRITE_BOULDER, 20, 10, $19, $0, 255, 255, $0, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_3
-	person_event SPRITE_BOULDER, 7, 7, $19, $0, 255, 255, $0, 0, BlackthornGymBoulder, $ffff
-	person_event SPRITE_BOULDER, 5, 10, $19, $0, 255, 255, $0, 0, BlackthornGymBoulder, $ffff
-	person_event SPRITE_BOULDER, 18, 12, $19, $0, 255, 255, $0, 0, BlackthornGymBoulder, $ffff
+	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
--- a/maps/BlackthornMart.asm
+++ b/maps/BlackthornMart.asm
@@ -1,27 +1,23 @@
-BlackthornMart_MapScriptHeader: ; 0x195a5b
-	; trigger count
+BlackthornMart_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x195a5d
 
-ClerkScript_0x195a5d: ; 0x195a5d
+ClerkScript_0x195a5d:
 	loadfont
 	pokemart $0, $0011
 	loadmovesprites
 	end
-; 0x195a64
 
-CooltrainerMScript_0x195a64: ; 0x195a64
+CooltrainerMScript_0x195a64:
 	jumptextfaceplayer UnknownText_0x195a6a
-; 0x195a67
 
-BlackBeltScript_0x195a67: ; 0x195a67
+BlackBeltScript_0x195a67:
 	jumptextfaceplayer UnknownText_0x195ae9
-; 0x195a6a
 
-UnknownText_0x195a6a: ; 0x195a6a
+UnknownText_0x195a6a:
 	text "You can't buy MAX"
 	line "REVIVE, but it"
 
@@ -34,9 +30,8 @@
 	para "POWER POINTS"
 	line "needed for moves."
 	done
-; 0x195ae9
 
-UnknownText_0x195ae9: ; 0x195ae9
+UnknownText_0x195ae9:
 	text "MAX REPEL keeps"
 	line "weak #MON away"
 	cont "from you."
@@ -45,26 +40,24 @@
 	line "lasting of the"
 	cont "REPEL sprays."
 	done
-; 0x195b40
 
-BlackthornMart_MapEventHeader: ; 0x195b40
+BlackthornMart_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 7, 5, $9, $0, 255, 255, $0, 0, ClerkScript_0x195a5d, $ffff
-	person_event SPRITE_COOLTRAINER_M, 10, 11, $5, $2, 255, 255, $0, 0, CooltrainerMScript_0x195a64, $ffff
-	person_event SPRITE_BLACK_BELT, 6, 9, $6, $0, 255, 255, $a0, 0, BlackBeltScript_0x195a67, $ffff
-; 0x195b77
+	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
--- a/maps/BlackthornPokeCenter1F.asm
+++ b/maps/BlackthornPokeCenter1F.asm
@@ -1,28 +1,23 @@
-BlackthornPokeCenter1F_MapScriptHeader: ; 0x195b77
-	; trigger count
+BlackthornPokeCenter1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x195b79
 
-NurseScript_0x195b79: ; 0x195b79
+NurseScript_0x195b79:
 	jumpstd pokecenternurse
-; 0x195b7c
 
-GentlemanScript_0x195b7c: ; 0x195b7c
+GentlemanScript_0x195b7c:
 	jumptextfaceplayer UnknownText_0x195b85
-; 0x195b7f
 
-TwinScript_0x195b7f: ; 0x195b7f
+TwinScript_0x195b7f:
 	jumptextfaceplayer UnknownText_0x195bfd
-; 0x195b82
 
-CooltrainerMScript_0x195b82: ; 0x195b82
-	jumpstd $0033
-; 0x195b85
+CooltrainerMScript_0x195b82:
+	jumpstd happinesschecknpc
 
-UnknownText_0x195b85: ; 0x195b85
+UnknownText_0x195b85:
 	text "Deep inside far-"
 	line "off INDIGO PLATEAU"
 
@@ -35,9 +30,8 @@
 	para "there from around"
 	line "the country."
 	done
-; 0x195bfd
 
-UnknownText_0x195bfd: ; 0x195bfd
+UnknownText_0x195bfd:
 	text "There was this"
 	line "move I just had"
 
@@ -48,28 +42,26 @@
 	line "DELETER to make it"
 	cont "forget an HM move."
 	done
-; 0x195c69
 
-BlackthornPokeCenter1F_MapEventHeader: ; 0x195c69
+BlackthornPokeCenter1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_NURSE, 5, 7, $6, $0, 255, 255, $0, 0, NurseScript_0x195b79, $ffff
-	person_event SPRITE_GENTLEMAN, 7, 9, $6, $0, 255, 255, $0, 0, GentlemanScript_0x195b7c, $ffff
-	person_event SPRITE_TWIN, 8, 5, $3, $0, 255, 255, $a0, 0, TwinScript_0x195b7f, $ffff
-	person_event SPRITE_COOLTRAINER_M, 10, 11, $5, $1, 255, 255, $80, 0, CooltrainerMScript_0x195b82, $ffff
-; 0x195cb2
+	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
--- a/maps/BluesHouse.asm
+++ b/maps/BluesHouse.asm
@@ -1,24 +1,22 @@
-BluesHouse_MapScriptHeader: ; 0x19b0ce
-	; trigger count
+BluesHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x19b0d0
 
-DaisyScript_0x19b0d0: ; 0x19b0d0
+DaisyScript_0x19b0d0:
 	faceplayer
 	loadfont
-	checkcode $a
+	checkcode VAR_HOUR
 	if_equal $f, UnknownScript_0x19b0de
 	writetext UnknownText_0x19b130
 	closetext
 	loadmovesprites
 	end
-; 0x19b0de
 
-UnknownScript_0x19b0de: ; 0x19b0de
-	checkflag $005c
+UnknownScript_0x19b0de:
+	checkflag ENGINE_TEA_IN_BLUES_HOUSE
 	iftrue UnknownScript_0x19b11e
 	writetext UnknownText_0x19b1b6
 	yesorno
@@ -26,16 +24,16 @@
 	writetext UnknownText_0x19b244
 	closetext
 	special Function741d
-	if_equal $0, UnknownScript_0x19b124
-	if_equal $1, UnknownScript_0x19b12a
-	setflag $005c
+	if_equal 0, UnknownScript_0x19b124
+	if_equal 1, UnknownScript_0x19b12a
+	setflag ENGINE_TEA_IN_BLUES_HOUSE
 	writetext UnknownText_0x19b266
 	closetext
 	loadmovesprites
-	special Function8c084
+	special FadeBlackBGMap
 	playmusic MUSIC_HEAL
 	pause 60
-	special Function8c079
+	special FadeInBGMap
 	special RestartMapMusic
 	loadfont
 	writetext UnknownText_0x19b296
@@ -45,30 +43,26 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19b11e
 
-UnknownScript_0x19b11e: ; 0x19b11e
+UnknownScript_0x19b11e:
 	writetext UnknownText_0x19b2fa
 	closetext
 	loadmovesprites
 	end
-; 0x19b124
 
-UnknownScript_0x19b124: ; 0x19b124
+UnknownScript_0x19b124:
 	writetext UnknownText_0x19b334
 	closetext
 	loadmovesprites
 	end
-; 0x19b12a
 
-UnknownScript_0x19b12a: ; 0x19b12a
+UnknownScript_0x19b12a:
 	writetext UnknownText_0x19b377
 	closetext
 	loadmovesprites
 	end
-; 0x19b130
 
-UnknownText_0x19b130: ; 0x19b130
+UnknownText_0x19b130:
 	text "DAISY: Hi! My kid"
 	line "brother is the GYM"
 
@@ -81,9 +75,8 @@
 	para "it causes problems"
 	line "for the trainers."
 	done
-; 0x19b1b6
 
-UnknownText_0x19b1b6: ; 0x19b1b6
+UnknownText_0x19b1b6:
 	text "DAISY: Hi! Good"
 	line "timing. I'm about"
 	cont "to have some tea."
@@ -97,29 +90,25 @@
 	para "Would you like me"
 	line "to groom one?"
 	done
-; 0x19b244
 
-UnknownText_0x19b244: ; 0x19b244
+UnknownText_0x19b244:
 	text "DAISY: Which one"
 	line "should I groom?"
 	done
-; 0x19b266
 
-UnknownText_0x19b266: ; 0x19b266
+UnknownText_0x19b266:
 	text "DAISY: OK, I'll"
 	line "get it looking"
 	cont "nice in no time."
 	done
-; 0x19b296
 
-UnknownText_0x19b296: ; 0x19b296
+UnknownText_0x19b296:
 	text_from_ram StringBuffer3
 	text " looks"
 	line "content."
 	done
-; 0x19b2aa
 
-UnknownText_0x19b2aa: ; 0x19b2aa
+UnknownText_0x19b2aa:
 	text "DAISY: There you"
 	line "go! All done."
 
@@ -129,9 +118,8 @@
 	para "It's such a cute"
 	line "#MON."
 	done
-; 0x19b2fa
 
-UnknownText_0x19b2fa: ; 0x19b2fa
+UnknownText_0x19b2fa:
 	text "DAISY: I always"
 	line "have tea around"
 
@@ -138,9 +126,8 @@
 	para "this time. Come"
 	line "join me."
 	done
-; 0x19b334
 
-UnknownText_0x19b334: ; 0x19b334
+UnknownText_0x19b334:
 	text "DAISY: You don't"
 	line "want to have one"
 
@@ -147,31 +134,28 @@
 	para "groomed? OK, we'll"
 	line "just have tea."
 	done
-; 0x19b377
 
-UnknownText_0x19b377: ; 0x19b377
+UnknownText_0x19b377:
 	text "DAISY: Oh, sorry."
 	line "I honestly can't"
 	cont "groom an EGG."
 	done
-; 0x19b3a8
 
-BluesHouse_MapEventHeader: ; 0x19b3a8
+BluesHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_DAISY, 7, 6, $3, $0, 255, 255, $0, 0, DaisyScript_0x19b0d0, $ffff
-; 0x19b3c5
+	person_event SPRITE_DAISY, 7, 6, OW_DOWN | $3, $0, -1, -1, $0, 0, DaisyScript_0x19b0d0, -1
--- a/maps/BrunosRoom.asm
+++ b/maps/BrunosRoom.asm
@@ -1,5 +1,5 @@
-BrunosRoom_MapScriptHeader: ; 0x180986
-	; trigger count
+BrunosRoom_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,36 +6,32 @@
 	dw UnknownScript_0x180993, $0000
 	dw UnknownScript_0x180997, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 1, UnknownScript_0x180998
-; 0x180993
 
-UnknownScript_0x180993: ; 0x180993
+UnknownScript_0x180993:
 	priorityjump UnknownScript_0x1809ad
 	end
-; 0x180997
 
-UnknownScript_0x180997: ; 0x180997
+UnknownScript_0x180997:
 	end
-; 0x180998
 
-UnknownScript_0x180998: ; 0x180998
-	checkevent EVENT_KOGAS_ROOM_ENTRANCE_CLOSED
+UnknownScript_0x180998:
+	checkevent EVENT_BRUNOS_ROOM_ENTRANCE_CLOSED
 	iffalse UnknownScript_0x1809a2
 	changeblock $4, $e, $2a
-UnknownScript_0x1809a2: ; 0x1809a2
+UnknownScript_0x1809a2:
 	checkevent EVENT_BRUNOS_ROOM_EXIT_OPEN
 	iffalse UnknownScript_0x1809ac
 	changeblock $4, $2, $16
-UnknownScript_0x1809ac: ; 0x1809ac
+UnknownScript_0x1809ac:
 	return
-; 0x1809ad
 
-UnknownScript_0x1809ad: ; 0x1809ad
+UnknownScript_0x1809ad:
 	applymovement $0, MovementData_0x1809f9
 	refreshscreen $86
 	playsound SFX_STRENGTH
@@ -44,15 +40,14 @@
 	reloadmappart
 	loadmovesprites
 	dotrigger $1
-	setevent EVENT_KOGAS_ROOM_ENTRANCE_CLOSED
+	setevent EVENT_BRUNOS_ROOM_ENTRANCE_CLOSED
 	waitbutton
 	end
-; 0x1809c5
 
-BrunoScript_0x1809c5: ; 0x1809c5
+BrunoScript_0x1809c5:
 	faceplayer
 	loadfont
-	checkevent $05ba
+	checkevent EVENT_BEAT_ELITE_4_BRUNO
 	iftrue UnknownScript_0x1809f3
 	writetext UnknownText_0x1809fe
 	closetext
@@ -61,7 +56,7 @@
 	loadtrainer BRUNO, 1
 	startbattle
 	returnafterbattle
-	setevent $05ba
+	setevent EVENT_BEAT_ELITE_4_BRUNO
 	loadfont
 	writetext UnknownText_0x180b3c
 	closetext
@@ -73,24 +68,21 @@
 	setevent EVENT_BRUNOS_ROOM_EXIT_OPEN
 	waitbutton
 	end
-; 0x1809f3
 
-UnknownScript_0x1809f3: ; 0x1809f3
+UnknownScript_0x1809f3:
 	writetext UnknownText_0x180b3c
 	closetext
 	loadmovesprites
 	end
-; 0x1809f9
 
-MovementData_0x1809f9: ; 0x1809f9
+MovementData_0x1809f9:
 	step_up
 	step_up
 	step_up
 	step_up
 	step_end
-; 0x1809fe
 
-UnknownText_0x1809fe: ; 0x1809fe
+UnknownText_0x1809fe:
 	text "I am BRUNO of the"
 	line "ELITE FOUR."
 
@@ -119,15 +111,13 @@
 
 	para "Hoo hah!"
 	done
-; 0x180b23
 
-UnknownText_0x180b23: ; 0x180b23
+UnknownText_0x180b23:
 	text "Why? How could we"
 	line "lose?"
 	done
-; 0x180b3c
 
-UnknownText_0x180b3c: ; 0x180b3c
+UnknownText_0x180b3c:
 	text "Having lost, I"
 	line "have no right to"
 	cont "say anything…"
@@ -135,13 +125,12 @@
 	para "Go face your next"
 	line "challenge!"
 	done
-; 0x180b88
 
-BrunosRoom_MapEventHeader: ; 0x180b88
+BrunosRoom_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -148,13 +137,12 @@
 	warp_def $2, $4, 1, GROUP_KARENS_ROOM, MAP_KARENS_ROOM
 	warp_def $2, $5, 2, GROUP_KARENS_ROOM, MAP_KARENS_ROOM
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_BRUNO, 11, 9, $6, $0, 255, 255, $b0, 0, BrunoScript_0x1809c5, $ffff
-; 0x180baf
+	person_event SPRITE_BRUNO, 11, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, BrunoScript_0x1809c5, -1
--- a/maps/BurnedTower1F.asm
+++ b/maps/BurnedTower1F.asm
@@ -1,5 +1,5 @@
-BurnedTower1F_MapScriptHeader: ; 0x185be1
-	; trigger count
+BurnedTower1F_MapScriptHeader:
+.MapTriggers:
 	db 3
 
 	; triggers
@@ -7,42 +7,37 @@
 	dw UnknownScript_0x185bf6, $0000
 	dw UnknownScript_0x185bf7, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 1, UnknownScript_0x185bf8
-; 0x185bf2
 
-UnknownScript_0x185bf2: ; 0x185bf2
+UnknownScript_0x185bf2:
 	priorityjump UnknownScript_0x185c0d
 	end
-; 0x185bf6
 
-UnknownScript_0x185bf6: ; 0x185bf6
+UnknownScript_0x185bf6:
 	end
-; 0x185bf7
 
-UnknownScript_0x185bf7: ; 0x185bf7
+UnknownScript_0x185bf7:
 	end
-; 0x185bf8
 
-UnknownScript_0x185bf8: ; 0x185bf8
-	checkevent $0332
-	iftrue UnknownScript_0x185c02
-	changeblock $a, $8, $32
-UnknownScript_0x185c02: ; 0x185c02
+UnknownScript_0x185bf8:
+	checkevent EVENT_HOLE_IN_BURNED_TOWER
+	iftrue .Next
+	changeblock $a, $8, $32 ; hole
+.Next
 	checkevent EVENT_RELEASED_THE_BEASTS
-	iftrue UnknownScript_0x185c0c
-	changeblock $6, $e, $9
-UnknownScript_0x185c0c: ; 0x185c0c
+	iftrue .Done
+	changeblock $6, $e, $9 ; ladder
+.Done
 	return
-; 0x185c0d
 
-UnknownScript_0x185c0d: ; 0x185c0d
+UnknownScript_0x185c0d:
 	spriteface $3, DOWN
-	showemote $0, $3, 15
+	showemote EMOTE_SHOCK, $3, 15
 	applymovement $3, MovementData_0x185cd3
 	loadfont
 	writetext UnknownText_0x185ecc
@@ -51,10 +46,9 @@
 	moveperson $3, $9, $e
 	dotrigger $1
 	end
-; 0x185c25
 
-UnknownScript_0x185c25: ; 0x185c25
-	showemote $0, $4, 15
+UnknownScript_0x185c25:
+	showemote EMOTE_SHOCK, $4, 15
 	special Functionc48f
 	pause 15
 	spriteface $4, RIGHT
@@ -77,9 +71,8 @@
 	reloadmapmusic
 	returnafterbattle
 	jump UnknownScript_0x185c80
-; 0x185c60
 
-UnknownScript_0x185c60: ; 0x185c60
+UnknownScript_0x185c60:
 	winlosstext UnknownText_0x185d9b, UnknownText_0x185e2c
 	setlasttalked $4
 	loadtrainer RIVAL1, RIVAL1_7
@@ -87,9 +80,8 @@
 	reloadmapmusic
 	returnafterbattle
 	jump UnknownScript_0x185c80
-; 0x185c70
 
-UnknownScript_0x185c70: ; 0x185c70
+UnknownScript_0x185c70:
 	winlosstext UnknownText_0x185d9b, UnknownText_0x185e2c
 	setlasttalked $4
 	loadtrainer RIVAL1, RIVAL1_8
@@ -97,9 +89,8 @@
 	reloadmapmusic
 	returnafterbattle
 	jump UnknownScript_0x185c80
-; 0x185c80
 
-UnknownScript_0x185c80: ; 0x185c80
+UnknownScript_0x185c80:
 	playmusic MUSIC_RIVAL_AFTER
 	loadfont
 	writetext UnknownText_0x185de2
@@ -106,11 +97,11 @@
 	closetext
 	loadmovesprites
 	dotrigger $2
-	setevent $06c5
+	setevent EVENT_RIVAL_BURNED_TOWER
 	special Functionc48f
 	pause 15
 	earthquake 50
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	playsound SFX_ENTER_DOOR
 	waitbutton
 	changeblock $a, $8, $25
@@ -118,60 +109,49 @@
 	pause 15
 	applymovement $0, MovementData_0x185cd1
 	playsound SFX_KINESIS
-	showemote $0, $4, 20
+	showemote EMOTE_SHOCK, $4, 20
 	loadfont
 	writetext UnknownText_0x185e75
 	closetext
 	loadmovesprites
-	setevent $0332
+	setevent EVENT_HOLE_IN_BURNED_TOWER
 	pause 15
 	warpcheck
 	end
-; 0x185cbc
 
-SuperNerdScript_0x185cbc: ; 0x185cbc
+SuperNerdScript_0x185cbc:
 	jumptextfaceplayer UnknownText_0x185f99
-; 0x185cbf
 
-MortyScript_0x185cbf: ; 0x185cbf
+MortyScript_0x185cbf:
 	jumptextfaceplayer UnknownText_0x186002
-; 0x185cc2
 
 BurnedTower1FRock:
 	jumpstd smashrock
 
-MapBurnedTower1FSignpostItem0: ; 0x185cc5
-	dw $0080
-	db ETHER
+MapBurnedTower1FSignpostItem0:
+	dwb EVENT_BURNED_TOWER_1F_HIDDEN_ETHER, ETHER
 	
-; 0x185cc8
 
-MapBurnedTower1FSignpostItem1: ; 0x185cc8
-	dw $00ff
-	db ULTRA_BALL
+MapBurnedTower1FSignpostItem1:
+	dwb EVENT_BURNED_TOWER_1F_HIDDEN_ULTRA_BALL, ULTRA_BALL
 	
-; 0x185ccb
 
-ItemFragment_0x185ccb: ; 0x185ccb
+ItemFragment_0x185ccb:
 	db HP_UP, 1
-; 0x185ccd
 
-MovementData_0x185ccd: ; 0x185ccd
+MovementData_0x185ccd:
 	step_left
 	step_end
-; 0x185ccf
 
-MovementData_0x185ccf: ; 0x185ccf
+MovementData_0x185ccf:
 	step_right
 	step_end
-; 0x185cd1
 
-MovementData_0x185cd1: ; 0x185cd1
+MovementData_0x185cd1:
 	db $59 ; movement
 	step_end
-; 0x185cd3
 
-MovementData_0x185cd3: ; 0x185cd3
+MovementData_0x185cd3:
 	step_down
 	step_left
 	step_left
@@ -178,9 +158,8 @@
 	step_left
 	step_down
 	step_end
-; 0x185cd9
 
-UnknownText_0x185cd9: ; 0x185cd9
+UnknownText_0x185cd9:
 	text $56, " ", $56, " ", $56
 
 	para "…Oh, it's you."
@@ -203,9 +182,8 @@
 	para "It's all your"
 	line "fault!"
 	done
-; 0x185d9b
 
-UnknownText_0x185d9b: ; 0x185d9b
+UnknownText_0x185d9b:
 	text "…Humph!"
 
 	para "This is why I hate"
@@ -214,9 +192,8 @@
 	para "There's no"
 	line "challenge in it."
 	done
-; 0x185de2
 
-UnknownText_0x185de2: ; 0x185de2
+UnknownText_0x185de2:
 	text "…Aw, whatever."
 
 	para "You would never be"
@@ -225,9 +202,8 @@
 	para "legendary #MON"
 	line "anyway."
 	done
-; 0x185e2c
 
-UnknownText_0x185e2c: ; 0x185e2c
+UnknownText_0x185e2c:
 	text "…Humph!"
 
 	para "This is why I hate"
@@ -236,9 +212,8 @@
 	para "It's just a waste"
 	line "of my time."
 	done
-; 0x185e75
 
-UnknownText_0x185e75: ; 0x185e75
+UnknownText_0x185e75:
 	text "Humph!"
 
 	para "What are you doing"
@@ -249,9 +224,8 @@
 
 	para "Serves you right!"
 	done
-; 0x185ecc
 
-UnknownText_0x185ecc: ; 0x185ecc
+UnknownText_0x185ecc:
 	text "EUSINE: My name's"
 	line "EUSINE."
 
@@ -273,9 +247,8 @@
 	para "But where exactly"
 	line "could it be?"
 	done
-; 0x185f99
 
-UnknownText_0x185f99: ; 0x185f99
+UnknownText_0x185f99:
 	text "EUSINE: I heard"
 	line "that SUICUNE is in"
 
@@ -285,9 +258,8 @@
 	para "But where exactly"
 	line "could it be?"
 	done
-; 0x186002
 
-UnknownText_0x186002: ; 0x186002
+UnknownText_0x186002:
 	text "MORTY: ECRUTEAK's"
 	line "GYM LEADER has to"
 
@@ -304,13 +276,12 @@
 	para "investigate the"
 	line "TOWER with him."
 	done
-; 0x1860b2
 
-BurnedTower1F_MapEventHeader: ; 0x1860b2
+BurnedTower1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -327,20 +298,19 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 1
 	xy_trigger 1, $9, $b, $0, UnknownScript_0x185c25, $0, $0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 7, 8, $7, MapBurnedTower1FSignpostItem0
-	signpost 11, 13, $7, MapBurnedTower1FSignpostItem1
+	signpost 7, 8, SIGNPOST_ITEM, MapBurnedTower1FSignpostItem0
+	signpost 11, 13, SIGNPOST_ITEM, MapBurnedTower1FSignpostItem1
 
-	; people-events
+.PersonEvents:
 	db 5
-	person_event SPRITE_ROCK, 8, 19, $18, $0, 255, 255, $0, 0, BurnedTower1FRock, $ffff
-	person_event SPRITE_SUPER_NERD, 16, 16, $3, $0, 255, 255, $90, 0, SuperNerdScript_0x185cbc, $0765
-	person_event SPRITE_SILVER, 13, 12, $8, $0, 255, 255, $2, 3, ObjectEvent, $06c5
-	person_event SPRITE_MORTY, 18, 18, $2, $11, 255, 255, $b0, 0, MortyScript_0x185cbf, $0764
-	person_event SPRITE_POKE_BALL, 6, 18, $1, $0, 255, 255, $1, 0, ItemFragment_0x185ccb, $0656
-; 0x186151
+	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
--- a/maps/BurnedTowerB1F.asm
+++ b/maps/BurnedTowerB1F.asm
@@ -1,5 +1,5 @@
-BurnedTowerB1F_MapScriptHeader: ; 0x186151
-	; trigger count
+BurnedTowerB1F_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,31 +6,27 @@
 	dw UnknownScript_0x18615e, $0000
 	dw UnknownScript_0x18615f, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 1, UnknownScript_0x186160
-; 0x18615e
 
-UnknownScript_0x18615e: ; 0x18615e
+UnknownScript_0x18615e:
 	end
-; 0x18615f
 
-UnknownScript_0x18615f: ; 0x18615f
+UnknownScript_0x18615f:
 	end
-; 0x186160
 
-UnknownScript_0x186160: ; 0x186160
+UnknownScript_0x186160:
 	checkevent EVENT_RELEASED_THE_BEASTS
 	iftrue UnknownScript_0x18616a
 	changeblock $6, $e, $2
-UnknownScript_0x18616a: ; 0x18616a
+UnknownScript_0x18616a:
 	return
-; 0x18616b
 
-UnknownScript_0x18616b: ; 0x18616b
+UnknownScript_0x18616b:
 	playmusic MUSIC_NONE
 	pause 30
 	appear $3
@@ -85,10 +81,10 @@
 	domaptrigger GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM, $1
 	domaptrigger GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY, $1
 	clearevent EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY
-	setevent $07a8
-	clearevent $07a9
-	setevent $0764
-	setevent $0765
+	setevent EVENT_ECRUTEAK_GYM_GRAMPS
+	clearevent EVENT_ECRUTEAK_CITY_GRAMPS
+	setevent EVENT_BURNED_TOWER_MORTY
+	setevent EVENT_BURNED_TOWER_1F_EUSINE
 	appear $a
 	refreshscreen $0
 	changeblock $6, $e, $1b
@@ -96,45 +92,40 @@
 	loadmovesprites
 	dotrigger $1
 	end
-; 0x186212
 
-SuperNerdScript_0x186212: ; 0x186212
+SuperNerdScript_0x186212:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x18626a
 	closetext
 	loadmovesprites
-	checkcode $9
+	checkcode VAR_FACING
 	if_equal $1, UnknownScript_0x186226
 	applymovement $a, MovementData_0x186263
 	jump UnknownScript_0x18622a
-; 0x186226
 
-UnknownScript_0x186226: ; 0x186226
+UnknownScript_0x186226:
 	applymovement $a, MovementData_0x18625c
-UnknownScript_0x18622a: ; 0x18622a
+UnknownScript_0x18622a:
 	disappear $a
 	playsound SFX_EXIT_BUILDING
 	waitbutton
 	end
-; 0x186231
 
-ItemFragment_0x186231: ; 0x186231
-	db TM_20, 1
-; 0x186233
+ItemFragment_0x186231:
+	db TM_ENDURE, 1
 
 BurnedTowerB1FBoulder:
 	jumpstd strengthboulder
 
-MovementData_0x186236: ; 0x186236
+MovementData_0x186236:
 	db $39 ; movement
 	fast_jump_step_down
 	fast_jump_step_left
 	db $38 ; movement
 	step_end
-; 0x18623b
 
-MovementData_0x18623b: ; 0x18623b
+MovementData_0x18623b:
 	db $39 ; movement
 	fast_jump_step_right
 	fast_jump_step_down
@@ -141,9 +132,8 @@
 	fast_jump_step_right
 	db $38 ; movement
 	step_end
-; 0x186241
 
-MovementData_0x186241: ; 0x186241
+MovementData_0x186241:
 	db $39 ; movement
 	fast_jump_step_right
 	fast_jump_step_down
@@ -151,9 +141,8 @@
 	fast_jump_step_left
 	db $38 ; movement
 	step_end
-; 0x186248
 
-MovementData_0x186248: ; 0x186248
+MovementData_0x186248:
 	db $39 ; movement
 	fast_jump_step_left
 	fast_jump_step_up
@@ -161,16 +150,14 @@
 	fast_jump_step_right
 	db $38 ; movement
 	step_end
-; 0x18624f
 
-MovementData_0x18624f: ; 0x18624f
+MovementData_0x18624f:
 	db $39 ; movement
 	big_step_down
 	db $38 ; movement
 	step_end
-; 0x186253
 
-MovementData_0x186253: ; 0x186253
+MovementData_0x186253:
 	db $39 ; movement
 	big_step_up
 	fast_jump_step_right
@@ -180,9 +167,8 @@
 	fast_jump_step_down
 	db $38 ; movement
 	step_end
-; 0x18625c
 
-MovementData_0x18625c: ; 0x18625c
+MovementData_0x18625c:
 	step_left
 	step_left
 	step_down
@@ -190,9 +176,8 @@
 	step_left
 	step_down
 	step_end
-; 0x186263
 
-MovementData_0x186263: ; 0x186263
+MovementData_0x186263:
 	step_down
 	step_left
 	step_left
@@ -200,9 +185,8 @@
 	step_down
 	step_down
 	step_end
-; 0x18626a
 
-UnknownText_0x18626a: ; 0x18626a
+UnknownText_0x18626a:
 	text "EUSINE: I dug a"
 	line "hole here, too…"
 
@@ -244,13 +228,12 @@
 
 	para "Farewell!"
 	done
-; 0x1863de
 
-BurnedTowerB1F_MapEventHeader: ; 0x1863de
+BurnedTowerB1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -259,22 +242,21 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 1
 	xy_trigger 0, $6, $a, $0, UnknownScript_0x18616b, $0, $0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 9
-	person_event SPRITE_BOULDER, 12, 21, $19, $0, 255, 255, $0, 0, BurnedTowerB1FBoulder, $ffff
-	person_event SPRITE_RAIKOU, 7, 11, $16, $0, 255, 255, $b0, 0, ObjectEvent, $074a
-	person_event SPRITE_ENTEI, 7, 16, $16, $0, 255, 255, $80, 0, ObjectEvent, $074a
-	person_event SPRITE_SUICUNE, 8, 14, $16, $0, 255, 255, $90, 0, ObjectEvent, $074a
-	person_event SPRITE_RAIKOU, 7, 11, $6, $0, 255, 255, $d0, 0, ObjectEvent, $074b
-	person_event SPRITE_ENTEI, 7, 16, $6, $0, 255, 255, $d0, 0, ObjectEvent, $074b
-	person_event SPRITE_SUICUNE, 8, 14, $6, $0, 255, 255, $d0, 0, ObjectEvent, $074b
-	person_event SPRITE_POKE_BALL, 8, 20, $1, $0, 255, 255, $1, 0, ItemFragment_0x186231, $0657
-	person_event SPRITE_SUPER_NERD, 16, 14, $7, $0, 255, 255, $90, 0, SuperNerdScript_0x186212, $07aa
-; 0x18647f
+	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
--- a/maps/CeladonCafe.asm
+++ b/maps/CeladonCafe.asm
@@ -1,12 +1,11 @@
-CeladonCafe_MapScriptHeader: ; 0x73047
-	; trigger count
+CeladonCafe_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x73049
 
-SuperNerdScript_0x73049: ; 0x73049
+SuperNerdScript_0x73049:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x730de
@@ -13,9 +12,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x73051
 
-FisherScript_0x73051: ; 0x73051
+FisherScript_0x73051:
 	loadfont
 	writetext UnknownText_0x73129
 	closetext
@@ -27,9 +25,8 @@
 	loadmovesprites
 	spriteface $3, LEFT
 	end
-; 0x73062
 
-FisherScript_0x73062: ; 0x73062
+FisherScript_0x73062:
 	loadfont
 	writetext UnknownText_0x7316a
 	closetext
@@ -41,9 +38,8 @@
 	loadmovesprites
 	spriteface $4, RIGHT
 	end
-; 0x73073
 
-FisherScript_0x73073: ; 0x73073
+FisherScript_0x73073:
 	loadfont
 	writetext UnknownText_0x731ae
 	closetext
@@ -55,9 +51,8 @@
 	loadmovesprites
 	spriteface $5, RIGHT
 	end
-; 0x73084
 
-TeacherScript_0x73084: ; 0x73084
+TeacherScript_0x73084:
 	checkitem COIN_CASE
 	iftrue UnknownScript_0x7309a
 	loadfont
@@ -71,9 +66,8 @@
 	loadmovesprites
 	spriteface $6, LEFT
 	end
-; 0x7309a
 
-UnknownScript_0x7309a: ; 0x7309a
+UnknownScript_0x7309a:
 	loadfont
 	writetext UnknownText_0x73254
 	closetext
@@ -85,7 +79,6 @@
 	loadmovesprites
 	spriteface $6, LEFT
 	end
-; 0x730ad
 
 EatathonContestPoster:
 	jumptext EatathonContestPosterText
@@ -118,7 +111,7 @@
 .TrashEmpty
 	jumpstd trashcan
 
-UnknownText_0x730de: ; 0x730de
+UnknownText_0x730de:
 	text "Hi!"
 
 	para "We're holding an"
@@ -127,27 +120,23 @@
 	para "We can't serve you"
 	line "right now. Sorry."
 	done
-; 0x73129
 
-UnknownText_0x73129: ; 0x73129
+UnknownText_0x73129:
 	text "…Snarfle, chew…"
 	done
-; 0x7313a
 
-UnknownText_0x7313a: ; 0x7313a
+UnknownText_0x7313a:
 	text "Don't talk to me!"
 
 	para "You'll break my"
 	line "concentration!"
 	done
-; 0x7316a
 
-UnknownText_0x7316a: ; 0x7316a
+UnknownText_0x7316a:
 	text "…Gulp… Chew…"
 	done
-; 0x73178
 
-UnknownText_0x73178: ; 0x73178
+UnknownText_0x73178:
 	text "I take quantity"
 	line "over quality!"
 
@@ -154,27 +143,23 @@
 	para "I'm happy when I'm"
 	line "full!"
 	done
-; 0x731ae
 
-UnknownText_0x731ae: ; 0x731ae
+UnknownText_0x731ae:
 	text "Munch, munch…"
 	done
-; 0x731bd
 
-UnknownText_0x731bd: ; 0x731bd
+UnknownText_0x731bd:
 	text "The food is good"
 	line "here, but GOLDEN-"
 	cont "ROD has the best"
 	cont "food anywhere."
 	done
-; 0x73201
 
-UnknownText_0x73201: ; 0x73201
+UnknownText_0x73201:
 	text "Crunch… Crunch…"
 	done
-; 0x73212
 
-UnknownText_0x73212: ; 0x73212
+UnknownText_0x73212:
 	text "Nobody here will"
 	line "give you a COIN"
 
@@ -181,19 +166,16 @@
 	para "CASE. You should"
 	line "look in JOHTO."
 	done
-; 0x73254
 
-UnknownText_0x73254: ; 0x73254
+UnknownText_0x73254:
 	text "Crunch… Crunch…"
 
 	para "I can keep eating!"
 	done
-; 0x73278
 
-UnknownText_0x73278: ; 0x73278
+UnknownText_0x73278:
 	text "More, CHEF!"
 	done
-; 0x73285
 
 EatathonContestPosterText:
 	text "Eatathon Contest!"
@@ -218,27 +200,27 @@
 	line "hold another item…"
 	done
 
-CeladonCafe_MapEventHeader: ; 0x73316
+CeladonCafe_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 0, 5, $0, EatathonContestPoster
-	signpost 1, 7, $0, CeladonCafeTrashcan
+	signpost 0, 5, SIGNPOST_READ, EatathonContestPoster
+	signpost 1, 7, SIGNPOST_READ, CeladonCafeTrashcan
 
-	; people-events
+.PersonEvents:
 	db 5
-	person_event SPRITE_SUPER_NERD, 7, 13, $8, $0, 255, 255, $b0, 0, SuperNerdScript_0x73049, $ffff
-	person_event SPRITE_FISHER, 10, 8, $8, $0, 255, 255, $0, 0, FisherScript_0x73051, $ffff
-	person_event SPRITE_FISHER, 11, 5, $9, $0, 255, 255, $a0, 0, FisherScript_0x73062, $ffff
-	person_event SPRITE_FISHER, 6, 5, $9, $0, 255, 255, $0, 0, FisherScript_0x73073, $ffff
-	person_event SPRITE_TEACHER, 7, 8, $8, $0, 255, 255, $0, 0, TeacherScript_0x73084, $ffff
+	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
--- a/maps/CeladonCity.asm
+++ b/maps/CeladonCity.asm
@@ -1,8 +1,8 @@
 CeladonCity_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -66,8 +66,7 @@
 	jumpstd pokecentersign
 
 MapCeladonCitySignpostItem7:
-	dw $00fd
-	db PP_UP
+	dwb EVENT_CELADON_CITY_HIDDEN_PP_UP, PP_UP
 
 UnknownText_0x1a9f7d:
 	text "This POLIWRATH is"
@@ -230,7 +229,7 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -242,28 +241,28 @@
 	warp_def $1d, $a, 1, GROUP_CELADON_GYM, MAP_CELADON_GYM
 	warp_def $1d, $19, 1, GROUP_CELADON_CAFE, MAP_CELADON_CAFE
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 8
-	signpost 21, 23, $0, CeladonCitySign
-	signpost 31, 11, $0, CeladonGymSign
-	signpost 9, 6, $0, CeladonCityDeptStoreSign
-	signpost 9, 13, $0, CeladonCityMansionSign
-	signpost 21, 19, $0, CeladonCityGameCornerSign
-	signpost 21, 29, $0, CeladonCityTrainerTips
-	signpost 9, 30, $0, CeladonCityPokeCenterSign
-	signpost 21, 37, $7, MapCeladonCitySignpostItem7
+	signpost 21, 23, SIGNPOST_READ, CeladonCitySign
+	signpost 31, 11, SIGNPOST_READ, CeladonGymSign
+	signpost 9, 6, SIGNPOST_READ, CeladonCityDeptStoreSign
+	signpost 9, 13, SIGNPOST_READ, CeladonCityMansionSign
+	signpost 21, 19, SIGNPOST_READ, CeladonCityGameCornerSign
+	signpost 21, 29, SIGNPOST_READ, CeladonCityTrainerTips
+	signpost 9, 30, SIGNPOST_READ, CeladonCityPokeCenterSign
+	signpost 21, 37, SIGNPOST_ITEM, MapCeladonCitySignpostItem7
 
-	; people-events
+.PersonEvents:
 	db 9
-	person_event SPRITE_FISHER, 15, 30, $9, $0, 255, 255, $a0, 0, FisherScript_0x1a9f43, $ffff
-	person_event SPRITE_POLIWAG, 15, 31, $16, $0, 255, 255, $90, 0, CeladonCityPoliwrath, $ffff
-	person_event SPRITE_TEACHER, 28, 24, $5, $2, 255, 255, $80, 0, TeacherScript_0x1a9f50, $ffff
-	person_event SPRITE_GRAMPS, 20, 18, $6, $0, 255, 255, $b0, 0, GrampsScript_0x1a9f53, $ffff
-	person_event SPRITE_GRAMPS, 35, 12, $7, $0, 255, 255, $80, 0, GrampsScript_0x1a9f56, $ffff
-	person_event SPRITE_YOUNGSTER, 17, 22, $5, $2, 255, 255, $90, 0, YoungsterScript_0x1a9f59, $ffff
-	person_event SPRITE_YOUNGSTER, 37, 28, $7, $0, 255, 255, $a0, 0, YoungsterScript_0x1a9f5c, $ffff
-	person_event SPRITE_TEACHER, 18, 10, $2, $22, 255, 255, $a0, 0, TeacherScript_0x1a9f5f, $ffff
-	person_event SPRITE_LASS, 26, 11, $4, $20, 255, 255, $80, 0, LassScript_0x1a9f62, $ffff
+	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
--- a/maps/CeladonDeptStore1F.asm
+++ b/maps/CeladonDeptStore1F.asm
@@ -1,8 +1,8 @@
 CeladonDeptStore1F_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 ReceptionistScript_0x709e0:
@@ -72,7 +72,7 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -79,16 +79,16 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 0, 14, $0, CeladonDeptStore1FDirectory
-	signpost 0, 3, $0, CeladonDeptStore1FElevatorButton
+	signpost 0, 14, SIGNPOST_READ, CeladonDeptStore1FDirectory
+	signpost 0, 3, SIGNPOST_READ, CeladonDeptStore1FElevatorButton
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_RECEPTIONIST, 5, 14, $6, $0, 255, 255, $80, 0, ReceptionistScript_0x709e0, $ffff
-	person_event SPRITE_GENTLEMAN, 8, 15, $2, $11, 255, 255, $0, 0, GentlemanScript_0x709e3, $ffff
-	person_event SPRITE_TEACHER, 7, 9, $5, $1, 255, 255, $a0, 0, TeacherScript_0x709e6, $ffff
+	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
--- a/maps/CeladonDeptStore2F.asm
+++ b/maps/CeladonDeptStore2F.asm
@@ -1,8 +1,8 @@
 CeladonDeptStore2F_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 ClerkScript_0x70bad:
@@ -66,23 +66,23 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 0, 14, $0, CeladonDeptStore2FDirectory
-	signpost 0, 3, $0, CeladonDeptStore2FElevatorButton
+	signpost 0, 14, SIGNPOST_READ, CeladonDeptStore2FDirectory
+	signpost 0, 3, SIGNPOST_READ, CeladonDeptStore2FElevatorButton
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_CLERK, 9, 17, $7, $0, 255, 255, $90, 0, ClerkScript_0x70bad, $ffff
-	person_event SPRITE_CLERK, 9, 18, $7, $0, 255, 255, $90, 0, ClerkScript_0x70bb5, $ffff
-	person_event SPRITE_POKEFAN_M, 6, 9, $7, $0, 255, 255, $80, 0, PokefanMScript_0x70bbd, $ffff
-	person_event SPRITE_YOUNGSTER, 6, 10, $8, $0, 255, 255, $a0, 0, YoungsterScript_0x70bc0, $ffff
+	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
--- a/maps/CeladonDeptStore3F.asm
+++ b/maps/CeladonDeptStore3F.asm
@@ -1,8 +1,8 @@
 CeladonDeptStore3F_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 ClerkScript_0x70d29:
@@ -91,24 +91,24 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 0, 14, $0, CeladonDeptStore3FDirectory
-	signpost 0, 3, $0, CeladonDeptStore3FElevatorButton
+	signpost 0, 14, SIGNPOST_READ, CeladonDeptStore3FDirectory
+	signpost 0, 3, SIGNPOST_READ, CeladonDeptStore3FElevatorButton
 
-	; people-events
+.PersonEvents:
 	db 5
-	person_event SPRITE_CLERK, 5, 11, $6, $0, 255, 255, $90, 0, ClerkScript_0x70d29, $ffff
-	person_event SPRITE_YOUNGSTER, 8, 10, $4, $10, 255, 255, $a0, 0, YoungsterScript_0x70d31, $ffff
-	person_event SPRITE_GAMEBOY_KID, 5, 13, $6, $0, 255, 255, $80, 0, GameboyKidScript_0x70d34, $ffff
-	person_event SPRITE_GAMEBOY_KID, 5, 14, $6, $0, 255, 255, $90, 0, GameboyKidScript_0x70d3f, $ffff
-	person_event SPRITE_SUPER_NERD, 8, 17, $2, $11, 255, 255, $80, 0, SuperNerdScript_0x70d4a, $ffff
+	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
--- a/maps/CeladonDeptStore4F.asm
+++ b/maps/CeladonDeptStore4F.asm
@@ -1,8 +1,8 @@
 CeladonDeptStore4F_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 ClerkScript_0x70f0d:
@@ -49,22 +49,22 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 0, 14, $0, CeladonDeptStore4FDirectory
-	signpost 0, 3, $0, CeladonDeptStore4FElevatorButton
+	signpost 0, 14, SIGNPOST_READ, CeladonDeptStore4FDirectory
+	signpost 0, 3, SIGNPOST_READ, CeladonDeptStore4FElevatorButton
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 9, 17, $7, $0, 255, 255, $90, 0, ClerkScript_0x70f0d, $ffff
-	person_event SPRITE_SUPER_NERD, 10, 11, $5, $1, 255, 255, $a0, 0, SuperNerdScript_0x70f15, $ffff
-	person_event SPRITE_YOUNGSTER, 6, 12, $7, $0, 255, 255, $0, 0, YoungsterScript_0x70f18, $ffff
+	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
--- a/maps/CeladonDeptStore5F.asm
+++ b/maps/CeladonDeptStore5F.asm
@@ -1,8 +1,8 @@
 CeladonDeptStore5F_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 ClerkScript_0x71004:
@@ -68,24 +68,24 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 0, 14, $0, CeladonDeptStore5FDirectory
-	signpost 0, 3, $0, CeladonDeptStore5FElevatorButton
+	signpost 0, 14, SIGNPOST_READ, CeladonDeptStore5FDirectory
+	signpost 0, 3, SIGNPOST_READ, CeladonDeptStore5FElevatorButton
 
-	; people-events
+.PersonEvents:
 	db 5
-	person_event SPRITE_CLERK, 9, 11, $7, $0, 255, 255, $90, 0, ClerkScript_0x71004, $ffff
-	person_event SPRITE_CLERK, 9, 12, $7, $0, 255, 255, $90, 0, ClerkScript_0x7100c, $ffff
-	person_event SPRITE_GENTLEMAN, 9, 17, $2, $11, 255, 255, $80, 0, GentlemanScript_0x71014, $ffff
-	person_event SPRITE_SAILOR, 8, 7, $2, $11, 255, 255, $90, 0, SailorScript_0x71017, $ffff
-	person_event SPRITE_TEACHER, 11, 5, $9, $0, 255, 255, $a0, 0, TeacherScript_0x7101a, $ffff
+	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
--- a/maps/CeladonDeptStore6F.asm
+++ b/maps/CeladonDeptStore6F.asm
@@ -1,8 +1,8 @@
 CeladonDeptStore6F_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -149,24 +149,24 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 6
-	signpost 0, 14, $0, CeladonDeptStore6FDirectory
-	signpost 0, 3, $0, CeladonDeptStore1FElevatorButton
-	signpost 1, 8, $1, CeladonVendingMachine
-	signpost 1, 9, $1, CeladonVendingMachine
-	signpost 1, 10, $1, CeladonVendingMachine
-	signpost 1, 11, $1, CeladonVendingMachine
+	signpost 0, 14, SIGNPOST_READ, CeladonDeptStore6FDirectory
+	signpost 0, 3, SIGNPOST_READ, CeladonDeptStore1FElevatorButton
+	signpost 1, 8, SIGNPOST_UP, CeladonVendingMachine
+	signpost 1, 9, SIGNPOST_UP, CeladonVendingMachine
+	signpost 1, 10, SIGNPOST_UP, CeladonVendingMachine
+	signpost 1, 11, SIGNPOST_UP, CeladonVendingMachine
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_SUPER_NERD, 6, 13, $7, $0, 255, 255, $0, 0, SuperNerdScript_0x7117a, $ffff
-	person_event SPRITE_YOUNGSTER, 9, 16, $2, $12, 255, 255, $80, 0, YoungsterScript_0x7117d, $ffff
+	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
--- a/maps/CeladonDeptStoreElevator.asm
+++ b/maps/CeladonDeptStoreElevator.asm
@@ -1,12 +1,11 @@
-CeladonDeptStoreElevator_MapScriptHeader: ; 0x713ab
-	; trigger count
+CeladonDeptStoreElevator_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x713ad
 
-MapCeladonDeptStoreElevatorSignpost0Script: ; 0x713ad
+MapCeladonDeptStoreElevatorSignpost0Script:
 	loadfont
 	elevator Elevator_0x713be
 	loadmovesprites
@@ -15,12 +14,11 @@
 	playsound SFX_ELEVATOR
 	earthquake 60
 	waitbutton
-UnknownScript_0x713bd: ; 0x713bd
+UnknownScript_0x713bd:
 	end
-; 0x713be
 
 
-Elevator_0x713be: ; 0x713be
+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
@@ -29,25 +27,23 @@
 	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
 	db $ff ; end
-; 0x713d8
 
 
-CeladonDeptStoreElevator_MapEventHeader: ; 0x713d8
+CeladonDeptStoreElevator_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 0, 3, $0, MapCeladonDeptStoreElevatorSignpost0Script
+	signpost 0, 3, SIGNPOST_READ, MapCeladonDeptStoreElevatorSignpost0Script
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x713ed
--- a/maps/CeladonGameCorner.asm
+++ b/maps/CeladonGameCorner.asm
@@ -1,20 +1,17 @@
-CeladonGameCorner_MapScriptHeader: ; 0x7211b
-	; trigger count
+CeladonGameCorner_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x7211d
 
-ClerkScript_0x7211d: ; 0x7211d
-	jumpstd $0032
-; 0x72120
+ClerkScript_0x7211d:
+	jumpstd gamecornercoinvendor
 
-ReceptionistScript_0x72120: ; 0x72120
+ReceptionistScript_0x72120:
 	jumptextfaceplayer UnknownText_0x721d0
-; 0x72123
 
-PokefanMScript_0x72123: ; 0x72123
+PokefanMScript_0x72123:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x72215
@@ -22,9 +19,8 @@
 	loadmovesprites
 	spriteface $4, LEFT
 	end
-; 0x7212e
 
-TeacherScript_0x7212e: ; 0x7212e
+TeacherScript_0x7212e:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x72242
@@ -32,9 +28,8 @@
 	loadmovesprites
 	spriteface $5, RIGHT
 	end
-; 0x72139
 
-FishingGuruScript_0x72139: ; 0x72139
+FishingGuruScript_0x72139:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x72295
@@ -42,9 +37,8 @@
 	loadmovesprites
 	spriteface $6, RIGHT
 	end
-; 0x72144
 
-FisherScript_0x72144: ; 0x72144
+FisherScript_0x72144:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_COINS_FROM_GAMBLER_AT_CELADON
@@ -59,44 +53,38 @@
 	scall .UnknownScript_0x72172
 	givecoins 18
 	setevent EVENT_GOT_COINS_FROM_GAMBLER_AT_CELADON
-.UnknownScript_0x72169 ; 0x72169
+.UnknownScript_0x72169
 	writetext UnknownText_0x72345
 	closetext
 	loadmovesprites
 	spriteface $fe, LEFT
 	end
-; 0x72172
 
-.UnknownScript_0x72172 ; 0x72172
-	jumpstd $002f
+.UnknownScript_0x72172
+	jumpstd receiveitem
 	end
-; 0x72176
 
-.coinname ; 0x72176
+.coinname
 	db "COIN@"
-; 0x7217b
 
-UnknownScript_0x7217b: ; 0x7217b
+UnknownScript_0x7217b:
 	writetext UnknownText_0x7238a
 	closetext
 	loadmovesprites
 	spriteface $fe, LEFT
 	end
-; 0x72184
 
-UnknownScript_0x72184: ; 0x72184
+UnknownScript_0x72184:
 	writetext UnknownText_0x723d9
 	closetext
 	loadmovesprites
 	spriteface $fe, LEFT
 	end
-; 0x7218d
 
-CeladonGymGuyScript: ; 0x7218d
+CeladonGymGuyScript:
 	jumptextfaceplayer CeladonGymGuyText
-; 0x72190
 
-GrampsScript_0x72190: ; 0x72190
+GrampsScript_0x72190:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x724ad
@@ -104,62 +92,53 @@
 	loadmovesprites
 	spriteface $a, LEFT
 	end
-; 0x7219b
 
-MapCeladonGameCornerSignpost36Script: ; 0x7219b
+MapCeladonGameCornerSignpost36Script:
 	jumptext UnknownText_0x724f3
-; 0x7219e
 
-MapCeladonGameCornerSignpost37Script: ; 0x7219e
+MapCeladonGameCornerSignpost37Script:
 	jumptext UnknownText_0x72521
-; 0x721a1
 
-MapCeladonGameCornerSignpost35Script: ; 0x721a1
+MapCeladonGameCornerSignpost35Script:
 	random $6
 	if_equal $0, MapCeladonGameCornerSignpost16Script
 	refreshscreen $0
 	writebyte $0
-	special Functionc373
+	special Special_SlotMachine
 	loadmovesprites
 	end
-; 0x721b0
 
-MapCeladonGameCornerSignpost16Script: ; 0x721b0
+MapCeladonGameCornerSignpost16Script:
 	refreshscreen $0
 	writebyte $1
-	special Functionc373
+	special Special_SlotMachine
 	loadmovesprites
 	end
-; 0x721b9
 
-MapCeladonGameCornerSignpost11Script: ; 0x721b9
+MapCeladonGameCornerSignpost11Script:
 	refreshscreen $0
-	special Functionc380
+	special Special_CardFlip
 	loadmovesprites
 	end
-; 0x721c0
 
-MapCeladonGameCornerSignpost32Script: ; 0x721c0
+MapCeladonGameCornerSignpost32Script:
 	jumptext UnknownText_0x7254f
-; 0x721c3
 
-MapCeladonGameCornerSignpost9Script: ; 0x721c3
+MapCeladonGameCornerSignpost9Script:
 	loadfont
 	writetext UnknownText_0x72567
 	closetext
-	special Functionc380
+	special Special_CardFlip
 	loadmovesprites
 	end
-; 0x721cd
 
-MovementData_0x721cd: ; 0x721cd
+MovementData_0x721cd:
 ; Unreferenced.
 	step_right
 	turn_head_left
 	step_end
-; 0x721d0
 
-UnknownText_0x721d0: ; 0x721d0
+UnknownText_0x721d0:
 	text "Welcome!"
 
 	para "You may exchange"
@@ -168,16 +147,14 @@
 	para "fabulous prizes"
 	line "next door."
 	done
-; 0x72215
 
-UnknownText_0x72215: ; 0x72215
+UnknownText_0x72215:
 	text "The slot machines"
 	line "are all state of"
 	cont "the art."
 	done
-; 0x72242
 
-UnknownText_0x72242: ; 0x72242
+UnknownText_0x72242:
 	text "It's this machine"
 	line "I want."
 
@@ -187,9 +164,8 @@
 	para "should pay out"
 	line "today."
 	done
-; 0x72295
 
-UnknownText_0x72295: ; 0x72295
+UnknownText_0x72295:
 	text "I think this slot"
 	line "machine will pay"
 	cont "out…"
@@ -197,9 +173,8 @@
 	para "The odds vary"
 	line "among machines."
 	done
-; 0x722dc
 
-UnknownText_0x722dc: ; 0x722dc
+UnknownText_0x722dc:
 	text "Gahahaha!"
 
 	para "The coins just"
@@ -211,9 +186,8 @@
 	para "I'll share my luck"
 	line "with you!"
 	done
-; 0x72345
 
-UnknownText_0x72345: ; 0x72345
+UnknownText_0x72345:
 	text "Gahahaha!"
 
 	para "It makes me feel"
@@ -222,9 +196,8 @@
 	para "things for other"
 	line "people!"
 	done
-; 0x7238a
 
-UnknownText_0x7238a: ; 0x7238a
+UnknownText_0x7238a:
 	text "Hey, you don't"
 	line "have a COIN CASE."
 
@@ -232,9 +205,8 @@
 	line "to give you any"
 	cont "coins, kid?"
 	done
-; 0x723d9
 
-UnknownText_0x723d9: ; 0x723d9
+UnknownText_0x723d9:
 	text "Hey, your COIN"
 	line "CASE is full, kid."
 
@@ -242,9 +214,8 @@
 	line "a winning streak"
 	cont "too."
 	done
-; 0x72425
 
-CeladonGymGuyText: ; 0x72425
+CeladonGymGuyText:
 	text "Hey! CHAMP in"
 	line "making!"
 
@@ -258,9 +229,8 @@
 	para "But I don't have"
 	line "enough coins yet…"
 	done
-; 0x724ad
 
-UnknownText_0x724ad: ; 0x724ad
+UnknownText_0x724ad:
 	text "Hmmm… The odds are"
 	line "surely better for"
 
@@ -267,9 +237,8 @@
 	para "PIKACHU's line,"
 	line "but… What to do?"
 	done
-; 0x724f3
 
-UnknownText_0x724f3: ; 0x724f3
+UnknownText_0x724f3:
 	text "Hey!"
 
 	para "Underneath this"
@@ -277,9 +246,8 @@
 
 	para "There's nothing!"
 	done
-; 0x72521
 
-UnknownText_0x72521: ; 0x72521
+UnknownText_0x72521:
 	text "Hey!"
 
 	para "Underneath this"
@@ -287,15 +255,13 @@
 
 	para "There's nothing!"
 	done
-; 0x7254f
 
-UnknownText_0x7254f: ; 0x7254f
+UnknownText_0x7254f:
 	text "There's a lighter"
 	line "here."
 	done
-; 0x72567
 
-UnknownText_0x72567: ; 0x72567
+UnknownText_0x72567:
 	text "A can of soda…"
 
 	para "Someone must be"
@@ -303,70 +269,68 @@
 
 	para "Huh? It's empty!"
 	done
-; 0x725a4
 
-CeladonGameCorner_MapEventHeader: ; 0x725a4
+CeladonGameCorner_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 38
-	signpost 6, 1, $0, MapCeladonGameCornerSignpost11Script
-	signpost 7, 1, $0, MapCeladonGameCornerSignpost11Script
-	signpost 8, 1, $0, MapCeladonGameCornerSignpost11Script
-	signpost 9, 1, $0, MapCeladonGameCornerSignpost11Script
-	signpost 10, 1, $0, MapCeladonGameCornerSignpost11Script
-	signpost 11, 1, $4, MapCeladonGameCornerSignpost11Script
-	signpost 6, 6, $0, MapCeladonGameCornerSignpost11Script
-	signpost 7, 6, $0, MapCeladonGameCornerSignpost11Script
-	signpost 8, 6, $0, MapCeladonGameCornerSignpost11Script
-	signpost 9, 6, $0, MapCeladonGameCornerSignpost9Script
-	signpost 10, 6, $0, MapCeladonGameCornerSignpost11Script
-	signpost 11, 6, $3, MapCeladonGameCornerSignpost11Script
-	signpost 6, 7, $0, MapCeladonGameCornerSignpost35Script
-	signpost 7, 7, $0, MapCeladonGameCornerSignpost35Script
-	signpost 8, 7, $0, MapCeladonGameCornerSignpost35Script
-	signpost 9, 7, $0, MapCeladonGameCornerSignpost35Script
-	signpost 10, 7, $0, MapCeladonGameCornerSignpost16Script
-	signpost 11, 7, $4, MapCeladonGameCornerSignpost35Script
-	signpost 6, 12, $0, MapCeladonGameCornerSignpost35Script
-	signpost 7, 12, $0, MapCeladonGameCornerSignpost35Script
-	signpost 8, 12, $0, MapCeladonGameCornerSignpost35Script
-	signpost 9, 12, $0, MapCeladonGameCornerSignpost35Script
-	signpost 10, 12, $0, MapCeladonGameCornerSignpost35Script
-	signpost 11, 12, $3, MapCeladonGameCornerSignpost35Script
-	signpost 6, 13, $0, MapCeladonGameCornerSignpost35Script
-	signpost 7, 13, $0, MapCeladonGameCornerSignpost35Script
-	signpost 8, 13, $0, MapCeladonGameCornerSignpost35Script
-	signpost 9, 13, $0, MapCeladonGameCornerSignpost35Script
-	signpost 10, 13, $0, MapCeladonGameCornerSignpost35Script
-	signpost 11, 13, $4, MapCeladonGameCornerSignpost35Script
-	signpost 6, 18, $0, MapCeladonGameCornerSignpost35Script
-	signpost 7, 18, $0, MapCeladonGameCornerSignpost35Script
-	signpost 8, 18, $0, MapCeladonGameCornerSignpost32Script
-	signpost 9, 18, $0, MapCeladonGameCornerSignpost35Script
-	signpost 10, 18, $0, MapCeladonGameCornerSignpost35Script
-	signpost 11, 18, $3, MapCeladonGameCornerSignpost35Script
-	signpost 0, 15, $0, MapCeladonGameCornerSignpost36Script
-	signpost 0, 9, $0, MapCeladonGameCornerSignpost37Script
+	signpost 6, 1, SIGNPOST_READ, MapCeladonGameCornerSignpost11Script
+	signpost 7, 1, SIGNPOST_READ, MapCeladonGameCornerSignpost11Script
+	signpost 8, 1, SIGNPOST_READ, MapCeladonGameCornerSignpost11Script
+	signpost 9, 1, SIGNPOST_READ, MapCeladonGameCornerSignpost11Script
+	signpost 10, 1, SIGNPOST_READ, MapCeladonGameCornerSignpost11Script
+	signpost 11, 1, SIGNPOST_LEFT, MapCeladonGameCornerSignpost11Script
+	signpost 6, 6, SIGNPOST_READ, MapCeladonGameCornerSignpost11Script
+	signpost 7, 6, SIGNPOST_READ, MapCeladonGameCornerSignpost11Script
+	signpost 8, 6, SIGNPOST_READ, MapCeladonGameCornerSignpost11Script
+	signpost 9, 6, SIGNPOST_READ, MapCeladonGameCornerSignpost9Script
+	signpost 10, 6, SIGNPOST_READ, MapCeladonGameCornerSignpost11Script
+	signpost 11, 6, SIGNPOST_RIGHT, MapCeladonGameCornerSignpost11Script
+	signpost 6, 7, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
+	signpost 7, 7, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
+	signpost 8, 7, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
+	signpost 9, 7, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
+	signpost 10, 7, SIGNPOST_READ, MapCeladonGameCornerSignpost16Script
+	signpost 11, 7, SIGNPOST_LEFT, MapCeladonGameCornerSignpost35Script
+	signpost 6, 12, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
+	signpost 7, 12, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
+	signpost 8, 12, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
+	signpost 9, 12, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
+	signpost 10, 12, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
+	signpost 11, 12, SIGNPOST_RIGHT, MapCeladonGameCornerSignpost35Script
+	signpost 6, 13, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
+	signpost 7, 13, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
+	signpost 8, 13, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
+	signpost 9, 13, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
+	signpost 10, 13, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
+	signpost 11, 13, SIGNPOST_LEFT, MapCeladonGameCornerSignpost35Script
+	signpost 6, 18, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
+	signpost 7, 18, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
+	signpost 8, 18, SIGNPOST_READ, MapCeladonGameCornerSignpost32Script
+	signpost 9, 18, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
+	signpost 10, 18, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
+	signpost 11, 18, SIGNPOST_RIGHT, MapCeladonGameCornerSignpost35Script
+	signpost 0, 15, SIGNPOST_READ, MapCeladonGameCornerSignpost36Script
+	signpost 0, 9, SIGNPOST_READ, MapCeladonGameCornerSignpost37Script
 
-	; people-events
+.PersonEvents:
 	db 9
-	person_event SPRITE_CLERK, 6, 9, $6, $0, 255, 255, $a0, 0, ClerkScript_0x7211d, $ffff
-	person_event SPRITE_RECEPTIONIST, 6, 7, $6, $0, 255, 255, $a0, 0, ReceptionistScript_0x72120, $ffff
-	person_event SPRITE_POKEFAN_M, 14, 18, $8, $0, 255, 255, $80, 0, PokefanMScript_0x72123, $ffff
-	person_event SPRITE_TEACHER, 11, 21, $9, $0, 255, 255, $90, 0, TeacherScript_0x7212e, $ffff
-	person_event SPRITE_FISHING_GURU, 11, 15, $9, $0, 255, 255, $a0, 0, FishingGuruScript_0x72139, $ffff
-	person_event SPRITE_FISHER, 14, 12, $8, $0, 255, 2, $80, 0, FisherScript_0x72144, $ffff
-	person_event SPRITE_FISHER, 14, 12, $8, $0, 255, 4, $80, 0, FisherScript_0x72144, $ffff
-	person_event SPRITE_GYM_GUY, 7, 15, $6, $0, 255, 255, $80, 0, CeladonGymGuyScript, $ffff
-	person_event SPRITE_GRAMPS, 12, 6, $8, $0, 255, 255, $a0, 0, GrampsScript_0x72190, $ffff
-; 0x726e7
+	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
--- a/maps/CeladonGameCornerPrizeRoom.asm
+++ b/maps/CeladonGameCornerPrizeRoom.asm
@@ -1,20 +1,17 @@
-CeladonGameCornerPrizeRoom_MapScriptHeader: ; 0x726e7
-	; trigger count
+CeladonGameCornerPrizeRoom_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x726e9
 
-GentlemanScript_0x726e9: ; 0x726e9
+GentlemanScript_0x726e9:
 	jumptextfaceplayer UnknownText_0x728b8
-; 0x726ec
 
-PharmacistScript_0x726ec: ; 0x726ec
+PharmacistScript_0x726ec:
 	jumptextfaceplayer UnknownText_0x728e9
-; 0x726ef
 
-MapCeladonGameCornerPrizeRoomSignpost0Script: ; 0x726ef
+MapCeladonGameCornerPrizeRoomSignpost0Script:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x7293e
@@ -22,7 +19,7 @@
 	checkitem COIN_CASE
 	iffalse UnknownScript_0x7278a
 	writetext UnknownText_0x72974
-UnknownScript_0x726fd: ; 0x726fd
+UnknownScript_0x726fd:
 	special Function24b25
 	loadmenudata MenuDataHeader_0x72790
 	interpretmenu2
@@ -31,96 +28,85 @@
 	if_equal $2, UnknownScript_0x72730
 	if_equal $3, UnknownScript_0x7274c
 	jump UnknownScript_0x72784
-; 0x72714
 
-UnknownScript_0x72714: ; 0x72714
+UnknownScript_0x72714:
 	checkcoins 1500
 	if_equal $2, UnknownScript_0x72778
-	itemtotext TM_32, $0
+	itemtotext TM_DOUBLE_TEAM, $0
 	scall UnknownScript_0x72768
 	iffalse UnknownScript_0x72784
-	giveitem TM_32, $1
+	giveitem TM_DOUBLE_TEAM, $1
 	iffalse UnknownScript_0x7277e
 	takecoins 1500
 	jump UnknownScript_0x7276d
-; 0x72730
 
-UnknownScript_0x72730: ; 0x72730
+UnknownScript_0x72730:
 	checkcoins 3500
 	if_equal $2, UnknownScript_0x72778
-	itemtotext TM_29, $0
+	itemtotext TM_PSYCHIC, $0
 	scall UnknownScript_0x72768
 	iffalse UnknownScript_0x72784
-	giveitem TM_29, $1
+	giveitem TM_PSYCHIC, $1
 	iffalse UnknownScript_0x7277e
 	takecoins 3500
 	jump UnknownScript_0x7276d
-; 0x7274c
 
-UnknownScript_0x7274c: ; 0x7274c
+UnknownScript_0x7274c:
 	checkcoins 7500
 	if_equal $2, UnknownScript_0x72778
-	itemtotext TM_15, $0
+	itemtotext TM_HYPER_BEAM, $0
 	scall UnknownScript_0x72768
 	iffalse UnknownScript_0x72784
-	giveitem TM_15, $1
+	giveitem TM_HYPER_BEAM, $1
 	iffalse UnknownScript_0x7277e
 	takecoins 7500
 	jump UnknownScript_0x7276d
-; 0x72768
 
-UnknownScript_0x72768: ; 0x72768
+UnknownScript_0x72768:
 	writetext UnknownText_0x72991
 	yesorno
 	end
-; 0x7276d
 
-UnknownScript_0x7276d: ; 0x7276d
+UnknownScript_0x7276d:
 	waitbutton
 	playsound SFX_TRANSACTION
 	writetext UnknownText_0x729ad
 	closetext
 	jump UnknownScript_0x726fd
-; 0x72778
 
-UnknownScript_0x72778: ; 0x72778
+UnknownScript_0x72778:
 	writetext UnknownText_0x729bb
 	closetext
 	loadmovesprites
 	end
-; 0x7277e
 
-UnknownScript_0x7277e: ; 0x7277e
+UnknownScript_0x7277e:
 	writetext UnknownText_0x729d8
 	closetext
 	loadmovesprites
 	end
-; 0x72784
 
-UnknownScript_0x72784: ; 0x72784
+UnknownScript_0x72784:
 	writetext UnknownText_0x729f2
 	closetext
 	loadmovesprites
 	end
-; 0x7278a
 
-UnknownScript_0x7278a: ; 0x7278a
+UnknownScript_0x7278a:
 	writetext UnknownText_0x72a14
 	closetext
 	loadmovesprites
 	end
-; 0x72790
 
 
-MenuDataHeader_0x72790: ; 0x72790
+MenuDataHeader_0x72790:
 	db $40 ; flags
 	db 02, 00 ; start coords
 	db 11, 15 ; end coords
 	dw MenuData2_0x72798
 	db 1 ; default option
-; 0x72798
 
-MenuData2_0x72798: ; 0x72798
+MenuData2_0x72798:
 	db $80 ; flags
 	db 4 ; items
 	db "TM32    1500@"
@@ -127,10 +113,9 @@
 	db "TM29    3500@"
 	db "TM15    7500@"
 	db "CANCEL@"
-; 0x727c8
 
 
-MapCeladonGameCornerPrizeRoomSignpost1Script: ; 0x727c8
+MapCeladonGameCornerPrizeRoomSignpost1Script:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x7293e
@@ -137,7 +122,7 @@
 	closetext
 	checkitem COIN_CASE
 	iffalse UnknownScript_0x7278a
-UnknownScript_0x727d3: ; 0x727d3
+UnknownScript_0x727d3:
 	writetext UnknownText_0x72974
 	special Function24b25
 	loadmenudata MenuDataHeader_0x72877
@@ -147,12 +132,11 @@
 	if_equal $2, UnknownScript_0x7281b
 	if_equal $3, UnknownScript_0x72849
 	jump UnknownScript_0x72784
-; 0x727ed
 
-UnknownScript_0x727ed: ; 0x727ed
+UnknownScript_0x727ed:
 	checkcoins 2222
 	if_equal $2, UnknownScript_0x72778
-	checkcode $1
+	checkcode VAR_PARTYCOUNT
 	if_equal $6, UnknownScript_0x7277e
 	pokenamemem PIKACHU, $0
 	scall UnknownScript_0x72768
@@ -162,16 +146,15 @@
 	writetext UnknownText_0x729ad
 	closetext
 	writebyte PIKACHU
-	special Functionc230
+	special Special_GameCornerPrizeMonCheckDex
 	givepoke PIKACHU, 25, 0, 0
 	takecoins 2222
 	jump UnknownScript_0x727d3
-; 0x7281b
 
-UnknownScript_0x7281b: ; 0x7281b
+UnknownScript_0x7281b:
 	checkcoins 5555
 	if_equal $2, UnknownScript_0x72778
-	checkcode $1
+	checkcode VAR_PARTYCOUNT
 	if_equal $6, UnknownScript_0x7277e
 	pokenamemem PORYGON, $0
 	scall UnknownScript_0x72768
@@ -181,16 +164,15 @@
 	writetext UnknownText_0x729ad
 	closetext
 	writebyte PORYGON
-	special Functionc230
+	special Special_GameCornerPrizeMonCheckDex
 	givepoke PORYGON, 15, 0, 0
 	takecoins 5555
 	jump UnknownScript_0x727d3
-; 0x72849
 
-UnknownScript_0x72849: ; 0x72849
+UnknownScript_0x72849:
 	checkcoins 8888
 	if_equal $2, UnknownScript_0x72778
-	checkcode $1
+	checkcode VAR_PARTYCOUNT
 	if_equal $6, UnknownScript_0x7277e
 	pokenamemem LARVITAR, $0
 	scall UnknownScript_0x72768
@@ -200,22 +182,20 @@
 	writetext UnknownText_0x729ad
 	closetext
 	writebyte LARVITAR
-	special Functionc230
+	special Special_GameCornerPrizeMonCheckDex
 	givepoke LARVITAR, 40, 0, 0
 	takecoins 8888
 	jump UnknownScript_0x727d3
-; 0x72877
 
 
-MenuDataHeader_0x72877: ; 0x72877
+MenuDataHeader_0x72877:
 	db $40 ; flags
 	db 02, 00 ; start coords
 	db 11, 17 ; end coords
 	dw MenuData2_0x7287f
 	db 1 ; default option
-; 0x7287f
 
-MenuData2_0x7287f: ; 0x7287f
+MenuData2_0x7287f:
 	db $80 ; flags
 	db 4 ; items
 	db "PIKACHU    2222@"
@@ -222,17 +202,15 @@
 	db "PORYGON    5555@"
 	db "LARVITAR   8888@"
 	db "CANCEL@"
-; 0x728b8
 
 
-UnknownText_0x728b8: ; 0x728b8
+UnknownText_0x728b8:
 	text "I wanted PORYGON,"
 	line "but I was short by"
 	cont "100 coins…"
 	done
-; 0x728e9
 
-UnknownText_0x728e9: ; 0x728e9
+UnknownText_0x728e9:
 	text "Whew…"
 
 	para "I've got to stay"
@@ -242,9 +220,8 @@
 	line "cool, or I'll lose"
 	cont "all my money…"
 	done
-; 0x7293e
 
-UnknownText_0x7293e: ; 0x7293e
+UnknownText_0x7293e:
 	text "Welcome!"
 
 	para "We exchange your"
@@ -251,70 +228,61 @@
 	line "coins for fabulous"
 	cont "prizes!"
 	done
-; 0x72974
 
-UnknownText_0x72974: ; 0x72974
+UnknownText_0x72974:
 	text "Which prize would"
 	line "you like?"
 	done
-; 0x72991
 
-UnknownText_0x72991: ; 0x72991
+UnknownText_0x72991:
 	text "OK, so you wanted"
 	line "a @"
 	text_from_ram StringBuffer3
 	text "?"
 	done
-; 0x729ad
 
-UnknownText_0x729ad: ; 0x729ad
+UnknownText_0x729ad:
 	text "Here you go!"
 	done
-; 0x729bb
 
-UnknownText_0x729bb: ; 0x729bb
+UnknownText_0x729bb:
 	text "You don't have"
 	line "enough coins."
 	done
-; 0x729d8
 
-UnknownText_0x729d8: ; 0x729d8
+UnknownText_0x729d8:
 	text "You have no room"
 	line "for it."
 	done
-; 0x729f2
 
-UnknownText_0x729f2: ; 0x729f2
+UnknownText_0x729f2:
 	text "Oh. Please come"
 	line "back with coins!"
 	done
-; 0x72a14
 
-UnknownText_0x72a14: ; 0x72a14
+UnknownText_0x72a14:
 	text "Oh? You don't have"
 	line "a COIN CASE."
 	done
-; 0x72a34
 
-CeladonGameCornerPrizeRoom_MapEventHeader: ; 0x72a34
+CeladonGameCornerPrizeRoom_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 2, $0, MapCeladonGameCornerPrizeRoomSignpost0Script
-	signpost 1, 4, $0, MapCeladonGameCornerPrizeRoomSignpost1Script
+	signpost 1, 2, SIGNPOST_READ, MapCeladonGameCornerPrizeRoomSignpost0Script
+	signpost 1, 4, SIGNPOST_READ, MapCeladonGameCornerPrizeRoomSignpost1Script
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_GENTLEMAN, 6, 4, $6, $0, 255, 255, $80, 0, GentlemanScript_0x726e9, $ffff
-	person_event SPRITE_PHARMACIST, 8, 8, $4, $10, 255, 255, $a0, 0, PharmacistScript_0x726ec, $ffff
-; 0x72a68
+	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
--- a/maps/CeladonGym.asm
+++ b/maps/CeladonGym.asm
@@ -1,16 +1,15 @@
-CeladonGym_MapScriptHeader: ; 0x72a68
-	; trigger count
+CeladonGym_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x72a6a
 
-ErikaScript_0x72a6a: ; 0x72a6a
+ErikaScript_0x72a6a:
 	faceplayer
 	loadfont
-	checkflag $0026
-	iftrue UnknownScript_0x72a9b
+	checkflag ENGINE_RAINBOWBADGE
+	iftrue .FightDone
 	writetext UnknownText_0x72b28
 	closetext
 	loadmovesprites
@@ -18,7 +17,7 @@
 	loadtrainer ERIKA, 1
 	startbattle
 	returnafterbattle
-	setevent $04c8
+	setevent EVENT_BEAT_ERIKA
 	setevent EVENT_BEAT_LASS_MICHELLE
 	setevent EVENT_BEAT_PICNICKER_TANYA
 	setevent EVENT_BEAT_BEAUTY_JULIA
@@ -27,43 +26,25 @@
 	writetext UnknownText_0x72c96
 	playsound SFX_GET_BADGE
 	waitbutton
-	setflag $0026
-UnknownScript_0x72a9b: ; 0x72a9b
+	setflag ENGINE_RAINBOWBADGE
+.FightDone
 	checkevent EVENT_GOT_TM19_GIGA_DRAIN
 	iftrue UnknownScript_0x72aae
 	writetext UnknownText_0x72cb0
 	keeptextopen
-	verbosegiveitem TM_19, 1
+	verbosegiveitem TM_GIGA_DRAIN, 1
 	iffalse UnknownScript_0x72aae
 	setevent EVENT_GOT_TM19_GIGA_DRAIN
-UnknownScript_0x72aae: ; 0x72aae
+UnknownScript_0x72aae:
 	writetext UnknownText_0x72d8f
 	closetext
 	loadmovesprites
 	end
-; 0x72ab4
 
-TrainerLassMichelle: ; 0x72ab4
-	; bit/flag number
-	dw $51d
+TrainerLassMichelle:
+	trainer EVENT_BEAT_LASS_MICHELLE, LASS, MICHELLE, LassMichelleSeenText, LassMichelleBeatenText, $0000, LassMichelleScript
 
-	; trainer group && trainer id
-	db LASS, MICHELLE
-
-	; text when seen
-	dw LassMichelleSeenText
-
-	; text when trainer beaten
-	dw LassMichelleBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw LassMichelleScript
-; 0x72ac0
-
-LassMichelleScript: ; 0x72ac0
+LassMichelleScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x72e30
@@ -70,29 +51,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x72ac8
 
-TrainerPicnickerTanya: ; 0x72ac8
-	; bit/flag number
-	dw $490
+TrainerPicnickerTanya:
+	trainer EVENT_BEAT_PICNICKER_TANYA, PICNICKER, TANYA, PicnickerTanyaSeenText, PicnickerTanyaBeatenText, $0000, PicnickerTanyaScript
 
-	; trainer group && trainer id
-	db PICNICKER, TANYA
-
-	; text when seen
-	dw PicnickerTanyaSeenText
-
-	; text when trainer beaten
-	dw PicnickerTanyaBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PicnickerTanyaScript
-; 0x72ad4
-
-PicnickerTanyaScript: ; 0x72ad4
+PicnickerTanyaScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x72e8e
@@ -99,29 +62,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x72adc
 
-TrainerBeautyJulia: ; 0x72adc
-	; bit/flag number
-	dw $4ba
+TrainerBeautyJulia:
+	trainer EVENT_BEAT_BEAUTY_JULIA, BEAUTY, JULIA, BeautyJuliaSeenText, BeautyJuliaBeatenText, $0000, BeautyJuliaScript
 
-	; trainer group && trainer id
-	db BEAUTY, JULIA
-
-	; text when seen
-	dw BeautyJuliaSeenText
-
-	; text when trainer beaten
-	dw BeautyJuliaBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw BeautyJuliaScript
-; 0x72ae8
-
-BeautyJuliaScript: ; 0x72ae8
+BeautyJuliaScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x72f01
@@ -128,29 +73,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x72af0
 
-TrainerTwinsJoandzoe1: ; 0x72af0
-	; bit/flag number
-	dw $468
+TrainerTwinsJoandzoe1:
+	trainer EVENT_BEAT_TWINS_JO_AND_ZOE, TWINS, JOANDZOE1, TwinsJoandzoe1SeenText, TwinsJoandzoe1BeatenText, $0000, TwinsJoandzoe1Script
 
-	; trainer group && trainer id
-	db TWINS, JOANDZOE1
-
-	; text when seen
-	dw TwinsJoandzoe1SeenText
-
-	; text when trainer beaten
-	dw TwinsJoandzoe1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw TwinsJoandzoe1Script
-; 0x72afc
-
-TwinsJoandzoe1Script: ; 0x72afc
+TwinsJoandzoe1Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x72f70
@@ -157,29 +84,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x72b04
 
-TrainerTwinsJoandzoe2: ; 0x72b04
-	; bit/flag number
-	dw $468
+TrainerTwinsJoandzoe2:
+	trainer EVENT_BEAT_TWINS_JO_AND_ZOE, TWINS, JOANDZOE2, TwinsJoandzoe2SeenText, TwinsJoandzoe2BeatenText, $0000, TwinsJoandzoe2Script
 
-	; trainer group && trainer id
-	db TWINS, JOANDZOE2
-
-	; text when seen
-	dw TwinsJoandzoe2SeenText
-
-	; text when trainer beaten
-	dw TwinsJoandzoe2BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw TwinsJoandzoe2Script
-; 0x72b10
-
-TwinsJoandzoe2Script: ; 0x72b10
+TwinsJoandzoe2Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x72fc0
@@ -186,7 +95,6 @@
 	closetext
 	loadmovesprites
 	end
-; 0x72b18
 
 CeladonGymStatue:
 	checkflag ENGINE_RAINBOWBADGE
@@ -196,7 +104,7 @@
 	trainertotext ERIKA, 1, $1
 	jumpstd gymstatue2
 
-UnknownText_0x72b28: ; 0x72b28
+UnknownText_0x72b28:
 	text "ERIKA: Hello…"
 	line "Lovely weather,"
 
@@ -223,9 +131,8 @@
 	para "Very well, but I"
 	line "shall not lose."
 	done
-; 0x72c3e
 
-UnknownText_0x72c3e: ; 0x72c3e
+UnknownText_0x72c3e:
 	text "ERIKA: Oh!"
 	line "I concede defeat…"
 
@@ -235,15 +142,13 @@
 	para "I shall give you"
 	line "RAINBOWBADGE…"
 	done
-; 0x72c96
 
-UnknownText_0x72c96: ; 0x72c96
+UnknownText_0x72c96:
 	text "<PLAYER> received"
 	line "RAINBOWBADGE."
 	done
-; 0x72cb0
 
-UnknownText_0x72cb0: ; 0x72cb0
+UnknownText_0x72cb0:
 	text "ERIKA: That was a"
 	line "delightful match."
 
@@ -263,9 +168,8 @@
 	para "Please use it if"
 	line "it pleases you…"
 	done
-; 0x72d8f
 
-UnknownText_0x72d8f: ; 0x72d8f
+UnknownText_0x72d8f:
 	text "ERIKA: Losing"
 	line "leaves a bitter"
 	cont "aftertaste…"
@@ -276,39 +180,33 @@
 	para "trainers spurs me"
 	line "to do better…"
 	done
-; 0x72dfc
 
-LassMichelleSeenText: ; 0x72dfc
+LassMichelleSeenText:
 	text "Do you think a"
 	line "girls-only GYM"
 	cont "is rare?"
 	done
-; 0x72e24
 
-LassMichelleBeatenText: ; 0x72e24
+LassMichelleBeatenText:
 	text "Oh, bleah!"
 	done
-; 0x72e30
 
-UnknownText_0x72e30: ; 0x72e30
+UnknownText_0x72e30:
 	text "I just got care-"
 	line "less, that's all!"
 	done
-; 0x72e53
 
-PicnickerTanyaSeenText: ; 0x72e53
+PicnickerTanyaSeenText:
 	text "Oh, a battle?"
 	line "That's kind of"
 	cont "scary, but OK!"
 	done
-; 0x72e7f
 
-PicnickerTanyaBeatenText: ; 0x72e7f
+PicnickerTanyaBeatenText:
 	text "Oh, that's it?"
 	done
-; 0x72e8e
 
-UnknownText_0x72e8e: ; 0x72e8e
+UnknownText_0x72e8e:
 	text "Oh, look at all"
 	line "your BADGES. No"
 
@@ -315,85 +213,74 @@
 	para "wonder I couldn't"
 	line "win!"
 	done
-; 0x72ec5
 
-BeautyJuliaSeenText: ; 0x72ec5
+BeautyJuliaSeenText:
 	text "Were you looking"
 	line "at these flowers"
 	cont "or at me?"
 	done
-; 0x72ef2
 
-BeautyJuliaBeatenText: ; 0x72ef2
+BeautyJuliaBeatenText:
 	text "How annoying!"
 	done
-; 0x72f01
 
-UnknownText_0x72f01: ; 0x72f01
+UnknownText_0x72f01:
 	text "How do I go about"
 	line "becoming ladylike"
 	cont "like ERIKA?"
 	done
-; 0x72f32
 
-TwinsJoandzoe1SeenText: ; 0x72f32
+TwinsJoandzoe1SeenText:
 	text "We'll show you"
 	line "#MON moves that"
 	cont "ERIKA taught us!"
 	done
-; 0x72f62
 
-TwinsJoandzoe1BeatenText: ; 0x72f62
+TwinsJoandzoe1BeatenText:
 	text "Oh… We lost…"
 	done
-; 0x72f70
 
-UnknownText_0x72f70: ; 0x72f70
+UnknownText_0x72f70:
 	text "ERIKA will get you"
 	line "back for us!"
 	done
-; 0x72f91
 
-TwinsJoandzoe2SeenText: ; 0x72f91
+TwinsJoandzoe2SeenText:
 	text "We're going to"
 	line "protect ERIKA!"
 	done
-; 0x72faf
 
-TwinsJoandzoe2BeatenText: ; 0x72faf
+TwinsJoandzoe2BeatenText:
 	text "We couldn't win…"
 	done
-; 0x72fc0
 
-UnknownText_0x72fc0: ; 0x72fc0
+UnknownText_0x72fc0:
 	text "ERIKA is much,"
 	line "much stronger!"
 	done
-; 0x72fdf
 
-CeladonGym_MapEventHeader: ; 0x72fdf
+CeladonGym_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 15, 3, $0, CeladonGymStatue
-	signpost 15, 6, $0, CeladonGymStatue
+	signpost 15, 3, SIGNPOST_READ, CeladonGymStatue
+	signpost 15, 6, SIGNPOST_READ, CeladonGymStatue
 
-	; people-events
+.PersonEvents:
 	db 6
-	person_event SPRITE_ERIKA, 7, 9, $6, $0, 255, 255, $a0, 0, ErikaScript_0x72a6a, $ffff
-	person_event SPRITE_LASS, 12, 11, $8, $0, 255, 255, $92, 2, TrainerLassMichelle, $ffff
-	person_event SPRITE_LASS, 12, 6, $9, $0, 255, 255, $a2, 2, TrainerPicnickerTanya, $ffff
-	person_event SPRITE_BUENA, 9, 7, $9, $0, 255, 255, $92, 2, TrainerBeautyJulia, $ffff
-	person_event SPRITE_TWIN, 14, 8, $6, $0, 255, 255, $82, 1, TrainerTwinsJoandzoe1, $ffff
-	person_event SPRITE_TWIN, 14, 9, $6, $0, 255, 255, $82, 1, TrainerTwinsJoandzoe2, $ffff
-; 0x73047
+	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
--- a/maps/CeladonMansion1F.asm
+++ b/maps/CeladonMansion1F.asm
@@ -1,10 +1,9 @@
-CeladonMansion1F_MapScriptHeader: ; 0x713ed
-	; trigger count
+CeladonMansion1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x713ef
 
 CeladonMansionManager:
 	jumptextfaceplayer CeladonMansionManagerText
@@ -69,11 +68,11 @@
 	line "MANAGER'S SUITE"
 	done
 
-CeladonMansion1F_MapEventHeader: ; 0x714cc
+CeladonMansion1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -81,18 +80,18 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 3
-	signpost 8, 5, $1, CeladonMansionManagersSuiteSign
-	signpost 3, 0, $0, CeladonMansion1fBookshelf
-	signpost 3, 2, $0, CeladonMansion1fBookshelf
+	signpost 8, 5, SIGNPOST_UP, CeladonMansionManagersSuiteSign
+	signpost 3, 0, SIGNPOST_READ, CeladonMansion1fBookshelf
+	signpost 3, 2, SIGNPOST_READ, CeladonMansion1fBookshelf
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_GRANNY, 9, 5, $3, $0, 255, 255, $0, 0, CeladonMansionManager, $ffff
-	person_event SPRITE_GROWLITHE, 10, 6, $16, $0, 255, 255, $0, 0, CeladonMansion1FMeowth, $ffff
-	person_event SPRITE_CLEFAIRY, 8, 7, $16, $0, 255, 255, $0, 0, CeladonMansion1FClefairy, $ffff
-	person_event SPRITE_GROWLITHE, 8, 8, $16, $2, 255, 255, $90, 0, CeladonMansion1FNidoranF, $ffff
+	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
--- a/maps/CeladonMansion2F.asm
+++ b/maps/CeladonMansion2F.asm
@@ -1,8 +1,8 @@
 CeladonMansion2F_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 CeladonMansion2FComputer:
@@ -53,7 +53,7 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -60,14 +60,14 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 3
-	signpost 3, 0, $0, CeladonMansion2FComputer
-	signpost 8, 5, $1, CeladonMansion2FSign
-	signpost 3, 2, $0, CeladonMansion2FBookshelf
+	signpost 3, 0, SIGNPOST_READ, CeladonMansion2FComputer
+	signpost 8, 5, SIGNPOST_UP, CeladonMansion2FSign
+	signpost 3, 2, SIGNPOST_READ, CeladonMansion2FBookshelf
 
-	; people-events
+.PersonEvents:
 	db 0
--- a/maps/CeladonMansion3F.asm
+++ b/maps/CeladonMansion3F.asm
@@ -1,23 +1,21 @@
-CeladonMansion3F_MapScriptHeader: ; 0x7166e
-	; trigger count
+CeladonMansion3F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x71670
 
-CooltrainerMScript_0x71670: ; 0x71670
+CooltrainerMScript_0x71670:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x716ce
-	checkcode $5
-	if_greater_than $f8, UnknownScript_0x7167e
+	checkcode VAR_DEXCAUGHT
+	if_greater_than 248, UnknownScript_0x7167e
 	closetext
 	loadmovesprites
 	end
-; 0x7167e
 
-UnknownScript_0x7167e: ; 0x7167e
+UnknownScript_0x7167e:
 	keeptextopen
 	writetext UnknownText_0x71725
 	playsound SFX_DEX_FANFARE_230_PLUS
@@ -30,9 +28,8 @@
 	loadmovesprites
 	setevent EVENT_ENABLE_DIPLOMA_PRINTING
 	end
-; 0x71696
 
-GymGuyScript_0x71696: ; 0x71696
+GymGuyScript_0x71696:
 	faceplayer
 	loadfont
 	checkevent EVENT_ENABLE_DIPLOMA_PRINTING
@@ -41,9 +38,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x716a4
 
-UnknownScript_0x716a4: ; 0x716a4
+UnknownScript_0x716a4:
 	writetext UnknownText_0x717d8
 	yesorno
 	iffalse UnknownScript_0x716b0
@@ -50,47 +46,38 @@
 	special Functionc4ac
 	loadmovesprites
 	end
-; 0x716b0
 
-UnknownScript_0x716b0: ; 0x716b0
+UnknownScript_0x716b0:
 	writetext UnknownText_0x71830
 	closetext
 	loadmovesprites
 	end
-; 0x716b6
 
-UnknownScript_0x716b6: ; 0x716b6
+UnknownScript_0x716b6:
 	writetext UnknownText_0x71863
 	closetext
 	loadmovesprites
 	end
-; 0x716bc
 
-SuperNerdScript_0x716bc: ; 0x716bc
+SuperNerdScript_0x716bc:
 	jumptextfaceplayer UnknownText_0x71895
-; 0x716bf
 
-FisherScript_0x716bf: ; 0x716bf
+FisherScript_0x716bf:
 	jumptextfaceplayer UnknownText_0x718ca
-; 0x716c2
 
-MapCeladonMansion3FSignpost0Script: ; 0x716c2
+MapCeladonMansion3FSignpost0Script:
 	jumptext UnknownText_0x7190b
-; 0x716c5
 
-MapCeladonMansion3FSignpost1Script: ; 0x716c5
+MapCeladonMansion3FSignpost1Script:
 	jumptext UnknownText_0x71928
-; 0x716c8
 
-MapCeladonMansion3FSignpost2Script: ; 0x716c8
+MapCeladonMansion3FSignpost2Script:
 	jumptext UnknownText_0x71952
-; 0x716cb
 
-MapCeladonMansion3FSignpost3Script: ; 0x716cb
+MapCeladonMansion3FSignpost3Script:
 	jumptext UnknownText_0x71996
-; 0x716ce
 
-UnknownText_0x716ce: ; 0x716ce
+UnknownText_0x716ce:
 	text "Is that right?"
 
 	para "I'm the GAME"
@@ -100,9 +87,8 @@
 	line "#DEX is tough,"
 	cont "but don't give up!"
 	done
-; 0x71725
 
-UnknownText_0x71725: ; 0x71725
+UnknownText_0x71725:
 	text "Wow! Excellent!"
 	line "You completed your"
 	cont "#DEX!"
@@ -109,14 +95,12 @@
 
 	para "Congratulations!"
 	done
-; 0x71760
 
-UnknownText_0x71760: ; 0x71760
+UnknownText_0x71760:
 	text "…"
 	done
-; 0x71763
 
-UnknownText_0x71763: ; 0x71763
+UnknownText_0x71763:
 	text "The GRAPHIC ARTIST"
 	line "will print out a"
 	cont "DIPLOMA for you."
@@ -124,17 +108,15 @@
 	para "You should go show"
 	line "it off."
 	done
-; 0x717b4
 
-UnknownText_0x717b4: ; 0x717b4
+UnknownText_0x717b4:
 	text "I'm the GRAPHIC"
 	line "ARTIST."
 
 	para "I drew you!"
 	done
-; 0x717d8
 
-UnknownText_0x717d8: ; 0x717d8
+UnknownText_0x717d8:
 	text "I'm the GRAPHIC"
 	line "ARTIST."
 
@@ -144,23 +126,20 @@
 	para "Want me to print"
 	line "out your DIPLOMA?"
 	done
-; 0x71830
 
-UnknownText_0x71830: ; 0x71830
+UnknownText_0x71830:
 	text "Give me a shout if"
 	line "you want your"
 	cont "DIPLOMA printed."
 	done
-; 0x71863
 
-UnknownText_0x71863: ; 0x71863
+UnknownText_0x71863:
 	text "Something's wrong."
 	line "I'll have to can-"
 	cont "cel printing."
 	done
-; 0x71895
 
-UnknownText_0x71895: ; 0x71895
+UnknownText_0x71895:
 	text "Who, me? I'm the"
 	line "PROGRAMMER."
 
@@ -167,9 +146,8 @@
 	para "Play the slot"
 	line "machines!"
 	done
-; 0x718ca
 
-UnknownText_0x718ca: ; 0x718ca
+UnknownText_0x718ca:
 	text "Aren't the TWINS"
 	line "adorable?"
 
@@ -178,22 +156,19 @@
 
 	para "Oh, I love them!"
 	done
-; 0x7190b
 
-UnknownText_0x7190b: ; 0x7190b
+UnknownText_0x7190b:
 	text "GAME FREAK"
 	line "DEVELOPMENT ROOM"
 	done
-; 0x71928
 
-UnknownText_0x71928: ; 0x71928
+UnknownText_0x71928:
 	text "It's a detailed"
 	line "drawing of a"
 	cont "pretty girl."
 	done
-; 0x71952
 
-UnknownText_0x71952: ; 0x71952
+UnknownText_0x71952:
 	text "It's the game"
 	line "program. Messing"
 
@@ -200,21 +175,19 @@
 	para "with it could put"
 	line "a bug in the game!"
 	done
-; 0x71996
 
-UnknownText_0x71996: ; 0x71996
+UnknownText_0x71996:
 	text "It's crammed with"
 	line "reference materi-"
 	cont "als. There's even"
 	cont "a # DOLL."
 	done
-; 0x719d5
 
-CeladonMansion3F_MapEventHeader: ; 0x719d5
+CeladonMansion3F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -221,20 +194,19 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 4
-	signpost 8, 5, $1, MapCeladonMansion3FSignpost0Script
-	signpost 3, 4, $1, MapCeladonMansion3FSignpost1Script
-	signpost 6, 1, $1, MapCeladonMansion3FSignpost2Script
-	signpost 3, 1, $1, MapCeladonMansion3FSignpost3Script
+	signpost 8, 5, SIGNPOST_UP, MapCeladonMansion3FSignpost0Script
+	signpost 3, 4, SIGNPOST_UP, MapCeladonMansion3FSignpost1Script
+	signpost 6, 1, SIGNPOST_UP, MapCeladonMansion3FSignpost2Script
+	signpost 3, 1, SIGNPOST_UP, MapCeladonMansion3FSignpost3Script
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_COOLTRAINER_M, 10, 7, $3, $0, 255, 255, $80, 0, CooltrainerMScript_0x71670, $ffff
-	person_event SPRITE_GYM_GUY, 8, 7, $7, $0, 255, 255, $90, 0, GymGuyScript_0x71696, $ffff
-	person_event SPRITE_SUPER_NERD, 11, 4, $7, $0, 255, 255, $90, 0, SuperNerdScript_0x716bc, $ffff
-	person_event SPRITE_FISHER, 8, 4, $7, $2, 255, 255, $80, 0, FisherScript_0x716bf, $ffff
-; 0x71a37
+	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
--- a/maps/CeladonMansionRoof.asm
+++ b/maps/CeladonMansionRoof.asm
@@ -1,20 +1,17 @@
-CeladonMansionRoof_MapScriptHeader: ; 0x71a37
-	; trigger count
+CeladonMansionRoof_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x71a39
 
-FisherScript_0x71a39: ; 0x71a39
+FisherScript_0x71a39:
 	jumptextfaceplayer UnknownText_0x71a3f
-; 0x71a3c
 
-MapCeladonMansionRoofSignpost0Script: ; 0x71a3c
+MapCeladonMansionRoofSignpost0Script:
 	jumptext UnknownText_0x71aa1
-; 0x71a3f
 
-UnknownText_0x71a3f: ; 0x71a3f
+UnknownText_0x71a3f:
 	text "High places--I do"
 	line "love them so!"
 
@@ -24,9 +21,8 @@
 	para "heights as much as"
 	line "me is smoke!"
 	done
-; 0x71aa1
 
-UnknownText_0x71aa1: ; 0x71aa1
+UnknownText_0x71aa1:
 	text "There's graffiti"
 	line "on the wall…"
 
@@ -33,26 +29,24 @@
 	para "<PLAYER> added a"
 	line "moustache!"
 	done
-; 0x71ad4
 
-CeladonMansionRoof_MapEventHeader: ; 0x71ad4
+CeladonMansionRoof_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 1, 6, $4, MapCeladonMansionRoofSignpost0Script
+	signpost 1, 6, SIGNPOST_LEFT, MapCeladonMansionRoofSignpost0Script
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_FISHER, 9, 11, $4, $10, 255, 255, $90, 0, FisherScript_0x71a39, $ffff
-; 0x71afb
+	person_event SPRITE_FISHER, 9, 11, OW_UP | $0, $10, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, FisherScript_0x71a39, -1
--- a/maps/CeladonMansionRoofHouse.asm
+++ b/maps/CeladonMansionRoofHouse.asm
@@ -1,12 +1,11 @@
-CeladonMansionRoofHouse_MapScriptHeader: ; 0x71afb
-	; trigger count
+CeladonMansionRoofHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x71afd
 
-PharmacistScript_0x71afd: ; 0x71afd
+PharmacistScript_0x71afd:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_TM03_CURSE
@@ -19,29 +18,26 @@
 	closetext
 	loadmovesprites
 	end
-; 0x71b14
 
-UnknownScript_0x71b14: ; 0x71b14
+UnknownScript_0x71b14:
 	writetext UnknownText_0x71ba3
 	keeptextopen
-	verbosegiveitem TM_03, 1
+	verbosegiveitem TM_CURSE, 1
 	iffalse UnknownScript_0x71b25
 	setevent EVENT_GOT_TM03_CURSE
-UnknownScript_0x71b21: ; 0x71b21
+UnknownScript_0x71b21:
 	writetext UnknownText_0x71db3
 	closetext
-UnknownScript_0x71b25: ; 0x71b25
+UnknownScript_0x71b25:
 	loadmovesprites
 	end
-; 0x71b27
 
-UnknownText_0x71b27: ; 0x71b27
+UnknownText_0x71b27:
 	text "Let me recount a"
 	line "terrifying tale…"
 	done
-; 0x71b4a
 
-UnknownText_0x71b4a: ; 0x71b4a
+UnknownText_0x71b4a:
 	text "Then again, it's"
 	line "not as scary while"
 
@@ -51,9 +47,8 @@
 	para "Come back after"
 	line "sunset, OK?"
 	done
-; 0x71ba3
 
-UnknownText_0x71ba3: ; 0x71ba3
+UnknownText_0x71ba3:
 	text "Once upon a time,"
 	line "there was a little"
 
@@ -107,9 +102,8 @@
 	line "patiently, you may"
 	cont "take this--TM03!"
 	done
-; 0x71db3
 
-UnknownText_0x71db3: ; 0x71db3
+UnknownText_0x71db3:
 	text "TM03 is CURSE."
 
 	para "It's a terrifying"
@@ -118,24 +112,22 @@
 	para "whittles down the"
 	line "victim's HP."
 	done
-; 0x71e03
 
-CeladonMansionRoofHouse_MapEventHeader: ; 0x71e03
+CeladonMansionRoofHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_PHARMACIST, 6, 7, $6, $20, 255, 255, $a0, 0, PharmacistScript_0x71afd, $ffff
-; 0x71e20
+	person_event SPRITE_PHARMACIST, 6, 7, OW_UP | $2, $20, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, PharmacistScript_0x71afd, -1
--- a/maps/CeladonPokeCenter1F.asm
+++ b/maps/CeladonPokeCenter1F.asm
@@ -1,28 +1,23 @@
-CeladonPokeCenter1F_MapScriptHeader: ; 0x71e20
-	; trigger count
+CeladonPokeCenter1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x71e22
 
-NurseScript_0x71e22: ; 0x71e22
+NurseScript_0x71e22:
 	jumpstd pokecenternurse
-; 0x71e25
 
-GentlemanScript_0x71e25: ; 0x71e25
-	jumpstd $0033
-; 0x71e28
+GentlemanScript_0x71e25:
+	jumpstd happinesschecknpc
 
-CooltrainerFScript_0x71e28: ; 0x71e28
+CooltrainerFScript_0x71e28:
 	jumptextfaceplayer UnknownText_0x71e70
-; 0x71e2b
 
-PharmacistScript_0x71e2b: ; 0x71e2b
+PharmacistScript_0x71e2b:
 	jumptextfaceplayer UnknownText_0x71ec1
-; 0x71e2e
 
-SuperNerdScript_0x71e2e: ; 0x71e2e
+SuperNerdScript_0x71e2e:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x71f22
@@ -34,31 +29,28 @@
 	iftrue UnknownScript_0x71e48
 	writetext UnknownText_0x7201a
 	closetext
-UnknownScript_0x71e46: ; 0x71e46
+UnknownScript_0x71e46:
 	loadmovesprites
 	end
-; 0x71e48
 
-UnknownScript_0x71e48: ; 0x71e48
+UnknownScript_0x71e48:
 	writetext UnknownText_0x71f65
 	closetext
 	loadmovesprites
-	checkcode $9
+	checkcode VAR_FACING
 	if_equal $1, UnknownScript_0x71e5a
 	applymovement $6, MovementData_0x71e6b
 	jump UnknownScript_0x71e5e
-; 0x71e5a
 
-UnknownScript_0x71e5a: ; 0x71e5a
+UnknownScript_0x71e5a:
 	applymovement $6, MovementData_0x71e65
-UnknownScript_0x71e5e: ; 0x71e5e
+UnknownScript_0x71e5e:
 	disappear $6
 	playsound SFX_EXIT_BUILDING
 	waitbutton
 	end
-; 0x71e65
 
-MovementData_0x71e65: ; 0x71e65
+MovementData_0x71e65:
 	step_left
 	step_down
 	step_down
@@ -65,17 +57,15 @@
 	step_down
 	step_down
 	step_end
-; 0x71e6b
 
-MovementData_0x71e6b: ; 0x71e6b
+MovementData_0x71e6b:
 	step_down
 	step_down
 	step_down
 	step_down
 	step_end
-; 0x71e70
 
-UnknownText_0x71e70: ; 0x71e70
+UnknownText_0x71e70:
 	text "ERIKA is a master"
 	line "of grass #MON."
 
@@ -83,9 +73,8 @@
 	line "pay if you don't"
 	cont "watch yourself."
 	done
-; 0x71ec1
 
-UnknownText_0x71ec1: ; 0x71ec1
+UnknownText_0x71ec1:
 	text "TEAM ROCKET's"
 	line "hideout is in the"
 
@@ -95,9 +84,8 @@
 	para "Oh, wait. That was"
 	line "three years ago."
 	done
-; 0x71f22
 
-UnknownText_0x71f22: ; 0x71f22
+UnknownText_0x71f22:
 	text "EUSINE: Hi!"
 
 	para "I'm back visiting"
@@ -106,9 +94,8 @@
 	para "It's been quite a"
 	line "while."
 	done
-; 0x71f65
 
-UnknownText_0x71f65: ; 0x71f65
+UnknownText_0x71f65:
 	text "<PLAYER>, have you"
 	line "heard?"
 
@@ -128,9 +115,8 @@
 	para "I'll be seeing"
 	line "you, <PLAYER>!"
 	done
-; 0x7201a
 
-UnknownText_0x7201a: ; 0x7201a
+UnknownText_0x7201a:
 	text "Oh, by the way,"
 	line "<PLAYER>."
 
@@ -151,29 +137,27 @@
 	para "I'm counting on"
 	line "you, <PLAYER>!"
 	done
-; 0x720b8
 
-CeladonPokeCenter1F_MapEventHeader: ; 0x720b8
+CeladonPokeCenter1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 5
-	person_event SPRITE_NURSE, 5, 7, $6, $0, 255, 255, $0, 0, NurseScript_0x71e22, $ffff
-	person_event SPRITE_GENTLEMAN, 9, 5, $5, $1, 255, 255, $0, 0, GentlemanScript_0x71e25, $ffff
-	person_event SPRITE_PHARMACIST, 7, 4, $6, $0, 255, 255, $80, 0, PharmacistScript_0x71e2b, $ffff
-	person_event SPRITE_COOLTRAINER_F, 10, 12, $5, $1, 255, 255, $a0, 0, CooltrainerFScript_0x71e28, $ffff
-	person_event SPRITE_SUPER_NERD, 7, 8, $6, $0, 255, 255, $90, 0, SuperNerdScript_0x71e2e, $07b7
-; 0x7210e
+	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
--- a/maps/CeladonPokeCenter2FBeta.asm
+++ b/maps/CeladonPokeCenter2FBeta.asm
@@ -1,25 +1,23 @@
-CeladonPokeCenter2FBeta_MapScriptHeader: ; 0x7210e
-	; trigger count
+CeladonPokeCenter2FBeta_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x72110
 
-CeladonPokeCenter2FBeta_MapEventHeader: ; 0x72110
+CeladonPokeCenter2FBeta_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $7, $0, 3, GROUP_CELADON_POKECENTER_1F, MAP_CELADON_POKECENTER_1F
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x7211b
--- a/maps/CeruleanCity.asm
+++ b/maps/CeruleanCity.asm
@@ -1,8 +1,8 @@
 CeruleanCity_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -86,7 +86,7 @@
 	writetext UnknownText_0x1842a9
 	closetext
 	loadmovesprites
-	checkevent $00fa
+	checkevent EVENT_FOUND_BERSERK_GENE_IN_CERULEAN_CITY
 	iffalse UnknownScript_0x184072
 	end
 
@@ -108,7 +108,7 @@
 	waitbutton
 	playsound SFX_TRANSACTION
 	waitbutton
-	showemote $0, $7, 15
+	showemote EMOTE_SHOCK, $7, 15
 	spriteface $7, LEFT
 	loadfont
 	writetext UnknownText_0x1842ee
@@ -141,8 +141,7 @@
 	jumpstd martsign
 
 MapCeruleanCitySignpostItem8:
-	dw $00fa
-	db BERSERK_GENE
+	dwb EVENT_FOUND_BERSERK_GENE_IN_CERULEAN_CITY, BERSERK_GENE
 
 UnknownText_0x1840bc:
 	text "KANTO's POWER"
@@ -274,7 +273,7 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -283,26 +282,26 @@
 	warp_def $17, $1e, 1, GROUP_CERULEAN_GYM, MAP_CERULEAN_GYM
 	warp_def $1d, $19, 2, GROUP_CERULEAN_MART, MAP_CERULEAN_MART
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 9
-	signpost 23, 23, $0, CeruleanCitySign
-	signpost 25, 27, $0, CeruleanGymSign
-	signpost 29, 11, $0, CeruleanBikeShopSign
-	signpost 17, 25, $0, CeruleanPoliceSign
-	signpost 7, 23, $0, CeruleanCapeSign
-	signpost 29, 14, $0, CeruleanLockedDoor
-	signpost 21, 20, $0, CeruleanCityPokeCenterSign
-	signpost 29, 26, $0, CeruleanCityMartSign
-	signpost 12, 2, $7, MapCeruleanCitySignpostItem8
+	signpost 23, 23, SIGNPOST_READ, CeruleanCitySign
+	signpost 25, 27, SIGNPOST_READ, CeruleanGymSign
+	signpost 29, 11, SIGNPOST_READ, CeruleanBikeShopSign
+	signpost 17, 25, SIGNPOST_READ, CeruleanPoliceSign
+	signpost 7, 23, SIGNPOST_READ, CeruleanCapeSign
+	signpost 29, 14, SIGNPOST_READ, CeruleanLockedDoor
+	signpost 21, 20, SIGNPOST_READ, CeruleanCityPokeCenterSign
+	signpost 29, 26, SIGNPOST_READ, CeruleanCityMartSign
+	signpost 12, 2, SIGNPOST_ITEM, MapCeruleanCitySignpostItem8
 
-	; people-events
+.PersonEvents:
 	db 6
-	person_event SPRITE_COOLTRAINER_M, 27, 19, $2, $22, 255, 255, $90, 0, CooltrainerMScript_0x184009, $ffff
-	person_event SPRITE_SUPER_NERD, 19, 27, $2, $11, 255, 255, $90, 0, SuperNerdScript_0x18401d, $ffff
-	person_event SPRITE_SLOWPOKE, 28, 24, $1, $0, 255, 255, $0, 0, CeruleanCitySlowbro, $ffff
-	person_event SPRITE_COOLTRAINER_F, 28, 25, $8, $0, 255, 255, $a0, 0, CooltrainerFScript_0x18402a, $ffff
-	person_event SPRITE_FISHER, 30, 34, $5, $1, 255, 255, $80, 0, FisherScript_0x18404a, $ffff
-	person_event SPRITE_YOUNGSTER, 16, 10, $3, $1, 255, 255, $80, 0, YoungsterScript_0x184064, $ffff
+	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
--- a/maps/CeruleanGym.asm
+++ b/maps/CeruleanGym.asm
@@ -1,5 +1,5 @@
-CeruleanGym_MapScriptHeader: ; 0x1883cf
-	; trigger count
+CeruleanGym_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,20 +6,17 @@
 	dw UnknownScript_0x1883d9, $0000
 	dw UnknownScript_0x1883da, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1883d9
 
-UnknownScript_0x1883d9: ; 0x1883d9
+UnknownScript_0x1883d9:
 	end
-; 0x1883da
 
-UnknownScript_0x1883da: ; 0x1883da
+UnknownScript_0x1883da:
 	priorityjump UnknownScript_0x1883de
 	end
-; 0x1883de
 
-UnknownScript_0x1883de: ; 0x1883de
+UnknownScript_0x1883de:
 	applymovement $2, MovementData_0x1884e3
 	playsound SFX_TACKLE
 	applymovement $2, MovementData_0x1884eb
@@ -28,7 +25,7 @@
 	writetext UnknownText_0x1884fb
 	closetext
 	loadmovesprites
-	showemote $0, $2, 15
+	showemote EMOTE_SHOCK, $2, 15
 	applymovement $2, MovementData_0x1884f7
 	loadfont
 	writetext UnknownText_0x188574
@@ -43,8 +40,8 @@
 	playsound SFX_EXIT_BUILDING
 	disappear $2
 	setevent EVENT_MET_ROCKET_GRUNT_AT_CERULEAN_GYM
-	clearevent $076c
-	clearevent $076e
+	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
@@ -54,13 +51,12 @@
 	spriteface $0, DOWN
 	pause 15
 	end
-; 0x188432
 
-MistyScript_0x188432: ; 0x188432
+MistyScript_0x188432:
 	faceplayer
 	loadfont
-	checkflag $0024
-	iftrue UnknownScript_0x188460
+	checkflag ENGINE_CASCADEBADGE
+	iftrue .FightDone
 	writetext UnknownText_0x188674
 	closetext
 	loadmovesprites
@@ -76,35 +72,17 @@
 	writetext UnknownText_0x188768
 	playsound SFX_GET_BADGE
 	waitbutton
-	setflag $0024
-UnknownScript_0x188460: ; 0x188460
+	setflag ENGINE_CASCADEBADGE
+.FightDone
 	writetext UnknownText_0x188782
 	closetext
 	loadmovesprites
 	end
-; 0x188466
 
-TrainerSwimmerfDiana: ; 0x188466
-	; bit/flag number
-	dw $3f9
+TrainerSwimmerfDiana:
+	trainer EVENT_BEAT_SWIMMERF_DIANA, SWIMMERF, DIANA, SwimmerfDianaSeenText, SwimmerfDianaBeatenText, $0000, SwimmerfDianaScript
 
-	; trainer group && trainer id
-	db SWIMMERF, DIANA
-
-	; text when seen
-	dw SwimmerfDianaSeenText
-
-	; text when trainer beaten
-	dw SwimmerfDianaBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SwimmerfDianaScript
-; 0x188472
-
-SwimmerfDianaScript: ; 0x188472
+SwimmerfDianaScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x188856
@@ -111,29 +89,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x18847a
 
-TrainerSwimmerfBriana: ; 0x18847a
-	; bit/flag number
-	dw $3fa
+TrainerSwimmerfBriana:
+	trainer EVENT_BEAT_SWIMMERF_BRIANA, SWIMMERF, BRIANA, SwimmerfBrianaSeenText, SwimmerfBrianaBeatenText, $0000, SwimmerfBrianaScript
 
-	; trainer group && trainer id
-	db SWIMMERF, BRIANA
-
-	; text when seen
-	dw SwimmerfBrianaSeenText
-
-	; text when trainer beaten
-	dw SwimmerfBrianaBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SwimmerfBrianaScript
-; 0x188486
-
-SwimmerfBrianaScript: ; 0x188486
+SwimmerfBrianaScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1888c0
@@ -140,29 +100,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x18848e
 
-TrainerSwimmermParker: ; 0x18848e
-	; bit/flag number
-	dw $5a8
+TrainerSwimmermParker:
+	trainer EVENT_BEAT_SWIMMERM_PARKER, SWIMMERM, PARKER, SwimmermParkerSeenText, SwimmermParkerBeatenText, $0000, SwimmermParkerScript
 
-	; trainer group && trainer id
-	db SWIMMERM, PARKER
-
-	; text when seen
-	dw SwimmermParkerSeenText
-
-	; text when trainer beaten
-	dw SwimmermParkerBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SwimmermParkerScript
-; 0x18849a
-
-SwimmermParkerScript: ; 0x18849a
+SwimmermParkerScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x188943
@@ -169,9 +111,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1884a2
 
-CeruleanGymGuyScript: ; 0x1884a2
+CeruleanGymGuyScript:
 	faceplayer
 	loadfont
 	checkevent EVENT_BEAT_MISTY
@@ -186,13 +127,10 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1884b6
 
-MapCeruleanGymSignpostItem0: ; 0x1884b6
-	dw $00fb
-	db MACHINE_PART
+MapCeruleanGymSignpostItem0:
+	dwb EVENT_FOUND_MACHINE_PART_IN_CERULEAN_GYM, MACHINE_PART
 	
-; 0x1884b9
 
 CeruleanGymStatue1:
 	checkevent EVENT_TRAINERS_IN_CERULEAN_GYM
@@ -220,21 +158,19 @@
 	trainertotext MISTY, 1, $1
 	jumpstd gymstatue2
 
-MovementData_0x1884e3: ; 0x1884e3
+MovementData_0x1884e3:
 	big_step_down
 	big_step_down
 	big_step_down
 	big_step_down
 	step_end
-; 0x1884e8
 
-MovementData_0x1884e8: ; 0x1884e8
+MovementData_0x1884e8:
 	big_step_right
 	big_step_down
 	step_end
-; 0x1884eb
 
-MovementData_0x1884eb: ; 0x1884eb
+MovementData_0x1884eb:
 	fix_facing
 	db $39 ; movement
 	jump_step_up
@@ -245,21 +181,18 @@
 	step_down
 	step_down
 	step_end
-; 0x1884f5
 
-MovementData_0x1884f5: ; 0x1884f5
+MovementData_0x1884f5:
 	big_step_down
 	step_end
-; 0x1884f7
 
-MovementData_0x1884f7: ; 0x1884f7
+MovementData_0x1884f7:
 	fix_facing
 	slow_step_up
 	remove_fixed_facing
 	step_end
-; 0x1884fb
 
-UnknownText_0x1884fb: ; 0x1884fb
+UnknownText_0x1884fb:
 	text "Oops! I so sorry!"
 	line "You not hurt,"
 	cont "okay?"
@@ -270,16 +203,14 @@
 	cont "good for me if"
 	cont "seen by somebody."
 	done
-; 0x188574
 
-UnknownText_0x188574: ; 0x188574
+UnknownText_0x188574:
 	text "Oh no! You seen"
 	line "me already! I make"
 	cont "big mistake!"
 	done
-; 0x1885a5
 
-UnknownText_0x1885a5: ; 0x1885a5
+UnknownText_0x1885a5:
 	text "Hey, you! Forget"
 	line "you see me, okay?"
 
@@ -291,7 +222,6 @@
 
 	para "Bye-bye a go-go!"
 	done
-; 0x188610
 
 CeruleanGymNote1:
 	text "Sorry, I'll be out"
@@ -305,7 +235,7 @@
 	cont "GYM TRAINERS"
 	done
 
-UnknownText_0x188674: ; 0x188674
+UnknownText_0x188674:
 	text "MISTY: I was ex-"
 	line "pecting you, you"
 	cont "pest!"
@@ -320,9 +250,8 @@
 	para "My water-type"
 	line "#MON are tough!"
 	done
-; 0x18870c
 
-UnknownText_0x18870c: ; 0x18870c
+UnknownText_0x18870c:
 	text "MISTY: You really"
 	line "are good…"
 
@@ -332,15 +261,13 @@
 	para "Here you go. It's"
 	line "CASCADEBADGE."
 	done
-; 0x188768
 
-UnknownText_0x188768: ; 0x188768
+UnknownText_0x188768:
 	text "<PLAYER> received"
 	line "CASCADEBADGE."
 	done
-; 0x188782
 
-UnknownText_0x188782: ; 0x188782
+UnknownText_0x188782:
 	text "MISTY: Are there"
 	line "many strong train-"
 	cont "ers in JOHTO? Like"
@@ -352,41 +279,35 @@
 	para "I can battle some"
 	line "skilled trainers."
 	done
-; 0x18880a
 
-SwimmerfDianaSeenText: ; 0x18880a
+SwimmerfDianaSeenText:
 	text "Sorry about being"
 	line "away. Let's get on"
 	cont "with it!"
 	done
-; 0x188838
 
-SwimmerfDianaBeatenText: ; 0x188838
+SwimmerfDianaBeatenText:
 	text "I give up! You're"
 	line "the winner!"
 	done
-; 0x188856
 
-UnknownText_0x188856: ; 0x188856
+UnknownText_0x188856:
 	text "I'll be swimming"
 	line "quietly."
 	done
-; 0x188870
 
-SwimmerfBrianaSeenText: ; 0x188870
+SwimmerfBrianaSeenText:
 	text "Don't let my ele-"
 	line "gant swimming un-"
 	cont "nerve you."
 	done
-; 0x18889f
 
-SwimmerfBrianaBeatenText: ; 0x18889f
+SwimmerfBrianaBeatenText:
 	text "Ooh, you calmly"
 	line "disposed of me…"
 	done
-; 0x1888c0
 
-UnknownText_0x1888c0: ; 0x1888c0
+UnknownText_0x1888c0:
 	text "Don't be too smug"
 	line "about beating me."
 
@@ -394,22 +315,19 @@
 	line "you if you get"
 	cont "complacent."
 	done
-; 0x188912
 
-SwimmermParkerSeenText: ; 0x188912
+SwimmermParkerSeenText:
 	text "Glub…"
 
 	para "I'm first! Come"
 	line "and get me!"
 	done
-; 0x188934
 
-SwimmermParkerBeatenText: ; 0x188934
+SwimmermParkerBeatenText:
 	text "This can't be…"
 	done
-; 0x188943
 
-UnknownText_0x188943: ; 0x188943
+UnknownText_0x188943:
 	text "MISTY has gotten"
 	line "much better in the"
 	cont "past few years."
@@ -418,9 +336,8 @@
 	line "guard down, or"
 	cont "you'll be crushed!"
 	done
-; 0x1889a7
 
-CeruleanGymGuyText: ; 0x1889a7
+CeruleanGymGuyText:
 	text "Yo! CHAMP in"
 	line "making!"
 
@@ -430,9 +347,8 @@
 	para "for some fun too."
 	line "He-he-he."
 	done
-; 0x1889fa
 
-CeruleanGymGuyWinText: ; 0x1889fa
+CeruleanGymGuyWinText:
 	text "Hoo, you showed me"
 	line "how tough you are."
 
@@ -440,31 +356,30 @@
 	line "was one heck of a"
 	cont "great battle!"
 	done
-; 0x188a51
 
-CeruleanGym_MapEventHeader: ; 0x188a51
+CeruleanGym_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 3
-	signpost 8, 3, $7, MapCeruleanGymSignpostItem0
-	signpost 13, 2, $0, CeruleanGymStatue1
-	signpost 13, 6, $0, CeruleanGymStatue2
+	signpost 8, 3, SIGNPOST_ITEM, MapCeruleanGymSignpostItem0
+	signpost 13, 2, SIGNPOST_READ, CeruleanGymStatue1
+	signpost 13, 6, SIGNPOST_READ, CeruleanGymStatue2
 
-	; people-events
+.PersonEvents:
 	db 6
-	person_event SPRITE_ROCKET, 14, 8, $6, $0, 255, 255, $0, 0, ObjectEvent, $076d
-	person_event SPRITE_MISTY, 7, 9, $6, $0, 255, 255, $80, 0, MistyScript_0x188432, EVENT_TRAINERS_IN_CERULEAN_GYM
-	person_event SPRITE_SWIMMER_GIRL, 10, 8, $9, $0, 255, 255, $a2, 3, TrainerSwimmerfDiana, EVENT_TRAINERS_IN_CERULEAN_GYM
-	person_event SPRITE_SWIMMER_GIRL, 13, 5, $9, $0, 255, 255, $a2, 1, TrainerSwimmerfBriana, EVENT_TRAINERS_IN_CERULEAN_GYM
-	person_event SPRITE_SWIMMER_GUY, 13, 12, $8, $0, 255, 255, $82, 3, TrainerSwimmermParker, EVENT_TRAINERS_IN_CERULEAN_GYM
-	person_event SPRITE_GYM_GUY, 17, 11, $6, $0, 255, 255, $90, 0, CeruleanGymGuyScript, EVENT_TRAINERS_IN_CERULEAN_GYM
+	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
--- a/maps/CeruleanGymBadgeSpeechHouse.asm
+++ b/maps/CeruleanGymBadgeSpeechHouse.asm
@@ -1,37 +1,33 @@
-CeruleanGymBadgeSpeechHouse_MapScriptHeader: ; 0x188000
-	; trigger count
+CeruleanGymBadgeSpeechHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x188002
 
-PokefanMScript_0x188002: ; 0x188002
+PokefanMScript_0x188002:
 	jumptextfaceplayer UnknownText_0x188005
-; 0x188005
 
-UnknownText_0x188005: ; 0x188005
+UnknownText_0x188005:
 	text "Are you collecting"
 	line "KANTO GYM BADGES?"
 	done
-; 0x18802b
 
-CeruleanGymBadgeSpeechHouse_MapEventHeader: ; 0x18802b
+CeruleanGymBadgeSpeechHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_POKEFAN_M, 7, 6, $9, $0, 255, 255, $0, 0, PokefanMScript_0x188002, $ffff
-; 0x188048
+	person_event SPRITE_POKEFAN_M, 7, 6, OW_LEFT | $1, $0, -1, -1, $0, 0, PokefanMScript_0x188002, -1
--- a/maps/CeruleanMart.asm
+++ b/maps/CeruleanMart.asm
@@ -1,27 +1,23 @@
-CeruleanMart_MapScriptHeader: ; 0x188abe
-	; trigger count
+CeruleanMart_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x188ac0
 
-ClerkScript_0x188ac0: ; 0x188ac0
+ClerkScript_0x188ac0:
 	loadfont
 	pokemart $0, $0014
 	loadmovesprites
 	end
-; 0x188ac7
 
-CooltrainerMScript_0x188ac7: ; 0x188ac7
+CooltrainerMScript_0x188ac7:
 	jumptextfaceplayer UnknownText_0x188acd
-; 0x188aca
 
-CooltrainerFScript_0x188aca: ; 0x188aca
+CooltrainerFScript_0x188aca:
 	jumptextfaceplayer UnknownText_0x188b46
-; 0x188acd
 
-UnknownText_0x188acd: ; 0x188acd
+UnknownText_0x188acd:
 	text "You'll run into"
 	line "many trainers on"
 
@@ -34,9 +30,8 @@
 	para "up against other"
 	line "trainers."
 	done
-; 0x188b46
 
-UnknownText_0x188b46: ; 0x188b46
+UnknownText_0x188b46:
 	text "MISTY is about the"
 	line "only person in"
 
@@ -44,26 +39,24 @@
 	line "the trainers at"
 	cont "CERULEAN's CAPE."
 	done
-; 0x188b9b
 
-CeruleanMart_MapEventHeader: ; 0x188b9b
+CeruleanMart_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 7, 5, $9, $0, 255, 255, $0, 0, ClerkScript_0x188ac0, $ffff
-	person_event SPRITE_COOLTRAINER_M, 10, 5, $6, $0, 255, 255, $a0, 0, CooltrainerMScript_0x188ac7, $ffff
-	person_event SPRITE_COOLTRAINER_F, 6, 11, $5, $2, 255, 255, $80, 0, CooltrainerFScript_0x188aca, $ffff
-; 0x188bd2
+	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
--- a/maps/CeruleanPokeCenter1F.asm
+++ b/maps/CeruleanPokeCenter1F.asm
@@ -1,30 +1,25 @@
-CeruleanPokeCenter1F_MapScriptHeader: ; 0x18820d
-	; trigger count
+CeruleanPokeCenter1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18820f
 
-NurseScript_0x18820f: ; 0x18820f
+NurseScript_0x18820f:
 	jumpstd pokecenternurse
-; 0x188212
 
-SuperNerdScript_0x188212: ; 0x188212
+SuperNerdScript_0x188212:
 	special Function10630f
 	iftrue UnknownScript_0x18821b
 	jumptextfaceplayer UnknownText_0x188221
-; 0x18821b
 
-UnknownScript_0x18821b: ; 0x18821b
+UnknownScript_0x18821b:
 	jumptextfaceplayer UnknownText_0x18828c
-; 0x18821e
 
-GymGuyScript_0x18821e: ; 0x18821e
+GymGuyScript_0x18821e:
 	jumptextfaceplayer UnknownText_0x1882ff
-; 0x188221
 
-UnknownText_0x188221: ; 0x188221
+UnknownText_0x188221:
 	text "For battles, I'd"
 	line "much rather use"
 
@@ -35,9 +30,8 @@
 	line "than some newly"
 	cont "caught #MON."
 	done
-; 0x18828c
 
-UnknownText_0x18828c: ; 0x18828c
+UnknownText_0x18828c:
 	text "Do you battle by"
 	line "mobile phone?"
 
@@ -48,9 +42,8 @@
 	line "won is really"
 	cont "nerve wracking."
 	done
-; 0x1882ff
 
-UnknownText_0x1882ff: ; 0x1882ff
+UnknownText_0x1882ff:
 	text "The MAGNET TRAIN"
 	line "travels at over"
 
@@ -63,27 +56,25 @@
 	para "It really makes"
 	line "JOHTO accessible."
 	done
-; 0x188386
 
-CeruleanPokeCenter1F_MapEventHeader: ; 0x188386
+CeruleanPokeCenter1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_NURSE, 5, 7, $6, $0, 255, 255, $0, 0, NurseScript_0x18820f, $ffff
-	person_event SPRITE_SUPER_NERD, 8, 12, $5, $1, 255, 255, $0, 0, SuperNerdScript_0x188212, $ffff
-	person_event SPRITE_GYM_GUY, 9, 5, $2, $11, 255, 255, $a0, 0, GymGuyScript_0x18821e, $ffff
-; 0x1883c2
+	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
--- a/maps/CeruleanPokeCenter2FBeta.asm
+++ b/maps/CeruleanPokeCenter2FBeta.asm
@@ -1,25 +1,23 @@
-CeruleanPokeCenter2FBeta_MapScriptHeader: ; 0x1883c2
-	; trigger count
+CeruleanPokeCenter2FBeta_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1883c4
 
-CeruleanPokeCenter2FBeta_MapEventHeader: ; 0x1883c4
+CeruleanPokeCenter2FBeta_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $7, $0, 1, GROUP_CERULEAN_POKECENTER_1F, MAP_CERULEAN_POKECENTER_1F
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x1883cf
--- a/maps/CeruleanPoliceStation.asm
+++ b/maps/CeruleanPoliceStation.asm
@@ -1,20 +1,17 @@
-CeruleanPoliceStation_MapScriptHeader: ; 0x188048
-	; trigger count
+CeruleanPoliceStation_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18804a
 
-FishingGuruScript_0x18804a: ; 0x18804a
+FishingGuruScript_0x18804a:
 	jumptextfaceplayer UnknownText_0x18805a
-; 0x18804d
 
-PokefanFScript_0x18804d: ; 0x18804d
+PokefanFScript_0x18804d:
 	jumptextfaceplayer UnknownText_0x1880c3
-; 0x188050
 
-DiglettScript_0x188050: ; 0x188050
+DiglettScript_0x188050:
 	loadfont
 	writetext UnknownText_0x1880e7
 	cry DIGLETT
@@ -21,9 +18,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x18805a
 
-UnknownText_0x18805a: ; 0x18805a
+UnknownText_0x18805a:
 	text "I heard that some"
 	line "shady character is"
 	cont "skulking about."
@@ -32,37 +28,33 @@
 	line "it if he turns out"
 	cont "to be a thief."
 	done
-; 0x1880c3
 
-UnknownText_0x1880c3: ; 0x1880c3
+UnknownText_0x1880c3:
 	text "We were held up by"
 	line "robbers before."
 	done
-; 0x1880e7
 
-UnknownText_0x1880e7: ; 0x1880e7
+UnknownText_0x1880e7:
 	text "DIGLETT: Dug dug."
 	done
-; 0x1880fa
 
-CeruleanPoliceStation_MapEventHeader: ; 0x1880fa
+CeruleanPoliceStation_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_FISHING_GURU, 5, 9, $7, $0, 255, 255, $a0, 0, FishingGuruScript_0x18804a, $ffff
-	person_event SPRITE_POKEFAN_F, 8, 9, $8, $0, 255, 255, $90, 0, PokefanFScript_0x18804d, $ffff
-	person_event SPRITE_DIGLETT, 9, 7, $16, $0, 255, 255, $b0, 0, DiglettScript_0x188050, $ffff
-; 0x188131
+	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
--- a/maps/CeruleanTradeSpeechHouse.asm
+++ b/maps/CeruleanTradeSpeechHouse.asm
@@ -1,20 +1,17 @@
-CeruleanTradeSpeechHouse_MapScriptHeader: ; 0x188131
-	; trigger count
+CeruleanTradeSpeechHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x188133
 
-GrannyScript_0x188133: ; 0x188133
+GrannyScript_0x188133:
 	jumptextfaceplayer UnknownText_0x18814d
-; 0x188136
 
-GrampsScript_0x188136: ; 0x188136
+GrampsScript_0x188136:
 	jumptextfaceplayer UnknownText_0x18818a
-; 0x188139
 
-RhydonScript_0x188139: ; 0x188139
+RhydonScript_0x188139:
 	loadfont
 	writetext UnknownText_0x18819c
 	cry KANGASKHAN
@@ -21,9 +18,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x188143
 
-ZubatScript_0x188143: ; 0x188143
+ZubatScript_0x188143:
 	loadfont
 	writetext UnknownText_0x1881b5
 	cry ZUBAT
@@ -30,51 +26,45 @@
 	closetext
 	loadmovesprites
 	end
-; 0x18814d
 
-UnknownText_0x18814d: ; 0x18814d
+UnknownText_0x18814d:
 	text "My husband lives"
 	line "happily with #-"
 	cont "MON he got through"
 	cont "trades."
 	done
-; 0x18818a
 
-UnknownText_0x18818a: ; 0x18818a
+UnknownText_0x18818a:
 	text "Ah… I'm so happy…"
 	done
-; 0x18819c
 
-UnknownText_0x18819c: ; 0x18819c
+UnknownText_0x18819c:
 	text "KANGASKHAN: Garu"
 	line "garuu."
 	done
-; 0x1881b5
 
-UnknownText_0x1881b5: ; 0x1881b5
+UnknownText_0x1881b5:
 	text "ZUBAT: Zuba zubaa."
 	done
-; 0x1881c9
 
-CeruleanTradeSpeechHouse_MapEventHeader: ; 0x1881c9
+CeruleanTradeSpeechHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_GRANNY, 8, 6, $9, $0, 255, 255, $90, 0, GrannyScript_0x188133, $ffff
-	person_event SPRITE_GRAMPS, 6, 5, $2, $0, 255, 255, $a0, 0, GrampsScript_0x188136, $ffff
-	person_event SPRITE_RHYDON, 6, 9, $16, $0, 255, 255, $b0, 0, RhydonScript_0x188139, $ffff
-	person_event SPRITE_ZUBAT, 10, 9, $16, $0, 255, 255, $0, 0, ZubatScript_0x188143, $ffff
-; 0x18820d
+	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
--- a/maps/CharcoalKiln.asm
+++ b/maps/CharcoalKiln.asm
@@ -1,8 +1,8 @@
 CharcoalKiln_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 CharcoalKilnBoss:
@@ -143,26 +143,26 @@
 	text "FARFETCH'D: Kwaa!"
 	done
 
-CharcoalKiln_MapEventHeader: ; 0x18dff8
+CharcoalKiln_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 3
-	signpost 1, 0, $0, CharcoalKilnBookshelf
-	signpost 1, 1, $0, CharcoalKilnBookshelf
-	signpost 1, 7, $0, CharcoalKilnRadio
+	signpost 1, 0, SIGNPOST_READ, CharcoalKilnBookshelf
+	signpost 1, 1, SIGNPOST_READ, CharcoalKilnBookshelf
+	signpost 1, 7, SIGNPOST_READ, CharcoalKilnRadio
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_BLACK_BELT, 7, 6, $3, $0, 255, 255, $0, 0, CharcoalKilnBoss, $06f7
-	person_event SPRITE_YOUNGSTER, 7, 9, $2, $11, 255, 255, $0, 0, CharcoalKilnApprentice, $06f6
-	person_event SPRITE_MOLTRES, 10, 9, $16, $22, 255, 255, $b0, 0, CharcoalKilnFarfetchd, $06f5
+	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
--- a/maps/CherrygroveCity.asm
+++ b/maps/CherrygroveCity.asm
@@ -1,5 +1,5 @@
 CherrygroveCity_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,7 +6,7 @@
 	dw .Trigger1, $0000
 	dw .Trigger2, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -68,7 +68,7 @@
 	keeptextopen
 	stringtotext .mapcardname, $1
 	scall .UnknownScript_0x19c097
-	setflag $0001
+	setflag ENGINE_MAP_CARD
 	writetext GotMapCardText
 	keeptextopen
 	writetext GuideGentPokegearText
@@ -85,7 +85,7 @@
 	end
 
 .UnknownScript_0x19c097
-	jumpstd $002f
+	jumpstd receiveitem
 	end
 
 .mapcardname
@@ -102,7 +102,7 @@
 
 UnknownScript_0x19c0ae:
 	spriteface $0, RIGHT
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	special Functionc48f
 	pause 15
 	appear $3
@@ -120,7 +120,7 @@
 	winlosstext UnknownText_0x19c57f, UnknownText_0x19c5e6
 	setlasttalked $3
 	loadtrainer RIVAL1, RIVAL1_3
-	writecode $3, BATTLETYPE_CANLOSE
+	writecode VAR_BATTLETYPE, BATTLETYPE_CANLOSE
 	startbattle
 	reloadmapmusic
 	reloadmap
@@ -131,7 +131,7 @@
 	winlosstext UnknownText_0x19c57f, UnknownText_0x19c5e6
 	setlasttalked $3
 	loadtrainer RIVAL1, RIVAL1_1
-	writecode $3, BATTLETYPE_CANLOSE
+	writecode VAR_BATTLETYPE, BATTLETYPE_CANLOSE
 	startbattle
 	reloadmapmusic
 	reloadmap
@@ -142,7 +142,7 @@
 	winlosstext UnknownText_0x19c57f, UnknownText_0x19c5e6
 	setlasttalked $3
 	loadtrainer RIVAL1, RIVAL1_2
-	writecode $3, BATTLETYPE_CANLOSE
+	writecode VAR_BATTLETYPE, BATTLETYPE_CANLOSE
 	startbattle
 	reloadmapmusic
 	reloadmap
@@ -177,7 +177,7 @@
 TeacherScript_0x19c146:
 	faceplayer
 	loadfont
-	checkflag $0001
+	checkflag ENGINE_MAP_CARD
 	iftrue UnknownScript_0x19c154
 	writetext UnknownText_0x19c650
 	closetext
@@ -193,7 +193,7 @@
 YoungsterScript_0x19c15a:
 	faceplayer
 	loadfont
-	checkflag $000b
+	checkflag ENGINE_POKEDEX
 	iftrue UnknownScript_0x19c168
 	writetext UnknownText_0x19c6d6
 	closetext
@@ -548,7 +548,7 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -556,22 +556,22 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 2
 	xy_trigger 1, $6, $21, $0, UnknownScript_0x19c0ae, $0, $0
 	xy_trigger 1, $7, $21, $0, UnknownScript_0x19c0aa, $0, $0
 
-	; signposts
+.Signposts:
 	db 4
-	signpost 8, 30, $0, CherrygroveCitySign
-	signpost 9, 23, $0, GuideGentsHouseSign
-	signpost 3, 24, $0, CherrygroveCityMartSign
-	signpost 3, 30, $0, CherrygroveCityPokeCenterSign
+	signpost 8, 30, SIGNPOST_READ, CherrygroveCitySign
+	signpost 9, 23, SIGNPOST_READ, GuideGentsHouseSign
+	signpost 3, 24, SIGNPOST_READ, CherrygroveCityMartSign
+	signpost 3, 30, SIGNPOST_READ, CherrygroveCityPokeCenterSign
 
-	; people-events
+.PersonEvents:
 	db 5
-	person_event SPRITE_GRAMPS, 10, 36, $6, $0, 255, 255, $0, 0, CherrygroveCityGuideGent, $06fe
-	person_event SPRITE_SILVER, 10, 43, $3, $0, 255, 255, $0, 0, ObjectEvent, $06be
-	person_event SPRITE_TEACHER, 16, 31, $5, $1, 255, 255, $90, 0, TeacherScript_0x19c146, $ffff
-	person_event SPRITE_YOUNGSTER, 11, 27, $5, $1, 255, 255, $80, 0, YoungsterScript_0x19c15a, $ffff
-	person_event SPRITE_FISHER, 16, 11, $9, $0, 255, 255, $a0, 0, MysticWaterGuy, $ffff
+	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
--- a/maps/CherrygroveEvolutionSpeechHouse.asm
+++ b/maps/CherrygroveEvolutionSpeechHouse.asm
@@ -1,31 +1,28 @@
-CherrygroveEvolutionSpeechHouse_MapScriptHeader: ; 0x196cb0
-	; trigger count
+CherrygroveEvolutionSpeechHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x196cb2
 
-YoungsterScript_0x196cb2: ; 0x196cb2
+YoungsterScript_0x196cb2:
 	loadfont
 	writetext UnknownText_0x196cc3
 	closetext
 	loadmovesprites
 	end
-; 0x196cb9
 
-LassScript_0x196cb9: ; 0x196cb9
+LassScript_0x196cb9:
 	loadfont
 	writetext UnknownText_0x196cfc
 	closetext
 	loadmovesprites
 	end
-; 0x196cc0
 
 CherrygroveEvolutionSpeechHouseBookshelf:
 	jumpstd magazinebookshelf
 
-UnknownText_0x196cc3: ; 0x196cc3
+UnknownText_0x196cc3:
 	text "#MON gain expe-"
 	line "rience in battle"
 
@@ -32,35 +29,32 @@
 	para "and change their"
 	line "form."
 	done
-; 0x196cfc
 
-UnknownText_0x196cfc: ; 0x196cfc
+UnknownText_0x196cfc:
 	text "#MON change?"
 
 	para "I would be shocked"
 	line "if one did that!"
 	done
-; 0x196d2e
 
-CherrygroveEvolutionSpeechHouse_MapEventHeader: ; 0x196d2e
+CherrygroveEvolutionSpeechHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 0, $0, CherrygroveEvolutionSpeechHouseBookshelf
-	signpost 1, 1, $0, CherrygroveEvolutionSpeechHouseBookshelf
+	signpost 1, 0, SIGNPOST_READ, CherrygroveEvolutionSpeechHouseBookshelf
+	signpost 1, 1, SIGNPOST_READ, CherrygroveEvolutionSpeechHouseBookshelf
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_LASS, 9, 7, $8, $0, 255, 255, $a0, 0, LassScript_0x196cb9, $ffff
-	person_event SPRITE_YOUNGSTER, 9, 6, $9, $0, 255, 255, $80, 0, YoungsterScript_0x196cb2, $ffff
-; 0x196d62
+	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
--- a/maps/CherrygroveGymSpeechHouse.asm
+++ b/maps/CherrygroveGymSpeechHouse.asm
@@ -1,23 +1,20 @@
-CherrygroveGymSpeechHouse_MapScriptHeader: ; 0x196adf
-	; trigger count
+CherrygroveGymSpeechHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x196ae1
 
-PokefanMScript_0x196ae1: ; 0x196ae1
+PokefanMScript_0x196ae1:
 	jumptextfaceplayer UnknownText_0x196aea
-; 0x196ae4
 
-BugCatcherScript_0x196ae4: ; 0x196ae4
+BugCatcherScript_0x196ae4:
 	jumptextfaceplayer UnknownText_0x196b65
-; 0x196ae7
 
 CherrygroveGymSpeechHouseBookshelf:
 	jumpstd picturebookshelf
 
-UnknownText_0x196aea: ; 0x196aea
+UnknownText_0x196aea:
 	text "You're trying to"
 	line "see how good you"
 
@@ -30,9 +27,8 @@
 	para "all over JOHTO and"
 	line "collect BADGES."
 	done
-; 0x196b65
 
-UnknownText_0x196b65: ; 0x196b65
+UnknownText_0x196b65:
 	text "When I get older,"
 	line "I'm going to be a"
 	cont "GYM LEADER!"
@@ -43,27 +39,25 @@
 	para "friend's to make"
 	line "them tougher!"
 	done
-; 0x196bd1
 
-CherrygroveGymSpeechHouse_MapEventHeader: ; 0x196bd1
+CherrygroveGymSpeechHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 0, $0, CherrygroveGymSpeechHouseBookshelf
-	signpost 1, 1, $0, CherrygroveGymSpeechHouseBookshelf
+	signpost 1, 0, SIGNPOST_READ, CherrygroveGymSpeechHouseBookshelf
+	signpost 1, 1, SIGNPOST_READ, CherrygroveGymSpeechHouseBookshelf
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_POKEFAN_M, 7, 6, $6, $0, 255, 255, $0, 0, PokefanMScript_0x196ae1, $ffff
-	person_event SPRITE_BUG_CATCHER, 9, 9, $5, $1, 255, 255, $80, 0, BugCatcherScript_0x196ae4, $ffff
-; 0x196c05
+	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
--- a/maps/CherrygroveMart.asm
+++ b/maps/CherrygroveMart.asm
@@ -1,12 +1,11 @@
-CherrygroveMart_MapScriptHeader: ; 0x196808
-	; trigger count
+CherrygroveMart_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x19680a
 
-ClerkScript_0x19680a: ; 0x19680a
+ClerkScript_0x19680a:
 	loadfont
 	checkevent EVENT_GAVE_MYSTERY_EGG_TO_ELM
 	iftrue UnknownScript_0x196817
@@ -13,15 +12,13 @@
 	pokemart $0, $0000
 	loadmovesprites
 	end
-; 0x196817
 
-UnknownScript_0x196817: ; 0x196817
+UnknownScript_0x196817:
 	pokemart $0, $0001
 	loadmovesprites
 	end
-; 0x19681d
 
-CooltrainerMScript_0x19681d: ; 0x19681d
+CooltrainerMScript_0x19681d:
 	faceplayer
 	loadfont
 	checkevent EVENT_GAVE_MYSTERY_EGG_TO_ELM
@@ -30,20 +27,17 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19682b
 
-UnknownScript_0x19682b: ; 0x19682b
+UnknownScript_0x19682b:
 	writetext UnknownText_0x196873
 	closetext
 	loadmovesprites
 	end
-; 0x196831
 
-YoungsterScript_0x196831: ; 0x196831
+YoungsterScript_0x196831:
 	jumptextfaceplayer UnknownText_0x1968a0
-; 0x196834
 
-UnknownText_0x196834: ; 0x196834
+UnknownText_0x196834:
 	text "They're fresh out"
 	line "of # BALLS!"
 
@@ -50,16 +44,14 @@
 	para "When will they get"
 	line "more of them?"
 	done
-; 0x196873
 
-UnknownText_0x196873: ; 0x196873
+UnknownText_0x196873:
 	text "# BALLS are in"
 	line "stock! Now I can"
 	cont "catch #MON!"
 	done
-; 0x1968a0
 
-UnknownText_0x1968a0: ; 0x1968a0
+UnknownText_0x1968a0:
 	text "When I was walking"
 	line "in the grass, a"
 
@@ -73,26 +65,24 @@
 	para "You should keep an"
 	line "ANTIDOTE with you."
 	done
-; 0x196934
 
-CherrygroveMart_MapEventHeader: ; 0x196934
+CherrygroveMart_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 7, 5, $9, $0, 255, 255, $0, 0, ClerkScript_0x19680a, $ffff
-	person_event SPRITE_COOLTRAINER_M, 10, 11, $5, $2, 255, 255, $0, 0, CooltrainerMScript_0x19681d, $ffff
-	person_event SPRITE_YOUNGSTER, 9, 6, $6, $0, 255, 255, $80, 0, YoungsterScript_0x196831, $ffff
-; 0x19696b
+	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
--- a/maps/CherrygrovePokeCenter1F.asm
+++ b/maps/CherrygrovePokeCenter1F.asm
@@ -1,24 +1,20 @@
-CherrygrovePokeCenter1F_MapScriptHeader: ; 0x19696b
-	; trigger count
+CherrygrovePokeCenter1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x19696d
 
-NurseScript_0x19696d: ; 0x19696d
+NurseScript_0x19696d:
 	jumpstd pokecenternurse
-; 0x196970
 
-FisherScript_0x196970: ; 0x196970
+FisherScript_0x196970:
 	jumptextfaceplayer UnknownText_0x19698a
-; 0x196973
 
-GentlemanScript_0x196973: ; 0x196973
+GentlemanScript_0x196973:
 	jumptextfaceplayer UnknownText_0x1969c8
-; 0x196976
 
-TeacherScript_0x196976: ; 0x196976
+TeacherScript_0x196976:
 	faceplayer
 	loadfont
 	checkevent EVENT_GAVE_MYSTERY_EGG_TO_ELM
@@ -27,16 +23,14 @@
 	closetext
 	loadmovesprites
 	end
-; 0x196984
 
-UnknownScript_0x196984: ; 0x196984
+UnknownScript_0x196984:
 	writetext UnknownText_0x196a46
 	closetext
 	loadmovesprites
 	end
-; 0x19698a
 
-UnknownText_0x19698a: ; 0x19698a
+UnknownText_0x19698a:
 	text "It's great. I can"
 	line "store any number"
 
@@ -43,16 +37,14 @@
 	para "of #MON, and"
 	line "it's all free."
 	done
-; 0x1969c8
 
-UnknownText_0x1969c8: ; 0x1969c8
+UnknownText_0x1969c8:
 	text "That PC is free"
 	line "for any trainer"
 	cont "to use."
 	done
-; 0x1969f1
 
-UnknownText_0x1969f1: ; 0x1969f1
+UnknownText_0x1969f1:
 	text "The COMMUNICATION"
 	line "CENTER upstairs"
 	cont "was just built."
@@ -60,9 +52,8 @@
 	para "But they're still"
 	line "finishing it up."
 	done
-; 0x196a46
 
-UnknownText_0x196a46: ; 0x196a46
+UnknownText_0x196a46:
 	text "The COMMUNICATION"
 	line "CENTER upstairs"
 	cont "was just built."
@@ -70,28 +61,26 @@
 	para "I traded #MON"
 	line "there already!"
 	done
-; 0x196a96
 
-CherrygrovePokeCenter1F_MapEventHeader: ; 0x196a96
+CherrygrovePokeCenter1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_NURSE, 5, 7, $6, $0, 255, 255, $0, 0, NurseScript_0x19696d, $ffff
-	person_event SPRITE_FISHER, 7, 6, $7, $0, 255, 255, $80, 0, FisherScript_0x196970, $ffff
-	person_event SPRITE_GENTLEMAN, 10, 12, $7, $0, 255, 255, $0, 0, GentlemanScript_0x196973, $ffff
-	person_event SPRITE_TEACHER, 10, 5, $9, $0, 255, 255, $a0, 0, TeacherScript_0x196976, $ffff
-; 0x196adf
+	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
--- a/maps/CianwoodCity.asm
+++ b/maps/CianwoodCity.asm
@@ -1,5 +1,5 @@
 CianwoodCity_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,7 +6,7 @@
 	dw .Trigger1, $0000
 	dw .Trigger2, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -20,8 +20,8 @@
 
 .FlyPointAndSuicune
 	setflag ENGINE_FLYPOINT_CIANWOOD
-	setevent $07aa
-	checkevent $0333
+	setevent EVENT_EUSINE_IN_BURNED_TOWER
+	checkevent EVENT_FOUGHT_EUSINE
 	iffalse UnknownScript_0x1a001d
 	disappear $c
 UnknownScript_0x1a001d:
@@ -29,7 +29,7 @@
 
 UnknownScript_0x1a001e:
 	spriteface $0, UP
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	pause 15
 	playsound SFX_WARP_FROM
 	applymovement $d, MovementData_0x1a00da
@@ -42,9 +42,9 @@
 	dotrigger $0
 	clearevent EVENT_SAW_SUICUNE_ON_ROUTE_42
 	domaptrigger GROUP_ROUTE_42, MAP_ROUTE_42, $1
-	checkevent $0333
-	iftrue UnknownScript_0x1a0083
-	setevent $0333
+	checkevent EVENT_FOUGHT_EUSINE
+	iftrue .Done
+	setevent EVENT_FOUGHT_EUSINE
 	playmusic MUSIC_MYSTICALMAN_ENCOUNTER
 	appear $c
 	applymovement $c, MovementData_0x1a00e7
@@ -69,7 +69,7 @@
 	special Functionc48f
 	playmapmusic
 	pause 10
-UnknownScript_0x1a0083:
+.Done
 	end
 
 PokefanFScript_0x1a0084:
@@ -89,7 +89,7 @@
 UnknownScript_0x1a009c:
 	writetext UnknownText_0x1a01e3
 	keeptextopen
-	verbosegiveitem HM_02, 1
+	verbosegiveitem HM_FLY, 1
 	iffalse UnknownScript_0x1a00b1
 	setevent EVENT_GOT_HM02_FLY
 	writetext UnknownText_0x1a021d
@@ -135,12 +135,10 @@
 	jumpstd smashrock
 
 MapCianwoodCitySignpostItem6:
-	dw $00b2
-	db REVIVE
+	dwb EVENT_CIANWOOD_CITY_HIDDEN_REVIVE, REVIVE
 
 MapCianwoodCitySignpostItem7:
-	dw $00b3
-	db MAX_ETHER
+	dwb EVENT_CIANWOOD_CITY_HIDDEN_MAX_ETHER, MAX_ETHER
 
 MovementData_0x1a00da:
 	db $39 ; movement
@@ -376,7 +374,7 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -386,32 +384,32 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 1
 	xy_trigger 1, $10, $b, $0, UnknownScript_0x1a001e, $0, $0
 
-	; signposts
+.Signposts:
 	db 8
-	signpost 34, 20, $0, CianwoodCitySign
-	signpost 45, 7, $0, CianwoodGymSign
-	signpost 43, 24, $0, CianwoodPokeCenterSign
-	signpost 47, 19, $0, CianwoodPharmacySign
-	signpost 32, 8, $0, CianwoodPhotoStudioSign
-	signpost 24, 8, $0, CianwoodPokeSeerSign
-	signpost 19, 4, $7, MapCianwoodCitySignpostItem6
-	signpost 29, 5, $7, MapCianwoodCitySignpostItem7
+	signpost 34, 20, SIGNPOST_READ, CianwoodCitySign
+	signpost 45, 7, SIGNPOST_READ, CianwoodGymSign
+	signpost 43, 24, SIGNPOST_READ, CianwoodPokeCenterSign
+	signpost 47, 19, SIGNPOST_READ, CianwoodPharmacySign
+	signpost 32, 8, SIGNPOST_READ, CianwoodPhotoStudioSign
+	signpost 24, 8, SIGNPOST_READ, CianwoodPokeSeerSign
+	signpost 19, 4, SIGNPOST_ITEM, MapCianwoodCitySignpostItem6
+	signpost 29, 5, SIGNPOST_ITEM, MapCianwoodCitySignpostItem7
 
-	; people-events
+.PersonEvents:
 	db 12
-	person_event SPRITE_STANDING_YOUNGSTER, 41, 25, $3, $0, 255, 255, $a0, 0, StandingYoungsterScript_0x1a00b3, $ffff
-	person_event SPRITE_POKEFAN_M, 37, 21, $5, $1, 255, 255, $0, 0, PokefanMScript_0x1a00b6, $ffff
-	person_event SPRITE_LASS, 46, 18, $4, $20, 255, 255, $0, 0, LassScript_0x1a00b9, $ffff
-	person_event SPRITE_ROCK, 20, 12, $18, $0, 255, 255, $0, 0, CianwoodCityRock, $ffff
-	person_event SPRITE_ROCK, 21, 13, $18, $0, 255, 255, $0, 0, CianwoodCityRock, $ffff
-	person_event SPRITE_ROCK, 29, 8, $18, $0, 255, 255, $0, 0, CianwoodCityRock, $ffff
-	person_event SPRITE_ROCK, 33, 9, $18, $0, 255, 255, $0, 0, CianwoodCityRock, $ffff
-	person_event SPRITE_ROCK, 31, 14, $18, $0, 255, 255, $0, 0, CianwoodCityRock, $ffff
-	person_event SPRITE_ROCK, 23, 8, $18, $0, 255, 255, $0, 0, CianwoodCityRock, $ffff
-	person_event SPRITE_POKEFAN_F, 50, 14, $5, $1, 255, 255, $0, 0, PokefanFScript_0x1a0084, $ffff
-	person_event SPRITE_SUPER_NERD, 25, 15, $7, $0, 255, 255, $90, 0, ObjectEvent, $07ad
-	person_event SPRITE_SUICUNE, 18, 14, $1, $0, 255, 255, $90, 0, ObjectEvent, $07ae
+	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
--- a/maps/CianwoodCityPhotoStudio.asm
+++ b/maps/CianwoodCityPhotoStudio.asm
@@ -1,12 +1,11 @@
-CianwoodCityPhotoStudio_MapScriptHeader: ; 0x9e0de
-	; trigger count
+CianwoodCityPhotoStudio_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9e0e0
 
-FishingGuruScript_0x9e0e0: ; 0x9e0e0
+FishingGuruScript_0x9e0e0:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x9e0f9
@@ -18,16 +17,14 @@
 	closetext
 	loadmovesprites
 	end
-; 0x9e0f3
 
-UnknownScript_0x9e0f3: ; 0x9e0f3
+UnknownScript_0x9e0f3:
 	writetext UnknownText_0x9e156
 	closetext
 	loadmovesprites
 	end
-; 0x9e0f9
 
-UnknownText_0x9e0f9: ; 0x9e0f9
+UnknownText_0x9e0f9:
 	text "You have magnifi-"
 	line "cent #MON with"
 	cont "you."
@@ -35,14 +32,12 @@
 	para "How about a photo"
 	line "for a souvenir?"
 	done
-; 0x9e142
 
-UnknownText_0x9e142: ; 0x9e142
+UnknownText_0x9e142:
 	text "OK! Big smile now!"
 	done
-; 0x9e156
 
-UnknownText_0x9e156: ; 0x9e156
+UnknownText_0x9e156:
 	text "Oh, that's too"
 	line "bad. I thought it"
 
@@ -49,24 +44,22 @@
 	para "would be a great"
 	line "memento…"
 	done
-; 0x9e191
 
-CianwoodCityPhotoStudio_MapEventHeader: ; 0x9e191
+CianwoodCityPhotoStudio_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_FISHING_GURU, 7, 6, $6, $0, 255, 255, $80, 0, FishingGuruScript_0x9e0e0, $ffff
-; 0x9e1ae
+	person_event SPRITE_FISHING_GURU, 7, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, FishingGuruScript_0x9e0e0, -1
--- a/maps/CianwoodGym.asm
+++ b/maps/CianwoodGym.asm
@@ -1,16 +1,15 @@
-CianwoodGym_MapScriptHeader: ; 0x9d60d
-	; trigger count
+CianwoodGym_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9d60f
 
-ChuckScript_0x9d60f: ; 0x9d60f
+ChuckScript_0x9d60f:
 	faceplayer
 	loadfont
 	checkevent EVENT_BEAT_CHUCK
-	iftrue UnknownScript_0x9d656
+	iftrue .FightDone
 	writetext UnknownText_0x9d6f9
 	closetext
 	loadmovesprites
@@ -38,10 +37,10 @@
 	writetext UnknownText_0x9d835
 	playsound SFX_GET_BADGE
 	waitbutton
-	setflag $0020
-	checkcode $7
-	scall UnknownScript_0x9d681
-UnknownScript_0x9d656: ; 0x9d656
+	setflag ENGINE_STORMBADGE
+	checkcode VAR_BADGES
+	scall CianwoodGymTriggerRockets
+.FightDone
 	checkevent EVENT_GOT_TM01_DYNAMICPUNCH
 	iftrue UnknownScript_0x9d67b
 	setevent EVENT_BEAT_BLACKBELT_YOSHI
@@ -50,7 +49,7 @@
 	setevent EVENT_BEAT_BLACKBELT_LUNG
 	writetext UnknownText_0x9d84d
 	keeptextopen
-	verbosegiveitem TM_01, 1
+	verbosegiveitem TM_DYNAMICPUNCH, 1
 	iffalse UnknownScript_0x9d67f
 	setevent EVENT_GOT_TM01_DYNAMICPUNCH
 	writetext UnknownText_0x9d8da
@@ -57,51 +56,29 @@
 	closetext
 	loadmovesprites
 	end
-; 0x9d67b
 
-UnknownScript_0x9d67b: ; 0x9d67b
+UnknownScript_0x9d67b:
 	writetext UnknownText_0x9d930
 	closetext
-UnknownScript_0x9d67f: ; 0x9d67f
+UnknownScript_0x9d67f:
 	loadmovesprites
 	end
-; 0x9d681
 
-UnknownScript_0x9d681: ; 0x9d681
-	if_equal $7, UnknownScript_0x9d68d
-	if_equal $6, UnknownScript_0x9d68a
+CianwoodGymTriggerRockets:
+	if_equal 7, .RadioTowerRockets
+	if_equal 6, .GoldenrodRockets
 	end
-; 0x9d68a
 
-UnknownScript_0x9d68a: ; 0x9d68a
+.GoldenrodRockets
 	jumpstd goldenrodrockets
-; 0x9d68d
 
-UnknownScript_0x9d68d: ; 0x9d68d
+.RadioTowerRockets
 	jumpstd radiotowerrockets
-; 0x9d690
 
-TrainerBlackbeltYoshi: ; 0x9d690
-	; bit/flag number
-	dw $4a5
+TrainerBlackbeltYoshi:
+	trainer EVENT_BEAT_BLACKBELT_YOSHI, BLACKBELT_T, YOSHI, BlackbeltYoshiSeenText, BlackbeltYoshiBeatenText, $0000, BlackbeltYoshiScript
 
-	; trainer group && trainer id
-	db BLACKBELT_T, YOSHI
-
-	; text when seen
-	dw BlackbeltYoshiSeenText
-
-	; text when trainer beaten
-	dw BlackbeltYoshiBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw BlackbeltYoshiScript
-; 0x9d69c
-
-BlackbeltYoshiScript: ; 0x9d69c
+BlackbeltYoshiScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x9d9fa
@@ -108,29 +85,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x9d6a4
 
-TrainerBlackbeltLao: ; 0x9d6a4
-	; bit/flag number
-	dw $4a7
+TrainerBlackbeltLao:
+	trainer EVENT_BEAT_BLACKBELT_LAO, BLACKBELT_T, LAO, BlackbeltLaoSeenText, BlackbeltLaoBeatenText, $0000, BlackbeltLaoScript
 
-	; trainer group && trainer id
-	db BLACKBELT_T, LAO
-
-	; text when seen
-	dw BlackbeltLaoSeenText
-
-	; text when trainer beaten
-	dw BlackbeltLaoBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw BlackbeltLaoScript
-; 0x9d6b0
-
-BlackbeltLaoScript: ; 0x9d6b0
+BlackbeltLaoScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x9da61
@@ -137,29 +96,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x9d6b8
 
-TrainerBlackbeltNob: ; 0x9d6b8
-	; bit/flag number
-	dw $4a8
+TrainerBlackbeltNob:
+	trainer EVENT_BEAT_BLACKBELT_NOB, BLACKBELT_T, NOB, BlackbeltNobSeenText, BlackbeltNobBeatenText, $0000, BlackbeltNobScript
 
-	; trainer group && trainer id
-	db BLACKBELT_T, NOB
-
-	; text when seen
-	dw BlackbeltNobSeenText
-
-	; text when trainer beaten
-	dw BlackbeltNobBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw BlackbeltNobScript
-; 0x9d6c4
-
-BlackbeltNobScript: ; 0x9d6c4
+BlackbeltNobScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x9dac0
@@ -166,29 +107,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x9d6cc
 
-TrainerBlackbeltLung: ; 0x9d6cc
-	; bit/flag number
-	dw $4aa
+TrainerBlackbeltLung:
+	trainer EVENT_BEAT_BLACKBELT_LUNG, BLACKBELT_T, LUNG, BlackbeltLungSeenText, BlackbeltLungBeatenText, $0000, BlackbeltLungScript
 
-	; trainer group && trainer id
-	db BLACKBELT_T, LUNG
-
-	; text when seen
-	dw BlackbeltLungSeenText
-
-	; text when trainer beaten
-	dw BlackbeltLungBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw BlackbeltLungScript
-; 0x9d6d8
-
-BlackbeltLungScript: ; 0x9d6d8
+BlackbeltLungScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x9db14
@@ -195,7 +118,6 @@
 	closetext
 	loadmovesprites
 	end
-; 0x9d6e0
 
 CianwoodGymBoulder:
 	jumpstd strengthboulder
@@ -208,7 +130,7 @@
 	trainertotext CHUCK, 1, $1
 	jumpstd gymstatue2
 
-MovementData_0x9d6f3: ; 0x9d6f3
+MovementData_0x9d6f3:
 	db $39 ; movement
 	big_step_left
 	big_step_up
@@ -215,9 +137,8 @@
 	fast_jump_step_right
 	db $38 ; movement
 	step_end
-; 0x9d6f9
 
-UnknownText_0x9d6f9: ; 0x9d6f9
+UnknownText_0x9d6f9:
 	text "WAHAHAH!"
 
 	para "So you've come"
@@ -232,17 +153,15 @@
 
 	para "Watch this!"
 	done
-; 0x9d76f
 
-UnknownText_0x9d76f: ; 0x9d76f
+UnknownText_0x9d76f:
 	text "CHUCK: Urggh!"
 	line "…"
 
 	para "Oooarrgh!"
 	done
-; 0x9d78a
 
-UnknownText_0x9d78a: ; 0x9d78a
+UnknownText_0x9d78a:
 	text "There! Scared now,"
 	line "are you?"
 
@@ -255,9 +174,8 @@
 	para "Come on. We shall"
 	line "do battle!"
 	done
-; 0x9d7f6
 
-UnknownText_0x9d7f6: ; 0x9d7f6
+UnknownText_0x9d7f6:
 	text "Wha? Huh?"
 	line "I lost?"
 
@@ -265,15 +183,13 @@
 	line "You're worthy of"
 	cont "STORMBADGE!"
 	done
-; 0x9d835
 
-UnknownText_0x9d835: ; 0x9d835
+UnknownText_0x9d835:
 	text "<PLAYER> received"
 	line "STORMBADGE."
 	done
-; 0x9d84d
 
-UnknownText_0x9d84d: ; 0x9d84d
+UnknownText_0x9d84d:
 	text "STORMBADGE makes"
 	line "all #MON up to"
 
@@ -289,9 +205,8 @@
 	para "Here, take this"
 	line "too!"
 	done
-; 0x9d8da
 
-UnknownText_0x9d8da: ; 0x9d8da
+UnknownText_0x9d8da:
 	text "That is DYNAMIC-"
 	line "PUNCH."
 
@@ -301,9 +216,8 @@
 	para "does, it causes"
 	line "confusion!"
 	done
-; 0x9d930
 
-UnknownText_0x9d930: ; 0x9d930
+UnknownText_0x9d930:
 	text "WAHAHAH! I enjoyed"
 	line "battling you!"
 
@@ -314,9 +228,8 @@
 	line "going to train 24"
 	cont "hours a day!"
 	done
-; 0x9d997
 
-BlackbeltYoshiSeenText: ; 0x9d997
+BlackbeltYoshiSeenText:
 	text "My #MON and I"
 	line "are bound togeth-"
 	cont "er by friendship."
@@ -324,100 +237,88 @@
 	para "Our bond will"
 	line "never be broken!"
 	done
-; 0x9d9e9
 
-BlackbeltYoshiBeatenText: ; 0x9d9e9
+BlackbeltYoshiBeatenText:
 	text "This isn't real!"
 	done
-; 0x9d9fa
 
-UnknownText_0x9d9fa: ; 0x9d9fa
+UnknownText_0x9d9fa:
 	text "You seem to have a"
 	line "strong bond with"
 	cont "your #MON too!"
 	done
-; 0x9da2e
 
-BlackbeltLaoSeenText: ; 0x9da2e
+BlackbeltLaoSeenText:
 	text "We martial artists"
 	line "fear nothing!"
 	done
-; 0x9da50
 
-BlackbeltLaoBeatenText: ; 0x9da50
+BlackbeltLaoBeatenText:
 	text "That's shocking!"
 	done
-; 0x9da61
 
-UnknownText_0x9da61: ; 0x9da61
+UnknownText_0x9da61:
 	text "Fighting #MON"
 	line "are afraid of psy-"
 	cont "chics…"
 	done
-; 0x9da8a
 
-BlackbeltNobSeenText: ; 0x9da8a
+BlackbeltNobSeenText:
 	text "Words are useless."
 	line "Let your fists do"
 	cont "the talking!"
 	done
-; 0x9dabd
 
-BlackbeltNobBeatenText: ; 0x9dabd
+BlackbeltNobBeatenText:
 	text "…"
 	done
-; 0x9dac0
 
-UnknownText_0x9dac0: ; 0x9dac0
+UnknownText_0x9dac0:
 	text "I lost! "
 	line "I'm speechless!"
 	done
-; 0x9dad9
 
-BlackbeltLungSeenText: ; 0x9dad9
+BlackbeltLungSeenText:
 	text "My raging fists"
 	line "will shatter your"
 	cont "#MON!"
 	done
-; 0x9db02
 
-BlackbeltLungBeatenText: ; 0x9db02
+BlackbeltLungBeatenText:
 	text "I got shattered!"
 	done
-; 0x9db14
 
-UnknownText_0x9db14: ; 0x9db14
+UnknownText_0x9db14:
 	text "My #MON lost…"
 	line "My… my pride is"
 	cont "shattered…"
 	done
-; 0x9db3e
 
-CianwoodGym_MapEventHeader: ; 0x9db3e
+CianwoodGym_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 15, 3, $0, CianwoodGymStatue
-	signpost 15, 6, $0, CianwoodGymStatue
+	signpost 15, 3, SIGNPOST_READ, CianwoodGymStatue
+	signpost 15, 6, SIGNPOST_READ, CianwoodGymStatue
 
-	; people-events
+.PersonEvents:
 	db 9
-	person_event SPRITE_CHUCK, 5, 8, $6, $0, 255, 255, $b0, 0, ChuckScript_0x9d60f, $ffff
-	person_event SPRITE_BLACK_BELT, 16, 6, $9, $0, 255, 255, $b2, 3, TrainerBlackbeltYoshi, $ffff
-	person_event SPRITE_BLACK_BELT, 16, 11, $8, $0, 255, 255, $b2, 3, TrainerBlackbeltLao, $ffff
-	person_event SPRITE_BLACK_BELT, 13, 7, $9, $0, 255, 255, $b2, 2, TrainerBlackbeltNob, $ffff
-	person_event SPRITE_BLACK_BELT, 9, 9, $8, $0, 255, 255, $b2, 1, TrainerBlackbeltLung, $ffff
-	person_event SPRITE_BOULDER, 5, 9, $19, $0, 255, 255, $0, 0, CianwoodGymBoulder, $ffff
-	person_event SPRITE_BOULDER, 11, 7, $19, $0, 255, 255, $0, 0, CianwoodGymBoulder, $ffff
-	person_event SPRITE_BOULDER, 11, 8, $19, $0, 255, 255, $0, 0, CianwoodGymBoulder, $ffff
-	person_event SPRITE_BOULDER, 11, 9, $19, $0, 255, 255, $0, 0, CianwoodGymBoulder, $ffff
+	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
--- a/maps/CianwoodLugiaSpeechHouse.asm
+++ b/maps/CianwoodLugiaSpeechHouse.asm
@@ -1,27 +1,23 @@
-CianwoodLugiaSpeechHouse_MapScriptHeader: ; 0x9e1ae
-	; trigger count
+CianwoodLugiaSpeechHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9e1b0
 
-TeacherScript_0x9e1b0: ; 0x9e1b0
+TeacherScript_0x9e1b0:
 	jumptextfaceplayer UnknownText_0x9e1bc
-; 0x9e1b3
 
-LassScript_0x9e1b3: ; 0x9e1b3
+LassScript_0x9e1b3:
 	jumptextfaceplayer UnknownText_0x9e23f
-; 0x9e1b6
 
-TwinScript_0x9e1b6: ; 0x9e1b6
+TwinScript_0x9e1b6:
 	jumptextfaceplayer UnknownText_0x9e2a9
-; 0x9e1b9
 
 CianwoodLugiaSpeechHouseBookshelf:
 	jumpstd picturebookshelf
 
-UnknownText_0x9e1bc: ; 0x9e1bc
+UnknownText_0x9e1bc:
 	text "You came from"
 	line "OLIVINE?"
 
@@ -34,9 +30,8 @@
 	cont "ture is hiding in"
 	cont "them."
 	done
-; 0x9e23f
 
-UnknownText_0x9e23f: ; 0x9e23f
+UnknownText_0x9e23f:
 	text "I heard that you"
 	line "can only see it if"
 
@@ -47,9 +42,8 @@
 	line "same scent as the"
 	cont "creature."
 	done
-; 0x9e2a9
 
-UnknownText_0x9e2a9: ; 0x9e2a9
+UnknownText_0x9e2a9:
 	text "I've heard that"
 	line "the whirlpools"
 
@@ -61,28 +55,26 @@
 	line "special move to"
 	cont "get past them."
 	done
-; 0x9e32b
 
-CianwoodLugiaSpeechHouse_MapEventHeader: ; 0x9e32b
+CianwoodLugiaSpeechHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 0, $0, CianwoodLugiaSpeechHouseBookshelf
-	signpost 1, 1, $0, CianwoodLugiaSpeechHouseBookshelf
+	signpost 1, 0, SIGNPOST_READ, CianwoodLugiaSpeechHouseBookshelf
+	signpost 1, 1, SIGNPOST_READ, CianwoodLugiaSpeechHouseBookshelf
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_TEACHER, 8, 6, $6, $0, 255, 255, $0, 0, TeacherScript_0x9e1b0, $ffff
-	person_event SPRITE_LASS, 9, 10, $5, $1, 255, 255, $a0, 0, LassScript_0x9e1b3, $ffff
-	person_event SPRITE_TWIN, 6, 4, $7, $0, 255, 255, $90, 0, TwinScript_0x9e1b6, $ffff
-; 0x9e36c
+	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
--- a/maps/CianwoodPharmacy.asm
+++ b/maps/CianwoodPharmacy.asm
@@ -1,11 +1,11 @@
 CianwoodPharmacy_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 1
 
 	; triggers
 	dw CianwoodPharmacyTrigger, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 CianwoodPharmacyTrigger:
@@ -16,11 +16,11 @@
 	loadfont
 	checkevent EVENT_GOT_SECRETPOTION_FROM_PHARMACY
 	iftrue .Mart
-	checkevent $0037
+	checkevent EVENT_JASMINE_EXPLAINED_AMPHYS_SICKNESS
 	iffalse .Mart
 	writetext PharmacistGiveSecretpotionText
 	keeptextopen
-	giveitem SECRETPOTION, $1
+	giveitem SECRETPOTION, 1
 	writetext ReceivedSecretpotionText
 	playsound SFX_KEY_ITEM
 	waitbutton
@@ -75,19 +75,19 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 0, $0, CianwoodPharmacyBookshelf
-	signpost 1, 1, $0, CianwoodPharmacyBookshelf
+	signpost 1, 0, SIGNPOST_READ, CianwoodPharmacyBookshelf
+	signpost 1, 1, SIGNPOST_READ, CianwoodPharmacyBookshelf
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_PHARMACIST, 7, 6, $6, $0, 255, 255, $80, 0, CianwoodPharmacist, $ffff
+	person_event SPRITE_PHARMACIST, 7, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, CianwoodPharmacist, -1
--- a/maps/CianwoodPokeCenter1F.asm
+++ b/maps/CianwoodPokeCenter1F.asm
@@ -1,20 +1,17 @@
-CianwoodPokeCenter1F_MapScriptHeader: ; 0x9dbcd
-	; trigger count
+CianwoodPokeCenter1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9dbcf
 
-NurseScript_0x9dbcf: ; 0x9dbcf
+NurseScript_0x9dbcf:
 	jumpstd pokecenternurse
-; 0x9dbd2
 
-LassScript_0x9dbd2: ; 0x9dbd2
+LassScript_0x9dbd2:
 	jumptextfaceplayer UnknownText_0x9dbed
-; 0x9dbd5
 
-CianwoodGymGuyScript: ; 0x9dbd5
+CianwoodGymGuyScript:
 	faceplayer
 	checkevent EVENT_BEAT_CHUCK
 	iftrue .CianwoodGymGuyWinScript
@@ -30,13 +27,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x9dbea
 
-SuperNerdScript_0x9dbea: ; 0x9dbea
+SuperNerdScript_0x9dbea:
 	jumptextfaceplayer UnknownText_0x9ded7
-; 0x9dbed
 
-UnknownText_0x9dbed: ; 0x9dbed
+UnknownText_0x9dbed:
 	text "Did you meet the"
 	line "#MANIAC?"
 
@@ -44,9 +39,8 @@
 	line "ging about his"
 	cont "rare #MON."
 	done
-; 0x9dc33
 
-CianwoodGymGuyText: ; 0x9dc33
+CianwoodGymGuyText:
 	text "The #MON GYM"
 	line "trainers here are"
 	cont "macho bullies."
@@ -84,16 +78,14 @@
 	para "If you get stuck,"
 	line "go outside."
 	done
-; 0x9ddc5
 
-CianwoodGymGuyWinText: ; 0x9ddc5
+CianwoodGymGuyWinText:
 	text "<PLAYER>! You won!"
 	line "I could tell by"
 	cont "looking at you!"
 	done
-; 0x9ddf2
 
-UnknownText_0x9ddf2: ; 0x9ddf2
+UnknownText_0x9ddf2:
 	text "Don't you get the"
 	line "urge to show off"
 
@@ -106,9 +98,8 @@
 	para "raised to my pal"
 	line "in VIOLET."
 	done
-; 0x9de66
 
-UnknownText_0x9de66: ; 0x9de66
+UnknownText_0x9de66:
 	text "I've been battling"
 	line "my pal in VIOLET"
 
@@ -119,9 +110,8 @@
 	line "against him. I've"
 	cont "gotta crank it up!"
 	done
-; 0x9ded7
 
-UnknownText_0x9ded7: ; 0x9ded7
+UnknownText_0x9ded7:
 	text "I love showing off"
 	line "the #MON that"
 
@@ -134,28 +124,26 @@
 	para "battles, and show"
 	line "off my #MON!"
 	done
-; 0x9df4e
 
-CianwoodPokeCenter1F_MapEventHeader: ; 0x9df4e
+CianwoodPokeCenter1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_NURSE, 5, 7, $6, $0, 255, 255, $0, 0, NurseScript_0x9dbcf, $ffff
-	person_event SPRITE_LASS, 9, 5, $4, $10, 255, 255, $a0, 0, LassScript_0x9dbd2, $ffff
-	person_event SPRITE_GYM_GUY, 7, 9, $6, $0, 255, 255, $80, 0, CianwoodGymGuyScript, $ffff
-	person_event SPRITE_SUPER_NERD, 10, 12, $5, $1, 255, 255, $90, 0, SuperNerdScript_0x9dbea, $ffff
-; 0x9df97
+	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
--- a/maps/CinnabarIsland.asm
+++ b/maps/CinnabarIsland.asm
@@ -1,8 +1,8 @@
 CinnabarIsland_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -21,7 +21,7 @@
 	playsound SFX_WARP_TO
 	applymovement $2, CinnabarIslandBlueTeleport
 	disappear $2
-	clearevent $0776
+	clearevent EVENT_VIRIDIAN_GYM_BLUE
 	end
 
 CinnabarIslandGymSign:
@@ -34,8 +34,7 @@
 	jumpstd pokecentersign
 
 MapCinnabarIslandSignpostItem3:
-	dw $00fe
-	db RARE_CANDY
+	dwb EVENT_CINNABAR_ISLAND_HIDDEN_RARE_CANDY, RARE_CANDY
 
 CinnabarIslandBlueTeleport:
 	teleport_from
@@ -131,20 +130,20 @@
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $b, $b, 1, GROUP_CINNABAR_POKECENTER_1F, MAP_CINNABAR_POKECENTER_1F
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 4
-	signpost 11, 12, $0, CinnabarIslandPokeCenterSign
-	signpost 11, 9, $0, CinnabarIslandGymSign
-	signpost 7, 7, $0, CinnabarIslandSign
-	signpost 1, 9, $7, MapCinnabarIslandSignpostItem3
+	signpost 11, 12, SIGNPOST_READ, CinnabarIslandPokeCenterSign
+	signpost 11, 9, SIGNPOST_READ, CinnabarIslandGymSign
+	signpost 7, 7, SIGNPOST_READ, CinnabarIslandSign
+	signpost 1, 9, SIGNPOST_ITEM, MapCinnabarIslandSignpostItem3
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_BLUE, 10, 13, $3, $0, 255, 255, $0, 0, CinnabarIslandBlue, $0775
+	person_event SPRITE_BLUE, 10, 13, OW_DOWN | $3, $0, -1, -1, $0, 0, CinnabarIslandBlue, EVENT_BLUE_IN_CINNABAR
--- a/maps/CinnabarPokeCenter1F.asm
+++ b/maps/CinnabarPokeCenter1F.asm
@@ -1,24 +1,20 @@
-CinnabarPokeCenter1F_MapScriptHeader: ; 0x1ab32a
-	; trigger count
+CinnabarPokeCenter1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1ab32c
 
-NurseScript_0x1ab32c: ; 0x1ab32c
+NurseScript_0x1ab32c:
 	jumpstd pokecenternurse
-; 0x1ab32f
 
-CooltrainerFScript_0x1ab32f: ; 0x1ab32f
+CooltrainerFScript_0x1ab32f:
 	jumptextfaceplayer UnknownText_0x1ab335
-; 0x1ab332
 
-FisherScript_0x1ab332: ; 0x1ab332
+FisherScript_0x1ab332:
 	jumptextfaceplayer UnknownText_0x1ab37f
-; 0x1ab335
 
-UnknownText_0x1ab335: ; 0x1ab335
+UnknownText_0x1ab335:
 	text "CINNABAR GYM's"
 	line "BLAINE apparently"
 
@@ -26,34 +22,31 @@
 	line "SEAFOAM ISLANDS"
 	cont "cave…"
 	done
-; 0x1ab37f
 
-UnknownText_0x1ab37f: ; 0x1ab37f
+UnknownText_0x1ab37f:
 	text "It's been a year"
 	line "since the volcano"
 	cont "erupted."
 	done
-; 0x1ab3ab
 
-CinnabarPokeCenter1F_MapEventHeader: ; 0x1ab3ab
+CinnabarPokeCenter1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_NURSE, 5, 7, $6, $0, 255, 255, $0, 0, NurseScript_0x1ab32c, $ffff
-	person_event SPRITE_COOLTRAINER_F, 10, 11, $5, $2, 255, 255, $80, 0, CooltrainerFScript_0x1ab32f, $ffff
-	person_event SPRITE_FISHER, 8, 6, $6, $0, 255, 255, $a0, 0, FisherScript_0x1ab332, $ffff
-; 0x1ab3e7
+	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
--- a/maps/CinnabarPokeCenter2FBeta.asm
+++ b/maps/CinnabarPokeCenter2FBeta.asm
@@ -1,25 +1,23 @@
-CinnabarPokeCenter2FBeta_MapScriptHeader: ; 0x1ab3e7
-	; trigger count
+CinnabarPokeCenter2FBeta_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1ab3e9
 
-CinnabarPokeCenter2FBeta_MapEventHeader: ; 0x1ab3e9
+CinnabarPokeCenter2FBeta_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $7, $0, 3, GROUP_CINNABAR_POKECENTER_1F, MAP_CINNABAR_POKECENTER_1F
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x1ab3f4
--- a/maps/Colosseum.asm
+++ b/maps/Colosseum.asm
@@ -1,99 +1,87 @@
-Colosseum_MapScriptHeader: ; 0x19345d
-	; trigger count
+Colosseum_MapScriptHeader:
+.MapTriggers:
 	db 3
 
 	; triggers
-	dw UnknownScript_0x193471, $0000
-	dw UnknownScript_0x193475, $0000
-	dw UnknownScript_0x193476, $0000
+	dw .Trigger1, $0000
+	dw .Trigger2, $0000
+	dw .Trigger3, $0000
 
-	; callback count
+.MapCallbacks:
 	db 2
 
 	; callbacks
 
-	dbw 2, UnknownScript_0x193477
+	dbw 2, ColosseumScript_SetWhichChris
 
-	dbw 5, UnknownScript_0x193487
-; 0x193471
+	dbw 5, ColosseumScript_InitializeCB
 
-UnknownScript_0x193471: ; 0x193471
-	priorityjump UnknownScript_0x19348c
+.Trigger1:
+	priorityjump ColosseumScript_Initialize
 	end
-; 0x193475
 
-UnknownScript_0x193475: ; 0x193475
+.Trigger2:
 	end
-; 0x193476
 
-UnknownScript_0x193476: ; 0x193476
+.Trigger3:
 	end
-; 0x193477
 
-UnknownScript_0x193477: ; 0x193477
-	special Function29f47
-	iffalse UnknownScript_0x193482
+ColosseumScript_SetWhichChris:
+	special Special_CableClubCheckWhichChris
+	iffalse .Chris2
 	disappear $3
 	appear $2
 	return
-; 0x193482
 
-UnknownScript_0x193482: ; 0x193482
+.Chris2:
 	disappear $2
 	appear $3
 	return
-; 0x193487
 
-UnknownScript_0x193487: ; 0x193487
+ColosseumScript_InitializeCB:
 	domaptrigger GROUP_POKECENTER_2F, MAP_POKECENTER_2F, $2
 	return
-; 0x19348c
 
-UnknownScript_0x19348c: ; 0x19348c
+ColosseumScript_Initialize:
 	dotrigger $1
 	domaptrigger GROUP_POKECENTER_2F, MAP_POKECENTER_2F, $2
 	end
-; 0x193493
 
-MapColosseumSignpost1Script: ; 0x193493
-	special Function29ed9
+MapColosseumSignpost1Script:
+	special Special_Colosseum
 	newloadmap $f8
 	end
-; 0x193499
 
-ChrisScript_0x193499: ; 0x193499
+ChrisScript_0x193499:
 	loadfont
-	writetext UnknownText_0x1934a0
+	writetext .FriendReadyText
 	closetext
 	loadmovesprites
 	end
-; 0x1934a0
 
-UnknownText_0x1934a0: ; 0x1934a0
+.FriendReadyText:
 	text "Your friend is"
 	line "ready."
 	done
-; 0x1934b7
 
-Colosseum_MapEventHeader: ; 0x1934b7
+Colosseum_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 4, 4, $3, MapColosseumSignpost1Script
-	signpost 4, 5, $4, MapColosseumSignpost1Script
+	signpost 4, 4, SIGNPOST_RIGHT, MapColosseumSignpost1Script
+	signpost 4, 5, SIGNPOST_LEFT, MapColosseumSignpost1Script
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_CHRIS, 8, 7, $9, $0, 255, 255, $0, 0, ChrisScript_0x193499, $0000
-	person_event SPRITE_CHRIS, 8, 10, $8, $0, 255, 255, $0, 0, ChrisScript_0x193499, $0001
-; 0x1934eb
+	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
--- a/maps/CopycatsHouse1F.asm
+++ b/maps/CopycatsHouse1F.asm
@@ -1,16 +1,14 @@
-CopycatsHouse1F_MapScriptHeader: ; 0x18ad11
-	; trigger count
+CopycatsHouse1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18ad13
 
-PokefanMScript_0x18ad13: ; 0x18ad13
+PokefanMScript_0x18ad13:
 	jumptextfaceplayer UnknownText_0x18ad34
-; 0x18ad16
 
-PokefanFScript_0x18ad16: ; 0x18ad16
+PokefanFScript_0x18ad16:
 	faceplayer
 	loadfont
 	checkevent EVENT_RETURNED_MACHINE_PART
@@ -19,16 +17,14 @@
 	closetext
 	loadmovesprites
 	end
-; 0x18ad24
 
-UnknownScript_0x18ad24: ; 0x18ad24
+UnknownScript_0x18ad24:
 	writetext UnknownText_0x18add3
 	closetext
 	loadmovesprites
 	end
-; 0x18ad2a
 
-ClefairyScript_0x18ad2a: ; 0x18ad2a
+ClefairyScript_0x18ad2a:
 	loadfont
 	writetext UnknownText_0x18ae4b
 	cry BLISSEY
@@ -35,9 +31,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x18ad34
 
-UnknownText_0x18ad34: ; 0x18ad34
+UnknownText_0x18ad34:
 	text "My daughter likes"
 	line "to mimic people."
 
@@ -47,9 +42,8 @@
 	para "nickname COPYCAT"
 	line "around here."
 	done
-; 0x18ad95
 
-UnknownText_0x18ad95: ; 0x18ad95
+UnknownText_0x18ad95:
 	text "My daughter is so"
 	line "self-centered…"
 
@@ -56,9 +50,8 @@
 	para "She only has a few"
 	line "friends."
 	done
-; 0x18add3
 
-UnknownText_0x18add3: ; 0x18add3
+UnknownText_0x18add3:
 	text "She recently lost"
 	line "the # DOLL that"
 
@@ -69,32 +62,29 @@
 	line "she's gotten even"
 	cont "better at mimicry…"
 	done
-; 0x18ae4b
 
-UnknownText_0x18ae4b: ; 0x18ae4b
+UnknownText_0x18ae4b:
 	text "BLISSEY: Bliisii!"
 	done
-; 0x18ae5e
 
-CopycatsHouse1F_MapEventHeader: ; 0x18ae5e
+CopycatsHouse1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_POKEFAN_M, 7, 6, $6, $0, 255, 255, $0, 0, PokefanMScript_0x18ad13, $ffff
-	person_event SPRITE_POKEFAN_F, 8, 9, $8, $0, 255, 255, $a0, 0, PokefanFScript_0x18ad16, $ffff
-	person_event SPRITE_CLEFAIRY, 10, 10, $16, $0, 255, 255, $0, 0, ClefairyScript_0x18ad2a, $ffff
-; 0x18ae9a
+	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
--- a/maps/CopycatsHouse2F.asm
+++ b/maps/CopycatsHouse2F.asm
@@ -1,17 +1,16 @@
-CopycatsHouse2F_MapScriptHeader: ; 0x18ae9a
-	; trigger count
+CopycatsHouse2F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 2, CopycatsHouse2FCallback
-; 0x18ae9f
 
 CopycatsHouse2FCallback:
-	checkflag $0063
+	checkflag ENGINE_PLAYER_IS_FEMALE
 	iftrue .Part1
 	disappear $7
 	appear $2
@@ -30,23 +29,23 @@
 	iftrue .Part13
 	checkitem LOST_ITEM
 	iftrue .Part12
-	checkflag $0063
+	checkflag ENGINE_PLAYER_IS_FEMALE
 	iftrue .Part1
 	applymovement $2, MovementData_0x18afd0
 	faceplayer
-	variablesprite $b, $1
+	variablesprite SPRITE_COPYCAT, SPRITE_CHRIS
 	jump .Part2
 
 .Part1
 	applymovement $7, MovementData_0x18afd0
 	faceplayer
-	variablesprite $b, $60
+	variablesprite SPRITE_COPYCAT, SPRITE_KRIS
 .Part2
-	special Function14209
+	special RunCallback_04
 	checkevent EVENT_RETURNED_MACHINE_PART
 	iftrue .Part7
 	loadfont
-	checkflag $0063
+	checkflag ENGINE_PLAYER_IS_FEMALE
 	iftrue .Part3
 	writetext UnknownText_0x18afda
 	jump .Part4
@@ -56,7 +55,7 @@
 .Part4
 	closetext
 	loadmovesprites
-	checkflag $0063
+	checkflag ENGINE_PLAYER_IS_FEMALE
 	iftrue .Part5
 	applymovement $2, MovementData_0x18afd0
 	jump .Part6
@@ -65,8 +64,8 @@
 	applymovement $7, MovementData_0x18afd0
 .Part6
 	faceplayer
-	variablesprite $b, $28
-	special Function14209
+	variablesprite SPRITE_COPYCAT, SPRITE_LASS
+	special RunCallback_04
 	loadfont
 	writetext UnknownText_0x18b028
 	closetext
@@ -75,7 +74,7 @@
 
 .Part7
 	loadfont
-	checkflag $0063
+	checkflag ENGINE_PLAYER_IS_FEMALE
 	iftrue .Part8
 	writetext UnknownText_0x18b064
 	jump .Part9
@@ -85,7 +84,7 @@
 .Part9
 	closetext
 	loadmovesprites
-	checkflag $0063
+	checkflag ENGINE_PLAYER_IS_FEMALE
 	iftrue .Part10
 	applymovement $2, MovementData_0x18afd0
 	jump .Part11
@@ -94,8 +93,8 @@
 	applymovement $7, MovementData_0x18afd0
 .Part11
 	faceplayer
-	variablesprite $b, $28
-	special Function14209
+	variablesprite SPRITE_COPYCAT, SPRITE_LASS
+	special RunCallback_04
 	loadfont
 	writetext UnknownText_0x18b116
 	closetext
@@ -109,7 +108,7 @@
 	keeptextopen
 	takeitem LOST_ITEM, 1
 	setevent EVENT_RETURNED_LOST_ITEM_TO_COPYCAT
-	clearevent $0773
+	clearevent EVENT_COPYCATS_HOUSE_2F_DOLL
 	jump .Part14
 
 .Part13
@@ -126,21 +125,21 @@
 	end
 
 .Part15
-	checkflag $0063
+	checkflag ENGINE_PLAYER_IS_FEMALE
 	iftrue .Part16
 	applymovement $2, MovementData_0x18afd0
 	faceplayer
-	variablesprite $b, $1
+	variablesprite SPRITE_COPYCAT, SPRITE_CHRIS
 	jump .Part17
 
 .Part16
 	applymovement $7, MovementData_0x18afd0
 	faceplayer
-	variablesprite $b, $60
+	variablesprite SPRITE_COPYCAT, SPRITE_KRIS
 .Part17
-	special Function14209
+	special RunCallback_04
 	loadfont
-	checkflag $0063
+	checkflag ENGINE_PLAYER_IS_FEMALE
 	iftrue .Part18
 	writetext UnknownText_0x18b298
 	jump .Part19
@@ -150,7 +149,7 @@
 .Part19
 	closetext
 	loadmovesprites
-	checkflag $0063
+	checkflag ENGINE_PLAYER_IS_FEMALE
 	iftrue .Part20
 	applymovement $2, MovementData_0x18afd0
 	jump .Part21
@@ -159,8 +158,8 @@
 	applymovement $7, MovementData_0x18afd0
 .Part21
 	faceplayer
-	variablesprite $b, $28
-	special Function14209
+	variablesprite SPRITE_COPYCAT, SPRITE_LASS
+	special RunCallback_04
 	loadfont
 	writetext UnknownText_0x18b2f5
 	closetext
@@ -184,7 +183,7 @@
 CopycatsHouse2FBookshelf:
 	jumpstd picturebookshelf
 
-MovementData_0x18afd0: ; 0x18afd0
+MovementData_0x18afd0:
 	turn_head_down
 	turn_head_left
 	turn_head_up
@@ -195,9 +194,8 @@
 	turn_head_right
 	turn_head_down
 	step_end
-; 0x18afda
 
-UnknownText_0x18afda: ; 0x18afda
+UnknownText_0x18afda:
 	text "<PLAYER>: Hi! Do"
 	line "you like #MON?"
 
@@ -207,9 +205,8 @@
 	para "<PLAYER>: Huh?"
 	line "You're strange!"
 	done
-; 0x18b028
 
-UnknownText_0x18b028: ; 0x18b028
+UnknownText_0x18b028:
 	text "COPYCAT: Hmm?"
 	line "Quit mimicking?"
 
@@ -216,9 +213,8 @@
 	para "But that's my"
 	line "favorite hobby!"
 	done
-; 0x18b064
 
-UnknownText_0x18b064: ; 0x18b064
+UnknownText_0x18b064:
 	text "<PLAYER>: Hi!"
 	line "I heard that you"
 
@@ -236,9 +232,8 @@
 	line "it when you went"
 	cont "to VERMILION CITY?"
 	done
-; 0x18b116
 
-UnknownText_0x18b116: ; 0x18b116
+UnknownText_0x18b116:
 	text "COPYCAT: Pardon?"
 
 	para "I shouldn't decide"
@@ -249,9 +244,8 @@
 	line "worried… What if"
 	cont "someone finds it?"
 	done
-; 0x18b17f
 
-UnknownText_0x18b17f: ; 0x18b17f
+UnknownText_0x18b17f:
 	text "COPYCAT: Yay!"
 	line "That's my CLEFAIRY"
 	cont "# DOLL!"
@@ -262,16 +256,14 @@
 	para "sewn on? That's"
 	line "proof!"
 	done
-; 0x18b1e2
 
-UnknownText_0x18b1e2: ; 0x18b1e2
+UnknownText_0x18b1e2:
 	text "OK. Here's the"
 	line "MAGNET TRAIN PASS"
 	cont "like I promised!"
 	done
-; 0x18b214
 
-UnknownText_0x18b214: ; 0x18b214
+UnknownText_0x18b214:
 	text "COPYCAT: That's"
 	line "the PASS for the"
 	cont "MAGNET TRAIN."
@@ -283,9 +275,8 @@
 	line "down our old house"
 	cont "for the STATION."
 	done
-; 0x18b298
 
-UnknownText_0x18b298: ; 0x18b298
+UnknownText_0x18b298:
 	text "<PLAYER>: Hi!"
 	line "Thanks a lot for"
 	cont "the rail PASS!"
@@ -296,15 +287,13 @@
 	line "that fun to mimic"
 	cont "my every move?"
 	done
-; 0x18b2f5
 
-UnknownText_0x18b2f5: ; 0x18b2f5
+UnknownText_0x18b2f5:
 	text "COPYCAT: You bet!"
 	line "It's a scream!"
 	done
-; 0x18b316
 
-UnknownText_0x18b316: ; 0x18b316
+UnknownText_0x18b316:
 	text "<PLAYER>: Hi. You"
 	line "must like #MON."
 
@@ -314,9 +303,8 @@
 	para "<PLAYER>: Pardon?"
 	line "You're weird!"
 	done
-; 0x18b366
 
-UnknownText_0x18b366: ; 0x18b366
+UnknownText_0x18b366:
 	text "<PLAYER>: Hi. Did"
 	line "you really lose"
 	cont "your # DOLL?"
@@ -334,9 +322,8 @@
 	line "it when you were"
 	cont "in VERMILION?"
 	done
-; 0x18b415
 
-UnknownText_0x18b415: ; 0x18b415
+UnknownText_0x18b415:
 	text "<PLAYER>: Thank you"
 	line "for the rail PASS!"
 
@@ -348,14 +335,12 @@
 	para "copy what I say"
 	line "and do?"
 	done
-; 0x18b476
 
-CopycatsDodrioText1: ; 0x18b476
+CopycatsDodrioText1:
 	text "DODRIO: Gii giii!"
 	done
-; 0x18b489
 
-CopycatsDodrioText2: ; 0x18b489
+CopycatsDodrioText2:
 	text "MIRROR, MIRROR ON"
 	line "THE WALL, WHO'S"
 
@@ -362,7 +347,6 @@
 	para "THE FAIREST ONE OF"
 	line "ALL?"
 	done
-; 0x18b4c4
 
 CopycatsHouse2FDollText:
 	text "This is a rare"
@@ -371,28 +355,27 @@
 	para "It's only a doll…"
 	done
 
-CopycatsHouse2F_MapEventHeader: ; 0x18b4f0
+CopycatsHouse2F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $0, $3, 3, GROUP_COPYCATS_HOUSE_1F, MAP_COPYCATS_HOUSE_1F
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 0, $0, CopycatsHouse2FBookshelf
-	signpost 1, 1, $0, CopycatsHouse2FBookshelf
+	signpost 1, 0, SIGNPOST_READ, CopycatsHouse2FBookshelf
+	signpost 1, 1, SIGNPOST_READ, CopycatsHouse2FBookshelf
 
-	; people-events
+.PersonEvents:
 	db 6
-	person_event SPRITE_COPYCAT, 7, 8, $8, $0, 255, 255, $80, 0, Copycat, $06ee
-	person_event SPRITE_MOLTRES, 8, 10, $16, $0, 255, 255, $b0, 0, CopycatsDodrio, $ffff
-	person_event SPRITE_FAIRY, 5, 10, $6, $0, 255, 255, $80, 0, CopycatsHouse2FDoll, $0773
-	person_event SPRITE_MONSTER, 5, 6, $6, $0, 255, 255, $a0, 0, CopycatsHouse2FDoll, $ffff
-	person_event SPRITE_BIRD, 5, 11, $6, $0, 255, 255, $90, 0, CopycatsHouse2FDoll, $ffff
-	person_event SPRITE_COPYCAT, 7, 8, $8, $0, 255, 255, $90, 0, Copycat, $06ef
-; 0x18b553
+	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
--- a/maps/DanceTheatre.asm
+++ b/maps/DanceTheatre.asm
@@ -1,32 +1,14 @@
-DanceTheatre_MapScriptHeader: ; 0x99460
-	; trigger count
+DanceTheatre_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x99462
 
-TrainerKimono_girlNaoko2: ; 0x99462
-	; bit/flag number
-	dw $4df
+TrainerKimono_girlNaoko2:
+	trainer EVENT_BEAT_KIMONO_GIRL_NAOKO, KIMONO_GIRL, NAOKO2, Kimono_girlNaoko2SeenText, Kimono_girlNaoko2BeatenText, $0000, Kimono_girlNaoko2Script
 
-	; trainer group && trainer id
-	db KIMONO_GIRL, NAOKO2
-
-	; text when seen
-	dw Kimono_girlNaoko2SeenText
-
-	; text when trainer beaten
-	dw Kimono_girlNaoko2BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Kimono_girlNaoko2Script
-; 0x9946e
-
-Kimono_girlNaoko2Script: ; 0x9946e
+Kimono_girlNaoko2Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x99579
@@ -33,29 +15,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x99476
 
-TrainerKimono_girlSayo: ; 0x99476
-	; bit/flag number
-	dw $4e0
+TrainerKimono_girlSayo:
+	trainer EVENT_BEAT_KIMONO_GIRL_SAYO, KIMONO_GIRL, SAYO, Kimono_girlSayoSeenText, Kimono_girlSayoBeatenText, $0000, Kimono_girlSayoScript
 
-	; trainer group && trainer id
-	db KIMONO_GIRL, SAYO
-
-	; text when seen
-	dw Kimono_girlSayoSeenText
-
-	; text when trainer beaten
-	dw Kimono_girlSayoBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Kimono_girlSayoScript
-; 0x99482
-
-Kimono_girlSayoScript: ; 0x99482
+Kimono_girlSayoScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x9960b
@@ -62,29 +26,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x9948a
 
-TrainerKimono_girlZuki: ; 0x9948a
-	; bit/flag number
-	dw $4e1
+TrainerKimono_girlZuki:
+	trainer EVENT_BEAT_KIMONO_GIRL_ZUKI, KIMONO_GIRL, ZUKI, Kimono_girlZukiSeenText, Kimono_girlZukiBeatenText, $0000, Kimono_girlZukiScript
 
-	; trainer group && trainer id
-	db KIMONO_GIRL, ZUKI
-
-	; text when seen
-	dw Kimono_girlZukiSeenText
-
-	; text when trainer beaten
-	dw Kimono_girlZukiBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Kimono_girlZukiScript
-; 0x99496
-
-Kimono_girlZukiScript: ; 0x99496
+Kimono_girlZukiScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x99688
@@ -91,29 +37,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x9949e
 
-TrainerKimono_girlKuni: ; 0x9949e
-	; bit/flag number
-	dw $4e2
+TrainerKimono_girlKuni:
+	trainer EVENT_BEAT_KIMONO_GIRL_KUNI, KIMONO_GIRL, KUNI, Kimono_girlKuniSeenText, Kimono_girlKuniBeatenText, $0000, Kimono_girlKuniScript
 
-	; trainer group && trainer id
-	db KIMONO_GIRL, KUNI
-
-	; text when seen
-	dw Kimono_girlKuniSeenText
-
-	; text when trainer beaten
-	dw Kimono_girlKuniBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Kimono_girlKuniScript
-; 0x994aa
-
-Kimono_girlKuniScript: ; 0x994aa
+Kimono_girlKuniScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x99714
@@ -120,29 +48,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x994b2
 
-TrainerKimono_girlMiki: ; 0x994b2
-	; bit/flag number
-	dw $4e3
+TrainerKimono_girlMiki:
+	trainer EVENT_BEAT_KIMONO_GIRL_MIKI, KIMONO_GIRL, MIKI, Kimono_girlMikiSeenText, Kimono_girlMikiBeatenText, $0000, Kimono_girlMikiScript
 
-	; trainer group && trainer id
-	db KIMONO_GIRL, MIKI
-
-	; text when seen
-	dw Kimono_girlMikiSeenText
-
-	; text when trainer beaten
-	dw Kimono_girlMikiBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Kimono_girlMikiScript
-; 0x994be
-
-Kimono_girlMikiScript: ; 0x994be
+Kimono_girlMikiScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x997a8
@@ -149,9 +59,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x994c6
 
-GentlemanScript_0x994c6: ; 0x994c6
+GentlemanScript_0x994c6:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x9980a
@@ -169,43 +78,38 @@
 	checkevent EVENT_BEAT_KIMONO_GIRL_MIKI
 	iffalse UnknownScript_0x994f3
 	jump UnknownScript_0x99505
-; 0x994f3
 
-UnknownScript_0x994f3: ; 0x994f3
-	checkflag $0063
+UnknownScript_0x994f3:
+	checkflag ENGINE_PLAYER_IS_FEMALE
 	iftrue UnknownScript_0x994ff
 	writetext UnknownText_0x99891
 	closetext
 	loadmovesprites
 	end
-; 0x994ff
 
-UnknownScript_0x994ff: ; 0x994ff
+UnknownScript_0x994ff:
 	writetext UnknownText_0x998d4
 	closetext
 	loadmovesprites
 	end
-; 0x99505
 
-UnknownScript_0x99505: ; 0x99505
+UnknownScript_0x99505:
 	writetext UnknownText_0x9991a
 	keeptextopen
-	verbosegiveitem HM_03, 1
+	verbosegiveitem HM_SURF, 1
 	setevent EVENT_GOT_HM03_SURF
 	writetext UnknownText_0x9999b
 	closetext
 	loadmovesprites
 	end
-; 0x99515
 
-UnknownScript_0x99515: ; 0x99515
+UnknownScript_0x99515:
 	writetext UnknownText_0x999d5
 	closetext
 	loadmovesprites
 	end
-; 0x9951b
 
-RhydonScript_0x9951b: ; 0x9951b
+RhydonScript_0x9951b:
 	loadfont
 	writetext UnknownText_0x99a0a
 	cry RHYDON
@@ -212,41 +116,34 @@
 	closetext
 	loadmovesprites
 	end
-; 0x99525
 
-CooltrainerMScript_0x99525: ; 0x99525
+CooltrainerMScript_0x99525:
 	jumptextfaceplayer UnknownText_0x99a24
-; 0x99528
 
-GrannyScript_0x99528: ; 0x99528
+GrannyScript_0x99528:
 	jumptextfaceplayer UnknownText_0x99aaa
-; 0x9952b
 
-MapDanceTheatreSignpost1Script: ; 0x9952b
+MapDanceTheatreSignpost1Script:
 	jumptext UnknownText_0x99b79
-; 0x9952e
 
-Kimono_girlNaoko2SeenText: ; 0x9952e
+Kimono_girlNaoko2SeenText:
 	text "You have lovely"
 	line "#MON. May I see"
 	cont "them in battle?"
 	done
-; 0x9955f
 
-Kimono_girlNaoko2BeatenText: ; 0x9955f
+Kimono_girlNaoko2BeatenText:
 	text "Oh, you are very"
 	line "strong."
 	done
-; 0x99579
 
-UnknownText_0x99579: ; 0x99579
+UnknownText_0x99579:
 	text "I enjoyed that"
 	line "bout. I would like"
 	cont "to see you again."
 	done
-; 0x995ae
 
-Kimono_girlSayoSeenText: ; 0x995ae
+Kimono_girlSayoSeenText:
 	text "I always dance"
 	line "with my #MON."
 
@@ -253,15 +150,13 @@
 	para "Of course, I also"
 	line "train them."
 	done
-; 0x995ea
 
-Kimono_girlSayoBeatenText: ; 0x995ea
+Kimono_girlSayoBeatenText:
 	text "Oh, so close!"
 	line "I almost had you."
 	done
-; 0x9960b
 
-UnknownText_0x9960b: ; 0x9960b
+UnknownText_0x9960b:
 	text "Rhythm is impor-"
 	line "tant for both"
 
@@ -268,9 +163,8 @@
 	para "dancing and #-"
 	line "MON."
 	done
-; 0x9963f
 
-Kimono_girlZukiSeenText: ; 0x9963f
+Kimono_girlZukiSeenText:
 	text "Isn't my barrette"
 	line "pretty?"
 
@@ -277,35 +171,30 @@
 	para "Oh. A #MON"
 	line "battle?"
 	done
-; 0x9966c
 
-Kimono_girlZukiBeatenText: ; 0x9966c
+Kimono_girlZukiBeatenText:
 	text "I don't have any"
 	line "#MON left…"
 	done
-; 0x99688
 
-UnknownText_0x99688: ; 0x99688
+UnknownText_0x99688:
 	text "I put a different"
 	line "flower in my bar-"
 	cont "rette every month."
 	done
-; 0x996c0
 
-Kimono_girlKuniSeenText: ; 0x996c0
+Kimono_girlKuniSeenText:
 	text "Oh, you're a cute"
 	line "trainer. Would you"
 	cont "like to battle?"
 	done
-; 0x996f5
 
-Kimono_girlKuniBeatenText: ; 0x996f5
+Kimono_girlKuniBeatenText:
 	text "You're stronger"
 	line "than you look."
 	done
-; 0x99714
 
-UnknownText_0x99714: ; 0x99714
+UnknownText_0x99714:
 	text "I trained a lot,"
 	line "so I thought I was"
 
@@ -312,22 +201,19 @@
 	para "a capable trainer."
 	line "I guess I'm not."
 	done
-; 0x9975c
 
-Kimono_girlMikiSeenText: ; 0x9975c
+Kimono_girlMikiSeenText:
 	text "Do you like my"
 	line "dancing? I'm good"
 	cont "at #MON too."
 	done
-; 0x9978a
 
-Kimono_girlMikiBeatenText: ; 0x9978a
+Kimono_girlMikiBeatenText:
 	text "Ooh, you're good"
 	line "at #MON too."
 	done
-; 0x997a8
 
-UnknownText_0x997a8: ; 0x997a8
+UnknownText_0x997a8:
 	text "I can keep dancing"
 	line "because there are"
 
@@ -337,9 +223,8 @@
 	para "My #MON keep my"
 	line "spirits up too."
 	done
-; 0x9980a
 
-UnknownText_0x9980a: ; 0x9980a
+UnknownText_0x9980a:
 	text "Not only are the"
 	line "KIMONO GIRLS great"
 
@@ -353,9 +238,8 @@
 	para "never even left a"
 	line "scratch…"
 	done
-; 0x99891
 
-UnknownText_0x99891: ; 0x99891
+UnknownText_0x99891:
 	text "Lad! If you can"
 	line "defeat all the"
 
@@ -362,9 +246,8 @@
 	para "KIMONO GIRLS, I'll"
 	line "give you a gift."
 	done
-; 0x998d4
 
-UnknownText_0x998d4: ; 0x998d4
+UnknownText_0x998d4:
 	text "Lassie, if you can"
 	line "defeat all the"
 
@@ -371,9 +254,8 @@
 	para "KIMONO GIRLS, I'll"
 	line "give you a gift."
 	done
-; 0x9991a
 
-UnknownText_0x9991a: ; 0x9991a
+UnknownText_0x9991a:
 	text "The way you bat-"
 	line "tled, it was like"
 	cont "watching a dance."
@@ -385,9 +267,8 @@
 	line "this. Don't worry"
 	cont "--take it!"
 	done
-; 0x9999b
 
-UnknownText_0x9999b: ; 0x9999b
+UnknownText_0x9999b:
 	text "That's SURF."
 
 	para "It's a move that"
@@ -394,22 +275,19 @@
 	line "lets #MON swim"
 	cont "across water."
 	done
-; 0x999d5
 
-UnknownText_0x999d5: ; 0x999d5
+UnknownText_0x999d5:
 	text "I wish my #MON"
 	line "were as elegant as"
 	cont "the KIMONO GIRLS…"
 	done
-; 0x99a0a
 
-UnknownText_0x99a0a: ; 0x99a0a
+UnknownText_0x99a0a:
 	text "RHYDON: Gugooh"
 	line "gugogooh!"
 	done
-; 0x99a24
 
-UnknownText_0x99a24: ; 0x99a24
+UnknownText_0x99a24:
 	text "That man's always"
 	line "with his RHYDON."
 
@@ -422,9 +300,8 @@
 	cont "nized swimming"
 	cont "#MON?"
 	done
-; 0x99aaa
 
-UnknownText_0x99aaa: ; 0x99aaa
+UnknownText_0x99aaa:
 	text "The KIMONO GIRLS"
 	line "are so beautiful…"
 
@@ -442,41 +319,38 @@
 	line "something, any-"
 	cont "thing is possible."
 	done
-; 0x99b79
 
-UnknownText_0x99b79: ; 0x99b79
+UnknownText_0x99b79:
 	text "It's a fancy panel"
 	line "that's decorated"
 	cont "with flowers."
 	done
-; 0x99baa
 
-DanceTheatre_MapEventHeader: ; 0x99baa
+DanceTheatre_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 6, 5, $1, MapDanceTheatreSignpost1Script
-	signpost 6, 6, $1, MapDanceTheatreSignpost1Script
+	signpost 6, 5, SIGNPOST_UP, MapDanceTheatreSignpost1Script
+	signpost 6, 6, SIGNPOST_UP, MapDanceTheatreSignpost1Script
 
-	; people-events
+.PersonEvents:
 	db 9
-	person_event SPRITE_KIMONO_GIRL, 6, 4, $1e, $0, 255, 255, $a2, 0, TrainerKimono_girlNaoko2, $ffff
-	person_event SPRITE_KIMONO_GIRL, 5, 6, $a, $0, 255, 255, $92, 0, TrainerKimono_girlSayo, $ffff
-	person_event SPRITE_KIMONO_GIRL, 6, 10, $3, $0, 255, 255, $82, 0, TrainerKimono_girlZuki, $ffff
-	person_event SPRITE_KIMONO_GIRL, 5, 13, $a, $0, 255, 255, $92, 0, TrainerKimono_girlKuni, $ffff
-	person_event SPRITE_KIMONO_GIRL, 6, 15, $1f, $0, 255, 255, $a2, 0, TrainerKimono_girlMiki, $ffff
-	person_event SPRITE_GENTLEMAN, 14, 11, $7, $0, 255, 255, $0, 0, GentlemanScript_0x994c6, $ffff
-	person_event SPRITE_RHYDON, 12, 10, $16, $0, 255, 255, $90, 0, RhydonScript_0x9951b, $ffff
-	person_event SPRITE_COOLTRAINER_M, 14, 14, $8, $0, 255, 255, $80, 0, CooltrainerMScript_0x99525, $ffff
-	person_event SPRITE_GRANNY, 10, 7, $7, $0, 255, 255, $0, 0, GrannyScript_0x99528, $ffff
-; 0x99c39
+	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
--- a/maps/DarkCaveBlackthornEntrance.asm
+++ b/maps/DarkCaveBlackthornEntrance.asm
@@ -1,12 +1,11 @@
-DarkCaveBlackthornEntrance_MapScriptHeader: ; 0x18c71e
-	; trigger count
+DarkCaveBlackthornEntrance_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18c720
 
-PharmacistScript_0x18c720: ; 0x18c720
+PharmacistScript_0x18c720:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_BLACKGLASSES_IN_DARK_CAVE
@@ -16,23 +15,20 @@
 	verbosegiveitem BLACKGLASSES, 1
 	iffalse UnknownScript_0x18c739
 	setevent EVENT_GOT_BLACKGLASSES_IN_DARK_CAVE
-UnknownScript_0x18c735: ; 0x18c735
+UnknownScript_0x18c735:
 	writetext UnknownText_0x18c80c
 	closetext
-UnknownScript_0x18c739: ; 0x18c739
+UnknownScript_0x18c739:
 	loadmovesprites
 	end
-; 0x18c73b
 
-ItemFragment_0x18c73b: ; 0x18c73b
+ItemFragment_0x18c73b:
 	db REVIVE, 1
-; 0x18c73d
 
-ItemFragment_0x18c73d: ; 0x18c73d
-	db TM_13, 1
-; 0x18c73f
+ItemFragment_0x18c73d:
+	db TM_SNORE, 1
 
-UnknownText_0x18c73f: ; 0x18c73f
+UnknownText_0x18c73f:
 	text "Whoa! You startled"
 	line "me there!"
 
@@ -53,33 +49,30 @@
 	cont "GLASSES, so forget"
 	cont "you saw me, OK?"
 	done
-; 0x18c80c
 
-UnknownText_0x18c80c: ; 0x18c80c
+UnknownText_0x18c80c:
 	text "BLACKGLASSES ups"
 	line "the power of dark-"
 	cont "type moves."
 	done
-; 0x18c83d
 
-DarkCaveBlackthornEntrance_MapEventHeader: ; 0x18c83d
+DarkCaveBlackthornEntrance_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_PHARMACIST, 7, 11, $3, $0, 255, 255, $0, 0, PharmacistScript_0x18c720, $ffff
-	person_event SPRITE_POKE_BALL, 28, 25, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c73b, $06a1
-	person_event SPRITE_POKE_BALL, 26, 11, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c73d, $06a2
-; 0x18c874
+	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
--- a/maps/DarkCaveVioletEntrance.asm
+++ b/maps/DarkCaveVioletEntrance.asm
@@ -1,61 +1,53 @@
-DarkCaveVioletEntrance_MapScriptHeader: ; 0x18c68c
-	; trigger count
+DarkCaveVioletEntrance_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18c68e
 
-ItemFragment_0x18c68e: ; 0x18c68e
+ItemFragment_0x18c68e:
 	db POTION, 1
-; 0x18c690
 
-ItemFragment_0x18c690: ; 0x18c690
+ItemFragment_0x18c690:
 	db FULL_HEAL, 1
-; 0x18c692
 
-ItemFragment_0x18c692: ; 0x18c692
+ItemFragment_0x18c692:
 	db HYPER_POTION, 1
-; 0x18c694
 
-ItemFragment_0x18c694: ; 0x18c694
+ItemFragment_0x18c694:
 	db DIRE_HIT, 1
-; 0x18c696
 
 DarkCaveVioletEntranceRock:
 	jumpstd smashrock
 
-MapDarkCaveVioletEntranceSignpostItem0: ; 0x18c699
-	dw $009d
-	db ELIXER
+MapDarkCaveVioletEntranceSignpostItem0:
+	dwb EVENT_DARK_CAVE_VIOLET_ENTRANCE_HIDDEN_ELIXER, ELIXER
 	
-; 0x18c69c
 
-DarkCaveVioletEntrance_MapEventHeader: ; 0x18c69c
+DarkCaveVioletEntrance_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 3, 26, $7, MapDarkCaveVioletEntranceSignpostItem0
+	signpost 3, 26, SIGNPOST_ITEM, MapDarkCaveVioletEntranceSignpostItem0
 
-	; people-events
+.PersonEvents:
 	db 8
-	person_event SPRITE_POKE_BALL, 12, 10, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c68e, $069e
-	person_event SPRITE_ROCK, 18, 20, $18, $0, 255, 255, $0, 0, DarkCaveVioletEntranceRock, $ffff
-	person_event SPRITE_ROCK, 10, 31, $18, $0, 255, 255, $0, 0, DarkCaveVioletEntranceRock, $ffff
-	person_event SPRITE_ROCK, 18, 11, $18, $0, 255, 255, $0, 0, DarkCaveVioletEntranceRock, $ffff
-	person_event SPRITE_ROCK, 35, 40, $18, $0, 255, 255, $0, 0, DarkCaveVioletEntranceRock, $ffff
-	person_event SPRITE_POKE_BALL, 26, 40, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c690, $069f
-	person_event SPRITE_POKE_BALL, 13, 39, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c692, $06a0
-	person_event SPRITE_POKE_BALL, 32, 34, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c694, $07ce
-; 0x18c71e
+	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
--- a/maps/DayCare.asm
+++ b/maps/DayCare.asm
@@ -1,30 +1,27 @@
-DayCare_MapScriptHeader: ; 0x62f76
-	; trigger count
+DayCare_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 2, UnknownScript_0x62f7b
-; 0x62f7b
 
-UnknownScript_0x62f7b: ; 0x62f7b
-	checkflag $0005
+UnknownScript_0x62f7b:
+	checkflag ENGINE_DAYCARE_MONS_ARE_COMPATIBLE
 	iftrue UnknownScript_0x62f88
-	clearevent $06e5
-	setevent $06e6
+	clearevent EVENT_DAYCARE_MAN_IN_DAYCARE
+	setevent EVENT_DAYCARE_MAN_ON_ROUTE_34
 	return
-; 0x62f88
 
-UnknownScript_0x62f88: ; 0x62f88
-	setevent $06e5
-	clearevent $06e6
+UnknownScript_0x62f88:
+	setevent EVENT_DAYCARE_MAN_IN_DAYCARE
+	clearevent EVENT_DAYCARE_MAN_ON_ROUTE_34
 	return
-; 0x62f8f
 
-GrampsScript_0x62f8f: ; 0x62f8f
+GrampsScript_0x62f8f:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_ODD_EGG
@@ -32,7 +29,7 @@
 	writetext UnknownText_0x630ce
 	keeptextopen
 	loadmovesprites
-	checkcode $1
+	checkcode VAR_PARTYCOUNT
 	if_equal $6, UnknownScript_0x62fb6
 	special Function117656
 	loadfont
@@ -44,51 +41,45 @@
 	loadmovesprites
 	setevent EVENT_GOT_ODD_EGG
 	end
-; 0x62fb6
 
-UnknownScript_0x62fb6: ; 0x62fb6
+UnknownScript_0x62fb6:
 	loadfont
 	writetext UnknownText_0x63237
 	closetext
 	loadmovesprites
 	end
-; 0x62fbd
 
-UnknownScript_0x62fbd: ; 0x62fbd
-	special Function166d6
+UnknownScript_0x62fbd:
+	special Special_DayCareMan
 	closetext
 	loadmovesprites
 	end
-; 0x62fc3
 
-GrannyScript_0x62fc3: ; 0x62fc3
+GrannyScript_0x62fc3:
 	faceplayer
 	loadfont
-	checkflag $0005
+	checkflag ENGINE_DAYCARE_MONS_ARE_COMPATIBLE
 	iftrue UnknownScript_0x62fd1
-	special Function1672a
+	special Special_DayCareLady
 	closetext
 	loadmovesprites
 	end
-; 0x62fd1
 
-UnknownScript_0x62fd1: ; 0x62fd1
+UnknownScript_0x62fd1:
 	writetext UnknownText_0x62fda
 	closetext
 	loadmovesprites
 	end
-; 0x62fd7
 
 DayCareBookshelf:
 	jumpstd difficultbookshelf
 
-UnknownText_0x62fda: ; 0x62fda
+UnknownText_0x62fda:
 	text "Gramps was looking"
 	line "for you."
 	done
-; 0x62ff7
 
-UnknownText_0x62ff7: ; 0x62ff7
+UnknownText_0x62ff7:
 	text "I'm the DAY-CARE"
 	line "MAN."
 
@@ -110,9 +101,8 @@
 	para "need it. You may"
 	line "as well have it."
 	done
-; 0x630ce
 
-UnknownText_0x630ce: ; 0x630ce
+UnknownText_0x630ce:
 	text "I'm the DAY-CARE"
 	line "MAN."
 
@@ -135,20 +125,17 @@
 	para "Then fine, this is"
 	line "yours to keep!"
 	done
-; 0x631a1
 
-UnknownText_0x631a1: ; 0x631a1
+UnknownText_0x631a1:
 	text "Come again."
 	done
-; 0x631ae
 
-UnknownText_0x631ae: ; 0x631ae
+UnknownText_0x631ae:
 	text "<PLAYER> received"
 	line "ODD EGG!"
 	done
-; 0x631c3
 
-UnknownText_0x631c3: ; 0x631c3
+UnknownText_0x631c3:
 	text "I found that when"
 	line "I was caring for"
 
@@ -161,19 +148,17 @@
 	para "EGG, so I'd kept"
 	line "it around."
 	done
-; 0x63237
 
-UnknownText_0x63237: ; 0x63237
+UnknownText_0x63237:
 	text "You've no room for"
 	line "this."
 	done
-; 0x63250
 
-DayCare_MapEventHeader: ; 0x63250
+DayCare_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -180,16 +165,15 @@
 	warp_def $7, $2, 5, GROUP_ROUTE_34, MAP_ROUTE_34
 	warp_def $7, $3, 5, GROUP_ROUTE_34, MAP_ROUTE_34
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 0, $0, DayCareBookshelf
-	signpost 1, 1, $0, DayCareBookshelf
+	signpost 1, 0, SIGNPOST_READ, DayCareBookshelf
+	signpost 1, 1, SIGNPOST_READ, DayCareBookshelf
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_GRAMPS, 7, 6, $9, $0, 255, 255, $0, 0, GrampsScript_0x62f8f, $06e5
-	person_event SPRITE_GRANNY, 7, 9, $8, $0, 255, 255, $80, 0, GrannyScript_0x62fc3, $ffff
-; 0x6328e
+	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
--- a/maps/DiglettsCave.asm
+++ b/maps/DiglettsCave.asm
@@ -1,22 +1,18 @@
-DiglettsCave_MapScriptHeader: ; 0x74000
-	; trigger count
+DiglettsCave_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x74002
 
-PokefanMScript_0x74002: ; 0x74002
+PokefanMScript_0x74002:
 	jumptextfaceplayer UnknownText_0x74008
-; 0x74005
 
-MapDiglettsCaveSignpostItem0: ; 0x74005
-	dw $00e4
-	db MAX_REVIVE
+MapDiglettsCaveSignpostItem0:
+	dwb EVENT_DIGLETTS_CAVE_HIDDEN_MAX_REVIVE, MAX_REVIVE
 	
-; 0x74008
 
-UnknownText_0x74008: ; 0x74008
+UnknownText_0x74008:
 	text "A bunch of DIGLETT"
 	line "popped out of the"
 
@@ -23,13 +19,12 @@
 	para "ground! That was"
 	line "shocking."
 	done
-; 0x74049
 
-DiglettsCave_MapEventHeader: ; 0x74049
+DiglettsCave_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -38,14 +33,13 @@
 	warp_def $21, $11, 2, GROUP_DIGLETTS_CAVE, MAP_DIGLETTS_CAVE
 	warp_def $3, $3, 4, GROUP_DIGLETTS_CAVE, MAP_DIGLETTS_CAVE
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 11, 6, $7, MapDiglettsCaveSignpostItem0
+	signpost 11, 6, SIGNPOST_ITEM, MapDiglettsCaveSignpostItem0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_POKEFAN_M, 35, 7, $6, $0, 255, 255, $0, 0, PokefanMScript_0x74002, $ffff
-; 0x7407f
+	person_event SPRITE_POKEFAN_M, 35, 7, OW_UP | $2, $0, -1, -1, $0, 0, PokefanMScript_0x74002, -1
--- a/maps/DragonShrine.asm
+++ b/maps/DragonShrine.asm
@@ -1,97 +1,93 @@
-DragonShrine_MapScriptHeader: ; 0x18d014
-	; trigger count
+DragonShrine_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
-	dw UnknownScript_0x18d01e, $0000
-	dw UnknownScript_0x18d022, $0000
+	dw .Trigger1, $0000
+	dw .Trigger2, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18d01e
 
-UnknownScript_0x18d01e: ; 0x18d01e
-	priorityjump UnknownScript_0x18d023
+.Trigger1:
+	priorityjump DragonShrineTestScript
 	end
-; 0x18d022
 
-UnknownScript_0x18d022: ; 0x18d022
+.Trigger2:
 	end
-; 0x18d023
 
-UnknownScript_0x18d023: ; 0x18d023
+DragonShrineTestScript:
 	applymovement $0, MovementData_0x18d2bf
 	applymovement $2, MovementData_0x18d2c7
 	loadfont
 	writetext UnknownText_0x18d2ea
 	keeptextopen
-UnknownScript_0x18d030: ; 0x18d030
-	setevent $0001
+.Question1:
+	setevent EVENT_RECEIVED_BALLS_FROM_KURT
 	writetext UnknownText_0x18d3bc
 	keeptextopen
 	loadmenudata MenuDataHeader_0x18d215
 	interpretmenu2
 	writebackup
-	if_equal $1, UnknownScript_0x18d0a9
-	if_equal $2, UnknownScript_0x18d0cb
-	if_equal $3, UnknownScript_0x18d0a9
+	if_equal $1, .RightAnswer
+	if_equal $2, .WrongAnswer
+	if_equal $3, .RightAnswer
 	end
-; 0x18d049
 
-UnknownScript_0x18d049: ; 0x18d049
-	setevent $0002
+.Question2:
+	setevent EVENT_DRAGON_SHRINE_QUESTION_2
 	writetext UnknownText_0x18d3d3
 	keeptextopen
 	loadmenudata MenuDataHeader_0x18d234
 	interpretmenu2
 	writebackup
-	if_equal $1, UnknownScript_0x18d0a9
-	if_equal $2, UnknownScript_0x18d0a9
-	if_equal $3, UnknownScript_0x18d0cb
-UnknownScript_0x18d061: ; 0x18d061
-	setevent $0003
+	if_equal $1, .RightAnswer
+	if_equal $2, .RightAnswer
+	if_equal $3, .WrongAnswer
+.Question3:
+	setevent EVENT_DRAGON_SHRINE_QUESTION_3
 	writetext UnknownText_0x18d3f3
 	keeptextopen
 	loadmenudata MenuDataHeader_0x18d258
 	interpretmenu2
 	writebackup
-	if_equal $1, UnknownScript_0x18d0cb
-	if_equal $2, UnknownScript_0x18d0a9
-	if_equal $3, UnknownScript_0x18d0a9
-UnknownScript_0x18d079: ; 0x18d079
-	setevent $0004
+	if_equal $1, .WrongAnswer
+	if_equal $2, .RightAnswer
+	if_equal $3, .RightAnswer
+.Question4:
+	setevent EVENT_DRAGON_SHRINE_QUESTION_4
 	writetext UnknownText_0x18d420
 	keeptextopen
 	loadmenudata MenuDataHeader_0x18d283
 	interpretmenu2
 	writebackup
-	if_equal $1, UnknownScript_0x18d0a9
-	if_equal $2, UnknownScript_0x18d0cb
-	if_equal $3, UnknownScript_0x18d0a9
-UnknownScript_0x18d091: ; 0x18d091
-	setevent $0005
+	if_equal $1, .RightAnswer
+	if_equal $2, .WrongAnswer
+	if_equal $3, .RightAnswer
+.Question5:
+	setevent EVENT_DRAGON_SHRINE_QUESTION_5
 	writetext UnknownText_0x18d44a
 	keeptextopen
 	loadmenudata MenuDataHeader_0x18d2a5
 	interpretmenu2
 	writebackup
-	if_equal $1, UnknownScript_0x18d0cb
-	if_equal $2, UnknownScript_0x18d0a9
-	if_equal $3, UnknownScript_0x18d0cb
-UnknownScript_0x18d0a9: ; 0x18d0a9
-	checkevent $0005
-	iftrue UnknownScript_0x18d100
+	if_equal $1, .WrongAnswer
+	if_equal $2, .RightAnswer
+	if_equal $3, .WrongAnswer
+.RightAnswer:
+	checkevent EVENT_DRAGON_SHRINE_QUESTION_5
+	iftrue .PassedTheTest
 	writetext UnknownText_0x18d82d
 	keeptextopen
-	checkevent $0004
-	iftrue UnknownScript_0x18d091
-	checkevent $0003
-	iftrue UnknownScript_0x18d079
-	checkevent $0002
-	iftrue UnknownScript_0x18d061
-	checkevent $0001
-	iftrue UnknownScript_0x18d049
-UnknownScript_0x18d0cb: ; 0x18d0cb
+	checkevent EVENT_DRAGON_SHRINE_QUESTION_4
+	iftrue .Question5
+	checkevent EVENT_DRAGON_SHRINE_QUESTION_3
+	iftrue .Question4
+	checkevent EVENT_DRAGON_SHRINE_QUESTION_2
+	iftrue .Question3
+	checkevent EVENT_RECEIVED_BALLS_FROM_KURT
+	iftrue .Question2
+.WrongAnswer:
 	loadmovesprites
 	spriteface $2, LEFT
 	loadfont
@@ -103,24 +99,24 @@
 	writetext UnknownText_0x18d816
 	closetext
 	loadmovesprites
-	setevent $00c1
+	setevent EVENT_ANSWERED_DRAGON_MASTER_QUIZ_WRONG
 	loadfont
-	checkevent $0005
-	iftrue UnknownScript_0x18d091
-	checkevent $0004
-	iftrue UnknownScript_0x18d079
-	checkevent $0003
-	iftrue UnknownScript_0x18d061
-	checkevent $0002
-	iftrue UnknownScript_0x18d049
-	checkevent $0001
-	iftrue UnknownScript_0x18d030
-UnknownScript_0x18d100: ; 0x18d100
+	checkevent EVENT_DRAGON_SHRINE_QUESTION_5
+	iftrue .Question5
+	checkevent EVENT_DRAGON_SHRINE_QUESTION_4
+	iftrue .Question4
+	checkevent EVENT_DRAGON_SHRINE_QUESTION_3
+	iftrue .Question3
+	checkevent EVENT_DRAGON_SHRINE_QUESTION_2
+	iftrue .Question2
+	checkevent EVENT_RECEIVED_BALLS_FROM_KURT
+	iftrue .Question1
+.PassedTheTest:
 	writetext UnknownText_0x18d47c
 	closetext
 	loadmovesprites
 	playsound SFX_ENTER_DOOR
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	playmusic MUSIC_CLAIR
 	appear $5
 	waitbutton
@@ -151,7 +147,7 @@
 	writetext UnknownText_0x18d520
 	closetext
 	loadmovesprites
-	showemote $0, $5, 15
+	showemote EMOTE_SHOCK, $5, 15
 	loadfont
 	writetext UnknownText_0x18d9ae
 	closetext
@@ -160,11 +156,11 @@
 	loadfont
 	writetext UnknownText_0x18d9bf
 	closetext
-	setflag $0022
+	setflag ENGINE_RISINGBADGE
 	playsound SFX_GET_BADGE
 	waitbutton
 	special RestartMapMusic
-	specialphonecall $8
+	specialphonecall ELMCALL_MASTERBALL
 	dotrigger $1
 	domaptrigger GROUP_DRAGONS_DEN_B1F, MAP_DRAGONS_DEN_B1F, $1
 	writetext UnknownText_0x18d9f2
@@ -188,75 +184,68 @@
 	playsound SFX_ENTER_DOOR
 	disappear $5
 	waitbutton
-	setevent $0000
+	setevent EVENT_GAVE_KURT_APRICORNS
 	end
-; 0x18d1a5
 
-ElderScript_0x18d1a5: ; 0x18d1a5
+ElderScript_0x18d1a5:
 	faceplayer
 	loadfont
-	checkevent $0000
-	iftrue UnknownScript_0x18d1f9
-	checkevent $0006
-	iftrue UnknownScript_0x18d1ff
-	checkevent $00bd
-	iffalse UnknownScript_0x18d1c5
+	checkevent EVENT_GAVE_KURT_APRICORNS
+	iftrue .DontGiveDratiniYet
+	checkevent EVENT_JUST_RECEIVED_DRATINI
+	iftrue .ReceivedDratini
+	checkevent EVENT_GOT_DRATINI
+	iffalse .GiveDratini
 	checkevent EVENT_BEAT_RIVAL_IN_MT_MOON
-	iftrue UnknownScript_0x18d1f3
+	iftrue .BeatRivalInMtMoon
 	writetext UnknownText_0x18d724
 	closetext
 	loadmovesprites
 	end
-; 0x18d1c5
 
-UnknownScript_0x18d1c5: ; 0x18d1c5
+.GiveDratini:
 	writetext UnknownText_0x18d604
 	closetext
-	checkcode $1
-	if_equal $6, UnknownScript_0x18d1ed
+	checkcode VAR_PARTYCOUNT
+	if_equal 6, .PartyFull
 	writetext UnknownText_0x18d697
 	playsound SFX_CAUGHT_MON
 	waitbutton
 	givepoke DRATINI, 15, 0, 0
-	checkevent $00c1
+	checkevent EVENT_ANSWERED_DRAGON_MASTER_QUIZ_WRONG
 	special SpecialDratini
-	setevent $00bd
-	setevent $0006
+	setevent EVENT_GOT_DRATINI
+	setevent EVENT_JUST_RECEIVED_DRATINI
 	writetext UnknownText_0x18d6ca
 	closetext
 	loadmovesprites
 	end
-; 0x18d1ed
 
-UnknownScript_0x18d1ed: ; 0x18d1ed
+.PartyFull:
 	writetext UnknownText_0x18d6ac
 	closetext
 	loadmovesprites
 	end
-; 0x18d1f3
 
-UnknownScript_0x18d1f3: ; 0x18d1f3
+.BeatRivalInMtMoon:
 	writetext UnknownText_0x18d782
 	closetext
 	loadmovesprites
 	end
-; 0x18d1f9
 
-UnknownScript_0x18d1f9: ; 0x18d1f9
+.DontGiveDratiniYet:
 	writetext UnknownText_0x18d5e5
 	closetext
 	loadmovesprites
 	end
-; 0x18d1ff
 
-UnknownScript_0x18d1ff: ; 0x18d1ff
+.ReceivedDratini:
 	writetext UnknownText_0x18d6ca
 	closetext
 	loadmovesprites
 	end
-; 0x18d205
 
-ElderScript_0x18d205: ; 0x18d205
+ElderScript_0x18d205:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x18d840
@@ -263,9 +252,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x18d20d
 
-ElderScript_0x18d20d: ; 0x18d20d
+ElderScript_0x18d20d:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x18d8b1
@@ -272,95 +260,84 @@
 	closetext
 	loadmovesprites
 	end
-; 0x18d215
 
 
-MenuDataHeader_0x18d215: ; 0x18d215
+MenuDataHeader_0x18d215:
 	db $40 ; flags
 	db 04, 08 ; start coords
 	db 11, 19 ; end coords
 	dw MenuData2_0x18d21d
 	db 1 ; default option
-; 0x18d21d
 
-MenuData2_0x18d21d: ; 0x18d21d
+MenuData2_0x18d21d:
 	db $81 ; flags
 	db 3 ; items
 	db "Pal@"
 	db "Underling@"
 	db "Friend@"
-; 0x18d234
 
 
-MenuDataHeader_0x18d234: ; 0x18d234
+MenuDataHeader_0x18d234:
 	db $40 ; flags
 	db 04, 09 ; start coords
 	db 11, 19 ; end coords
 	dw MenuData2_0x18d23c
 	db 1 ; default option
-; 0x18d23c
 
-MenuData2_0x18d23c: ; 0x18d23c
+MenuData2_0x18d23c:
 	db $81 ; flags
 	db 3 ; items
 	db "Strategy@"
 	db "Raising@"
 	db "Cheating@"
-; 0x18d258
 
 
-MenuDataHeader_0x18d258: ; 0x18d258
+MenuDataHeader_0x18d258:
 	db $40 ; flags
 	db 04, 05 ; start coords
 	db 11, 19 ; end coords
 	dw MenuData2_0x18d260
 	db 1 ; default option
-; 0x18d260
 
-MenuData2_0x18d260: ; 0x18d260
+MenuData2_0x18d260:
 	db $81 ; flags
 	db 3 ; items
 	db "Weak person@"
 	db "Tough person@"
 	db "Anybody@"
-; 0x18d283
 
 
-MenuDataHeader_0x18d283: ; 0x18d283
+MenuDataHeader_0x18d283:
 	db $40 ; flags
 	db 04, 08 ; start coords
 	db 11, 19 ; end coords
 	dw MenuData2_0x18d28b
 	db 1 ; default option
-; 0x18d28b
 
-MenuData2_0x18d28b: ; 0x18d28b
+MenuData2_0x18d28b:
 	db $81 ; flags
 	db 3 ; items
 	db "Love@"
 	db "Violence@"
 	db "Knowledge@"
-; 0x18d2a5
 
 
-MenuDataHeader_0x18d2a5: ; 0x18d2a5
+MenuDataHeader_0x18d2a5:
 	db $40 ; flags
 	db 04, 12 ; start coords
 	db 11, 19 ; end coords
 	dw MenuData2_0x18d2ad
 	db 1 ; default option
-; 0x18d2ad
 
-MenuData2_0x18d2ad: ; 0x18d2ad
+MenuData2_0x18d2ad:
 	db $81 ; flags
 	db 3 ; items
 	db "Tough@"
 	db "Both@"
 	db "Weak@"
-; 0x18d2bf
 
 
-MovementData_0x18d2bf: ; 0x18d2bf
+MovementData_0x18d2bf:
 	slow_step_up
 	slow_step_up
 	slow_step_up
@@ -369,34 +346,29 @@
 	slow_step_up
 	slow_step_up
 	step_end
-; 0x18d2c7
 
-MovementData_0x18d2c7: ; 0x18d2c7
+MovementData_0x18d2c7:
 	slow_step_down
 	step_end
-; 0x18d2c9
 
-MovementData_0x18d2c9: ; 0x18d2c9
+MovementData_0x18d2c9:
 	slow_step_left
 	slow_step_left
 	slow_step_left
 	turn_head_down
 	step_end
-; 0x18d2ce
 
-MovementData_0x18d2ce: ; 0x18d2ce
+MovementData_0x18d2ce:
 	slow_step_right
 	slow_step_right
 	step_end
-; 0x18d2d1
 
-MovementData_0x18d2d1: ; 0x18d2d1
+MovementData_0x18d2d1:
 	slow_step_right
 	turn_head_down
 	step_end
-; 0x18d2d4
 
-MovementData_0x18d2d4: ; 0x18d2d4
+MovementData_0x18d2d4:
 	slow_step_up
 	slow_step_up
 	slow_step_up
@@ -403,27 +375,23 @@
 	slow_step_up
 	slow_step_up
 	step_end
-; 0x18d2da
 
-MovementData_0x18d2da: ; 0x18d2da
+MovementData_0x18d2da:
 	fix_facing
 	big_step_left
 	step_end
-; 0x18d2dd
 
-MovementData_0x18d2dd: ; 0x18d2dd
+MovementData_0x18d2dd:
 	slow_step_left
 	remove_fixed_facing
 	step_end
-; 0x18d2e0
 
-MovementData_0x18d2e0: ; 0x18d2e0
+MovementData_0x18d2e0:
 	slow_step_right
 	slow_step_right
 	step_end
-; 0x18d2e3
 
-MovementData_0x18d2e3: ; 0x18d2e3
+MovementData_0x18d2e3:
 	step_down
 	step_down
 	step_down
@@ -431,9 +399,8 @@
 	step_down
 	step_down
 	step_end
-; 0x18d2ea
 
-UnknownText_0x18d2ea: ; 0x18d2ea
+UnknownText_0x18d2ea:
 	text "Hm… Good to see"
 	line "you here."
 
@@ -455,35 +422,30 @@
 
 	para "Ready?"
 	done
-; 0x18d3bc
 
-UnknownText_0x18d3bc: ; 0x18d3bc
+UnknownText_0x18d3bc:
 	text "What are #MON"
 	line "to you?"
 	done
-; 0x18d3d3
 
-UnknownText_0x18d3d3: ; 0x18d3d3
+UnknownText_0x18d3d3:
 	text "What helps you to"
 	line "win battles?"
 	done
-; 0x18d3f3
 
-UnknownText_0x18d3f3: ; 0x18d3f3
+UnknownText_0x18d3f3:
 	text "What kind of"
 	line "trainer do you"
 	cont "wish to battle?"
 	done
-; 0x18d420
 
-UnknownText_0x18d420: ; 0x18d420
+UnknownText_0x18d420:
 	text "What is most"
 	line "important for"
 	cont "raising #MON?"
 	done
-; 0x18d44a
 
-UnknownText_0x18d44a: ; 0x18d44a
+UnknownText_0x18d44a:
 	text "Strong #MON."
 	line "Weak #MON."
 
@@ -490,9 +452,8 @@
 	para "Which is more"
 	line "important?"
 	done
-; 0x18d47c
 
-UnknownText_0x18d47c: ; 0x18d47c
+UnknownText_0x18d47c:
 	text "Hm… I see…"
 
 	para "You care deeply"
@@ -510,9 +471,8 @@
 	line "through at the"
 	cont "#MON LEAGUE."
 	done
-; 0x18d520
 
-UnknownText_0x18d520: ; 0x18d520
+UnknownText_0x18d520:
 	text "CLAIR!"
 
 	para "This child is"
@@ -526,9 +486,8 @@
 	para "…Or must I inform"
 	line "LANCE of this?"
 	done
-; 0x18d5a3
 
-UnknownText_0x18d5a3: ; 0x18d5a3
+UnknownText_0x18d5a3:
 	text "CLAIR…"
 
 	para "Reflect upon what"
@@ -537,15 +496,13 @@
 	para "lack and this"
 	line "child has."
 	done
-; 0x18d5e5
 
-UnknownText_0x18d5e5: ; 0x18d5e5
+UnknownText_0x18d5e5:
 	text "Come again, if you"
 	line "so desire."
 	done
-; 0x18d604
 
-UnknownText_0x18d604: ; 0x18d604
+UnknownText_0x18d604:
 	text "Hm… Good to see"
 	line "you here."
 
@@ -561,21 +518,18 @@
 	para "have recognized"
 	line "your worth."
 	done
-; 0x18d697
 
-UnknownText_0x18d697: ; 0x18d697
+UnknownText_0x18d697:
 	text "<PLAYER> received"
 	line "DRATINI!"
 	done
-; 0x18d6ac
 
-UnknownText_0x18d6ac: ; 0x18d6ac
+UnknownText_0x18d6ac:
 	text "Hm? Your #MON"
 	line "party is full."
 	done
-; 0x18d6ca
 
-UnknownText_0x18d6ca: ; 0x18d6ca
+UnknownText_0x18d6ca:
 	text "Dragon #MON are"
 	line "symbolic of our"
 	cont "clan."
@@ -586,9 +540,8 @@
 	para "entrusted with"
 	line "one."
 	done
-; 0x18d724
 
-UnknownText_0x18d724: ; 0x18d724
+UnknownText_0x18d724:
 	text "CLAIR appears to"
 	line "have learned an"
 
@@ -598,9 +551,8 @@
 	para "I thank you as her"
 	line "grandfather."
 	done
-; 0x18d782
 
-UnknownText_0x18d782: ; 0x18d782
+UnknownText_0x18d782:
 	text "A boy close to"
 	line "your age is in"
 	cont "training here."
@@ -611,26 +563,22 @@
 	para "younger. It is a"
 	line "little worrisome…"
 	done
-; 0x18d7f6
 
-UnknownText_0x18d7f6: ; 0x18d7f6
+UnknownText_0x18d7f6:
 	text "Hah? I didn't"
 	line "quite catch that…"
 	done
-; 0x18d816
 
-UnknownText_0x18d816: ; 0x18d816
+UnknownText_0x18d816:
 	text "What was it you"
 	line "said?"
 	done
-; 0x18d82d
 
-UnknownText_0x18d82d: ; 0x18d82d
+UnknownText_0x18d82d:
 	text "Oh, I understand…"
 	done
-; 0x18d840
 
-UnknownText_0x18d840: ; 0x18d840
+UnknownText_0x18d840:
 	text "It's been quite"
 	line "some time since a"
 
@@ -641,9 +589,8 @@
 	para "In fact, not since"
 	line "Master LANCE."
 	done
-; 0x18d8b1
 
-UnknownText_0x18d8b1: ; 0x18d8b1
+UnknownText_0x18d8b1:
 	text "You know young"
 	line "Master LANCE?"
 
@@ -654,9 +601,8 @@
 	para "It's in their"
 	line "blood."
 	done
-; 0x18d916
 
-UnknownText_0x18d916: ; 0x18d916
+UnknownText_0x18d916:
 	text "So how did it go?"
 
 	para "I guess there's no"
@@ -668,41 +614,35 @@
 
 	para "…What? You passed?"
 	done
-; 0x18d974
 
-UnknownText_0x18d974: ; 0x18d974
+UnknownText_0x18d974:
 	text "That can't be!"
 	done
-; 0x18d983
 
-UnknownText_0x18d983: ; 0x18d983
+UnknownText_0x18d983:
 	text "You're lying!"
 
 	para "Even I haven't"
 	line "been approved!"
 	done
-; 0x18d9ae
 
-UnknownText_0x18d9ae: ; 0x18d9ae
+UnknownText_0x18d9ae:
 	text "I-I understand…"
 	done
-; 0x18d9bf
 
-UnknownText_0x18d9bf: ; 0x18d9bf
+UnknownText_0x18d9bf:
 	text "Here, this is the"
 	line "RISINGBADGE…"
 
 	para "Hurry up! Take it!"
 	done
-; 0x18d9f2
 
-UnknownText_0x18d9f2: ; 0x18d9f2
+UnknownText_0x18d9f2:
 	text "<PLAYER> received"
 	line "RISINGBADGE."
 	done
-; 0x18da0b
 
-UnknownText_0x18da0b: ; 0x18da0b
+UnknownText_0x18da0b:
 	text "RISINGBADGE will"
 	line "enable your"
 
@@ -719,32 +659,29 @@
 	para "command without"
 	line "question."
 	done
-; 0x18dab4
 
-UnknownText_0x18dab4: ; 0x18dab4
+UnknownText_0x18dab4:
 	text $56, $56, $56, $56, $56, $56
 	done
-; 0x18dabc
 
-DragonShrine_MapEventHeader: ; 0x18dabc
+DragonShrine_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_ELDER, 5, 9, $6, $0, 255, 255, $0, 0, ElderScript_0x18d1a5, $0000
-	person_event SPRITE_ELDER, 8, 6, $9, $0, 255, 255, $0, 0, ElderScript_0x18d205, $0000
-	person_event SPRITE_ELDER, 8, 11, $8, $0, 255, 255, $0, 0, ElderScript_0x18d20d, $0000
-	person_event SPRITE_CLAIR, 12, 8, $7, $0, 255, 255, $90, 0, ObjectEvent, $0790
-; 0x18db00
+	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
--- a/maps/DragonsDen1F.asm
+++ b/maps/DragonsDen1F.asm
@@ -1,16 +1,15 @@
-DragonsDen1F_MapScriptHeader: ; 0x18c874
-	; trigger count
+DragonsDen1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18c876
 
-DragonsDen1F_MapEventHeader: ; 0x18c876
+DragonsDen1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -17,12 +16,11 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x18c890
--- a/maps/DragonsDenB1F.asm
+++ b/maps/DragonsDenB1F.asm
@@ -1,5 +1,5 @@
-DragonsDenB1F_MapScriptHeader: ; 0x18c890
-	; trigger count
+DragonsDenB1F_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,49 +6,43 @@
 	dw UnknownScript_0x18c89d, $0000
 	dw UnknownScript_0x18c89e, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 5, UnknownScript_0x18c89f
-; 0x18c89d
 
-UnknownScript_0x18c89d: ; 0x18c89d
+UnknownScript_0x18c89d:
 	end
-; 0x18c89e
 
-UnknownScript_0x18c89e: ; 0x18c89e
+UnknownScript_0x18c89e:
 	end
-; 0x18c89f
 
-UnknownScript_0x18c89f: ; 0x18c89f
+UnknownScript_0x18c89f:
 	checkevent EVENT_BEAT_RIVAL_IN_MT_MOON
 	iftrue UnknownScript_0x18c8a8
 	disappear $4
 	return
-; 0x18c8a8
 
-UnknownScript_0x18c8a8: ; 0x18c8a8
-	checkcode $b
+UnknownScript_0x18c8a8:
+	checkcode VAR_WEEKDAY
 	if_equal TUESDAY, UnknownScript_0x18c8b5
 	if_equal THURSDAY, UnknownScript_0x18c8b5
 	disappear $4
 	return
-; 0x18c8b5
 
-UnknownScript_0x18c8b5: ; 0x18c8b5
+UnknownScript_0x18c8b5:
 	appear $4
 	return
-; 0x18c8b8
 
-UnknownScript_0x18c8b8: ; 0x18c8b8
+UnknownScript_0x18c8b8:
 	appear $3
 	loadfont
 	writetext UnknownText_0x18c9b8
 	pause 30
 	loadmovesprites
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	spriteface $0, LEFT
 	playmusic MUSIC_CLAIR
 	applymovement $3, MovementData_0x18c9ae
@@ -55,9 +49,9 @@
 	loadfont
 	writetext UnknownText_0x18c9bf
 	keeptextopen
-	giveitem TM_24, $1
+	giveitem TM_DRAGONBREATH, $1
 	iffalse UnknownScript_0x18c8f4
-	itemtotext TM_24, $0
+	itemtotext TM_DRAGONBREATH, $0
 	writetext UnknownText_0x18c9fb
 	playsound SFX_ITEM
 	waitbutton
@@ -69,13 +63,12 @@
 	closetext
 	loadmovesprites
 	jump UnknownScript_0x18c8f9
-; 0x18c8f4
 
-UnknownScript_0x18c8f4: ; 0x18c8f4
+UnknownScript_0x18c8f4:
 	writetext UnknownText_0x18ca8b
 	closetext
 	loadmovesprites
-UnknownScript_0x18c8f9: ; 0x18c8f9
+UnknownScript_0x18c8f9:
 	applymovement $3, MovementData_0x18c9b3
 	special Functionc48f
 	pause 30
@@ -83,29 +76,11 @@
 	disappear $3
 	dotrigger $0
 	end
-; 0x18c90a
 
-TrainerCooltrainermDarin: ; 0x18c90a
-	; bit/flag number
-	dw $5bd
+TrainerCooltrainermDarin:
+	trainer EVENT_BEAT_COOLTRAINERM_DARIN, COOLTRAINERM, DARIN, CooltrainermDarinSeenText, CooltrainermDarinBeatenText, $0000, CooltrainermDarinScript
 
-	; trainer group && trainer id
-	db COOLTRAINERM, DARIN
-
-	; text when seen
-	dw CooltrainermDarinSeenText
-
-	; text when trainer beaten
-	dw CooltrainermDarinBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainermDarinScript
-; 0x18c916
-
-CooltrainermDarinScript: ; 0x18c916
+CooltrainermDarinScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x18cd82
@@ -112,29 +87,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x18c91e
 
-TrainerCooltrainerfCara: ; 0x18c91e
-	; bit/flag number
-	dw $5be
+TrainerCooltrainerfCara:
+	trainer EVENT_BEAT_COOLTRAINERF_CARA, COOLTRAINERF, CARA, CooltrainerfCaraSeenText, CooltrainerfCaraBeatenText, $0000, CooltrainerfCaraScript
 
-	; trainer group && trainer id
-	db COOLTRAINERF, CARA
-
-	; text when seen
-	dw CooltrainerfCaraSeenText
-
-	; text when trainer beaten
-	dw CooltrainerfCaraBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainerfCaraScript
-; 0x18c92a
-
-CooltrainerfCaraScript: ; 0x18c92a
+CooltrainerfCaraScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x18ce11
@@ -141,29 +98,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x18c932
 
-TrainerTwinsLeaandpia1: ; 0x18c932
-	; bit/flag number
-	dw $5bf
+TrainerTwinsLeaandpia1:
+	trainer EVENT_BEAT_TWINS_LEA_AND_PIA, TWINS, LEAANDPIA1, TwinsLeaandpia1SeenText, TwinsLeaandpia1BeatenText, $0000, TwinsLeaandpia1Script
 
-	; trainer group && trainer id
-	db TWINS, LEAANDPIA1
-
-	; text when seen
-	dw TwinsLeaandpia1SeenText
-
-	; text when trainer beaten
-	dw TwinsLeaandpia1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw TwinsLeaandpia1Script
-; 0x18c93e
-
-TwinsLeaandpia1Script: ; 0x18c93e
+TwinsLeaandpia1Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x18ced3
@@ -170,29 +109,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x18c946
 
-TrainerTwinsLeaandpia2: ; 0x18c946
-	; bit/flag number
-	dw $5bf
+TrainerTwinsLeaandpia2:
+	trainer EVENT_BEAT_TWINS_LEA_AND_PIA, TWINS, LEAANDPIA1, TwinsLeaandpia2SeenText, TwinsLeaandpia2BeatenText, $0000, TwinsLeaandpia2Script
 
-	; trainer group && trainer id
-	db TWINS, LEAANDPIA1
-
-	; text when seen
-	dw TwinsLeaandpia2SeenText
-
-	; text when trainer beaten
-	dw TwinsLeaandpia2BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw TwinsLeaandpia2Script
-; 0x18c952
-
-TwinsLeaandpia2Script: ; 0x18c952
+TwinsLeaandpia2Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x18cf0f
@@ -199,9 +120,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x18c95a
 
-PokeBallScript_0x18c95a: ; 0x18c95a
+PokeBallScript_0x18c95a:
 	giveitem DRAGON_FANG, $1
 	iffalse UnknownScript_0x18c970
 	disappear $2
@@ -213,9 +133,8 @@
 	itemnotify
 	loadmovesprites
 	end
-; 0x18c970
 
-UnknownScript_0x18c970: ; 0x18c970
+UnknownScript_0x18c970:
 	loadfont
 	itemtotext DRAGON_FANG, $0
 	writetext UnknownText_0x18cf41
@@ -224,79 +143,64 @@
 	closetext
 	loadmovesprites
 	end
-; 0x18c97e
 
-SilverScript_0x18c97e: ; 0x18c97e
+SilverScript_0x18c97e:
 	playmusic MUSIC_RIVAL_ENCOUNTER
 	faceplayer
 	loadfont
-	checkevent $0000
+	checkevent EVENT_GAVE_KURT_APRICORNS
 	iftrue UnknownScript_0x18c995
 	writetext UnknownText_0x18cc83
 	closetext
 	loadmovesprites
-	setevent $0000
+	setevent EVENT_GAVE_KURT_APRICORNS
 	special RestartMapMusic
 	end
-; 0x18c995
 
-UnknownScript_0x18c995: ; 0x18c995
+UnknownScript_0x18c995:
 	writetext UnknownText_0x18cd2d
 	closetext
 	loadmovesprites
 	special RestartMapMusic
 	end
-; 0x18c99e
 
-MapDragonsDenB1FSignpost0Script: ; 0x18c99e
+MapDragonsDenB1FSignpost0Script:
 	jumptext UnknownText_0x18cc2e
-; 0x18c9a1
 
-ItemFragment_0x18c9a1: ; 0x18c9a1
+ItemFragment_0x18c9a1:
 	db CALCIUM, 1
-; 0x18c9a3
 
-ItemFragment_0x18c9a3: ; 0x18c9a3
+ItemFragment_0x18c9a3:
 	db MAX_ELIXER, 1
-; 0x18c9a5
 
-MapDragonsDenB1FSignpostItem1: ; 0x18c9a5
-	dw $00a0
-	db REVIVE
-; 0x18c9a8
+MapDragonsDenB1FSignpostItem1:
+	dwb EVENT_DRAGONS_DEN_B1F_HIDDEN_REVIVE, REVIVE
 
-MapDragonsDenB1FSignpostItem2: ; 0x18c9a8
-	dw $00a1
-	db MAX_POTION
-; 0x18c9ab
+MapDragonsDenB1FSignpostItem2:
+	dwb EVENT_DRAGONS_DEN_B1F_HIDDEN_MAX_POTION, MAX_POTION
 
-MapDragonsDenB1FSignpostItem3: ; 0x18c9ab
-	dw $00a2
-	db MAX_ELIXER
-; 0x18c9ae
+MapDragonsDenB1FSignpostItem3:
+	dwb EVENT_DRAGONS_DEN_B1F_HIDDEN_MAX_ELIXER, MAX_ELIXER
 
-MovementData_0x18c9ae: ; 0x18c9ae
+MovementData_0x18c9ae:
 	slow_step_right
 	slow_step_right
 	slow_step_right
 	slow_step_right
 	step_end
-; 0x18c9b3
 
-MovementData_0x18c9b3: ; 0x18c9b3
+MovementData_0x18c9b3:
 	slow_step_left
 	slow_step_left
 	slow_step_left
 	slow_step_left
 	step_end
-; 0x18c9b8
 
-UnknownText_0x18c9b8: ; 0x18c9b8
+UnknownText_0x18c9b8:
 	text "Wait!"
 	done
-; 0x18c9bf
 
-UnknownText_0x18c9bf: ; 0x18c9bf
+UnknownText_0x18c9bf:
 	text "CLAIR: I'm sorry"
 	line "about this."
 
@@ -303,15 +207,13 @@
 	para "Here, take this as"
 	line "my apology."
 	done
-; 0x18c9fb
 
-UnknownText_0x18c9fb: ; 0x18c9fb
+UnknownText_0x18c9fb:
 	text "<PLAYER> received"
 	line "TM24."
 	done
-; 0x18ca0d
 
-UnknownText_0x18ca0d: ; 0x18ca0d
+UnknownText_0x18ca0d:
 	text "That contains"
 	line "DRAGONBREATH."
 
@@ -323,9 +225,8 @@
 	line "it, you don't have"
 	cont "to take it."
 	done
-; 0x18ca8b
 
-UnknownText_0x18ca8b: ; 0x18ca8b
+UnknownText_0x18ca8b:
 	text "Oh? You don't have"
 	line "any room for this."
 
@@ -335,9 +236,8 @@
 	para "room, then come"
 	line "see me there."
 	done
-; 0x18caf1
 
-UnknownText_0x18caf1: ; 0x18caf1
+UnknownText_0x18caf1:
 	text "CLAIR: What's the"
 	line "matter? Aren't you"
 
@@ -369,9 +269,8 @@
 	para "Give it everything"
 	line "you've got."
 	done
-; 0x18cc2e
 
-UnknownText_0x18cc2e: ; 0x18cc2e
+UnknownText_0x18cc2e:
 	text "DRAGON SHRINE"
 
 	para "A shrine honoring"
@@ -380,9 +279,8 @@
 	para "said to have lived"
 	line "in DRAGON'S DEN."
 	done
-; 0x18cc83
 
-UnknownText_0x18cc83: ; 0x18cc83
+UnknownText_0x18cc83:
 	text "…"
 	line "What? <PLAYER>?"
 
@@ -401,9 +299,8 @@
 	para "the greatest #-"
 	line "MON trainer…"
 	done
-; 0x18cd2d
 
-UnknownText_0x18cd2d: ; 0x18cd2d
+UnknownText_0x18cd2d:
 	text "…"
 
 	para "Whew…"
@@ -411,20 +308,17 @@
 	para "Learn to stay out"
 	line "of my way…"
 	done
-; 0x18cd53
 
-CooltrainermDarinSeenText: ; 0x18cd53
+CooltrainermDarinSeenText:
 	text "You! How dare you"
 	line "enter uninvited!"
 	done
-; 0x18cd77
 
-CooltrainermDarinBeatenText: ; 0x18cd77
+CooltrainermDarinBeatenText:
 	text "S-strong!"
 	done
-; 0x18cd82
 
-UnknownText_0x18cd82: ; 0x18cd82
+UnknownText_0x18cd82:
 	text "The SHRINE ahead"
 	line "is home to the"
 
@@ -434,20 +328,17 @@
 	para "You're not allowed"
 	line "to just go in!"
 	done
-; 0x18cde4
 
-CooltrainerfCaraSeenText: ; 0x18cde4
+CooltrainerfCaraSeenText:
 	text "You shouldn't be"
 	line "in here!"
 	done
-; 0x18cdfe
 
-CooltrainerfCaraBeatenText: ; 0x18cdfe
+CooltrainerfCaraBeatenText:
 	text "Oh yikes, I lost!"
 	done
-; 0x18ce11
 
-UnknownText_0x18ce11: ; 0x18ce11
+UnknownText_0x18ce11:
 	text "Soon I'm going to"
 	line "get permission"
 
@@ -463,87 +354,77 @@
 	para "our MASTER's"
 	line "approval."
 	done
-; 0x18ceab
 
-TwinsLeaandpia1SeenText: ; 0x18ceab
+TwinsLeaandpia1SeenText:
 	text "It's a stranger we"
 	line "don't know."
 	done
-; 0x18cec9
 
-TwinsLeaandpia1BeatenText: ; 0x18cec9
+TwinsLeaandpia1BeatenText:
 	text "Ouchies."
 	done
-; 0x18ced3
 
-UnknownText_0x18ced3: ; 0x18ced3
+UnknownText_0x18ced3:
 	text "It was like having"
 	line "to battle LANCE."
 	done
-; 0x18cef8
 
-TwinsLeaandpia2SeenText: ; 0x18cef8
+TwinsLeaandpia2SeenText:
 	text "Who are you?"
 	done
-; 0x18cf06
 
-TwinsLeaandpia2BeatenText: ; 0x18cf06
+TwinsLeaandpia2BeatenText:
 	text "Meanie."
 	done
-; 0x18cf0f
 
-UnknownText_0x18cf0f: ; 0x18cf0f
+UnknownText_0x18cf0f:
 	text "We'll tell on you."
 
 	para "MASTER will be"
 	line "angry with you."
 	done
-; 0x18cf41
 
-UnknownText_0x18cf41: ; 0x18cf41
+UnknownText_0x18cf41:
 	text "<PLAYER> found"
 	line "@"
 	text_from_ram StringBuffer3
 	text "!"
 	done
-; 0x18cf51
 
-UnknownText_0x18cf51: ; 0x18cf51
+UnknownText_0x18cf51:
 	text "But <PLAYER> can't"
 	line "carry any more"
 	cont "items."
 	done
-; 0x18cf73
 
-DragonsDenB1F_MapEventHeader: ; 0x18cf73
+DragonsDenB1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 1
 	xy_trigger 1, $1e, $13, $0, UnknownScript_0x18c8b8, $0, $0
 
-	; signposts
+.Signposts:
 	db 4
-	signpost 24, 18, $0, MapDragonsDenB1FSignpost0Script
-	signpost 29, 33, $7, MapDragonsDenB1FSignpostItem1
-	signpost 17, 21, $7, MapDragonsDenB1FSignpostItem2
-	signpost 15, 31, $7, MapDragonsDenB1FSignpostItem3
+	signpost 24, 18, SIGNPOST_READ, MapDragonsDenB1FSignpost0Script
+	signpost 29, 33, SIGNPOST_ITEM, MapDragonsDenB1FSignpostItem1
+	signpost 17, 21, SIGNPOST_ITEM, MapDragonsDenB1FSignpostItem2
+	signpost 15, 31, SIGNPOST_ITEM, MapDragonsDenB1FSignpostItem3
 
-	; people-events
+.PersonEvents:
 	db 9
-	person_event SPRITE_POKE_BALL, 20, 39, $1, $0, 255, 255, $0, 0, PokeBallScript_0x18c95a, $06a8
-	person_event SPRITE_CLAIR, 34, 18, $7, $0, 255, 255, $90, 0, ObjectEvent, $06d8
-	person_event SPRITE_SILVER, 27, 24, $2, $22, 255, 255, $0, 0, SilverScript_0x18c97e, $06c6
-	person_event SPRITE_COOLTRAINER_M, 12, 24, $7, $0, 255, 255, $82, 4, TrainerCooltrainermDarin, $ffff
-	person_event SPRITE_COOLTRAINER_F, 12, 12, $6, $0, 255, 255, $82, 3, TrainerCooltrainerfCara, $ffff
-	person_event SPRITE_TWIN, 21, 8, $9, $0, 255, 255, $82, 1, TrainerTwinsLeaandpia1, $ffff
-	person_event SPRITE_TWIN, 22, 8, $9, $0, 255, 255, $82, 1, TrainerTwinsLeaandpia2, $ffff
-	person_event SPRITE_POKE_BALL, 8, 34, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c9a1, $07bf
-	person_event SPRITE_POKE_BALL, 24, 9, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c9a3, $07c0
-; 0x18d014
+	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
--- a/maps/EarlsPokemonAcademy.asm
+++ b/maps/EarlsPokemonAcademy.asm
@@ -1,8 +1,8 @@
-EarlsPokemonAcademy_MapScriptHeader: ; 0x68a5a
-	; trigger count
+EarlsPokemonAcademy_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 AcademyEarl:
@@ -30,11 +30,10 @@
 	loadmovesprites
 	end
 
-YoungsterScript_0x68a83: ; 0x68a83
+YoungsterScript_0x68a83:
 	jumptextfaceplayer UnknownText_0x68d80
-; 0x68a86
 
-GameboyKidScript_0x68a86: ; 0x68a86
+GameboyKidScript_0x68a86:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x68dda
@@ -42,9 +41,8 @@
 	loadmovesprites
 	spriteface $4, DOWN
 	end
-; 0x68a91
 
-GameboyKidScript_0x68a91: ; 0x68a91
+GameboyKidScript_0x68a91:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x68e07
@@ -52,11 +50,9 @@
 	loadmovesprites
 	spriteface $5, DOWN
 	end
-; 0x68a9c
 
-YoungsterScript_0x68a9c: ; 0x68a9c
+YoungsterScript_0x68a9c:
 	jumptextfaceplayer UnknownText_0x68e39
-; 0x68a9f
 
 AcademyBlackboard:
 	loadfont
@@ -144,7 +140,7 @@
 AcademyBookshelf:
 	jumpstd difficultbookshelf
 
-MovementData_0x68b2d: ; 0x68b2d
+MovementData_0x68b2d:
 	turn_head_down
 	turn_head_left
 	turn_head_up
@@ -159,9 +155,8 @@
 	turn_head_right
 	turn_head_down
 	step_end
-; 0x68b3b
 
-UnknownText_0x68b3b: ; 0x68b3b
+UnknownText_0x68b3b:
 	text "EARL, I am!"
 
 	para "Wonderful are"
@@ -175,9 +170,8 @@
 	line "know? Want to be"
 	cont "a winner is you?"
 	done
-; 0x68bbd
 
-UnknownText_0x68bbd: ; 0x68bbd
+UnknownText_0x68bbd:
 	text "Good! Teach you,"
 	line "I will!"
 
@@ -192,16 +186,14 @@
 	para "More from me you"
 	line "want to hear?"
 	done
-; 0x68c51
 
-UnknownText_0x68c51: ; 0x68c51
+UnknownText_0x68c51:
 	text "So, want to know"
 	line "how to raise"
 	cont "#MON well?"
 	done
-; 0x68c7b
 
-UnknownText_0x68c7b: ; 0x68c7b
+UnknownText_0x68c7b:
 	text "Fine! Teach you,"
 	line "I will!"
 
@@ -221,9 +213,8 @@
 	line "#MON strong"
 	cont "become!"
 	done
-; 0x68d31
 
-UnknownText_0x68d31: ; 0x68d31
+UnknownText_0x68d31:
 	text "Oh! Smart student"
 	line "you are! Nothing"
 	cont "more do I teach!"
@@ -231,9 +222,8 @@
 	para "Good to #MON"
 	line "you must be!"
 	done
-; 0x68d80
 
-UnknownText_0x68d80: ; 0x68d80
+UnknownText_0x68d80:
 	text "I'm taking notes"
 	line "of the teacher's"
 	cont "lecture."
@@ -242,23 +232,20 @@
 	line "the stuff on the"
 	cont "blackboard too."
 	done
-; 0x68dda
 
-UnknownText_0x68dda: ; 0x68dda
+UnknownText_0x68dda:
 	text "I traded my best"
 	line "#MON to the"
 	cont "guy beside me."
 	done
-; 0x68e07
 
-UnknownText_0x68e07: ; 0x68e07
+UnknownText_0x68e07:
 	text "Huh? The #MON I"
 	line "just got is hold-"
 	cont "ing something!"
 	done
-; 0x68e39
 
-UnknownText_0x68e39: ; 0x68e39
+UnknownText_0x68e39:
 	text "A #MON holding"
 	line "a BERRY will heal"
 	cont "itself in battle."
@@ -270,7 +257,6 @@
 	para "It sure is tough"
 	line "taking notes…"
 	done
-; 0x68eb2
 
 AcademyBlackboardText:
 	text "The blackboard"
@@ -418,31 +404,30 @@
 	para "stickers!"
 	done
 
-EarlsPokemonAcademy_MapEventHeader: ; 0x69375
+EarlsPokemonAcademy_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 4
-	signpost 1, 0, $0, AcademyBookshelf
-	signpost 1, 1, $0, AcademyBookshelf
-	signpost 0, 3, $0, AcademyBlackboard
-	signpost 0, 4, $0, AcademyBlackboard
+	signpost 1, 0, SIGNPOST_READ, AcademyBookshelf
+	signpost 1, 1, SIGNPOST_READ, AcademyBookshelf
+	signpost 0, 3, SIGNPOST_READ, AcademyBlackboard
+	signpost 0, 4, SIGNPOST_READ, AcademyBlackboard
 
-	; people-events
+.PersonEvents:
 	db 6
-	person_event SPRITE_FISHER, 6, 8, $6, $0, 255, 255, $a0, 0, AcademyEarl, $06cb
-	person_event SPRITE_YOUNGSTER, 9, 6, $7, $0, 255, 255, $80, 0, YoungsterScript_0x68a83, $ffff
-	person_event SPRITE_GAMEBOY_KID, 15, 7, $6, $0, 255, 255, $0, 0, GameboyKidScript_0x68a86, $ffff
-	person_event SPRITE_GAMEBOY_KID, 15, 8, $8, $0, 255, 255, $80, 0, GameboyKidScript_0x68a91, $ffff
-	person_event SPRITE_YOUNGSTER, 11, 8, $7, $0, 255, 255, $0, 0, YoungsterScript_0x68a9c, $ffff
-	person_event SPRITE_POKEDEX, 8, 6, $1, $0, 255, 255, $0, 0, AcademyNotebook, $ffff
-; 0x693e7
+	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
--- a/maps/EcruteakCity.asm
+++ b/maps/EcruteakCity.asm
@@ -1,8 +1,8 @@
 EcruteakCity_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -81,8 +81,7 @@
 	jumpstd martsign
 
 MapEcruteakCitySignpostItem7:
-	dw $00b4
-	db HYPER_POTION
+	dwb EVENT_ECRUTEAK_CITY_HIDDEN_HYPER_POTION, HYPER_POTION
 
 UnusedMissingDaughterText:
 ; This text is neither used nor referenced in the final game.
@@ -257,7 +256,7 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -275,26 +274,26 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 8
-	signpost 21, 15, $0, EcruteakCitySign
-	signpost 10, 38, $0, TinTowerSign
-	signpost 28, 8, $0, EcruteakGymSign
-	signpost 21, 21, $0, EcruteakDanceTheaterSign
-	signpost 10, 2, $0, BurnedTowerSign
-	signpost 27, 24, $0, EcruteakCityPokeCenterSign
-	signpost 21, 30, $0, EcruteakCityMartSign
-	signpost 14, 23, $7, MapEcruteakCitySignpostItem7
+	signpost 21, 15, SIGNPOST_READ, EcruteakCitySign
+	signpost 10, 38, SIGNPOST_READ, TinTowerSign
+	signpost 28, 8, SIGNPOST_READ, EcruteakGymSign
+	signpost 21, 21, SIGNPOST_READ, EcruteakDanceTheaterSign
+	signpost 10, 2, SIGNPOST_READ, BurnedTowerSign
+	signpost 27, 24, SIGNPOST_READ, EcruteakCityPokeCenterSign
+	signpost 21, 30, SIGNPOST_READ, EcruteakCityMartSign
+	signpost 14, 23, SIGNPOST_ITEM, MapEcruteakCitySignpostItem7
 
-	; people-events
+.PersonEvents:
 	db 7
-	person_event SPRITE_GRAMPS, 19, 22, $2, $11, 255, 255, $0, 0, GrampsScript_0x1a4009, $ffff
-	person_event SPRITE_GRAMPS, 25, 24, $3, $0, 255, 255, $0, 0, GrampsScript_0x1a400c, $ffff
-	person_event SPRITE_LASS, 33, 25, $5, $2, 255, 255, $90, 0, LassScript_0x1a4012, $ffff
-	person_event SPRITE_LASS, 13, 7, $7, $0, 255, 255, $0, 0, LassScript_0x1a4015, $ffff
-	person_event SPRITE_FISHER, 26, 13, $5, $1, 255, 255, $a0, 0, FisherScript_0x1a4029, $ffff
-	person_event SPRITE_YOUNGSTER, 18, 14, $2, $11, 255, 255, $80, 0, YoungsterScript_0x1a403d, $ffff
-	person_event SPRITE_GRAMPS, 11, 7, $2, $11, 255, 255, $a0, 0, GrampsScript_0x1a400f, $07a9
+	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
--- a/maps/EcruteakGym.asm
+++ b/maps/EcruteakGym.asm
@@ -1,5 +1,5 @@
-EcruteakGym_MapScriptHeader: ; 0x99d49
-	; trigger count
+EcruteakGym_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,24 +6,21 @@
 	dw UnknownScript_0x99d53, $0000
 	dw UnknownScript_0x99d57, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x99d53
 
-UnknownScript_0x99d53: ; 0x99d53
+UnknownScript_0x99d53:
 	priorityjump UnknownScript_0x99dc6
 	end
-; 0x99d57
 
-UnknownScript_0x99d57: ; 0x99d57
+UnknownScript_0x99d57:
 	end
-; 0x99d58
 
-MortyScript_0x99d58: ; 0x99d58
+MortyScript_0x99d58:
 	faceplayer
 	loadfont
 	checkevent EVENT_BEAT_MORTY
-	iftrue UnknownScript_0x99d8c
+	iftrue .FightDone
 	writetext UnknownText_0x99e65
 	closetext
 	loadmovesprites
@@ -36,13 +33,13 @@
 	writetext UnknownText_0x9a043
 	playsound SFX_GET_BADGE
 	waitbutton
-	setflag $001e
-	checkcode $7
-	scall UnknownScript_0x99db7
+	setflag ENGINE_FOGBADGE
+	checkcode VAR_BADGES
+	scall EcruteakGymTriggerRockets
 	domaptrigger GROUP_ECRUTEAK_HOUSE, MAP_ECRUTEAK_HOUSE, $1
-	setevent $0766
-	setevent $0767
-UnknownScript_0x99d8c: ; 0x99d8c	
+	setevent EVENT_RANG_CLEAR_BELL_1
+	setevent EVENT_RANG_CLEAR_BELL_2
+.FightDone
 	checkevent EVENT_GOT_TM30_SHADOW_BALL
 	iftrue UnknownScript_0x99db1
 	setevent EVENT_BEAT_SAGE_JEFFREY
@@ -51,7 +48,7 @@
 	setevent EVENT_BEAT_MEDIUM_GRACE
 	writetext UnknownText_0x9a059
 	keeptextopen
-	verbosegiveitem TM_30, 1
+	verbosegiveitem TM_SHADOW_BALL, 1
 	iffalse UnknownScript_0x99db5
 	setevent EVENT_GOT_TM30_SHADOW_BALL
 	writetext UnknownText_0x9a0ec
@@ -58,31 +55,26 @@
 	closetext
 	loadmovesprites
 	end
-; 0x99db1
 
-UnknownScript_0x99db1: ; 0x99db1
+UnknownScript_0x99db1:
 	writetext UnknownText_0x9a145
 	closetext
-UnknownScript_0x99db5: ; 0x99db5
+UnknownScript_0x99db5:
 	loadmovesprites
 	end
-; 0x99db7
 
-UnknownScript_0x99db7: ; 0x99db7
-	if_equal $7, UnknownScript_0x99dc3
-	if_equal $6, UnknownScript_0x99dc0
+EcruteakGymTriggerRockets:
+	if_equal 7, .RadioTowerRockets
+	if_equal 6, .GoldenrodRockets
 	end
-; 0x99dc0
 
-UnknownScript_0x99dc0: ; 0x99dc0
+.GoldenrodRockets
 	jumpstd goldenrodrockets
-; 0x99dc3
 
-UnknownScript_0x99dc3: ; 0x99dc3
+.RadioTowerRockets
 	jumpstd radiotowerrockets
-; 0x99dc6
 
-UnknownScript_0x99dc6: ; 0x99dc6
+UnknownScript_0x99dc6:
 	applymovement $0, MovementData_0x99e5d
 	applymovement $8, MovementData_0x99e63
 	loadfont
@@ -92,34 +84,16 @@
 	follow $0, $8
 	applymovement $0, MovementData_0x99e5f
 	stopfollow
-	special Function8c084
+	special FadeBlackBGMap
 	playsound SFX_ENTER_DOOR
 	waitbutton
 	warp GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY, $6, $1b
 	end
-; 0x99de9
 
-TrainerSageJeffrey: ; 0x99de9
-	; bit/flag number
-	dw $415
+TrainerSageJeffrey:
+	trainer EVENT_BEAT_SAGE_JEFFREY, SAGE, JEFFREY, SageJeffreySeenText, SageJeffreyBeatenText, $0000, SageJeffreyScript
 
-	; trainer group && trainer id
-	db SAGE, JEFFREY
-
-	; text when seen
-	dw SageJeffreySeenText
-
-	; text when trainer beaten
-	dw SageJeffreyBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SageJeffreyScript
-; 0x99df5
-
-SageJeffreyScript: ; 0x99df5
+SageJeffreyScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x9a263
@@ -126,29 +100,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x99dfd
 
-TrainerSagePing: ; 0x99dfd
-	; bit/flag number
-	dw $416
+TrainerSagePing:
+	trainer EVENT_BEAT_SAGE_PING, SAGE, PING, SagePingSeenText, SagePingBeatenText, $0000, SagePingScript
 
-	; trainer group && trainer id
-	db SAGE, PING
-
-	; text when seen
-	dw SagePingSeenText
-
-	; text when trainer beaten
-	dw SagePingBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SagePingScript
-; 0x99e09
-
-SagePingScript: ; 0x99e09
+SagePingScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x9a2b7
@@ -155,29 +111,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x99e11
 
-TrainerMediumMartha: ; 0x99e11
-	; bit/flag number
-	dw $58b
+TrainerMediumMartha:
+	trainer EVENT_BEAT_MEDIUM_MARTHA, MEDIUM, MARTHA, MediumMarthaSeenText, MediumMarthaBeatenText, $0000, MediumMarthaScript
 
-	; trainer group && trainer id
-	db MEDIUM, MARTHA
-
-	; text when seen
-	dw MediumMarthaSeenText
-
-	; text when trainer beaten
-	dw MediumMarthaBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw MediumMarthaScript
-; 0x99e1d
-
-MediumMarthaScript: ; 0x99e1d
+MediumMarthaScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x9a318
@@ -184,29 +122,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x99e25
 
-TrainerMediumGrace: ; 0x99e25
-	; bit/flag number
-	dw $58c
+TrainerMediumGrace:
+	trainer EVENT_BEAT_MEDIUM_GRACE, MEDIUM, GRACE, MediumGraceSeenText, MediumGraceBeatenText, $0000, MediumGraceScript
 
-	; trainer group && trainer id
-	db MEDIUM, GRACE
-
-	; text when seen
-	dw MediumGraceSeenText
-
-	; text when trainer beaten
-	dw MediumGraceBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw MediumGraceScript
-; 0x99e31
-
-MediumGraceScript: ; 0x99e31
+MediumGraceScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x9a38a
@@ -213,9 +133,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x99e39
 
-EcruteakGymGuyScript: ; 0x99e39
+EcruteakGymGuyScript:
 	faceplayer
 	loadfont
 	checkevent EVENT_BEAT_MORTY
@@ -230,7 +149,6 @@
 	closetext
 	loadmovesprites
 	end
-; 0x99e4d
 
 EcruteakGymStatue:
 	checkflag ENGINE_FOGBADGE
@@ -240,24 +158,21 @@
 	trainertotext MORTY, 1, $1
 	jumpstd gymstatue2
 
-MovementData_0x99e5d: ; 0x99e5d
+MovementData_0x99e5d:
 	step_up
 	step_end
-; 0x99e5f
 
-MovementData_0x99e5f: ; 0x99e5f
+MovementData_0x99e5f:
 	fix_facing
 	slow_step_down
 	remove_fixed_facing
 	step_end
-; 0x99e63
 
-MovementData_0x99e63: ; 0x99e63
+MovementData_0x99e63:
 	slow_step_down
 	step_end
-; 0x99e65
 
-UnknownText_0x99e65: ; 0x99e65
+UnknownText_0x99e65:
 	text "Good of you to"
 	line "have come."
 
@@ -297,9 +212,8 @@
 	line "help me reach that"
 	cont "level!"
 	done
-; 0x9a00a
 
-UnknownText_0x9a00a: ; 0x9a00a
+UnknownText_0x9a00a:
 	text "I'm not good"
 	line "enough yet…"
 
@@ -306,15 +220,13 @@
 	para "All right. This"
 	line "BADGE is yours."
 	done
-; 0x9a043
 
-UnknownText_0x9a043: ; 0x9a043
+UnknownText_0x9a043:
 	text "<PLAYER> received"
 	line "FOGBADGE."
 	done
-; 0x9a059
 
-UnknownText_0x9a059: ; 0x9a059
+UnknownText_0x9a059:
 	text "By having FOG-"
 	line "BADGE, #MON up"
 
@@ -330,9 +242,8 @@
 	para "I want you to have"
 	line "this too."
 	done
-; 0x9a0ec
 
-UnknownText_0x9a0ec: ; 0x9a0ec
+UnknownText_0x9a0ec:
 	text "It's SHADOW BALL."
 	line "It causes damage"
 
@@ -342,9 +253,8 @@
 	para "Use it if it"
 	line "appeals to you."
 	done
-; 0x9a145
 
-UnknownText_0x9a145: ; 0x9a145
+UnknownText_0x9a145:
 	text "I see…"
 
 	para "Your journey has"
@@ -358,9 +268,8 @@
 	para "I envy you for"
 	line "that…"
 	done
-; 0x9a1bd
 
-SageJeffreySeenText: ; 0x9a1bd
+SageJeffreySeenText:
 	text "I spent the spring"
 	line "with my #MON."
 
@@ -373,33 +282,28 @@
 	para "lived together"
 	line "for a long time."
 	done
-; 0x9a23d
 
-SageJeffreyBeatenText: ; 0x9a23d
+SageJeffreyBeatenText:
 	text "Wins and losses, I"
 	line "experienced both."
 	done
-; 0x9a263
 
-UnknownText_0x9a263: ; 0x9a263
+UnknownText_0x9a263:
 	text "Where did #MON"
 	line "come from?"
 	done
-; 0x9a27e
 
-SagePingSeenText: ; 0x9a27e
+SagePingSeenText:
 	text "Can you inflict"
 	line "any damage on our"
 	cont "#MON?"
 	done
-; 0x9a2a7
 
-SagePingBeatenText: ; 0x9a2a7
+SagePingBeatenText:
 	text "Ah! Well done!"
 	done
-; 0x9a2b7
 
-UnknownText_0x9a2b7: ; 0x9a2b7
+UnknownText_0x9a2b7:
 	text "We use only ghost-"
 	line "type #MON."
 
@@ -407,25 +311,21 @@
 	line "attack can harm"
 	cont "them!"
 	done
-; 0x9a2fb
 
-MediumMarthaSeenText: ; 0x9a2fb
+MediumMarthaSeenText:
 	text "I shall win!"
 	done
-; 0x9a309
 
-MediumMarthaBeatenText: ; 0x9a309
+MediumMarthaBeatenText:
 	text "I, I, I lost!"
 	done
-; 0x9a318
 
-UnknownText_0x9a318: ; 0x9a318
+UnknownText_0x9a318:
 	text "The one who wants"
 	line "to win most--will!"
 	done
-; 0x9a33e
 
-MediumGraceSeenText: ; 0x9a33e
+MediumGraceSeenText:
 	text "Stumped by our in-"
 	line "visible floor?"
 
@@ -432,14 +332,12 @@
 	para "Defeat me if you"
 	line "want a hint!"
 	done
-; 0x9a37f
 
-MediumGraceBeatenText: ; 0x9a37f
+MediumGraceBeatenText:
 	text "Wha-what?"
 	done
-; 0x9a38a
 
-UnknownText_0x9a38a: ; 0x9a38a
+UnknownText_0x9a38a:
 	text "Fine. I shall tell"
 	line "you the secret of"
 
@@ -449,9 +347,8 @@
 	para "The path is right"
 	line "before our eyes!"
 	done
-; 0x9a3e8
 
-EcruteakGymGuyText: ; 0x9a3e8
+EcruteakGymGuyText:
 	text "The trainers here"
 	line "have secret mo-"
 	cont "tives."
@@ -462,9 +359,8 @@
 	para "deep secrets about"
 	line "ECRUTEAK."
 	done
-; 0x9a452
 
-EcruteakGymGuyWinText: ; 0x9a452
+EcruteakGymGuyWinText:
 	text "Whew, <PLAYER>."
 	line "You did great!"
 
@@ -472,9 +368,8 @@
 	line "the corner out of"
 	cont "pure terror!"
 	done
-; 0x9a49c
 
-UnknownText_0x9a49c: ; 0x9a49c
+UnknownText_0x9a49c:
 	text "MORTY, the GYM"
 	line "LEADER, is absent."
 
@@ -483,13 +378,12 @@
 
 	para "Hohohoho."
 	done
-; 0x9a4e9
 
-EcruteakGym_MapEventHeader: ; 0x9a4e9
+EcruteakGym_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -525,21 +419,20 @@
 	warp_def $c, $7, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
 	warp_def $d, $7, 3, GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 15, 3, $0, EcruteakGymStatue
-	signpost 15, 6, $0, EcruteakGymStatue
+	signpost 15, 3, SIGNPOST_READ, EcruteakGymStatue
+	signpost 15, 6, SIGNPOST_READ, EcruteakGymStatue
 
-	; people-events
+.PersonEvents:
 	db 7
-	person_event SPRITE_MORTY, 5, 9, $6, $0, 255, 255, $b0, 0, MortyScript_0x99d58, $ffff
-	person_event SPRITE_SAGE, 11, 6, $9, $0, 255, 255, $92, 1, TrainerSageJeffrey, $ffff
-	person_event SPRITE_SAGE, 17, 7, $9, $0, 255, 255, $92, 3, TrainerSagePing, $ffff
-	person_event SPRITE_GRANNY, 9, 11, $8, $0, 255, 255, $b2, 1, TrainerMediumMartha, $ffff
-	person_event SPRITE_GRANNY, 13, 11, $8, $0, 255, 255, $b2, 1, TrainerMediumGrace, $ffff
-	person_event SPRITE_GYM_GUY, 19, 11, $6, $0, 255, 255, $80, 0, EcruteakGymGuyScript, $ffff
-	person_event SPRITE_GRAMPS, 18, 8, $6, $0, 255, 255, $a0, 0, ObjectEvent, $07a8
-; 0x9a5f9
+	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
--- a/maps/EcruteakHouse.asm
+++ b/maps/EcruteakHouse.asm
@@ -1,56 +1,50 @@
-EcruteakHouse_MapScriptHeader: ; 0x98000
-	; trigger count
+EcruteakHouse_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
-	dw UnknownScript_0x9800d, $0000
-	dw UnknownScript_0x9800e, $0000
+	dw .Trigger1, $0000
+	dw .Trigger2, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
-	dbw 2, UnknownScript_0x9800f
-; 0x9800d
+	dbw 2, .InitializeSages
 
-UnknownScript_0x9800d: ; 0x9800d
+.Trigger1:
 	end
-; 0x9800e
 
-UnknownScript_0x9800e: ; 0x9800e
+.Trigger2:
 	end
-; 0x9800f
 
-UnknownScript_0x9800f: ; 0x9800f
+.InitializeSages:
 	checkevent EVENT_FOUGHT_SUICUNE
-	iftrue UnknownScript_0x98033
+	iftrue .DontBlockTower
 	checkevent EVENT_KOJI_ALLOWS_YOU_PASSAGE_TO_TIN_TOWER
-	iftrue UnknownScript_0x98033
+	iftrue .DontBlockTower
 	checkevent EVENT_CLEARED_RADIO_TOWER
-	iftrue UnknownScript_0x98022
+	iftrue .BlockTower
 	return
-; 0x98022
 
-UnknownScript_0x98022: ; 0x98022
-	clearevent $0766
-	setevent $0767
-	setevent $07b1
+.BlockTower:
+	clearevent EVENT_RANG_CLEAR_BELL_1
+	setevent EVENT_RANG_CLEAR_BELL_2
+	setevent EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE
 	checkitem CLEAR_BELL
-	iftrue UnknownScript_0x98032
+	iftrue .NoClearBell
 	dotrigger $0
-UnknownScript_0x98032: ; 0x98032
+.NoClearBell:
 	return
-; 0x98033
 
-UnknownScript_0x98033: ; 0x98033
-	clearevent $07b1
+.DontBlockTower:
+	clearevent EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE
 	return
-; 0x98037
 
-UnknownScript_0x98037: ; 0x98037
-	checkevent $0767
-	iftrue UnknownScript_0x98061
+EcruteakHouse_XYTrigger1:
+	checkevent EVENT_RANG_CLEAR_BELL_2
+	iftrue EcruteakHouse_XYTrigger_DontMove
 	applymovement $3, MovementData_0x980c7
 	moveperson $2, $4, $6
 	appear $2
@@ -57,11 +51,10 @@
 	pause 5
 	disappear $3
 	end
-; 0x9804c
 
-UnknownScript_0x9804c: ; 0x9804c
-	checkevent $0766
-	iftrue UnknownScript_0x98061
+EcruteakHouse_XYTrigger2:
+	checkevent EVENT_RANG_CLEAR_BELL_1
+	iftrue EcruteakHouse_XYTrigger_DontMove
 	applymovement $2, MovementData_0x980cc
 	moveperson $3, $5, $6
 	appear $3
@@ -68,109 +61,96 @@
 	pause 5
 	disappear $2
 	end
-; 0x98061
 
-UnknownScript_0x98061: ; 0x98061
+EcruteakHouse_XYTrigger_DontMove:
 	end
-; 0x98062
 
-SageScript_0x98062: ; 0x98062
+SageScript_0x98062:
 	faceplayer
 	loadfont
 	checkevent EVENT_CLEARED_RADIO_TOWER
-	iftrue UnknownScript_0x9807c
-	checkflag $001e
-	iftrue UnknownScript_0x98076
+	iftrue .CheckForClearBell
+	checkflag ENGINE_FOGBADGE
+	iftrue .BlockPassage_GotFogBadge
 	writetext UnknownText_0x980d1
 	closetext
 	loadmovesprites
 	end
-; 0x98076
 
-UnknownScript_0x98076: ; 0x98076
+.BlockPassage_GotFogBadge:
 	writetext UnknownText_0x98131
 	closetext
 	loadmovesprites
 	end
-; 0x9807c
 
-UnknownScript_0x9807c: ; 0x9807c
+.CheckForClearBell:
 	checkevent EVENT_KOJI_ALLOWS_YOU_PASSAGE_TO_TIN_TOWER
-	iftrue UnknownScript_0x980a4
-	checkevent $0000
-	iftrue UnknownScript_0x980aa
+	iftrue .AllowedThrough
+	checkevent EVENT_GAVE_KURT_APRICORNS
+	iftrue .Event000
 	checkitem CLEAR_BELL
-	iftrue UnknownScript_0x98093
+	iftrue .RingClearBell
 	writetext UnknownText_0x981a4
 	closetext
 	loadmovesprites
 	end
-; 0x98093
 
-UnknownScript_0x98093: ; 0x98093
+.RingClearBell:
 	writetext UnknownText_0x98250
 	closetext
 	loadmovesprites
 	dotrigger $1
-	setevent $0767
-	clearevent $0766
-	setevent $0000
+	setevent EVENT_RANG_CLEAR_BELL_2
+	clearevent EVENT_RANG_CLEAR_BELL_1
+	setevent EVENT_GAVE_KURT_APRICORNS
 	end
-; 0x980a4
 
-UnknownScript_0x980a4: ; 0x980a4
+.AllowedThrough:
 	writetext UnknownText_0x9837e
 	closetext
 	loadmovesprites
 	end
-; 0x980aa
 
-UnknownScript_0x980aa: ; 0x980aa
+.Event000:
 	writetext UnknownText_0x98391
 	closetext
 	loadmovesprites
 	end
-; 0x980b0
 
-SageScript_0x980b0: ; 0x980b0
+SageScript_0x980b0:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_CLEAR_BELL
-	iftrue UnknownScript_0x980be
+	iftrue .GotClearBell
 	writetext UnknownText_0x9840b
 	closetext
 	loadmovesprites
 	end
-; 0x980be
 
-UnknownScript_0x980be: ; 0x980be
+.GotClearBell:
 	writetext UnknownText_0x9846f
 	closetext
 	loadmovesprites
 	end
-; 0x980c4
 
-GrampsScript_0x980c4: ; 0x980c4
+GrampsScript_0x980c4:
 	jumptextfaceplayer UnknownText_0x984ab
-; 0x980c7
 
-MovementData_0x980c7: ; 0x980c7
+MovementData_0x980c7:
 	fix_facing
 	big_step_left
 	remove_fixed_facing
 	turn_head_down
 	step_end
-; 0x980cc
 
-MovementData_0x980cc: ; 0x980cc
+MovementData_0x980cc:
 	fix_facing
 	big_step_right
 	remove_fixed_facing
 	turn_head_down
 	step_end
-; 0x980d1
 
-UnknownText_0x980d1: ; 0x980d1
+UnknownText_0x980d1:
 	text "TIN TOWER is off"
 	line "limits to anyone"
 
@@ -180,9 +160,8 @@
 	para "Sorry, but you'll"
 	line "have to leave."
 	done
-; 0x98131
 
-UnknownText_0x98131: ; 0x98131
+UnknownText_0x98131:
 	text "TIN TOWER is off"
 	line "limits to anyone"
 
@@ -195,9 +174,8 @@
 	line "BADGE! Please, go"
 	cont "right through."
 	done
-; 0x981a4
 
-UnknownText_0x981a4: ; 0x981a4
+UnknownText_0x981a4:
 	text "A momentous event"
 	line "has occurred."
 
@@ -214,9 +192,8 @@
 	para "very difficult to"
 	line "understand…"
 	done
-; 0x98250
 
-UnknownText_0x98250: ; 0x98250
+UnknownText_0x98250:
 	text "A momentous event"
 	line "has occurred."
 
@@ -249,14 +226,12 @@
 
 	para "Please, do go on."
 	done
-; 0x9837e
 
-UnknownText_0x9837e: ; 0x9837e
+UnknownText_0x9837e:
 	text "Please, do go on."
 	done
-; 0x98391
 
-UnknownText_0x98391: ; 0x98391
+UnknownText_0x98391:
 	text "That bell's chime"
 	line "is indicative of"
 	cont "the bearer's soul."
@@ -269,9 +244,8 @@
 
 	para "Please, do go on."
 	done
-; 0x9840b
 
-UnknownText_0x9840b: ; 0x9840b
+UnknownText_0x9840b:
 	text "The TIN TOWER"
 	line "ahead is a nine-"
 
@@ -282,9 +256,8 @@
 	line "soul of all who"
 	cont "see it."
 	done
-; 0x9846f
 
-UnknownText_0x9846f: ; 0x9846f
+UnknownText_0x9846f:
 	text "The TIN TOWER"
 	line "shook! A #MON"
 
@@ -291,9 +264,8 @@
 	para "must have returned"
 	line "to the top!"
 	done
-; 0x984ab
 
-UnknownText_0x984ab: ; 0x984ab
+UnknownText_0x984ab:
 	text "Two towers…"
 	line "Two #MON…"
 
@@ -303,13 +275,12 @@
 	para "#MON flew away,"
 	line "never to return."
 	done
-; 0x98502
 
-EcruteakHouse_MapEventHeader: ; 0x98502
+EcruteakHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -317,18 +288,17 @@
 	warp_def $f, $11, 3, GROUP_ECRUTEAK_HOUSE, MAP_ECRUTEAK_HOUSE
 	warp_def $3, $11, 3, GROUP_WISE_TRIOS_ROOM, MAP_WISE_TRIOS_ROOM
 
-	; xy triggers
+.XYTriggers:
 	db 2
-	xy_trigger 0, $7, $4, $0, UnknownScript_0x98037, $0, $0
-	xy_trigger 0, $7, $5, $0, UnknownScript_0x9804c, $0, $0
+	xy_trigger 0, $7, $4, $0, EcruteakHouse_XYTrigger1, $0, $0
+	xy_trigger 0, $7, $5, $0, EcruteakHouse_XYTrigger2, $0, $0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_SAGE, 10, 8, $6, $0, 255, 255, $0, 0, SageScript_0x98062, $0766
-	person_event SPRITE_SAGE, 10, 9, $6, $0, 255, 255, $0, 0, SageScript_0x98062, $0767
-	person_event SPRITE_SAGE, 13, 10, $2, $11, 255, 255, $0, 0, SageScript_0x980b0, $07b1
-	person_event SPRITE_GRAMPS, 15, 7, $2, $11, 255, 255, $0, 0, GrampsScript_0x980c4, $07b1
-; 0x98565
+	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
--- a/maps/EcruteakItemfinderHouse.asm
+++ b/maps/EcruteakItemfinderHouse.asm
@@ -1,12 +1,11 @@
-EcruteakItemfinderHouse_MapScriptHeader: ; 0x9a5f9
-	; trigger count
+EcruteakItemfinderHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9a5fb
 
-CooltrainerMScript_0x9a5fb: ; 0x9a5fb
+CooltrainerMScript_0x9a5fb:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_ITEMFINDER
@@ -18,21 +17,19 @@
 	keeptextopen
 	verbosegiveitem ITEMFINDER, 1
 	setevent EVENT_GOT_ITEMFINDER
-UnknownScript_0x9a614: ; 0x9a614
+UnknownScript_0x9a614:
 	writetext UnknownText_0x9a70e
 	closetext
 	loadmovesprites
 	end
-; 0x9a61a
 
-UnknownScript_0x9a61a: ; 0x9a61a
+UnknownScript_0x9a61a:
 	writetext UnknownText_0x9a805
 	closetext
 	loadmovesprites
 	end
-; 0x9a620
 
-PokedexScript_0x9a620: ; 0x9a620
+PokedexScript_0x9a620:
 	loadfont
 	writetext UnknownText_0x9a826
 	yesorno
@@ -39,27 +36,24 @@
 	iftrue UnknownScript_0x9a62a
 	loadmovesprites
 	end
-; 0x9a62a
 
-UnknownScript_0x9a62a: ; 0x9a62a
+UnknownScript_0x9a62a:
 	writetext UnknownText_0x9a84c
 	yesorno
 	iftrue UnknownScript_0x9a633
 	loadmovesprites
 	end
-; 0x9a633
 
-UnknownScript_0x9a633: ; 0x9a633
+UnknownScript_0x9a633:
 	writetext UnknownText_0x9a902
 	closetext
 	loadmovesprites
 	end
-; 0x9a639
 
 ItemFinderHouseRadio:
 	jumpstd radio2
 
-UnknownText_0x9a63c: ; 0x9a63c
+UnknownText_0x9a63c:
 	text "Ah. You're on an"
 	line "adventure with"
 	cont "your #MON?"
@@ -71,9 +65,8 @@
 	para "Am I right, or am"
 	line "I right?"
 	done
-; 0x9a6b5
 
-UnknownText_0x9a6b5: ; 0x9a6b5
+UnknownText_0x9a6b5:
 	text "Good! You under-"
 	line "stand the true"
 
@@ -83,9 +76,8 @@
 	para "I like that! Take"
 	line "this with you."
 	done
-; 0x9a70e
 
-UnknownText_0x9a70e: ; 0x9a70e
+UnknownText_0x9a70e:
 	text "There are many"
 	line "items lying about"
 
@@ -110,23 +102,20 @@
 	para "in ECRUTEAK's"
 	line "BURNED TOWER."
 	done
-; 0x9a805
 
-UnknownText_0x9a805: ; 0x9a805
+UnknownText_0x9a805:
 	text "Oh… To each his"
 	line "own, I suppose…"
 	done
-; 0x9a826
 
-UnknownText_0x9a826: ; 0x9a826
+UnknownText_0x9a826:
 	text "HISTORY OF"
 	line "ECRUTEAK"
 
 	para "Want to read it?"
 	done
-; 0x9a84c
 
-UnknownText_0x9a84c: ; 0x9a84c
+UnknownText_0x9a84c:
 	text "In ECRUTEAK, there"
 	line "were two towers."
 
@@ -144,9 +133,8 @@
 
 	para "Keep reading?"
 	done
-; 0x9a902
 
-UnknownText_0x9a902: ; 0x9a902
+UnknownText_0x9a902:
 	text "ECRUTEAK was also"
 	line "home to three"
 
@@ -169,26 +157,24 @@
 	para "wind off into the"
 	line "grassland."
 	done
-; 0x9a9f5
 
-EcruteakItemfinderHouse_MapEventHeader: ; 0x9a9f5
+EcruteakItemfinderHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 1, 2, $0, ItemFinderHouseRadio
+	signpost 1, 2, SIGNPOST_READ, ItemFinderHouseRadio
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_COOLTRAINER_M, 7, 6, $6, $0, 255, 255, $80, 0, CooltrainerMScript_0x9a5fb, $ffff
-	person_event SPRITE_POKEDEX, 7, 7, $1, $0, 255, 255, $0, 0, PokedexScript_0x9a620, $ffff
-; 0x9aa24
+	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
--- a/maps/EcruteakLugiaSpeechHouse.asm
+++ b/maps/EcruteakLugiaSpeechHouse.asm
@@ -1,23 +1,20 @@
-EcruteakLugiaSpeechHouse_MapScriptHeader: ; 0x99332
-	; trigger count
+EcruteakLugiaSpeechHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x99334
 
-GrampsScript_0x99334: ; 0x99334
+GrampsScript_0x99334:
 	jumptextfaceplayer UnknownText_0x9933d
-; 0x99337
 
-YoungsterScript_0x99337: ; 0x99337
+YoungsterScript_0x99337:
 	jumptextfaceplayer UnknownText_0x993ec
-; 0x9933a
 
 LugiaSpeechHouseRadio:
 	jumpstd radio2
 
-UnknownText_0x9933d: ; 0x9933d
+UnknownText_0x9933d:
 	text "This happened when"
 	line "I was young."
 
@@ -34,9 +31,8 @@
 	para "It was like a bird"
 	line "and a dragon."
 	done
-; 0x993ec
 
-UnknownText_0x993ec: ; 0x993ec
+UnknownText_0x993ec:
 	text "Is there really a"
 	line "#MON that big?"
 
@@ -43,26 +39,24 @@
 	para "If it exists, it"
 	line "must be powerful."
 	done
-; 0x99431
 
-EcruteakLugiaSpeechHouse_MapEventHeader: ; 0x99431
+EcruteakLugiaSpeechHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 1, 2, $0, LugiaSpeechHouseRadio
+	signpost 1, 2, SIGNPOST_READ, LugiaSpeechHouseRadio
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_GRAMPS, 7, 6, $3, $0, 255, 255, $0, 0, GrampsScript_0x99334, $ffff
-	person_event SPRITE_YOUNGSTER, 8, 9, $8, $0, 255, 255, $0, 0, YoungsterScript_0x99337, $ffff
-; 0x99460
+	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
--- a/maps/EcruteakMart.asm
+++ b/maps/EcruteakMart.asm
@@ -1,27 +1,23 @@
-EcruteakMart_MapScriptHeader: ; 0x99c39
-	; trigger count
+EcruteakMart_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x99c3b
 
-ClerkScript_0x99c3b: ; 0x99c3b
+ClerkScript_0x99c3b:
 	loadfont
 	pokemart $0, $000e
 	loadmovesprites
 	end
-; 0x99c42
 
-SuperNerdScript_0x99c42: ; 0x99c42
+SuperNerdScript_0x99c42:
 	jumptextfaceplayer UnknownText_0x99c48
-; 0x99c45
 
-GrannyScript_0x99c45: ; 0x99c45
+GrannyScript_0x99c45:
 	jumptextfaceplayer UnknownText_0x99cd5
-; 0x99c48
 
-UnknownText_0x99c48: ; 0x99c48
+UnknownText_0x99c48:
 	text "My EEVEE evolved"
 	line "into an ESPEON."
 
@@ -35,9 +31,8 @@
 	para "our EEVEE in the"
 	line "same way…"
 	done
-; 0x99cd5
 
-UnknownText_0x99cd5: ; 0x99cd5
+UnknownText_0x99cd5:
 	text "If you use REVIVE,"
 	line "a #MON that's"
 
@@ -44,26 +39,24 @@
 	para "fainted will wake"
 	line "right up."
 	done
-; 0x99d12
 
-EcruteakMart_MapEventHeader: ; 0x99d12
+EcruteakMart_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 7, 5, $9, $0, 255, 255, $0, 0, ClerkScript_0x99c3b, $ffff
-	person_event SPRITE_SUPER_NERD, 6, 9, $5, $1, 255, 255, $a0, 0, SuperNerdScript_0x99c42, $ffff
-	person_event SPRITE_GRANNY, 10, 10, $7, $0, 255, 255, $0, 0, GrannyScript_0x99c45, $ffff
-; 0x99d49
+	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
--- a/maps/EcruteakPokeCenter1F.asm
+++ b/maps/EcruteakPokeCenter1F.asm
@@ -1,5 +1,5 @@
-EcruteakPokeCenter1F_MapScriptHeader: ; 0x98e55
-	; trigger count
+EcruteakPokeCenter1F_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,20 +6,17 @@
 	dw UnknownScript_0x98e5f, $0000
 	dw UnknownScript_0x98e63, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x98e5f
 
-UnknownScript_0x98e5f: ; 0x98e5f
+UnknownScript_0x98e5f:
 	priorityjump UnknownScript_0x98e64
 	end
-; 0x98e63
 
-UnknownScript_0x98e63: ; 0x98e63
+UnknownScript_0x98e63:
 	end
-; 0x98e64
 
-UnknownScript_0x98e64: ; 0x98e64
+UnknownScript_0x98e64:
 	pause 30
 	playsound SFX_EXIT_BUILDING
 	appear $6
@@ -40,9 +37,8 @@
 	writetext UnknownText_0x98ed8
 	keeptextopen
 	jump UnknownScript_0x98e95
-; 0x98e95
 
-UnknownScript_0x98e95: ; 0x98e95
+UnknownScript_0x98e95:
 	writetext UnknownText_0x98f22
 	closetext
 	loadmovesprites
@@ -50,36 +46,30 @@
 	applymovement $6, MovementData_0x98ece
 	playsound SFX_EXIT_BUILDING
 	disappear $6
-	clearevent $0712
-	setflag $0053
+	clearevent EVENT_MET_BILL
+	setflag ENGINE_TIME_CAPSULE
 	dotrigger $1
 	waitbutton
 	end
-; 0x98eb0
 
-NurseScript_0x98eb0: ; 0x98eb0
+NurseScript_0x98eb0:
 	jumpstd pokecenternurse
-; 0x98eb3
 
-PokefanMScript_0x98eb3: ; 0x98eb3
+PokefanMScript_0x98eb3:
 	special Function10630f
 	iftrue UnknownScript_0x98ebc
 	jumptextfaceplayer UnknownText_0x99155
-; 0x98ebc
 
-UnknownScript_0x98ebc: ; 0x98ebc
+UnknownScript_0x98ebc:
 	jumptextfaceplayer UnknownText_0x991aa
-; 0x98ebf
 
-CooltrainerFScript_0x98ebf: ; 0x98ebf
+CooltrainerFScript_0x98ebf:
 	jumptextfaceplayer UnknownText_0x99240
-; 0x98ec2
 
-GymGuyScript_0x98ec2: ; 0x98ec2
+GymGuyScript_0x98ec2:
 	jumptextfaceplayer UnknownText_0x99286
-; 0x98ec5
 
-MovementData_0x98ec5: ; 0x98ec5
+MovementData_0x98ec5:
 	step_up
 	step_up
 	step_up
@@ -89,9 +79,8 @@
 	step_right
 	turn_head_up
 	step_end
-; 0x98ece
 
-MovementData_0x98ece: ; 0x98ece
+MovementData_0x98ece:
 	step_right
 	step_down
 	step_down
@@ -98,16 +87,14 @@
 	step_down
 	step_down
 	step_end
-; 0x98ed4
 
-MovementData_0x98ed4: ; 0x98ed4
+MovementData_0x98ed4:
 	step_up
 	step_up
 	step_up
 	step_end
-; 0x98ed8
 
-UnknownText_0x98ed8: ; 0x98ed8
+UnknownText_0x98ed8:
 	text "Hi, I'm BILL. And"
 	line "who are you?"
 
@@ -115,9 +102,8 @@
 	line "You've come at the"
 	cont "right time."
 	done
-; 0x98f22
 
-UnknownText_0x98f22: ; 0x98f22
+UnknownText_0x98f22:
 	text "I just finished"
 	line "adjustments on my"
 	cont "TIME CAPSULE."
@@ -170,9 +156,8 @@
 
 	para "Buh-bye!"
 	done
-; 0x99155
 
-UnknownText_0x99155: ; 0x99155
+UnknownText_0x99155:
 	text "The way the KIMONO"
 	line "GIRLS dance is"
 
@@ -180,9 +165,8 @@
 	line "like the way they"
 	cont "use their #MON."
 	done
-; 0x991aa
 
-UnknownText_0x991aa: ; 0x991aa
+UnknownText_0x991aa:
 	text "You must be hoping"
 	line "to battle more"
 
@@ -197,9 +181,8 @@
 	para "It's a little past"
 	line "OLIVINE CITY."
 	done
-; 0x99240
 
-UnknownText_0x99240: ; 0x99240
+UnknownText_0x99240:
 	text "MORTY, the GYM"
 	line "LEADER, is soooo"
 	cont "cool."
@@ -207,9 +190,8 @@
 	para "His #MON are"
 	line "really tough too."
 	done
-; 0x99286
 
-UnknownText_0x99286: ; 0x99286
+UnknownText_0x99286:
 	text "LAKE OF RAGE…"
 
 	para "The appearance of"
@@ -218,29 +200,27 @@
 	para "I smell a conspir-"
 	line "acy. I know it!"
 	done
-; 0x992dc
 
-EcruteakPokeCenter1F_MapEventHeader: ; 0x992dc
+EcruteakPokeCenter1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 5
-	person_event SPRITE_NURSE, 5, 7, $6, $0, 255, 255, $0, 0, NurseScript_0x98eb0, $ffff
-	person_event SPRITE_POKEFAN_M, 10, 11, $a, $0, 255, 255, $0, 0, PokefanMScript_0x98eb3, $ffff
-	person_event SPRITE_COOLTRAINER_F, 8, 5, $3, $0, 255, 255, $0, 0, CooltrainerFScript_0x98ebf, $ffff
-	person_event SPRITE_GYM_GUY, 5, 11, $6, $0, 255, 255, $a0, 0, GymGuyScript_0x98ec2, $ffff
-	person_event SPRITE_BILL, 11, 4, $9, $0, 255, 255, $0, 0, ObjectEvent, $0713
-; 0x99332
+	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
--- a/maps/ElmsHouse.asm
+++ b/maps/ElmsHouse.asm
@@ -1,8 +1,8 @@
 ElmsHouse_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 ElmsWife:
@@ -83,21 +83,21 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 3
-	signpost 1, 0, $0, ElmsHousePC
-	signpost 1, 6, $0, ElmsHouseBookshelf
-	signpost 1, 7, $0, ElmsHouseBookshelf
+	signpost 1, 0, SIGNPOST_READ, ElmsHousePC
+	signpost 1, 6, SIGNPOST_READ, ElmsHouseBookshelf
+	signpost 1, 7, SIGNPOST_READ, ElmsHouseBookshelf
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_TEACHER, 9, 5, $4, $10, 255, 255, $a0, 0, ElmsWife, $ffff
-	person_event SPRITE_BUG_CATCHER, 8, 9, $7, $0, 255, 255, $0, 0, ElmsSon, $ffff
+	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
--- a/maps/ElmsLab.asm
+++ b/maps/ElmsLab.asm
@@ -1,5 +1,5 @@
-ElmsLab_MapScriptHeader: ; 0x78b5d
-	; trigger count
+ElmsLab_MapScriptHeader:
+.MapTriggers:
 	db 6
 
 	; triggers
@@ -10,110 +10,100 @@
 	dw UnknownScript_0x78b81, $0000
 	dw UnknownScript_0x78b82, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
-	dbw 2, UnknownScript_0x78b83
-; 0x78b7a
+	dbw 2, ElmsLab_PutElmAtLaptop
 
-UnknownScript_0x78b7a: ; 0x78b7a
-	priorityjump UnknownScript_0x78b8c
+UnknownScript_0x78b7a:
+	priorityjump ElmsLab_AutowalkUpToElm
 	end
-; 0x78b7e
 
-UnknownScript_0x78b7e: ; 0x78b7e
+UnknownScript_0x78b7e:
 	end
-; 0x78b7f
 
-UnknownScript_0x78b7f: ; 0x78b7f
+UnknownScript_0x78b7f:
 	end
-; 0x78b80
 
-UnknownScript_0x78b80: ; 0x78b80
+UnknownScript_0x78b80:
 	end
-; 0x78b81
 
-UnknownScript_0x78b81: ; 0x78b81
+UnknownScript_0x78b81:
 	end
-; 0x78b82
 
-UnknownScript_0x78b82: ; 0x78b82
+UnknownScript_0x78b82:
 	end
-; 0x78b83
 
-UnknownScript_0x78b83: ; 0x78b83
+ElmsLab_PutElmAtLaptop:
 	checktriggers
-	iftrue UnknownScript_0x78b8b
+	iftrue .Skip
 	moveperson $2, $3, $4
-UnknownScript_0x78b8b: ; 0x78b8b
+.Skip:
 	return
-; 0x78b8c
 
-UnknownScript_0x78b8c: ; 0x78b8c
-	applymovement $0, MovementData_0x78f67
-	showemote $0, $2, 15
+ElmsLab_AutowalkUpToElm:
+	applymovement $0, ElmsLab_WalkUpToElmMovement
+	showemote EMOTE_SHOCK, $2, 15
 	spriteface $2, RIGHT
 	loadfont
-	writetext UnknownText_0x78fb6
-UnknownScript_0x78b9b: ; 0x78b9b
+	writetext ElmText_Intro
+ElmsLab_RefuseLoop:
 	yesorno
-	iftrue UnknownScript_0x78ba5
-	writetext UnknownText_0x7911a
-	jump UnknownScript_0x78b9b
-; 0x78ba5
+	iftrue ElmsLab_ElmGetsEmail
+	writetext ElmText_Refused
+	jump ElmsLab_RefuseLoop
 
-UnknownScript_0x78ba5: ; 0x78ba5
-	writetext UnknownText_0x790fa
+ElmsLab_ElmGetsEmail:
+	writetext ElmText_Accepted
 	keeptextopen
-	writetext UnknownText_0x7913a
+	writetext ElmText_ResearchAmbitions
 	closetext
 	loadmovesprites
 	playsound SFX_GLASS_TING
 	pause 30
-	showemote $0, $2, 10
+	showemote EMOTE_SHOCK, $2, 10
 	spriteface $2, DOWN
 	loadfont
-	writetext UnknownText_0x791ae
+	writetext ElmText_GotAnEmail
 	closetext
 	loadmovesprites
 	loadfont
 	spriteface $2, RIGHT
-	writetext UnknownText_0x791df
+	writetext ElmText_MissionFromMrPokemon
 	closetext
 	loadmovesprites
-	applymovement $2, MovementData_0x78fa0
+	applymovement $2, ElmsLab_ElmToDefaultPositionMovement1
 	spriteface $0, UP
-	applymovement $2, MovementData_0x78fa2
+	applymovement $2, ElmsLab_ElmToDefaultPositionMovement2
 	spriteface $0, RIGHT
 	loadfont
-	writetext UnknownText_0x792ff
+	writetext ElmText_ChooseAPokemon
 	closetext
 	dotrigger $1
 	loadmovesprites
 	end
-; 0x78be0
 
-ProfElmScript: ; 0x78be0
+ProfElmScript:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_SS_TICKET_FROM_ELM
-	iftrue UnknownScript_0x78bee
+	iftrue ElmCheckMasterBall
 	checkevent EVENT_BEAT_ELITE_FOUR
 	iftrue ElmGiveTicketScript
-UnknownScript_0x78bee: ; 0x78bee
+ElmCheckMasterBall:
 	checkevent EVENT_GOT_MASTER_BALL_FROM_ELM
-	iftrue UnknownScript_0x78bfa
-	checkflag $0022
+	iftrue ElmCheckEverstone
+	checkflag ENGINE_RISINGBADGE
 	iftrue ElmGiveMasterBallScript
-UnknownScript_0x78bfa: ; 0x78bfa
+ElmCheckEverstone:
 	checkevent EVENT_GOT_EVERSTONE_FROM_ELM
-	iftrue UnknownScript_0x78e16
+	iftrue ElmScript_CallYou
 	checkevent EVENT_SHOWED_TOGEPI_TO_ELM
-	iftrue UnknownScript_0x78e03
+	iftrue ElmGiveEverstoneScript
 	checkevent EVENT_TOLD_ELM_ABOUT_TOGEPI_OVER_THE_PHONE
-	iffalse UnknownScript_0x78c35
+	iffalse ElmCheckTogepiEgg
 	writebyte TOGEPI
 	special Functionc284
 	iftrue ShowElmTogepiScript
@@ -124,9 +114,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x78c22
 
-UnknownScript_0x78c22: ; 0x78c22
+ElmEggHatchedScript:
 	writebyte TOGEPI
 	special Functionc284
 	iftrue ShowElmTogepiScript
@@ -133,18 +122,17 @@
 	writebyte TOGETIC
 	special Functionc284
 	iftrue ShowElmTogepiScript
-	jump UnknownScript_0x78c41
-; 0x78c35
+	jump ElmCheckGotEggAgain
 
-UnknownScript_0x78c35: ; 0x78c35
+ElmCheckTogepiEgg:
 	checkevent EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE
-	iffalse UnknownScript_0x78c41
+	iffalse ElmCheckGotEggAgain
 	checkevent EVENT_TOGEPI_HATCHED
-	iftrue UnknownScript_0x78c22
-UnknownScript_0x78c41: ; 0x78c41
+	iftrue ElmEggHatchedScript
+ElmCheckGotEggAgain:
 	checkevent EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE ; why are we checking it again?
 	iftrue ElmWaitingEggHatchScript
-	checkflag $001b
+	checkflag ENGINE_ZEPHYRBADGE
 	iftrue ElmAideHasEggScript
 	checkevent EVENT_GAVE_MYSTERY_EGG_TO_ELM
 	iftrue ElmStudyingEggScript
@@ -152,13 +140,12 @@
 	iftrue ElmAfterTheftScript
 	checkevent EVENT_GOT_A_POKEMON_FROM_ELM
 	iftrue ElmDescribesMrPokemonScript
-	writetext UnknownText_0x79375
+	writetext ElmText_LetYourMonBattleIt
 	closetext
 	loadmovesprites
 	end
-; 0x78c65
 
-LabTryToLeaveScript: ; 0x78c65
+LabTryToLeaveScript:
 	spriteface $2, DOWN
 	loadfont
 	writetext LabWhereGoingText
@@ -166,9 +153,8 @@
 	loadmovesprites
 	applymovement $0, MovementData_0x78f70
 	end
-; 0x78c73
 
-CyndaquilPokeBallScript: ; 0x78c73
+CyndaquilPokeBallScript:
 	checkevent EVENT_GOT_A_POKEMON_FROM_ELM
 	iftrue LookAtElmPokeBallScript
 	spriteface $2, DOWN
@@ -193,13 +179,12 @@
 	keeptextopen
 	givepoke CYNDAQUIL, 5, BERRY, 0
 	loadmovesprites
-	checkcode $9
+	checkcode VAR_FACING
 	if_equal $3, ElmDirectionsScript
 	applymovement $0, AfterCyndaquilMovement
 	jump ElmDirectionsScript
-; 0x78cb5
 
-TotodilePokeBallScript: ; 0x78cb5
+TotodilePokeBallScript:
 	checkevent EVENT_GOT_A_POKEMON_FROM_ELM
 	iftrue LookAtElmPokeBallScript
 	spriteface $2, DOWN
@@ -226,9 +211,8 @@
 	loadmovesprites
 	applymovement $0, AfterTotodileMovement
 	jump ElmDirectionsScript
-; 0x78cf1
 
-ChikoritaPokeBallScript: ; 0x78cf1
+ChikoritaPokeBallScript:
 	checkevent EVENT_GOT_A_POKEMON_FROM_ELM
 	iftrue LookAtElmPokeBallScript
 	spriteface $2, DOWN
@@ -255,22 +239,20 @@
 	loadmovesprites
 	applymovement $0, AfterChikoritaMovement
 	jump ElmDirectionsScript
-; 0x78d2d
 
-DidntChooseStarterScript: ; 0x78d2d
+DidntChooseStarterScript:
 	writetext DidntChooseStarterText
 	closetext
 	loadmovesprites
 	end
-; 0x78d33
 
-ElmDirectionsScript: ; 0x78d33
+ElmDirectionsScript:
 	spriteface $0, UP
 	loadfont
 	writetext ElmDirectionsText1
 	closetext
 	loadmovesprites
-	addcellnum $4
+	addcellnum PHONE_ELM
 	loadfont
 	writetext GotElmsNumberText
 	playsound SFX_REGISTER_PHONE_NUMBER
@@ -288,26 +270,23 @@
 	closetext
 	loadmovesprites
 	setevent EVENT_GOT_A_POKEMON_FROM_ELM
-	setevent $06be
+	setevent EVENT_RIVAL_CHERRYGROVE_CITY
 	dotrigger $5
 	domaptrigger GROUP_NEW_BARK_TOWN, MAP_NEW_BARK_TOWN, $1
 	end
-; 0x78d67
 
-ElmDescribesMrPokemonScript: ; 0x78d67
+ElmDescribesMrPokemonScript:
 	writetext ElmDescribesMrPokemonText
 	closetext
 	loadmovesprites
 	end
-; 0x78d6d
 
-LookAtElmPokeBallScript: ; 0x78d6d
+LookAtElmPokeBallScript:
 	loadfont
 	writetext ElmPokeBallText
 	closetext
 	loadmovesprites
 	end
-; 0x78d74
 
 ElmsLabHealingMachine:
 	loadfont
@@ -321,30 +300,27 @@
 .CanHeal
 	writetext ElmsLabHealingMachineText2
 	yesorno
-	iftrue UnknownScript_0x78d8a
+	iftrue ElmsLabHealingMachine_HealParty
 	loadmovesprites
 	end
-; 0x78d8a
 
-UnknownScript_0x78d8a: ; 0x78d8a
-	special Function1060a2
+ElmsLabHealingMachine_HealParty:
+	special Mobile_HealParty
 	special HealParty
 	playmusic MUSIC_NONE
-	writebyte $1
+	writebyte 1 ; Machine is in Elm's Lab
 	special HealMachineAnim
 	pause 30
 	special RestartMapMusic
 	loadmovesprites
 	end
-; 0x78d9f
 
-ElmAfterTheftDoneScript: ; 0x78d9f
+ElmAfterTheftDoneScript:
 	closetext
 	loadmovesprites
 	end
-; 0x78da2
 
-ElmAfterTheftScript: ; 0x78da2
+ElmAfterTheftScript:
 	writetext ElmAfterTheftText1
 	checkitem MYSTERY_EGG
 	iffalse ElmAfterTheftDoneScript
@@ -361,43 +337,39 @@
 	writetext ElmAfterTheftText5
 	keeptextopen
 	setevent EVENT_GAVE_MYSTERY_EGG_TO_ELM
-	setflag $0010
+	setflag ENGINE_BUG_CONTEST_ON
 	domaptrigger GROUP_ROUTE_29, MAP_ROUTE_29, $1
-	clearevent $0715
-	setevent $0714
+	clearevent EVENT_ROUTE_30_YOUNGSTER_JOEY
+	setevent EVENT_ROUTE_30_BATTLE
 	writetext ElmAfterTheftText6
 	closetext
 	loadmovesprites
 	dotrigger $6
 	end
-; 0x78ddc
 
-ElmStudyingEggScript: ; 0x78ddc
+ElmStudyingEggScript:
 	writetext ElmStudyingEggText
 	closetext
 	loadmovesprites
 	end
-; 0x78de2
 
-ElmAideHasEggScript: ; 0x78de2
+ElmAideHasEggScript:
 	writetext ElmAideHasEggText
 	closetext
 	loadmovesprites
 	end
-; 0x78de8
 
-ElmWaitingEggHatchScript: ; 0x78de8
+ElmWaitingEggHatchScript:
 	writetext ElmWaitingEggHatchText
 	closetext
 	loadmovesprites
 	end
-; 0x78dee
 
-ShowElmTogepiScript: ; 0x78dee
+ShowElmTogepiScript:
 	writetext ShowElmTogepiText1
 	closetext
 	loadmovesprites
-	showemote $0, $2, 15
+	showemote EMOTE_SHOCK, $2, 15
 	setevent EVENT_SHOWED_TOGEPI_TO_ELM
 	loadfont
 	writetext ShowElmTogepiText2
@@ -404,27 +376,25 @@
 	keeptextopen
 	writetext ShowElmTogepiText3
 	keeptextopen
-UnknownScript_0x78e03: ; 0x78e03
+ElmGiveEverstoneScript:
 	writetext ElmGiveEverstoneText1
 	keeptextopen
 	verbosegiveitem EVERSTONE, 1
-	iffalse UnknownScript_0x78e1a
+	iffalse ElmScript_NoRoomForEverstone
 	writetext ElmGiveEverstoneText2
 	closetext
 	loadmovesprites
 	setevent EVENT_GOT_EVERSTONE_FROM_ELM
 	end
-; 0x78e16
 
-UnknownScript_0x78e16: ; 0x78e16
-	writetext UnknownText_0x79c37
+ElmScript_CallYou:
+	writetext ElmText_CallYou
 	closetext
-UnknownScript_0x78e1a: ; 0x78e1a
+ElmScript_NoRoomForEverstone:
 	loadmovesprites
 	end
-; 0x78e1c
 
-ElmGiveMasterBallScript: ; 0x78e1c
+ElmGiveMasterBallScript:
 	writetext ElmGiveMasterBallText1
 	keeptextopen
 	verbosegiveitem MASTER_BALL, 1
@@ -435,9 +405,8 @@
 .notdone
 	loadmovesprites
 	end
-; 0x78e2f
 
-ElmGiveTicketScript: ; 0x78e2f
+ElmGiveTicketScript:
 	writetext ElmGiveTicketText1
 	keeptextopen
 	verbosegiveitem S_S_TICKET, 1
@@ -446,175 +415,156 @@
 	closetext
 	loadmovesprites
 	end
-; 0x78e3f
 
-ElmJumpBackScript1: ; 0x78e3f
+ElmJumpBackScript1:
 	loadmovesprites
-	checkcode $9
-	if_equal $0, UnknownScript_0x78e6d
-	if_equal $1, UnknownScript_0x78e67
-	if_equal $2, UnknownScript_0x78e73
-	if_equal $3, UnknownScript_0x78e79
+	checkcode VAR_FACING
+	if_equal DOWN, ElmJumpDownScript
+	if_equal UP, ElmJumpUpScript
+	if_equal LEFT, ElmJumpLeftScript
+	if_equal RIGHT, ElmJumpRightScript
 	end
-; 0x78e53
 
-ElmJumpBackScript2: ; 0x78e53
+ElmJumpBackScript2:
 	loadmovesprites
-	checkcode $9
-	if_equal $0, UnknownScript_0x78e67
-	if_equal $1, UnknownScript_0x78e6d
-	if_equal $2, UnknownScript_0x78e79
-	if_equal $3, UnknownScript_0x78e73
+	checkcode VAR_FACING
+	if_equal DOWN, ElmJumpUpScript
+	if_equal UP, ElmJumpDownScript
+	if_equal LEFT, ElmJumpRightScript
+	if_equal RIGHT, ElmJumpLeftScript
 	end
-; 0x78e67
 
-UnknownScript_0x78e67: ; 0x78e67
-	applymovement $2, MovementData_0x78f90
+ElmJumpUpScript:
+	applymovement $2, ElmJumpUpMovement
 	loadfont
 	end
-; 0x78e6d
 
-UnknownScript_0x78e6d: ; 0x78e6d
-	applymovement $2, MovementData_0x78f94
+ElmJumpDownScript:
+	applymovement $2, ElmJumpDownMovement
 	loadfont
 	end
-; 0x78e73
 
-UnknownScript_0x78e73: ; 0x78e73
-	applymovement $2, MovementData_0x78f98
+ElmJumpLeftScript:
+	applymovement $2, ElmJumpLeftMovement
 	loadfont
 	end
-; 0x78e79
 
-UnknownScript_0x78e79: ; 0x78e79
-	applymovement $2, MovementData_0x78f9c
+ElmJumpRightScript:
+	applymovement $2, ElmJumpRightMovement
 	loadfont
 	end
-; 0x78e7f
 
-UnknownScript_0x78e7f: ; 0x78e7f
-	applymovement $3, MovementData_0x78f7e
+AideScript_WalkPotions1:
+	applymovement $3, AideWalksRight1
 	spriteface $0, DOWN
-	scall UnknownScript_0x78e9d
-	applymovement $3, MovementData_0x78f87
+	scall AideScript_GivePotions
+	applymovement $3, AideWalksLeft1
 	end
-; 0x78e8e
 
-UnknownScript_0x78e8e: ; 0x78e8e
-	applymovement $3, MovementData_0x78f82
+AideScript_WalkPotions2:
+	applymovement $3, AideWalksRight2
 	spriteface $0, DOWN
-	scall UnknownScript_0x78e9d
-	applymovement $3, MovementData_0x78f8b
+	scall AideScript_GivePotions
+	applymovement $3, AideWalksLeft2
 	end
-; 0x78e9d
 
-UnknownScript_0x78e9d: ; 0x78e9d
+AideScript_GivePotions:
 	loadfont
-	writetext UnknownText_0x79f38
+	writetext AideText_GiveYouPotions
 	keeptextopen
 	verbosegiveitem POTION, 1
-	writetext UnknownText_0x79f65
+	writetext AideText_AlwaysBusy
 	closetext
 	loadmovesprites
 	dotrigger $2
 	end
-; 0x78ead
 
-UnknownScript_0x78ead: ; 0x78ead
-	applymovement $3, MovementData_0x78f7e
+AideScript_WalkBalls1:
+	applymovement $3, AideWalksRight1
 	spriteface $0, DOWN
-	scall UnknownScript_0x78ecb
-	applymovement $3, MovementData_0x78f87
+	scall AideScript_GiveYouBalls
+	applymovement $3, AideWalksLeft1
 	end
-; 0x78ebc
 
-UnknownScript_0x78ebc: ; 0x78ebc
-	applymovement $3, MovementData_0x78f82
+AideScript_WalkBalls2:
+	applymovement $3, AideWalksRight2
 	spriteface $0, DOWN
-	scall UnknownScript_0x78ecb
-	applymovement $3, MovementData_0x78f8b
+	scall AideScript_GiveYouBalls
+	applymovement $3, AideWalksLeft2
 	end
-; 0x78ecb
 
-UnknownScript_0x78ecb: ; 0x78ecb
+AideScript_GiveYouBalls:
 	loadfont
-	writetext UnknownText_0x7a078
+	writetext AideText_GiveYouBalls
 	keeptextopen
 	itemtotext POKE_BALL, $1
-	scall UnknownScript_0x78ee2
+	scall AideScript_ReceiveTheBalls
 	giveitem POKE_BALL, $5
-	writetext UnknownText_0x7a09a
+	writetext AideText_ExplainBalls
 	keeptextopen
 	itemnotify
 	loadmovesprites
 	dotrigger $2
 	end
-; 0x78ee2
 
-UnknownScript_0x78ee2: ; 0x78ee2
-	jumpstd $002f
+AideScript_ReceiveTheBalls:
+	jumpstd receiveitem
 	end
-; 0x78ee6
 
-ElmsAideScript: ; 0x78ee6
+ElmsAideScript:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE
-	iftrue UnknownScript_0x78f0c
+	iftrue AideScript_AfterTheft
 	checkevent EVENT_GAVE_MYSTERY_EGG_TO_ELM
-	iftrue UnknownScript_0x78f06
+	iftrue AideScript_ExplainBalls
 	checkevent EVENT_GOT_MYSTERY_EGG_FROM_MR_POKEMON
-	iftrue UnknownScript_0x78f00
-	writetext UnknownText_0x79f65
+	iftrue AideScript_TheftTestimony
+	writetext AideText_AlwaysBusy
 	closetext
 	loadmovesprites
 	end
-; 0x78f00
 
-UnknownScript_0x78f00: ; 0x78f00
-	writetext UnknownText_0x79f95
+AideScript_TheftTestimony:
+	writetext AideText_TheftTestimony
 	closetext
 	loadmovesprites
 	end
-; 0x78f06
 
-UnknownScript_0x78f06: ; 0x78f06
-	writetext UnknownText_0x7a09a
+AideScript_ExplainBalls:
+	writetext AideText_ExplainBalls
 	closetext
 	loadmovesprites
 	end
-; 0x78f0c
 
-UnknownScript_0x78f0c: ; 0x78f0c
-	writetext UnknownText_0x79c65
+AideScript_AfterTheft:
+	writetext AideText_AfterTheft
 	closetext
 	loadmovesprites
 	end
-; 0x78f12
 
-UnknownScript_0x78f12: ; 0x78f12
-	applymovement $0, MovementData_0x78f72
+MeetCopScript2:
+	applymovement $0, MeetCopScript2_StepLeft
 
-MeetCopScript: ; 0x78f16
-	applymovement $0, MovementData_0x78f74
-CopScript: ; 0x78f1a
+MeetCopScript:
+	applymovement $0, MeetCopScript_WalkUp
+CopScript:
 	spriteface $7, LEFT
 	loadfont
-	writetext UnknownText_0x7a0f0
+	writetext ElmsLabOfficerText1
 	keeptextopen
 	special SpecialNameRival
-	writetext UnknownText_0x7a1c0
+	writetext ElmsLabOfficerText2
 	closetext
 	loadmovesprites
-	applymovement $7, MovementData_0x78f78
+	applymovement $7, OfficerLeavesMovement
 	disappear $7
 	dotrigger $2
 	end
-; 0x78f33
 
 ElmsLabWindow:
 	loadfont
-	checkflag $0043
+	checkflag ENGINE_FLYPOINT_VIOLET
 	iftrue .Normal
 	checkevent EVENT_ELM_CALLED_ABOUT_STOLEN_POKEMON
 	iftrue .BreakIn
@@ -625,7 +575,6 @@
 	closetext
 	loadmovesprites
 	end
-; 0x78f49
 
 .Normal
 	writetext ElmsLabWindowText1
@@ -632,7 +581,6 @@
 	closetext
 	loadmovesprites
 	end
-; 0x78f4f
 
 ElmsLabTravelTip1:
 	jumptext ElmsLabTravelTip1Text
@@ -649,9 +597,8 @@
 ElmsLabTrashcan:
 	jumptext ElmsLabTrashcanText
 
-ElmsLabPC: ; 0x78f5e
+ElmsLabPC:
 	jumptext ElmsLabPCText
-; 0x78f61
 
 ElmsLabTrashcan2:
 ; unused
@@ -660,7 +607,7 @@
 ElmsLabBookshelf:
 	jumpstd difficultbookshelf
 
-MovementData_0x78f67: ; 0x78f67
+ElmsLab_WalkUpToElmMovement:
 	step_up
 	step_up
 	step_up
@@ -670,26 +617,22 @@
 	step_up
 	turn_head_left
 	step_end
-; 0x78f70
 
-MovementData_0x78f70: ; 0x78f70
+MovementData_0x78f70:
 	step_up
 	step_end
-; 0x78f72
 
-MovementData_0x78f72: ; 0x78f72
+MeetCopScript2_StepLeft:
 	step_left
 	step_end
-; 0x78f74
 
-MovementData_0x78f74: ; 0x78f74
+MeetCopScript_WalkUp:
 	step_up
 	step_up
 	turn_head_right
 	step_end
-; 0x78f78
 
-MovementData_0x78f78: ; 0x78f78
+OfficerLeavesMovement:
 	step_down
 	step_down
 	step_down
@@ -696,95 +639,82 @@
 	step_down
 	step_down
 	step_end
-; 0x78f7e
 
-MovementData_0x78f7e: ; 0x78f7e
+AideWalksRight1:
 	step_right
 	step_right
 	turn_head_up
 	step_end
-; 0x78f82
 
-MovementData_0x78f82: ; 0x78f82
+AideWalksRight2:
 	step_right
 	step_right
 	step_right
 	turn_head_up
 	step_end
-; 0x78f87
 
-MovementData_0x78f87: ; 0x78f87
+AideWalksLeft1:
 	step_left
 	step_left
 	turn_head_down
 	step_end
-; 0x78f8b
 
-MovementData_0x78f8b: ; 0x78f8b
+AideWalksLeft2:
 	step_left
 	step_left
 	step_left
 	turn_head_down
 	step_end
-; 0x78f90
 
-MovementData_0x78f90: ; 0x78f90
+ElmJumpUpMovement:
 	fix_facing
 	big_step_up
 	remove_fixed_facing
 	step_end
-; 0x78f94
 
-MovementData_0x78f94: ; 0x78f94
+ElmJumpDownMovement:
 	fix_facing
 	big_step_down
 	remove_fixed_facing
 	step_end
-; 0x78f98
 
-MovementData_0x78f98: ; 0x78f98
+ElmJumpLeftMovement:
 	fix_facing
 	big_step_left
 	remove_fixed_facing
 	step_end
-; 0x78f9c
 
-MovementData_0x78f9c: ; 0x78f9c
+ElmJumpRightMovement:
 	fix_facing
 	big_step_right
 	remove_fixed_facing
 	step_end
-; 0x78fa0
 
-MovementData_0x78fa0: ; 0x78fa0
+ElmsLab_ElmToDefaultPositionMovement1:
 	step_up
 	step_end
-; 0x78fa2
 
-MovementData_0x78fa2: ; 0x78fa2
+ElmsLab_ElmToDefaultPositionMovement2:
 	step_right
 	step_right
 	step_up
 	turn_head_down
 	step_end
-; 0x78fa7
 
-AfterCyndaquilMovement: ; 0x78fa7
+AfterCyndaquilMovement:
 	step_left
 	step_up
 	turn_head_up
 	step_end
-; 0x78fab
 
-AfterTotodileMovement: ; 0x78fab
+AfterTotodileMovement:
 	step_left
 	step_left
 	step_up
 	turn_head_up
 	step_end
-; 0x78fb0
 
-AfterChikoritaMovement: ; 0x78fb0
+AfterChikoritaMovement:
 	step_left
 	step_left
 	step_left
@@ -791,9 +721,8 @@
 	step_up
 	turn_head_up
 	step_end
-; 0x78fb6
 
-UnknownText_0x78fb6: ; 0x78fb6
+ElmText_Intro:
 	text "ELM: <PLAY_G>!"
 	line "There you are!"
 
@@ -831,23 +760,20 @@
 	para "that I recently"
 	line "caught."
 	done
-; 0x790fa
 
-UnknownText_0x790fa: ; 0x790fa
+ElmText_Accepted:
 	text "Thanks, <PLAY_G>!"
 
 	para "You're a great"
 	line "help!"
 	done
-; 0x7911a
 
-UnknownText_0x7911a: ; 0x7911a
+ElmText_Refused:
 	text "But… Please, I"
 	line "need your help!"
 	done
-; 0x7913a
 
-UnknownText_0x7913a: ; 0x7913a
+ElmText_ResearchAmbitions:
 	text "When I announce my"
 	line "findings, I'm sure"
 
@@ -860,9 +786,8 @@
 	para "You can count on"
 	line "it!"
 	done
-; 0x791ae
 
-UnknownText_0x791ae: ; 0x791ae
+ElmText_GotAnEmail:
 	text "Oh, hey! I got an"
 	line "e-mail!"
 
@@ -871,9 +796,8 @@
 
 	para "Okay…"
 	done
-; 0x791df
 
-UnknownText_0x791df: ; 0x791df
+ElmText_MissionFromMrPokemon:
 	text "Hey, listen."
 
 	para "I have an acquain-"
@@ -905,9 +829,8 @@
 	para "<PLAY_G>, can you"
 	line "go in our place?"
 	done
-; 0x792ff
 
-UnknownText_0x792ff: ; 0x792ff
+ElmText_ChooseAPokemon:
 	text "I want you to"
 	line "raise one of the"
 
@@ -920,43 +843,37 @@
 
 	para "Go on. Pick one!"
 	done
-; 0x79375
 
-UnknownText_0x79375: ; 0x79375
+ElmText_LetYourMonBattleIt:
 	text "If a wild #MON"
 	line "appears, let your"
 	cont "#MON battle it!"
 	done
-; 0x793a7
 
-LabWhereGoingText: ; 0x793a7
+LabWhereGoingText:
 	text "ELM: Wait! Where"
 	line "are you going?"
 	done
-; 0x793c8
 
-TakeCyndaquilText: ; 0x793c8
+TakeCyndaquilText:
 	text "ELM: You'll take"
 	line "CYNDAQUIL, the"
 	cont "fire #MON?"
 	done
-; 0x793f3
 
-TakeTotodileText: ; 0x793f3
+TakeTotodileText:
 	text "ELM: Do you want"
 	line "TOTODILE, the"
 	cont "water #MON?"
 	done
-; 0x7941f
 
-TakeChikoritaText: ; 0x7941f
+TakeChikoritaText:
 	text "ELM: So, you like"
 	line "CHIKORITA, the"
 	cont "grass #MON?"
 	done
-; 0x7944d
 
-DidntChooseStarterText: ; 0x7944d
+DidntChooseStarterText:
 	text "ELM: Think it over"
 	line "carefully."
 
@@ -963,24 +880,21 @@
 	para "Your partner is"
 	line "important."
 	done
-; 0x79487
 
-ChoseStarterText: ; 0x79487
+ChoseStarterText:
 	text "ELM: I think"
 	line "that's a great"
 	cont "#MON too!"
 	done
-; 0x794ad
 
-ReceivedStarterText: ; 0x794ad
+ReceivedStarterText:
 	text "<PLAYER> received"
 	line "@"
 	text_from_ram StringBuffer3
 	text "!"
 	done
-; 0x794c0
 
-ElmDirectionsText1: ; 0x794c0
+ElmDirectionsText1:
 	text "MR.#MON lives a"
 	line "little bit beyond"
 
@@ -1000,7 +914,7 @@
 	line "anything comes up!"
 	done
 
-ElmDirectionsText2: ; 0x79581
+ElmDirectionsText2:
 	text "If your #MON is"
 	line "hurt, you should"
 
@@ -1011,17 +925,17 @@
 	line "it anytime."
 	done
 
-ElmDirectionsText3: ; 0x795db
+ElmDirectionsText3:
 	text "<PLAY_G>, I'm"
 	line "counting on you!"
 	done
 
-GotElmsNumberText: ; 0x795f3
+GotElmsNumberText:
 	text "<PLAYER> got ELM's"
 	line "phone number."
 	done
 
-ElmDescribesMrPokemonText: ; 0x7960d
+ElmDescribesMrPokemonText:
 	text "MR.#MON goes"
 	line "everywhere and"
 	cont "finds rarities."
@@ -1031,7 +945,7 @@
 	cont "not very useful…"
 	done
 
-ElmPokeBallText: ; 0x79668
+ElmPokeBallText:
 	text "It contains a"
 	line "#MON caught by"
 	cont "PROF.ELM."
@@ -1047,7 +961,7 @@
 	line "heal your #MON?"
 	done
 
-ElmAfterTheftText1: ; 0x796cd
+ElmAfterTheftText1:
 	text "ELM: <PLAY_G>, this"
 	line "is terrible…"
 
@@ -1055,21 +969,18 @@
 	line "MR.#MON's big"
 	cont "discovery?"
 	done
-; 0x79712
 
-ElmAfterTheftText2: ; 0x79712
+ElmAfterTheftText2:
 	text "<PLAYER> handed"
 	line "the MYSTERY EGG to"
 	cont "PROF.ELM."
 	done
-; 0x79739
 
-ElmAfterTheftText3: ; 0x79739
+ElmAfterTheftText3:
 	text "ELM: This?"
 	done
-; 0x79745
 
-ElmAfterTheftText4: ; 0x79745
+ElmAfterTheftText4:
 	text "But… Is it a"
 	line "#MON EGG?"
 
@@ -1076,9 +987,8 @@
 	para "If it is, it is a"
 	line "great discovery!"
 	done
-; 0x79780
 
-ElmAfterTheftText5: ; 0x79780
+ElmAfterTheftText5:
 	text "ELM: What?!?"
 
 	para "PROF.OAK gave you"
@@ -1111,9 +1021,8 @@
 	line "would be the one"
 	cont "in VIOLET CITY."
 	done
-; 0x798cf
 
-ElmAfterTheftText6: ; 0x798cf
+ElmAfterTheftText6:
 	text "…<PLAY_G>. The"
 	line "road to the"
 
@@ -1124,9 +1033,8 @@
 	line "make sure that you"
 	cont "talk to your mom."
 	done
-; 0x7993c
 
-ElmStudyingEggText: ; 0x7993c
+ElmStudyingEggText:
 	text "ELM: Don't give"
 	line "up! I'll call if"
 
@@ -1133,9 +1041,8 @@
 	para "I learn anything"
 	line "about that EGG!"
 	done
-; 0x7997d
 
-ElmAideHasEggText: ; 0x7997d
+ElmAideHasEggText:
 	text "ELM: <PLAY_G>?"
 	line "Didn't you meet my"
 	cont "assistant?"
@@ -1150,15 +1057,13 @@
 	line "missed him. Try to"
 	cont "catch him there."
 	done
-; 0x79a1b
 
-ElmWaitingEggHatchText: ; 0x79a1b
+ElmWaitingEggHatchText:
 	text "ELM: Hey, has that"
 	line "EGG changed any?"
 	done
-; 0x79a40
 
-UnknownText_0x79a40: ; 0x79a40
+UnknownText_0x79a40:
 	text "<PLAY_G>? I thought"
 	line "the EGG hatched."
 
@@ -1165,21 +1070,18 @@
 	para "Where is the"
 	line "#MON?"
 	done
-; 0x79a72
 
-ShowElmTogepiText1: ; 0x79a72
+ShowElmTogepiText1:
 	text "ELM: <PLAY_G>, you"
 	line "look great!"
 	done
-; 0x79a8b
 
-ShowElmTogepiText2: ; 0x79a8b
+ShowElmTogepiText2:
 	text "What?"
 	line "That #MON!?!"
 	done
-; 0x79a9f
 
-ShowElmTogepiText3: ; 0x79a9f
+ShowElmTogepiText3:
 	text "The EGG hatched!"
 	line "So, #MON are"
 	cont "born from EGGS…"
@@ -1191,9 +1093,8 @@
 	line "a lot of research"
 	cont "to be done."
 	done
-; 0x79b1c
 
-ElmGiveEverstoneText1: ; 0x79b1c
+ElmGiveEverstoneText1:
 	text "Thanks, <PLAY_G>!"
 	line "You're helping"
 
@@ -1204,9 +1105,8 @@
 	line "this as a token of"
 	cont "our appreciation."
 	done
-; 0x79b8d
 
-ElmGiveEverstoneText2: ; 0x79b8d
+ElmGiveEverstoneText2:
 	text "That's an"
 	line "EVERSTONE."
 
@@ -1224,16 +1124,14 @@
 	line "MON you don't want"
 	cont "to evolve."
 	done
-; 0x79c37
 
-UnknownText_0x79c37: ; 0x79c37
+ElmText_CallYou:
 	text "ELM: <PLAY_G>, I'll"
 	line "call you if any-"
 	cont "thing comes up."
 	done
-; 0x79c65
 
-UnknownText_0x79c65: ; 0x79c65
+AideText_AfterTheft:
 	text "…sigh… That"
 	line "stolen #MON."
 
@@ -1246,9 +1144,8 @@
 	para "person turns bad"
 	line "itself."
 	done
-; 0x79cd0
 
-ElmGiveMasterBallText1: ; 0x79cd0
+ElmGiveMasterBallText1:
 	text "ELM: Hi, <PLAY_G>!"
 	line "Thanks to you, my"
 
@@ -1259,9 +1156,8 @@
 	line "token of my"
 	cont "appreciation."
 	done
-; 0x79d31
 
-ElmGiveMasterBallText2: ; 0x79d31
+ElmGiveMasterBallText2:
 	text "The MASTER BALL is"
 	line "the best!"
 
@@ -1281,9 +1177,8 @@
 	para "use of it than I"
 	line "can, <PLAY_G>!"
 	done
-; 0x79df3
 
-ElmGiveTicketText1: ; 0x79df3
+ElmGiveTicketText1:
 	text "ELM: <PLAY_G>!"
 	line "There you are!"
 
@@ -1297,9 +1192,8 @@
 	para "Now you can catch"
 	line "#MON in KANTO."
 	done
-; 0x79e6f
 
-ElmGiveTicketText2: ; 0x79e6f
+ElmGiveTicketText2:
 	text "The ship departs"
 	line "from OLIVINE CITY."
 
@@ -1313,30 +1207,26 @@
 	para "Give my regards to"
 	line "PROF.OAK in KANTO!"
 	done
-; 0x79f0b
 
-UnknownText_0x79f0b: ; 0x79f0b
+ElmsLabSignpostText_Egg:
 	text "It's the #MON"
 	line "EGG being studied"
 	cont "by PROF.ELM."
 	done
-; 0x79f38
 
-UnknownText_0x79f38: ; 0x79f38
+AideText_GiveYouPotions:
 	text "<PLAY_G>, I want"
 	line "you to have this"
 	cont "for your errand."
 	done
-; 0x79f65
 
-UnknownText_0x79f65: ; 0x79f65
+AideText_AlwaysBusy:
 	text "There are only two"
 	line "of us, so we're"
 	cont "always busy."
 	done
-; 0x79f95
 
-UnknownText_0x79f95: ; 0x79f95
+AideText_TheftTestimony:
 	text "There was a loud"
 	line "noise outside…"
 
@@ -1360,17 +1250,15 @@
 	para "person turns bad"
 	line "itself."
 	done
-; 0x7a078
 
-UnknownText_0x7a078: ; 0x7a078
+AideText_GiveYouBalls:
 	text "<PLAY_G>!"
 
 	para "Use these on your"
 	line "#DEX quest!"
 	done
-; 0x7a09a
 
-UnknownText_0x7a09a: ; 0x7a09a
+AideText_ExplainBalls:
 	text "To add to your"
 	line "#DEX, you have"
 	cont "to catch #MON."
@@ -1379,9 +1267,8 @@
 	line "at wild #MON"
 	cont "to get them."
 	done
-; 0x7a0f0
 
-UnknownText_0x7a0f0: ; 0x7a0f0
+ElmsLabOfficerText1:
 	text "I heard a #MON"
 	line "was stolen here…"
 
@@ -1401,9 +1288,8 @@
 	para "Did you happen to"
 	line "get his name?"
 	done
-; 0x7a1c0
 
-UnknownText_0x7a1c0: ; 0x7a1c0
+ElmsLabOfficerText2:
 	text "OK! So <RIVAL>"
 	line "was his name."
 
@@ -1410,7 +1296,6 @@
 	para "Thanks for helping"
 	line "my investigation!"
 	done
-; 0x7a1fd
 
 ElmsLabWindowText1:
 	text "The window's open."
@@ -1482,50 +1367,50 @@
 	line "screen…"
 	done
 
-ElmsLab_MapEventHeader: ; 0x7a3de
+ElmsLab_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 8
 	xy_trigger 1, $6, $4, $0, LabTryToLeaveScript, $0, $0
 	xy_trigger 1, $6, $5, $0, LabTryToLeaveScript, $0, $0
 	xy_trigger 3, $5, $4, $0, MeetCopScript, $0, $0
-	xy_trigger 3, $5, $5, $0, UnknownScript_0x78f12, $0, $0
-	xy_trigger 5, $8, $4, $0, UnknownScript_0x78e7f, $0, $0
-	xy_trigger 5, $8, $5, $0, UnknownScript_0x78e8e, $0, $0
-	xy_trigger 6, $8, $4, $0, UnknownScript_0x78ead, $0, $0
-	xy_trigger 6, $8, $5, $0, UnknownScript_0x78ebc, $0, $0
+	xy_trigger 3, $5, $5, $0, MeetCopScript2, $0, $0
+	xy_trigger 5, $8, $4, $0, AideScript_WalkPotions1, $0, $0
+	xy_trigger 5, $8, $5, $0, AideScript_WalkPotions2, $0, $0
+	xy_trigger 6, $8, $4, $0, AideScript_WalkBalls1, $0, $0
+	xy_trigger 6, $8, $5, $0, AideScript_WalkBalls2, $0, $0
 
-	; signposts
+.Signposts:
 	db 16
-	signpost 1, 2, $0, ElmsLabHealingMachine
-	signpost 1, 6, $0, ElmsLabBookshelf
-	signpost 1, 7, $0, ElmsLabBookshelf
-	signpost 1, 8, $0, ElmsLabBookshelf
-	signpost 1, 9, $0, ElmsLabBookshelf
-	signpost 7, 0, $0, ElmsLabTravelTip1
-	signpost 7, 1, $0, ElmsLabTravelTip2
-	signpost 7, 2, $0, ElmsLabTravelTip3
-	signpost 7, 3, $0, ElmsLabTravelTip4
-	signpost 7, 6, $0, ElmsLabBookshelf
-	signpost 7, 7, $0, ElmsLabBookshelf
-	signpost 7, 8, $0, ElmsLabBookshelf
-	signpost 7, 9, $0, ElmsLabBookshelf
-	signpost 3, 9, $0, ElmsLabTrashcan
-	signpost 0, 5, $0, ElmsLabWindow
-	signpost 5, 3, $2, ElmsLabPC
+	signpost 1, 2, SIGNPOST_READ, ElmsLabHealingMachine
+	signpost 1, 6, SIGNPOST_READ, ElmsLabBookshelf
+	signpost 1, 7, SIGNPOST_READ, ElmsLabBookshelf
+	signpost 1, 8, SIGNPOST_READ, ElmsLabBookshelf
+	signpost 1, 9, SIGNPOST_READ, ElmsLabBookshelf
+	signpost 7, 0, SIGNPOST_READ, ElmsLabTravelTip1
+	signpost 7, 1, SIGNPOST_READ, ElmsLabTravelTip2
+	signpost 7, 2, SIGNPOST_READ, ElmsLabTravelTip3
+	signpost 7, 3, SIGNPOST_READ, ElmsLabTravelTip4
+	signpost 7, 6, SIGNPOST_READ, ElmsLabBookshelf
+	signpost 7, 7, SIGNPOST_READ, ElmsLabBookshelf
+	signpost 7, 8, SIGNPOST_READ, ElmsLabBookshelf
+	signpost 7, 9, SIGNPOST_READ, ElmsLabBookshelf
+	signpost 3, 9, SIGNPOST_READ, ElmsLabTrashcan
+	signpost 0, 5, SIGNPOST_READ, ElmsLabWindow
+	signpost 5, 3, SIGNPOST_DOWN, ElmsLabPC
 
-	; people-events
+.PersonEvents:
 	db 6
-	person_event SPRITE_ELM, 6, 9, $6, $0, 255, 255, $0, 0, ProfElmScript, $ffff
-	person_event SPRITE_SCIENTIST, 13, 6, $3, $0, 255, 255, $90, 0, ElmsAideScript, $0701
-	person_event SPRITE_POKE_BALL, 7, 10, $1, $0, 255, 255, $0, 0, CyndaquilPokeBallScript, $0640
-	person_event SPRITE_POKE_BALL, 7, 11, $1, $0, 255, 255, $0, 0, TotodilePokeBallScript, $0641
-	person_event SPRITE_POKE_BALL, 7, 12, $1, $0, 255, 255, $0, 0, ChikoritaPokeBallScript, $0642
-	person_event SPRITE_OFFICER, 7, 9, $7, $0, 255, 255, $90, 0, CopScript, $0702
+	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
--- a/maps/FastShip1F.asm
+++ b/maps/FastShip1F.asm
@@ -1,30 +1,26 @@
-FastShip1F_MapScriptHeader: ; 0x75127
-	; trigger count
+FastShip1F_MapScriptHeader:
+.MapTriggers:
 	db 3
 
 	; triggers
-	dw UnknownScript_0x75135, $0000
-	dw UnknownScript_0x75136, $0000
-	dw UnknownScript_0x7513a, $0000
+	dw .Trigger1, $0000
+	dw .Trigger2, $0000
+	dw .Trigger3, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x75135
 
-UnknownScript_0x75135: ; 0x75135
+.Trigger1:
 	end
-; 0x75136
 
-UnknownScript_0x75136: ; 0x75136
-	priorityjump UnknownScript_0x7513b
+.Trigger2:
+	priorityjump .PriorityJump2
 	end
-; 0x7513a
 
-UnknownScript_0x7513a: ; 0x7513a
+.Trigger3:
 	end
-; 0x7513b
 
-UnknownScript_0x7513b: ; 0x7513b
+.PriorityJump2:
 	applymovement $2, MovementData_0x7520e
 	applymovement $0, MovementData_0x75217
 	applymovement $2, MovementData_0x75211
@@ -32,109 +28,97 @@
 	playsound SFX_BOAT
 	earthquake 30
 	blackoutmod GROUP_FAST_SHIP_CABINS_SW_SSW_NW, MAP_FAST_SHIP_CABINS_SW_SSW_NW
-	clearevent $0031
-	checkevent $0030
-	iftrue UnknownScript_0x7515d
+	clearevent EVENT_FAST_SHIP_HAS_ARRIVED
+	checkevent EVENT_FAST_SHIP_FIRST_TIME
+	iftrue .Vermilion
 	dotrigger $2
 	end
-; 0x7515d
 
-UnknownScript_0x7515d: ; 0x7515d
+.Vermilion:
 	dotrigger $0
 	end
-; 0x75160
 
-SailorScript_0x75160: ; 0x75160
+SailorScript_0x75160:
 	faceplayer
 	loadfont
-	checkevent $0031
-	iftrue UnknownScript_0x7517a
-	checkevent $002f
-	iftrue UnknownScript_0x75174
+	checkevent EVENT_FAST_SHIP_HAS_ARRIVED
+	iftrue .Arrived
+	checkevent EVENT_FAST_SHIP_DESTINATION_OLIVINE
+	iftrue .Olivine
 	writetext UnknownText_0x7523b
 	closetext
 	loadmovesprites
 	end
-; 0x75174
 
-UnknownScript_0x75174: ; 0x75174
+.Olivine
 	writetext UnknownText_0x7529b
 	closetext
 	loadmovesprites
 	end
-; 0x7517a
 
-UnknownScript_0x7517a: ; 0x7517a
-	checkevent $002f
-	iftrue UnknownScript_0x7519c
+.Arrived:
+	checkevent EVENT_FAST_SHIP_DESTINATION_OLIVINE
+	iftrue ._Olivine
 	writetext UnknownText_0x754be
 	closetext
 	loadmovesprites
-	scall UnknownScript_0x751b8
+	scall .LetThePlayerOut
 	playsound SFX_EXIT_BUILDING
-	special Function8c084
+	special FadeBlackBGMap
 	waitbutton
-	setevent $072b
+	setevent EVENT_VERMILION_PORT_SAILOR_AT_GANGWAY
 	domaptrigger GROUP_VERMILION_PORT, MAP_VERMILION_PORT, $1
 	warp GROUP_VERMILION_PORT, MAP_VERMILION_PORT, $7, $11
 	end
-; 0x7519c
 
-UnknownScript_0x7519c: ; 0x7519c
+._Olivine
 	writetext UnknownText_0x7548d
 	closetext
 	loadmovesprites
-	scall UnknownScript_0x751b8
+	scall .LetThePlayerOut
 	playsound SFX_EXIT_BUILDING
-	special Function8c084
+	special FadeBlackBGMap
 	waitbutton
-	setevent $072a
+	setevent EVENT_OLIVINE_PORT_SAILOR_AT_GANGWAY
 	domaptrigger GROUP_OLIVINE_PORT, MAP_OLIVINE_PORT, $1
 	warp GROUP_OLIVINE_PORT, MAP_OLIVINE_PORT, $7, $17
 	end
-; 0x751b8
 
-UnknownScript_0x751b8: ; 0x751b8
-	checkcode $9
-	if_equal $3, UnknownScript_0x751c7
+.LetThePlayerOut:
+	checkcode VAR_FACING
+	if_equal RIGHT, .YouAreFacingRight
 	applymovement $2, MovementData_0x7520e
 	applymovement $0, MovementData_0x75235
 	end
-; 0x751c7
 
-UnknownScript_0x751c7: ; 0x751c7
+.YouAreFacingRight:
 	applymovement $2, MovementData_0x75214
 	applymovement $0, MovementData_0x75238
 	end
-; 0x751d0
 
-SailorScript_0x751d0: ; 0x751d0
+SailorScript_0x751d0:
 	faceplayer
 	loadfont
-	checkevent $0030
-	iftrue UnknownScript_0x751de
+	checkevent EVENT_FAST_SHIP_FIRST_TIME
+	iftrue .Vermilion
 	writetext UnknownText_0x752f9
 	closetext
 	loadmovesprites
 	end
-; 0x751de
 
-UnknownScript_0x751de: ; 0x751de
+.Vermilion:
 	writetext UnknownText_0x7534f
 	closetext
 	loadmovesprites
 	end
-; 0x751e4
 
-SailorScript_0x751e4: ; 0x751e4
+SailorScript_0x751e4:
 	jumptextfaceplayer UnknownText_0x753c0
-; 0x751e7
 
-UnknownScript_0x751e7: ; 0x751e7
+UnknownScript_0x751e7:
 	moveperson $5, $14, $6
-; 0x751eb
 
-UnknownScript_0x751eb: ; 0x751eb
+UnknownScript_0x751eb:
 	appear $5
 	applymovement $5, MovementData_0x7521b
 	playsound SFX_TACKLE
@@ -149,47 +133,40 @@
 	disappear $5
 	dotrigger $0
 	end
-; 0x7520e
 
-MovementData_0x7520e: ; 0x7520e
+MovementData_0x7520e:
 	slow_step_left
 	turn_head_right
 	step_end
-; 0x75211
 
-MovementData_0x75211: ; 0x75211
+MovementData_0x75211:
 	slow_step_right
 	turn_head_down
 	step_end
-; 0x75214
 
-MovementData_0x75214: ; 0x75214
+MovementData_0x75214:
 	slow_step_down
 	turn_head_up
 	step_end
-; 0x75217
 
-MovementData_0x75217: ; 0x75217
+MovementData_0x75217:
 	step_down
 	step_down
 	turn_head_down
 	step_end
-; 0x7521b
 
-MovementData_0x7521b: ; 0x7521b
+MovementData_0x7521b:
 	big_step_right
 	big_step_right
 	big_step_right
 	big_step_right
 	step_end
-; 0x75220
 
-MovementData_0x75220: ; 0x75220
+MovementData_0x75220:
 	step_right
 	step_end
-; 0x75222
 
-MovementData_0x75222: ; 0x75222
+MovementData_0x75222:
 	big_step_down
 	big_step_right
 	big_step_right
@@ -202,37 +179,31 @@
 	big_step_down
 	big_step_down
 	step_end
-; 0x7522e
 
-MovementData_0x7522e: ; 0x7522e
+MovementData_0x7522e:
 	big_step_right
 	turn_head_left
 	step_end
-; 0x75231
 
-MovementData_0x75231: ; 0x75231
+MovementData_0x75231:
 	step_up
 	step_end
-; 0x75233
 
-MovementData_0x75233: ; 0x75233
+MovementData_0x75233:
 	step_down
 	step_end
-; 0x75235
 
-MovementData_0x75235: ; 0x75235
+MovementData_0x75235:
 	step_up
 	step_up
 	step_end
-; 0x75238
 
-MovementData_0x75238: ; 0x75238
+MovementData_0x75238:
 	step_right
 	step_up
 	step_end
-; 0x7523b
 
-UnknownText_0x7523b: ; 0x7523b
+UnknownText_0x7523b:
 	text "FAST SHIP S.S.AQUA"
 	line "is en route to"
 	cont "VERMILION CITY."
@@ -241,9 +212,8 @@
 	line "announcement when"
 	cont "we arrive."
 	done
-; 0x7529b
 
-UnknownText_0x7529b: ; 0x7529b
+UnknownText_0x7529b:
 	text "FAST SHIP S.S.AQUA"
 	line "is en route to"
 	cont "OLIVINE CITY."
@@ -252,9 +222,8 @@
 	line "announcement when"
 	cont "we arrive."
 	done
-; 0x752f9
 
-UnknownText_0x752f9: ; 0x752f9
+UnknownText_0x752f9:
 	text "Here's your cabin."
 
 	para "If your #MON"
@@ -264,9 +233,8 @@
 	para "That will heal"
 	line "them."
 	done
-; 0x7534f
 
-UnknownText_0x7534f: ; 0x7534f
+UnknownText_0x7534f:
 	text "Here's your cabin."
 
 	para "You can heal your"
@@ -277,9 +245,8 @@
 	line "arrive while"
 	cont "you're sleeping."
 	done
-; 0x753c0
 
-UnknownText_0x753c0: ; 0x753c0
+UnknownText_0x753c0:
 	text "The passengers are"
 	line "all trainers."
 
@@ -287,9 +254,8 @@
 	line "ing to battle in"
 	cont "their cabins."
 	done
-; 0x75412
 
-UnknownText_0x75412: ; 0x75412
+UnknownText_0x75412:
 	text "Whoa! Excuse me."
 	line "I was in a hurry!"
 
@@ -302,27 +268,24 @@
 	para "her, please let me"
 	line "know!"
 	done
-; 0x7548d
 
-UnknownText_0x7548d: ; 0x7548d
+UnknownText_0x7548d:
 	text "FAST SHIP S.S.AQUA"
 	line "has arrived in"
 	cont "OLIVINE CITY."
 	done
-; 0x754be
 
-UnknownText_0x754be: ; 0x754be
+UnknownText_0x754be:
 	text "FAST SHIP S.S.AQUA"
 	line "has arrived in"
 	cont "VERMILION CITY."
 	done
-; 0x754f1
 
-FastShip1F_MapEventHeader: ; 0x754f1
+FastShip1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -337,18 +300,17 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 2
 	xy_trigger 2, $6, $18, $0, UnknownScript_0x751eb, $0, $0
 	xy_trigger 2, $6, $19, $0, UnknownScript_0x751e7, $0, $0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_SAILOR, 6, 29, $6, $0, 255, 255, $0, 0, SailorScript_0x75160, $ffff
-	person_event SPRITE_SAILOR, 11, 18, $9, $0, 255, 255, $0, 0, SailorScript_0x751d0, $ffff
-	person_event SPRITE_SAILOR, 21, 26, $5, $2, 255, 255, $0, 0, SailorScript_0x751e4, $ffff
-	person_event SPRITE_GENTLEMAN, 10, 23, $9, $0, 255, 255, $0, 0, ObjectEvent, $072c
-; 0x75577
+	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
--- a/maps/FastShipB1F.asm
+++ b/maps/FastShipB1F.asm
@@ -1,5 +1,5 @@
-FastShipB1F_MapScriptHeader: ; 0x76730
-	; trigger count
+FastShipB1F_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,20 +6,17 @@
 	dw UnknownScript_0x7673a, $0000
 	dw UnknownScript_0x7673b, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x7673a
 
-UnknownScript_0x7673a: ; 0x7673a
+UnknownScript_0x7673a:
 	end
-; 0x7673b
 
-UnknownScript_0x7673b: ; 0x7673b
+UnknownScript_0x7673b:
 	end
-; 0x7673c
 
-UnknownScript_0x7673c: ; 0x7673c
-	checkevent $072f
+UnknownScript_0x7673c:
+	checkevent EVENT_FAST_SHIP_B1F_SAILOR_RIGHT
 	iftrue UnknownScript_0x76766
 	applymovement $3, MovementData_0x76876
 	moveperson $2, $1e, $6
@@ -27,10 +24,9 @@
 	pause 5
 	disappear $3
 	end
-; 0x76751
 
-UnknownScript_0x76751: ; 0x76751
-	checkevent $072e
+UnknownScript_0x76751:
+	checkevent EVENT_FAST_SHIP_B1F_SAILOR_LEFT
 	iftrue UnknownScript_0x76766
 	applymovement $2, MovementData_0x76871
 	moveperson $3, $1f, $6
@@ -38,81 +34,57 @@
 	pause 5
 	disappear $2
 	end
-; 0x76766
 
-UnknownScript_0x76766: ; 0x76766
+UnknownScript_0x76766:
 	end
-; 0x76767
 
-SailorScript_0x76767: ; 0x76767
+SailorScript_0x76767:
 	faceplayer
 	loadfont
-	checkevent $0030
+	checkevent EVENT_FAST_SHIP_FIRST_TIME
 	iftrue UnknownScript_0x767a0
-	checkevent $0033
+	checkevent EVENT_FAST_SHIP_LAZY_SAILOR
 	iftrue UnknownScript_0x7678d
-	checkevent $0034
+	checkevent EVENT_FAST_SHIP_INFORMED_ABOUT_LAZY_SAILOR
 	iftrue UnknownScript_0x76787
 	writetext UnknownText_0x7687b
 	closetext
 	loadmovesprites
-	setevent $0034
-	clearevent $072d
+	setevent EVENT_FAST_SHIP_INFORMED_ABOUT_LAZY_SAILOR
+	clearevent EVENT_FAST_SHIP_CABINS_NNW_NNE_NE_SAILOR
 	end
-; 0x76787
 
-UnknownScript_0x76787: ; 0x76787
+UnknownScript_0x76787:
 	writetext UnknownText_0x76907
 	closetext
 	loadmovesprites
 	end
-; 0x7678d
 
-UnknownScript_0x7678d: ; 0x7678d
+UnknownScript_0x7678d:
 	writetext UnknownText_0x7692e
-	checkevent $0032
+	checkevent EVENT_FAST_SHIP_FOUND_GIRL
 	iffalse UnknownScript_0x76799
 	closetext
 	loadmovesprites
 	end
-; 0x76799
 
-UnknownScript_0x76799: ; 0x76799
+UnknownScript_0x76799:
 	keeptextopen
 	writetext UnknownText_0x7696d
 	closetext
 	loadmovesprites
 	end
-; 0x767a0
 
-UnknownScript_0x767a0: ; 0x767a0
+UnknownScript_0x767a0:
 	writetext UnknownText_0x7699d
 	closetext
 	loadmovesprites
 	end
-; 0x767a6
 
-TrainerSailorJeff: ; 0x767a6
-	; bit/flag number
-	dw $57a
+TrainerSailorJeff:
+	trainer EVENT_BEAT_SAILOR_JEFF, SAILOR, JEFF, SailorJeffSeenText, SailorJeffBeatenText, $0000, SailorJeffScript
 
-	; trainer group && trainer id
-	db SAILOR, JEFF
-
-	; text when seen
-	dw SailorJeffSeenText
-
-	; text when trainer beaten
-	dw SailorJeffBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SailorJeffScript
-; 0x767b2
-
-SailorJeffScript: ; 0x767b2
+SailorJeffScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x76a38
@@ -119,29 +91,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x767ba
 
-TrainerPicnickerDebra: ; 0x767ba
-	; bit/flag number
-	dw $485
+TrainerPicnickerDebra:
+	trainer EVENT_BEAT_PICNICKER_DEBRA, PICNICKER, DEBRA, PicnickerDebraSeenText, PicnickerDebraBeatenText, $0000, PicnickerDebraScript
 
-	; trainer group && trainer id
-	db PICNICKER, DEBRA
-
-	; text when seen
-	dw PicnickerDebraSeenText
-
-	; text when trainer beaten
-	dw PicnickerDebraBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PicnickerDebraScript
-; 0x767c6
-
-PicnickerDebraScript: ; 0x767c6
+PicnickerDebraScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x76a99
@@ -148,29 +102,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x767ce
 
-TrainerJugglerFritz: ; 0x767ce
-	; bit/flag number
-	dw $496
+TrainerJugglerFritz:
+	trainer EVENT_BEAT_JUGGLER_FRITZ, JUGGLER, FRITZ, JugglerFritzSeenText, JugglerFritzBeatenText, $0000, JugglerFritzScript
 
-	; trainer group && trainer id
-	db JUGGLER, FRITZ
-
-	; text when seen
-	dw JugglerFritzSeenText
-
-	; text when trainer beaten
-	dw JugglerFritzBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw JugglerFritzScript
-; 0x767da
-
-JugglerFritzScript: ; 0x767da
+JugglerFritzScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x76b02
@@ -177,29 +113,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x767e2
 
-TrainerSailorGarrett: ; 0x767e2
-	; bit/flag number
-	dw $57b
+TrainerSailorGarrett:
+	trainer EVENT_BEAT_SAILOR_GARRETT, SAILOR, GARRETT, SailorGarrettSeenText, SailorGarrettBeatenText, $0000, SailorGarrettScript
 
-	; trainer group && trainer id
-	db SAILOR, GARRETT
-
-	; text when seen
-	dw SailorGarrettSeenText
-
-	; text when trainer beaten
-	dw SailorGarrettBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SailorGarrettScript
-; 0x767ee
-
-SailorGarrettScript: ; 0x767ee
+SailorGarrettScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x76b7a
@@ -206,29 +124,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x767f6
 
-TrainerFisherJonah: ; 0x767f6
-	; bit/flag number
-	dw $459
+TrainerFisherJonah:
+	trainer EVENT_BEAT_FISHER_JONAH, FISHER, JONAH, FisherJonahSeenText, FisherJonahBeatenText, $0000, FisherJonahScript
 
-	; trainer group && trainer id
-	db FISHER, JONAH
-
-	; text when seen
-	dw FisherJonahSeenText
-
-	; text when trainer beaten
-	dw FisherJonahBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw FisherJonahScript
-; 0x76802
-
-FisherJonahScript: ; 0x76802
+FisherJonahScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x76c22
@@ -235,29 +135,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x7680a
 
-TrainerBlackbeltWai: ; 0x7680a
-	; bit/flag number
-	dw $4ac
+TrainerBlackbeltWai:
+	trainer EVENT_BEAT_BLACKBELT_WAI, BLACKBELT_T, WAI, BlackbeltWaiSeenText, BlackbeltWaiBeatenText, $0000, BlackbeltWaiScript
 
-	; trainer group && trainer id
-	db BLACKBELT_T, WAI
-
-	; text when seen
-	dw BlackbeltWaiSeenText
-
-	; text when trainer beaten
-	dw BlackbeltWaiBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw BlackbeltWaiScript
-; 0x76816
-
-BlackbeltWaiScript: ; 0x76816
+BlackbeltWaiScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x76c9e
@@ -264,29 +146,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x7681e
 
-TrainerSailorKenneth: ; 0x7681e
-	; bit/flag number
-	dw $57c
+TrainerSailorKenneth:
+	trainer EVENT_BEAT_SAILOR_KENNETH, SAILOR, KENNETH, SailorKennethSeenText, SailorKennethBeatenText, $0000, SailorKennethScript
 
-	; trainer group && trainer id
-	db SAILOR, KENNETH
-
-	; text when seen
-	dw SailorKennethSeenText
-
-	; text when trainer beaten
-	dw SailorKennethBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SailorKennethScript
-; 0x7682a
-
-SailorKennethScript: ; 0x7682a
+SailorKennethScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x76d5f
@@ -293,29 +157,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x76832
 
-TrainerTeacherShirley: ; 0x76832
-	; bit/flag number
-	dw $5b7
+TrainerTeacherShirley:
+	trainer EVENT_BEAT_TEACHER_SHIRLEY, TEACHER, SHIRLEY, TeacherShirleySeenText, TeacherShirleyBeatenText, $0000, TeacherShirleyScript
 
-	; trainer group && trainer id
-	db TEACHER, SHIRLEY
-
-	; text when seen
-	dw TeacherShirleySeenText
-
-	; text when trainer beaten
-	dw TeacherShirleyBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw TeacherShirleyScript
-; 0x7683e
-
-TeacherShirleyScript: ; 0x7683e
+TeacherShirleyScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x76de1
@@ -322,29 +168,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x76846
 
-TrainerSchoolboyNate: ; 0x76846
-	; bit/flag number
-	dw $476
+TrainerSchoolboyNate:
+	trainer EVENT_BEAT_SCHOOLBOY_NATE, SCHOOLBOY, NATE, SchoolboyNateSeenText, SchoolboyNateBeatenText, $0000, SchoolboyNateScript
 
-	; trainer group && trainer id
-	db SCHOOLBOY, NATE
-
-	; text when seen
-	dw SchoolboyNateSeenText
-
-	; text when trainer beaten
-	dw SchoolboyNateBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SchoolboyNateScript
-; 0x76852
-
-SchoolboyNateScript: ; 0x76852
+SchoolboyNateScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x76e3d
@@ -351,29 +179,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x7685a
 
-TrainerSchoolboyRicky: ; 0x7685a
-	; bit/flag number
-	dw $477
+TrainerSchoolboyRicky:
+	trainer EVENT_BEAT_SCHOOLBOY_RICKY, SCHOOLBOY, RICKY, SchoolboyRickySeenText, SchoolboyRickyBeatenText, $0000, SchoolboyRickyScript
 
-	; trainer group && trainer id
-	db SCHOOLBOY, RICKY
-
-	; text when seen
-	dw SchoolboyRickySeenText
-
-	; text when trainer beaten
-	dw SchoolboyRickyBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SchoolboyRickyScript
-; 0x76866
-
-SchoolboyRickyScript: ; 0x76866
+SchoolboyRickyScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x76eb6
@@ -380,28 +190,25 @@
 	closetext
 	loadmovesprites
 	end
-; 0x7686e
 
 FashShipB1FTrashcan:
 	jumpstd trashcan
 
-MovementData_0x76871: ; 0x76871
+MovementData_0x76871:
 	fix_facing
 	big_step_right
 	remove_fixed_facing
 	turn_head_down
 	step_end
-; 0x76876
 
-MovementData_0x76876: ; 0x76876
+MovementData_0x76876:
 	fix_facing
 	big_step_left
 	remove_fixed_facing
 	turn_head_down
 	step_end
-; 0x7687b
 
-UnknownText_0x7687b: ; 0x7687b
+UnknownText_0x7687b:
 	text "Hey, kid. Could I"
 	line "get you to look"
 	cont "for my buddy?"
@@ -414,17 +221,15 @@
 	line "him, but I'm on"
 	cont "duty right now."
 	done
-; 0x76907
 
-UnknownText_0x76907: ; 0x76907
+UnknownText_0x76907:
 	text "Oh, gee…"
 
 	para "The CAPTAIN will"
 	line "be furious…"
 	done
-; 0x7692e
 
-UnknownText_0x7692e: ; 0x7692e
+UnknownText_0x7692e:
 	text "Thanks, kid!"
 	line "I chewed him out"
 
@@ -431,17 +236,15 @@
 	para "good so he'll quit"
 	line "slacking off!"
 	done
-; 0x7696d
 
-UnknownText_0x7696d: ; 0x7696d
+UnknownText_0x7696d:
 	text "A little girl?"
 
 	para "I may have seen"
 	line "her go by here."
 	done
-; 0x7699d
 
-UnknownText_0x7699d: ; 0x7699d
+UnknownText_0x7699d:
 	text "The dining room is"
 	line "up ahead."
 
@@ -449,41 +252,35 @@
 	line "end lead to the"
 	cont "CAPTAIN's cabin."
 	done
-; 0x769ed
 
-SailorJeffSeenText: ; 0x769ed
+SailorJeffSeenText:
 	text "Nothing beats a"
 	line "battle when I'm"
 	cont "on my break."
 	done
-; 0x76a1a
 
-SailorJeffBeatenText: ; 0x76a1a
+SailorJeffBeatenText:
 	text "Win or lose, my"
 	line "break's over!"
 	done
-; 0x76a38
 
-UnknownText_0x76a38: ; 0x76a38
+UnknownText_0x76a38:
 	text "I guess I can't"
 	line "win if I don't get"
 	cont "serious."
 	done
-; 0x76a63
 
-PicnickerDebraSeenText: ; 0x76a63
+PicnickerDebraSeenText:
 	text "I'm so bored."
 	line "Want to battle?"
 	done
-; 0x76a81
 
-PicnickerDebraBeatenText: ; 0x76a81
+PicnickerDebraBeatenText:
 	text "Yow! You're too"
 	line "strong!"
 	done
-; 0x76a99
 
-UnknownText_0x76a99: ; 0x76a99
+UnknownText_0x76a99:
 	text "SAFFRON, CELADON…"
 	line "I hear there are"
 
@@ -490,21 +287,18 @@
 	para "many big cities"
 	line "in KANTO."
 	done
-; 0x76ad7
 
-JugglerFritzSeenText: ; 0x76ad7
+JugglerFritzSeenText:
 	text "Urrf…"
 	line "I'm seasick!"
 	done
-; 0x76aea
 
-JugglerFritzBeatenText: ; 0x76aea
+JugglerFritzBeatenText:
 	text "I can't move any-"
 	line "more…"
 	done
-; 0x76b02
 
-UnknownText_0x76b02: ; 0x76b02
+UnknownText_0x76b02:
 	text "No more ships for"
 	line "me. Next time,"
 
@@ -511,21 +305,18 @@
 	para "I'm taking the"
 	line "MAGNET TRAIN."
 	done
-; 0x76b40
 
-SailorGarrettSeenText: ; 0x76b40
+SailorGarrettSeenText:
 	text "This is where we"
 	line "sailors work!"
 	done
-; 0x76b60
 
-SailorGarrettBeatenText: ; 0x76b60
+SailorGarrettBeatenText:
 	text "I lost on my home"
 	line "field…"
 	done
-; 0x76b7a
 
-UnknownText_0x76b7a: ; 0x76b7a
+UnknownText_0x76b7a:
 	text "We get different"
 	line "passengers from"
 
@@ -532,9 +323,8 @@
 	para "VERMILION CITY to"
 	line "OLIVINE CITY."
 	done
-; 0x76bbc
 
-FisherJonahSeenText: ; 0x76bbc
+FisherJonahSeenText:
 	text "Even though we're"
 	line "out on the sea, I"
 	cont "can't fish!"
@@ -542,21 +332,18 @@
 	para "This is boring!"
 	line "Let's battle!"
 	done
-; 0x76c08
 
-FisherJonahBeatenText: ; 0x76c08
+FisherJonahBeatenText:
 	text "I… I'm not bored"
 	line "anymore…"
 	done
-; 0x76c22
 
-UnknownText_0x76c22: ; 0x76c22
+UnknownText_0x76c22:
 	text "I plan to fish off"
 	line "VERMILION's pier."
 	done
-; 0x76c47
 
-BlackbeltWaiSeenText: ; 0x76c47
+BlackbeltWaiSeenText:
 	text "I'm building up my"
 	line "legs by bracing"
 
@@ -563,15 +350,13 @@
 	para "against the ship's"
 	line "rocking!"
 	done
-; 0x76c85
 
-BlackbeltWaiBeatenText: ; 0x76c85
+BlackbeltWaiBeatenText:
 	text "Rocked and rolled"
 	line "over!"
 	done
-; 0x76c9e
 
-UnknownText_0x76c9e: ; 0x76c9e
+UnknownText_0x76c9e:
 	text "I couldn't find"
 	line "the KARATE KING in"
 	cont "JOHTO."
@@ -580,9 +365,8 @@
 	line "be training in a"
 	cont "cave somewhere."
 	done
-; 0x76cf9
 
-SailorKennethSeenText: ; 0x76cf9
+SailorKennethSeenText:
 	text "I'm a sailor man!"
 
 	para "But I'm training"
@@ -589,15 +373,13 @@
 	line "#MON, so I can"
 	cont "become the CHAMP!"
 	done
-; 0x76d3c
 
-SailorKennethBeatenText: ; 0x76d3c
+SailorKennethBeatenText:
 	text "My lack of train-"
 	line "ing is obvious…"
 	done
-; 0x76d5f
 
-UnknownText_0x76d5f: ; 0x76d5f
+UnknownText_0x76d5f:
 	text "Eight BADGES!"
 	line "They must prove"
 
@@ -607,93 +389,82 @@
 	para "No wonder you're"
 	line "so good!"
 	done
-; 0x76db6
 
-TeacherShirleySeenText: ; 0x76db6
+TeacherShirleySeenText:
 	text "Don't lay a finger"
 	line "on my students!"
 	done
-; 0x76dd9
 
-TeacherShirleyBeatenText: ; 0x76dd9
+TeacherShirleyBeatenText:
 	text "Aaack!"
 	done
-; 0x76de1
 
-UnknownText_0x76de1: ; 0x76de1
+UnknownText_0x76de1:
 	text "We're on a field"
 	line "trip to the RUINS"
 	cont "outside VIOLET."
 	done
-; 0x76e14
 
-SchoolboyNateSeenText: ; 0x76e14
+SchoolboyNateSeenText:
 	text "Do you know the"
 	line "RUINS OF ALPH?"
 	done
-; 0x76e34
 
-SchoolboyNateBeatenText: ; 0x76e34
+SchoolboyNateBeatenText:
 	text "Yaargh!"
 	done
-; 0x76e3d
 
-UnknownText_0x76e3d: ; 0x76e3d
+UnknownText_0x76e3d:
 	text "Radios pick up"
 	line "strange signals"
 	cont "inside the RUINS."
 	done
-; 0x76e6f
 
-SchoolboyRickySeenText: ; 0x76e6f
+SchoolboyRickySeenText:
 	text "There are some odd"
 	line "stone panels in"
 	cont "the RUINS OF ALPH."
 	done
-; 0x76ea6
 
-SchoolboyRickyBeatenText: ; 0x76ea6
+SchoolboyRickyBeatenText:
 	text "I was done in!"
 	done
-; 0x76eb6
 
-UnknownText_0x76eb6: ; 0x76eb6
+UnknownText_0x76eb6:
 	text "I read that there"
 	line "are four of those"
 	cont "stone panels."
 	done
-; 0x76ee9
 
-FastShipB1F_MapEventHeader: ; 0x76ee9
+FastShipB1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 2
 	xy_trigger 0, $7, $1e, $0, UnknownScript_0x7673c, $0, $0
 	xy_trigger 0, $7, $1f, $0, UnknownScript_0x76751, $0, $0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 9, 27, $0, FashShipB1FTrashcan
+	signpost 9, 27, SIGNPOST_READ, FashShipB1FTrashcan
 
-	; people-events
+.PersonEvents:
 	db 12
-	person_event SPRITE_SAILOR, 10, 34, $6, $0, 255, 255, $90, 0, SailorScript_0x76767, $072e
-	person_event SPRITE_SAILOR, 10, 35, $6, $0, 255, 255, $90, 0, SailorScript_0x76767, $072f
-	person_event SPRITE_SAILOR, 15, 13, $7, $0, 255, 255, $92, 3, TrainerSailorJeff, $0739
-	person_event SPRITE_LASS, 8, 10, $7, $0, 255, 255, $a2, 1, TrainerPicnickerDebra, $0739
-	person_event SPRITE_SUPER_NERD, 13, 30, $9, $0, 255, 255, $92, 1, TrainerJugglerFritz, $0739
-	person_event SPRITE_SAILOR, 8, 21, $9, $0, 255, 255, $92, 4, TrainerSailorGarrett, $073a
-	person_event SPRITE_FISHER, 12, 29, $7, $0, 255, 255, $a2, 3, TrainerFisherJonah, $073a
-	person_event SPRITE_BLACK_BELT, 15, 19, $1f, $0, 255, 255, $b2, 3, TrainerBlackbeltWai, $073a
-	person_event SPRITE_SAILOR, 8, 27, $9, $0, 255, 255, $92, 4, TrainerSailorKenneth, $073b
-	person_event SPRITE_TEACHER, 15, 13, $7, $0, 255, 255, $82, 3, TrainerTeacherShirley, $073b
-	person_event SPRITE_YOUNGSTER, 13, 18, $3, $0, 255, 255, $92, 1, TrainerSchoolboyNate, $073b
-	person_event SPRITE_YOUNGSTER, 15, 18, $a, $0, 255, 255, $92, 1, TrainerSchoolboyRicky, $073b
-; 0x76faa
+	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
--- a/maps/FastShipCabins_NNW_NNE_NE.asm
+++ b/maps/FastShipCabins_NNW_NNE_NE.asm
@@ -1,32 +1,14 @@
-FastShipCabins_NNW_NNE_NE_MapScriptHeader: ; 0x75577
-	; trigger count
+FastShipCabins_NNW_NNE_NE_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x75579
 
-TrainerCooltrainermSean: ; 0x75579
-	; bit/flag number
-	dw $557
+TrainerCooltrainermSean:
+	trainer EVENT_BEAT_COOLTRAINERM_SEAN, COOLTRAINERM, SEAN, CooltrainermSeanSeenText, CooltrainermSeanBeatenText, $0000, CooltrainermSeanScript
 
-	; trainer group && trainer id
-	db COOLTRAINERM, SEAN
-
-	; text when seen
-	dw CooltrainermSeanSeenText
-
-	; text when trainer beaten
-	dw CooltrainermSeanBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainermSeanScript
-; 0x75585
-
-CooltrainermSeanScript: ; 0x75585
+CooltrainermSeanScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x7567b
@@ -33,29 +15,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x7558d
 
-TrainerCooltrainerfCarol: ; 0x7558d
-	; bit/flag number
-	dw $567
+TrainerCooltrainerfCarol:
+	trainer EVENT_BEAT_COOLTRAINERF_CAROL, COOLTRAINERF, CAROL, CooltrainerfCarolSeenText, CooltrainerfCarolBeatenText, $0000, CooltrainerfCarolScript
 
-	; trainer group && trainer id
-	db COOLTRAINERF, CAROL
-
-	; text when seen
-	dw CooltrainerfCarolSeenText
-
-	; text when trainer beaten
-	dw CooltrainerfCarolBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainerfCarolScript
-; 0x75599
-
-CooltrainerfCarolScript: ; 0x75599
+CooltrainerfCarolScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x756f7
@@ -62,29 +26,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x755a1
 
-TrainerPokemaniacEthan: ; 0x755a1
-	; bit/flag number
-	dw $4eb
+TrainerPokemaniacEthan:
+	trainer EVENT_BEAT_POKEMANIAC_ETHAN, POKEMANIAC, ETHAN, PokemaniacEthanSeenText, PokemaniacEthanBeatenText, $0000, PokemaniacEthanScript
 
-	; trainer group && trainer id
-	db POKEMANIAC, ETHAN
-
-	; text when seen
-	dw PokemaniacEthanSeenText
-
-	; text when trainer beaten
-	dw PokemaniacEthanBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PokemaniacEthanScript
-; 0x755ad
-
-PokemaniacEthanScript: ; 0x755ad
+PokemaniacEthanScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x7574b
@@ -91,29 +37,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x755b5
 
-TrainerHikerNoland: ; 0x755b5
-	; bit/flag number
-	dw $531
+TrainerHikerNoland:
+	trainer EVENT_BEAT_HIKER_NOLAND, HIKER, NOLAND, HikerNolandSeenText, HikerNolandBeatenText, $0000, HikerNolandScript
 
-	; trainer group && trainer id
-	db HIKER, NOLAND
-
-	; text when seen
-	dw HikerNolandSeenText
-
-	; text when trainer beaten
-	dw HikerNolandBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw HikerNolandScript
-; 0x755c1
-
-HikerNolandScript: ; 0x755c1
+HikerNolandScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x757d4
@@ -120,29 +48,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x755c9
 
-TrainerGentlemanEdward: ; 0x755c9
-	; bit/flag number
-	dw $49b
+TrainerGentlemanEdward:
+	trainer EVENT_BEAT_GENTLEMAN_EDWARD, GENTLEMAN, EDWARD, GentlemanEdwardSeenText, GentlemanEdwardBeatenText, $0000, GentlemanEdwardScript
 
-	; trainer group && trainer id
-	db GENTLEMAN, EDWARD
-
-	; text when seen
-	dw GentlemanEdwardSeenText
-
-	; text when trainer beaten
-	dw GentlemanEdwardBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GentlemanEdwardScript
-; 0x755d5
-
-GentlemanEdwardScript: ; 0x755d5
+GentlemanEdwardScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x75937
@@ -149,29 +59,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x755dd
 
-TrainerBurglarCorey: ; 0x755dd
-	; bit/flag number
-	dw $42f
+TrainerBurglarCorey:
+	trainer EVENT_BEAT_BURGLAR_COREY, BURGLAR, COREY, BurglarCoreySeenText, BurglarCoreyBeatenText, $0000, BurglarCoreyScript
 
-	; trainer group && trainer id
-	db BURGLAR, COREY
-
-	; text when seen
-	dw BurglarCoreySeenText
-
-	; text when trainer beaten
-	dw BurglarCoreyBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw BurglarCoreyScript
-; 0x755e9
-
-BurglarCoreyScript: ; 0x755e9
+BurglarCoreyScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x75996
@@ -178,9 +70,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x755f1
 
-SailorScript_0x755f1: ; 0x755f1
+SailorScript_0x755f1:
 	playmusic MUSIC_HIKER_ENCOUNTER
 	faceplayer
 	loadfont
@@ -192,14 +83,14 @@
 	startbattle
 	reloadmap
 	special HealParty
-	setevent $057d
+	setevent EVENT_BEAT_SAILOR_STANLY
 	loadfont
 	writetext UnknownText_0x758b1
 	closetext
 	loadmovesprites
-	setevent $0033
+	setevent EVENT_FAST_SHIP_LAZY_SAILOR
 	domaptrigger GROUP_FAST_SHIP_B1F, MAP_FAST_SHIP_B1F, $1
-	checkcode $9
+	checkcode VAR_FACING
 	if_equal $3, UnknownScript_0x75629
 	applymovement $6, MovementData_0x75637
 	playsound SFX_EXIT_BUILDING
@@ -206,28 +97,25 @@
 	disappear $6
 	waitbutton
 	end
-; 0x75629
 
-UnknownScript_0x75629: ; 0x75629
+UnknownScript_0x75629:
 	applymovement $6, MovementData_0x7563c
 	playsound SFX_EXIT_BUILDING
 	disappear $6
 	waitbutton
 	end
-; 0x75634
 
 FastShipCabins_NNW_NNE_NETrashcan:
 	jumpstd trashcan
 
-MovementData_0x75637: ; 0x75637
+MovementData_0x75637:
 	step_left
 	step_left
 	step_up
 	step_up
 	step_end
-; 0x7563c
 
-MovementData_0x7563c: ; 0x7563c
+MovementData_0x7563c:
 	step_down
 	step_left
 	step_left
@@ -235,20 +123,17 @@
 	step_up
 	step_up
 	step_end
-; 0x75643
 
-CooltrainermSeanSeenText: ; 0x75643
+CooltrainermSeanSeenText:
 	text "I'm going to KANTO"
 	line "to test my skills."
 	done
-; 0x75669
 
-CooltrainermSeanBeatenText: ; 0x75669
+CooltrainermSeanBeatenText:
 	text "I wanted to win!"
 	done
-; 0x7567b
 
-UnknownText_0x7567b: ; 0x7567b
+UnknownText_0x7567b:
 	text "Trainers from"
 	line "JOHTO can battle"
 
@@ -255,39 +140,33 @@
 	para "with KANTO GYM"
 	line "LEADERS."
 	done
-; 0x756b3
 
-CooltrainerfCarolSeenText: ; 0x756b3
+CooltrainerfCarolSeenText:
 	text "I'm training to"
 	line "become the CHAMP!"
 	done
-; 0x756d5
 
-CooltrainerfCarolBeatenText: ; 0x756d5
+CooltrainerfCarolBeatenText:
 	text "What's so differ-"
 	line "ent between us?"
 	done
-; 0x756f7
 
-UnknownText_0x756f7: ; 0x756f7
+UnknownText_0x756f7:
 	text "I'm going to beat"
 	line "you someday!"
 	done
-; 0x75716
 
-PokemaniacEthanSeenText: ; 0x75716
+PokemaniacEthanSeenText:
 	text "Do you know LILY?"
 	line "She's a hot DJ in"
 	cont "KANTO."
 	done
-; 0x75741
 
-PokemaniacEthanBeatenText: ; 0x75741
+PokemaniacEthanBeatenText:
 	text "Gyaaaah!"
 	done
-; 0x7574b
 
-UnknownText_0x7574b: ; 0x7574b
+UnknownText_0x7574b:
 	text "LILY's nice, but"
 	line "MARY's the best!"
 
@@ -295,21 +174,18 @@
 	line "out JOHTO's radio"
 	cont "programs!"
 	done
-; 0x75797
 
-HikerNolandSeenText: ; 0x75797
+HikerNolandSeenText:
 	text "Are you alone?"
 	line "Then let's battle!"
 	done
-; 0x757b9
 
-HikerNolandBeatenText: ; 0x757b9
+HikerNolandBeatenText:
 	text "That's too much to"
 	line "handle!"
 	done
-; 0x757d4
 
-UnknownText_0x757d4: ; 0x757d4
+UnknownText_0x757d4:
 	text "I wonder if there"
 	line "are any mountains"
 
@@ -316,9 +192,8 @@
 	para "worth climbing in"
 	line "KANTO?"
 	done
-; 0x75812
 
-UnknownText_0x75812: ; 0x75812
+UnknownText_0x75812:
 	text "Yeah, I'm a sail-"
 	line "or, all right."
 
@@ -332,36 +207,31 @@
 	para "Ah, forget it!"
 	line "Let's battle!"
 	done
-; 0x75897
 
-UnknownText_0x75897: ; 0x75897
+UnknownText_0x75897:
 	text "Sorry! It's all my"
 	line "fault!"
 	done
-; 0x758b1
 
-UnknownText_0x758b1: ; 0x758b1
+UnknownText_0x758b1:
 	text "Being a sailor, I"
 	line "have to do phys-"
 	cont "ical labor. It's"
 	cont "exhausting!"
 	done
-; 0x758f1
 
-GentlemanEdwardSeenText: ; 0x758f1
+GentlemanEdwardSeenText:
 	text "Oh, no. I've lost"
 	line "something that's"
 	cont "very important."
 	done
-; 0x75923
 
-GentlemanEdwardBeatenText: ; 0x75923
+GentlemanEdwardBeatenText:
 	text "I… I can't find"
 	line "it…"
 	done
-; 0x75937
 
-UnknownText_0x75937: ; 0x75937
+UnknownText_0x75937:
 	text "I give up."
 	line "You don't have to"
 
@@ -368,21 +238,18 @@
 	para "look. Just forget"
 	line "about it!"
 	done
-; 0x75970
 
-BurglarCoreySeenText: ; 0x75970
+BurglarCoreySeenText:
 	text "Yeehaw!"
 	line "Lucky!"
 	done
-; 0x75980
 
-BurglarCoreyBeatenText: ; 0x75980
+BurglarCoreyBeatenText:
 	text "How unlucky!"
 	line "I lost!"
 	done
-; 0x75996
 
-UnknownText_0x75996: ; 0x75996
+UnknownText_0x75996:
 	text "I found a pretty"
 	line "coin here."
 
@@ -389,34 +256,32 @@
 	para "Someone must have"
 	line "lost it…"
 	done
-; 0x759ce
 
-FastShipCabins_NNW_NNE_NE_MapEventHeader: ; 0x759ce
+FastShipCabins_NNW_NNE_NE_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 3
-	signpost 13, 6, $0, FastShipCabins_NNW_NNE_NETrashcan
-	signpost 19, 7, $0, FastShipCabins_NNW_NNE_NETrashcan
-	signpost 31, 7, $0, FastShipCabins_NNW_NNE_NETrashcan
+	signpost 13, 6, SIGNPOST_READ, FastShipCabins_NNW_NNE_NETrashcan
+	signpost 19, 7, SIGNPOST_READ, FastShipCabins_NNW_NNE_NETrashcan
+	signpost 31, 7, SIGNPOST_READ, FastShipCabins_NNW_NNE_NETrashcan
 
-	; people-events
+.PersonEvents:
 	db 7
-	person_event SPRITE_COOLTRAINER_M, 7, 8, $a, $0, 255, 255, $82, 2, TrainerCooltrainermSean, $073a
-	person_event SPRITE_COOLTRAINER_F, 9, 5, $7, $0, 255, 255, $82, 3, TrainerCooltrainerfCarol, $073a
-	person_event SPRITE_SUPER_NERD, 9, 5, $7, $0, 255, 255, $92, 3, TrainerPokemaniacEthan, $073b
-	person_event SPRITE_POKEFAN_M, 21, 8, $7, $0, 255, 255, $b2, 3, TrainerHikerNoland, $0739
-	person_event SPRITE_SAILOR, 30, 8, $3, $0, 255, 255, $90, 0, SailorScript_0x755f1, $072d
-	person_event SPRITE_GENTLEMAN, 34, 11, $3, $0, 255, 255, $92, 1, TrainerGentlemanEdward, $073a
-	person_event SPRITE_PHARMACIST, 34, 6, $7, $0, 255, 255, $a2, 4, TrainerBurglarCorey, $073b
-; 0x75a4d
+	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
--- a/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm
+++ b/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm
@@ -1,34 +1,30 @@
-FastShipCabins_SE_SSE_CaptainsCabin_MapScriptHeader: ; 0x75ea4
-	; trigger count
+FastShipCabins_SE_SSE_CaptainsCabin_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x75ea6
 
-UnknownScript_0x75ea6: ; 0x75ea6
+UnknownScript_0x75ea6:
 	end
-; 0x75ea7
 
-CaptainScript_0x75ea7: ; 0x75ea7
+CaptainScript_0x75ea7:
 	faceplayer
 	loadfont
-	checkevent $0030
+	checkevent EVENT_FAST_SHIP_FIRST_TIME
 	iftrue UnknownScript_0x75eb5
 	writetext UnknownText_0x76012
 	closetext
 	loadmovesprites
 	end
-; 0x75eb5
 
-UnknownScript_0x75eb5: ; 0x75eb5
+UnknownScript_0x75eb5:
 	writetext UnknownText_0x76064
 	closetext
 	loadmovesprites
 	end
-; 0x75ebb
 
-TwinScript_0x75ebb: ; 0x75ebb
+TwinScript_0x75ebb:
 	spriteface $5, RIGHT
 	loadfont
 	writetext UnknownText_0x761e0
@@ -39,8 +35,8 @@
 	writetext UnknownText_0x7621f
 	closetext
 	loadmovesprites
-	special Function8c0b6
-	special Functiond91
+	special Special_FadeBlackQuickly
+	special Special_ReloadSpritesNoPalettes
 	disappear $5
 	applymovement $0, MovementData_0x76004
 	moveperson $4, $3, $13
@@ -47,12 +43,12 @@
 	appear $4
 	spriteface $0, UP
 	spriteface $4, UP
-	special Function8c0ab
+	special Special_FadeInQuickly
 	spriteface $3, DOWN
-	showemote $0, $3, 15
+	showemote EMOTE_SHOCK, $3, 15
 	applymovement $4, MovementData_0x7600c
 	spriteface $3, RIGHT
-	checkflag $0063
+	checkflag ENGINE_PLAYER_IS_FEMALE
 	iftrue UnknownScript_0x75f03
 	loadfont
 	writetext UnknownText_0x76284
@@ -59,30 +55,28 @@
 	closetext
 	loadmovesprites
 	jump UnknownScript_0x75f09
-; 0x75f03
 
-UnknownScript_0x75f03: ; 0x75f03
+UnknownScript_0x75f03:
 	loadfont
 	writetext UnknownText_0x762c6
 	closetext
 	loadmovesprites
-UnknownScript_0x75f09: ; 0x75f09
+UnknownScript_0x75f09:
 	spriteface $5, DOWN
 	applymovement $3, MovementData_0x76010
 	loadfont
 	writetext UnknownText_0x76143
 	keeptextopen
-	setevent $072b
+	setevent EVENT_VERMILION_PORT_SAILOR_AT_GANGWAY
 	domaptrigger GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F, $0
 	jump UnknownScript_0x75f37
-; 0x75f1f
 
-GentlemanScript_0x75f1f: ; 0x75f1f
+GentlemanScript_0x75f1f:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_METAL_COAT_FROM_GRANDPA_ON_SS_AQUA
 	iftrue UnknownScript_0x75f67
-	checkevent $0732
+	checkevent EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_2
 	iftrue UnknownScript_0x75f58
 	writetext UnknownText_0x760ae
 	closetext
@@ -89,15 +83,14 @@
 	loadmovesprites
 	domaptrigger GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F, $0
 	end
-; 0x75f37
 
-UnknownScript_0x75f37: ; 0x75f37
+UnknownScript_0x75f37:
 	writetext UnknownText_0x7619b
 	keeptextopen
 	verbosegiveitem METAL_COAT, 1
 	iffalse UnknownScript_0x75f44
 	setevent EVENT_GOT_METAL_COAT_FROM_GRANDPA_ON_SS_AQUA
-UnknownScript_0x75f44: ; 0x75f44
+UnknownScript_0x75f44:
 	loadmovesprites
 	waitbutton
 	playsound SFX_ELEVATOR_END
@@ -105,31 +98,28 @@
 	loadfont
 	writetext UnknownText_0x76645
 	closetext
-	setevent $0031
-	setevent $0032
+	setevent EVENT_FAST_SHIP_HAS_ARRIVED
+	setevent EVENT_FAST_SHIP_FOUND_GIRL
 	loadmovesprites
 	end
-; 0x75f58
 
-UnknownScript_0x75f58: ; 0x75f58
+UnknownScript_0x75f58:
 	writetext UnknownText_0x7619b
 	keeptextopen
 	verbosegiveitem METAL_COAT, 1
 	iffalse UnknownScript_0x75f65
 	setevent EVENT_GOT_METAL_COAT_FROM_GRANDPA_ON_SS_AQUA
-UnknownScript_0x75f65: ; 0x75f65
+UnknownScript_0x75f65:
 	loadmovesprites
 	end
-; 0x75f67
 
-UnknownScript_0x75f67: ; 0x75f67
+UnknownScript_0x75f67:
 	writetext UnknownText_0x761be
 	closetext
 	loadmovesprites
 	end
-; 0x75f6d
 
-TwinScript_0x75f6d: ; 0x75f6d
+TwinScript_0x75f6d:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x7630d
@@ -136,29 +126,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x75f75
 
-TrainerPokefanmColin: ; 0x75f75
-	; bit/flag number
-	dw $4d5
+TrainerPokefanmColin:
+	trainer EVENT_BEAT_POKEFANM_COLIN, POKEFANM, COLIN, PokefanmColinSeenText, PokefanmColinBeatenText, $0000, PokefanmColinScript
 
-	; trainer group && trainer id
-	db POKEFANM, COLIN
-
-	; text when seen
-	dw PokefanmColinSeenText
-
-	; text when trainer beaten
-	dw PokefanmColinBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PokefanmColinScript
-; 0x75f81
-
-PokefanmColinScript: ; 0x75f81
+PokefanmColinScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x7635b
@@ -165,29 +137,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x75f89
 
-TrainerTwinsMegandpeg1: ; 0x75f89
-	; bit/flag number
-	dw $46a
+TrainerTwinsMegandpeg1:
+	trainer EVENT_BEAT_TWINS_MEG_AND_PEG, TWINS, MEGANDPEG1, TwinsMegandpeg1SeenText, TwinsMegandpeg1BeatenText, $0000, TwinsMegandpeg1Script
 
-	; trainer group && trainer id
-	db TWINS, MEGANDPEG1
-
-	; text when seen
-	dw TwinsMegandpeg1SeenText
-
-	; text when trainer beaten
-	dw TwinsMegandpeg1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw TwinsMegandpeg1Script
-; 0x75f95
-
-TwinsMegandpeg1Script: ; 0x75f95
+TwinsMegandpeg1Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x763c2
@@ -194,29 +148,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x75f9d
 
-TrainerTwinsMegandpeg2: ; 0x75f9d
-	; bit/flag number
-	dw $46a
+TrainerTwinsMegandpeg2:
+	trainer EVENT_BEAT_TWINS_MEG_AND_PEG, TWINS, MEGANDPEG2, TwinsMegandpeg2SeenText, TwinsMegandpeg2BeatenText, $0000, TwinsMegandpeg2Script
 
-	; trainer group && trainer id
-	db TWINS, MEGANDPEG2
-
-	; text when seen
-	dw TwinsMegandpeg2SeenText
-
-	; text when trainer beaten
-	dw TwinsMegandpeg2BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw TwinsMegandpeg2Script
-; 0x75fa9
-
-TwinsMegandpeg2Script: ; 0x75fa9
+TwinsMegandpeg2Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x76428
@@ -223,29 +159,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x75fb1
 
-TrainerPsychicRodney: ; 0x75fb1
-	; bit/flag number
-	dw $445
+TrainerPsychicRodney:
+	trainer EVENT_BEAT_PSYCHIC_RODNEY, PSYCHIC_T, RODNEY, PsychicRodneySeenText, PsychicRodneyBeatenText, $0000, PsychicRodneyScript
 
-	; trainer group && trainer id
-	db PSYCHIC_T, RODNEY
-
-	; text when seen
-	dw PsychicRodneySeenText
-
-	; text when trainer beaten
-	dw PsychicRodneyBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PsychicRodneyScript
-; 0x75fbd
-
-PsychicRodneyScript: ; 0x75fbd
+PsychicRodneyScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x76497
@@ -252,29 +170,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x75fc5
 
-TrainerPokefanmJeremy: ; 0x75fc5
-	; bit/flag number
-	dw $4d4
+TrainerPokefanmJeremy:
+	trainer EVENT_BEAT_POKEFANM_JEREMY, POKEFANM, JEREMY, PokefanmJeremySeenText, PokefanmJeremyBeatenText, $0000, PokefanmJeremyScript
 
-	; trainer group && trainer id
-	db POKEFANM, JEREMY
-
-	; text when seen
-	dw PokefanmJeremySeenText
-
-	; text when trainer beaten
-	dw PokefanmJeremyBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PokefanmJeremyScript
-; 0x75fd1
-
-PokefanmJeremyScript: ; 0x75fd1
+PokefanmJeremyScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x7651c
@@ -281,29 +181,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x75fd9
 
-TrainerPokefanfGeorgia: ; 0x75fd9
-	; bit/flag number
-	dw $4dd
+TrainerPokefanfGeorgia:
+	trainer EVENT_BEAT_POKEFANF_GEORGIA, POKEFANF, GEORGIA, PokefanfGeorgiaSeenText, PokefanfGeorgiaBeatenText, $0000, PokefanfGeorgiaScript
 
-	; trainer group && trainer id
-	db POKEFANF, GEORGIA
-
-	; text when seen
-	dw PokefanfGeorgiaSeenText
-
-	; text when trainer beaten
-	dw PokefanfGeorgiaBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PokefanfGeorgiaScript
-; 0x75fe5
-
-PokefanfGeorgiaScript: ; 0x75fe5
+PokefanfGeorgiaScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x76596
@@ -310,29 +192,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x75fed
 
-TrainerSupernerdShawn: ; 0x75fed
-	; bit/flag number
-	dw $589
+TrainerSupernerdShawn:
+	trainer EVENT_BEAT_SUPER_NERD_SHAWN, SUPER_NERD, SHAWN, SupernerdShawnSeenText, SupernerdShawnBeatenText, $0000, SupernerdShawnScript
 
-	; trainer group && trainer id
-	db SUPER_NERD, SHAWN
-
-	; text when seen
-	dw SupernerdShawnSeenText
-
-	; text when trainer beaten
-	dw SupernerdShawnBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SupernerdShawnScript
-; 0x75ff9
-
-SupernerdShawnScript: ; 0x75ff9
+SupernerdShawnScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x7660f
@@ -339,12 +203,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x76001
 
 FastShipCaptainsCabinTrashcan:
 	jumpstd trashcan
 
-MovementData_0x76004: ; 0x76004
+MovementData_0x76004:
 	big_step_right
 	big_step_up
 	big_step_up
@@ -353,21 +216,18 @@
 	big_step_up
 	big_step_up
 	step_end
-; 0x7600c
 
-MovementData_0x7600c: ; 0x7600c
+MovementData_0x7600c:
 	step_up
 	step_up
 	turn_head_left
 	step_end
-; 0x76010
 
-MovementData_0x76010: ; 0x76010
+MovementData_0x76010:
 	step_down
 	step_end
-; 0x76012
 
-UnknownText_0x76012: ; 0x76012
+UnknownText_0x76012:
 	text "Whew! Thanks for"
 	line "coming along."
 
@@ -375,9 +235,8 @@
 	line "tle girl amused"
 	cont "was exhausting."
 	done
-; 0x76064
 
-UnknownText_0x76064: ; 0x76064
+UnknownText_0x76064:
 	text "How do you like"
 	line "S.S.AQUA's ride?"
 
@@ -385,9 +244,8 @@
 	line "skates across the"
 	cont "waves."
 	done
-; 0x760ae
 
-UnknownText_0x760ae: ; 0x760ae
+UnknownText_0x760ae:
 	text "Oh, hello…"
 
 	para "I still can't find"
@@ -402,9 +260,8 @@
 	para "be bugging some-"
 	line "one. I'm worried…"
 	done
-; 0x76143
 
-UnknownText_0x76143: ; 0x76143
+UnknownText_0x76143:
 	text "<PLAY_G>, was it?"
 	line "I heard you enter-"
 	cont "tained my grand-"
@@ -413,21 +270,18 @@
 	para "I want to thank"
 	line "you for that."
 	done
-; 0x7619b
 
-UnknownText_0x7619b: ; 0x7619b
+UnknownText_0x7619b:
 	text "I know! I'd like"
 	line "you to have this!"
 	done
-; 0x761be
 
-UnknownText_0x761be: ; 0x761be
+UnknownText_0x761be:
 	text "We're traveling"
 	line "around the world."
 	done
-; 0x761e0
 
-UnknownText_0x761e0: ; 0x761e0
+UnknownText_0x761e0:
 	text "CAPTAIN, play with"
 	line "me, please?"
 
@@ -434,9 +288,8 @@
 	para "I'm bored! I want"
 	line "to play more!"
 	done
-; 0x7621f
 
-UnknownText_0x7621f: ; 0x7621f
+UnknownText_0x7621f:
 	text "Hi! Will you play"
 	line "with me?"
 
@@ -450,9 +303,8 @@
 	para "I have to go find"
 	line "Grandpa!"
 	done
-; 0x76284
 
-UnknownText_0x76284: ; 0x76284
+UnknownText_0x76284:
 	text "Grandpa, here I"
 	line "am! I was playing"
 
@@ -459,9 +311,8 @@
 	para "with the CAPTAIN"
 	line "and this guy!"
 	done
-; 0x762c6
 
-UnknownText_0x762c6: ; 0x762c6
+UnknownText_0x762c6:
 	text "Grandpa, here I"
 	line "am! I was playing"
 
@@ -468,26 +319,22 @@
 	para "with the CAPTAIN"
 	line "and this big girl!"
 	done
-; 0x7630d
 
-UnknownText_0x7630d: ; 0x7630d
+UnknownText_0x7630d:
 	text "I had lots of fun"
 	line "playing!"
 	done
-; 0x76329
 
-PokefanmColinSeenText: ; 0x76329
+PokefanmColinSeenText:
 	text "Hey, kid! Want to"
 	line "battle with me?"
 	done
-; 0x7634c
 
-PokefanmColinBeatenText: ; 0x7634c
+PokefanmColinBeatenText:
 	text "You're strong!"
 	done
-; 0x7635b
 
-UnknownText_0x7635b: ; 0x7635b
+UnknownText_0x7635b:
 	text "You're traveling"
 	line "all alone?"
 
@@ -494,139 +341,119 @@
 	para "Isn't your mom"
 	line "worried?"
 	done
-; 0x7638e
 
-TwinsMegandpeg1SeenText: ; 0x7638e
+TwinsMegandpeg1SeenText:
 	text "You think I'm a"
 	line "baby?"
 	cont "That's not fair!"
 	done
-; 0x763b4
 
-TwinsMegandpeg1BeatenText: ; 0x763b4
+TwinsMegandpeg1BeatenText:
 	text "Oh! We lost!"
 	done
-; 0x763c2
 
-UnknownText_0x763c2: ; 0x763c2
+UnknownText_0x763c2:
 	text "Baby is a rude"
 	line "name to call us"
 	cont "girls!"
 	done
-; 0x763e9
 
-TwinsMegandpeg2SeenText: ; 0x763e9
+TwinsMegandpeg2SeenText:
 	text "I'm not a baby!"
 
 	para "That's not nice to"
 	line "say to a lady!"
 	done
-; 0x7641a
 
-TwinsMegandpeg2BeatenText: ; 0x7641a
+TwinsMegandpeg2BeatenText:
 	text "Oh! We lost!"
 	done
-; 0x76428
 
-UnknownText_0x76428: ; 0x76428
+UnknownText_0x76428:
 	text "Sometimes, kids"
 	line "are smarter than"
 	cont "grown-ups!"
 	done
-; 0x76455
 
-PsychicRodneySeenText: ; 0x76455
+PsychicRodneySeenText:
 	text "Ssh! My brain is"
 	line "picking up radio"
 	cont "signals!"
 	done
-; 0x76481
 
-PsychicRodneyBeatenText: ; 0x76481
+PsychicRodneyBeatenText:
 	text "…I hear some-"
 	line "thing!"
 	done
-; 0x76497
 
-UnknownText_0x76497: ; 0x76497
+UnknownText_0x76497:
 	text "I get it. You can"
 	line "hear JOHTO's radio"
 	cont "on the FAST SHIP."
 	done
-; 0x764ce
 
-PokefanmJeremySeenText: ; 0x764ce
+PokefanmJeremySeenText:
 	text "What do you think?"
 	line "My #MON are"
 	cont "beautiful, yes?"
 	done
-; 0x764fe
 
-PokefanmJeremyBeatenText: ; 0x764fe
+PokefanmJeremyBeatenText:
 	text "Oh, no! My beauti-"
 	line "ful #MON!"
 	done
-; 0x7651c
 
-UnknownText_0x7651c: ; 0x7651c
+UnknownText_0x7651c:
 	text "I must go to the"
 	line "#MON SALON and"
 	cont "fix them up nice!"
 	done
-; 0x7654f
 
-PokefanfGeorgiaSeenText: ; 0x7654f
+PokefanfGeorgiaSeenText:
 	text "I'm going to shop"
 	line "at the DEPT.STORE"
 	cont "and then…"
 	done
-; 0x7657d
 
-PokefanfGeorgiaBeatenText: ; 0x7657d
+PokefanfGeorgiaBeatenText:
 	text "What was I going"
 	line "to do?"
 	done
-; 0x76596
 
-UnknownText_0x76596: ; 0x76596
+UnknownText_0x76596:
 	text "Oh, yes! I have to"
 	line "get my #MON out"
 	cont "of DAY-CARE!"
 	done
-; 0x765c7
 
-SupernerdShawnSeenText: ; 0x765c7
+SupernerdShawnSeenText:
 	text "What kinds of #"
 	line "BALLS do you have"
 	cont "with you?"
 	done
-; 0x765f4
 
-SupernerdShawnBeatenText: ; 0x765f4
+SupernerdShawnBeatenText:
 	text "Wait! Stop! Don't!"
 	line "Please!"
 	done
-; 0x7660f
 
-UnknownText_0x7660f: ; 0x7660f
+UnknownText_0x7660f:
 	text "You should use the"
 	line "right BALLS to fit"
 	cont "the situation."
 	done
-; 0x76645
 
-UnknownText_0x76645: ; 0x76645
+UnknownText_0x76645:
 	text "FAST SHIP S.S.AQUA"
 	line "has arrived in"
 	cont "VERMILION CITY."
 	done
-; 0x76678
 
-FastShipCabins_SE_SSE_CaptainsCabin_MapEventHeader: ; 0x76678
+FastShipCabins_SE_SSE_CaptainsCabin_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -635,23 +462,23 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 25, 4, $0, FastShipCaptainsCabinTrashcan
+	signpost 25, 4, SIGNPOST_READ, FastShipCaptainsCabinTrashcan
 
-	; people-events
+.PersonEvents:
 	db 11
-	person_event SPRITE_CAPTAIN, 29, 7, $6, $0, 255, 255, $90, 0, CaptainScript_0x75ea7, $ffff
-	person_event SPRITE_GENTLEMAN, 21, 6, $9, $0, 255, 255, $90, 0, GentlemanScript_0x75f1f, $0730
-	person_event SPRITE_TWIN, 21, 7, $a, $0, 255, 255, $0, 0, TwinScript_0x75f6d, $0731
-	person_event SPRITE_TWIN, 29, 6, $a, $0, 255, 255, $0, 0, TwinScript_0x75ebb, $0732
-	person_event SPRITE_POKEFAN_M, 10, 9, $8, $0, 255, 255, $82, 5, TrainerPokefanmColin, $0739
-	person_event SPRITE_TWIN, 8, 6, $6, $0, 255, 255, $82, 1, TrainerTwinsMegandpeg1, $0739
-	person_event SPRITE_TWIN, 8, 7, $6, $0, 255, 255, $82, 1, TrainerTwinsMegandpeg2, $0739
-	person_event SPRITE_SUPER_NERD, 9, 9, $8, $0, 255, 255, $92, 5, TrainerPsychicRodney, $073a
-	person_event SPRITE_POKEFAN_M, 7, 6, $6, $0, 255, 255, $82, 3, TrainerPokefanmJeremy, $073b
-	person_event SPRITE_POKEFAN_F, 9, 9, $9, $0, 255, 255, $82, 1, TrainerPokefanfGeorgia, $073b
-	person_event SPRITE_SUPER_NERD, 19, 5, $3, $0, 255, 255, $b2, 2, TrainerSupernerdShawn, $073a
+	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
--- a/maps/FastShipCabins_SW_SSW_NW.asm
+++ b/maps/FastShipCabins_SW_SSW_NW.asm
@@ -1,32 +1,14 @@
-FastShipCabins_SW_SSW_NW_MapScriptHeader: ; 0x75a4d
-	; trigger count
+FastShipCabins_SW_SSW_NW_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x75a4f
 
-TrainerFirebreatherLyle: ; 0x75a4f
-	; bit/flag number
-	dw $44d
+TrainerFirebreatherLyle:
+	trainer EVENT_BEAT_FIREBREATHER_LYLE, FIREBREATHER, LYLE, FirebreatherLyleSeenText, FirebreatherLyleBeatenText, $0000, FirebreatherLyleScript
 
-	; trainer group && trainer id
-	db FIREBREATHER, LYLE
-
-	; text when seen
-	dw FirebreatherLyleSeenText
-
-	; text when trainer beaten
-	dw FirebreatherLyleBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw FirebreatherLyleScript
-; 0x75a5b
-
-FirebreatherLyleScript: ; 0x75a5b
+FirebreatherLyleScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x75b52
@@ -33,29 +15,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x75a63
 
-TrainerBug_catcherKen: ; 0x75a63
-	; bit/flag number
-	dw $540
+TrainerBug_catcherKen:
+	trainer EVENT_BEAT_BUG_CATCHER_KEN, BUG_CATCHER, KEN, Bug_catcherKenSeenText, Bug_catcherKenBeatenText, $0000, Bug_catcherKenScript
 
-	; trainer group && trainer id
-	db BUG_CATCHER, KEN
-
-	; text when seen
-	dw Bug_catcherKenSeenText
-
-	; text when trainer beaten
-	dw Bug_catcherKenBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Bug_catcherKenScript
-; 0x75a6f
-
-Bug_catcherKenScript: ; 0x75a6f
+Bug_catcherKenScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x75bd5
@@ -62,29 +26,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x75a77
 
-TrainerBeautyCassie: ; 0x75a77
-	; bit/flag number
-	dw $4b2
+TrainerBeautyCassie:
+	trainer EVENT_BEAT_BEAUTY_CASSIE, BEAUTY, CASSIE, BeautyCassieSeenText, BeautyCassieBeatenText, $0000, BeautyCassieScript
 
-	; trainer group && trainer id
-	db BEAUTY, CASSIE
-
-	; text when seen
-	dw BeautyCassieSeenText
-
-	; text when trainer beaten
-	dw BeautyCassieBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw BeautyCassieScript
-; 0x75a83
-
-BeautyCassieScript: ; 0x75a83
+BeautyCassieScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x75c43
@@ -91,29 +37,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x75a8b
 
-TrainerGuitaristClyde: ; 0x75a8b
-	; bit/flag number
-	dw $493
+TrainerGuitaristClyde:
+	trainer EVENT_BEAT_GUITARIST_CLYDE, GUITARIST, CLYDE, GuitaristClydeSeenText, GuitaristClydeBeatenText, $0000, GuitaristClydeScript
 
-	; trainer group && trainer id
-	db GUITARIST, CLYDE
-
-	; text when seen
-	dw GuitaristClydeSeenText
-
-	; text when trainer beaten
-	dw GuitaristClydeBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GuitaristClydeScript
-; 0x75a97
-
-GuitaristClydeScript: ; 0x75a97
+GuitaristClydeScript:
 	talkaftercancel
 	special Function10630f
 	iftrue UnknownScript_0x75aa5
@@ -122,15 +50,13 @@
 	closetext
 	loadmovesprites
 	end
-; 0x75aa5
 
-UnknownScript_0x75aa5: ; 0x75aa5
+UnknownScript_0x75aa5:
 	loadfont
 	writetext UnknownText_0x75cfe
 	closetext
 	loadmovesprites
 	end
-; 0x75aac
 
 FastShipBed:
 	loadfont
@@ -137,67 +63,62 @@
 	writetext FastShipBedText1
 	closetext
 	loadmovesprites
-	special Function8c0b6
-	special Functiond91
-	special Function1060a2
+	special Special_FadeBlackQuickly
+	special Special_ReloadSpritesNoPalettes
+	special Mobile_HealParty
 	special HealParty
 	playmusic MUSIC_HEAL
 	pause 60
 	special RestartMapMusic
-	special Function8c0ab
+	special Special_FadeInQuickly
 	loadfont
 	writetext FastShipBedText2
 	closetext
 	loadmovesprites
-	checkevent $0031
+	checkevent EVENT_FAST_SHIP_HAS_ARRIVED
 	iftrue UnknownScript_0x75ae1
-	checkevent $0032
+	checkevent EVENT_FAST_SHIP_FOUND_GIRL
 	iftrue UnknownScript_0x75ae2
-	checkevent $0030
+	checkevent EVENT_FAST_SHIP_FIRST_TIME
 	iftrue UnknownScript_0x75ae2
-UnknownScript_0x75ae1: ; 0x75ae1
+UnknownScript_0x75ae1:
 	end
-; 0x75ae2
 
-UnknownScript_0x75ae2: ; 0x75ae2
+UnknownScript_0x75ae2:
 	playsound SFX_ELEVATOR_END
 	pause 30
-	checkevent $002f
+	checkevent EVENT_FAST_SHIP_DESTINATION_OLIVINE
 	iftrue UnknownScript_0x75af7
 	loadfont
 	writetext FastShipArrivedVermilionText
 	closetext
 	loadmovesprites
-	setevent $0031
+	setevent EVENT_FAST_SHIP_HAS_ARRIVED
 	end
-; 0x75af7
 
-UnknownScript_0x75af7: ; 0x75af7
+UnknownScript_0x75af7:
 	loadfont
 	writetext FastShipArrivedOlivineText
 	closetext
 	loadmovesprites
-	setevent $0031
+	setevent EVENT_FAST_SHIP_HAS_ARRIVED
 	end
-; 0x75b01
 
-FastShipCabinsNorthwestCabinTrashcan: ; 0x75b01
+FastShipCabinsNorthwestCabinTrashcan:
 	jumpstd trashcan
 
-FirebreatherLyleSeenText: ; 0x75b04
+FirebreatherLyleSeenText:
 	text "I'm going to KANTO"
 	line "to put on fire-"
 	cont "breathing shows!"
 	done
-; 0x75b38
 
-FirebreatherLyleBeatenText: ; 0x75b38
+FirebreatherLyleBeatenText:
 	text "Fizzle… The"
 	line "flame's tiny…"
 	done
-; 0x75b52
 
-UnknownText_0x75b52: ; 0x75b52
+UnknownText_0x75b52:
 	text "I guess fire is"
 	line "weak on the sea."
 
@@ -204,41 +125,35 @@
 	para "It doesn't matter?"
 	line "Really?"
 	done
-; 0x75b8e
 
-Bug_catcherKenSeenText: ; 0x75b8e
+Bug_catcherKenSeenText:
 	text "I'm visiting my"
 	line "grandma to catch"
 	cont "me some bugs!"
 	done
-; 0x75bbd
 
-Bug_catcherKenBeatenText: ; 0x75bbd
+Bug_catcherKenBeatenText:
 	text "Ooh, wow."
 	line "You're tough!"
 	done
-; 0x75bd5
 
-UnknownText_0x75bd5: ; 0x75bd5
+UnknownText_0x75bd5:
 	text "You can find lots"
 	line "of #MON in the"
 	cont "trees of JOHTO!"
 	done
-; 0x75c07
 
-BeautyCassieSeenText: ; 0x75c07
+BeautyCassieSeenText:
 	text "I'm trying to"
 	line "forget my woes."
 	cont "Let's battle!"
 	done
-; 0x75c32
 
-BeautyCassieBeatenText: ; 0x75c32
+BeautyCassieBeatenText:
 	text "My heart weeps…"
 	done
-; 0x75c43
 
-UnknownText_0x75c43: ; 0x75c43
+UnknownText_0x75c43:
 	text "A voyage is best"
 	line "for getting over"
 	cont "a broken heart."
@@ -247,9 +162,8 @@
 	line "trip is too short"
 	cont "for grieving."
 	done
-; 0x75ca6
 
-GuitaristClydeSeenText: ; 0x75ca6
+GuitaristClydeSeenText:
 	text "I'm going to audi-"
 	line "tion my songs at"
 
@@ -256,15 +170,13 @@
 	para "GOLDENROD's RADIO"
 	line "STATION."
 	done
-; 0x75ce4
 
-GuitaristClydeBeatenText: ; 0x75ce4
+GuitaristClydeBeatenText:
 	text "Yowza!"
 	line "Total distortion!"
 	done
-; 0x75cfe
 
-UnknownText_0x75cfe: ; 0x75cfe
+UnknownText_0x75cfe:
 	text "I was going to"
 	line "make my debut at"
 	cont "the BATTLE TOWER…"
@@ -273,9 +185,8 @@
 	line "to VERMILION and"
 	cont "redo my training…"
 	done
-; 0x75d65
 
-UnknownText_0x75d65: ; 0x75d65
+UnknownText_0x75d65:
 	text "Speaking of the"
 	line "RADIO STATION,"
 
@@ -282,7 +193,6 @@
 	para "what's this week's"
 	line "lucky number?"
 	done
-; 0x75da4
 
 FastShipBedText1:
 	text "A comfy bed!"
@@ -306,11 +216,11 @@
 	cont "VERMILION CITY."
 	done
 
-FastShipCabins_SW_SSW_NW_MapEventHeader: ; 0x75e42
+FastShipCabins_SW_SSW_NW_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -318,19 +228,18 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 3
-	signpost 1, 7, $0, FastShipBed
-	signpost 2, 7, $0, FastShipBed
-	signpost 7, 7, $0, FastShipCabinsNorthwestCabinTrashcan
+	signpost 1, 7, SIGNPOST_READ, FastShipBed
+	signpost 2, 7, SIGNPOST_READ, FastShipBed
+	signpost 7, 7, SIGNPOST_READ, FastShipCabinsNorthwestCabinTrashcan
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_FISHER, 19, 5, $1e, $0, 255, 255, $82, 2, TrainerFirebreatherLyle, $0739
-	person_event SPRITE_BUG_CATCHER, 19, 10, $a, $0, 255, 255, $b2, 2, TrainerBug_catcherKen, $073b
-	person_event SPRITE_BUENA, 30, 5, $a, $0, 255, 255, $92, 3, TrainerBeautyCassie, $073a
-	person_event SPRITE_ROCKER, 32, 7, $1e, $0, 255, 255, $82, 2, TrainerGuitaristClyde, $073b
-; 0x75ea4
+	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
--- a/maps/FightingDojo.asm
+++ b/maps/FightingDojo.asm
@@ -1,28 +1,23 @@
-FightingDojo_MapScriptHeader: ; 0x189b5f
-	; trigger count
+FightingDojo_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x189b61
 
-BlackBeltScript_0x189b61: ; 0x189b61
+BlackBeltScript_0x189b61:
 	jumptextfaceplayer UnknownText_0x189b6c
-; 0x189b64
 
-MapFightingDojoSignpost0Script: ; 0x189b64
+MapFightingDojoSignpost0Script:
 	jumptext UnknownText_0x189bc0
-; 0x189b67
 
-MapFightingDojoSignpost1Script: ; 0x189b67
+MapFightingDojoSignpost1Script:
 	jumptext UnknownText_0x189be0
-; 0x189b6a
 
-ItemFragment_0x189b6a: ; 0x189b6a
+ItemFragment_0x189b6a:
 	db FOCUS_BAND, 1
-; 0x189b6c
 
-UnknownText_0x189b6c: ; 0x189b6c
+UnknownText_0x189b6c:
 	text "Hello!"
 
 	para "KARATE KING, the"
@@ -32,39 +27,35 @@
 	line "cave in JOHTO for"
 	cont "training."
 	done
-; 0x189bc0
 
-UnknownText_0x189bc0: ; 0x189bc0
+UnknownText_0x189bc0:
 	text "What goes around"
 	line "comes around!"
 	done
-; 0x189be0
 
-UnknownText_0x189be0: ; 0x189be0
+UnknownText_0x189be0:
 	text "Enemies on every"
 	line "side!"
 	done
-; 0x189bf8
 
-FightingDojo_MapEventHeader: ; 0x189bf8
+FightingDojo_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 0, 4, $0, MapFightingDojoSignpost0Script
-	signpost 0, 5, $0, MapFightingDojoSignpost1Script
+	signpost 0, 4, SIGNPOST_READ, MapFightingDojoSignpost0Script
+	signpost 0, 5, SIGNPOST_READ, MapFightingDojoSignpost1Script
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_BLACK_BELT, 8, 8, $6, $0, 255, 255, $90, 0, BlackBeltScript_0x189b61, $ffff
-	person_event SPRITE_POKE_BALL, 5, 7, $1, $0, 255, 255, $1, 0, ItemFragment_0x189b6a, $077d
-; 0x189c2c
+	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
--- a/maps/FuchsiaBillSpeechHouse.asm
+++ b/maps/FuchsiaBillSpeechHouse.asm
@@ -1,50 +1,44 @@
-FuchsiaBillSpeechHouse_MapScriptHeader: ; 0x1963bb
-	; trigger count
+FuchsiaBillSpeechHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1963bd
 
-PokefanFScript_0x1963bd: ; 0x1963bd
+PokefanFScript_0x1963bd:
 	jumptextfaceplayer UnknownText_0x1963c3
-; 0x1963c0
 
-YoungsterScript_0x1963c0: ; 0x1963c0
+YoungsterScript_0x1963c0:
 	jumptextfaceplayer UnknownText_0x1963f9
-; 0x1963c3
 
-UnknownText_0x1963c3: ; 0x1963c3
+UnknownText_0x1963c3:
 	text "My grandpa is at "
 	line "my brother BILL's"
 	cont "on CERULEAN CAPE."
 	done
-; 0x1963f9
 
-UnknownText_0x1963f9: ; 0x1963f9
+UnknownText_0x1963f9:
 	text "I saw these weird,"
 	line "slow #MON on"
 	cont "CYCLING ROAD."
 	done
-; 0x196428
 
-FuchsiaBillSpeechHouse_MapEventHeader: ; 0x196428
+FuchsiaBillSpeechHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_POKEFAN_F, 7, 6, $9, $0, 255, 255, $80, 0, PokefanFScript_0x1963bd, $ffff
-	person_event SPRITE_YOUNGSTER, 8, 10, $4, $10, 255, 255, $0, 0, YoungsterScript_0x1963c0, $ffff
-; 0x196452
+	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
--- a/maps/FuchsiaCity.asm
+++ b/maps/FuchsiaCity.asm
@@ -1,8 +1,8 @@
 FuchsiaCity_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -124,7 +124,7 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -138,23 +138,23 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 8
-	signpost 15, 21, $0, FuchsiaCitySign
-	signpost 29, 5, $0, FuchsiaGymSign
-	signpost 15, 25, $0, SafariZoneOfficeSign
-	signpost 29, 27, $0, WardensHomeSign
-	signpost 5, 17, $0, SafariZoneClosedSign
-	signpost 15, 13, $0, NoLitteringSign
-	signpost 27, 20, $0, FuchsiaCityPokeCenterSign
-	signpost 13, 6, $0, FuchsiaCityMartSign
+	signpost 15, 21, SIGNPOST_READ, FuchsiaCitySign
+	signpost 29, 5, SIGNPOST_READ, FuchsiaGymSign
+	signpost 15, 25, SIGNPOST_READ, SafariZoneOfficeSign
+	signpost 29, 27, SIGNPOST_READ, WardensHomeSign
+	signpost 5, 17, SIGNPOST_READ, SafariZoneClosedSign
+	signpost 15, 13, SIGNPOST_READ, NoLitteringSign
+	signpost 27, 20, SIGNPOST_READ, FuchsiaCityPokeCenterSign
+	signpost 13, 6, SIGNPOST_READ, FuchsiaCityMartSign
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_YOUNGSTER, 22, 27, $2, $11, 255, 255, $a0, 0, YoungsterScript_0x194b22, $ffff
-	person_event SPRITE_POKEFAN_M, 12, 17, $2, $11, 255, 255, $b0, 0, PokefanMScript_0x194b25, $ffff
-	person_event SPRITE_TEACHER, 18, 20, $2, $11, 255, 255, $80, 0, TeacherScript_0x194b28, $ffff
-	person_event SPRITE_FRUIT_TREE, 5, 12, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x194b43, $ffff
+	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
--- a/maps/FuchsiaGym.asm
+++ b/maps/FuchsiaGym.asm
@@ -1,14 +1,13 @@
-FuchsiaGym_MapScriptHeader: ; 0x195db7
-	; trigger count
+FuchsiaGym_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x195db9
 
-JanineScript_0x195db9: ; 0x195db9
-	checkflag $0027
-	iftrue UnknownScript_0x195e00
+JanineScript_0x195db9:
+	checkflag ENGINE_SOULBADGE
+	iftrue .FightDone
 	applymovement $2, MovementData_0x195f27
 	faceplayer
 	loadfont
@@ -20,52 +19,49 @@
 	startbattle
 	returnafterbattle
 	setevent EVENT_BEAT_JANINE
-	setevent $0517
-	setevent $051a
-	setevent $0482
-	setevent $041e
-	variablesprite $7, $28
-	variablesprite $8, $28
-	variablesprite $9, $28
-	variablesprite $a, $27
-	special Function14209
+	setevent EVENT_BEAT_LASS_ALICE
+	setevent EVENT_BEAT_LASS_LINDA
+	setevent EVENT_BEAT_PICNICKER_CINDY
+	setevent EVENT_BEAT_CAMPER_BARRY
+	variablesprite SPRITE_FUCHSIA_GYM_1, SPRITE_LASS
+	variablesprite SPRITE_FUCHSIA_GYM_2, SPRITE_LASS
+	variablesprite SPRITE_FUCHSIA_GYM_3, SPRITE_LASS
+	variablesprite SPRITE_FUCHSIA_GYM_4, SPRITE_YOUNGSTER
+	special RunCallback_04
 	loadfont
 	writetext UnknownText_0x195feb
 	playsound SFX_GET_BADGE
 	waitbutton
-	setflag $0027
+	setflag ENGINE_SOULBADGE
 	jump UnknownScript_0x195e02
-; 0x195e00
-
-UnknownScript_0x195e00: ; 0x195e00
+.FightDone
 	faceplayer
 	loadfont
-UnknownScript_0x195e02: ; 0x195e02
+UnknownScript_0x195e02:
 	checkevent EVENT_GOT_TM06_TOXIC
 	iftrue UnknownScript_0x195e15
 	writetext UnknownText_0x196002
 	keeptextopen
-	verbosegiveitem TM_06, 1
+	verbosegiveitem TM_TOXIC, 1
 	iffalse UnknownScript_0x195e15
 	setevent EVENT_GOT_TM06_TOXIC
-UnknownScript_0x195e15: ; 0x195e15
+UnknownScript_0x195e15:
 	writetext UnknownText_0x196074
 	closetext
 	loadmovesprites
 	end
-; 0x195e1b
 
-FuschiaGym1Script_0x195e1b: ; 0x195e1b
-	checkevent $0517
+FuschiaGym1Script_0x195e1b:
+	checkevent EVENT_BEAT_LASS_ALICE
 	iftrue UnknownScript_0x195e2c
 	applymovement $3, MovementData_0x195f27
 	faceplayer
-	variablesprite $7, $28
-	special Function14209
-UnknownScript_0x195e2c: ; 0x195e2c
+	variablesprite SPRITE_FUCHSIA_GYM_1, SPRITE_LASS
+	special RunCallback_04
+UnknownScript_0x195e2c:
 	faceplayer
 	loadfont
-	checkevent $0517
+	checkevent EVENT_BEAT_LASS_ALICE
 	iftrue UnknownScript_0x195e4f
 	writetext UnknownText_0x1960e6
 	closetext
@@ -75,34 +71,31 @@
 	startbattle
 	iftrue UnknownScript_0x195e4a
 	returnafterbattle
-	setevent $0517
+	setevent EVENT_BEAT_LASS_ALICE
 	end
-; 0x195e4a
 
-UnknownScript_0x195e4a: ; 0x195e4a
-	variablesprite $7, $a
+UnknownScript_0x195e4a:
+	variablesprite SPRITE_FUCHSIA_GYM_1, SPRITE_JANINE
 	returnafterbattle
 	end
-; 0x195e4f
 
-UnknownScript_0x195e4f: ; 0x195e4f
+UnknownScript_0x195e4f:
 	writetext UnknownText_0x196139
 	closetext
 	loadmovesprites
 	end
-; 0x195e55
 
-FuschiaGym2Script_0x195e55: ; 0x195e55
-	checkevent $051a
+FuschiaGym2Script_0x195e55:
+	checkevent EVENT_BEAT_LASS_LINDA
 	iftrue UnknownScript_0x195e66
 	applymovement $4, MovementData_0x195f27
 	faceplayer
-	variablesprite $8, $28
-	special Function14209
-UnknownScript_0x195e66: ; 0x195e66
+	variablesprite SPRITE_FUCHSIA_GYM_2, SPRITE_LASS
+	special RunCallback_04
+UnknownScript_0x195e66:
 	faceplayer
 	loadfont
-	checkevent $051a
+	checkevent EVENT_BEAT_LASS_LINDA
 	iftrue UnknownScript_0x195e89
 	writetext UnknownText_0x196166
 	closetext
@@ -112,34 +105,31 @@
 	startbattle
 	iftrue UnknownScript_0x195e84
 	returnafterbattle
-	setevent $051a
+	setevent EVENT_BEAT_LASS_LINDA
 	end
-; 0x195e84
 
-UnknownScript_0x195e84: ; 0x195e84
-	variablesprite $8, $a
+UnknownScript_0x195e84:
+	variablesprite SPRITE_FUCHSIA_GYM_2, SPRITE_JANINE
 	returnafterbattle
 	end
-; 0x195e89
 
-UnknownScript_0x195e89: ; 0x195e89
+UnknownScript_0x195e89:
 	writetext UnknownText_0x196199
 	closetext
 	loadmovesprites
 	end
-; 0x195e8f
 
-FuschiaGym3Script_0x195e8f: ; 0x195e8f
-	checkevent $0482
+FuschiaGym3Script_0x195e8f:
+	checkevent EVENT_BEAT_PICNICKER_CINDY
 	iftrue UnknownScript_0x195ea0
 	applymovement $5, MovementData_0x195f27
 	faceplayer
-	variablesprite $9, $28
-	special Function14209
-UnknownScript_0x195ea0: ; 0x195ea0
+	variablesprite SPRITE_FUCHSIA_GYM_3, SPRITE_LASS
+	special RunCallback_04
+UnknownScript_0x195ea0:
 	faceplayer
 	loadfont
-	checkevent $0482
+	checkevent EVENT_BEAT_PICNICKER_CINDY
 	iftrue UnknownScript_0x195ec3
 	writetext UnknownText_0x1961bb
 	closetext
@@ -149,34 +139,31 @@
 	startbattle
 	iftrue UnknownScript_0x195ebe
 	returnafterbattle
-	setevent $0482
+	setevent EVENT_BEAT_PICNICKER_CINDY
 	end
-; 0x195ebe
 
-UnknownScript_0x195ebe: ; 0x195ebe
-	variablesprite $9, $a
+UnknownScript_0x195ebe:
+	variablesprite SPRITE_FUCHSIA_GYM_3, SPRITE_JANINE
 	returnafterbattle
 	end
-; 0x195ec3
 
-UnknownScript_0x195ec3: ; 0x195ec3
+UnknownScript_0x195ec3:
 	writetext UnknownText_0x19620c
 	closetext
 	loadmovesprites
 	end
-; 0x195ec9
 
-FuschiaGym4Script_0x195ec9: ; 0x195ec9
-	checkevent $041e
+FuschiaGym4Script_0x195ec9:
+	checkevent EVENT_BEAT_CAMPER_BARRY
 	iftrue UnknownScript_0x195eda
 	applymovement $6, MovementData_0x195f27
 	faceplayer
-	variablesprite $a, $27
-	special Function14209
-UnknownScript_0x195eda: ; 0x195eda
+	variablesprite SPRITE_FUCHSIA_GYM_4, SPRITE_YOUNGSTER
+	special RunCallback_04
+UnknownScript_0x195eda:
 	faceplayer
 	loadfont
-	checkevent $041e
+	checkevent EVENT_BEAT_CAMPER_BARRY
 	iftrue UnknownScript_0x195efd
 	writetext UnknownText_0x196228
 	closetext
@@ -186,24 +173,21 @@
 	startbattle
 	iftrue UnknownScript_0x195ef8
 	returnafterbattle
-	setevent $041e
+	setevent EVENT_BEAT_CAMPER_BARRY
 	end
-; 0x195ef8
 
-UnknownScript_0x195ef8: ; 0x195ef8
-	variablesprite $a, $a
+UnknownScript_0x195ef8:
+	variablesprite SPRITE_FUCHSIA_GYM_4, SPRITE_JANINE
 	returnafterbattle
 	end
-; 0x195efd
 
-UnknownScript_0x195efd: ; 0x195efd
+UnknownScript_0x195efd:
 	writetext UnknownText_0x19626b
 	closetext
 	loadmovesprites
 	end
-; 0x195f03
 
-FuchsiaGymGuyScript: ; 0x195f03
+FuchsiaGymGuyScript:
 	faceplayer
 	loadfont
 	checkevent EVENT_BEAT_JANINE
@@ -218,7 +202,6 @@
 	closetext
 	loadmovesprites
 	end
-; 0x195f17
 
 FuchsiaGymStatue:
 	checkflag ENGINE_SOULBADGE
@@ -228,7 +211,7 @@
 	trainertotext JANINE, 1, $1
 	jumpstd gymstatue2
 
-MovementData_0x195f27: ; 0x195f27
+MovementData_0x195f27:
 	turn_head_down
 	turn_head_left
 	turn_head_up
@@ -243,9 +226,8 @@
 	turn_head_right
 	turn_head_down
 	step_end
-; 0x195f35
 
-UnknownText_0x195f35: ; 0x195f35
+UnknownText_0x195f35:
 	text "Fufufufu…"
 
 	para "I'm sorry to dis-"
@@ -258,9 +240,8 @@
 	para "JANINE of FUCHSIA"
 	line "GYM, that's me!"
 	done
-; 0x195fa1
 
-UnknownText_0x195fa1: ; 0x195fa1
+UnknownText_0x195fa1:
 	text "JANINE: You're a"
 	line "tough one. You"
 	cont "definitely won…"
@@ -268,15 +249,13 @@
 	para "Here's SOULBADGE."
 	line "Take it."
 	done
-; 0x195feb
 
-UnknownText_0x195feb: ; 0x195feb
+UnknownText_0x195feb:
 	text "<PLAYER> received"
 	line "SOULBADGE."
 	done
-; 0x196002
 
-UnknownText_0x196002: ; 0x196002
+UnknownText_0x196002:
 	text "JANINE: You're so"
 	line "tough! I have a"
 	cont "special gift!"
@@ -287,9 +266,8 @@
 	para "steadily saps the"
 	line "victim's HP."
 	done
-; 0x196074
 
-UnknownText_0x196074: ; 0x196074
+UnknownText_0x196074:
 	text "JANINE: I'm going"
 	line "to really apply"
 
@@ -300,9 +278,8 @@
 	line "better than both"
 	cont "Father and you!"
 	done
-; 0x1960e6
 
-UnknownText_0x1960e6: ; 0x1960e6
+UnknownText_0x1960e6:
 	text "Fufufu!"
 
 	para "I'm JANINE, the"
@@ -311,39 +288,33 @@
 	para "No, I'm not!"
 	line "Gotcha, sucker!"
 	done
-; 0x196126
 
-UnknownText_0x196126: ; 0x196126
+UnknownText_0x196126:
 	text "I had you fooled…"
 	done
-; 0x196139
 
-UnknownText_0x196139: ; 0x196139
+UnknownText_0x196139:
 	text "How will you dis-"
 	line "tinguish our real"
 	cont "LEADER?"
 	done
-; 0x196166
 
-UnknownText_0x196166: ; 0x196166
+UnknownText_0x196166:
 	text "Fooled you!"
 	line "Hahaha!"
 	done
-; 0x19617b
 
-UnknownText_0x19617b: ; 0x19617b
+UnknownText_0x19617b:
 	text "Ooh… I lost…"
 	line "You're not weak…"
 	done
-; 0x196199
 
-UnknownText_0x196199: ; 0x196199
+UnknownText_0x196199:
 	text "Well? Wasn't my"
 	line "disguise perfect?"
 	done
-; 0x1961bb
 
-UnknownText_0x1961bb: ; 0x1961bb
+UnknownText_0x1961bb:
 	text "I'm JANINE!"
 
 	para "How did you know I"
@@ -351,42 +322,36 @@
 
 	para "Let's battle!"
 	done
-; 0x1961f1
 
-UnknownText_0x1961f1: ; 0x1961f1
+UnknownText_0x1961f1:
 	text "Darn it!"
 	line "I wanted to win!"
 	done
-; 0x19620c
 
-UnknownText_0x19620c: ; 0x19620c
+UnknownText_0x19620c:
 	text "You must be"
 	line "getting tired."
 	done
-; 0x196228
 
-UnknownText_0x196228: ; 0x196228
+UnknownText_0x196228:
 	text "Wahahaha!"
 
 	para "You betcha!"
 	line "I'm JANINE!"
 	done
-; 0x19624a
 
-UnknownText_0x19624a: ; 0x19624a
+UnknownText_0x19624a:
 	text "My disguise was"
 	line "right on! Dang!"
 	done
-; 0x19626b
 
-UnknownText_0x19626b: ; 0x19626b
+UnknownText_0x19626b:
 	text "Hey, you. Was my"
 	line "disguise cute or"
 	cont "what, huh?"
 	done
-; 0x196299
 
-FuchsiaGymGuyText: ; 0x196299
+FuchsiaGymGuyText:
 	text "Yo, CHAMP in"
 	line "making!"
 
@@ -400,38 +365,35 @@
 	para "Which of them is"
 	line "the real JANINE?"
 	done
-; 0x196325
 
-FuchsiaGymGuyWinText: ; 0x196325
+FuchsiaGymGuyWinText:
 	text "That was a great"
 	line "battle, trainer"
 	cont "from JOHTO!"
 	done
-; 0x196353
 
-FuchsiaGym_MapEventHeader: ; 0x196353
+FuchsiaGym_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 15, 3, $0, FuchsiaGymStatue
-	signpost 15, 6, $0, FuchsiaGymStatue
+	signpost 15, 3, SIGNPOST_READ, FuchsiaGymStatue
+	signpost 15, 6, SIGNPOST_READ, FuchsiaGymStatue
 
-	; people-events
+.PersonEvents:
 	db 6
-	person_event SPRITE_JANINE, 14, 5, $3, $0, 255, 255, $90, 0, JanineScript_0x195db9, $ffff
-	person_event SPRITE_FUSCHIA_GYM_1, 11, 9, $a, $0, 255, 255, $90, 0, FuschiaGym1Script_0x195e1b, $ffff
-	person_event SPRITE_FUSCHIA_GYM_2, 15, 9, $a, $0, 255, 255, $90, 0, FuschiaGym2Script_0x195e55, $ffff
-	person_event SPRITE_FUSCHIA_GYM_3, 8, 13, $a, $0, 255, 255, $90, 0, FuschiaGym3Script_0x195e8f, $ffff
-	person_event SPRITE_FUSCHIA_GYM_4, 6, 8, $a, $0, 255, 255, $90, 0, FuschiaGym4Script_0x195ec9, $ffff
-	person_event SPRITE_GYM_GUY, 19, 11, $6, $0, 255, 255, $90, 0, FuchsiaGymGuyScript, $ffff
-; 0x1963bb
+	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
--- a/maps/FuchsiaMart.asm
+++ b/maps/FuchsiaMart.asm
@@ -1,27 +1,23 @@
-FuchsiaMart_MapScriptHeader: ; 0x195ce6
-	; trigger count
+FuchsiaMart_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x195ce8
 
-ClerkScript_0x195ce8: ; 0x195ce8
+ClerkScript_0x195ce8:
 	loadfont
 	pokemart $0, $001d
 	loadmovesprites
 	end
-; 0x195cef
 
-FisherScript_0x195cef: ; 0x195cef
+FisherScript_0x195cef:
 	jumptextfaceplayer UnknownText_0x195cf5
-; 0x195cf2
 
-CooltrainerFScript_0x195cf2: ; 0x195cf2
+CooltrainerFScript_0x195cf2:
 	jumptextfaceplayer UnknownText_0x195d36
-; 0x195cf5
 
-UnknownText_0x195cf5: ; 0x195cf5
+UnknownText_0x195cf5:
 	text "I was hoping to"
 	line "buy some SAFARI"
 
@@ -28,34 +24,31 @@
 	para "ZONE souvenirs,"
 	line "but it's closed…"
 	done
-; 0x195d36
 
-UnknownText_0x195d36: ; 0x195d36
+UnknownText_0x195d36:
 	text "The SAFARI ZONE"
 	line "WARDEN's grand-"
 	cont "daughter lives in"
 	cont "town."
 	done
-; 0x195d6e
 
-FuchsiaMart_MapEventHeader: ; 0x195d6e
+FuchsiaMart_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 7, 5, $9, $0, 255, 255, $0, 0, ClerkScript_0x195ce8, $ffff
-	person_event SPRITE_FISHER, 6, 7, $8, $0, 255, 255, $80, 0, FisherScript_0x195cef, $ffff
-	person_event SPRITE_COOLTRAINER_F, 10, 11, $5, $2, 255, 255, $a0, 0, CooltrainerFScript_0x195cf2, $ffff
-; 0x195da5
+	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
--- a/maps/FuchsiaPokeCenter1F.asm
+++ b/maps/FuchsiaPokeCenter1F.asm
@@ -1,31 +1,26 @@
-FuchsiaPokeCenter1F_MapScriptHeader: ; 0x196452
-	; trigger count
+FuchsiaPokeCenter1F_MapScriptHeader:
+.MapTriggers:
 	db 1
 
 	; triggers
 	dw UnknownScript_0x196458, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x196458
 
-UnknownScript_0x196458: ; 0x196458
+UnknownScript_0x196458:
 	end
-; 0x196459
 
-NurseScript_0x196459: ; 0x196459
+NurseScript_0x196459:
 	jumpstd pokecenternurse
-; 0x19645c
 
-CooltrainerMScript_0x19645c: ; 0x19645c
+CooltrainerMScript_0x19645c:
 	jumptextfaceplayer UnknownText_0x196494
-; 0x19645f
 
-CooltrainerFScript_0x19645f: ; 0x19645f
+CooltrainerFScript_0x19645f:
 	jumptextfaceplayer UnknownText_0x1964dc
-; 0x196462
 
-JanineImpersonatorScript_0x196462: ; 0x196462
+JanineImpersonatorScript_0x196462:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x19652e
@@ -33,8 +28,8 @@
 	loadmovesprites
 	applymovement $5, MovementData_0x196486
 	faceplayer
-	variablesprite $c, $a
-	special Function14209
+	variablesprite SPRITE_JANINE_IMPERSONATOR, SPRITE_JANINE
+	special RunCallback_04
 	loadfont
 	writetext UnknownText_0x19654e
 	closetext
@@ -41,12 +36,11 @@
 	loadmovesprites
 	applymovement $5, MovementData_0x196486
 	faceplayer
-	variablesprite $c, $28
-	special Function14209
+	variablesprite SPRITE_JANINE_IMPERSONATOR, SPRITE_LASS
+	special RunCallback_04
 	end
-; 0x196486
 
-MovementData_0x196486: ; 0x196486
+MovementData_0x196486:
 	turn_head_down
 	turn_head_left
 	turn_head_up
@@ -61,9 +55,8 @@
 	turn_head_right
 	turn_head_down
 	step_end
-; 0x196494
 
-UnknownText_0x196494: ; 0x196494
+UnknownText_0x196494:
 	text "Hey! You have a"
 	line "brand new kind of"
 	cont "#DEX."
@@ -71,9 +64,8 @@
 	para "Did PROF.OAK give"
 	line "that to you?"
 	done
-; 0x1964dc
 
-UnknownText_0x1964dc: ; 0x1964dc
+UnknownText_0x1964dc:
 	text "I got quite a"
 	line "shock at the GYM."
 
@@ -81,40 +73,36 @@
 	line "these girls who"
 	cont "looked identical."
 	done
-; 0x19652e
 
-UnknownText_0x19652e: ; 0x19652e
+UnknownText_0x19652e:
 	text "I'm JANINE! Hocus-"
 	line "pocus… Poof!"
 	done
-; 0x19654e
 
-UnknownText_0x19654e: ; 0x19654e
+UnknownText_0x19654e:
 	text "See? I look just"
 	line "like her now!"
 	done
-; 0x19656e
 
-FuchsiaPokeCenter1F_MapEventHeader: ; 0x19656e
+FuchsiaPokeCenter1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_NURSE, 5, 7, $6, $0, 255, 255, $a0, 0, NurseScript_0x196459, $ffff
-	person_event SPRITE_COOLTRAINER_M, 8, 12, $5, $1, 255, 255, $0, 0, CooltrainerMScript_0x19645c, $ffff
-	person_event SPRITE_COOLTRAINER_F, 8, 5, $5, $1, 255, 255, $0, 0, CooltrainerFScript_0x19645f, $ffff
-	person_event SPRITE_JANINE_IMPERSONATOR, 7, 9, $6, $0, 255, 255, $90, 0, JanineImpersonatorScript_0x196462, $ffff
-; 0x1965b7
+	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
--- a/maps/FuchsiaPokeCenter2FBeta.asm
+++ b/maps/FuchsiaPokeCenter2FBeta.asm
@@ -1,25 +1,23 @@
-FuchsiaPokeCenter2FBeta_MapScriptHeader: ; 0x1965b7
-	; trigger count
+FuchsiaPokeCenter2FBeta_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1965b9
 
-FuchsiaPokeCenter2FBeta_MapEventHeader: ; 0x1965b9
+FuchsiaPokeCenter2FBeta_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $7, $0, 3, GROUP_FUCHSIA_POKECENTER_1F, MAP_FUCHSIA_POKECENTER_1F
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x1965c4
--- a/maps/GoldenrodBikeShop.asm
+++ b/maps/GoldenrodBikeShop.asm
@@ -1,16 +1,14 @@
-GoldenrodBikeShop_MapScriptHeader: ; 0x5474d
-	; trigger count
+GoldenrodBikeShop_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x5474f
 
-UnknownScript_0x5474f: ; 0x5474f
+UnknownScript_0x5474f:
 	end
-; 0x54750
 
-ClerkScript_0x54750: ; 0x54750
+ClerkScript_0x54750:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_BICYCLE
@@ -21,37 +19,33 @@
 	writetext UnknownText_0x547f8
 	keeptextopen
 	waitbutton
-	giveitem BICYCLE, $1
+	giveitem BICYCLE, 1
 	writetext UnknownText_0x54848
 	playsound SFX_KEY_ITEM
 	waitbutton
 	itemnotify
-	setflag $0014
+	setflag ENGINE_BIKE_SHOP_CALL_ENABLED
 	setevent EVENT_GOT_BICYCLE
-UnknownScript_0x54775: ; 0x54775
+UnknownScript_0x54775:
 	writetext UnknownText_0x5485f
 	closetext
 	loadmovesprites
 	end
-; 0x5477b
 
-UnknownScript_0x5477b: ; 0x5477b
+UnknownScript_0x5477b:
 	writetext UnknownText_0x54898
 	closetext
 	loadmovesprites
 	end
-; 0x54781
 
 ; possibly unused
-UnknownScript_0x54781: ; 0x54781
+UnknownScript_0x54781:
 	jumptext UnknownText_0x548c0
-; 0x54784
 
-MapGoldenrodBikeShopSignpost8Script: ; 0x54784
+MapGoldenrodBikeShopSignpost8Script:
 	jumptext UnknownText_0x548ed
-; 0x54787
 
-UnknownText_0x54787: ; 0x54787
+UnknownText_0x54787:
 	text "…sigh… I moved"
 	line "here, but I can't"
 
@@ -62,9 +56,8 @@
 	line "BICYCLE and adver-"
 	cont "tise for me?"
 	done
-; 0x547f8
 
-UnknownText_0x547f8: ; 0x547f8
+UnknownText_0x547f8:
 	text "Really? Great!"
 
 	para "Give me your name"
@@ -73,15 +66,13 @@
 	para "and I'll loan you"
 	line "a BICYCLE."
 	done
-; 0x54848
 
-UnknownText_0x54848: ; 0x54848
+UnknownText_0x54848:
 	text "<PLAYER> borrowed a"
 	line "BICYCLE."
 	done
-; 0x5485f
 
-UnknownText_0x5485f: ; 0x5485f
+UnknownText_0x5485f:
 	text "My BICYCLES are"
 	line "first-rate! You"
 
@@ -88,55 +79,50 @@
 	para "can ride them"
 	line "anywhere."
 	done
-; 0x54898
 
-UnknownText_0x54898: ; 0x54898
+UnknownText_0x54898:
 	text "…sigh… Oh, for"
 	line "the kindness of"
 	cont "people…"
 	done
-; 0x548c0
 
 ; possibly unused
-UnknownText_0x548c0: ; 0x548c0
+UnknownText_0x548c0:
 	text "Just released!"
 
 	para "First-rate compact"
 	line "BICYCLES!"
 	done
-; 0x548ed
 
-UnknownText_0x548ed: ; 0x548ed
+UnknownText_0x548ed:
 	text "It's a shiny new"
 	line "BICYCLE!"
 	done
-; 0x54907
 
-GoldenrodBikeShop_MapEventHeader: ; 0x54907
+GoldenrodBikeShop_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 9
-	signpost 2, 1, $0, MapGoldenrodBikeShopSignpost8Script
-	signpost 3, 0, $0, MapGoldenrodBikeShopSignpost8Script
-	signpost 3, 1, $0, MapGoldenrodBikeShopSignpost8Script
-	signpost 5, 0, $0, MapGoldenrodBikeShopSignpost8Script
-	signpost 5, 1, $0, MapGoldenrodBikeShopSignpost8Script
-	signpost 6, 0, $0, MapGoldenrodBikeShopSignpost8Script
-	signpost 6, 1, $0, MapGoldenrodBikeShopSignpost8Script
-	signpost 6, 6, $0, MapGoldenrodBikeShopSignpost8Script
-	signpost 6, 7, $0, MapGoldenrodBikeShopSignpost8Script
+	signpost 2, 1, SIGNPOST_READ, MapGoldenrodBikeShopSignpost8Script
+	signpost 3, 0, SIGNPOST_READ, MapGoldenrodBikeShopSignpost8Script
+	signpost 3, 1, SIGNPOST_READ, MapGoldenrodBikeShopSignpost8Script
+	signpost 5, 0, SIGNPOST_READ, MapGoldenrodBikeShopSignpost8Script
+	signpost 5, 1, SIGNPOST_READ, MapGoldenrodBikeShopSignpost8Script
+	signpost 6, 0, SIGNPOST_READ, MapGoldenrodBikeShopSignpost8Script
+	signpost 6, 1, SIGNPOST_READ, MapGoldenrodBikeShopSignpost8Script
+	signpost 6, 6, SIGNPOST_READ, MapGoldenrodBikeShopSignpost8Script
+	signpost 6, 7, SIGNPOST_READ, MapGoldenrodBikeShopSignpost8Script
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_CLERK, 6, 11, $8, $0, 255, 255, $80, 0, ClerkScript_0x54750, $ffff
-; 0x54951
+	person_event SPRITE_CLERK, 6, 11, OW_LEFT | $0, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, ClerkScript_0x54750, -1
--- a/maps/GoldenrodBillsHouse.asm
+++ b/maps/GoldenrodBillsHouse.asm
@@ -1,10 +1,9 @@
-GoldenrodBillsHouse_MapScriptHeader: ; 0x54be2
-	; trigger count
+GoldenrodBillsHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x54be4
 
 BillsHouseBill:
 	faceplayer
@@ -17,7 +16,7 @@
 	writetext UnknownText_0x54d3f
 	keeptextopen
 	waitbutton
-	checkcode $1
+	checkcode VAR_PARTYCOUNT
 	if_equal $6, UnknownScript_0x54c13
 	writetext UnknownText_0x54dae
 	playsound SFX_CAUGHT_MON
@@ -28,58 +27,52 @@
 	closetext
 	loadmovesprites
 	end
-; 0x54c13
 
-UnknownScript_0x54c13: ; 0x54c13
+UnknownScript_0x54c13:
 	writetext UnknownText_0x54e02
 	closetext
 	loadmovesprites
 	end
-; 0x54c19
 
-UnknownScript_0x54c19: ; 0x54c19
+UnknownScript_0x54c19:
 	writetext UnknownText_0x54e2d
 	closetext
 	loadmovesprites
 	end
-; 0x54c1f
 
-UnknownScript_0x54c1f: ; 0x54c1f
+UnknownScript_0x54c1f:
 	writetext UnknownText_0x54e42
 	closetext
 	loadmovesprites
 	end
-; 0x54c25
 
-BillsMom: ; 0x54c25
+BillsMom:
 	faceplayer
 	loadfont
-	checkevent $0712
+	checkevent EVENT_MET_BILL
 	iffalse UnknownScript_0x54c33
 	writetext UnknownText_0x54ea8
 	closetext
 	loadmovesprites
 	end
-; 0x54c33
 
-UnknownScript_0x54c33: ; 0x54c33
+UnknownScript_0x54c33:
 	writetext UnknownText_0x54f4e
 	closetext
 	loadmovesprites
 	end
-; 0x54c39
 
 BillsSister:
 	faceplayer
 	loadfont
-	checkcellnum $3
+	checkcellnum PHONE_BILL
 	iftrue UnknownScript_0x54c58
 	writetext UnknownText_0x54f9e
-	askforphonenumber $3
+	askforphonenumber PHONE_BILL
 	if_equal $1, UnknownScript_0x54c64
 	if_equal $2, UnknownScript_0x54c5e
 	waitbutton
-	addcellnum $3
+	addcellnum PHONE_BILL
 	writetext UnknownText_0x54fd9
 	playsound SFX_REGISTER_PHONE_NUMBER
 	waitbutton
@@ -89,20 +82,17 @@
 	closetext
 	loadmovesprites
 	end
-; 0x54c5e
 
-UnknownScript_0x54c5e: ; 0x54c5e
+UnknownScript_0x54c5e:
 	writetext UnknownText_0x54ff3
 	closetext
 	loadmovesprites
 	end
-; 0x54c64
 
-UnknownScript_0x54c64: ; 0x54c64
+UnknownScript_0x54c64:
 	writetext UnknownText_0x55046
 	keeptextopen
 	jump UnknownScript_0x54c5e
-; 0x54c6b
 
 BillsHouseBookshelf1:
 	jumpstd picturebookshelf
@@ -113,7 +103,7 @@
 BillsHouseRadio:
 	jumpstd radio2
 
-UnknownText_0x54c74: ; 0x54c74
+UnknownText_0x54c74:
 	text "BILL: Hi, <PLAYER>!"
 	line "Do us a favor and"
 	cont "take this EEVEE."
@@ -132,9 +122,8 @@
 	line "to play with it,"
 	cont "<PLAYER>?"
 	done
-; 0x54d3f
 
-UnknownText_0x54d3f: ; 0x54d3f
+UnknownText_0x54d3f:
 	text "BILL: I knew you'd"
 	line "come through!"
 
@@ -147,15 +136,13 @@
 	para "Take good care of"
 	line "it!"
 	done
-; 0x54dae
 
-UnknownText_0x54dae: ; 0x54dae
+UnknownText_0x54dae:
 	text "<PLAYER> received"
 	line "EEVEE!"
 	done
-; 0x54dc1
 
-UnknownText_0x54dc1: ; 0x54dc1
+UnknownText_0x54dc1:
 	text "BILL: PROF.ELM"
 	line "claims EEVEE may"
 
@@ -162,22 +149,19 @@
 	para "evolve in new and"
 	line "unknown ways."
 	done
-; 0x54e02
 
-UnknownText_0x54e02: ; 0x54e02
+UnknownText_0x54e02:
 	text "Whoa, wait. You"
 	line "can't carry any"
 	cont "more #MON."
 	done
-; 0x54e2d
 
-UnknownText_0x54e2d: ; 0x54e2d
+UnknownText_0x54e2d:
 	text "Oh… Now what to"
 	line "do?"
 	done
-; 0x54e42
 
-UnknownText_0x54e42: ; 0x54e42
+UnknownText_0x54e42:
 	text "BILL: My pop, he"
 	line "won't work. All he"
 
@@ -187,9 +171,8 @@
 	para "He's getting to be"
 	line "a real headache…"
 	done
-; 0x54ea8
 
-UnknownText_0x54ea8: ; 0x54ea8
+UnknownText_0x54ea8:
 	text "Oh, you collect"
 	line "#MON? My son"
 	cont "BILL is an expert."
@@ -206,9 +189,8 @@
 	para "CORNER without"
 	line "being called…"
 	done
-; 0x54f4e
 
-UnknownText_0x54f4e: ; 0x54f4e
+UnknownText_0x54f4e:
 	text "My husband was"
 	line "once known as a"
 
@@ -218,9 +200,8 @@
 	para "taken after his"
 	line "father."
 	done
-; 0x54f9e
 
-UnknownText_0x54f9e: ; 0x54f9e
+UnknownText_0x54f9e:
 	text "Are you a trainer?"
 
 	para "I've got a useful"
@@ -227,15 +208,13 @@
 	line "phone number for"
 	cont "you."
 	done
-; 0x54fd9
 
-UnknownText_0x54fd9: ; 0x54fd9
+UnknownText_0x54fd9:
 	text "<PLAYER> recorded"
 	line "BILL's number."
 	done
-; 0x54ff3
 
-UnknownText_0x54ff3: ; 0x54ff3
+UnknownText_0x54ff3:
 	text "My brother made"
 	line "the PC #MON"
 	cont "storage system."
@@ -244,15 +223,13 @@
 	line "give you BILL's"
 	cont "number…"
 	done
-; 0x55046
 
-UnknownText_0x55046: ; 0x55046
+UnknownText_0x55046:
 	text "You can't record"
 	line "any more numbers."
 	done
-; 0x55069
 
-UnknownText_0x55069: ; 0x55069
+UnknownText_0x55069:
 	text "My big brother"
 	line "BILL made the PC"
 
@@ -259,29 +236,27 @@
 	para "#MON storage"
 	line "system."
 	done
-; 0x5509f
 
-GoldenrodBillsHouse_MapEventHeader: ; 0x5509f
+GoldenrodBillsHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 3
-	signpost 1, 0, $0, BillsHouseBookshelf2
-	signpost 1, 1, $0, BillsHouseBookshelf1
-	signpost 1, 7, $0, BillsHouseRadio
+	signpost 1, 0, SIGNPOST_READ, BillsHouseBookshelf2
+	signpost 1, 1, SIGNPOST_READ, BillsHouseBookshelf1
+	signpost 1, 7, SIGNPOST_READ, BillsHouseRadio
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_BILL, 7, 6, $9, $0, 255, 255, $0, 0, BillsHouseBill, $0712
-	person_event SPRITE_POKEFAN_F, 7, 9, $6, $0, 255, 255, $0, 0, BillsMom, $ffff
-	person_event SPRITE_TWIN, 8, 9, $2, $11, 255, 255, $a0, 0, BillsSister, $ffff
-; 0x550e5
+	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
--- a/maps/GoldenrodCity.asm
+++ b/maps/GoldenrodCity.asm
@@ -1,8 +1,8 @@
 GoldenrodCity_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 2
 
 	; callbacks
@@ -11,7 +11,7 @@
 
 .FlyPointAndFloria
 	setflag ENGINE_FLYPOINT_GOLDENROD
-	setflag ENGINE_16
+	setflag ENGINE_FLORIA
 	checkevent EVENT_MET_FLORIA
 	iftrue .FloriaDone
 	clearevent EVENT_FLORIA_AT_SUDOWOODO
@@ -23,7 +23,7 @@
 	iffalse .MoveTutorDone
 	checkitem COIN_CASE
 	iffalse .MoveTutorDisappear
-	checkcode $b
+	checkcode VAR_WEEKDAY
 	if_equal WEDNESDAY, .MoveTutorAppear
 	if_equal SATURDAY, .MoveTutorAppear
 .MoveTutorDisappear
@@ -31,7 +31,7 @@
 	return
 
 .MoveTutorAppear
-	checkflag ENGINE_5E
+	checkflag ENGINE_DAILY_MOVE_TUTOR
 	iftrue .MoveTutorDone
 	appear $10
 .MoveTutorDone
@@ -42,52 +42,52 @@
 	loadfont
 	writetext UnknownText_0x199042
 	yesorno
-	iffalse UnknownScript_0x19899a
+	iffalse .Refused
 	special Function24b25
 	writetext UnknownText_0x199090
 	yesorno
-	iffalse UnknownScript_0x1989a0
+	iffalse .Refused2
 	checkcoins 4000
-	if_equal $2, UnknownScript_0x1989dd
+	if_equal $2, .NotEnoughMoney
 	writetext UnknownText_0x1990ce
-	loadmenudata MenuDataHeader_0x198967
+	loadmenudata .MoveMenuDataHeader
 	interpretmenu2
 	writebackup
-	if_equal $1, UnknownScript_0x19893a
-	if_equal $2, UnknownScript_0x198949
-	if_equal $3, UnknownScript_0x198958
-	jump UnknownScript_0x1989d7
+	if_equal $1, .Flamethrower
+	if_equal $2, .Thunderbolt
+	if_equal $3, .IceBeam
+	jump .Incompatible
 
-UnknownScript_0x19893a:
+.Flamethrower:
 	writebyte $1
 	writetext UnknownText_0x1991cf
 	special Function4925b
-	if_equal $0, UnknownScript_0x1989a6
-	jump UnknownScript_0x1989d7
+	if_equal $0, .TeachMove
+	jump .Incompatible
 
-UnknownScript_0x198949:
+.Thunderbolt:
 	writebyte $2
 	writetext UnknownText_0x1991cf
 	special Function4925b
-	if_equal $0, UnknownScript_0x1989a6
-	jump UnknownScript_0x1989d7
+	if_equal $0, .TeachMove
+	jump .Incompatible
 
-UnknownScript_0x198958:
+.IceBeam:
 	writebyte $3
 	writetext UnknownText_0x1991cf
 	special Function4925b
-	if_equal $0, UnknownScript_0x1989a6
-	jump UnknownScript_0x1989d7
+	if_equal $0, .TeachMove
+	jump .Incompatible
 
 
-MenuDataHeader_0x198967:
+.MoveMenuDataHeader:
 	db $40 ; flags
 	db 02, 00 ; start coords
 	db 11, 15 ; end coords
-	dw MenuData2_0x19896f
+	dw .MenuData2
 	db 1 ; default option
 
-MenuData2_0x19896f:
+.MenuData2:
 	db $80 ; flags
 	db 4 ; items
 	db "FLAMETHROWER@"
@@ -96,19 +96,19 @@
 	db "CANCEL@"
 
 
-UnknownScript_0x19899a:
+.Refused:
 	writetext UnknownText_0x1990b4
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x1989a0:
+.Refused2:
 	writetext UnknownText_0x199107
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x1989a6:
+.TeachMove:
 	writetext UnknownText_0x19913a
 	keeptextopen
 	takecoins 4000
@@ -118,28 +118,28 @@
 	writetext UnknownText_0x19918b
 	closetext
 	loadmovesprites
-	checkcode $9
-	if_equal $2, UnknownScript_0x1989c6
+	checkcode VAR_FACING
+	if_equal $2, .WalkAroundPlayer
 	applymovement $10, MovementData_0x198a5f
-	jump UnknownScript_0x1989ca
+	jump .GoInside
 
-UnknownScript_0x1989c6:
+.WalkAroundPlayer:
 	applymovement $10, MovementData_0x198a63
-UnknownScript_0x1989ca:
+.GoInside:
 	playsound SFX_ENTER_DOOR
 	disappear $10
-	clearevent $076b
-	setflag ENGINE_5E
+	clearevent EVENT_GOLDENROD_GAME_CORNER_MOVE_TUTOR
+	setflag ENGINE_DAILY_MOVE_TUTOR
 	waitbutton
 	end
 
-UnknownScript_0x1989d7:
+.Incompatible:
 	writetext UnknownText_0x1991a4
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x1989dd:
+.NotEnoughMoney:
 	writetext UnknownText_0x1991ac
 	closetext
 	loadmovesprites
@@ -155,13 +155,13 @@
 	faceplayer
 	loadfont
 	checkevent EVENT_CLEARED_RADIO_TOWER
-	iftrue UnknownScript_0x1989f7
+	iftrue .ClearedRadioTower
 	writetext UnknownText_0x198ae6
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x1989f7:
+.ClearedRadioTower:
 	writetext UnknownText_0x198b2d
 	closetext
 	loadmovesprites
@@ -170,14 +170,14 @@
 CooltrainerFScript_0x1989fd:
 	faceplayer
 	loadfont
-	checkflag $0000
-	iftrue UnknownScript_0x198a0b
+	checkflag ENGINE_RADIO_CARD
+	iftrue .GotRadioCard
 	writetext UnknownText_0x198b73
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x198a0b:
+.GotRadioCard:
 	writetext UnknownText_0x198c14
 	closetext
 	loadmovesprites
@@ -543,7 +543,7 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -561,38 +561,38 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 12
-	signpost 14, 10, $0, GoldenrodCityStationSign
-	signpost 17, 4, $0, GoldenrodCityRadioTowerSign
-	signpost 27, 26, $0, GoldenrodDeptStoreSign
-	signpost 9, 26, $0, GoldenrodGymSign
-	signpost 18, 22, $0, GoldenrodCitySign
-	signpost 30, 28, $0, GoldenrodCityBikeShopSign
-	signpost 22, 16, $0, GoldenrodCityGameCornerSign
-	signpost 7, 12, $0, GoldenrodCityNameRaterSign
-	signpost 6, 8, $0, GoldenrodCityUndergroundSignNorth
-	signpost 30, 12, $0, GoldenrodCityUndergroundSignSouth
-	signpost 27, 16, $1, GoldenrodCityPokeCenterSign
-	signpost 6, 30, $0, GoldenrodCityFlowerShopSign
+	signpost 14, 10, SIGNPOST_READ, GoldenrodCityStationSign
+	signpost 17, 4, SIGNPOST_READ, GoldenrodCityRadioTowerSign
+	signpost 27, 26, SIGNPOST_READ, GoldenrodDeptStoreSign
+	signpost 9, 26, SIGNPOST_READ, GoldenrodGymSign
+	signpost 18, 22, SIGNPOST_READ, GoldenrodCitySign
+	signpost 30, 28, SIGNPOST_READ, GoldenrodCityBikeShopSign
+	signpost 22, 16, SIGNPOST_READ, GoldenrodCityGameCornerSign
+	signpost 7, 12, SIGNPOST_READ, GoldenrodCityNameRaterSign
+	signpost 6, 8, SIGNPOST_READ, GoldenrodCityUndergroundSignNorth
+	signpost 30, 12, SIGNPOST_READ, GoldenrodCityUndergroundSignSouth
+	signpost 27, 16, SIGNPOST_UP, GoldenrodCityPokeCenterSign
+	signpost 6, 30, SIGNPOST_READ, GoldenrodCityFlowerShopSign
 
-	; people-events
+.PersonEvents:
 	db 15
-	person_event SPRITE_POKEFAN_M, 22, 11, $7, $0, 255, 255, $0, 0, PokefanMScript_0x1989e3, $06cf
-	person_event SPRITE_YOUNGSTER, 21, 34, $2, $11, 255, 255, $0, 0, YoungsterScript_0x1989e6, $06cf
-	person_event SPRITE_COOLTRAINER_F, 20, 16, $8, $0, 255, 255, $a0, 0, CooltrainerFScript_0x1989e9, $06cf
-	person_event SPRITE_COOLTRAINER_F, 30, 24, $2, $21, 255, 255, $0, 0, CooltrainerFScript_0x1989fd, $06cf
-	person_event SPRITE_YOUNGSTER, 21, 23, $2, $11, 255, 255, $80, 0, YoungsterScript_0x198a11, $06cf
-	person_event SPRITE_LASS, 14, 21, $5, $2, 255, 255, $a0, 0, LassScript_0x198a14, $06cf
-	person_event SPRITE_GRAMPS, 31, 15, $5, $1, 255, 255, $0, 0, GrampsScript_0x198a17, $06cf
-	person_event SPRITE_ROCKET, 20, 8, $7, $0, 255, 255, $0, 0, RocketScript_0x198a1a, $06cc
-	person_event SPRITE_ROCKET, 24, 32, $7, $0, 255, 255, $0, 0, RocketScript_0x198a29, $06cd
-	person_event SPRITE_ROCKET, 19, 12, $6, $0, 255, 255, $0, 0, RocketScript_0x198a2c, $06cd
-	person_event SPRITE_ROCKET, 27, 20, $9, $0, 255, 255, $0, 0, RocketScript_0x198a2f, $06ce
-	person_event SPRITE_ROCKET, 24, 33, $7, $0, 255, 255, $0, 0, RocketScript_0x198a32, $06ce
-	person_event SPRITE_ROCKET, 11, 33, $6, $0, 255, 255, $0, 0, RocketScript_0x198a35, $06ce
-	person_event SPRITE_ROCKET, 14, 35, $8, $0, 255, 255, $0, 0, RocketScript_0x198a38, $06ce
-	person_event SPRITE_POKEFAN_M, 26, 16, $3, $0, 255, 255, $80, 0, MoveTutor, $076a
+	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
--- a/maps/GoldenrodDeptStore1F.asm
+++ b/maps/GoldenrodDeptStore1F.asm
@@ -1,8 +1,8 @@
 GoldenrodDeptStore1F_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 ReceptionistScript_0x55981:
@@ -76,7 +76,7 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -83,17 +83,17 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 0, 14, $0, GoldenrodDeptStore1FDirectory
-	signpost 0, 3, $0, GoldenrodDeptStore1FElevatorButton
+	signpost 0, 14, SIGNPOST_READ, GoldenrodDeptStore1FDirectory
+	signpost 0, 3, SIGNPOST_READ, GoldenrodDeptStore1FElevatorButton
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_RECEPTIONIST, 5, 14, $6, $0, 255, 255, $0, 0, ReceptionistScript_0x55981, $ffff
-	person_event SPRITE_POKEFAN_F, 8, 9, $6, $0, 255, 255, $0, 0, PokefanFScript_0x55987, $ffff
-	person_event SPRITE_BUG_CATCHER, 9, 9, $5, $1, 255, 255, $a0, 0, BugCatcherScript_0x5598a, $ffff
-	person_event SPRITE_GENTLEMAN, 9, 15, $2, $11, 255, 255, $0, 0, GentlemanScript_0x55984, $ffff
+	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
--- a/maps/GoldenrodDeptStore2F.asm
+++ b/maps/GoldenrodDeptStore2F.asm
@@ -1,8 +1,8 @@
 GoldenrodDeptStore2F_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 ClerkScript_0x55b5d:
@@ -97,24 +97,24 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 0, 14, $0, GoldenrodDeptStore2FDirectory
-	signpost 0, 3, $0, GoldenrodDeptStore2FElevatorButton
+	signpost 0, 14, SIGNPOST_READ, GoldenrodDeptStore2FDirectory
+	signpost 0, 3, SIGNPOST_READ, GoldenrodDeptStore2FElevatorButton
 
-	; people-events
+.PersonEvents:
 	db 5
-	person_event SPRITE_CLERK, 9, 17, $7, $0, 255, 255, $0, 0, ClerkScript_0x55b5d, $ffff
-	person_event SPRITE_CLERK, 10, 17, $8, $0, 255, 255, $0, 0, ClerkScript_0x55b65, $ffff
-	person_event SPRITE_YOUNGSTER, 10, 13, $4, $10, 255, 255, $0, 0, YoungsterScript_0x55b6d, $ffff
-	person_event SPRITE_COOLTRAINER_F, 6, 10, $5, $2, 255, 255, $80, 0, CooltrainerFScript_0x55b70, $ffff
-	person_event SPRITE_GENTLEMAN, 10, 6, $3, $0, 255, 255, $0, 0, GentlemanScript_0x55b73, $ffff
+	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
--- a/maps/GoldenrodDeptStore3F.asm
+++ b/maps/GoldenrodDeptStore3F.asm
@@ -1,8 +1,8 @@
 GoldenrodDeptStore3F_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 ClerkScript_0x55db8:
@@ -55,22 +55,22 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 0, 14, $0, GoldenrodDeptStore3FDirectory
-	signpost 0, 3, $0, GoldenrodDeptStore3FElevatorButton
+	signpost 0, 14, SIGNPOST_READ, GoldenrodDeptStore3FDirectory
+	signpost 0, 3, SIGNPOST_READ, GoldenrodDeptStore3FElevatorButton
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 5, 10, $6, $0, 255, 255, $0, 0, ClerkScript_0x55db8, $ffff
-	person_event SPRITE_SUPER_NERD, 9, 16, $a, $10, 255, 255, $80, 0, SuperNerdScript_0x55dc0, $ffff
-	person_event SPRITE_ROCKER, 9, 6, $4, $10, 255, 255, $0, 0, RockerScript_0x55dc3, $ffff
+	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
--- a/maps/GoldenrodDeptStore4F.asm
+++ b/maps/GoldenrodDeptStore4F.asm
@@ -1,8 +1,8 @@
 GoldenrodDeptStore4F_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 ClerkScript_0x55ee9:
@@ -75,23 +75,23 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 0, 14, $0, GoldenrodDeptStore4FDirectory
-	signpost 0, 3, $0, GoldenrodDeptStore4FElevatorButton
+	signpost 0, 14, SIGNPOST_READ, GoldenrodDeptStore4FDirectory
+	signpost 0, 3, SIGNPOST_READ, GoldenrodDeptStore4FElevatorButton
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_CLERK, 9, 17, $7, $0, 255, 255, $0, 0, ClerkScript_0x55ee9, $ffff
-	person_event SPRITE_COOLTRAINER_M, 11, 15, $9, $0, 255, 255, $0, 0, CooltrainerMScript_0x55ef1, $ffff
-	person_event SPRITE_BUG_CATCHER, 6, 11, $5, $1, 255, 255, $0, 0, BugCatcherScript_0x55ef4, $ffff
-	person_event SPRITE_GAMEBOY_KID, 5, 9, $6, $0, 255, 255, $0, 0, GameboyKidScript_0x55ef7, $ffff
+	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
--- a/maps/GoldenrodDeptStore5F.asm
+++ b/maps/GoldenrodDeptStore5F.asm
@@ -1,21 +1,21 @@
 GoldenrodDeptStore5F_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
-	dbw 2, UnknownScript_0x56090
+	dbw 2, .CheckIfSunday
 
-UnknownScript_0x56090:
-	checkcode $b
-	if_equal SUNDAY, UnknownScript_0x56099
+.CheckIfSunday:
+	checkcode VAR_WEEKDAY
+	if_equal SUNDAY, .yes
 	disappear $7
 	return
 
-UnknownScript_0x56099:
+.yes:
 	appear $7
 	return
 
@@ -23,32 +23,32 @@
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_TM02_HEADBUTT
-	iftrue UnknownScript_0x560ad
+	iftrue .headbutt
 	checkevent EVENT_GOT_TM08_ROCK_SMASH
-	iftrue UnknownScript_0x560c2
-	jump UnknownScript_0x560b6
+	iftrue .onlyrocksmash
+	jump .neither
 
-UnknownScript_0x560ad:
+.headbutt:
 	checkevent EVENT_GOT_TM08_ROCK_SMASH
-	iftrue UnknownScript_0x560c8
-	jump UnknownScript_0x560bc
+	iftrue .both
+	jump .onlyheadbutt
 
-UnknownScript_0x560b6:
+.neither:
 	pokemart $0, $0009
 	loadmovesprites
 	end
 
-UnknownScript_0x560bc:
+.onlyheadbutt:
 	pokemart $0, $000a
 	loadmovesprites
 	end
 
-UnknownScript_0x560c2:
+.onlyrocksmash:
 	pokemart $0, $000b
 	loadmovesprites
 	end
 
-UnknownScript_0x560c8:
+.both:
 	pokemart $0, $000c
 	loadmovesprites
 	end
@@ -56,45 +56,45 @@
 ReceptionistScript_0x560ce:
 	faceplayer
 	loadfont
-	checkcode $b
-	if_not_equal SUNDAY, UnknownScript_0x56112
-	checkflag $005b
-	iftrue UnknownScript_0x56112
-	special Function718d
+	checkcode VAR_WEEKDAY
+	if_not_equal SUNDAY, .EventIsOver
+	checkflag ENGINE_GOLDENROD_MALL_5F_HAPPINESS_EVENT
+	iftrue .EventIsOver
+	special GetFirstPokemonHappiness
 	writetext UnknownText_0x56143
 	keeptextopen
-	if_greater_than $95, UnknownScript_0x560ee
-	if_greater_than $31, UnknownScript_0x560fd
-	jump UnknownScript_0x56103
+	if_greater_than $95, .VeryHappy
+	if_greater_than $31, .SomewhatHappy
+	jump .NotVeryHappy
 
-UnknownScript_0x560ee:
+.VeryHappy:
 	writetext UnknownText_0x5615a
 	keeptextopen
-	verbosegiveitem TM_27, 1
-	iffalse UnknownScript_0x56116
-	setflag $005b
+	verbosegiveitem TM_RETURN, 1
+	iffalse .Done
+	setflag ENGINE_GOLDENROD_MALL_5F_HAPPINESS_EVENT
 	loadmovesprites
 	end
 
-UnknownScript_0x560fd:
+.SomewhatHappy:
 	writetext UnknownText_0x561a6
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x56103:
+.NotVeryHappy:
 	writetext UnknownText_0x561d8
 	keeptextopen
-	verbosegiveitem TM_21, 1
-	iffalse UnknownScript_0x56116
-	setflag $005b
+	verbosegiveitem TM_FRUSTRATION, 1
+	iffalse .Done
+	setflag ENGINE_GOLDENROD_MALL_5F_HAPPINESS_EVENT
 	loadmovesprites
 	end
 
-UnknownScript_0x56112:
+.EventIsOver:
 	writetext UnknownText_0x56202
 	closetext
-UnknownScript_0x56116:
+.Done:
 	loadmovesprites
 	end
 
@@ -102,14 +102,14 @@
 	faceplayer
 	loadfont
 	special SpecialGameboyCheck
-	if_not_equal $2, UnknownScript_0x5612a
+	if_not_equal $2, .NotGBC ; This is a dummy check from Gold and Silver.  In normal gameplay, this would not be checked.
 	writetext UnknownText_0x56241
 	closetext
 	loadmovesprites
-	special Function1050b9
+	special Special_UnlockMysteryGift
 	end
 
-UnknownScript_0x5612a:
+.NotGBC:
 	writetext UnknownText_0x56279
 	closetext
 	loadmovesprites
@@ -216,25 +216,25 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 0, 14, $0, GoldenrodDeptStore5FDirectory
-	signpost 0, 3, $0, GoldenrodDeptStore5FElevatorButton
+	signpost 0, 14, SIGNPOST_READ, GoldenrodDeptStore5FDirectory
+	signpost 0, 3, SIGNPOST_READ, GoldenrodDeptStore5FElevatorButton
 
-	; people-events
+.PersonEvents:
 	db 6
-	person_event SPRITE_CLERK, 9, 12, $7, $0, 255, 255, $0, 0, ClerkScript_0x5609c, $ffff
-	person_event SPRITE_LASS, 10, 7, $2, $11, 255, 255, $0, 0, LassScript_0x56130, $ffff
-	person_event SPRITE_COOLTRAINER_M, 7, 10, $3, $0, 255, 255, $0, 0, CooltrainerMScript_0x56133, $ffff
-	person_event SPRITE_POKEFAN_M, 9, 17, $2, $22, 255, 255, $0, 0, PokefanMScript_0x5613a, $ffff
-	person_event SPRITE_TWIN, 5, 13, $6, $0, 255, 255, $a0, 0, TwinScript_0x56118, $ffff
-	person_event SPRITE_RECEPTIONIST, 9, 11, $7, $0, 255, 255, $80, 0, ReceptionistScript_0x560ce, $0763
+	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
--- a/maps/GoldenrodDeptStore6F.asm
+++ b/maps/GoldenrodDeptStore6F.asm
@@ -1,8 +1,8 @@
 GoldenrodDeptStore6F_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 GoldenrodVendingMachine:
@@ -149,25 +149,25 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 6
-	signpost 0, 14, $0, GoldenrodDeptStore6FDirectory
-	signpost 0, 3, $0, GoldenrodDeptStore6FElevatorButton
-	signpost 1, 8, $1, GoldenrodVendingMachine
-	signpost 1, 9, $1, GoldenrodVendingMachine
-	signpost 1, 10, $1, GoldenrodVendingMachine
-	signpost 1, 11, $1, GoldenrodVendingMachine
+	signpost 0, 14, SIGNPOST_READ, GoldenrodDeptStore6FDirectory
+	signpost 0, 3, SIGNPOST_READ, GoldenrodDeptStore6FElevatorButton
+	signpost 1, 8, SIGNPOST_UP, GoldenrodVendingMachine
+	signpost 1, 9, SIGNPOST_UP, GoldenrodVendingMachine
+	signpost 1, 10, SIGNPOST_UP, GoldenrodVendingMachine
+	signpost 1, 11, SIGNPOST_UP, GoldenrodVendingMachine
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_LASS, 6, 14, $5, $1, 255, 255, $a0, 0, LassScript_0x564bf, $ffff
-	person_event SPRITE_SUPER_NERD, 6, 12, $7, $0, 255, 255, $80, 0, SuperNerdScript_0x564c2, $ffff
+	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
--- a/maps/GoldenrodDeptStoreB1F.asm
+++ b/maps/GoldenrodDeptStoreB1F.asm
@@ -1,8 +1,8 @@
-GoldenrodDeptStoreB1F_MapScriptHeader: ; 0x7d779
-	; trigger count
+GoldenrodDeptStoreB1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 2
 
 	; callbacks
@@ -10,56 +10,46 @@
 	dbw 1, UnknownScript_0x7d781
 
 	dbw 5, UnknownScript_0x7d7ac
-; 0x7d781
 
-UnknownScript_0x7d781: ; 0x7d781
-	checkevent $004a
+UnknownScript_0x7d781:
+	checkevent EVENT_RECEIVED_CARD_KEY
 	iftrue UnknownScript_0x7d78a
 	jump UnknownScript_0x7d791
-; 0x7d78a
 
-UnknownScript_0x7d78a: ; 0x7d78a
+UnknownScript_0x7d78a:
 	changeblock $10, $4, $d
 	jump UnknownScript_0x7d791
-; 0x7d791
 
-UnknownScript_0x7d791: ; 0x7d791
-	checkevent $0305
-	iftrue UnknownScript_0x7d7a2
-	checkevent $0306
-	iftrue UnknownScript_0x7d7a7
+UnknownScript_0x7d791:
+	checkevent EVENT_WAREHOUSE_LAYOUT_2
+	iftrue .Layout2
+	checkevent EVENT_WAREHOUSE_LAYOUT_3
+	iftrue .Layout3
 	changeblock $a, $8, $d
 	return
-; 0x7d7a2
 
-UnknownScript_0x7d7a2: ; 0x7d7a2
+.Layout2
 	changeblock $4, $a, $d
 	return
-; 0x7d7a7
 
-UnknownScript_0x7d7a7: ; 0x7d7a7
+.Layout3
 	changeblock $a, $c, $d
 	return
-; 0x7d7ac
 
-UnknownScript_0x7d7ac: ; 0x7d7ac
-	clearevent $0307
+UnknownScript_0x7d7ac:
+	clearevent EVENT_WAREHOUSE_BLOCKED_OFF
 	return
-; 0x7d7b0
 
-BlackBeltScript_0x7d7b0: ; 0x7d7b0
+BlackBeltScript_0x7d7b0:
 	jumptextfaceplayer UnknownText_0x7d7cb
-; 0x7d7b3
 
-BlackBeltScript_0x7d7b3: ; 0x7d7b3
+BlackBeltScript_0x7d7b3:
 	jumptextfaceplayer UnknownText_0x7d82c
-; 0x7d7b6
 
-BlackBeltScript_0x7d7b6: ; 0x7d7b6
+BlackBeltScript_0x7d7b6:
 	jumptextfaceplayer UnknownText_0x7d875
-; 0x7d7b9
 
-MachopScript_0x7d7b9: ; 0x7d7b9
+MachopScript_0x7d7b9:
 	loadfont
 	writetext UnknownText_0x7d8bb
 	cry MACHOKE
@@ -66,25 +56,20 @@
 	closetext
 	loadmovesprites
 	end
-; 0x7d7c3
 
-ItemFragment_0x7d7c3: ; 0x7d7c3
+ItemFragment_0x7d7c3:
 	db ETHER, 1
-; 0x7d7c5
 
-ItemFragment_0x7d7c5: ; 0x7d7c5
+ItemFragment_0x7d7c5:
 	db AMULET_COIN, 1
-; 0x7d7c7
 
-ItemFragment_0x7d7c7: ; 0x7d7c7
+ItemFragment_0x7d7c7:
 	db BURN_HEAL, 1
-; 0x7d7c9
 
-ItemFragment_0x7d7c9: ; 0x7d7c9
+ItemFragment_0x7d7c9:
 	db ULTRA_BALL, 1
-; 0x7d7cb
 
-UnknownText_0x7d7cb: ; 0x7d7cb
+UnknownText_0x7d7cb:
 	text "Hey, kid! You're"
 	line "holding us up!"
 
@@ -94,9 +79,8 @@
 	para "scenes where no"
 	line "one can see us!"
 	done
-; 0x7d82c
 
-UnknownText_0x7d82c: ; 0x7d82c
+UnknownText_0x7d82c:
 	text "I lose my passion"
 	line "for work if some-"
 	cont "one's watching."
@@ -104,9 +88,8 @@
 	para "Come on, kid,"
 	line "scoot!"
 	done
-; 0x7d875
 
-UnknownText_0x7d875: ; 0x7d875
+UnknownText_0x7d875:
 	text "Oohah! Oohah!"
 
 	para "The stuff on the"
@@ -115,37 +98,34 @@
 	para "Take it if you"
 	line "want it!"
 	done
-; 0x7d8bb
 
-UnknownText_0x7d8bb: ; 0x7d8bb
+UnknownText_0x7d8bb:
 	text "MACHOKE: Maaacho!"
 	done
-; 0x7d8ce
 
-GoldenrodDeptStoreB1F_MapEventHeader: ; 0x7d8ce
+GoldenrodDeptStoreB1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 8
-	person_event SPRITE_POKE_BALL, 19, 14, $1, $0, 255, 255, $1, 0, ItemFragment_0x7d7c3, $0675
-	person_event SPRITE_POKE_BALL, 6, 18, $1, $0, 255, 255, $1, 0, ItemFragment_0x7d7c5, $0676
-	person_event SPRITE_POKE_BALL, 7, 10, $1, $0, 255, 255, $1, 0, ItemFragment_0x7d7c7, $0677
-	person_event SPRITE_POKE_BALL, 19, 19, $1, $0, 255, 255, $1, 0, ItemFragment_0x7d7c9, $0678
-	person_event SPRITE_BLACK_BELT, 14, 13, $4, $10, 255, 255, $a0, 0, BlackBeltScript_0x7d7b0, $ffff
-	person_event SPRITE_BLACK_BELT, 12, 8, $3, $0, 255, 255, $80, 0, BlackBeltScript_0x7d7b3, $ffff
-	person_event SPRITE_BLACK_BELT, 17, 10, $5, $1, 255, 255, $90, 0, BlackBeltScript_0x7d7b6, $ffff
-	person_event SPRITE_MACHOP, 11, 11, $16, $0, 255, 255, $90, 0, MachopScript_0x7d7b9, $ffff
-; 0x7d94b
+	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
--- a/maps/GoldenrodDeptStoreElevator.asm
+++ b/maps/GoldenrodDeptStoreElevator.asm
@@ -1,55 +1,50 @@
-GoldenrodDeptStoreElevator_MapScriptHeader: ; 0x56697
-	; trigger count
+GoldenrodDeptStoreElevator_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x56699
 
-MapGoldenrodDeptStoreElevatorSignpost0Script: ; 0x56699
+MapGoldenrodDeptStoreElevatorSignpost0Script:
 	loadfont
 	elevator Elevator_0x566e0
 	loadmovesprites
-	iffalse UnknownScript_0x566df
+	iffalse .Done
 	pause 5
 	playsound SFX_ELEVATOR
 	earthquake 60
 	waitbutton
-	checkevent $0307
-	iftrue UnknownScript_0x566df
-	checkevent $0304
-	iftrue UnknownScript_0x566cb
-	checkevent $0305
-	iftrue UnknownScript_0x566d5
-	checkevent $0306
-	iftrue UnknownScript_0x566c1
-UnknownScript_0x566c1: ;0x566c1
-	setevent $0304
-	clearevent $0305
-	clearevent $0306
+	checkevent EVENT_WAREHOUSE_BLOCKED_OFF
+	iftrue .Done
+	checkevent EVENT_WAREHOUSE_LAYOUT_1
+	iftrue .BoxLayout1
+	checkevent EVENT_WAREHOUSE_LAYOUT_2
+	iftrue .BoxLayout2
+	checkevent EVENT_WAREHOUSE_LAYOUT_3
+	iftrue .BoxLayout3
+.BoxLayout3
+	setevent EVENT_WAREHOUSE_LAYOUT_1
+	clearevent EVENT_WAREHOUSE_LAYOUT_2
+	clearevent EVENT_WAREHOUSE_LAYOUT_3
 	end
-; 0x566cb
 
-UnknownScript_0x566cb: ; 0x566cb
-	clearevent $0304
-	setevent $0305
-	clearevent $0306
+.BoxLayout1
+	clearevent EVENT_WAREHOUSE_LAYOUT_1
+	setevent EVENT_WAREHOUSE_LAYOUT_2
+	clearevent EVENT_WAREHOUSE_LAYOUT_3
 	end
-; 0x566d5
 
-UnknownScript_0x566d5: ; 0x566d5
-	clearevent $0304
-	clearevent $0305
-	setevent $0306
+.BoxLayout2
+	clearevent EVENT_WAREHOUSE_LAYOUT_1
+	clearevent EVENT_WAREHOUSE_LAYOUT_2
+	setevent EVENT_WAREHOUSE_LAYOUT_3
 	end
-; 0x566df
 
-UnknownScript_0x566df: ; 0x566df
+.Done
 	end
-; 0x566e0
 
 
-Elevator_0x566e0: ; 0x566e0
+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
@@ -59,25 +54,23 @@
 	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
 	db $ff ; end
-; 0x566fe
 
 
-GoldenrodDeptStoreElevator_MapEventHeader: ; 0x566fe
+GoldenrodDeptStoreElevator_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 0, 3, $0, MapGoldenrodDeptStoreElevatorSignpost0Script
+	signpost 0, 3, SIGNPOST_READ, MapGoldenrodDeptStoreElevatorSignpost0Script
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x56713
--- a/maps/GoldenrodDeptStoreRoof.asm
+++ b/maps/GoldenrodDeptStoreRoof.asm
@@ -1,55 +1,48 @@
-GoldenrodDeptStoreRoof_MapScriptHeader: ; 0x56713
-	; trigger count
+GoldenrodDeptStoreRoof_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 2
 
 	; callbacks
 
-	dbw 1, UnknownScript_0x5671b
+	dbw 1, .CheckSaleChangeBlock
 
-	dbw 2, UnknownScript_0x5672b
-; 0x5671b
+	dbw 2, .CheckSaleChangeClerk
 
-UnknownScript_0x5671b: ; 0x5671b
-	checkflag $0061
-	iftrue UnknownScript_0x56722
+.CheckSaleChangeBlock:
+	checkflag ENGINE_GOLDENROD_DEPT_STORE_SALE_IS_ON
+	iftrue .ChangeBlock
 	return
-; 0x56722
 
-UnknownScript_0x56722: ; 0x56722
+.ChangeBlock:
 	changeblock $0, $2, $3f
 	changeblock $0, $4, $f
 	return
-; 0x5672b
 
-UnknownScript_0x5672b: ; 0x5672b
-	checkflag $0061
-	iftrue UnknownScript_0x56738
-	setevent $06f0
-	clearevent $06f1
+.CheckSaleChangeClerk:
+	checkflag ENGINE_GOLDENROD_DEPT_STORE_SALE_IS_ON
+	iftrue .ChangeClerk
+	setevent EVENT_GOLDENROD_SALE_OFF
+	clearevent EVENT_GOLDENROD_SALE_ON
 	return
-; 0x56738
 
-UnknownScript_0x56738: ; 0x56738
-	clearevent $06f0
-	setevent $06f1
+.ChangeClerk:
+	clearevent EVENT_GOLDENROD_SALE_OFF
+	setevent EVENT_GOLDENROD_SALE_ON
 	return
-; 0x5673f
 
-ClerkScript_0x5673f: ; 0x5673f
+ClerkScript_0x5673f:
 	loadfont
 	pokemart $4, $0000
 	loadmovesprites
 	end
-; 0x56746
 
-PokefanFScript_0x56746: ; 0x56746
+PokefanFScript_0x56746:
 	jumptextfaceplayer UnknownText_0x5677f
-; 0x56749
 
-FisherScript_0x56749: ; 0x56749
+FisherScript_0x56749:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x567d2
@@ -57,13 +50,11 @@
 	loadmovesprites
 	spriteface $4, UP
 	end
-; 0x56754
 
-TwinScript_0x56754: ; 0x56754
+TwinScript_0x56754:
 	jumptextfaceplayer UnknownText_0x56839
-; 0x56757
 
-SuperNerdScript_0x56757: ; 0x56757
+SuperNerdScript_0x56757:
 	loadfont
 	writetext UnknownText_0x56867
 	closetext
@@ -75,37 +66,29 @@
 	loadmovesprites
 	spriteface $6, RIGHT
 	end
-; 0x5676a
 
-PokefanMScript_0x5676a: ; 0x5676a
+PokefanMScript_0x5676a:
 	jumptextfaceplayer UnknownText_0x5688e
-; 0x5676d
 
-TeacherScript_0x5676d: ; 0x5676d
+TeacherScript_0x5676d:
 	jumptextfaceplayer UnknownText_0x56901
-; 0x56770
 
-BugCatcherScript_0x56770: ; 0x56770
+BugCatcherScript_0x56770:
 	jumptextfaceplayer UnknownText_0x56942
-; 0x56773
 
-MapGoldenrodDeptStoreRoofSignpost0Script: ; 0x56773
+MapGoldenrodDeptStoreRoofSignpost0Script:
 	jumptext UnknownText_0x569c3
-; 0x56776
 
-MapGoldenrodDeptStoreRoofSignpost1Script: ; 0x56776
+MapGoldenrodDeptStoreRoofSignpost1Script:
 	jumptext UnknownText_0x56a2b
-; 0x56779
 
-MapGoldenrodDeptStoreRoofSignpost2Script: ; 0x56779
+MapGoldenrodDeptStoreRoofSignpost2Script:
 	jumptext UnknownText_0x56aa6
-; 0x5677c
 
-MapGoldenrodDeptStoreRoofSignpost3Script: ; 0x5677c
+MapGoldenrodDeptStoreRoofSignpost3Script:
 	jumptext UnknownText_0x56b11
-; 0x5677f
 
-UnknownText_0x5677f: ; 0x5677f
+UnknownText_0x5677f:
 	text "Whew, I'm tired."
 
 	para "I sometimes come"
@@ -114,9 +97,8 @@
 	para "to take a break"
 	line "from shopping."
 	done
-; 0x567d2
 
-UnknownText_0x567d2: ; 0x567d2
+UnknownText_0x567d2:
 	text "Pardon? Who says"
 	line "an adult can't get"
 	cont "into this?"
@@ -127,27 +109,23 @@
 	para "collect all the"
 	line "dolls!"
 	done
-; 0x56839
 
-UnknownText_0x56839: ; 0x56839
+UnknownText_0x56839:
 	text "They have bargain"
 	line "sales here every"
 	cont "so often."
 	done
-; 0x56867
 
-UnknownText_0x56867: ; 0x56867
+UnknownText_0x56867:
 	text "Oh, wow!"
 	done
-; 0x56871
 
-UnknownText_0x56871: ; 0x56871
+UnknownText_0x56871:
 	text "Will you quit"
 	line "bothering me?"
 	done
-; 0x5688e
 
-UnknownText_0x5688e: ; 0x5688e
+UnknownText_0x5688e:
 	text "There's something"
 	line "I really want, but"
 
@@ -158,9 +136,8 @@
 	line "off the BERRIES"
 	cont "I've collected…"
 	done
-; 0x56901
 
-UnknownText_0x56901: ; 0x56901
+UnknownText_0x56901:
 	text "Oh, everything is"
 	line "so cheap!"
 
@@ -167,9 +144,8 @@
 	para "I bought so much,"
 	line "my PACK's crammed!"
 	done
-; 0x56942
 
-UnknownText_0x56942: ; 0x56942
+UnknownText_0x56942:
 	text "My #MON always"
 	line "get paralyzed or"
 
@@ -182,9 +158,8 @@
 	para "I wonder if"
 	line "there's any left?"
 	done
-; 0x569c3
 
-UnknownText_0x569c3: ; 0x569c3
+UnknownText_0x569c3:
 	text "These binoculars"
 	line "let me see far"
 
@@ -194,9 +169,8 @@
 	para "Is it the one with"
 	line "the green roof?"
 	done
-; 0x56a2b
 
-UnknownText_0x56a2b: ; 0x56a2b
+UnknownText_0x56a2b:
 	text "Hey! Some trainers"
 	line "are battling on"
 	cont "the road!"
@@ -208,9 +182,8 @@
 	line "like battling"
 	cont "right now!"
 	done
-; 0x56aa6
 
-UnknownText_0x56aa6: ; 0x56aa6
+UnknownText_0x56aa6:
 	text "A FISHER caught a"
 	line "lot of MAGIKARP…"
 
@@ -220,9 +193,8 @@
 	para "Look at the water"
 	line "going everywhere!"
 	done
-; 0x56b11
 
-UnknownText_0x56b11: ; 0x56b11
+UnknownText_0x56b11:
 	text "A vending machine"
 	line "for #MON dolls?"
 
@@ -232,34 +204,32 @@
 	para "But it's almost"
 	line "empty…"
 	done
-; 0x56b6d
 
-GoldenrodDeptStoreRoof_MapEventHeader: ; 0x56b6d
+GoldenrodDeptStoreRoof_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $1, $d, 3, GROUP_GOLDENROD_DEPT_STORE_6F, MAP_GOLDENROD_DEPT_STORE_6F
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 4
-	signpost 3, 15, $3, MapGoldenrodDeptStoreRoofSignpost0Script
-	signpost 5, 15, $3, MapGoldenrodDeptStoreRoofSignpost1Script
-	signpost 6, 15, $3, MapGoldenrodDeptStoreRoofSignpost2Script
-	signpost 0, 3, $1, MapGoldenrodDeptStoreRoofSignpost3Script
+	signpost 3, 15, SIGNPOST_RIGHT, MapGoldenrodDeptStoreRoofSignpost0Script
+	signpost 5, 15, SIGNPOST_RIGHT, MapGoldenrodDeptStoreRoofSignpost1Script
+	signpost 6, 15, SIGNPOST_RIGHT, MapGoldenrodDeptStoreRoofSignpost2Script
+	signpost 0, 3, SIGNPOST_UP, MapGoldenrodDeptStoreRoofSignpost3Script
 
-	; people-events
+.PersonEvents:
 	db 8
-	person_event SPRITE_CLERK, 8, 5, $9, $0, 255, 255, $0, 0, ClerkScript_0x5673f, $06f0
-	person_event SPRITE_POKEFAN_F, 7, 14, $5, $1, 255, 255, $80, 0, PokefanFScript_0x56746, $ffff
-	person_event SPRITE_FISHER, 5, 6, $7, $0, 255, 255, $90, 0, FisherScript_0x56749, $ffff
-	person_event SPRITE_TWIN, 8, 7, $2, $11, 255, 255, $a0, 0, TwinScript_0x56754, $06f1
-	person_event SPRITE_SUPER_NERD, 10, 18, $9, $0, 255, 255, $a0, 0, SuperNerdScript_0x56757, $06f1
-	person_event SPRITE_POKEFAN_M, 4, 11, $5, $1, 255, 255, $0, 0, PokefanMScript_0x5676a, $06f0
-	person_event SPRITE_TEACHER, 7, 9, $2, $11, 255, 255, $a0, 0, TeacherScript_0x5676d, $06f0
-	person_event SPRITE_BUG_CATCHER, 10, 5, $7, $0, 255, 255, $80, 0, BugCatcherScript_0x56770, $06f0
-; 0x56bf4
+	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
--- a/maps/GoldenrodFlowerShop.asm
+++ b/maps/GoldenrodFlowerShop.asm
@@ -1,12 +1,11 @@
-GoldenrodFlowerShop_MapScriptHeader: ; 0x5535b
-	; trigger count
+GoldenrodFlowerShop_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x5535d
 
-TeacherScript_0x5535d: ; 0x5535d
+TeacherScript_0x5535d:
 	checkevent EVENT_FOUGHT_SUDOWOODO
 	iftrue UnknownScript_0x5538f
 	checkevent EVENT_GOT_SQUIRTBOTTLE
@@ -13,9 +12,9 @@
 	iftrue UnknownScript_0x55399
 	checkevent EVENT_MET_FLORIA
 	iffalse UnknownScript_0x5539f
-	checkevent $00ba
+	checkevent EVENT_TALKED_TO_FLORIA_AT_FLOWER_SHOP
 	iffalse UnknownScript_0x5538f
-	checkflag $001d
+	checkflag ENGINE_PLAINBADGE
 	iffalse UnknownScript_0x5539c
 	faceplayer
 	loadfont
@@ -25,11 +24,10 @@
 	setevent EVENT_GOT_SQUIRTBOTTLE
 	loadmovesprites
 	setevent EVENT_FLORIA_AT_SUDOWOODO
-	clearevent $0768
+	clearevent EVENT_FLORIA_AT_FLOWER_SHOP
 	end
-; 0x5538f
 
-UnknownScript_0x5538f: ; 0x5538f
+UnknownScript_0x5538f:
 	spriteface $2, LEFT
 	loadfont
 	writetext UnknownText_0x5552e
@@ -36,21 +34,17 @@
 	closetext
 	loadmovesprites
 	end
-; 0x55399
 
-UnknownScript_0x55399: ; 0x55399
+UnknownScript_0x55399:
 	jumptextfaceplayer UnknownText_0x5550d
-; 0x5539c
 
-UnknownScript_0x5539c: ; 0x5539c
+UnknownScript_0x5539c:
 	jumptextfaceplayer UnknownText_0x55463
-; 0x5539f
 
-UnknownScript_0x5539f: ; 0x5539f
+UnknownScript_0x5539f:
 	jumptextfaceplayer UnknownText_0x553d4
-; 0x553a2
 
-LassScript_0x553a2: ; 0x553a2
+LassScript_0x553a2:
 	faceplayer
 	loadfont
 	checkevent EVENT_FOUGHT_SUDOWOODO
@@ -60,25 +54,22 @@
 	writetext UnknownText_0x55561
 	closetext
 	loadmovesprites
-	setevent $00ba
-	setevent $0768
+	setevent EVENT_TALKED_TO_FLORIA_AT_FLOWER_SHOP
+	setevent EVENT_FLORIA_AT_FLOWER_SHOP
 	clearevent EVENT_FLORIA_AT_SUDOWOODO
 	end
-; 0x553bf
 
-UnknownScript_0x553bf: ; 0x553bf
+UnknownScript_0x553bf:
 	writetext UnknownText_0x555e6
 	closetext
 	loadmovesprites
 	end
-; 0x553c5
 
-UnknownScript_0x553c5: ; 0x553c5
+UnknownScript_0x553c5:
 	writetext UnknownText_0x55604
 	closetext
 	loadmovesprites
 	end
-; 0x553cb
 
 FlowerShopShelf1:
 ; unused
@@ -92,7 +83,7 @@
 ; unused
 	jumpstd radio2
 
-UnknownText_0x553d4: ; 0x553d4
+UnknownText_0x553d4:
 	text "Have you seen that"
 	line "wiggly tree that's"
 
@@ -108,9 +99,8 @@
 	para "I'm worried… Isn't"
 	line "it dangerous?"
 	done
-; 0x55463
 
-UnknownText_0x55463: ; 0x55463
+UnknownText_0x55463:
 	text "Do you want to"
 	line "borrow the water"
 
@@ -120,9 +110,8 @@
 	para "doing anything"
 	line "dangerous with it."
 	done
-; 0x554c2
 
-UnknownText_0x554c2: ; 0x554c2
+UnknownText_0x554c2:
 	text "Oh, you're better"
 	line "than WHITNEY…"
 
@@ -130,22 +119,19 @@
 	line "then. Here's the"
 	cont "SQUIRTBOTTLE!"
 	done
-; 0x5550d
 
-UnknownText_0x5550d: ; 0x5550d
+UnknownText_0x5550d:
 	text "Don't do anything"
 	line "too dangerous!"
 	done
-; 0x5552e
 
-UnknownText_0x5552e: ; 0x5552e
+UnknownText_0x5552e:
 	text "Lalala lalalala."
 	line "Have plenty of"
 	cont "water, my lovely!"
 	done
-; 0x55561
 
-UnknownText_0x55561: ; 0x55561
+UnknownText_0x55561:
 	text "When I told my sis"
 	line "about the jiggly"
 
@@ -158,37 +144,33 @@
 	para "lend me her water"
 	line "bottle…"
 	done
-; 0x555e6
 
-UnknownText_0x555e6: ; 0x555e6
+UnknownText_0x555e6:
 	text "Wow, you beat"
 	line "WHITNEY? Cool!"
 	done
-; 0x55604
 
-UnknownText_0x55604: ; 0x55604
+UnknownText_0x55604:
 	text "So it really was a"
 	line "#MON!"
 	done
-; 0x5561e
 
-GoldenrodFlowerShop_MapEventHeader: ; 0x5561e
+GoldenrodFlowerShop_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_TEACHER, 8, 6, $9, $0, 255, 255, $0, 0, TeacherScript_0x5535d, $ffff
-	person_event SPRITE_LASS, 10, 9, $2, $11, 255, 255, $90, 0, LassScript_0x553a2, $0768
-; 0x55648
+	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
--- a/maps/GoldenrodGameCorner.asm
+++ b/maps/GoldenrodGameCorner.asm
@@ -1,37 +1,34 @@
-GoldenrodGameCorner_MapScriptHeader: ; 0x56bf4
-	; trigger count
+GoldenrodGameCorner_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 2, UnknownScript_0x56bf9
-; 0x56bf9
 
-UnknownScript_0x56bf9: ; 0x56bf9
+UnknownScript_0x56bf9:
 	checkevent EVENT_BEAT_ELITE_FOUR
 	iffalse UnknownScript_0x56c19
 	checkitem COIN_CASE
 	iffalse UnknownScript_0x56c0e
-	checkcode $b
+	checkcode VAR_WEEKDAY
 	if_equal WEDNESDAY, UnknownScript_0x56c11
 	if_equal SATURDAY, UnknownScript_0x56c11
-UnknownScript_0x56c0e: ; 0x56c0e
+UnknownScript_0x56c0e:
 	appear $d
 	return
-; 0x56c11
 
-UnknownScript_0x56c11: ; 0x56c11
-	checkflag ENGINE_5E
+UnknownScript_0x56c11:
+	checkflag ENGINE_DAILY_MOVE_TUTOR
 	iftrue UnknownScript_0x56c19
 	disappear $d
 UnknownScript_0x56c19: ;0x56c19
 	return
-; 0x56c1a
 
-PokefanMScript_0x56c1a: ; 0x56c1a
+PokefanMScript_0x56c1a:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x5718a
@@ -39,13 +36,11 @@
 	loadmovesprites
 	spriteface $d, RIGHT
 	end
-; 0x56c25
 
-ClerkScript_0x56c25: ; 0x56c25
-	jumpstd $0032
-; 0x56c28
+ClerkScript_0x56c25:
+	jumpstd gamecornercoinvendor
 
-ReceptionistScript_0x56c28: ; 0x56c28
+ReceptionistScript_0x56c28:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x56e50
@@ -62,96 +57,85 @@
 	if_equal $2, UnknownScript_0x56c69
 	if_equal $3, UnknownScript_0x56c85
 	jump UnknownScript_0x56cbd
-; 0x56c4d
 
-UnknownScript_0x56c4d: ; 0x56c4d
+UnknownScript_0x56c4d:
 	checkcoins 5500
 	if_equal $2, UnknownScript_0x56cb1
-	itemtotext TM_25, $0
+	itemtotext TM_THUNDER, $0
 	scall UnknownScript_0x56ca1
 	iffalse UnknownScript_0x56cbd
-	giveitem TM_25, $1
+	giveitem TM_THUNDER, $1
 	iffalse UnknownScript_0x56cb7
 	takecoins 5500
 	jump UnknownScript_0x56ca6
-; 0x56c69
 
-UnknownScript_0x56c69: ; 0x56c69
+UnknownScript_0x56c69:
 	checkcoins 5500
 	if_equal $2, UnknownScript_0x56cb1
-	itemtotext TM_14, $0
+	itemtotext TM_BLIZZARD, $0
 	scall UnknownScript_0x56ca1
 	iffalse UnknownScript_0x56cbd
-	giveitem TM_14, $1
+	giveitem TM_BLIZZARD, $1
 	iffalse UnknownScript_0x56cb7
 	takecoins 5500
 	jump UnknownScript_0x56ca6
-; 0x56c85
 
-UnknownScript_0x56c85: ; 0x56c85
+UnknownScript_0x56c85:
 	checkcoins 5500
 	if_equal $2, UnknownScript_0x56cb1
-	itemtotext TM_38, $0
+	itemtotext TM_FIRE_BLAST, $0
 	scall UnknownScript_0x56ca1
 	iffalse UnknownScript_0x56cbd
-	giveitem TM_38, $1
+	giveitem TM_FIRE_BLAST, $1
 	iffalse UnknownScript_0x56cb7
 	takecoins 5500
 	jump UnknownScript_0x56ca6
-; 0x56ca1
 
-UnknownScript_0x56ca1: ; 0x56ca1
+UnknownScript_0x56ca1:
 	writetext UnknownText_0x56ea8
 	yesorno
 	end
-; 0x56ca6
 
-UnknownScript_0x56ca6: ; 0x56ca6
+UnknownScript_0x56ca6:
 	waitbutton
 	playsound SFX_TRANSACTION
 	writetext UnknownText_0x56ebd
 	closetext
 	jump UnknownScript_0x56c36
-; 0x56cb1
 
-UnknownScript_0x56cb1: ; 0x56cb1
+UnknownScript_0x56cb1:
 	writetext UnknownText_0x56ecb
 	closetext
 	loadmovesprites
 	end
-; 0x56cb7
 
-UnknownScript_0x56cb7: ; 0x56cb7
+UnknownScript_0x56cb7:
 	writetext UnknownText_0x56ee8
 	closetext
 	loadmovesprites
 	end
-; 0x56cbd
 
-UnknownScript_0x56cbd: ; 0x56cbd
+UnknownScript_0x56cbd:
 	writetext UnknownText_0x56f09
 	closetext
 	loadmovesprites
 	end
-; 0x56cc3
 
-UnknownScript_0x56cc3: ; 0x56cc3
+UnknownScript_0x56cc3:
 	writetext UnknownText_0x56f35
 	closetext
 	loadmovesprites
 	end
-; 0x56cc9
 
 
-MenuDataHeader_0x56cc9: ; 0x56cc9
+MenuDataHeader_0x56cc9:
 	db $40 ; flags
 	db 02, 00 ; start coords
 	db 11, 15 ; end coords
 	dw MenuData2_0x56cd1
 	db 1 ; default option
-; 0x56cd1
 
-MenuData2_0x56cd1: ; 0x56cd1
+MenuData2_0x56cd1:
 	db $80 ; flags
 	db 4 ; items
 	db "TM25    5500@"
@@ -158,10 +142,9 @@
 	db "TM14    5500@"
 	db "TM38    5500@"
 	db "CANCEL@"
-; 0x56d01
 
 
-ReceptionistScript_0x56d01: ; 0x56d01
+ReceptionistScript_0x56d01:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x56e50
@@ -168,7 +151,7 @@
 	closetext
 	checkitem COIN_CASE
 	iffalse UnknownScript_0x56cc3
-UnknownScript_0x56d0c: ; 0x56d0c
+UnknownScript_0x56d0c:
 	writetext UnknownText_0x56e8b
 	special Function24b25
 	loadmenudata MenuDataHeader_0x56db0
@@ -178,12 +161,11 @@
 	if_equal $2, UnknownScript_0x56d54
 	if_equal $3, UnknownScript_0x56d82
 	jump UnknownScript_0x56cbd
-; 0x56d26
 
-UnknownScript_0x56d26: ; 0x56d26
+UnknownScript_0x56d26:
 	checkcoins 100
 	if_equal $2, UnknownScript_0x56cb1
-	checkcode $1
+	checkcode VAR_PARTYCOUNT
 	if_equal $6, UnknownScript_0x56cb7
 	pokenamemem ABRA, $0
 	scall UnknownScript_0x56ca1
@@ -193,16 +175,15 @@
 	writetext UnknownText_0x56ebd
 	closetext
 	writebyte ABRA
-	special Functionc230
+	special Special_GameCornerPrizeMonCheckDex
 	givepoke ABRA, 5, 0, 0
 	takecoins 100
 	jump UnknownScript_0x56d0c
-; 0x56d54
 
-UnknownScript_0x56d54: ; 0x56d54
+UnknownScript_0x56d54:
 	checkcoins 800
 	if_equal $2, UnknownScript_0x56cb1
-	checkcode $1
+	checkcode VAR_PARTYCOUNT
 	if_equal $6, UnknownScript_0x56cb7
 	pokenamemem CUBONE, $0
 	scall UnknownScript_0x56ca1
@@ -212,16 +193,15 @@
 	writetext UnknownText_0x56ebd
 	closetext
 	writebyte CUBONE
-	special Functionc230
+	special Special_GameCornerPrizeMonCheckDex
 	givepoke CUBONE, 15, 0, 0
 	takecoins 800
 	jump UnknownScript_0x56d0c
-; 0x56d82
 
-UnknownScript_0x56d82: ; 0x56d82
+UnknownScript_0x56d82:
 	checkcoins 1500
 	if_equal $2, UnknownScript_0x56cb1
-	checkcode $1
+	checkcode VAR_PARTYCOUNT
 	if_equal $6, UnknownScript_0x56cb7
 	pokenamemem WOBBUFFET, $0
 	scall UnknownScript_0x56ca1
@@ -231,22 +211,20 @@
 	writetext UnknownText_0x56ebd
 	closetext
 	writebyte WOBBUFFET
-	special Functionc230
+	special Special_GameCornerPrizeMonCheckDex
 	givepoke WOBBUFFET, 15, 0, 0
 	takecoins 1500
 	jump UnknownScript_0x56d0c
-; 0x56db0
 
 
-MenuDataHeader_0x56db0: ; 0x56db0
+MenuDataHeader_0x56db0:
 	db $40 ; flags
 	db 02, 00 ; start coords
 	db 11, 17 ; end coords
 	dw MenuData2_0x56db8
 	db 1 ; default option
-; 0x56db8
 
-MenuData2_0x56db8: ; 0x56db8
+MenuData2_0x56db8:
 	db $80 ; flags
 	db 4 ; items
 	db "ABRA        100@"
@@ -253,10 +231,9 @@
 	db "CUBONE      800@"
 	db "WOBBUFFET  1500@"
 	db "CANCEL@"
-; 0x56df1
 
 
-PharmacistScript_0x56df1: ; 0x56df1
+PharmacistScript_0x56df1:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x56f55
@@ -264,9 +241,8 @@
 	loadmovesprites
 	spriteface $fe, LEFT
 	end
-; 0x56dfc
 
-PokefanMScript_0x56dfc: ; 0x56dfc
+PokefanMScript_0x56dfc:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x56f9e
@@ -274,9 +250,8 @@
 	loadmovesprites
 	spriteface $7, RIGHT
 	end
-; 0x56e07
 
-CooltrainerMScript_0x56e07: ; 0x56e07
+CooltrainerMScript_0x56e07:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x56ff4
@@ -284,9 +259,8 @@
 	loadmovesprites
 	spriteface $8, LEFT
 	end
-; 0x56e12
 
-PokefanFScript_0x56e12: ; 0x56e12
+PokefanFScript_0x56e12:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x5702b
@@ -294,13 +268,11 @@
 	loadmovesprites
 	spriteface $9, RIGHT
 	end
-; 0x56e1d
 
-CooltrainerFScript_0x56e1d: ; 0x56e1d
+CooltrainerFScript_0x56e1d:
 	jumptextfaceplayer UnknownText_0x57097
-; 0x56e20
 
-GentlemanScript_0x56e20: ; 0x56e20
+GentlemanScript_0x56e20:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x570b1
@@ -308,42 +280,36 @@
 	loadmovesprites
 	spriteface $b, RIGHT
 	end
-; 0x56e2b
 
-PokefanMScript_0x56e2b: ; 0x56e2b
+PokefanMScript_0x56e2b:
 	jumptextfaceplayer UnknownText_0x5710d
-; 0x56e2e
 
-MapGoldenrodGameCornerSignpost30Script: ; 0x56e2e
+MapGoldenrodGameCornerSignpost30Script:
 	jumptext UnknownText_0x571af
-; 0x56e31
 
-MapGoldenrodGameCornerSignpost17Script: ; 0x56e31
+MapGoldenrodGameCornerSignpost17Script:
 	random $6
 	if_equal $0, MapGoldenrodGameCornerSignpost7Script
 	refreshscreen $0
 	writebyte $0
-	special Functionc373
+	special Special_SlotMachine
 	loadmovesprites
 	end
-; 0x56e40
 
-MapGoldenrodGameCornerSignpost7Script: ; 0x56e40
+MapGoldenrodGameCornerSignpost7Script:
 	refreshscreen $0
 	writebyte $1
-	special Functionc373
+	special Special_SlotMachine
 	loadmovesprites
 	end
-; 0x56e49
 
-MapGoldenrodGameCornerSignpost29Script: ; 0x56e49
+MapGoldenrodGameCornerSignpost29Script:
 	refreshscreen $0
-	special Functionc380
+	special Special_CardFlip
 	loadmovesprites
 	end
-; 0x56e50
 
-UnknownText_0x56e50: ; 0x56e50
+UnknownText_0x56e50:
 	text "Welcome!"
 
 	para "We exchange your"
@@ -350,52 +316,44 @@
 	line "game coins for"
 	cont "fabulous prizes!"
 	done
-; 0x56e8b
 
-UnknownText_0x56e8b: ; 0x56e8b
+UnknownText_0x56e8b:
 	text "Which prize would"
 	line "you like?"
 	done
-; 0x56ea8
 
-UnknownText_0x56ea8: ; 0x56ea8
+UnknownText_0x56ea8:
 	text_from_ram StringBuffer3
 	text "."
 	line "Is that right?"
 	done
-; 0x56ebd
 
-UnknownText_0x56ebd: ; 0x56ebd
+UnknownText_0x56ebd:
 	text "Here you go!"
 	done
-; 0x56ecb
 
-UnknownText_0x56ecb: ; 0x56ecb
+UnknownText_0x56ecb:
 	text "Sorry! You need"
 	line "more coins."
 	done
-; 0x56ee8
 
-UnknownText_0x56ee8: ; 0x56ee8
+UnknownText_0x56ee8:
 	text "Sorry. You can't"
 	line "carry any more."
 	done
-; 0x56f09
 
-UnknownText_0x56f09: ; 0x56f09
+UnknownText_0x56f09:
 	text "OK. Please save"
 	line "your coins and"
 	cont "come again!"
 	done
-; 0x56f35
 
-UnknownText_0x56f35: ; 0x56f35
+UnknownText_0x56f35:
 	text "Oh? You don't have"
 	line "a COIN CASE."
 	done
-; 0x56f55
 
-UnknownText_0x56f55: ; 0x56f55
+UnknownText_0x56f55:
 	text "I always play this"
 	line "slot machine. It"
 
@@ -402,9 +360,8 @@
 	para "pays out more than"
 	line "others, I think."
 	done
-; 0x56f9e
 
-UnknownText_0x56f9e: ; 0x56f9e
+UnknownText_0x56f9e:
 	text "I just love this"
 	line "new slot machine."
 
@@ -412,16 +369,14 @@
 	line "challenge than the"
 	cont "ones in CELADON."
 	done
-; 0x56ff4
 
-UnknownText_0x56ff4: ; 0x56ff4
+UnknownText_0x56ff4:
 	text "Life is a gamble."
 	line "I'm going to flip"
 	cont "cards till I drop!"
 	done
-; 0x5702b
 
-UnknownText_0x5702b: ; 0x5702b
+UnknownText_0x5702b:
 	text "Card flip…"
 
 	para "I prefer it over"
@@ -433,15 +388,13 @@
 	para "But the payout is"
 	line "much lower."
 	done
-; 0x57097
 
-UnknownText_0x57097: ; 0x57097
+UnknownText_0x57097:
 	text "I won't quit until"
 	line "I win!"
 	done
-; 0x570b1
 
-UnknownText_0x570b1: ; 0x570b1
+UnknownText_0x570b1:
 	text "I taught BLIZZARD"
 	line "to my #MON."
 
@@ -451,9 +404,8 @@
 	para "it, but it was"
 	line "worth it."
 	done
-; 0x5710d
 
-UnknownText_0x5710d: ; 0x5710d
+UnknownText_0x5710d:
 	text "I couldn't win at"
 	line "the slots, and I"
 
@@ -466,80 +418,76 @@
 	para "COIN CASE in the"
 	line "UNDERGROUND."
 	done
-; 0x5718a
 
-UnknownText_0x5718a: ; 0x5718a
+UnknownText_0x5718a:
 	text "Wahahah! The coins"
 	line "keep rolling in!"
 	done
-; 0x571af
 
-UnknownText_0x571af: ; 0x571af
+UnknownText_0x571af:
 	text "Someone left their"
 	line "drink."
 
 	para "It smells sweet."
 	done
-; 0x571db
 
-GoldenrodGameCorner_MapEventHeader: ; 0x571db
+GoldenrodGameCorner_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 31
-	signpost 6, 6, $0, MapGoldenrodGameCornerSignpost17Script
-	signpost 7, 6, $0, MapGoldenrodGameCornerSignpost17Script
-	signpost 8, 6, $0, MapGoldenrodGameCornerSignpost17Script
-	signpost 9, 6, $0, MapGoldenrodGameCornerSignpost17Script
-	signpost 10, 6, $0, MapGoldenrodGameCornerSignpost17Script
-	signpost 11, 6, $3, MapGoldenrodGameCornerSignpost17Script
-	signpost 6, 7, $0, MapGoldenrodGameCornerSignpost17Script
-	signpost 7, 7, $0, MapGoldenrodGameCornerSignpost7Script
-	signpost 8, 7, $0, MapGoldenrodGameCornerSignpost17Script
-	signpost 9, 7, $0, MapGoldenrodGameCornerSignpost17Script
-	signpost 10, 7, $0, MapGoldenrodGameCornerSignpost17Script
-	signpost 11, 7, $4, MapGoldenrodGameCornerSignpost17Script
-	signpost 6, 12, $0, MapGoldenrodGameCornerSignpost17Script
-	signpost 7, 12, $0, MapGoldenrodGameCornerSignpost17Script
-	signpost 8, 12, $0, MapGoldenrodGameCornerSignpost17Script
-	signpost 9, 12, $0, MapGoldenrodGameCornerSignpost17Script
-	signpost 10, 12, $0, MapGoldenrodGameCornerSignpost17Script
-	signpost 11, 12, $3, MapGoldenrodGameCornerSignpost17Script
-	signpost 6, 13, $0, MapGoldenrodGameCornerSignpost29Script
-	signpost 7, 13, $0, MapGoldenrodGameCornerSignpost29Script
-	signpost 8, 13, $0, MapGoldenrodGameCornerSignpost29Script
-	signpost 9, 13, $0, MapGoldenrodGameCornerSignpost29Script
-	signpost 10, 13, $0, MapGoldenrodGameCornerSignpost29Script
-	signpost 11, 13, $4, MapGoldenrodGameCornerSignpost29Script
-	signpost 6, 18, $0, MapGoldenrodGameCornerSignpost29Script
-	signpost 7, 18, $0, MapGoldenrodGameCornerSignpost29Script
-	signpost 8, 18, $0, MapGoldenrodGameCornerSignpost29Script
-	signpost 9, 18, $0, MapGoldenrodGameCornerSignpost29Script
-	signpost 10, 18, $0, MapGoldenrodGameCornerSignpost29Script
-	signpost 11, 18, $3, MapGoldenrodGameCornerSignpost29Script
-	signpost 1, 12, $4, MapGoldenrodGameCornerSignpost30Script
+	signpost 6, 6, SIGNPOST_READ, MapGoldenrodGameCornerSignpost17Script
+	signpost 7, 6, SIGNPOST_READ, MapGoldenrodGameCornerSignpost17Script
+	signpost 8, 6, SIGNPOST_READ, MapGoldenrodGameCornerSignpost17Script
+	signpost 9, 6, SIGNPOST_READ, MapGoldenrodGameCornerSignpost17Script
+	signpost 10, 6, SIGNPOST_READ, MapGoldenrodGameCornerSignpost17Script
+	signpost 11, 6, SIGNPOST_RIGHT, MapGoldenrodGameCornerSignpost17Script
+	signpost 6, 7, SIGNPOST_READ, MapGoldenrodGameCornerSignpost17Script
+	signpost 7, 7, SIGNPOST_READ, MapGoldenrodGameCornerSignpost7Script
+	signpost 8, 7, SIGNPOST_READ, MapGoldenrodGameCornerSignpost17Script
+	signpost 9, 7, SIGNPOST_READ, MapGoldenrodGameCornerSignpost17Script
+	signpost 10, 7, SIGNPOST_READ, MapGoldenrodGameCornerSignpost17Script
+	signpost 11, 7, SIGNPOST_LEFT, MapGoldenrodGameCornerSignpost17Script
+	signpost 6, 12, SIGNPOST_READ, MapGoldenrodGameCornerSignpost17Script
+	signpost 7, 12, SIGNPOST_READ, MapGoldenrodGameCornerSignpost17Script
+	signpost 8, 12, SIGNPOST_READ, MapGoldenrodGameCornerSignpost17Script
+	signpost 9, 12, SIGNPOST_READ, MapGoldenrodGameCornerSignpost17Script
+	signpost 10, 12, SIGNPOST_READ, MapGoldenrodGameCornerSignpost17Script
+	signpost 11, 12, SIGNPOST_RIGHT, MapGoldenrodGameCornerSignpost17Script
+	signpost 6, 13, SIGNPOST_READ, MapGoldenrodGameCornerSignpost29Script
+	signpost 7, 13, SIGNPOST_READ, MapGoldenrodGameCornerSignpost29Script
+	signpost 8, 13, SIGNPOST_READ, MapGoldenrodGameCornerSignpost29Script
+	signpost 9, 13, SIGNPOST_READ, MapGoldenrodGameCornerSignpost29Script
+	signpost 10, 13, SIGNPOST_READ, MapGoldenrodGameCornerSignpost29Script
+	signpost 11, 13, SIGNPOST_LEFT, MapGoldenrodGameCornerSignpost29Script
+	signpost 6, 18, SIGNPOST_READ, MapGoldenrodGameCornerSignpost29Script
+	signpost 7, 18, SIGNPOST_READ, MapGoldenrodGameCornerSignpost29Script
+	signpost 8, 18, SIGNPOST_READ, MapGoldenrodGameCornerSignpost29Script
+	signpost 9, 18, SIGNPOST_READ, MapGoldenrodGameCornerSignpost29Script
+	signpost 10, 18, SIGNPOST_READ, MapGoldenrodGameCornerSignpost29Script
+	signpost 11, 18, SIGNPOST_RIGHT, MapGoldenrodGameCornerSignpost29Script
+	signpost 1, 12, SIGNPOST_LEFT, MapGoldenrodGameCornerSignpost30Script
 
-	; people-events
+.PersonEvents:
 	db 12
-	person_event SPRITE_CLERK, 6, 7, $6, $0, 255, 255, $80, 0, ClerkScript_0x56c25, $ffff
-	person_event SPRITE_RECEPTIONIST, 6, 20, $6, $0, 255, 255, $80, 0, ReceptionistScript_0x56c28, $ffff
-	person_event SPRITE_RECEPTIONIST, 6, 22, $6, $0, 255, 255, $80, 0, ReceptionistScript_0x56d01, $ffff
-	person_event SPRITE_PHARMACIST, 11, 12, $8, $0, 255, 2, $90, 0, PharmacistScript_0x56df1, $ffff
-	person_event SPRITE_PHARMACIST, 11, 12, $8, $0, 255, 4, $90, 0, PharmacistScript_0x56df1, $ffff
-	person_event SPRITE_POKEFAN_M, 14, 15, $9, $0, 255, 255, $b0, 0, PokefanMScript_0x56dfc, $ffff
-	person_event SPRITE_COOLTRAINER_M, 12, 18, $8, $0, 255, 255, $90, 0, CooltrainerMScript_0x56e07, $ffff
-	person_event SPRITE_POKEFAN_F, 10, 21, $9, $0, 255, 255, $80, 0, PokefanFScript_0x56e12, $ffff
-	person_event SPRITE_COOLTRAINER_F, 7, 14, $2, $12, 255, 255, $a0, 0, CooltrainerFScript_0x56e1d, $ffff
-	person_event SPRITE_GENTLEMAN, 14, 9, $9, $0, 255, 255, $90, 0, GentlemanScript_0x56e20, $ffff
-	person_event SPRITE_POKEFAN_M, 13, 6, $2, $11, 255, 255, $b0, 0, PokefanMScript_0x56e2b, $ffff
-	person_event SPRITE_POKEFAN_M, 14, 21, $9, $0, 255, 255, $80, 0, PokefanMScript_0x56c1a, $076b
-; 0x57322
+	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
--- a/maps/GoldenrodGym.asm
+++ b/maps/GoldenrodGym.asm
@@ -1,5 +1,5 @@
-GoldenrodGym_MapScriptHeader: ; 0x54000
-	; trigger count
+GoldenrodGym_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,22 +6,19 @@
 	dw UnknownScript_0x5400a, $0000
 	dw UnknownScript_0x5400b, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x5400a
 
-UnknownScript_0x5400a: ; 0x5400a
+UnknownScript_0x5400a:
 	end
-; 0x5400b
 
-UnknownScript_0x5400b: ; 0x5400b
+UnknownScript_0x5400b:
 	end
-; 0x5400c
 
-WhitneyScript_0x5400c: ; 0x5400c
+WhitneyScript_0x5400c:
 	faceplayer
 	checkevent EVENT_BEAT_WHITNEY
-	iftrue UnknownScript_0x54037
+	iftrue .FightDone
 	loadfont
 	writetext UnknownText_0x54122
 	closetext
@@ -37,20 +34,19 @@
 	setevent EVENT_BEAT_BEAUTY_SAMANTHA
 	setevent EVENT_BEAT_LASS_CARRIE
 	setevent EVENT_BEAT_LASS_BRIDGET
-UnknownScript_0x54037: ; 0x54037
+.FightDone
 	loadfont
 	checkevent EVENT_MADE_WHITNEY_CRY
-	iffalse UnknownScript_0x54044
+	iffalse .StoppedCrying
 	writetext UnknownText_0x541f4
 	closetext
 	loadmovesprites
 	end
-; 0x54044
 
-UnknownScript_0x54044: ; 0x54044
+.StoppedCrying
 	checkevent EVENT_GOT_TM45_ATTRACT
 	iftrue UnknownScript_0x54077
-	checkflag $001d
+	checkflag ENGINE_PLAINBADGE
 	iftrue UnknownScript_0x54064
 	writetext UnknownText_0x54222
 	keeptextopen
@@ -58,13 +54,13 @@
 	writetext UnknownText_0x54273
 	playsound SFX_GET_BADGE
 	waitbutton
-	setflag $001d
-	checkcode $7
-	scall UnknownScript_0x5407d
-UnknownScript_0x54064: ; 0x54064
+	setflag ENGINE_PLAINBADGE
+	checkcode VAR_BADGES
+	scall GoldenrodGymTriggerRockets
+UnknownScript_0x54064:
 	writetext UnknownText_0x5428b
 	keeptextopen
-	verbosegiveitem TM_45, 1
+	verbosegiveitem TM_ATTRACT, 1
 	iffalse UnknownScript_0x5407b
 	setevent EVENT_GOT_TM45_ATTRACT
 	writetext UnknownText_0x54302
@@ -71,51 +67,29 @@
 	closetext
 	loadmovesprites
 	end
-; 0x54077
 
-UnknownScript_0x54077: ; 0x54077
+UnknownScript_0x54077:
 	writetext UnknownText_0x54360
 	closetext
-UnknownScript_0x5407b: ; 0x5407b
+UnknownScript_0x5407b:
 	loadmovesprites
 	end
-; 0x5407d
 
-UnknownScript_0x5407d: ; 0x5407d
-	if_equal $7, UnknownScript_0x54089
-	if_equal $6, UnknownScript_0x54086
+GoldenrodGymTriggerRockets:
+	if_equal 7, .RadioTowerRockets
+	if_equal 6, .GoldenrodRockets
 	end
-; 0x54086
 
-UnknownScript_0x54086: ; 0x54086
+.GoldenrodRockets
 	jumpstd goldenrodrockets
-; 0x54089
 
-UnknownScript_0x54089: ; 0x54089
+.RadioTowerRockets
 	jumpstd radiotowerrockets
-; 0x5408c
 
-TrainerLassCarrie: ; 0x5408c
-	; bit/flag number
-	dw $515
+TrainerLassCarrie:
+	trainer EVENT_BEAT_LASS_CARRIE, LASS, CARRIE, LassCarrieSeenText, LassCarrieBeatenText, $0000, LassCarrieScript
 
-	; trainer group && trainer id
-	db LASS, CARRIE
-
-	; text when seen
-	dw LassCarrieSeenText
-
-	; text when trainer beaten
-	dw LassCarrieBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw LassCarrieScript
-; 0x54098
-
-LassCarrieScript: ; 0x54098
+LassCarrieScript:
 	talkaftercancel
 	loadfont
 	writetext LassCarrieOWText
@@ -122,10 +96,9 @@
 	closetext
 	loadmovesprites
 	end
-; 0x540a0
 
-WhitneyCriesScript: ; 0x540a0
-	showemote $0, $4, 15
+WhitneyCriesScript:
+	showemote EMOTE_SHOCK, $4, 15
 	applymovement $4, BridgetWalksUpMovement
 	spriteface $0, DOWN
 	loadfont
@@ -136,29 +109,11 @@
 	dotrigger $0
 	clearevent EVENT_MADE_WHITNEY_CRY
 	end
-; 0x540bb
 
-TrainerLassBridget: ; 0x540bb
-	; bit/flag number
-	dw $516
+TrainerLassBridget:
+	trainer EVENT_BEAT_LASS_BRIDGET, LASS, BRIDGET, LassBridgetSeenText, LassBridgetBeatenText, $0000, LassBridgetScript
 
-	; trainer group && trainer id
-	db LASS, BRIDGET
-
-	; text when seen
-	dw LassBridgetSeenText
-
-	; text when trainer beaten
-	dw LassBridgetBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw LassBridgetScript
-; 0x540c7
-
-LassBridgetScript: ; 0x540c7
+LassBridgetScript:
 	talkaftercancel
 	loadfont
 	writetext LassBridgetOWText
@@ -165,29 +120,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x540cf
 
-TrainerBeautyVictoria: ; 0x540cf
-	; bit/flag number
-	dw $4ad
+TrainerBeautyVictoria:
+	trainer EVENT_BEAT_BEAUTY_VICTORIA, BEAUTY, VICTORIA, BeautyVictoriaSeenText, BeautyVictoriaBeatenText, $0000, BeautyVictoriaScript
 
-	; trainer group && trainer id
-	db BEAUTY, VICTORIA
-
-	; text when seen
-	dw BeautyVictoriaSeenText
-
-	; text when trainer beaten
-	dw BeautyVictoriaBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw BeautyVictoriaScript
-; 0x540db
-
-BeautyVictoriaScript: ; 0x540db
+BeautyVictoriaScript:
 	talkaftercancel
 	loadfont
 	writetext BeautyVictoriaOWText
@@ -194,29 +131,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x540e3
 
-TrainerBeautySamantha: ; 0x540e3
-	; bit/flag number
-	dw $4ae
+TrainerBeautySamantha:
+	trainer EVENT_BEAT_BEAUTY_SAMANTHA, BEAUTY, SAMANTHA, BeautySamanthaSeenText, BeautySamanthaBeatenText, $0000, BeautySamanthaScript
 
-	; trainer group && trainer id
-	db BEAUTY, SAMANTHA
-
-	; text when seen
-	dw BeautySamanthaSeenText
-
-	; text when trainer beaten
-	dw BeautySamanthaBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw BeautySamanthaScript
-; 0x540ef
-
-BeautySamanthaScript: ; 0x540ef
+BeautySamanthaScript:
 	talkaftercancel
 	loadfont
 	writetext BeautySamanthaOWText
@@ -223,9 +142,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x540f7
 
-GoldenrodGymGuyScript: ; 0x540f7
+GoldenrodGymGuyScript:
 	faceplayer
 	checkevent EVENT_BEAT_WHITNEY
 	iftrue .GoldenrodGymGuyWinScript
@@ -241,7 +159,6 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5410c
 
 GoldenrodGymStatue:
 	checkflag ENGINE_PLAINBADGE
@@ -251,19 +168,17 @@
 	trainertotext WHITNEY, 1, $1
 	jumpstd gymstatue2
 
-BridgetWalksUpMovement: ; 0x5411c
+BridgetWalksUpMovement:
 	step_left
 	turn_head_up
 	step_end
-; 0x5411f
 
-BridgetWalksAwayMovement: ; 0x5411f
+BridgetWalksAwayMovement:
 	step_right
 	turn_head_left
 	step_end
-; 0x54122
 
-UnknownText_0x54122: ; 0x54122
+UnknownText_0x54122:
 	text "Hi! I'm WHITNEY!"
 
 	para "Everyone was into"
@@ -277,9 +192,8 @@
 	line "tle? I'm warning"
 	cont "you--I'm good!"
 	done
-; 0x541a5
 
-UnknownText_0x541a5: ; 0x541a5
+UnknownText_0x541a5:
 	text "Sob…"
 
 	para "…Waaaaaaah!"
@@ -289,9 +203,8 @@
 	line "so serious! You…"
 	cont "you child, you!"
 	done
-; 0x541f4
 
-UnknownText_0x541f4: ; 0x541f4
+UnknownText_0x541f4:
 	text "Waaaaah!"
 
 	para "Waaaaah!"
@@ -299,9 +212,8 @@
 	para "…Snivel, hic…"
 	line "…You meanie!"
 	done
-; 0x54222
 
-UnknownText_0x54222: ; 0x54222
+UnknownText_0x54222:
 	text "…Sniff…"
 
 	para "What? What do you"
@@ -311,15 +223,13 @@
 	line "I forgot. Here's"
 	cont "PLAINBADGE."
 	done
-; 0x54273
 
-UnknownText_0x54273: ; 0x54273
+UnknownText_0x54273:
 	text "<PLAYER> received"
 	line "PLAINBADGE."
 	done
-; 0x5428b
 
-UnknownText_0x5428b: ; 0x5428b
+UnknownText_0x5428b:
 	text "PLAINBADGE lets"
 	line "your #MON use"
 
@@ -333,9 +243,8 @@
 	para "Oh, you can have"
 	line "this too!"
 	done
-; 0x54302
 
-UnknownText_0x54302: ; 0x54302
+UnknownText_0x54302:
 	text "It's ATTRACT!"
 	line "It makes full use"
 
@@ -346,9 +255,8 @@
 	line "fect for a cutie"
 	cont "like me?"
 	done
-; 0x54360
 
-UnknownText_0x54360: ; 0x54360
+UnknownText_0x54360:
 	text "Ah, that was a"
 	line "good cry!"
 
@@ -355,9 +263,8 @@
 	para "Come for a visit"
 	line "again! Bye-bye!"
 	done
-; 0x5439b
 
-LassCarrieSeenText: ; 0x5439b
+LassCarrieSeenText:
 	text "Don't let my"
 	line "#MON's cute"
 
@@ -364,21 +271,18 @@
 	para "looks fool you."
 	line "They can whip you!"
 	done
-; 0x543d6
 
-LassCarrieBeatenText: ; 0x543d6
+LassCarrieBeatenText:
 	text "Darn… I thought"
 	line "you were weak…"
 	done
-; 0x543f6
 
-LassCarrieOWText: ; 0x543f6
+LassCarrieOWText:
 	text "Do my #MON"
 	line "think I'm cute?"
 	done
-; 0x54411
 
-LassBridgetSeenText: ; 0x54411
+LassBridgetSeenText:
 	text "I like cute #-"
 	line "MON better than"
 	cont "strong #MON."
@@ -386,14 +290,12 @@
 	para "But I have strong"
 	line "and cute #MON!"
 	done
-; 0x5445f
 
-LassBridgetBeatenText: ; 0x5445f
+LassBridgetBeatenText:
 	text "Oh, no, no, no!"
 	done
-; 0x54470
 
-LassBridgetOWText: ; 0x54470
+LassBridgetOWText:
 	text "I'm trying to beat"
 	line "WHITNEY, but…"
 	cont "It's depressing."
@@ -404,9 +306,8 @@
 	para "try harder next"
 	line "time!"
 	done
-; 0x544d4
 
-BridgetWhitneyCriesText: ; 0x544d4
+BridgetWhitneyCriesText:
 	text "Oh, no. You made"
 	line "WHITNEY cry."
 
@@ -416,9 +317,8 @@
 	para "always cries when"
 	line "she loses."
 	done
-; 0x5452d
 
-BeautyVictoriaSeenText: ; 0x5452d
+BeautyVictoriaSeenText:
 	text "Oh, you are a cute"
 	line "little trainer! "
 
@@ -425,42 +325,36 @@
 	para "I like you, but I"
 	line "won't hold back!"
 	done
-; 0x54574
 
-BeautyVictoriaBeatenText: ; 0x54574
+BeautyVictoriaBeatenText:
 	text "Let's see… Oops,"
 	line "it's over?"
 	done
-; 0x5458f
 
-BeautyVictoriaOWText: ; 0x5458f
+BeautyVictoriaOWText:
 	text "Wow, you must be"
 	line "good to beat me!"
 	cont "Keep it up!"
 	done
-; 0x545be
 
-BeautySamanthaSeenText: ; 0x545be
+BeautySamanthaSeenText:
 	text "Give it your best"
 	line "shot, or I'll take"
 	cont "you down!"
 	done
-; 0x545ed
 
-BeautySamanthaBeatenText: ; 0x545ed
+BeautySamanthaBeatenText:
 	text "No! Oh, MEOWTH,"
 	line "I'm so sorry!"
 	done
-; 0x5460b
 
-BeautySamanthaOWText: ; 0x5460b
+BeautySamanthaOWText:
 	text "I taught MEOWTH"
 	line "moves for taking"
 	cont "on any type…"
 	done
-; 0x5463a
 
-GoldenrodGymGuyText: ; 0x5463a
+GoldenrodGymGuyText:
 	text "Yo! CHAMP in"
 	line "making!"
 
@@ -472,39 +366,36 @@
 	line "use fighting-type"
 	cont "#MON."
 	done
-; 0x546a7
 
-GoldenrodGymGuyWinText: ; 0x546a7
+GoldenrodGymGuyWinText:
 	text "You won? Great! I"
 	line "was busy admiring"
 	cont "the ladies here."
 	done
-; 0x546dd
 
-GoldenrodGym_MapEventHeader: ; 0x546dd
+GoldenrodGym_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 1
 	xy_trigger 1, $5, $8, $0, WhitneyCriesScript, $0, $0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 15, 1, $0, GoldenrodGymStatue
-	signpost 15, 4, $0, GoldenrodGymStatue
+	signpost 15, 1, SIGNPOST_READ, GoldenrodGymStatue
+	signpost 15, 4, SIGNPOST_READ, GoldenrodGymStatue
 
-	; people-events
+.PersonEvents:
 	db 6
-	person_event SPRITE_WHITNEY, 7, 12, $6, $0, 255, 255, $80, 0, WhitneyScript_0x5400c, $ffff
-	person_event SPRITE_LASS, 17, 13, $9, $0, 255, 255, $92, 4, TrainerLassCarrie, $ffff
-	person_event SPRITE_LASS, 10, 13, $8, $0, 255, 255, $92, 1, TrainerLassBridget, $ffff
-	person_event SPRITE_BUENA, 6, 4, $6, $0, 255, 255, $92, 3, TrainerBeautyVictoria, $ffff
-	person_event SPRITE_BUENA, 9, 23, $6, $0, 255, 255, $92, 3, TrainerBeautySamantha, $ffff
-	person_event SPRITE_GYM_GUY, 19, 9, $6, $0, 255, 255, $80, 0, GoldenrodGymGuyScript, $ffff
-; 0x5474d
+	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
--- a/maps/GoldenrodHappinessRater.asm
+++ b/maps/GoldenrodHappinessRater.asm
@@ -1,15 +1,14 @@
-GoldenrodHappinessRater_MapScriptHeader: ; 0x54951
-	; trigger count
+GoldenrodHappinessRater_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x54953
 
-TeacherScript_0x54953: ; 0x54953
+TeacherScript_0x54953:
 	faceplayer
 	loadfont
-	special Function718d
+	special GetFirstPokemonHappiness
 	writetext UnknownText_0x549a3
 	keeptextopen
 	if_greater_than $f9, UnknownScript_0x54973
@@ -18,57 +17,48 @@
 	if_greater_than $63, UnknownScript_0x54985
 	if_greater_than $31, UnknownScript_0x5498b
 	jump UnknownScript_0x54991
-; 0x54973
 
-UnknownScript_0x54973: ; 0x54973
+UnknownScript_0x54973:
 	writetext UnknownText_0x549fc
 	closetext
 	loadmovesprites
 	end
-; 0x54979
 
-UnknownScript_0x54979: ; 0x54979
+UnknownScript_0x54979:
 	writetext UnknownText_0x54a2c
 	closetext
 	loadmovesprites
 	end
-; 0x5497f
 
-UnknownScript_0x5497f: ; 0x5497f
+UnknownScript_0x5497f:
 	writetext UnknownText_0x54a5a
 	closetext
 	loadmovesprites
 	end
-; 0x54985
 
-UnknownScript_0x54985: ; 0x54985
+UnknownScript_0x54985:
 	writetext UnknownText_0x54a8e
 	closetext
 	loadmovesprites
 	end
-; 0x5498b
 
-UnknownScript_0x5498b: ; 0x5498b
+UnknownScript_0x5498b:
 	writetext UnknownText_0x54a9f
 	closetext
 	loadmovesprites
 	end
-; 0x54991
 
-UnknownScript_0x54991: ; 0x54991
+UnknownScript_0x54991:
 	writetext UnknownText_0x54ad1
 	closetext
 	loadmovesprites
 	end
-; 0x54997
 
-PokefanMScript_0x54997: ; 0x54997
+PokefanMScript_0x54997:
 	jumptextfaceplayer UnknownText_0x54b04
-; 0x5499a
 
-TwinScript_0x5499a: ; 0x5499a
+TwinScript_0x5499a:
 	jumptextfaceplayer UnknownText_0x54b67
-; 0x5499d
 
 HappinessRatersHouseBookshelf:
 	jumpstd difficultbookshelf
@@ -76,7 +66,7 @@
 HappinessRatersHouseRadio:
 	jumpstd radio2
 
-UnknownText_0x549a3: ; 0x549a3
+UnknownText_0x549a3:
 	text "If you treat your"
 	line "#MON nicely,"
 
@@ -88,49 +78,42 @@
 	text_from_ram StringBuffer3
 	text "…"
 	done
-; 0x549fc
 
-UnknownText_0x549fc: ; 0x549fc
+UnknownText_0x549fc:
 	text "It looks really"
 	line "happy! It must"
 	cont "love you a lot."
 	done
-; 0x54a2c
 
-UnknownText_0x54a2c: ; 0x54a2c
+UnknownText_0x54a2c:
 	text "I get the feeling"
 	line "that it really"
 	cont "trusts you."
 	done
-; 0x54a5a
 
-UnknownText_0x54a5a: ; 0x54a5a
+UnknownText_0x54a5a:
 	text "It's friendly to-"
 	line "ward you. It looks"
 	cont "sort of happy."
 	done
-; 0x54a8e
 
-UnknownText_0x54a8e: ; 0x54a8e
+UnknownText_0x54a8e:
 	text "It's quite cute."
 	done
-; 0x54a9f
 
-UnknownText_0x54a9f: ; 0x54a9f
+UnknownText_0x54a9f:
 	text "You should treat"
 	line "it better. It's"
 	cont "not used to you."
 	done
-; 0x54ad1
 
-UnknownText_0x54ad1: ; 0x54ad1
+UnknownText_0x54ad1:
 	text "It doesn't seem to"
 	line "like you at all."
 	cont "It looks mean."
 	done
-; 0x54b04
 
-UnknownText_0x54b04: ; 0x54b04
+UnknownText_0x54b04:
 	text "I keep losing in"
 	line "battles, and my"
 
@@ -141,36 +124,33 @@
 	line "my #MON don't"
 	cont "like me much…"
 	done
-; 0x54b67
 
-UnknownText_0x54b67: ; 0x54b67
+UnknownText_0x54b67:
 	text "When I use an item"
 	line "on my #MON, it"
 	cont "acts really glad!"
 	done
-; 0x54b9c
 
-GoldenrodHappinessRater_MapEventHeader: ; 0x54b9c
+GoldenrodHappinessRater_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 3
-	signpost 1, 0, $0, HappinessRatersHouseBookshelf
-	signpost 1, 1, $0, HappinessRatersHouseBookshelf
-	signpost 1, 7, $0, HappinessRatersHouseRadio
+	signpost 1, 0, SIGNPOST_READ, HappinessRatersHouseBookshelf
+	signpost 1, 1, SIGNPOST_READ, HappinessRatersHouseBookshelf
+	signpost 1, 7, SIGNPOST_READ, HappinessRatersHouseRadio
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_TEACHER, 8, 6, $6, $0, 255, 255, $90, 0, TeacherScript_0x54953, $ffff
-	person_event SPRITE_POKEFAN_M, 7, 9, $8, $0, 255, 255, $0, 0, PokefanMScript_0x54997, $ffff
-	person_event SPRITE_TWIN, 10, 9, $5, $1, 255, 255, $a0, 0, TwinScript_0x5499a, $ffff
-; 0x54be2
+	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
--- a/maps/GoldenrodMagnetTrainStation.asm
+++ b/maps/GoldenrodMagnetTrainStation.asm
@@ -1,19 +1,17 @@
-GoldenrodMagnetTrainStation_MapScriptHeader: ; 0x550e5
-	; trigger count
+GoldenrodMagnetTrainStation_MapScriptHeader:
+.MapTriggers:
 	db 1
 
 	; triggers
 	dw UnknownScript_0x550eb, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x550eb
 
-UnknownScript_0x550eb: ; 0x550eb
+UnknownScript_0x550eb:
 	end
-; 0x550ec
 
-OfficerScript_0x550ec: ; 0x550ec
+OfficerScript_0x550ec:
 	faceplayer
 	loadfont
 	checkevent EVENT_RESTORED_POWER_TO_KANTO
@@ -22,9 +20,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x550fa
 
-UnknownScript_0x550fa: ; 0x550fa
+UnknownScript_0x550fa:
 	writetext UnknownText_0x551b7
 	yesorno
 	iffalse UnknownScript_0x5512a
@@ -36,34 +33,30 @@
 	applymovement $2, MovementData_0x55146
 	applymovement $0, MovementData_0x5514f
 	writebyte $0
-	special Function8cc04
+	special Special_MagnetTrain
 	warpcheck
 	newloadmap $f9
 	applymovement $0, MovementData_0x55122
 	wait $14
 	end
-; 0x55122
 
-MovementData_0x55122: ; 0x55122
+MovementData_0x55122:
 	turn_head_down
 	step_end
-; 0x55124
 
-UnknownScript_0x55124: ; 0x55124
+UnknownScript_0x55124:
 	writetext UnknownText_0x5522c
 	closetext
 	loadmovesprites
 	end
-; 0x5512a
 
-UnknownScript_0x5512a: ; 0x5512a
+UnknownScript_0x5512a:
 	writetext UnknownText_0x5524f
 	closetext
 	loadmovesprites
 	end
-; 0x55130
 
-UnknownScript_0x55130: ; 0x55130
+UnknownScript_0x55130:
 	applymovement $2, MovementData_0x55146
 	applymovement $0, MovementData_0x55158
 	applymovement $2, MovementData_0x5514b
@@ -72,28 +65,24 @@
 	closetext
 	loadmovesprites
 	end
-; 0x55143
 
-GentlemanScript_0x55143: ; 0x55143
+GentlemanScript_0x55143:
 	jumptextfaceplayer UnknownText_0x552a3
-; 0x55146
 
-MovementData_0x55146: ; 0x55146
+MovementData_0x55146:
 	step_up
 	step_up
 	step_right
 	turn_head_left
 	step_end
-; 0x5514b
 
-MovementData_0x5514b: ; 0x5514b
+MovementData_0x5514b:
 	step_left
 	step_down
 	step_down
 	step_end
-; 0x5514f
 
-MovementData_0x5514f: ; 0x5514f
+MovementData_0x5514f:
 	step_up
 	step_up
 	step_up
@@ -103,9 +92,8 @@
 	step_up
 	step_up
 	step_end
-; 0x55158
 
-MovementData_0x55158: ; 0x55158
+MovementData_0x55158:
 	step_left
 	step_left
 	step_down
@@ -114,9 +102,8 @@
 	step_down
 	turn_head_up
 	step_end
-; 0x55160
 
-UnknownText_0x55160: ; 0x55160
+UnknownText_0x55160:
 	text "The train hasn't"
 	line "come in…"
 
@@ -126,9 +113,8 @@
 
 	para "That won't work."
 	done
-; 0x551b7
 
-UnknownText_0x551b7: ; 0x551b7
+UnknownText_0x551b7:
 	text "We'll soon depart"
 	line "for SAFFRON."
 
@@ -135,9 +121,8 @@
 	para "Are you coming"
 	line "aboard?"
 	done
-; 0x551ed
 
-UnknownText_0x551ed: ; 0x551ed
+UnknownText_0x551ed:
 	text "May I see your"
 	line "rail PASS, please?"
 
@@ -144,21 +129,18 @@
 	para "OK. Right this"
 	line "way, please."
 	done
-; 0x5522c
 
-UnknownText_0x5522c: ; 0x5522c
+UnknownText_0x5522c:
 	text "Sorry. You don't"
 	line "have a rail PASS."
 	done
-; 0x5524f
 
-UnknownText_0x5524f: ; 0x5524f
+UnknownText_0x5524f:
 	text "We hope to see you"
 	line "again!"
 	done
-; 0x5526a
 
-UnknownText_0x5526a: ; 0x5526a
+UnknownText_0x5526a:
 	text "We have arrived in"
 	line "GOLDENROD."
 
@@ -165,9 +147,8 @@
 	para "We hope to see you"
 	line "again."
 	done
-; 0x552a3
 
-UnknownText_0x552a3: ; 0x552a3
+UnknownText_0x552a3:
 	text "I'm the PRESIDENT."
 
 	para "My dream was to"
@@ -180,13 +161,12 @@
 	line "JOHTO much closer"
 	cont "to KANTO."
 	done
-; 0x5531f
 
-GoldenrodMagnetTrainStation_MapEventHeader: ; 0x5531f
+GoldenrodMagnetTrainStation_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -193,15 +173,14 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 1
 	xy_trigger 0, $6, $b, $0, UnknownScript_0x55130, $0, $0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_OFFICER, 13, 13, $6, $0, 255, 255, $0, 0, OfficerScript_0x550ec, $ffff
-	person_event SPRITE_GENTLEMAN, 18, 15, $2, $22, 255, 255, $0, 0, GentlemanScript_0x55143, $0749
-; 0x5535b
+	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
--- a/maps/GoldenrodNameRatersHouse.asm
+++ b/maps/GoldenrodNameRatersHouse.asm
@@ -1,12 +1,11 @@
-GoldenrodNameRatersHouse_MapScriptHeader: ; 0x5577a
-	; trigger count
+GoldenrodNameRatersHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x5577c
 
-GentlemanScript_0x5577c: ; 0x5577c
+GentlemanScript_0x5577c:
 	faceplayer
 	loadfont
 	special SpecialNameRater
@@ -13,7 +12,6 @@
 	closetext
 	loadmovesprites
 	end
-; 0x55784
 
 GoldenrodNameRatersHouseBookshelf:
 	jumpstd difficultbookshelf
@@ -23,25 +21,24 @@
 
 INCLUDE "text/sweethoney.asm"
 
-GoldenrodNameRatersHouse_MapEventHeader: ; 0x55953
+GoldenrodNameRatersHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 3
-	signpost 1, 0, $0, GoldenrodNameRatersHouseBookshelf
-	signpost 1, 1, $0, GoldenrodNameRatersHouseBookshelf
-	signpost 1, 7, $0, GoldenrodNameRatersHouseRadio
+	signpost 1, 0, SIGNPOST_READ, GoldenrodNameRatersHouseBookshelf
+	signpost 1, 1, SIGNPOST_READ, GoldenrodNameRatersHouseBookshelf
+	signpost 1, 7, SIGNPOST_READ, GoldenrodNameRatersHouseRadio
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_GENTLEMAN, 8, 6, $6, $2, 255, 255, $0, 0, GentlemanScript_0x5577c, $ffff
-; 0x5597f
+	person_event SPRITE_GENTLEMAN, 8, 6, OW_UP | $2, $2, -1, -1, $0, 0, GentlemanScript_0x5577c, -1
--- a/maps/GoldenrodPPSpeechHouse.asm
+++ b/maps/GoldenrodPPSpeechHouse.asm
@@ -1,18 +1,15 @@
-GoldenrodPPSpeechHouse_MapScriptHeader: ; 0x55648
-	; trigger count
+GoldenrodPPSpeechHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x5564a
 
-FisherScript_0x5564a: ; 0x5564a
+FisherScript_0x5564a:
 	jumptextfaceplayer UnknownText_0x55659
-; 0x5564d
 
-LassScript_0x5564d: ; 0x5564d
+LassScript_0x5564d:
 	jumptextfaceplayer UnknownText_0x556ca
-; 0x55650
 
 GoldenrodPPSpeechHouseBookshelf2:
 	jumpstd difficultbookshelf
@@ -23,7 +20,7 @@
 GoldenrodPPSpeechHouseRadio:
 	jumpstd radio2
 
-UnknownText_0x55659: ; 0x55659
+UnknownText_0x55659:
 	text "Once while I was"
 	line "battling, my"
 
@@ -36,9 +33,8 @@
 	para "moves were all"
 	line "gone."
 	done
-; 0x556ca
 
-UnknownText_0x556ca: ; 0x556ca
+UnknownText_0x556ca:
 	text "Sometimes, a"
 	line "healthy #MON"
 
@@ -50,28 +46,26 @@
 	cont "MON CENTER or use"
 	cont "an item."
 	done
-; 0x55741
 
-GoldenrodPPSpeechHouse_MapEventHeader: ; 0x55741
+GoldenrodPPSpeechHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 3
-	signpost 1, 0, $0, GoldenrodPPSpeechHouseBookshelf1
-	signpost 1, 1, $0, GoldenrodPPSpeechHouseBookshelf2
-	signpost 1, 7, $0, GoldenrodPPSpeechHouseRadio
+	signpost 1, 0, SIGNPOST_READ, GoldenrodPPSpeechHouseBookshelf1
+	signpost 1, 1, SIGNPOST_READ, GoldenrodPPSpeechHouseBookshelf2
+	signpost 1, 7, SIGNPOST_READ, GoldenrodPPSpeechHouseRadio
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_FISHER, 8, 6, $4, $10, 255, 255, $a0, 0, FisherScript_0x5564a, $ffff
-	person_event SPRITE_LASS, 7, 9, $8, $10, 255, 255, $0, 0, LassScript_0x5564d, $ffff
-; 0x5577a
+	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
--- a/maps/GoldenrodPokeCenter1F.asm
+++ b/maps/GoldenrodPokeCenter1F.asm
@@ -1,23 +1,20 @@
-GoldenrodPokeCenter1F_MapScriptHeader: ; 0x60f8f
-	; trigger count
+GoldenrodPokeCenter1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x60f91
 
-NurseScript_0x60f91: ; 0x60f91
+NurseScript_0x60f91:
 	jumpstd pokecenternurse
-; 0x60f94
 
-UnknownScript_0x60f94: ; 0x60f94
+UnknownScript_0x60f94:
 	writebyte $b
 	special Function170687
 	if_equal $b, UnknownScript_0x60f9e
 	end
-; 0x60f9e
 
-UnknownScript_0x60f9e: ; 0x60f9e
+UnknownScript_0x60f9e:
 	checkevent EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER
 	iftrue UnknownScript_0x60fd8
 	playsound SFX_EXIT_BUILDING
@@ -40,18 +37,16 @@
 	special RestartMapMusic
 	disappear $3
 	playsound SFX_EXIT_BUILDING
-UnknownScript_0x60fd8: ; 0x60fd8
+UnknownScript_0x60fd8:
 	end
-; 0x60fd9
 
-UnknownScript_0x60fd9: ; 0x60fd9
+UnknownScript_0x60fd9:
 	writebyte $b
 	special Function170687
 	if_equal $b, UnknownScript_0x60fe3
 	end
-; 0x60fe3
 
-UnknownScript_0x60fe3: ; 0x60fe3
+UnknownScript_0x60fe3:
 	checkevent EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER
 	iftrue UnknownScript_0x6101d
 	playsound SFX_EXIT_BUILDING
@@ -74,19 +69,16 @@
 	special RestartMapMusic
 	disappear $3
 	playsound SFX_EXIT_BUILDING
-UnknownScript_0x6101d: ; 0x6101d
+UnknownScript_0x6101d:
 	end
-; 0x6101e
 
-GameboyKidScript_0x6101e: ; 0x6101e
+GameboyKidScript_0x6101e:
 	jumptextfaceplayer UnknownText_0x62105
-; 0x61021
 
-LassScript_0x61021: ; 0x61021
+LassScript_0x61021:
 	jumptextfaceplayer UnknownText_0x62260
-; 0x61024
 
-PokefanFScript_0x61024: ; 0x61024
+PokefanFScript_0x61024:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x623fb
@@ -106,24 +98,21 @@
 	closetext
 	loadmovesprites
 	end
-; 0x6104b
 
-UnknownScript_0x6104b: ; 0x6104b
+UnknownScript_0x6104b:
 	writetext UnknownText_0x62509
 	closetext
 	loadmovesprites
 	end
-; 0x61051
 
-UnknownScript_0x61051: ; 0x61051
+UnknownScript_0x61051:
 	giveitem EON_MAIL, $1
 	writetext UnknownText_0x6252a
 	closetext
 	loadmovesprites
 	end
-; 0x6105a
 
-MovementData_0x6105a: ; 0x6105a
+MovementData_0x6105a:
 	step_up
 	step_right
 	step_right
@@ -130,17 +119,15 @@
 	step_right
 	turn_head_down
 	step_end
-; 0x61060
 
-MovementData_0x61060: ; 0x61060
+MovementData_0x61060:
 	step_left
 	step_left
 	step_left
 	step_down
 	step_end
-; 0x61065
 
-MovementData_0x61065: ; 0x61065
+MovementData_0x61065:
 	step_up
 	step_right
 	step_right
@@ -148,9 +135,8 @@
 	step_right
 	turn_head_down
 	step_end
-; 0x6106c
 
-MovementData_0x6106c: ; 0x6106c
+MovementData_0x6106c:
 	step_left
 	step_left
 	step_left
@@ -157,10 +143,9 @@
 	step_left
 	step_down
 	step_end
-; 0x61072
 
 ; unused
-UnknownText_0x61072: ; 0x61072
+UnknownText_0x61072:
 	text "Hello! Welcome to"
 	line "#COM CENTER"
 	cont "TRADE CORNER."
@@ -169,9 +154,8 @@
 	line "#MON with other"
 	cont "people far away."
 	done
-; 0x610ce
 
-UnknownText_0x610ce: ; 0x610ce
+UnknownText_0x610ce:
 	text "To make a trade,"
 	line "we must hold your"
 	cont "#MON."
@@ -179,16 +163,14 @@
 	para "Would you like to"
 	line "trade?"
 	done
-; 0x61111
 
-UnknownText_0x61111: ; 0x61111
+UnknownText_0x61111:
 	text "What kind of"
 	line "#MON do you"
 	cont "want in return?"
 	done
-; 0x6113b
 
-UnknownText_0x6113b: ; 0x6113b
+UnknownText_0x6113b:
 	text "Fine. We will try"
 	line "to trade your"
 
@@ -207,9 +189,8 @@
 	line "we prepare the"
 	cont "room for it."
 	done
-; 0x611c9
 
-UnknownText_0x611c9: ; 0x611c9
+UnknownText_0x611c9:
 	text "Fine. We will try"
 	line "to trade your"
 
@@ -227,9 +208,8 @@
 	line "we prepare the"
 	cont "room for it."
 	done
-; 0x61271
 
-UnknownText_0x61271: ; 0x61271
+UnknownText_0x61271:
 	text "Your trade #MON"
 	line "has been received."
 
@@ -239,9 +219,8 @@
 	para "partner. Please"
 	line "come back later."
 	done
-; 0x612d8
 
-UnknownText_0x612d8: ; 0x612d8
+UnknownText_0x612d8:
 	text "Oh? You have only"
 	line "one #MON in"
 	cont "your party. "
@@ -251,34 +230,29 @@
 	cont "creased the size"
 	cont "of your party."
 	done
-; 0x61344
 
-UnknownText_0x61344: ; 0x61344
+UnknownText_0x61344:
 	text "We hope to see you"
 	line "again."
 	done
-; 0x6135f
 
-UnknownText_0x6135f: ; 0x6135f
+UnknownText_0x6135f:
 	text "Communication"
 	line "error…"
 	done
-; 0x61375
 
-UnknownText_0x61375: ; 0x61375
+UnknownText_0x61375:
 	text "If we accept that"
 	line "#MON, what will"
 	cont "you battle with?"
 	done
-; 0x613a9
 
-UnknownText_0x613a9: ; 0x613a9
+UnknownText_0x613a9:
 	text "Sorry. We can't"
 	line "accept an EGG."
 	done
-; 0x613c8
 
-UnknownText_0x613c8: ; 0x613c8
+UnknownText_0x613c8:
 	text "Sorry, but your"
 	line "#MON appears to"
 
@@ -285,24 +259,21 @@
 	para "be abnormal. We"
 	line "can't accept it."
 	done
-; 0x61409
 
-UnknownText_0x61409: ; 0x61409
+UnknownText_0x61409:
 	text "Oh? Aren't we"
 	line "already holding a"
 	cont "#MON of yours?"
 	done
-; 0x61438
 
-UnknownText_0x61438: ; 0x61438
+UnknownText_0x61438:
 	text "We'll check the"
 	line "rooms."
 
 	para "Please wait."
 	done
-; 0x6145c
 
-UnknownText_0x6145c: ; 0x6145c
+UnknownText_0x6145c:
 	text "Thank you for your"
 	line "patience."
 
@@ -309,9 +280,8 @@
 	para "A trade partner"
 	line "has been found."
 	done
-; 0x6149a
 
-UnknownText_0x6149a: ; 0x6149a
+UnknownText_0x6149a:
 	text "It's your new"
 	line "partner."
 
@@ -321,9 +291,8 @@
 	para "We hope to see you"
 	line "again."
 	done
-; 0x614ed
 
-UnknownText_0x614ed: ; 0x614ed
+UnknownText_0x614ed:
 	text "Uh-oh. Your party"
 	line "is already full."
 
@@ -331,9 +300,8 @@
 	line "when you have room"
 	cont "in your party."
 	done
-; 0x61544
 
-UnknownText_0x61544: ; 0x61544
+UnknownText_0x61544:
 	text "It's unfortunate,"
 	line "but no one has"
 
@@ -343,15 +311,13 @@
 	para "Would you like"
 	line "your #MON back?"
 	done
-; 0x615a5
 
-UnknownText_0x615a5: ; 0x615a5
+UnknownText_0x615a5:
 	text "We have returned"
 	line "your #MON."
 	done
-; 0x615c2
 
-UnknownText_0x615c2: ; 0x615c2
+UnknownText_0x615c2:
 	text "It's unfortunate,"
 	line "but no one has"
 
@@ -367,22 +333,19 @@
 	para "Sorry, but we must"
 	line "return it to you."
 	done
-; 0x6166e
 
-UnknownText_0x6166e: ; 0x6166e
+UnknownText_0x6166e:
 	text "We hope to see you"
 	line "again."
 	done
-; 0x61689
 
-UnknownText_0x61689: ; 0x61689
+UnknownText_0x61689:
 	text "Fine. We will"
 	line "continue to hold"
 	cont "your #MON."
 	done
-; 0x616b4
 
-UnknownText_0x616b4: ; 0x616b4
+UnknownText_0x616b4:
 	text "Oh? You left your"
 	line "#MON with us"
 	cont "only recently."
@@ -390,28 +353,24 @@
 	para "Please come back"
 	line "later."
 	done
-; 0x616fb
 
-UnknownText_0x616fb: ; 0x616fb
+UnknownText_0x616fb:
 	text "We'll SAVE before"
 	line "connecting to the"
 	cont "CENTER."
 	done
-; 0x61727
 
-UnknownText_0x61727: ; 0x61727
+UnknownText_0x61727:
 	text "Which #MON do"
 	line "you want to trade?"
 	done
-; 0x61749
 
-UnknownText_0x61749: ; 0x61749
+UnknownText_0x61749:
 	text "Sorry, but we must"
 	line "cancel the trade."
 	done
-; 0x6176f
 
-UnknownText_0x6176f: ; 0x6176f
+UnknownText_0x6176f:
 	text "Oh!"
 
 	para "I see you have an"
@@ -423,9 +382,8 @@
 	para "redeem for a"
 	line "special #MON!"
 	done
-; 0x617d2
 
-UnknownText_0x617d2: ; 0x617d2
+UnknownText_0x617d2:
 	text "Let me give you a"
 	line "quick briefing."
 
@@ -457,15 +415,13 @@
 	para "sent from the"
 	line "chosen room."
 	done
-; 0x6191f
 
-UnknownText_0x6191f: ; 0x6191f
+UnknownText_0x6191f:
 	text "Please wait a"
 	line "moment."
 	done
-; 0x61936
 
-UnknownText_0x61936: ; 0x61936
+UnknownText_0x61936:
 	text "Thank you for"
 	line "waiting."
 
@@ -477,9 +433,8 @@
 	para "Please raise it"
 	line "with loving care."
 	done
-; 0x61996
 
-UnknownText_0x61996: ; 0x61996
+UnknownText_0x61996:
 	text "I'm awfully sorry."
 
 	para "The EGG TICKET"
@@ -486,21 +441,18 @@
 	line "exchange service"
 	cont "isn't running now."
 	done
-; 0x619db
 
-UnknownText_0x619db: ; 0x619db
+UnknownText_0x619db:
 	text "It's a #MON"
 	line "NEWS MACHINE."
 	done
-; 0x619f5
 
-UnknownText_0x619f5: ; 0x619f5
+UnknownText_0x619f5:
 	text "What would you"
 	line "like to do?"
 	done
-; 0x61a11
 
-UnknownText_0x61a11: ; 0x61a11
+UnknownText_0x61a11:
 	text "#MON NEWS is"
 	line "news compiled from"
 
@@ -534,27 +486,23 @@
 	para "You might even be"
 	line "in the NEWS!"
 	done
-; 0x61b7c
 
-UnknownText_0x61b7c: ; 0x61b7c
+UnknownText_0x61b7c:
 	text "Would you like to"
 	line "get the NEWS?"
 	done
-; 0x61b9d
 
-UnknownText_0x61b9d: ; 0x61b9d
+UnknownText_0x61b9d:
 	text "Reading the latest"
 	line "NEWS… Please wait."
 	done
-; 0x61bc4
 
-UnknownText_0x61bc4: ; 0x61bc4
+UnknownText_0x61bc4:
 	text "There is no old"
 	line "NEWS…"
 	done
-; 0x61bdb
 
-UnknownText_0x61bdb: ; 0x61bdb
+UnknownText_0x61bdb:
 	text "The NEWS data is"
 	line "corrupted."
 
@@ -561,9 +509,8 @@
 	para "Please download"
 	line "the NEWS again."
 	done
-; 0x61c18
 
-UnknownText_0x61c18: ; 0x61c18
+UnknownText_0x61c18:
 	text "We're making"
 	line "preparations."
 
@@ -570,9 +517,8 @@
 	para "Please come back"
 	line "later."
 	done
-; 0x61c4b
 
-UnknownText_0x61c4b: ; 0x61c4b
+UnknownText_0x61c4b:
 	text "We will SAVE your"
 	line "progress before"
 
@@ -579,9 +525,8 @@
 	para "starting the NEWS"
 	line "MACHINE."
 	done
-; 0x61c89
 
-UnknownText_0x61c89: ; 0x61c89
+UnknownText_0x61c89:
 	text "Whoa, this #MON"
 	line "CENTER is huge."
 
@@ -591,9 +536,8 @@
 	para "installed lots of"
 	line "new machines too."
 	done
-; 0x61cef
 
-UnknownText_0x61cef: ; 0x61cef
+UnknownText_0x61cef:
 	text "I thought up a fun"
 	line "new thing for the"
 	cont "TRADE CORNER!"
@@ -620,9 +564,8 @@
 	para "make lots of new"
 	line "friends!"
 	done
-; 0x61dfd
 
-UnknownText_0x61dfd: ; 0x61dfd
+UnknownText_0x61dfd:
 	text "They said you can"
 	line "trade #MON with"
 
@@ -632,9 +575,8 @@
 	para "But they're still"
 	line "adjusting things."
 	done
-; 0x61e5c
 
-UnknownText_0x61e5c: ; 0x61e5c
+UnknownText_0x61e5c:
 	text "Some girl I don't"
 	line "know sent me her"
 
@@ -644,9 +586,8 @@
 	para "for a #MON that"
 	line "you want."
 	done
-; 0x61eb2
 
-UnknownText_0x61eb2: ; 0x61eb2
+UnknownText_0x61eb2:
 	text "I received a"
 	line "female HOPPIP, but"
 	cont "its named STANLEY!"
@@ -654,9 +595,8 @@
 	para "That's my dad's"
 	line "name!"
 	done
-; 0x61efa
 
-UnknownText_0x61efa: ; 0x61efa
+UnknownText_0x61efa:
 	text "What is the NEWS"
 	line "MACHINE?"
 
@@ -664,9 +604,8 @@
 	line "from a wider area"
 	cont "than the radio?"
 	done
-; 0x61f48
 
-UnknownText_0x61f48: ; 0x61f48
+UnknownText_0x61f48:
 	text "The #COM CENTER"
 	line "will link with all"
 
@@ -679,9 +618,8 @@
 	para "link with all"
 	line "sorts of people."
 	done
-; 0x61fc9
 
-UnknownText_0x61fc9: ; 0x61fc9
+UnknownText_0x61fc9:
 	text "The machines here"
 	line "can't be used yet."
 
@@ -691,9 +629,8 @@
 	para "place before other"
 	line "people."
 	done
-; 0x6202c
 
-UnknownText_0x6202c: ; 0x6202c
+UnknownText_0x6202c:
 	text "My friend was in"
 	line "the NEWS a while"
 
@@ -700,16 +637,14 @@
 	para "back. I was really"
 	line "surprised!"
 	done
-; 0x6206d
 
-UnknownText_0x6206d: ; 0x6206d
+UnknownText_0x6206d:
 	text "I get anxious if I"
 	line "don't check out"
 	cont "the latest NEWS!"
 	done
-; 0x620a1
 
-UnknownText_0x620a1: ; 0x620a1
+UnknownText_0x620a1:
 	text "If I get in the"
 	line "NEWS and become"
 
@@ -720,9 +655,8 @@
 	line "could get in the"
 	cont "NEWS?"
 	done
-; 0x62105
 
-UnknownText_0x62105: ; 0x62105
+UnknownText_0x62105:
 	text "The COLOSSEUM"
 	line "upstairs is for"
 	cont "link battles."
@@ -733,9 +667,8 @@
 	para "wall, so I can't"
 	line "afford to lose."
 	done
-; 0x62173
 
-UnknownText_0x62173: ; 0x62173
+UnknownText_0x62173:
 	text "I came over here"
 	line "when I got word"
 
@@ -752,9 +685,8 @@
 	para "with all their"
 	line "preparations…"
 	done
-; 0x62222
 
-UnknownText_0x62222: ; 0x62222
+UnknownText_0x62222:
 	text "Just seeing all"
 	line "these new things"
 
@@ -761,9 +693,8 @@
 	para "here makes me feel"
 	line "younger!"
 	done
-; 0x62260
 
-UnknownText_0x62260: ; 0x62260
+UnknownText_0x62260:
 	text "A higher level"
 	line "#MON doesn't"
 	cont "always win."
@@ -778,9 +709,8 @@
 	para "#MON that is"
 	line "the toughest."
 	done
-; 0x622f0
 
-UnknownText_0x622f0: ; 0x622f0
+UnknownText_0x622f0:
 	text "<PLAYER>, isn't it?"
 
 	para "Congratulations!"
@@ -791,15 +721,13 @@
 
 	para "Please accept it!"
 	done
-; 0x62359
 
-UnknownText_0x62359: ; 0x62359
+UnknownText_0x62359:
 	text "Please do come"
 	line "again!"
 	done
-; 0x62370
 
-UnknownText_0x62370: ; 0x62370
+UnknownText_0x62370:
 	text "#COM CENTER"
 	line "1F INFORMATION"
 
@@ -812,9 +740,8 @@
 	para "Right:"
 	line "#MON NEWS"
 	done
-; 0x623c7
 
-UnknownText_0x623c7: ; 0x623c7
+UnknownText_0x623c7:
 	text "It's a #MON"
 	line "NEWS MACHINE!"
 
@@ -821,9 +748,8 @@
 	para "It's not in"
 	line "operation yet…"
 	done
-; 0x623fb
 
-UnknownText_0x623fb: ; 0x623fb
+UnknownText_0x623fb:
 	text "Oh my, your pack"
 	line "looks so heavy!"
 
@@ -837,15 +763,13 @@
 	para "You can part with"
 	line "one, can't you?"
 	done
-; 0x6248c
 
-UnknownText_0x6248c: ; 0x6248c
+UnknownText_0x6248c:
 	text "Give away an EON"
 	line "MAIL?"
 	done
-; 0x624a4
 
-UnknownText_0x624a4: ; 0x624a4
+UnknownText_0x624a4:
 	text "Oh, that's great!"
 	line "Thank you, honey!"
 
@@ -852,37 +776,32 @@
 	para "Here, this is for"
 	line "you in return!"
 	done
-; 0x624e9
 
-UnknownText_0x624e9: ; 0x624e9
+UnknownText_0x624e9:
 	text "My daughter will"
 	line "be delighted!"
 	done
-; 0x62509
 
-UnknownText_0x62509: ; 0x62509
+UnknownText_0x62509:
 	text "Oh? You don't have"
 	line "one? Too bad."
 	done
-; 0x6252a
 
-UnknownText_0x6252a: ; 0x6252a
+UnknownText_0x6252a:
 	text "Oh… Well, another"
 	line "time, then."
 	done
-; 0x62549
 
-UnknownText_0x62549: ; 0x62549
+UnknownText_0x62549:
 	text "<PLAYER> gave away"
 	line "the EON MAIL."
 	done
-; 0x62564
 
-GoldenrodPokeCenter1F_MapEventHeader: ; 0x62564
+GoldenrodPokeCenter1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -889,19 +808,18 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 2
 	xy_trigger 0, $7, $3, $0, UnknownScript_0x60f94, $0, $0
 	xy_trigger 0, $7, $4, $0, UnknownScript_0x60fd9, $0, $0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 5
-	person_event SPRITE_NURSE, 5, 7, $6, $0, 255, 255, $0, 0, NurseScript_0x60f91, $ffff
-	person_event SPRITE_LINK_RECEPTIONIST, 12, 20, $6, $0, 255, 255, $90, 0, ObjectEvent, $ffff
-	person_event SPRITE_GAMEBOY_KID, 5, 10, $6, $0, 255, 255, $a0, 0, GameboyKidScript_0x6101e, $ffff
-	person_event SPRITE_LASS, 8, 5, $5, $1, 255, 255, $0, 0, LassScript_0x61021, $ffff
-	person_event SPRITE_POKEFAN_F, 9, 11, $6, $0, 255, 255, $b0, 0, PokefanFScript_0x61024, $ffff
-; 0x625cf
+	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
--- a/maps/GoldenrodPokeComCenter2FMobile.asm
+++ b/maps/GoldenrodPokeComCenter2FMobile.asm
@@ -1,28 +1,24 @@
-GoldenrodPokeComCenter2FMobile_MapScriptHeader: ; 0x625cf
-	; trigger count
+GoldenrodPokeComCenter2FMobile_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x625d1
 
-ScientistScript_0x625d1: ; 0x625d1
+ScientistScript_0x625d1:
 	jumptextfaceplayer UnknownText_0x62674
-; 0x625d4
 
-ScientistScript_0x625d4: ; 0x625d4
+ScientistScript_0x625d4:
 	jumptextfaceplayer UnknownText_0x626f9
-; 0x625d7
 
-ScientistScript_0x625d7: ; 0x625d7
+ScientistScript_0x625d7:
 	jumptextfaceplayer UnknownText_0x62795
-; 0x625da
 
-MapGoldenrodPokeComCenter2FMobileSignpost0Script: ; 0x625da
+MapGoldenrodPokeComCenter2FMobileSignpost0Script:
 	loadfont
 	writetext UnknownText_0x627ee
 	closetext
-UnknownScript_0x625df: ; 0x625df
+UnknownScript_0x625df:
 	reloadmappart
 	loadmenudata MenuDataHeader_0x62602
 	interpretmenu2
@@ -30,50 +26,44 @@
 	if_equal $1, UnknownScript_0x625f0
 	if_equal $2, UnknownScript_0x625f8
 	jump UnknownScript_0x62600
-; 0x625f0
 
-UnknownScript_0x625f0: ; 0x625f0
+UnknownScript_0x625f0:
 	loadfont
 	writetext UnknownText_0x62828
 	closetext
 	jump UnknownScript_0x625df
-; 0x625f8
 
-UnknownScript_0x625f8: ; 0x625f8
+UnknownScript_0x625f8:
 	loadfont
 	writetext UnknownText_0x628f4
 	closetext
 	jump UnknownScript_0x625df
-; 0x62600
 
-UnknownScript_0x62600: ; 0x62600
+UnknownScript_0x62600:
 	loadmovesprites
 	end
-; 0x62602
 
 
-MenuDataHeader_0x62602: ; 0x62602
+MenuDataHeader_0x62602:
 	db $40 ; flags
 	db 00, 00 ; start coords
 	db 08, 15 ; end coords
 	dw MenuData2_0x6260a
 	db 1 ; default option
-; 0x6260a
 
-MenuData2_0x6260a: ; 0x6260a
+MenuData2_0x6260a:
 	db $80 ; flags
 	db 3 ; items
 	db "# つうしん クラブ@" ; # COM CLUB
 	db "モバイルセンター@" ; MOBILE CENTER
 	db "やめる@" ; QUIT
-; 0x62624
 
 
-MapGoldenrodPokeComCenter2FMobileSignpost1Script: ; 0x62624
+MapGoldenrodPokeComCenter2FMobileSignpost1Script:
 	loadfont
 	writetext UnknownText_0x62989
 	closetext
-UnknownScript_0x62629: ; 0x62629
+UnknownScript_0x62629:
 	reloadmappart
 	loadmenudata MenuDataHeader_0x6264c
 	interpretmenu2
@@ -81,50 +71,43 @@
 	if_equal $1, UnknownScript_0x6263a
 	if_equal $2, UnknownScript_0x62642
 	jump UnknownScript_0x6264a
-; 0x6263a
 
-UnknownScript_0x6263a: ; 0x6263a
+UnknownScript_0x6263a:
 	loadfont
 	writetext UnknownText_0x629ae
 	closetext
 	jump UnknownScript_0x62629
-; 0x62642
 
-UnknownScript_0x62642: ; 0x62642
+UnknownScript_0x62642:
 	loadfont
 	writetext UnknownText_0x62a5a
 	closetext
 	jump UnknownScript_0x62629
-; 0x6264a
 
-UnknownScript_0x6264a: ; 0x6264a
+UnknownScript_0x6264a:
 	loadmovesprites
 	end
-; 0x6264c
 
 
-MenuDataHeader_0x6264c: ; 0x6264c
+MenuDataHeader_0x6264c:
 	db $40 ; flags
 	db 00, 00 ; start coords
 	db 08, 15 ; end coords
 	dw MenuData2_0x62654
 	db 1 ; default option
-; 0x62654
 
-MenuData2_0x62654: ; 0x62654
+MenuData2_0x62654:
 	db $80 ; flags
 	db 3 ; items
-	db "でんわ",$1f,"つかうとき@" ; Use phone
-	db "でんわ",$4a,"つながらないとき@" ; Don't use phone
+	db "でんわ", $1f,"つかうとき@" ; Use phone
+	db "でんわ", $4a,"つながらないとき@" ; Don't use phone
 	db "やめる@" ; QUIT
-; 0x62673
 
 
-MapGoldenrodPokeComCenter2FMobileSignpost2Script: ; 0x62671
+MapGoldenrodPokeComCenter2FMobileSignpost2Script:
 	jumptext UnknownText_0x62b26
-; 0x62674
 
-UnknownText_0x62674: ; 0x62674
+UnknownText_0x62674:
 	text "#COM CENTER and"
 	line "MOBILE CENTER were"
 
@@ -137,9 +120,8 @@
 	para "and with total"
 	line "strangers."
 	done
-; 0x626f9
 
-UnknownText_0x626f9: ; 0x626f9
+UnknownText_0x626f9:
 	text "When you linked"
 	line "with someone by"
 
@@ -155,9 +137,8 @@
 	para "impressed that I"
 	line "got the shakes!"
 	done
-; 0x62795
 
-UnknownText_0x62795: ; 0x62795
+UnknownText_0x62795:
 	text "They were able to"
 	line "build this huge"
 
@@ -165,9 +146,8 @@
 	line "advances in wire-"
 	cont "less technology."
 	done
-; 0x627ee
 
-UnknownText_0x627ee: ; 0x627ee
+UnknownText_0x627ee:
 	text "It's a notice"
 	line "about where MOBILE"
 
@@ -174,9 +154,8 @@
 	para "ADAPTERS are to be"
 	line "used…"
 	done
-; 0x62828
 
-UnknownText_0x62828: ; 0x62828
+UnknownText_0x62828:
 	text "There's a #COM"
 	line "CLUB upstairs in"
 
@@ -197,9 +176,8 @@
 	line "MOBILE ADAPTER as"
 	cont "you."
 	done
-; 0x628f4
 
-UnknownText_0x628f4: ; 0x628f4
+UnknownText_0x628f4:
 	text "To use the TRADE"
 	line "CORNER or read the"
 
@@ -213,16 +191,14 @@
 	para "CENTER before"
 	line "connecting there."
 	done
-; 0x62989
 
-UnknownText_0x62989: ; 0x62989
+UnknownText_0x62989:
 	text "It's a notice"
 	line "about using the"
 	cont "phone…"
 	done
-; 0x629ae
 
-UnknownText_0x629ae: ; 0x629ae
+UnknownText_0x629ae:
 	text "Please ensure that"
 	line "your phone and"
 
@@ -237,9 +213,8 @@
 	line "hang up the phone"
 	cont "while linking."
 	done
-; 0x62a5a
 
-UnknownText_0x62a5a: ; 0x62a5a
+UnknownText_0x62a5a:
 	text "If the server is"
 	line "busy, it may not"
 
@@ -259,9 +234,8 @@
 	line "center or read the"
 	cont "instructions."
 	done
-; 0x62b26
 
-UnknownText_0x62b26: ; 0x62b26
+UnknownText_0x62b26:
 	text "The ADMINISTRATION"
 	line "OFFICE received an"
 	cont "e-mail. It says…"
@@ -288,29 +262,27 @@
 
 	para $56, " ", $56, " ", $56
 	done
-; 0x62c32
 
-GoldenrodPokeComCenter2FMobile_MapEventHeader: ; 0x62c32
+GoldenrodPokeComCenter2FMobile_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 3
-	signpost 26, 6, $1, MapGoldenrodPokeComCenter2FMobileSignpost0Script
-	signpost 28, 6, $1, MapGoldenrodPokeComCenter2FMobileSignpost1Script
-	signpost 26, 3, $1, MapGoldenrodPokeComCenter2FMobileSignpost2Script
+	signpost 26, 6, SIGNPOST_UP, MapGoldenrodPokeComCenter2FMobileSignpost0Script
+	signpost 28, 6, SIGNPOST_UP, MapGoldenrodPokeComCenter2FMobileSignpost1Script
+	signpost 26, 3, SIGNPOST_UP, MapGoldenrodPokeComCenter2FMobileSignpost2Script
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_SCIENTIST, 32, 8, $4, $10, 255, 255, $80, 0, ScientistScript_0x625d1, $ffff
-	person_event SPRITE_SCIENTIST, 31, 11, $7, $0, 255, 255, $90, 0, ScientistScript_0x625d4, $ffff
-	person_event SPRITE_SCIENTIST, 33, 11, $7, $0, 255, 255, $a0, 0, ScientistScript_0x625d7, $ffff
-; 0x62c78
+	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
--- a/maps/GuideGentsHouse.asm
+++ b/maps/GuideGentsHouse.asm
@@ -1,8 +1,8 @@
 GuideGentsHouse_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 GuideGentsHouseGuideGent:
@@ -28,19 +28,19 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 0, $0, GuideGentsHouseBookshelf
-	signpost 1, 1, $0, GuideGentsHouseBookshelf
+	signpost 1, 0, SIGNPOST_READ, GuideGentsHouseBookshelf
+	signpost 1, 1, SIGNPOST_READ, GuideGentsHouseBookshelf
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_GRAMPS, 7, 6, $9, $0, 255, 255, $0, 0, GuideGentsHouseGuideGent, $06ff
+	person_event SPRITE_GRAMPS, 7, 6, OW_LEFT | $1, $0, -1, -1, $0, 0, GuideGentsHouseGuideGent, EVENT_GUIDE_GENT_VISIBLE_IN_CHERRYGROVE
--- a/maps/HallOfFame.asm
+++ b/maps/HallOfFame.asm
@@ -1,56 +1,52 @@
-HallOfFame_MapScriptHeader: ; 0x181445
-	; trigger count
+HallOfFame_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
-	dw UnknownScript_0x18144f, $0000
-	dw UnknownScript_0x181453, $0000
+	dw .Trigger1, $0000
+	dw .Trigger2, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18144f
 
-UnknownScript_0x18144f: ; 0x18144f
-	priorityjump UnknownScript_0x181454
+.Trigger1:
+	priorityjump HallOfFameScript
 	end
-; 0x181453
 
-UnknownScript_0x181453: ; 0x181453
+.Trigger2:
 	end
-; 0x181454
 
-UnknownScript_0x181454: ; 0x181454
+HallOfFameScript:
 	follow $2, $0
-	applymovement $2, MovementData_0x181499
+	applymovement $2, HallOfFame_WalkUpWithLance
 	stopfollow
 	spriteface $0, RIGHT
 	loadfont
-	writetext UnknownText_0x1814a6
+	writetext HallOfFame_LanceText
 	closetext
 	loadmovesprites
 	spriteface $2, UP
-	applymovement $0, MovementData_0x1814a4
+	applymovement $0, HallOfFame_SlowlyApproachMachine
 	dotrigger $1
 	pause 15
-	writebyte $2
+	writebyte 2 ; Machine is in the Hall of Fame
 	special HealMachineAnim
 	setevent EVENT_BEAT_ELITE_FOUR
 	setevent EVENT_TELEPORT_GUY
 	setevent EVENT_RIVAL_SPROUT_TOWER
 	clearevent EVENT_RED_IN_MT_SILVER
-	setevent $0737
-	clearevent $0738
+	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
 	special HealParty
 	checkevent EVENT_GOT_SS_TICKET_FROM_ELM
-	iftrue UnknownScript_0x181497
-	specialphonecall $5
-UnknownScript_0x181497: ; 0x181497
+	iftrue .SkipPhoneCall
+	specialphonecall ELMCALL_SSTICKET
+.SkipPhoneCall:
 	halloffame
 	end
-; 0x181499
 
-MovementData_0x181499: ; 0x181499
+HallOfFame_WalkUpWithLance:
 	step_up
 	step_up
 	step_up
@@ -62,14 +58,12 @@
 	step_right
 	turn_head_left
 	step_end
-; 0x1814a4
 
-MovementData_0x1814a4: ; 0x1814a4
+HallOfFame_SlowlyApproachMachine:
 	slow_step_up
 	step_end
-; 0x1814a6
 
-UnknownText_0x1814a6: ; 0x1814a6
+HallOfFame_LanceText:
 	text "LANCE: It's been a"
 	line "long time since I"
 	cont "last came here."
@@ -114,24 +108,22 @@
 	para "and your partners"
 	line "as CHAMPIONS!"
 	done
-; 0x181678
 
-HallOfFame_MapEventHeader: ; 0x181678
+HallOfFame_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_LANCE, 16, 8, $7, $0, 255, 255, $0, 0, ObjectEvent, $ffff
-; 0x181695
+	person_event SPRITE_LANCE, 16, 8, OW_UP | $3, $0, -1, -1, PAL_OW_RED << 4 | $0, 0, ObjectEvent, -1
--- a/maps/IcePath1F.asm
+++ b/maps/IcePath1F.asm
@@ -1,28 +1,24 @@
-IcePath1F_MapScriptHeader: ; 0x7e470
-	; trigger count
+IcePath1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x7e472
 
-ItemFragment_0x7e472: ; 0x7e472
-	db HM_07, 1
-; 0x7e474
+ItemFragment_0x7e472:
+	db HM_WATERFALL, 1
 
-ItemFragment_0x7e474: ; 0x7e474
+ItemFragment_0x7e474:
 	db PP_UP, 1
-; 0x7e476
 
-ItemFragment_0x7e476: ; 0x7e476
+ItemFragment_0x7e476:
 	db PROTEIN, 1
-; 0x7e478
 
-IcePath1F_MapEventHeader: ; 0x7e478
+IcePath1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -29,15 +25,14 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_POKE_BALL, 11, 35, $1, $0, 255, 255, $1, 0, ItemFragment_0x7e472, $0688
-	person_event SPRITE_POKE_BALL, 27, 36, $1, $0, 255, 255, $1, 0, ItemFragment_0x7e474, $0689
-	person_event SPRITE_POKE_BALL, 13, 39, $1, $0, 255, 255, $1, 0, ItemFragment_0x7e476, $07be
-; 0x7e4b9
+	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
--- a/maps/IcePathB1F.asm
+++ b/maps/IcePathB1F.asm
@@ -1,26 +1,23 @@
-IcePathB1F_MapScriptHeader: ; 0x7e4b9
-	; trigger count
+IcePathB1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 3, UnknownScript_0x7e4be
-; 0x7e4be
 
-UnknownScript_0x7e4be: ; 0x7e4be
+UnknownScript_0x7e4be:
 	writecmdqueue CmdQueue_0x7e4c2
 	return
-; 0x7e4c2
 
-CmdQueue_0x7e4c2: ; 0x7e4c2
+CmdQueue_0x7e4c2:
 	dbw 2, StoneTable_0x7e4c7 ; check if any stones are sitting on a warp
 	db 0, 0 ; filler
-; 0x7e4c7
 
-StoneTable_0x7e4c7: ; 0x7e4c7
+StoneTable_0x7e4c7:
 	db 3, 2 ; warp, person
 	dw UnknownScript_0x7e4d8
 
@@ -34,33 +31,28 @@
 	dw UnknownScript_0x7e4f0
 
 	db $ff ; end
-; 0x7e4d8
 
-UnknownScript_0x7e4d8: ; 0x7e4d8
+UnknownScript_0x7e4d8:
 	disappear 2
-	clearevent EVENT_BOULDER_IN_ICE_PATH_1
+	clearevent EVENT_BOULDER_IN_ICE_PATH_1A
 	jump UnknownScript_0x7e4f8
-; 0x7e4e0
 
-UnknownScript_0x7e4e0: ; 0x7e4e0
+UnknownScript_0x7e4e0:
 	disappear 3
-	clearevent EVENT_BOULDER_IN_ICE_PATH_2
+	clearevent EVENT_BOULDER_IN_ICE_PATH_2A
 	jump UnknownScript_0x7e4f8
-; 0x7e4e8
 
-UnknownScript_0x7e4e8: ; 0x7e4e8
+UnknownScript_0x7e4e8:
 	disappear 4
-	clearevent EVENT_BOULDER_IN_ICE_PATH_3
+	clearevent EVENT_BOULDER_IN_ICE_PATH_3A
 	jump UnknownScript_0x7e4f8
-; 0x7e4f0
 
-UnknownScript_0x7e4f0: ; 0x7e4f0
+UnknownScript_0x7e4f0:
 	disappear 5
-	clearevent EVENT_BOULDER_IN_ICE_PATH_4
+	clearevent EVENT_BOULDER_IN_ICE_PATH_4A
 	jump UnknownScript_0x7e4f8
-; 0x7e4f8
 
-UnknownScript_0x7e4f8: ; 0x7e4f8
+UnknownScript_0x7e4f8:
 	pause 30
 	scall UnknownScript_0x7e504
 	loadfont
@@ -68,41 +60,34 @@
 	closetext
 	loadmovesprites
 	end
-; 0x7e504
 
-UnknownScript_0x7e504: ; 0x7e504
+UnknownScript_0x7e504:
 	playsound SFX_STRENGTH
 	earthquake 80
 	end
-; 0x7e50a
 
 
-IcePathB1FBoulder: ; 0x7e50a
+IcePathB1FBoulder:
 	jumpstd strengthboulder
-; 0x7e50d
 
-ItemFragment_0x7e50d: ; 0x7e50d
+ItemFragment_0x7e50d:
 	db IRON, 1
-; 0x7e50f
 
-MapIcePathB1FSignpostItem0: ; 0x7e50f
-	dw $0094
-	db MAX_POTION
-; 0x7e512
+MapIcePathB1FSignpostItem0:
+	dwb EVENT_ICE_PATH_B1F_HIDDEN_MAX_POTION, MAX_POTION
 
 
-UnknownText_0x7e512: ; 0x7e512
+UnknownText_0x7e512:
 	text "The boulder fell"
 	line "through."
 	done
-; 0x7e52d
 
 
-IcePathB1F_MapEventHeader: ; 0x7e52d
+IcePathB1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -113,17 +98,17 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 30, 17, $7, MapIcePathB1FSignpostItem0
+	signpost 30, 17, SIGNPOST_ITEM, MapIcePathB1FSignpostItem0
 
-	; people-events
+.PersonEvents:
 	db 5
-	person_event SPRITE_BOULDER, 11, 15, $19, $0, 255, 255, $0, 0, IcePathB1FBoulder, $0709
-	person_event SPRITE_BOULDER, 12, 11, $19, $0, 255, 255, $0, 0, IcePathB1FBoulder, $070a
-	person_event SPRITE_BOULDER, 13, 12, $19, $0, 255, 255, $0, 0, IcePathB1FBoulder, $070b
-	person_event SPRITE_BOULDER, 11, 21, $19, $0, 255, 255, $0, 0, IcePathB1FBoulder, $070c
-	person_event SPRITE_POKE_BALL, 39, 9, $1, $0, 255, 255, $1, 0, ItemFragment_0x7e50d, $068a
+	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
--- a/maps/IcePathB2FBlackthornSide.asm
+++ b/maps/IcePathB2FBlackthornSide.asm
@@ -1,38 +1,33 @@
-IcePathB2FBlackthornSide_MapScriptHeader: ; 0x7e644
-	; trigger count
+IcePathB2FBlackthornSide_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x7e646
 
-ItemFragment_0x7e646: ; 0x7e646
-	db TM_44, 1
-; 0x7e648
+ItemFragment_0x7e646:
+	db TM_REST, 1
 
-MapIcePathB2FBlackthornSideSignpostItem0: ; 0x7e648
-	dw $0096
-	db ICE_HEAL
+MapIcePathB2FBlackthornSideSignpostItem0:
+	dwb EVENT_ICE_PATH_B2F_BLACKTHORN_SIDE_HIDDEN_ICE_HEAL, ICE_HEAL
 	
-; 0x7e64b
 
-IcePathB2FBlackthornSide_MapEventHeader: ; 0x7e64b
+IcePathB2FBlackthornSide_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 10, 2, $7, MapIcePathB2FBlackthornSideSignpostItem0
+	signpost 10, 2, SIGNPOST_ITEM, MapIcePathB2FBlackthornSideSignpostItem0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_POKE_BALL, 20, 12, $1, $0, 255, 255, $1, 0, ItemFragment_0x7e646, $068d
-; 0x7e66d
+	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
--- a/maps/IcePathB2FMahoganySide.asm
+++ b/maps/IcePathB2FMahoganySide.asm
@@ -1,40 +1,33 @@
-IcePathB2FMahoganySide_MapScriptHeader: ; 0x7e5a1
-	; trigger count
+IcePathB2FMahoganySide_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x7e5a3
 
-BoulderScript_0x7e5a3: ; 0x7e5a3
+BoulderScript_0x7e5a3:
 	jumptext UnknownText_0x7e5ad
-; 0x7e5a6
 
-ItemFragment_0x7e5a6: ; 0x7e5a6
+ItemFragment_0x7e5a6:
 	db FULL_HEAL, 1
-; 0x7e5a8
 
-ItemFragment_0x7e5a8: ; 0x7e5a8
+ItemFragment_0x7e5a8:
 	db MAX_POTION, 1
-; 0x7e5aa
 
-MapIcePathB2FMahoganySideSignpostItem0: ; 0x7e5aa
-	dw $0095
-	db CARBOS
+MapIcePathB2FMahoganySideSignpostItem0:
+	dwb EVENT_ICE_PATH_B2F_MAHOGANY_SIDE_HIDDEN_CARBOS, CARBOS
 	
-; 0x7e5ad
 
-UnknownText_0x7e5ad: ; 0x7e5ad
+UnknownText_0x7e5ad:
 	text "It's immovably"
 	line "imbedded in ice."
 	done
-; 0x7e5cd
 
-IcePathB2FMahoganySide_MapEventHeader: ; 0x7e5cd
+IcePathB2FMahoganySide_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -43,19 +36,18 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 17, 0, $7, MapIcePathB2FMahoganySideSignpostItem0
+	signpost 17, 0, SIGNPOST_ITEM, MapIcePathB2FMahoganySideSignpostItem0
 
-	; people-events
+.PersonEvents:
 	db 6
-	person_event SPRITE_BOULDER, 7, 15, $1, $0, 255, 255, $0, 0, BoulderScript_0x7e5a3, $070d
-	person_event SPRITE_BOULDER, 11, 8, $1, $0, 255, 255, $0, 0, BoulderScript_0x7e5a3, $070e
-	person_event SPRITE_BOULDER, 16, 7, $1, $0, 255, 255, $0, 0, BoulderScript_0x7e5a3, $070f
-	person_event SPRITE_BOULDER, 17, 16, $1, $0, 255, 255, $0, 0, BoulderScript_0x7e5a3, $0710
-	person_event SPRITE_POKE_BALL, 13, 12, $1, $0, 255, 255, $1, 0, ItemFragment_0x7e5a6, $068b
-	person_event SPRITE_POKE_BALL, 6, 4, $1, $0, 255, 255, $1, 0, ItemFragment_0x7e5a8, $068c
-; 0x7e644
+	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
--- a/maps/IcePathB3F.asm
+++ b/maps/IcePathB3F.asm
@@ -1,35 +1,32 @@
-IcePathB3F_MapScriptHeader: ; 0x7e66d
-	; trigger count
+IcePathB3F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x7e66f
 
-ItemFragment_0x7e66f: ; 0x7e66f
+ItemFragment_0x7e66f:
 	db NEVERMELTICE, 1
-; 0x7e671
 
 IcePathB3FRock:
 	jumpstd smashrock
 
-IcePathB3F_MapEventHeader: ; 0x7e674
+IcePathB3F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_POKE_BALL, 11, 9, $1, $0, 255, 255, $1, 0, ItemFragment_0x7e66f, $068e
-	person_event SPRITE_ROCK, 10, 10, $18, $0, 255, 255, $0, 0, IcePathB3FRock, $ffff
-; 0x7e69e
+	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
--- a/maps/IlexForest.asm
+++ b/maps/IlexForest.asm
@@ -1,16 +1,15 @@
-IlexForest_MapScriptHeader: ; 0x6eafe
-	; trigger count
+IlexForest_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 2, UnknownScript_0x6eb03
-; 0x6eb03
 
-UnknownScript_0x6eb03: ; 0x6eb03
+UnknownScript_0x6eb03:
 	checkevent EVENT_GOT_HM01_CUT
 	iftrue UnknownScript_0x6eb34
 	copybytetovar FarfetchdPosition
@@ -24,89 +23,76 @@
 	if_equal $8, UnknownScript_0x6eb66
 	if_equal $9, UnknownScript_0x6eb6d
 	if_equal $a, UnknownScript_0x6eb74
-UnknownScript_0x6eb34: ; 0x6eb34
+UnknownScript_0x6eb34:
 	return
-; 0x6eb35
 
-UnknownScript_0x6eb35: ; 0x6eb35
+UnknownScript_0x6eb35:
 	moveperson $2, $e, $1f
 	appear $2
 	return
-; 0x6eb3c
 
-UnknownScript_0x6eb3c: ; 0x6eb3c
+UnknownScript_0x6eb3c:
 	moveperson $2, $f, $19
 	appear $2
 	return
-; 0x6eb43
 
-UnknownScript_0x6eb43: ; 0x6eb43
+UnknownScript_0x6eb43:
 	moveperson $2, $14, $18
 	appear $2
 	return
-; 0x6eb4a
 
-UnknownScript_0x6eb4a: ; 0x6eb4a
+UnknownScript_0x6eb4a:
 	moveperson $2, $1d, $16
 	appear $2
 	return
-; 0x6eb51
 
-UnknownScript_0x6eb51: ; 0x6eb51
+UnknownScript_0x6eb51:
 	moveperson $2, $1c, $1f
 	appear $2
 	return
-; 0x6eb58
 
-UnknownScript_0x6eb58: ; 0x6eb58
+UnknownScript_0x6eb58:
 	moveperson $2, $18, $23
 	appear $2
 	return
-; 0x6eb5f
 
-UnknownScript_0x6eb5f: ; 0x6eb5f
+UnknownScript_0x6eb5f:
 	moveperson $2, $16, $1f
 	appear $2
 	return
-; 0x6eb66
 
-UnknownScript_0x6eb66: ; 0x6eb66
+UnknownScript_0x6eb66:
 	moveperson $2, $f, $1d
 	appear $2
 	return
-; 0x6eb6d
 
-UnknownScript_0x6eb6d: ; 0x6eb6d
+UnknownScript_0x6eb6d:
 	moveperson $2, $a, $23
 	appear $2
 	return
-; 0x6eb74
 
-UnknownScript_0x6eb74: ; 0x6eb74
+UnknownScript_0x6eb74:
 	moveperson $2, $6, $1c
 	appear $2
 	return
-; 0x6eb7b
 
-YoungsterScript_0x6eb7b: ; 0x6eb7b
+YoungsterScript_0x6eb7b:
 	faceplayer
 	loadfont
-	checkevent $0029
+	checkevent EVENT_HERDED_FARFETCHD
 	iftrue UnknownScript_0x6eb89
 	writetext UnknownText_0x6ef5c
 	closetext
 	loadmovesprites
 	end
-; 0x6eb89
 
-UnknownScript_0x6eb89: ; 0x6eb89
+UnknownScript_0x6eb89:
 	writetext UnknownText_0x6f019
 	closetext
 	loadmovesprites
 	end
-; 0x6eb8f
 
-BirdScript_0x6eb8f: ; 0x6eb8f
+BirdScript_0x6eb8f:
 	copybytetovar FarfetchdPosition
 	if_equal $1, UnknownScript_0x6ebba
 	if_equal $2, UnknownScript_0x6ebd9
@@ -118,7 +104,7 @@
 	if_equal $8, UnknownScript_0x6ed0e
 	if_equal $9, UnknownScript_0x6ed50
 	if_equal $a, UnknownScript_0x6ed96
-UnknownScript_0x6ebba: ; 0x6ebba
+UnknownScript_0x6ebba:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x6f06f
@@ -133,9 +119,8 @@
 	appear $2
 	loadvar FarfetchdPosition, $2
 	end
-; 0x6ebd9
 
-UnknownScript_0x6ebd9: ; 0x6ebd9
+UnknownScript_0x6ebd9:
 	scall UnknownScript_0x6eda1
 	if_equal $0, UnknownScript_0x6ebf1
 	applymovement $2, MovementData_0x6ee95
@@ -144,9 +129,8 @@
 	appear $2
 	loadvar FarfetchdPosition, $3
 	end
-; 0x6ebf1
 
-UnknownScript_0x6ebf1: ; 0x6ebf1
+UnknownScript_0x6ebf1:
 	applymovement $2, MovementData_0x6ee9e
 	moveperson $2, $f, $1d
 	disappear $2
@@ -153,9 +137,8 @@
 	appear $2
 	loadvar FarfetchdPosition, $8
 	end
-; 0x6ec02
 
-UnknownScript_0x6ec02: ; 0x6ec02
+UnknownScript_0x6ec02:
 	scall UnknownScript_0x6eda1
 	if_equal $2, UnknownScript_0x6ec1a
 	applymovement $2, MovementData_0x6eea4
@@ -164,9 +147,8 @@
 	appear $2
 	loadvar FarfetchdPosition, $4
 	end
-; 0x6ec1a
 
-UnknownScript_0x6ec1a: ; 0x6ec1a
+UnknownScript_0x6ec1a:
 	applymovement $2, MovementData_0x6eeab
 	moveperson $2, $f, $19
 	disappear $2
@@ -173,9 +155,8 @@
 	appear $2
 	loadvar FarfetchdPosition, $2
 	end
-; 0x6ec2b
 
-UnknownScript_0x6ec2b: ; 0x6ec2b
+UnknownScript_0x6ec2b:
 	scall UnknownScript_0x6eda1
 	if_equal $1, UnknownScript_0x6ec43
 	applymovement $2, MovementData_0x6eeb1
@@ -184,9 +165,8 @@
 	appear $2
 	loadvar FarfetchdPosition, $5
 	end
-; 0x6ec43
 
-UnknownScript_0x6ec43: ; 0x6ec43
+UnknownScript_0x6ec43:
 	applymovement $2, MovementData_0x6eeb8
 	moveperson $2, $14, $18
 	disappear $2
@@ -193,9 +173,8 @@
 	appear $2
 	loadvar FarfetchdPosition, $3
 	end
-; 0x6ec54
 
-UnknownScript_0x6ec54: ; 0x6ec54
+UnknownScript_0x6ec54:
 	scall UnknownScript_0x6eda1
 	if_equal $1, UnknownScript_0x6ec85
 	if_equal $2, UnknownScript_0x6ec74
@@ -206,9 +185,8 @@
 	appear $2
 	loadvar FarfetchdPosition, $6
 	end
-; 0x6ec74
 
-UnknownScript_0x6ec74: ; 0x6ec74
+UnknownScript_0x6ec74:
 	applymovement $2, MovementData_0x6eec7
 	moveperson $2, $16, $1f
 	disappear $2
@@ -215,9 +193,8 @@
 	appear $2
 	loadvar FarfetchdPosition, $7
 	end
-; 0x6ec85
 
-UnknownScript_0x6ec85: ; 0x6ec85
+UnknownScript_0x6ec85:
 	applymovement $2, MovementData_0x6eecc
 	moveperson $2, $1d, $16
 	disappear $2
@@ -224,9 +201,8 @@
 	appear $2
 	loadvar FarfetchdPosition, $4
 	end
-; 0x6ec96
 
-UnknownScript_0x6ec96: ; 0x6ec96
+UnknownScript_0x6ec96:
 	applymovement $2, MovementData_0x6eed2
 	moveperson $2, $1d, $16
 	disappear $2
@@ -233,9 +209,8 @@
 	appear $2
 	loadvar FarfetchdPosition, $4
 	end
-; 0x6eca7
 
-UnknownScript_0x6eca7: ; 0x6eca7
+UnknownScript_0x6eca7:
 	scall UnknownScript_0x6eda1
 	if_equal $3, UnknownScript_0x6ecbf
 	applymovement $2, MovementData_0x6eee6
@@ -244,9 +219,8 @@
 	appear $2
 	loadvar FarfetchdPosition, $7
 	end
-; 0x6ecbf
 
-UnknownScript_0x6ecbf: ; 0x6ecbf
+UnknownScript_0x6ecbf:
 	applymovement $2, MovementData_0x6eeef
 	moveperson $2, $1c, $1f
 	disappear $2
@@ -253,9 +227,8 @@
 	appear $2
 	loadvar FarfetchdPosition, $5
 	end
-; 0x6ecd0
 
-UnknownScript_0x6ecd0: ; 0x6ecd0
+UnknownScript_0x6ecd0:
 	scall UnknownScript_0x6eda1
 	if_equal $0, UnknownScript_0x6ecfd
 	if_equal $2, UnknownScript_0x6ecec
@@ -265,9 +238,8 @@
 	appear $2
 	loadvar FarfetchdPosition, $8
 	end
-; 0x6ecec
 
-UnknownScript_0x6ecec: ; 0x6ecec
+UnknownScript_0x6ecec:
 	applymovement $2, MovementData_0x6ef00
 	moveperson $2, $18, $23
 	disappear $2
@@ -274,9 +246,8 @@
 	appear $2
 	loadvar FarfetchdPosition, $6
 	end
-; 0x6ecfd
 
-UnknownScript_0x6ecfd: ; 0x6ecfd
+UnknownScript_0x6ecfd:
 	applymovement $2, MovementData_0x6ef09
 	moveperson $2, $1c, $1f
 	disappear $2
@@ -283,9 +254,8 @@
 	appear $2
 	loadvar FarfetchdPosition, $5
 	end
-; 0x6ed0e
 
-UnknownScript_0x6ed0e: ; 0x6ed0e
+UnknownScript_0x6ed0e:
 	scall UnknownScript_0x6eda1
 	if_equal $1, UnknownScript_0x6ed3f
 	if_equal $2, UnknownScript_0x6ed3f
@@ -296,9 +266,8 @@
 	appear $2
 	loadvar FarfetchdPosition, $9
 	end
-; 0x6ed2e
 
-UnknownScript_0x6ed2e: ; 0x6ed2e
+UnknownScript_0x6ed2e:
 	applymovement $2, MovementData_0x6ef18
 	moveperson $2, $16, $1f
 	disappear $2
@@ -305,9 +274,8 @@
 	appear $2
 	loadvar FarfetchdPosition, $7
 	end
-; 0x6ed3f
 
-UnknownScript_0x6ed3f: ; 0x6ed3f
+UnknownScript_0x6ed3f:
 	applymovement $2, MovementData_0x6ef1e
 	moveperson $2, $f, $19
 	disappear $2
@@ -314,9 +282,8 @@
 	appear $2
 	loadvar FarfetchdPosition, $2
 	end
-; 0x6ed50
 
-UnknownScript_0x6ed50: ; 0x6ed50
+UnknownScript_0x6ed50:
 	scall UnknownScript_0x6eda1
 	if_equal $0, UnknownScript_0x6ed85
 	if_equal $3, UnknownScript_0x6ed74
@@ -326,12 +293,11 @@
 	appear $2
 	loadvar FarfetchdPosition, $a
 	appear $4
-	setevent $06f7
-	setevent $0029
+	setevent EVENT_CHARCOAL_KILN_BOSS
+	setevent EVENT_HERDED_FARFETCHD
 	end
-; 0x6ed74
 
-UnknownScript_0x6ed74: ; 0x6ed74
+UnknownScript_0x6ed74:
 	applymovement $2, MovementData_0x6ef33
 	moveperson $2, $f, $1d
 	disappear $2
@@ -338,9 +304,8 @@
 	appear $2
 	loadvar FarfetchdPosition, $8
 	end
-; 0x6ed85
 
-UnknownScript_0x6ed85: ; 0x6ed85
+UnknownScript_0x6ed85:
 	applymovement $2, MovementData_0x6ef3d
 	moveperson $2, $f, $1d
 	disappear $2
@@ -347,9 +312,8 @@
 	appear $2
 	loadvar FarfetchdPosition, $8
 	end
-; 0x6ed96
 
-UnknownScript_0x6ed96: ; 0x6ed96
+UnknownScript_0x6ed96:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x6f086
@@ -357,9 +321,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x6eda1
 
-UnknownScript_0x6eda1: ; 0x6eda1
+UnknownScript_0x6eda1:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x6f086
@@ -366,11 +329,10 @@
 	cry FARFETCH_D
 	closetext
 	loadmovesprites
-	checkcode $9
+	checkcode VAR_FACING
 	end
-; 0x6edae
 
-BlackBeltScript_0x6edae: ; 0x6edae
+BlackBeltScript_0x6edae:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_HM01_CUT
@@ -377,28 +339,26 @@
 	iftrue UnknownScript_0x6edd8
 	writetext UnknownText_0x6f099
 	keeptextopen
-	verbosegiveitem HM_01, 1
+	verbosegiveitem HM_CUT, 1
 	setevent EVENT_GOT_HM01_CUT
 	writetext UnknownText_0x6f141
 	closetext
 	loadmovesprites
-	setevent $06e9
-	setevent $06f3
-	setevent $06f4
-	clearevent $06f5
-	clearevent $06f6
-	clearevent $06f7
+	setevent EVENT_ILEX_FOREST_FARFETCHD
+	setevent EVENT_ILEX_FOREST_APPRENTICE
+	setevent EVENT_ILEX_FOREST_CHARCOAL_MASTER
+	clearevent EVENT_CHARCOAL_KILN_FARFETCH_D
+	clearevent EVENT_CHARCOAL_KILN_APPRENTICE
+	clearevent EVENT_CHARCOAL_KILN_BOSS
 	end
-; 0x6edd8
 
-UnknownScript_0x6edd8: ; 0x6edd8
+UnknownScript_0x6edd8:
 	writetext UnknownText_0x6f1c0
 	closetext
 	loadmovesprites
 	end
-; 0x6edde
 
-RockerScript_0x6edde: ; 0x6edde
+RockerScript_0x6edde:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_TM02_HEADBUTT
@@ -405,38 +365,20 @@
 	iftrue UnknownScript_0x6edf3
 	writetext UnknownText_0x6f21b
 	keeptextopen
-	verbosegiveitem TM_02, 1
+	verbosegiveitem TM_HEADBUTT, 1
 	iffalse UnknownScript_0x6edf7
 	setevent EVENT_GOT_TM02_HEADBUTT
-UnknownScript_0x6edf3: ; 0x6edf3
+UnknownScript_0x6edf3:
 	writetext UnknownText_0x6f26d
 	closetext
-UnknownScript_0x6edf7: ; 0x6edf7
+UnknownScript_0x6edf7:
 	loadmovesprites
 	end
-; 0x6edf9
 
-TrainerBug_catcherWayne: ; 0x6edf9
-	; bit/flag number
-	dw $5c0
+TrainerBug_catcherWayne:
+	trainer EVENT_BEAT_BUG_CATCHER_WAYNE, BUG_CATCHER, WAYNE, Bug_catcherWayneSeenText, Bug_catcherWayneBeatenText, $0000, Bug_catcherWayneScript
 
-	; trainer group && trainer id
-	db BUG_CATCHER, WAYNE
-
-	; text when seen
-	dw Bug_catcherWayneSeenText
-
-	; text when trainer beaten
-	dw Bug_catcherWayneBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Bug_catcherWayneScript
-; 0x6ee05
-
-Bug_catcherWayneScript: ; 0x6ee05
+Bug_catcherWayneScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x6f571
@@ -443,67 +385,52 @@
 	closetext
 	loadmovesprites
 	end
-; 0x6ee0d
 
-LassScript_0x6ee0d: ; 0x6ee0d
+LassScript_0x6ee0d:
 	jumptextfaceplayer UnknownText_0x6f2af
-; 0x6ee10
 
-ItemFragment_0x6ee10: ; 0x6ee10
+ItemFragment_0x6ee10:
 	db REVIVE, 1
-; 0x6ee12
 
-ItemFragment_0x6ee12: ; 0x6ee12
+ItemFragment_0x6ee12:
 	db X_ATTACK, 1
-; 0x6ee14
 
-ItemFragment_0x6ee14: ; 0x6ee14
+ItemFragment_0x6ee14:
 	db ANTIDOTE, 1
-; 0x6ee16
 
-ItemFragment_0x6ee16: ; 0x6ee16
+ItemFragment_0x6ee16:
 	db ETHER, 1
-; 0x6ee18
 
-MapIlexForestSignpostItem1: ; 0x6ee18
-	dw $0088
-	db ETHER
+MapIlexForestSignpostItem1:
+	dwb EVENT_ILEX_FOREST_HIDDEN_ETHER, ETHER
 	
-; 0x6ee1b
 
-MapIlexForestSignpostItem2: ; 0x6ee1b
-	dw $0089
-	db SUPER_POTION
+MapIlexForestSignpostItem2:
+	dwb EVENT_ILEX_FOREST_HIDDEN_SUPER_POTION, SUPER_POTION
 	
-; 0x6ee1e
 
-MapIlexForestSignpostItem3: ; 0x6ee1e
-	dw $008a
-	db FULL_HEAL
-; 0x6ee21
+MapIlexForestSignpostItem3:
+	dwb EVENT_ILEX_FOREST_HIDDEN_FULL_HEAL, FULL_HEAL
 
 IlexForestBoulder:
 ; unused
 	jumpstd strengthboulder
 
-MapIlexForestSignpost0Script: ; 0x6ee24
+MapIlexForestSignpost0Script:
 	jumptext UnknownText_0x6f2de
-; 0x6ee27
 
-MapIlexForestSignpost4Script: ; 0x6ee27
-	checkevent $00c0
+MapIlexForestSignpost4Script:
+	checkevent EVENT_FOREST_IS_RESTLESS
 	iftrue UnknownScript_0x6ee30
 	jump UnknownScript_0x6ee35
-; 0x6ee30
 
-UnknownScript_0x6ee30: ; 0x6ee30
+UnknownScript_0x6ee30:
 	checkitem GS_BALL
 	iftrue UnknownScript_0x6ee38
-UnknownScript_0x6ee35: ; 0x6ee35
+UnknownScript_0x6ee35:
 	jumptext UnknownText_0x6f358
-; 0x6ee38
 
-UnknownScript_0x6ee38: ; 0x6ee38
+UnknownScript_0x6ee38:
 	loadfont
 	writetext UnknownText_0x6f394
 	yesorno
@@ -510,25 +437,24 @@
 	iftrue UnknownScript_0x6ee42
 	loadmovesprites
 	end
-; 0x6ee42
 
-UnknownScript_0x6ee42: ; 0x6ee42
+UnknownScript_0x6ee42:
 	takeitem GS_BALL, 1
-	clearevent $00c0
-	setevent $07a4
+	clearevent EVENT_FOREST_IS_RESTLESS
+	setevent EVENT_AZALEA_TOWN_KURT
 	disappear $8
-	clearevent $06eb
+	clearevent EVENT_ROUTE_34_ILEX_FOREST_GATE_LASS
 	writetext UnknownText_0x6f43b
 	closetext
 	loadmovesprites
 	pause 20
-	showemote $0, $0, 20
+	showemote EMOTE_SHOCK, $0, 20
 	special Functionc48f
 	applymovement $0, MovementData_0x6ef58
 	pause 30
 	spriteface $0, DOWN
 	pause 20
-	clearflag $0064
+	clearflag ENGINE_HAVE_EXAMINED_GS_BALL
 	special Function4989a
 	loadpokedata CELEBI, 30
 	startbattle
@@ -544,11 +470,10 @@
 	loadmovesprites
 	applymovement $7, MovementData_0x6ef53
 	disappear $7
-UnknownScript_0x6ee8e: ; 0x6ee8e
+UnknownScript_0x6ee8e:
 	end
-; 0x6ee8f
 
-MovementData_0x6ee8f: ; 0x6ee8f
+MovementData_0x6ee8f:
 	big_step_up
 	big_step_up
 	big_step_up
@@ -555,9 +480,8 @@
 	big_step_up
 	big_step_up
 	step_end
-; 0x6ee95
 
-MovementData_0x6ee95: ; 0x6ee95
+MovementData_0x6ee95:
 	big_step_up
 	big_step_up
 	big_step_right
@@ -567,9 +491,8 @@
 	big_step_right
 	big_step_down
 	step_end
-; 0x6ee9e
 
-MovementData_0x6ee9e: ; 0x6ee9e
+MovementData_0x6ee9e:
 	big_step_down
 	big_step_down
 	big_step_down
@@ -576,9 +499,8 @@
 	big_step_down
 	big_step_down
 	step_end
-; 0x6eea4
 
-MovementData_0x6eea4: ; 0x6eea4
+MovementData_0x6eea4:
 	big_step_right
 	big_step_right
 	big_step_right
@@ -586,9 +508,8 @@
 	big_step_right
 	big_step_right
 	step_end
-; 0x6eeab
 
-MovementData_0x6eeab: ; 0x6eeab
+MovementData_0x6eeab:
 	big_step_up
 	big_step_left
 	big_step_left
@@ -595,9 +516,8 @@
 	big_step_left
 	big_step_left
 	step_end
-; 0x6eeb1
 
-MovementData_0x6eeb1: ; 0x6eeb1
+MovementData_0x6eeb1:
 	big_step_down
 	big_step_down
 	big_step_down
@@ -605,17 +525,15 @@
 	big_step_down
 	big_step_down
 	step_end
-; 0x6eeb8
 
-MovementData_0x6eeb8: ; 0x6eeb8
+MovementData_0x6eeb8:
 	big_step_left
 	jump_step_left
 	big_step_left
 	big_step_left
 	step_end
-; 0x6eebd
 
-MovementData_0x6eebd: ; 0x6eebd
+MovementData_0x6eebd:
 	big_step_down
 	big_step_down
 	big_step_down
@@ -626,17 +544,15 @@
 	big_step_left
 	big_step_left
 	step_end
-; 0x6eec7
 
-MovementData_0x6eec7: ; 0x6eec7
+MovementData_0x6eec7:
 	big_step_left
 	big_step_left
 	big_step_left
 	big_step_left
 	step_end
-; 0x6eecc
 
-MovementData_0x6eecc: ; 0x6eecc
+MovementData_0x6eecc:
 	big_step_up
 	big_step_up
 	big_step_up
@@ -643,9 +559,8 @@
 	big_step_right
 	big_step_up
 	step_end
-; 0x6eed2
 
-MovementData_0x6eed2: ; 0x6eed2
+MovementData_0x6eed2:
 	big_step_right
 	turn_head_up
 	db $3e ; movement
@@ -666,9 +581,8 @@
 	big_step_up
 	big_step_up
 	step_end
-; 0x6eee6
 
-MovementData_0x6eee6: ; 0x6eee6
+MovementData_0x6eee6:
 	big_step_left
 	big_step_left
 	big_step_left
@@ -678,9 +592,8 @@
 	big_step_up
 	big_step_up
 	step_end
-; 0x6eeef
 
-MovementData_0x6eeef: ; 0x6eeef
+MovementData_0x6eeef:
 	big_step_right
 	big_step_right
 	big_step_right
@@ -690,9 +603,8 @@
 	big_step_up
 	big_step_up
 	step_end
-; 0x6eef8
 
-MovementData_0x6eef8: ; 0x6eef8
+MovementData_0x6eef8:
 	big_step_up
 	big_step_up
 	big_step_left
@@ -701,9 +613,8 @@
 	big_step_left
 	big_step_left
 	step_end
-; 0x6ef00
 
-MovementData_0x6ef00: ; 0x6ef00
+MovementData_0x6ef00:
 	big_step_down
 	big_step_down
 	big_step_left
@@ -713,9 +624,8 @@
 	big_step_right
 	big_step_right
 	step_end
-; 0x6ef09
 
-MovementData_0x6ef09: ; 0x6ef09
+MovementData_0x6ef09:
 	big_step_right
 	big_step_right
 	big_step_right
@@ -723,9 +633,8 @@
 	big_step_right
 	big_step_right
 	step_end
-; 0x6ef10
 
-MovementData_0x6ef10: ; 0x6ef10
+MovementData_0x6ef10:
 	big_step_down
 	big_step_left
 	big_step_down
@@ -734,9 +643,8 @@
 	big_step_down
 	big_step_down
 	step_end
-; 0x6ef18
 
-MovementData_0x6ef18: ; 0x6ef18
+MovementData_0x6ef18:
 	big_step_right
 	big_step_right
 	big_step_right
@@ -743,17 +651,15 @@
 	big_step_right
 	big_step_right
 	step_end
-; 0x6ef1e
 
-MovementData_0x6ef1e: ; 0x6ef1e
+MovementData_0x6ef1e:
 	big_step_up
 	big_step_up
 	big_step_up
 	big_step_up
 	step_end
-; 0x6ef23
 
-MovementData_0x6ef23: ; 0x6ef23
+MovementData_0x6ef23:
 	big_step_left
 	big_step_left
 	fix_facing
@@ -770,9 +676,8 @@
 	big_step_up
 	big_step_up
 	step_end
-; 0x6ef33
 
-MovementData_0x6ef33: ; 0x6ef33
+MovementData_0x6ef33:
 	big_step_right
 	big_step_right
 	big_step_right
@@ -783,9 +688,8 @@
 	big_step_up
 	big_step_up
 	step_end
-; 0x6ef3d
 
-MovementData_0x6ef3d: ; 0x6ef3d
+MovementData_0x6ef3d:
 	big_step_left
 	big_step_left
 	fix_facing
@@ -803,32 +707,28 @@
 	big_step_up
 	big_step_up
 	step_end
-; 0x6ef4e
 
-MovementData_0x6ef4e: ; 0x6ef4e
+MovementData_0x6ef4e:
 	step_up
 	step_up
 	step_up
 	step_up
 	step_end
-; 0x6ef53
 
-MovementData_0x6ef53: ; 0x6ef53
+MovementData_0x6ef53:
 	step_down
 	step_down
 	step_down
 	step_down
 	step_end
-; 0x6ef58
 
-MovementData_0x6ef58: ; 0x6ef58
+MovementData_0x6ef58:
 	fix_facing
 	slow_step_down
 	remove_fixed_facing
 	step_end
-; 0x6ef5c
 
-UnknownText_0x6ef5c: ; 0x6ef5c
+UnknownText_0x6ef5c:
 	text "Oh, man… My boss"
 	line "is going to be"
 	cont "steaming…"
@@ -846,9 +746,8 @@
 	para "It's too big, dark"
 	line "and scary for me…"
 	done
-; 0x6f019
 
-UnknownText_0x6f019: ; 0x6f019
+UnknownText_0x6f019:
 	text "Wow! Thanks a"
 	line "whole bunch!"
 
@@ -857,20 +756,17 @@
 	cont "cause I don't have"
 	cont "a BADGE."
 	done
-; 0x6f06f
 
-UnknownText_0x6f06f: ; 0x6f06f
+UnknownText_0x6f06f:
 	text "It's the missing"
 	line "#MON!"
 	done
-; 0x6f086
 
-UnknownText_0x6f086: ; 0x6f086
+UnknownText_0x6f086:
 	text "FARFETCH'D: Kwaa!"
 	done
-; 0x6f099
 
-UnknownText_0x6f099: ; 0x6f099
+UnknownText_0x6f099:
 	text "Ah! My FARFETCH'D!"
 
 	para "You found it for"
@@ -890,9 +786,8 @@
 	para "I know! Here, take"
 	line "this."
 	done
-; 0x6f141
 
-UnknownText_0x6f141: ; 0x6f141
+UnknownText_0x6f141:
 	text "That's the CUT HM."
 	line "Teach that to a"
 
@@ -905,9 +800,8 @@
 	para "GYM BADGE from"
 	line "AZALEA to use it."
 	done
-; 0x6f1c0
 
-UnknownText_0x6f1c0: ; 0x6f1c0
+UnknownText_0x6f1c0:
 	text "Do you want to"
 	line "apprentice as a"
 
@@ -917,9 +811,8 @@
 	para "You'll be first-"
 	line "rate in ten years!"
 	done
-; 0x6f21b
 
-UnknownText_0x6f21b: ; 0x6f21b
+UnknownText_0x6f21b:
 	text "What am I doing?"
 
 	para "I'm shaking trees"
@@ -928,24 +821,21 @@
 	para "It's fun. Here,"
 	line "you try it too!"
 	done
-; 0x6f26d
 
-UnknownText_0x6f26d: ; 0x6f26d
+UnknownText_0x6f26d:
 	text "Rattle trees with"
 	line "HEADBUTT. Some-"
 	cont "times, sleeping"
 	cont "#MON fall out."
 	done
-; 0x6f2af
 
-UnknownText_0x6f2af: ; 0x6f2af
+UnknownText_0x6f2af:
 	text "Did something"
 	line "happen to the"
 	cont "forest's guardian?"
 	done
-; 0x6f2de
 
-UnknownText_0x6f2de: ; 0x6f2de
+UnknownText_0x6f2de:
 	text "ILEX FOREST is"
 	line "so overgrown with"
 
@@ -956,9 +846,8 @@
 	line "for items that may"
 	cont "have been dropped."
 	done
-; 0x6f358
 
-UnknownText_0x6f358: ; 0x6f358
+UnknownText_0x6f358:
 	text "ILEX FOREST"
 	line "SHRINE…"
 
@@ -966,9 +855,8 @@
 	line "the forest's"
 	cont "protector…"
 	done
-; 0x6f394
 
-UnknownText_0x6f394: ; 0x6f394
+UnknownText_0x6f394:
 	text "ILEX FOREST"
 	line "SHRINE…"
 
@@ -987,15 +875,13 @@
 	para "Want to put the GS"
 	line "BALL here?"
 	done
-; 0x6f43b
 
-UnknownText_0x6f43b: ; 0x6f43b
+UnknownText_0x6f43b:
 	text "<PLAYER> put in the"
 	line "GS BALL."
 	done
-; 0x6f452
 
-UnknownText_0x6f452: ; 0x6f452
+UnknownText_0x6f452:
 	text "Whew, wasn't that"
 	line "something!"
 
@@ -1014,9 +900,8 @@
 
 	para "I'm going!"
 	done
-; 0x6f515
 
-Bug_catcherWayneSeenText: ; 0x6f515
+Bug_catcherWayneSeenText:
 	text "Don't sneak up on"
 	line "me like that!"
 
@@ -1023,15 +908,13 @@
 	para "You frightened a"
 	line "#MON away!"
 	done
-; 0x6f551
 
-Bug_catcherWayneBeatenText: ; 0x6f551
+Bug_catcherWayneBeatenText:
 	text "I hadn't seen that"
 	line "#MON before…"
 	done
-; 0x6f571
 
-UnknownText_0x6f571: ; 0x6f571
+UnknownText_0x6f571:
 	text "A #MON I've"
 	line "never seen before"
 
@@ -1043,40 +926,38 @@
 	line "HEADBUTT in other"
 	cont "places too."
 	done
-; 0x6f5e7
 
-IlexForest_MapEventHeader: ; 0x6f5e7
+IlexForest_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 5
-	signpost 17, 3, $0, MapIlexForestSignpost0Script
-	signpost 7, 11, $7, MapIlexForestSignpostItem1
-	signpost 14, 22, $7, MapIlexForestSignpostItem2
-	signpost 17, 1, $7, MapIlexForestSignpostItem3
-	signpost 22, 8, $1, MapIlexForestSignpost4Script
+	signpost 17, 3, SIGNPOST_READ, MapIlexForestSignpost0Script
+	signpost 7, 11, SIGNPOST_ITEM, MapIlexForestSignpostItem1
+	signpost 14, 22, SIGNPOST_ITEM, MapIlexForestSignpostItem2
+	signpost 17, 1, SIGNPOST_ITEM, MapIlexForestSignpostItem3
+	signpost 22, 8, SIGNPOST_UP, MapIlexForestSignpost4Script
 
-	; people-events
+.PersonEvents:
 	db 11
-	person_event SPRITE_BIRD, 35, 18, $3, $0, 255, 255, $b0, 0, BirdScript_0x6eb8f, $06e9
-	person_event SPRITE_YOUNGSTER, 32, 11, $6, $0, 255, 255, $a0, 0, YoungsterScript_0x6eb7b, $06f3
-	person_event SPRITE_BLACK_BELT, 32, 9, $9, $0, 255, 255, $0, 0, BlackBeltScript_0x6edae, $06f4
-	person_event SPRITE_ROCKER, 18, 19, $9, $0, 255, 255, $0, 0, RockerScript_0x6edde, $ffff
-	person_event SPRITE_POKE_BALL, 36, 24, $1, $0, 255, 255, $1, 0, ItemFragment_0x6ee10, $0671
-	person_event SPRITE_KURT, 33, 12, $7, $0, 255, 255, $0, 0, ObjectEvent, $07a5
-	person_event SPRITE_LASS, 28, 7, $9, $0, 255, 255, $a0, 0, LassScript_0x6ee0d, $06ed
-	person_event SPRITE_YOUNGSTER, 5, 16, $7, $0, 255, 255, $a2, 0, TrainerBug_catcherWayne, $ffff
-	person_event SPRITE_POKE_BALL, 21, 13, $1, $0, 255, 255, $1, 0, ItemFragment_0x6ee12, $07b9
-	person_event SPRITE_POKE_BALL, 11, 21, $1, $0, 255, 255, $1, 0, ItemFragment_0x6ee14, $07ba
-	person_event SPRITE_POKE_BALL, 5, 31, $1, $0, 255, 255, $1, 0, ItemFragment_0x6ee16, $07bb
-; 0x6f6a4
+	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
--- a/maps/IlexForestAzaleaGate.asm
+++ b/maps/IlexForestAzaleaGate.asm
@@ -1,27 +1,23 @@
-IlexForestAzaleaGate_MapScriptHeader: ; 0x62c78
-	; trigger count
+IlexForestAzaleaGate_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x62c7a
 
-OfficerScript_0x62c7a: ; 0x62c7a
+OfficerScript_0x62c7a:
 	jumptextfaceplayer UnknownText_0x62c80
-; 0x62c7d
 
-GrannyScript_0x62c7d: ; 0x62c7d
+GrannyScript_0x62c7d:
 	jumptextfaceplayer UnknownText_0x62cb0
-; 0x62c80
 
-UnknownText_0x62c80: ; 0x62c80
+UnknownText_0x62c80:
 	text "ILEX FOREST is"
 	line "big. Be careful!"
 	cont "Don't get lost."
 	done
-; 0x62cb0
 
-UnknownText_0x62cb0: ; 0x62cb0
+UnknownText_0x62cb0:
 	text "The FOREST is"
 	line "watched over by"
 	cont "its protector."
@@ -29,13 +25,12 @@
 	para "Stay out of"
 	line "mischief!"
 	done
-; 0x62cf4
 
-IlexForestAzaleaGate_MapEventHeader: ; 0x62cf4
+IlexForestAzaleaGate_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -42,14 +37,13 @@
 	warp_def $4, $9, 7, GROUP_AZALEA_TOWN, MAP_AZALEA_TOWN
 	warp_def $5, $9, 8, GROUP_AZALEA_TOWN, MAP_AZALEA_TOWN
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_OFFICER, 6, 9, $6, $0, 255, 255, $80, 0, OfficerScript_0x62c7a, $ffff
-	person_event SPRITE_GRANNY, 7, 5, $6, $0, 255, 255, $b0, 0, GrannyScript_0x62c7d, $ffff
-; 0x62d28
+	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
--- a/maps/IndigoPlateauPokeCenter1F.asm
+++ b/maps/IndigoPlateauPokeCenter1F.asm
@@ -1,23 +1,21 @@
-IndigoPlateauPokeCenter1F_MapScriptHeader: ; 0x180000
-	; trigger count
+IndigoPlateauPokeCenter1F_MapScriptHeader:
+.MapTriggers:
 	db 1
 
 	; triggers
 	dw UnknownScript_0x180009, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 5, UnknownScript_0x18000a
-; 0x180009
 
-UnknownScript_0x180009: ; 0x180009
+UnknownScript_0x180009:
 	end
-; 0x18000a
 
-UnknownScript_0x18000a: ; 0x18000a
+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
@@ -24,31 +22,30 @@
 	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
-	clearevent $0309
-	clearevent EVENT_WILLS_ROOM_EXIT_OPEN
 	clearevent EVENT_WILLS_ROOM_ENTRANCE_CLOSED
-	clearevent EVENT_KOGAS_ROOM_EXIT_OPEN
+	clearevent EVENT_WILLS_ROOM_EXIT_OPEN
 	clearevent EVENT_KOGAS_ROOM_ENTRANCE_CLOSED
+	clearevent EVENT_KOGAS_ROOM_EXIT_OPEN
+	clearevent EVENT_BRUNOS_ROOM_ENTRANCE_CLOSED
 	clearevent EVENT_BRUNOS_ROOM_EXIT_OPEN
 	clearevent EVENT_KARENS_ROOM_ENTRANCE_CLOSED
 	clearevent EVENT_KARENS_ROOM_EXIT_OPEN
 	clearevent EVENT_LANCES_ROOM_ENTRANCE_CLOSED
-	clearevent $0312
-	clearevent $05b8
-	clearevent $05b9
-	clearevent $05ba
+	clearevent EVENT_LANCES_ROOM_EXIT_OPEN
+	clearevent EVENT_BEAT_ELITE_4_WILL
+	clearevent EVENT_BEAT_ELITE_4_KOGA
+	clearevent EVENT_BEAT_ELITE_4_BRUNO
 	clearevent EVENT_BEAT_ELITE_4_KAREN
 	clearevent EVENT_BEAT_CHAMPION_LANCE
-	setevent $075f
+	setevent EVENT_LANCES_ROOM_OAK_AND_MARY
 	return
-; 0x180053
 
-UnknownScript_0x180053: ; 0x180053
+UnknownScript_0x180053:
 	checkevent EVENT_BEAT_RIVAL_IN_MT_MOON
 	iffalse UnknownScript_0x18012b
-	checkflag $005d
+	checkflag ENGINE_INDIGO_PLATEAU_RIVAL_FIGHT
 	iftrue UnknownScript_0x18012b
-	checkcode $b
+	checkcode VAR_WEEKDAY
 	if_equal SUNDAY, UnknownScript_0x18012b
 	if_equal TUESDAY, UnknownScript_0x18012b
 	if_equal THURSDAY, UnknownScript_0x18012b
@@ -57,7 +54,7 @@
 	moveperson $5, $11, $9
 	appear $5
 	spriteface $0, DOWN
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	special Functionc48f
 	pause 15
 	applymovement $5, MovementData_0x180164
@@ -64,14 +61,13 @@
 	playmusic MUSIC_RIVAL_ENCOUNTER
 	spriteface $0, RIGHT
 	jump UnknownScript_0x1800ce
-; 0x180094
 
-UnknownScript_0x180094: ; 0x180094
+UnknownScript_0x180094:
 	checkevent EVENT_BEAT_RIVAL_IN_MT_MOON
 	iffalse UnknownScript_0x18012b
-	checkflag $005d
+	checkflag ENGINE_INDIGO_PLATEAU_RIVAL_FIGHT
 	iftrue UnknownScript_0x18012b
-	checkcode $b
+	checkcode VAR_WEEKDAY
 	if_equal SUNDAY, UnknownScript_0x18012b
 	if_equal TUESDAY, UnknownScript_0x18012b
 	if_equal THURSDAY, UnknownScript_0x18012b
@@ -79,18 +75,18 @@
 	if_equal SATURDAY, UnknownScript_0x18012b
 	appear $5
 	spriteface $0, DOWN
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	special Functionc48f
 	pause 15
 	applymovement $5, MovementData_0x18016b
 	playmusic MUSIC_RIVAL_ENCOUNTER
 	spriteface $0, LEFT
-UnknownScript_0x1800ce: ; 0x1800ce
+UnknownScript_0x1800ce:
 	loadfont
 	writetext UnknownText_0x1801f5
 	closetext
 	loadmovesprites
-	setevent $077b
+	setevent EVENT_INDIGO_PLATEAU_POKECENTER_RIVAL
 	checkevent EVENT_GOT_TOTODILE_FROM_ELM
 	iftrue UnknownScript_0x1800f3
 	checkevent EVENT_GOT_CHIKORITA_FROM_ELM
@@ -102,9 +98,8 @@
 	reloadmapmusic
 	returnafterbattle
 	jump UnknownScript_0x180113
-; 0x1800f3
 
-UnknownScript_0x1800f3: ; 0x1800f3
+UnknownScript_0x1800f3:
 	winlosstext UnknownText_0x180295, UnknownText_0x1802fd
 	setlasttalked $5
 	loadtrainer RIVAL2, 4
@@ -112,9 +107,8 @@
 	reloadmapmusic
 	returnafterbattle
 	jump UnknownScript_0x180113
-; 0x180103
 
-UnknownScript_0x180103: ; 0x180103
+UnknownScript_0x180103:
 	winlosstext UnknownText_0x180295, UnknownText_0x1802fd
 	setlasttalked $5
 	loadtrainer RIVAL2, 5
@@ -122,9 +116,8 @@
 	reloadmapmusic
 	returnafterbattle
 	jump UnknownScript_0x180113
-; 0x180113
 
-UnknownScript_0x180113: ; 0x180113
+UnknownScript_0x180113:
 	playmusic MUSIC_RIVAL_AFTER
 	loadfont
 	writetext UnknownText_0x1802a4
@@ -135,25 +128,21 @@
 	disappear $5
 	dotrigger $0
 	playmapmusic
-	setflag $005d
-UnknownScript_0x18012b: ; 0x18012b
+	setflag ENGINE_INDIGO_PLATEAU_RIVAL_FIGHT
+UnknownScript_0x18012b:
 	end
-; 0x18012c
 
-NurseScript_0x18012c: ; 0x18012c
+NurseScript_0x18012c:
 	jumpstd pokecenternurse
-; 0x18012f
 
-ClerkScript_0x18012f: ; 0x18012f
+ClerkScript_0x18012f:
 	loadfont
 	pokemart $0, $0020
 	loadmovesprites
 	end
-; 0x180136
 
-CooltrainerMScript_0x180136: ; 0x180136
+CooltrainerMScript_0x180136:
 	jumptextfaceplayer UnknownText_0x180178
-; 0x180139
 
 TeleportGuyScript:
 	faceplayer
@@ -165,7 +154,7 @@
 	closetext
 	loadmovesprites
 	playsound SFX_WARP_TO
-	special Function8c084
+	special FadeBlackBGMap
 	waitbutton
 	warp GROUP_NEW_BARK_TOWN, MAP_NEW_BARK_TOWN, $d, $6
 	end
@@ -184,7 +173,7 @@
 	loadmovesprites
 	end
 
-MovementData_0x180164: ; 0x180164
+MovementData_0x180164:
 	step_up
 	step_up
 	step_up
@@ -192,9 +181,8 @@
 	step_up
 	turn_head_left
 	step_end
-; 0x18016b
 
-MovementData_0x18016b: ; 0x18016b
+MovementData_0x18016b:
 	step_up
 	step_up
 	step_up
@@ -202,9 +190,8 @@
 	step_up
 	turn_head_right
 	step_end
-; 0x180172
 
-MovementData_0x180172: ; 0x180172
+MovementData_0x180172:
 	step_down
 	step_down
 	step_down
@@ -211,9 +198,8 @@
 	step_down
 	step_down
 	step_end
-; 0x180178
 
-UnknownText_0x180178: ; 0x180178
+UnknownText_0x180178:
 	text "At the #MON"
 	line "LEAGUE, you'll get"
 
@@ -226,9 +212,8 @@
 	para "lose, you have to"
 	line "start all over!"
 	done
-; 0x1801f5
 
-UnknownText_0x1801f5: ; 0x1801f5
+UnknownText_0x1801f5:
 	text "Hold it."
 
 	para "You're going to"
@@ -249,16 +234,14 @@
 	para "<PLAYER>!"
 	line "I challenge you!"
 	done
-; 0x180295
 
-UnknownText_0x180295: ; 0x180295
+UnknownText_0x180295:
 	text "…"
 
 	para "OK--I lost…"
 	done
-; 0x1802a4
 
-UnknownText_0x1802a4: ; 0x1802a4
+UnknownText_0x1802a4:
 	text "…Darn… I still"
 	line "can't win…"
 
@@ -269,9 +252,8 @@
 	para "Humph! Try not to"
 	line "lose!"
 	done
-; 0x1802fd
 
-UnknownText_0x1802fd: ; 0x1802fd
+UnknownText_0x1802fd:
 	text "…"
 
 	para "Whew…"
@@ -280,7 +262,6 @@
 	para "I'm going to be"
 	line "the CHAMPION!"
 	done
-; 0x180335
 
 TeleportGuyText1:
 	text "Ah! You're chal-"
@@ -312,17 +293,16 @@
 	text "OK, OK. The best"
 	line "of luck to you!"
 	done
-; 0x180433
 
 AbraText:
 	text "ABRA: Aabra…"
 	done
 
-IndigoPlateauPokeCenter1F_MapEventHeader: ; 0x180441
+IndigoPlateauPokeCenter1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -329,20 +309,19 @@
 	warp_def $d, $0, 1, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
 	warp_def $3, $e, 1, GROUP_WILLS_ROOM, MAP_WILLS_ROOM
 
-	; xy triggers
+.XYTriggers:
 	db 2
 	xy_trigger 0, $4, $10, $0, UnknownScript_0x180053, $0, $0
 	xy_trigger 0, $4, $11, $0, UnknownScript_0x180094, $0, $0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 6
-	person_event SPRITE_NURSE, 11, 7, $6, $0, 255, 255, $0, 0, NurseScript_0x18012c, $ffff
-	person_event SPRITE_CLERK, 11, 15, $6, $0, 255, 255, $0, 0, ClerkScript_0x18012f, $ffff
-	person_event SPRITE_COOLTRAINER_M, 15, 15, $2, $22, 255, 255, $0, 0, CooltrainerMScript_0x180136, $ffff
-	person_event SPRITE_SILVER, 13, 20, $7, $0, 255, 255, $0, 0, ObjectEvent, $077b
-	person_event SPRITE_GRAMPS, 13, 5, $6, $0, 255, 255, $90, 0, TeleportGuyScript, EVENT_TELEPORT_GUY
-	person_event SPRITE_JYNX, 13, 4, $16, $0, 255, 255, $b0, 0, AbraScript, EVENT_TELEPORT_GUY
-; 0x1804b9
+	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
--- a/maps/KarensRoom.asm
+++ b/maps/KarensRoom.asm
@@ -1,5 +1,5 @@
-KarensRoom_MapScriptHeader: ; 0x180baf
-	; trigger count
+KarensRoom_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,36 +6,32 @@
 	dw UnknownScript_0x180bbc, $0000
 	dw UnknownScript_0x180bc0, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 1, UnknownScript_0x180bc1
-; 0x180bbc
 
-UnknownScript_0x180bbc: ; 0x180bbc
+UnknownScript_0x180bbc:
 	priorityjump UnknownScript_0x180bd6
 	end
-; 0x180bc0
 
-UnknownScript_0x180bc0: ; 0x180bc0
+UnknownScript_0x180bc0:
 	end
-; 0x180bc1
 
-UnknownScript_0x180bc1: ; 0x180bc1
+UnknownScript_0x180bc1:
 	checkevent EVENT_KARENS_ROOM_ENTRANCE_CLOSED
 	iffalse UnknownScript_0x180bcb
 	changeblock $4, $e, $2a
-UnknownScript_0x180bcb: ; 0x180bcb
+UnknownScript_0x180bcb:
 	checkevent EVENT_KARENS_ROOM_EXIT_OPEN
 	iffalse UnknownScript_0x180bd5
 	changeblock $4, $2, $16
-UnknownScript_0x180bd5: ; 0x180bd5
+UnknownScript_0x180bd5:
 	return
-; 0x180bd6
 
-UnknownScript_0x180bd6: ; 0x180bd6
+UnknownScript_0x180bd6:
 	applymovement $0, MovementData_0x180c22
 	refreshscreen $86
 	playsound SFX_STRENGTH
@@ -47,9 +43,8 @@
 	setevent EVENT_KARENS_ROOM_ENTRANCE_CLOSED
 	waitbutton
 	end
-; 0x180bee
 
-KarenScript_0x180bee: ; 0x180bee
+KarenScript_0x180bee:
 	faceplayer
 	loadfont
 	checkevent EVENT_BEAT_ELITE_4_KAREN
@@ -73,24 +68,21 @@
 	setevent EVENT_KARENS_ROOM_EXIT_OPEN
 	waitbutton
 	end
-; 0x180c1c
 
-UnknownScript_0x180c1c: ; 0x180c1c
+UnknownScript_0x180c1c:
 	writetext UnknownText_0x180d29
 	closetext
 	loadmovesprites
 	end
-; 0x180c22
 
-MovementData_0x180c22: ; 0x180c22
+MovementData_0x180c22:
 	step_up
 	step_up
 	step_up
 	step_up
 	step_end
-; 0x180c27
 
-UnknownText_0x180c27: ; 0x180c27
+UnknownText_0x180c27:
 	text "I am KAREN of the"
 	line "ELITE FOUR."
 
@@ -112,16 +104,14 @@
 
 	para "Let's go."
 	done
-; 0x180cf8
 
-UnknownText_0x180cf8: ; 0x180cf8
+UnknownText_0x180cf8:
 	text "Well, aren't you"
 	line "good. I like that"
 	cont "in a trainer."
 	done
-; 0x180d29
 
-UnknownText_0x180d29: ; 0x180d29
+UnknownText_0x180d29:
 	text "Strong #MON."
 
 	para "Weak #MON."
@@ -143,13 +133,12 @@
 	para "Go on--the CHAM-"
 	line "PION is waiting."
 	done
-; 0x180e05
 
-KarensRoom_MapEventHeader: ; 0x180e05
+KarensRoom_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -156,13 +145,12 @@
 	warp_def $2, $4, 1, GROUP_LANCES_ROOM, MAP_LANCES_ROOM
 	warp_def $2, $5, 2, GROUP_LANCES_ROOM, MAP_LANCES_ROOM
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_KAREN, 11, 9, $6, $0, 255, 255, $80, 0, KarenScript_0x180bee, $ffff
-; 0x180e2c
+	person_event SPRITE_KAREN, 11, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, KarenScript_0x180bee, -1
--- a/maps/KogasRoom.asm
+++ b/maps/KogasRoom.asm
@@ -1,5 +1,5 @@
-KogasRoom_MapScriptHeader: ; 0x18071b
-	; trigger count
+KogasRoom_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,36 +6,32 @@
 	dw UnknownScript_0x180728, $0000
 	dw UnknownScript_0x18072c, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 1, UnknownScript_0x18072d
-; 0x180728
 
-UnknownScript_0x180728: ; 0x180728
+UnknownScript_0x180728:
 	priorityjump UnknownScript_0x180742
 	end
-; 0x18072c
 
-UnknownScript_0x18072c: ; 0x18072c
+UnknownScript_0x18072c:
 	end
-; 0x18072d
 
-UnknownScript_0x18072d: ; 0x18072d
-	checkevent EVENT_WILLS_ROOM_ENTRANCE_CLOSED
+UnknownScript_0x18072d:
+	checkevent EVENT_KOGAS_ROOM_ENTRANCE_CLOSED
 	iffalse UnknownScript_0x180737
 	changeblock $4, $e, $2a
-UnknownScript_0x180737: ; 0x180737
+UnknownScript_0x180737:
 	checkevent EVENT_KOGAS_ROOM_EXIT_OPEN
 	iffalse UnknownScript_0x180741
 	changeblock $4, $2, $16
-UnknownScript_0x180741: ; 0x180741
+UnknownScript_0x180741:
 	return
-; 0x180742
 
-UnknownScript_0x180742: ; 0x180742
+UnknownScript_0x180742:
 	applymovement $0, MovementData_0x18078e
 	refreshscreen $86
 	playsound SFX_STRENGTH
@@ -44,15 +40,14 @@
 	reloadmappart
 	loadmovesprites
 	dotrigger $1
-	setevent EVENT_WILLS_ROOM_ENTRANCE_CLOSED
+	setevent EVENT_KOGAS_ROOM_ENTRANCE_CLOSED
 	waitbutton
 	end
-; 0x18075a
 
-KogaScript_0x18075a: ; 0x18075a
+KogaScript_0x18075a:
 	faceplayer
 	loadfont
-	checkevent $05b9
+	checkevent EVENT_BEAT_ELITE_4_KOGA
 	iftrue UnknownScript_0x180788
 	writetext UnknownText_0x180793
 	closetext
@@ -61,7 +56,7 @@
 	loadtrainer KOGA, 1
 	startbattle
 	returnafterbattle
-	setevent $05b9
+	setevent EVENT_BEAT_ELITE_4_KOGA
 	loadfont
 	writetext UnknownText_0x1808ca
 	closetext
@@ -73,24 +68,21 @@
 	setevent EVENT_KOGAS_ROOM_EXIT_OPEN
 	waitbutton
 	end
-; 0x180788
 
-UnknownScript_0x180788: ; 0x180788
+UnknownScript_0x180788:
 	writetext UnknownText_0x1808ca
 	closetext
 	loadmovesprites
 	end
-; 0x18078e
 
-MovementData_0x18078e: ; 0x18078e
+MovementData_0x18078e:
 	step_up
 	step_up
 	step_up
 	step_up
 	step_end
-; 0x180793
 
-UnknownText_0x180793: ; 0x180793
+UnknownText_0x180793:
 	text "Fwahahahaha!"
 
 	para "I am KOGA of the"
@@ -118,16 +110,14 @@
 	para "force--you shall"
 	line "see soon enough!"
 	done
-; 0x1808a9
 
-UnknownText_0x1808a9: ; 0x1808a9
+UnknownText_0x1808a9:
 	text "Ah!"
 	line "You have proven"
 	cont "your worth!"
 	done
-; 0x1808ca
 
-UnknownText_0x1808ca: ; 0x1808ca
+UnknownText_0x1808ca:
 	text "I subjected you to"
 	line "everything I could"
 	cont "muster."
@@ -140,13 +130,12 @@
 	line "room, and put your"
 	cont "abilities to test!"
 	done
-; 0x18095f
 
-KogasRoom_MapEventHeader: ; 0x18095f
+KogasRoom_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -153,13 +142,12 @@
 	warp_def $2, $4, 1, GROUP_BRUNOS_ROOM, MAP_BRUNOS_ROOM
 	warp_def $2, $5, 2, GROUP_BRUNOS_ROOM, MAP_BRUNOS_ROOM
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_KOGA, 11, 9, $6, $0, 255, 255, $90, 0, KogaScript_0x18075a, $ffff
-; 0x180986
+	person_event SPRITE_KOGA, 11, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, KogaScript_0x18075a, -1
--- a/maps/KrissHouse1F.asm
+++ b/maps/KrissHouse1F.asm
@@ -1,5 +1,5 @@
-KrissHouse1F_MapScriptHeader: ; 0x7a4cc
-	; trigger count
+KrissHouse1F_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,50 +6,45 @@
 	dw UnknownScript_0x7a4d6, $0000
 	dw UnknownScript_0x7a4d7, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x7a4d6
 
-UnknownScript_0x7a4d6: ; 0x7a4d6
+UnknownScript_0x7a4d6:
 	end
-; 0x7a4d7
 
-UnknownScript_0x7a4d7: ; 0x7a4d7
+UnknownScript_0x7a4d7:
 	end
-; 0x7a4d8
 
-UnknownScript_0x7a4d8: ; 0x7a4d8
-	setevent $0000
-; 0x7a4db
+UnknownScript_0x7a4d8:
+	setevent EVENT_GAVE_KURT_APRICORNS
 
-UnknownScript_0x7a4db: ; 0x7a4db
+UnknownScript_0x7a4db:
 	playmusic MUSIC_MOM
-	showemote $0, $2, 15
+	showemote EMOTE_SHOCK, $2, 15
 	spriteface $0, LEFT
-	checkevent $0000
+	checkevent EVENT_GAVE_KURT_APRICORNS
 	iffalse UnknownScript_0x7a4f2
 	applymovement $2, MovementData_0x7a5fc
 	jump UnknownScript_0x7a4f6
-; 0x7a4f2
 
-UnknownScript_0x7a4f2: ; 0x7a4f2
+UnknownScript_0x7a4f2:
 	applymovement $2, MovementData_0x7a5fe
-UnknownScript_0x7a4f6: ; 0x7a4f6
+UnknownScript_0x7a4f6:
 	loadfont
 	writetext UnknownText_0x7a604
 	keeptextopen
 	stringtotext GearName, $1
 	scall UnknownScript_0x7a57e
-	setflag $0004
-	setflag $0002
+	setflag ENGINE_POKEGEAR
+	setflag ENGINE_PHONE_CARD
 	addcellnum $1
 	dotrigger $1
-	setevent $06c7
-	clearevent $06c8
+	setevent EVENT_KRISS_HOUSE_MOM_1
+	clearevent EVENT_KRISS_HOUSE_MOM_2
 	writetext UnknownText_0x7a6bd
 	keeptextopen
-	special Function90913
-UnknownScript_0x7a519: ; 0x7a519
+	special Special_SetDayOfWeek
+UnknownScript_0x7a519:
 	writetext UnknownText_0x7a742
 	yesorno
 	iffalse UnknownScript_0x7a52a
@@ -57,79 +52,68 @@
 	yesorno
 	iffalse UnknownScript_0x7a519
 	jump UnknownScript_0x7a531
-; 0x7a52a
 
-UnknownScript_0x7a52a: ; 0x7a52a
+UnknownScript_0x7a52a:
 	special Function90a88
 	yesorno
 	iffalse UnknownScript_0x7a519
-UnknownScript_0x7a531: ; 0x7a531
+UnknownScript_0x7a531:
 	writetext UnknownText_0x7a763
 	yesorno
 	iffalse UnknownScript_0x7a542
 	jump UnknownScript_0x7a53b
-; 0x7a53b
 
-UnknownScript_0x7a53b: ; 0x7a53b
+UnknownScript_0x7a53b:
 	writetext UnknownText_0x7a7cb
 	keeptextopen
 	jump UnknownScript_0x7a549
-; 0x7a542
 
-UnknownScript_0x7a542: ; 0x7a542
+UnknownScript_0x7a542:
 	writetext UnknownText_0x7a807
 	keeptextopen
 	jump UnknownScript_0x7a549
-; 0x7a549
 
-UnknownScript_0x7a549: ; 0x7a549
+UnknownScript_0x7a549:
 	writetext UnknownText_0x7a850
 	closetext
 	loadmovesprites
-	checkevent $0000
+	checkevent EVENT_GAVE_KURT_APRICORNS
 	iftrue UnknownScript_0x7a55d
-	checkevent $0001
+	checkevent EVENT_RECEIVED_BALLS_FROM_KURT
 	iffalse UnknownScript_0x7a564
 	jump UnknownScript_0x7a56b
-; 0x7a55d
 
-UnknownScript_0x7a55d: ; 0x7a55d
+UnknownScript_0x7a55d:
 	applymovement $2, MovementData_0x7a600
 	jump UnknownScript_0x7a56b
-; 0x7a564
 
-UnknownScript_0x7a564: ; 0x7a564
+UnknownScript_0x7a564:
 	applymovement $2, MovementData_0x7a602
 	jump UnknownScript_0x7a56b
-; 0x7a56b
 
-UnknownScript_0x7a56b: ; 0x7a56b
+UnknownScript_0x7a56b:
 	special RestartMapMusic
 	spriteface $2, LEFT
 	end
-; 0x7a572
 
-UnknownScript_0x7a572: ; 0x7a572
+UnknownScript_0x7a572:
 	playmusic MUSIC_MOM
 	jump UnknownScript_0x7a4f6
-; 0x7a578
 
-GearName: ; 0x7a578
+GearName:
 	db "#GEAR@"
-; 0x7a57e
 
-UnknownScript_0x7a57e: ; 0x7a57e
-	jumpstd $002f
+UnknownScript_0x7a57e:
+	jumpstd receiveitem
 	end
-; 0x7a582
 
-MomScript_0x7a582: ; 0x7a582
+MomScript_0x7a582:
 	faceplayer
-	setevent $0001
+	setevent EVENT_RECEIVED_BALLS_FROM_KURT
 	checktriggers
 	iffalse UnknownScript_0x7a572
 	loadfont
-	checkevent $0076
+	checkevent EVENT_FIRST_TIME_BANKING_WITH_MOM
 	iftrue UnknownScript_0x7a5af
 	checkevent EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST
 	iftrue UnknownScript_0x7a5b8
@@ -141,31 +125,27 @@
 	closetext
 	loadmovesprites
 	end
-; 0x7a5a9
 
-UnknownScript_0x7a5a9: ; 0x7a5a9
+UnknownScript_0x7a5a9:
 	writetext UnknownText_0x7a8e5
 	closetext
 	loadmovesprites
 	end
-; 0x7a5af
 
-UnknownScript_0x7a5af: ; 0x7a5af
+UnknownScript_0x7a5af:
 	writetext UnknownText_0x7a957
 	closetext
 	loadmovesprites
 	end
-; 0x7a5b5
 
-UnknownScript_0x7a5b5: ; 0x7a5b5
-	setevent $0076
-UnknownScript_0x7a5b8: ; 0x7a5b8
+UnknownScript_0x7a5b5:
+	setevent EVENT_FIRST_TIME_BANKING_WITH_MOM
+UnknownScript_0x7a5b8:
 	setevent EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST
-	special Function16218
+	special Special_BankOfMom
 	closetext
 	loadmovesprites
 	end
-; 0x7a5c1
 
 NeighborScript:
 	faceplayer
@@ -211,27 +191,23 @@
 FridgeScript:
 	jumptext FridgeText
 
-MovementData_0x7a5fc: ; 0x7a5fc
+MovementData_0x7a5fc:
 	turn_head_right
 	step_end
-; 0x7a5fe
 
-MovementData_0x7a5fe: ; 0x7a5fe
+MovementData_0x7a5fe:
 	slow_step_right
 	step_end
-; 0x7a600
 
-MovementData_0x7a600: ; 0x7a600
+MovementData_0x7a600:
 	turn_head_left
 	step_end
-; 0x7a602
 
-MovementData_0x7a602: ; 0x7a602
+MovementData_0x7a602:
 	slow_step_left
 	step_end
-; 0x7a604
 
-UnknownText_0x7a604: ; 0x7a604
+UnknownText_0x7a604:
 	text "Oh, <PLAYER>…! Our"
 	line "neighbor, PROF."
 
@@ -250,9 +226,8 @@
 
 	para "Here you go!"
 	done
-; 0x7a6bd
 
-UnknownText_0x7a6bd: ; 0x7a6bd
+UnknownText_0x7a6bd:
 	text "#MON GEAR, or"
 	line "just #GEAR."
 
@@ -266,15 +241,13 @@
 	para "You mustn't forget"
 	line "that!"
 	done
-; 0x7a742
 
-UnknownText_0x7a742: ; 0x7a742
+UnknownText_0x7a742:
 	text "Is it Daylight"
 	line "Saving Time now?"
 	done
-; 0x7a763
 
-UnknownText_0x7a763: ; 0x7a763
+UnknownText_0x7a763:
 	text "Come home to"
 	line "adjust your clock"
 
@@ -285,9 +258,8 @@
 	line "know how to use"
 	cont "the PHONE?"
 	done
-; 0x7a7cb
 
-UnknownText_0x7a7cb: ; 0x7a7cb
+UnknownText_0x7a7cb:
 	text "Don't you just"
 	line "turn the #GEAR"
 
@@ -294,9 +266,8 @@
 	para "on and select the"
 	line "PHONE icon?"
 	done
-; 0x7a807
 
-UnknownText_0x7a807: ; 0x7a807
+UnknownText_0x7a807:
 	text "I'll read the"
 	line "instructions."
 
@@ -304,9 +275,8 @@
 	line "on and select the"
 	cont "PHONE icon."
 	done
-; 0x7a850
 
-UnknownText_0x7a850: ; 0x7a850
+UnknownText_0x7a850:
 	text "Phone numbers are"
 	line "stored in memory."
 
@@ -316,17 +286,15 @@
 	para "Gee, isn't that"
 	line "convenient?"
 	done
-; 0x7a8b5
 
-UnknownText_0x7a8b5: ; 0x7a8b5
+UnknownText_0x7a8b5:
 	text "PROF.ELM is wait-"
 	line "ing for you."
 
 	para "Hurry up, baby!"
 	done
-; 0x7a8e5
 
-UnknownText_0x7a8e5: ; 0x7a8e5
+UnknownText_0x7a8e5:
 	text "So, what was PROF."
 	line "ELM's errand?"
 
@@ -339,15 +307,13 @@
 	line "proud that people"
 	cont "rely on you."
 	done
-; 0x7a957
 
-UnknownText_0x7a957: ; 0x7a957
+UnknownText_0x7a957:
 	text "<PLAYER>, do it!"
 
 	para "I'm behind you all"
 	line "the way!"
 	done
-; 0x7a97d
 
 NeighborMornIntroText:
 	text "Good morning,"
@@ -414,33 +380,32 @@
 	line "rolling too!"
 	done
 
-KrissHouse1F_MapEventHeader: ; 0x7ab31
+KrissHouse1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 2
 	xy_trigger 0, $4, $8, $0, UnknownScript_0x7a4d8, $0, $0
 	xy_trigger 0, $4, $9, $0, UnknownScript_0x7a4db, $0, $0
 
-	; signposts
+.Signposts:
 	db 4
-	signpost 1, 0, $0, StoveScript
-	signpost 1, 1, $0, SinkScript
-	signpost 1, 2, $0, FridgeScript
-	signpost 1, 4, $0, TVScript
+	signpost 1, 0, SIGNPOST_READ, StoveScript
+	signpost 1, 1, SIGNPOST_READ, SinkScript
+	signpost 1, 2, SIGNPOST_READ, FridgeScript
+	signpost 1, 4, SIGNPOST_READ, TVScript
 
-	; people-events
+.PersonEvents:
 	db 5
-	person_event SPRITE_MOM, 8, 11, $8, $0, 255, 255, $0, 0, MomScript_0x7a582, $06c7
-	person_event SPRITE_MOM, 6, 6, $7, $0, 255, 1, $0, 0, MomScript_0x7a582, $06c8
-	person_event SPRITE_MOM, 8, 11, $8, $0, 255, 2, $0, 0, MomScript_0x7a582, $06c8
-	person_event SPRITE_MOM, 6, 4, $7, $0, 255, 4, $0, 0, MomScript_0x7a582, $06c8
-	person_event SPRITE_POKEFAN_F, 8, 8, $9, $0, 255, 255, $80, 0, NeighborScript, $0792
-; 0x7abab
+	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
--- a/maps/KrissHouse2F.asm
+++ b/maps/KrissHouse2F.asm
@@ -1,38 +1,33 @@
-KrissHouse2F_MapScriptHeader: ; 0x7abab
-	; trigger count
+KrissHouse2F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 2
 
 	; callbacks
 
-	dbw 5, UnknownScript_0x7abb4
+	dbw 5, .InitializeRoom
 
-	dbw 1, UnknownScript_0x7abc5
-; 0x7abb3
+	dbw 1, .SetSpawn
 
-UnknownScript_0x7abb3: ; 0x7abb3
+.Null:
 	end
-; 0x7abb4
 
-UnknownScript_0x7abb4: ; 0x7abb4
-	special Function27043
-	setevent $0007
-	checkevent $0036
-	iftrue UnknownScript_0x7abc4
+.InitializeRoom:
+	special ToggleDecorationsVisibility
+	setevent EVENT_IN_YOUR_ROOM
+	checkevent EVENT_INITIALIZED_EVENTS
+	iftrue .SkipInizialization
 	jumpstd initializeevents
 	return
-; 0x7abc4
 
-UnknownScript_0x7abc4: ; 0x7abc4
+.SkipInizialization:
 	return
-; 0x7abc5
 
-UnknownScript_0x7abc5: ; 0x7abc5
-	special Function26feb
+.SetSpawn:
+	special ToggleMaptileDecorations
 	return
-; 0x7abc9
 
 
 	db 0, 0, 0 ; filler
@@ -51,7 +46,7 @@
 	describedecoration $4
 
 KrissHousePoster:
-	dw $02cc ; event
+	dw EVENT_KRISS_ROOM_POSTER ; event
 	dw .Script
 .Script
 	describedecoration $0
@@ -89,7 +84,7 @@
 
 KrissHousePC:
 	loadfont
-	special Functionc2e7
+	special Special_KrissHousePC
 	iftrue .Warp
 	loadmovesprites
 	end
@@ -117,27 +112,27 @@
 	line "#MON CHANNEL…"
 	done
 
-KrissHouse2F_MapEventHeader: ; 0x7ac99
+KrissHouse2F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $0, $7, 3, GROUP_KRISS_HOUSE_1F, MAP_KRISS_HOUSE_1F
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 4
-	signpost 1, 2, $1, KrissHousePC
-	signpost 1, 3, $0, KrissHouseRadio
-	signpost 1, 5, $0, KrissHouseBookshelf
-	signpost 0, 6, $5, KrissHousePoster
+	signpost 1, 2, SIGNPOST_UP, KrissHousePC
+	signpost 1, 3, SIGNPOST_READ, KrissHouseRadio
+	signpost 1, 5, SIGNPOST_READ, KrissHouseBookshelf
+	signpost 0, 6, SIGNPOST_IFSET, KrissHousePoster
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_CONSOLE, 6, 8, $1, $0, 255, 255, $0, 0, GameConsole, $0741
-	person_event SPRITE_DOLL_1, 8, 8, $1, $0, 255, 255, $0, 0, Doll1, $0742
-	person_event SPRITE_DOLL_2, 8, 9, $1, $0, 255, 255, $0, 0, Doll2, $0743
-	person_event SPRITE_BIG_DOLL, 5, 4, $21, $0, 255, 255, $0, 0, BigDoll, $0744
+	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
--- a/maps/KrissNeighborsHouse.asm
+++ b/maps/KrissNeighborsHouse.asm
@@ -1,8 +1,8 @@
-KrissNeighborsHouse_MapScriptHeader: ; 0x7acec
-	; trigger count
+KrissNeighborsHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 KrissNeighborsDaughter:
@@ -94,26 +94,25 @@
 	line "#MON CHANNEL…"
 	done
 
-KrissNeighborsHouse_MapEventHeader: ; 0x7aeb0
+KrissNeighborsHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 3
-	signpost 1, 0, $0, KrissNeighborsHouseBookshelf
-	signpost 1, 1, $0, KrissNeighborsHouseBookshelf
-	signpost 1, 7, $0, KrissNeighborsHouseRadio
+	signpost 1, 0, SIGNPOST_READ, KrissNeighborsHouseBookshelf
+	signpost 1, 1, SIGNPOST_READ, KrissNeighborsHouseBookshelf
+	signpost 1, 7, SIGNPOST_READ, KrissNeighborsHouseRadio
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_COOLTRAINER_F, 7, 6, $9, $0, 255, 255, $80, 0, KrissNeighborsDaughter, $ffff
-	person_event SPRITE_POKEFAN_F, 7, 9, $8, $0, 255, 255, $80, 0, KrissNeighbor, $0793
-; 0x7aee9
+	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
--- a/maps/KurtsHouse.asm
+++ b/maps/KurtsHouse.asm
@@ -1,21 +1,20 @@
-KurtsHouse_MapScriptHeader: ; 0x18e14f
-	; trigger count
+KurtsHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 2, UnknownScript_0x18e154
-; 0x18e154
 
-UnknownScript_0x18e154: ; 0x18e154
+UnknownScript_0x18e154:
 	checkevent EVENT_CLEARED_SLOWPOKE_WELL
 	iffalse UnknownScript_0x18e177
-	checkevent $00c0
+	checkevent EVENT_FOREST_IS_RESTLESS
 	iftrue UnknownScript_0x18e177
-	checkflag $0050
+	checkflag ENGINE_KURT_MAKING_BALLS
 	iftrue UnknownScript_0x18e16f
 	disappear $5
 	appear $2
@@ -22,31 +21,29 @@
 	disappear $6
 	appear $3
 	return
-; 0x18e16f
 
-UnknownScript_0x18e16f: ; 0x18e16f
+UnknownScript_0x18e16f:
 	disappear $2
 	appear $5
 	disappear $3
 	appear $6
-UnknownScript_0x18e177: ; 0x18e177
+UnknownScript_0x18e177:
 	return
-; 0x18e178
 
-KurtScript_0x18e178: ; 0x18e178
+KurtScript_0x18e178:
 	faceplayer
 	loadfont
-	checkevent $0035
-	iftrue UnknownScript_0x18e1cc
+	checkevent EVENT_KURT_GAVE_YOU_LURE_BALL
+	iftrue .GotLureBall
 	checkevent EVENT_CLEARED_SLOWPOKE_WELL
-	iftrue UnknownScript_0x18e1bf
+	iftrue .ClearedSlowpokeWell
 	writetext UnknownText_0x18e473
 	closetext
 	loadmovesprites
 	special Functionc48f
-	setevent $06fa
-	checkcode $9
-	if_equal $1, UnknownScript_0x18e1ab
+	setevent EVENT_AZALEA_TOWN_SLOWPOKETAIL_ROCKET
+	checkcode VAR_FACING
+	if_equal UP, .RunAround
 	spriteface $0, DOWN
 	playsound SFX_FLY
 	applymovement $2, MovementData_0x18e466
@@ -55,9 +52,8 @@
 	waitbutton
 	special RestartMapMusic
 	end
-; 0x18e1ab
 
-UnknownScript_0x18e1ab: ; 0x18e1ab
+.RunAround:
 	spriteface $0, DOWN
 	playsound SFX_FLY
 	applymovement $2, MovementData_0x18e46c
@@ -66,244 +62,217 @@
 	waitbutton
 	special RestartMapMusic
 	end
-; 0x18e1bf
 
-UnknownScript_0x18e1bf: ; 0x18e1bf
+.ClearedSlowpokeWell:
 	writetext UnknownText_0x18e615
 	keeptextopen
 	verbosegiveitem LURE_BALL, 1
-	iffalse UnknownScript_0x18e2b2
-	setevent $0035
-UnknownScript_0x18e1cc: ; 0x18e1cc
-	checkevent $0000
-	iftrue UnknownScript_0x18e29f
-	checkevent $0258
-	iftrue UnknownScript_0x18e2b4
-	checkevent $0259
-	iftrue UnknownScript_0x18e2ca
-	checkevent $025a
-	iftrue UnknownScript_0x18e2e0
-	checkevent $025b
-	iftrue UnknownScript_0x18e2f6
-	checkevent $025c
-	iftrue UnknownScript_0x18e30c
-	checkevent $025d
-	iftrue UnknownScript_0x18e322
-	checkevent $025e
-	iftrue UnknownScript_0x18e338
+	iffalse .NoRoomForBall
+	setevent EVENT_KURT_GAVE_YOU_LURE_BALL
+.GotLureBall:
+	checkevent EVENT_GAVE_KURT_APRICORNS
+	iftrue .WaitForApricorns
+	checkevent EVENT_GAVE_KURT_RED_APRICORN
+	iftrue .GiveLevelBall
+	checkevent EVENT_GAVE_KURT_BLU_APRICORN
+	iftrue .GiveLureBall
+	checkevent EVENT_GAVE_KURT_YLW_APRICORN
+	iftrue .GiveMoonBall
+	checkevent EVENT_GAVE_KURT_GRN_APRICORN
+	iftrue .GiveFriendBall
+	checkevent EVENT_GAVE_KURT_WHT_APRICORN
+	iftrue .GiveFastBall
+	checkevent EVENT_GAVE_KURT_BLK_APRICORN
+	iftrue .GiveHeavyBall
+	checkevent EVENT_GAVE_KURT_PNK_APRICORN
+	iftrue .GiveLoveBall
 	checkevent EVENT_CAN_GIVE_GS_BALL_TO_KURT
-	iftrue UnknownScript_0x18e34e
-UnknownScript_0x18e202: ; 0x18e202
-	checkevent $0001
-	iftrue UnknownScript_0x18e212
-	checkevent $0002
-	iftrue UnknownScript_0x18e212
+	iftrue .CanGiveGSBallToKurt
+.NoGSBall:
+	checkevent EVENT_RECEIVED_BALLS_FROM_KURT
+	iftrue .CheckApricorns
+	checkevent EVENT_DRAGON_SHRINE_QUESTION_2
+	iftrue .CheckApricorns
 	writetext UnknownText_0x18e6c9
 	closetext
-UnknownScript_0x18e212: ; 0x18e212
+.CheckApricorns:
 	checkitem RED_APRICORN
-	iftrue UnknownScript_0x18e249
+	iftrue .AskApricorn
 	checkitem BLU_APRICORN
-	iftrue UnknownScript_0x18e249
+	iftrue .AskApricorn
 	checkitem YLW_APRICORN
-	iftrue UnknownScript_0x18e249
+	iftrue .AskApricorn
 	checkitem GRN_APRICORN
-	iftrue UnknownScript_0x18e249
+	iftrue .AskApricorn
 	checkitem WHT_APRICORN
-	iftrue UnknownScript_0x18e249
+	iftrue .AskApricorn
 	checkitem BLK_APRICORN
-	iftrue UnknownScript_0x18e249
+	iftrue .AskApricorn
 	checkitem PNK_APRICORN
-	iftrue UnknownScript_0x18e249
-	checkevent $0001
-	iftrue UnknownScript_0x18e2ae
-	checkevent $0002
-	iftrue UnknownScript_0x18e243
+	iftrue .AskApricorn
+	checkevent EVENT_RECEIVED_BALLS_FROM_KURT
+	iftrue .ThatTurnedOutGreat
+	checkevent EVENT_DRAGON_SHRINE_QUESTION_2
+	iftrue .IMakeBallsFromApricorns
 	loadmovesprites
 	end
-; 0x18e243
 
-UnknownScript_0x18e243: ; 0x18e243
+.IMakeBallsFromApricorns:
 	writetext UnknownText_0x18e6c9
 	closetext
 	loadmovesprites
 	end
-; 0x18e249
 
-UnknownScript_0x18e249: ; 0x18e249
+.AskApricorn:
 	writetext UnknownText_0x18e736
 	keeptextopen
-	setevent $0002
+	setevent EVENT_DRAGON_SHRINE_QUESTION_2
 	special Function88018
-	if_equal $0, UnknownScript_0x18e2a5
-	if_equal $59, UnknownScript_0x18e275
-	if_equal $5c, UnknownScript_0x18e27b
-	if_equal $5d, UnknownScript_0x18e281
-	if_equal $61, UnknownScript_0x18e287
-	if_equal $63, UnknownScript_0x18e28d
-	if_equal $65, UnknownScript_0x18e293
-	setevent $0258
-	jump UnknownScript_0x18e299
-; 0x18e275
+	if_equal $0, .Cancel
+	if_equal BLU_APRICORN, .Blu
+	if_equal YLW_APRICORN, .Ylw
+	if_equal GRN_APRICORN, .Grn
+	if_equal WHT_APRICORN, .Wht
+	if_equal BLK_APRICORN, .Blk
+	if_equal PNK_APRICORN, .Pnk
+; .Red
+	setevent EVENT_GAVE_KURT_RED_APRICORN
+	jump .GaveKurtApricorns
 
-UnknownScript_0x18e275: ; 0x18e275
-	setevent $0259
-	jump UnknownScript_0x18e299
-; 0x18e27b
+.Blu:
+	setevent EVENT_GAVE_KURT_BLU_APRICORN
+	jump .GaveKurtApricorns
 
-UnknownScript_0x18e27b: ; 0x18e27b
-	setevent $025a
-	jump UnknownScript_0x18e299
-; 0x18e281
+.Ylw:
+	setevent EVENT_GAVE_KURT_YLW_APRICORN
+	jump .GaveKurtApricorns
 
-UnknownScript_0x18e281: ; 0x18e281
-	setevent $025b
-	jump UnknownScript_0x18e299
-; 0x18e287
+.Grn:
+	setevent EVENT_GAVE_KURT_GRN_APRICORN
+	jump .GaveKurtApricorns
 
-UnknownScript_0x18e287: ; 0x18e287
-	setevent $025c
-	jump UnknownScript_0x18e299
-; 0x18e28d
+.Wht:
+	setevent EVENT_GAVE_KURT_WHT_APRICORN
+	jump .GaveKurtApricorns
 
-UnknownScript_0x18e28d: ; 0x18e28d
-	setevent $025d
-	jump UnknownScript_0x18e299
-; 0x18e293
+.Blk:
+	setevent EVENT_GAVE_KURT_BLK_APRICORN
+	jump .GaveKurtApricorns
 
-UnknownScript_0x18e293: ; 0x18e293
-	setevent $025e
-	jump UnknownScript_0x18e299
-; 0x18e299
+.Pnk:
+	setevent EVENT_GAVE_KURT_PNK_APRICORN
+	jump .GaveKurtApricorns
 
-UnknownScript_0x18e299: ; 0x18e299
-	setevent $0000
-	setflag $0050
-UnknownScript_0x18e29f: ; 0x18e29f
+.GaveKurtApricorns:
+	setevent EVENT_GAVE_KURT_APRICORNS
+	setflag ENGINE_KURT_MAKING_BALLS
+.WaitForApricorns:
 	writetext UnknownText_0x18e779
 	closetext
 	loadmovesprites
 	end
-; 0x18e2a5
 
-UnknownScript_0x18e2a5: ; 0x18e2a5
+.Cancel:
 	writetext UnknownText_0x18e7bc
 	closetext
 	loadmovesprites
 	end
-; 0x18e2ab
 
-UnknownScript_0x18e2ab: ; 0x18e2ab
-	setevent $0001
-UnknownScript_0x18e2ae: ; 0x18e2ae
+._ThatTurnedOutGreat:
+	setevent EVENT_RECEIVED_BALLS_FROM_KURT
+.ThatTurnedOutGreat:
 	writetext UnknownText_0x18e82a
 	closetext
-UnknownScript_0x18e2b2: ; 0x18e2b2
+.NoRoomForBall:
 	loadmovesprites
 	end
-; 0x18e2b4
 
-UnknownScript_0x18e2b4: ; 0x18e2b4
-	checkflag $0050
-	iftrue UnknownScript_0x18e3c5
+.GiveLevelBall:
+	checkflag ENGINE_KURT_MAKING_BALLS
+	iftrue KurtMakingBallsScript
 	writetext UnknownText_0x18e7fb
 	keeptextopen
 	verbosegiveitem2 LEVEL_BALL, $16
-	iffalse UnknownScript_0x18e2b2
-UnknownScript_0x18e2c4: ; 0x18e2c4
-	clearevent $0258
-	jump UnknownScript_0x18e2ab
-; 0x18e2ca
+	iffalse .NoRoomForBall
+	clearevent EVENT_GAVE_KURT_RED_APRICORN
+	jump ._ThatTurnedOutGreat
 
-UnknownScript_0x18e2ca: ; 0x18e2ca
-	checkflag $0050
-	iftrue UnknownScript_0x18e3c5
+.GiveLureBall:
+	checkflag ENGINE_KURT_MAKING_BALLS
+	iftrue KurtMakingBallsScript
 	writetext UnknownText_0x18e7fb
 	keeptextopen
 	verbosegiveitem2 LURE_BALL, $16
-	iffalse UnknownScript_0x18e2b2
-UnknownScript_0x18e2da: ; 0x18e2da
-	clearevent $0259
-	jump UnknownScript_0x18e2ab
-; 0x18e2e0
+	iffalse .NoRoomForBall
+	clearevent EVENT_GAVE_KURT_BLU_APRICORN
+	jump ._ThatTurnedOutGreat
 
-UnknownScript_0x18e2e0: ; 0x18e2e0
-	checkflag $0050
-	iftrue UnknownScript_0x18e3c5
+.GiveMoonBall:
+	checkflag ENGINE_KURT_MAKING_BALLS
+	iftrue KurtMakingBallsScript
 	writetext UnknownText_0x18e7fb
 	keeptextopen
 	verbosegiveitem2 MOON_BALL, $16
-	iffalse UnknownScript_0x18e2b2
-UnknownScript_0x18e2f0: ; 0x18e2f0
-	clearevent $025a
-	jump UnknownScript_0x18e2ab
-; 0x18e2f6
+	iffalse .NoRoomForBall
+	clearevent EVENT_GAVE_KURT_YLW_APRICORN
+	jump ._ThatTurnedOutGreat
 
-UnknownScript_0x18e2f6: ; 0x18e2f6
-	checkflag $0050
-	iftrue UnknownScript_0x18e3c5
+.GiveFriendBall:
+	checkflag ENGINE_KURT_MAKING_BALLS
+	iftrue KurtMakingBallsScript
 	writetext UnknownText_0x18e7fb
 	keeptextopen
 	verbosegiveitem2 FRIEND_BALL, $16
-	iffalse UnknownScript_0x18e2b2
-UnknownScript_0x18e306: ; 0x18e306
-	clearevent $025b
-	jump UnknownScript_0x18e2ab
-; 0x18e30c
+	iffalse .NoRoomForBall
+	clearevent EVENT_GAVE_KURT_GRN_APRICORN
+	jump ._ThatTurnedOutGreat
 
-UnknownScript_0x18e30c: ; 0x18e30c
-	checkflag $0050
-	iftrue UnknownScript_0x18e3c5
+.GiveFastBall:
+	checkflag ENGINE_KURT_MAKING_BALLS
+	iftrue KurtMakingBallsScript
 	writetext UnknownText_0x18e7fb
 	keeptextopen
 	verbosegiveitem2 FAST_BALL, $16
-	iffalse UnknownScript_0x18e2b2
-UnknownScript_0x18e31c: ; 0x18e31c
-	clearevent $025c
-	jump UnknownScript_0x18e2ab
-; 0x18e322
+	iffalse .NoRoomForBall
+	clearevent EVENT_GAVE_KURT_WHT_APRICORN
+	jump ._ThatTurnedOutGreat
 
-UnknownScript_0x18e322: ; 0x18e322
-	checkflag $0050
-	iftrue UnknownScript_0x18e3c5
+.GiveHeavyBall:
+	checkflag ENGINE_KURT_MAKING_BALLS
+	iftrue KurtMakingBallsScript
 	writetext UnknownText_0x18e7fb
 	keeptextopen
 	verbosegiveitem2 HEAVY_BALL, $16
-	iffalse UnknownScript_0x18e2b2
-UnknownScript_0x18e332: ; 0x18e332
-	clearevent $025d
-	jump UnknownScript_0x18e2ab
-; 0x18e338
+	iffalse .NoRoomForBall
+	clearevent EVENT_GAVE_KURT_BLK_APRICORN
+	jump ._ThatTurnedOutGreat
 
-UnknownScript_0x18e338: ; 0x18e338
-	checkflag $0050
-	iftrue UnknownScript_0x18e3c5
+.GiveLoveBall:
+	checkflag ENGINE_KURT_MAKING_BALLS
+	iftrue KurtMakingBallsScript
 	writetext UnknownText_0x18e7fb
 	keeptextopen
 	verbosegiveitem2 LOVE_BALL, $16
-	iffalse UnknownScript_0x18e2b2
-UnknownScript_0x18e348: ; 0x18e348
-	clearevent $025e
-	jump UnknownScript_0x18e2ab
-; 0x18e34e
+	iffalse .NoRoomForBall
+	clearevent EVENT_GAVE_KURT_PNK_APRICORN
+	jump ._ThatTurnedOutGreat
 
-UnknownScript_0x18e34e: ; 0x18e34e
-	checkevent $00bf
-	iftrue UnknownScript_0x18e368
+.CanGiveGSBallToKurt:
+	checkevent EVENT_GAVE_GS_BALL_TO_KURT
+	iftrue .GaveGSBallToKurt
 	checkitem GS_BALL
-	iffalse UnknownScript_0x18e202
+	iffalse .NoGSBall
 	writetext UnknownText_0x18e8ab
 	closetext
 	loadmovesprites
-	setevent $00bf
+	setevent EVENT_GAVE_GS_BALL_TO_KURT
 	takeitem GS_BALL, 1
-	setflag $0050
+	setflag ENGINE_KURT_MAKING_BALLS
 	end
-; 0x18e368
 
-UnknownScript_0x18e368: ; 0x18e368
-	checkflag $0050
-	iffalse UnknownScript_0x18e378
+.GaveGSBallToKurt:
+	checkflag ENGINE_KURT_MAKING_BALLS
+	iffalse .NotMakingBalls
 	writetext UnknownText_0x18e934
 	closetext
 	writetext UnknownText_0x18e949
@@ -310,65 +279,60 @@
 	closetext
 	loadmovesprites
 	end
-; 0x18e378
 
-UnknownScript_0x18e378: ; 0x18e378
+.NotMakingBalls:
 	writetext UnknownText_0x18e95c
 	closetext
 	loadmovesprites
-	setevent $00c0
+	setevent EVENT_FOREST_IS_RESTLESS
 	clearevent EVENT_CAN_GIVE_GS_BALL_TO_KURT
-	clearevent $00bf
+	clearevent EVENT_GAVE_GS_BALL_TO_KURT
 	special Functionc48f
 	pause 20
-	showemote $0, $2, 30
-	checkcode $9
-	if_equal $1, UnknownScript_0x18e3a2
+	showemote EMOTE_SHOCK, $2, 30
+	checkcode VAR_FACING
+	if_equal UP, .GSBallRunAround
 	spriteface $0, DOWN
 	playsound SFX_FLY
 	applymovement $2, MovementData_0x18e466
-	jump UnknownScript_0x18e3ac
-; 0x18e3a2
+	jump .KurtHasLeftTheBuilding
 
-UnknownScript_0x18e3a2: ; 0x18e3a2
+.GSBallRunAround:
 	spriteface $0, DOWN
 	playsound SFX_FLY
 	applymovement $2, MovementData_0x18e46c
-UnknownScript_0x18e3ac: ; 0x18e3ac
+.KurtHasLeftTheBuilding:
 	playsound SFX_EXIT_BUILDING
 	disappear $2
-	clearevent $07a4
+	clearevent EVENT_AZALEA_TOWN_KURT
 	waitbutton
 	special RestartMapMusic
 	domaptrigger GROUP_AZALEA_TOWN, MAP_AZALEA_TOWN, $2
 	end
-; 0x18e3bd
 
-KurtScript_0x18e3bd: ; 0x18e3bd
+KurtScript_0x18e3bd:
 	faceplayer
 	loadfont
-	checkevent $00bf
-	iftrue UnknownScript_0x18e3e0
-UnknownScript_0x18e3c5: ; 0x18e3c5
-	checkevent $00bb
-	iffalse UnknownScript_0x18e3d4
+	checkevent EVENT_GAVE_GS_BALL_TO_KURT
+	iftrue KurtScript_ImCheckingItNow
+KurtMakingBallsScript:
+	checkevent EVENT_BUGGING_KURT_TOO_MUCH
+	iffalse Script_FirstTimeBuggingKurt
 	writetext UnknownText_0x18e7d8
 	closetext
 	loadmovesprites
 	spriteface $5, UP
 	end
-; 0x18e3d4
 
-UnknownScript_0x18e3d4: ; 0x18e3d4
+Script_FirstTimeBuggingKurt:
 	writetext UnknownText_0x18e863
 	closetext
 	loadmovesprites
 	spriteface $5, UP
-	setevent $00bb
+	setevent EVENT_BUGGING_KURT_TOO_MUCH
 	end
-; 0x18e3e0
 
-UnknownScript_0x18e3e0: ; 0x18e3e0
+KurtScript_ImCheckingItNow:
 	writetext UnknownText_0x18e934
 	closetext
 	spriteface $5, UP
@@ -376,21 +340,20 @@
 	closetext
 	loadmovesprites
 	end
-; 0x18e3ed
 
 KurtsGranddaughter1:
 	faceplayer
-	checkevent $0000
+	checkevent EVENT_GAVE_KURT_APRICORNS
 	iftrue KurtsGranddaughter2Subscript
-	checkevent $0001
+	checkevent EVENT_RECEIVED_BALLS_FROM_KURT
 	iftrue KurtsGranddaughterFunScript
-	checkevent $00c0
+	checkevent EVENT_FOREST_IS_RESTLESS
 	iftrue .Lonely
-	checkevent $0030
+	checkevent EVENT_FAST_SHIP_FIRST_TIME
 	iftrue .Dad
 	checkevent EVENT_CLEARED_SLOWPOKE_WELL
 	iftrue .SlowpokeBack
-	checkevent $06fa
+	checkevent EVENT_AZALEA_TOWN_SLOWPOKETAIL_ROCKET
 	iftrue .Lonely
 	loadfont
 	writetext KurtsGranddaughterSlowpokeGoneText
@@ -423,7 +386,7 @@
 	faceplayer
 KurtsGranddaughter2Subscript:
 	loadfont
-	checkevent $00bf
+	checkevent EVENT_GAVE_GS_BALL_TO_KURT
 	iftrue .GSBall
 	writetext KurtsGranddaughterHelpText
 	closetext
@@ -438,7 +401,7 @@
 	spriteface $6, RIGHT
 	end
 
-KurtsGranddaughterFunScript: ; 0x18e448
+KurtsGranddaughterFunScript:
 	loadfont
 	writetext KurtsGranddaughterFunText
 	closetext
@@ -466,7 +429,7 @@
 KurtsHouseRadio:
 	jumpstd radio2
 
-MovementData_0x18e466: ; 0x18e466
+MovementData_0x18e466:
 	big_step_down
 	big_step_down
 	big_step_down
@@ -473,9 +436,8 @@
 	big_step_down
 	big_step_down
 	step_end
-; 0x18e46c
 
-MovementData_0x18e46c: ; 0x18e46c
+MovementData_0x18e46c:
 	big_step_right
 	big_step_down
 	big_step_down
@@ -483,9 +445,8 @@
 	big_step_down
 	big_step_down
 	step_end
-; 0x18e473
 
-UnknownText_0x18e473: ; 0x18e473
+UnknownText_0x18e473:
 	text "Hm? Who are you?"
 
 	para "<PLAYER>, eh? You"
@@ -525,9 +486,8 @@
 	line "Old KURT is on his"
 	cont "way!"
 	done
-; 0x18e615
 
-UnknownText_0x18e615: ; 0x18e615
+UnknownText_0x18e615:
 	text "KURT: Hi, <PLAYER>!"
 
 	para "You handled your-"
@@ -545,9 +505,8 @@
 	para "This is all I have"
 	line "now, but take it."
 	done
-; 0x18e6c9
 
-UnknownText_0x18e6c9: ; 0x18e6c9
+UnknownText_0x18e6c9:
 	text "KURT: I make BALLS"
 	line "from APRICORNS."
 
@@ -558,9 +517,8 @@
 	para "I'll make BALLS"
 	line "out of them."
 	done
-; 0x18e736
 
-UnknownText_0x18e736: ; 0x18e736
+UnknownText_0x18e736:
 	text "KURT: You have an"
 	line "APRICORN for me?"
 
@@ -567,9 +525,8 @@
 	para "Fine! I'll turn it"
 	line "into a BALL."
 	done
-; 0x18e779
 
-UnknownText_0x18e779: ; 0x18e779
+UnknownText_0x18e779:
 	text "KURT: It'll take a"
 	line "day to make you a"
 
@@ -576,28 +533,24 @@
 	para "BALL. Come back"
 	line "for it later."
 	done
-; 0x18e7bc
 
-UnknownText_0x18e7bc: ; 0x18e7bc
+UnknownText_0x18e7bc:
 	text "KURT: Oh…"
 	line "That's a letdown."
 	done
-; 0x18e7d8
 
-UnknownText_0x18e7d8: ; 0x18e7d8
+UnknownText_0x18e7d8:
 	text "KURT: I'm working!"
 	line "Don't bother me!"
 	done
-; 0x18e7fb
 
-UnknownText_0x18e7fb: ; 0x18e7fb
+UnknownText_0x18e7fb:
 	text "KURT: Ah, <PLAYER>!"
 	line "I just finished"
 	cont "your BALL. Here!"
 	done
-; 0x18e82a
 
-UnknownText_0x18e82a: ; 0x18e82a
+UnknownText_0x18e82a:
 	text "KURT: That turned"
 	line "out great."
 
@@ -604,9 +557,8 @@
 	para "Try catching"
 	line "#MON with it."
 	done
-; 0x18e863
 
-UnknownText_0x18e863: ; 0x18e863
+UnknownText_0x18e863:
 	text "KURT: Now that my"
 	line "granddaughter is"
 
@@ -613,9 +565,8 @@
 	para "helping me, I can"
 	line "work much faster."
 	done
-; 0x18e8ab
 
-UnknownText_0x18e8ab: ; 0x18e8ab
+UnknownText_0x18e8ab:
 	text "Wh-what is that?"
 
 	para "I've never seen"
@@ -630,21 +581,18 @@
 	para "Let me check it"
 	line "for you."
 	done
-; 0x18e934
 
-UnknownText_0x18e934: ; 0x18e934
+UnknownText_0x18e934:
 	text "I'm checking it"
 	line "now."
 	done
-; 0x18e949
 
-UnknownText_0x18e949: ; 0x18e949
+UnknownText_0x18e949:
 	text "Ah-ha! I see!"
 	line "So…"
 	done
-; 0x18e95c
 
-UnknownText_0x18e95c: ; 0x18e95c
+UnknownText_0x18e95c:
 	text "<PLAYER>!"
 
 	para "This BALL started"
@@ -724,33 +672,32 @@
 	cont "tector."
 	done
 
-KurtsHouse_MapEventHeader: ; 0x18eba8
+KurtsHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 7
-	signpost 1, 6, $0, KurtsHouseRadio
-	signpost 0, 8, $0, KurtsHouseOakPhoto
-	signpost 0, 9, $0, KurtsHouseOakPhoto
-	signpost 1, 5, $0, KurtsHouseBookshelf
-	signpost 1, 2, $0, KurtsHouseBookshelf
-	signpost 1, 3, $0, KurtsHouseBookshelf
-	signpost 1, 4, $0, KurtsHouseCelebiStatue
+	signpost 1, 6, SIGNPOST_READ, KurtsHouseRadio
+	signpost 0, 8, SIGNPOST_READ, KurtsHouseOakPhoto
+	signpost 0, 9, SIGNPOST_READ, KurtsHouseOakPhoto
+	signpost 1, 5, SIGNPOST_READ, KurtsHouseBookshelf
+	signpost 1, 2, SIGNPOST_READ, KurtsHouseBookshelf
+	signpost 1, 3, SIGNPOST_READ, KurtsHouseBookshelf
+	signpost 1, 4, SIGNPOST_READ, KurtsHouseCelebiStatue
 
-	; people-events
+.PersonEvents:
 	db 5
-	person_event SPRITE_KURT, 6, 7, $6, $0, 255, 255, $0, 0, KurtScript_0x18e178, $073e
-	person_event SPRITE_TWIN, 7, 9, $3, $0, 255, 255, $0, 0, KurtsGranddaughter1, $078c
-	person_event SPRITE_SLOWPOKE, 7, 10, $1, $0, 255, 255, $0, 0, KurtsHouseSlowpoke, $06fd
-	person_event SPRITE_KURT, 7, 18, $7, $0, 255, 255, $0, 0, KurtScript_0x18e3bd, $073f
-	person_event SPRITE_TWIN, 8, 15, $9, $0, 255, 255, $0, 0, KurtsGranddaughter2, $078d
-; 0x18ec1c
+	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
--- a/maps/LakeofRage.asm
+++ b/maps/LakeofRage.asm
@@ -1,5 +1,5 @@
 LakeofRage_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,7 +6,7 @@
 	dw .Trigger1, $0000
 	dw .Trigger2, $0000
 
-	; callback count
+.MapCallbacks:
 	db 2
 
 	; callbacks
@@ -25,7 +25,7 @@
 	return
 
 .Wesley
-	checkcode $b
+	checkcode VAR_WEEKDAY
 	if_equal WEDNESDAY, .WesleyAppears
 	disappear $b
 	return
@@ -51,7 +51,7 @@
 	playsound SFX_WARP_TO
 	applymovement $2, MovementData_0x70155
 	disappear $2
-	clearevent $06d5
+	clearevent EVENT_MAHOGANY_MART_LANCE_AND_DRAGONITE
 	setevent EVENT_DECIDED_TO_HELP_LANCE
 	domaptrigger GROUP_MAHOGANY_MART_1F, MAP_MAHOGANY_MART_1F, $1
 	end
@@ -78,7 +78,7 @@
 	cry GYARADOS
 	loadmovesprites
 	loadpokedata GYARADOS, 30
-	writecode $3, BATTLETYPE_SHINY
+	writecode VAR_BATTLETYPE, BATTLETYPE_SHINY
 	startbattle
 	if_equal $1, UnknownScript_0x7007a
 	disappear $a
@@ -132,29 +132,13 @@
 
 UnknownScript_0x700b8:
 	keeptextopen
-	special Functionfbcd2
+	special Special_MagikarpHouseSign
 	loadmovesprites
 	end
 
 TrainerFisherAndre:
-	; bit/flag number
-	dw $455
+	trainer EVENT_BEAT_FISHER_ANDRE, FISHER, ANDRE, FisherAndreSeenText, FisherAndreBeatenText, $0000, FisherAndreScript
 
-	; trainer group && trainer id
-	db FISHER, ANDRE
-
-	; text when seen
-	dw FisherAndreSeenText
-
-	; text when trainer beaten
-	dw FisherAndreBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw FisherAndreScript
-
 FisherAndreScript:
 	talkaftercancel
 	loadfont
@@ -164,24 +148,8 @@
 	end
 
 TrainerFisherRaymond:
-	; bit/flag number
-	dw $456
+	trainer EVENT_BEAT_FISHER_RAYMOND, FISHER, RAYMOND, FisherRaymondSeenText, FisherRaymondBeatenText, $0000, FisherRaymondScript
 
-	; trainer group && trainer id
-	db FISHER, RAYMOND
-
-	; text when seen
-	dw FisherRaymondSeenText
-
-	; text when trainer beaten
-	dw FisherRaymondBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw FisherRaymondScript
-
 FisherRaymondScript:
 	talkaftercancel
 	loadfont
@@ -191,24 +159,8 @@
 	end
 
 TrainerCooltrainermAaron:
-	; bit/flag number
-	dw $549
+	trainer EVENT_BEAT_COOLTRAINERM_AARON, COOLTRAINERM, AARON, CooltrainermAaronSeenText, CooltrainermAaronBeatenText, $0000, CooltrainermAaronScript
 
-	; trainer group && trainer id
-	db COOLTRAINERM, AARON
-
-	; text when seen
-	dw CooltrainermAaronSeenText
-
-	; text when trainer beaten
-	dw CooltrainermAaronBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainermAaronScript
-
 CooltrainermAaronScript:
 	talkaftercancel
 	loadfont
@@ -218,24 +170,8 @@
 	end
 
 TrainerCooltrainerfLois:
-	; bit/flag number
-	dw $55c
+	trainer EVENT_BEAT_COOLTRAINERF_LOIS, COOLTRAINERF, LOIS, CooltrainerfLoisSeenText, CooltrainerfLoisBeatenText, $0000, CooltrainerfLoisScript
 
-	; trainer group && trainer id
-	db COOLTRAINERF, LOIS
-
-	; text when seen
-	dw CooltrainerfLoisSeenText
-
-	; text when trainer beaten
-	dw CooltrainerfLoisBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainerfLoisScript
-
 CooltrainerfLoisScript:
 	talkaftercancel
 	loadfont
@@ -249,7 +185,7 @@
 	loadfont
 	checkevent EVENT_GOT_BLACKBELT_FROM_WESLEY
 	iftrue WesleyWednesdayScript
-	checkcode $b
+	checkcode VAR_WEEKDAY
 	if_not_equal WEDNESDAY, WesleyNotWednesdayScript
 	checkevent EVENT_MET_WESLEY_OF_WEDNESDAY
 	iftrue .MetWesley
@@ -284,21 +220,18 @@
 	db ELIXER, 1
 
 ItemFragment_0x7014a:
-	db TM_43, 1
+	db TM_DETECT, 1
 
 MapLakeofRageSignpostItem2:
-	dw $00b5
-	db FULL_RESTORE
+	dwb EVENT_LAKE_OF_RAGE_HIDDEN_FULL_RESTORE, FULL_RESTORE
 	
 
 MapLakeofRageSignpostItem3:
-	dw $00b6
-	db RARE_CANDY
+	dwb EVENT_LAKE_OF_RAGE_HIDDEN_RARE_CANDY, RARE_CANDY
 	
 
 MapLakeofRageSignpostItem4:
-	dw $00b7
-	db MAX_POTION
+	dwb EVENT_LAKE_OF_RAGE_HIDDEN_MAX_POTION, MAX_POTION
 	
 
 MovementData_0x70155:
@@ -558,33 +491,33 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 5
-	signpost 27, 21, $0, MapLakeofRageSignpost0Script
-	signpost 31, 25, $0, MapLakeofRageSignpost1Script
-	signpost 28, 11, $7, MapLakeofRageSignpostItem2
-	signpost 4, 4, $7, MapLakeofRageSignpostItem3
-	signpost 5, 35, $7, MapLakeofRageSignpostItem4
+	signpost 27, 21, SIGNPOST_READ, MapLakeofRageSignpost0Script
+	signpost 31, 25, SIGNPOST_READ, MapLakeofRageSignpost1Script
+	signpost 28, 11, SIGNPOST_ITEM, MapLakeofRageSignpostItem2
+	signpost 4, 4, SIGNPOST_ITEM, MapLakeofRageSignpostItem3
+	signpost 5, 35, SIGNPOST_ITEM, MapLakeofRageSignpostItem4
 
-	; people-events
+.PersonEvents:
 	db 12
-	person_event SPRITE_LANCE, 32, 25, $7, $0, 255, 255, $0, 0, LanceScript_0x70022, $06d4
-	person_event SPRITE_GRAMPS, 30, 24, $7, $0, 255, 255, $0, 0, GrampsScript_0x7008e, $ffff
-	person_event SPRITE_SUPER_NERD, 17, 40, $8, $0, 255, 255, $0, 0, SuperNerdScript_0x700a2, $ffff
-	person_event SPRITE_COOLTRAINER_F, 33, 29, $5, $1, 255, 255, $0, 0, CooltrainerFScript_0x700a5, $ffff
-	person_event SPRITE_FISHER, 27, 34, $8, $0, 255, 255, $92, 1, TrainerFisherAndre, $0735
-	person_event SPRITE_FISHER, 30, 28, $7, $0, 255, 255, $92, 1, TrainerFisherRaymond, $0735
-	person_event SPRITE_COOLTRAINER_M, 19, 8, $9, $0, 255, 255, $82, 1, TrainerCooltrainermAaron, $0735
-	person_event SPRITE_COOLTRAINER_F, 11, 40, $8, $0, 255, 255, $82, 0, TrainerCooltrainerfLois, $0735
-	person_event SPRITE_GYARADOS, 26, 22, $16, $0, 255, 255, $80, 0, GyaradosScript_0x70063, $0751
-	person_event SPRITE_SUPER_NERD, 8, 8, $6, $0, 255, 255, $0, 0, WesleyScript, $075c
-	person_event SPRITE_POKE_BALL, 14, 11, $1, $0, 255, 255, $1, 0, ItemFragment_0x70148, $0645
-	person_event SPRITE_POKE_BALL, 6, 39, $1, $0, 255, 255, $1, 0, ItemFragment_0x7014a, $0646
+	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
--- a/maps/LakeofRageHiddenPowerHouse.asm
+++ b/maps/LakeofRageHiddenPowerHouse.asm
@@ -1,8 +1,8 @@
 LakeofRageHiddenPowerHouse_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 HiddenPowerGuy:
@@ -12,7 +12,7 @@
 	iftrue .AlreadyGotItem
 	writetext HiddenPowerGuyText1
 	keeptextopen
-	verbosegiveitem TM_10, 1
+	verbosegiveitem TM_HIDDEN_POWER, 1
 	iffalse .Done
 	setevent EVENT_GOT_TM10_HIDDEN_POWER
 	writetext HiddenPowerGuyText2
@@ -68,19 +68,19 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 0, $0, HiddenPowerHouseBookshelf
-	signpost 1, 1, $0, HiddenPowerHouseBookshelf
+	signpost 1, 0, SIGNPOST_READ, HiddenPowerHouseBookshelf
+	signpost 1, 1, SIGNPOST_READ, HiddenPowerHouseBookshelf
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_FISHER, 7, 6, $3, $0, 255, 255, $0, 0, HiddenPowerGuy, $ffff
+	person_event SPRITE_FISHER, 7, 6, OW_DOWN | $3, $0, -1, -1, $0, 0, HiddenPowerGuy, -1
--- a/maps/LakeofRageMagikarpHouse.asm
+++ b/maps/LakeofRageMagikarpHouse.asm
@@ -1,58 +1,53 @@
-LakeofRageMagikarpHouse_MapScriptHeader: ; 0x19a6ac
-	; trigger count
+LakeofRageMagikarpHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x19a6ae
 
-FishingGuruScript_0x19a6ae: ; 0x19a6ae
+FishingGuruScript_0x19a6ae:
 	faceplayer
 	loadfont
-	checkevent $003a
+	checkevent EVENT_LAKE_OF_RAGE_ELIXIR_ON_STANDBY
 	iftrue UnknownScript_0x19a6fe
-	checkevent $0039
+	checkevent EVENT_LAKE_OF_RAGE_ASKED_FOR_MAGIKARP
 	iftrue UnknownScript_0x19a6e0
 	checkevent EVENT_CLEARED_ROCKET_HIDEOUT
 	iftrue UnknownScript_0x19a6d7
-	checkevent $0038
+	checkevent EVENT_LAKE_OF_RAGE_EXPLAINED_WEIRD_MAGIKARP
 	iftrue UnknownScript_0x19a6d1
 	writetext UnknownText_0x19a72e
 	closetext
 	loadmovesprites
-	setevent $0038
+	setevent EVENT_LAKE_OF_RAGE_EXPLAINED_WEIRD_MAGIKARP
 	end
-; 0x19a6d1
 
-UnknownScript_0x19a6d1: ; 0x19a6d1
+UnknownScript_0x19a6d1:
 	writetext UnknownText_0x19a84d
 	closetext
 	loadmovesprites
 	end
-; 0x19a6d7
 
-UnknownScript_0x19a6d7: ; 0x19a6d7
+UnknownScript_0x19a6d7:
 	writetext UnknownText_0x19a890
 	closetext
 	loadmovesprites
-	setevent $0039
+	setevent EVENT_LAKE_OF_RAGE_ASKED_FOR_MAGIKARP
 	end
-; 0x19a6e0
 
-UnknownScript_0x19a6e0: ; 0x19a6e0
+UnknownScript_0x19a6e0:
 	writebyte MAGIKARP
 	special Functionc276
 	iffalse UnknownScript_0x19a6d7
 	writetext UnknownText_0x19a93e
 	closetext
-	special Functionfbb32
+	special Special_CheckMagikarpLength
 	if_equal $0, UnknownScript_0x19a71c
 	if_equal $1, UnknownScript_0x19a722
 	if_equal $2, UnknownScript_0x19a716
 	jump UnknownScript_0x19a6fe
-; 0x19a6fe
 
-UnknownScript_0x19a6fe: ; 0x19a6fe
+UnknownScript_0x19a6fe:
 	writetext UnknownText_0x19a977
 	keeptextopen
 	verbosegiveitem ELIXER, 1
@@ -60,45 +55,39 @@
 	writetext UnknownText_0x19a9c3
 	closetext
 	loadmovesprites
-	clearevent $003a
+	clearevent EVENT_LAKE_OF_RAGE_ELIXIR_ON_STANDBY
 	end
-; 0x19a711
 
-UnknownScript_0x19a711: ; 0x19a711
+UnknownScript_0x19a711:
 	loadmovesprites
-	setevent $003a
+	setevent EVENT_LAKE_OF_RAGE_ELIXIR_ON_STANDBY
 	end
-; 0x19a716
 
-UnknownScript_0x19a716: ; 0x19a716
+UnknownScript_0x19a716:
 	writetext UnknownText_0x19aa01
 	closetext
 	loadmovesprites
 	end
-; 0x19a71c
 
-UnknownScript_0x19a71c: ; 0x19a71c
+UnknownScript_0x19a71c:
 	writetext UnknownText_0x19aa5c
 	closetext
 	loadmovesprites
 	end
-; 0x19a722
 
-UnknownScript_0x19a722: ; 0x19a722
+UnknownScript_0x19a722:
 	writetext UnknownText_0x19aa79
 	closetext
 	loadmovesprites
 	end
-; 0x19a728
 
-UnknownScript_0x19a728: ; 0x19a728
+UnknownScript_0x19a728:
 	jumptext UnknownText_0x19aabc
-; 0x19a72b
 
 MagikarpHouseBookshelf:
 	jumpstd difficultbookshelf
 
-UnknownText_0x19a72e: ; 0x19a72e
+UnknownText_0x19a72e:
 	text "LAKE OF RAGE is"
 	line "actually a crater"
 
@@ -126,9 +115,8 @@
 	para "I don't understand"
 	line "what's happening."
 	done
-; 0x19a84d
 
-UnknownText_0x19a84d: ; 0x19a84d
+UnknownText_0x19a84d:
 	text "The LAKE hasn't"
 	line "been normal since"
 
@@ -135,9 +123,8 @@
 	para "those men wearing"
 	line "black arrived."
 	done
-; 0x19a890
 
-UnknownText_0x19a890: ; 0x19a890
+UnknownText_0x19a890:
 	text "LAKE OF RAGE is"
 	line "back to normal."
 
@@ -153,9 +140,8 @@
 	line "Please help me if"
 	cont "you do."
 	done
-; 0x19a93e
 
-UnknownText_0x19a93e: ; 0x19a93e
+UnknownText_0x19a93e:
 	text "Ah, you have a"
 	line "MAGIKARP! Let's"
 
@@ -162,9 +148,8 @@
 	para "see how big that"
 	line "baby is."
 	done
-; 0x19a977
 
-UnknownText_0x19a977: ; 0x19a977
+UnknownText_0x19a977:
 	text "Wow! This one is"
 	line "outstanding!"
 
@@ -174,9 +159,8 @@
 	para "Take this as a"
 	line "memento!"
 	done
-; 0x19a9c3
 
-UnknownText_0x19a9c3: ; 0x19a9c3
+UnknownText_0x19a9c3:
 	text "The record is the"
 	line "important thing."
 
@@ -183,9 +167,8 @@
 	para "Think of that as"
 	line "a bonus!"
 	done
-; 0x19aa01
 
-UnknownText_0x19aa01: ; 0x19aa01
+UnknownText_0x19aa01:
 	text "Wow! This one is"
 	line "outstanding!"
 
@@ -195,15 +178,13 @@
 	para "seen a bigger one"
 	line "before."
 	done
-; 0x19aa5c
 
-UnknownText_0x19aa5c: ; 0x19aa5c
+UnknownText_0x19aa5c:
 	text "What? That's not a"
 	line "MAGIKARP!"
 	done
-; 0x19aa79
 
-UnknownText_0x19aa79: ; 0x19aa79
+UnknownText_0x19aa79:
 	text "Oh… So you didn't"
 	line "get one good"
 
@@ -210,9 +191,8 @@
 	para "enough to show me?"
 	line "Maybe next time."
 	done
-; 0x19aabc
 
-UnknownText_0x19aabc: ; 0x19aabc
+UnknownText_0x19aabc:
 	text "CURRENT RECORD"
 
 	para "@"
@@ -221,26 +201,24 @@
 	line "@"
 	text_from_ram StringBuffer4
 	db "@@"
-; 0x19aae2
 
-LakeofRageMagikarpHouse_MapEventHeader: ; 0x19aae2
+LakeofRageMagikarpHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 0, $0, MagikarpHouseBookshelf
-	signpost 1, 1, $0, MagikarpHouseBookshelf
+	signpost 1, 0, SIGNPOST_READ, MagikarpHouseBookshelf
+	signpost 1, 1, SIGNPOST_READ, MagikarpHouseBookshelf
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_FISHING_GURU, 7, 6, $3, $0, 255, 255, $0, 0, FishingGuruScript_0x19a6ae, $ffff
-; 0x19ab09
+	person_event SPRITE_FISHING_GURU, 7, 6, OW_DOWN | $3, $0, -1, -1, $0, 0, FishingGuruScript_0x19a6ae, -1
--- a/maps/LancesRoom.asm
+++ b/maps/LancesRoom.asm
@@ -1,5 +1,5 @@
-LancesRoom_MapScriptHeader: ; 0x180e2c
-	; trigger count
+LancesRoom_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,36 +6,32 @@
 	dw UnknownScript_0x180e39, $0000
 	dw UnknownScript_0x180e3d, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 1, UnknownScript_0x180e3e
-; 0x180e39
 
-UnknownScript_0x180e39: ; 0x180e39
+UnknownScript_0x180e39:
 	priorityjump UnknownScript_0x180e53
 	end
-; 0x180e3d
 
-UnknownScript_0x180e3d: ; 0x180e3d
+UnknownScript_0x180e3d:
 	end
-; 0x180e3e
 
-UnknownScript_0x180e3e: ; 0x180e3e
+UnknownScript_0x180e3e:
 	checkevent EVENT_LANCES_ROOM_ENTRANCE_CLOSED
 	iffalse UnknownScript_0x180e48
 	changeblock $4, $16, $34
-UnknownScript_0x180e48: ; 0x180e48
-	checkevent $0312
+UnknownScript_0x180e48:
+	checkevent EVENT_LANCES_ROOM_EXIT_OPEN
 	iffalse UnknownScript_0x180e52
 	changeblock $4, $0, $b
-UnknownScript_0x180e52: ; 0x180e52
+UnknownScript_0x180e52:
 	return
-; 0x180e53
 
-UnknownScript_0x180e53: ; 0x180e53
+UnknownScript_0x180e53:
 	applymovement $0, MovementData_0x180f33
 	refreshscreen $86
 	playsound SFX_STRENGTH
@@ -46,18 +42,16 @@
 	dotrigger $1
 	setevent EVENT_LANCES_ROOM_ENTRANCE_CLOSED
 	end
-; 0x180e6a
 
-UnknownScript_0x180e6a: ; 0x180e6a
+UnknownScript_0x180e6a:
 	special Functionc48f
 	applymovement $0, MovementData_0x180f38
 	jump LanceScript_0x180e7b
-; 0x180e74
 
-UnknownScript_0x180e74: ; 0x180e74
+UnknownScript_0x180e74:
 	special Functionc48f
 	applymovement $0, MovementData_0x180f3c
-LanceScript_0x180e7b: ; 0x180e7b
+LanceScript_0x180e7b:
 	spriteface $2, LEFT
 	loadfont
 	writetext UnknownText_0x180f67
@@ -81,7 +75,7 @@
 	setevent EVENT_LANCES_ROOM_ENTRANCE_CLOSED
 	musicfadeout MUSIC_BEAUTY_ENCOUNTER, $10
 	pause 30
-	showemote $0, $2, 15
+	showemote EMOTE_SHOCK, $2, 15
 	spriteface $2, DOWN
 	pause 10
 	spriteface $0, DOWN
@@ -125,92 +119,80 @@
 	playsound SFX_EXIT_BUILDING
 	disappear $0
 	applymovement $3, MovementData_0x180f57
-	showemote $0, $3, 15
+	showemote EMOTE_SHOCK, $3, 15
 	loadfont
 	writetext UnknownText_0x1813c5
 	pause 30
 	loadmovesprites
 	applymovement $3, MovementData_0x180f5b
-	special Function8c084
+	special FadeBlackBGMap
 	pause 15
 	warpfacing $1, GROUP_HALL_OF_FAME, MAP_HALL_OF_FAME, $4, $d
 	end
-; 0x180f33
 
-MovementData_0x180f33: ; 0x180f33
+MovementData_0x180f33:
 	step_up
 	step_up
 	step_up
 	step_up
 	step_end
-; 0x180f38
 
-MovementData_0x180f38: ; 0x180f38
+MovementData_0x180f38:
 	step_up
 	step_up
 	turn_head_right
 	step_end
-; 0x180f3c
 
-MovementData_0x180f3c: ; 0x180f3c
+MovementData_0x180f3c:
 	step_up
 	step_left
 	step_up
 	turn_head_right
 	step_end
-; 0x180f41
 
-MovementData_0x180f41: ; 0x180f41
+MovementData_0x180f41:
 	big_step_up
 	big_step_up
 	big_step_up
 	turn_head_down
 	step_end
-; 0x180f46
 
-MovementData_0x180f46: ; 0x180f46
+MovementData_0x180f46:
 	step_up
 	step_up
 	step_end
-; 0x180f49
 
-MovementData_0x180f49: ; 0x180f49
+MovementData_0x180f49:
 	step_left
 	turn_head_right
 	step_end
-; 0x180f4c
 
-MovementData_0x180f4c: ; 0x180f4c
+MovementData_0x180f4c:
 	big_step_up
 	turn_head_right
 	step_end
-; 0x180f4f
 
-MovementData_0x180f4f: ; 0x180f4f
+MovementData_0x180f4f:
 	step_up
 	step_left
 	turn_head_down
 	step_end
-; 0x180f53
 
-MovementData_0x180f53: ; 0x180f53
+MovementData_0x180f53:
 	step_up
 	step_end
-; 0x180f55
 
-MovementData_0x180f55: ; 0x180f55
+MovementData_0x180f55:
 	step_up
 	step_end
-; 0x180f57
 
-MovementData_0x180f57: ; 0x180f57
+MovementData_0x180f57:
 	step_up
 	step_right
 	turn_head_up
 	step_end
-; 0x180f5b
 
-MovementData_0x180f5b: ; 0x180f5b
+MovementData_0x180f5b:
 	big_step_right
 	big_step_right
 	big_step_left
@@ -223,9 +205,8 @@
 	big_step_left
 	turn_head_up
 	step_end
-; 0x180f67
 
-UnknownText_0x180f67: ; 0x180f67
+UnknownText_0x180f67:
 	text "LANCE: I've been"
 	line "waiting for you."
 
@@ -256,9 +237,8 @@
 	line "on master, accept"
 	cont "your challenge!"
 	done
-; 0x1810a4
 
-UnknownText_0x1810a4: ; 0x1810a4
+UnknownText_0x1810a4:
 	text "…It's over."
 
 	para "But it's an odd"
@@ -274,9 +254,8 @@
 	para "of a great new"
 	line "CHAMPION!"
 	done
-; 0x181132
 
-UnknownText_0x181132: ; 0x181132
+UnknownText_0x181132:
 	text "…Whew."
 
 	para "You have become"
@@ -295,9 +274,8 @@
 	para "grow strong with"
 	line "your #MON."
 	done
-; 0x1811dd
 
-UnknownText_0x1811dd: ; 0x1811dd
+UnknownText_0x1811dd:
 	text "MARY: Oh, no!"
 	line "It's all over!"
 
@@ -304,9 +282,8 @@
 	para "PROF.OAK, if you"
 	line "weren't so slow…"
 	done
-; 0x18121b
 
-UnknownText_0x18121b: ; 0x18121b
+UnknownText_0x18121b:
 	text "PROF.OAK: Ah,"
 	line "<PLAY_G>!"
 
@@ -338,16 +315,14 @@
 	para "Congratulations,"
 	line "<PLAY_G>!"
 	done
-; 0x18134b
 
-UnknownText_0x18134b: ; 0x18134b
+UnknownText_0x18134b:
 	text "MARY: Let's inter-"
 	line "view the brand new"
 	cont "CHAMPION!"
 	done
-; 0x18137b
 
-UnknownText_0x18137b: ; 0x18137b
+UnknownText_0x18137b:
 	text "LANCE: This is"
 	line "getting to be a"
 	cont "bit too noisy…"
@@ -355,20 +330,18 @@
 	para "<PLAY_G>, could you"
 	line "come with me?"
 	done
-; 0x1813c5
 
-UnknownText_0x1813c5: ; 0x1813c5
+UnknownText_0x1813c5:
 	text "MARY: Oh, wait!"
 	line "We haven't done"
 	cont "the interview!"
 	done
-; 0x1813f4
 
-LancesRoom_MapEventHeader: ; 0x1813f4
+LancesRoom_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -375,17 +348,16 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 2
 	xy_trigger 1, $5, $4, $0, UnknownScript_0x180e6a, $0, $0
 	xy_trigger 1, $5, $5, $0, UnknownScript_0x180e74, $0, $0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_LANCE, 7, 9, $6, $0, 255, 255, $0, 0, LanceScript_0x180e7b, $ffff
-	person_event SPRITE_TEACHER, 11, 8, $7, $0, 255, 255, $a0, 0, ObjectEvent, $075f
-	person_event SPRITE_OAK, 11, 8, $7, $0, 255, 255, $0, 0, ObjectEvent, $075f
-; 0x181445
+	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
--- a/maps/LavRadioTower1F.asm
+++ b/maps/LavRadioTower1F.asm
@@ -1,27 +1,23 @@
-LavRadioTower1F_MapScriptHeader: ; 0x7ee61
-	; trigger count
+LavRadioTower1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x7ee63
 
-ReceptionistScript_0x7ee63: ; 0x7ee63
+ReceptionistScript_0x7ee63:
 	jumptextfaceplayer UnknownText_0x7eebf
-; 0x7ee66
 
-OfficerScript_0x7ee66: ; 0x7ee66
+OfficerScript_0x7ee66:
 	jumptextfaceplayer UnknownText_0x7eefa
-; 0x7ee69
 
-SuperNerdScript_0x7ee69: ; 0x7ee69
+SuperNerdScript_0x7ee69:
 	jumptextfaceplayer UnknownText_0x7ef90
-; 0x7ee6c
 
-GentlemanScript_0x7ee6c: ; 0x7ee6c
+GentlemanScript_0x7ee6c:
 	faceplayer
 	loadfont
-	checkflag $0003
+	checkflag ENGINE_EXPN_CARD
 	iftrue .UnknownScript_0x7ee8e
 	checkevent EVENT_RETURNED_MACHINE_PART
 	iftrue .UnknownScript_0x7ee80
@@ -29,61 +25,52 @@
 	closetext
 	loadmovesprites
 	end
-; 0x7ee80
 
-.UnknownScript_0x7ee80: ; 0x7ee80
+.UnknownScript_0x7ee80:
 	writetext UnknownText_0x7f0a1
 	keeptextopen
 	stringtotext .expncardname, $1
 	scall .UnknownScript_0x7ee94
-	setflag $0003
-.UnknownScript_0x7ee8e ; 0x7ee8e
+	setflag ENGINE_EXPN_CARD
+.UnknownScript_0x7ee8e
 	writetext UnknownText_0x7f141
 	closetext
 	loadmovesprites
 	end
-; 0x7ee94
 
-.UnknownScript_0x7ee94 ; 0x7ee94
-	jumpstd $002f
+.UnknownScript_0x7ee94
+	jumpstd receiveitem
 	end
-; 0x7ee98
 
-.expncardname ; 0x7ee98
+.expncardname
 	db "EXPN CARD@"
-; 0x7eea2
 
-SuperNerdScript_0x7eea2: ; 0x7eea2
+SuperNerdScript_0x7eea2:
 	faceplayer
 	loadfont
-	checkflag $0003
+	checkflag ENGINE_EXPN_CARD
 	iftrue UnknownScript_0x7eeb0
 	writetext UnknownText_0x7f193
 	closetext
 	loadmovesprites
 	end
-; 0x7eeb0
 
-UnknownScript_0x7eeb0: ; 0x7eeb0
+UnknownScript_0x7eeb0:
 	writetext UnknownText_0x7f248
 	closetext
 	loadmovesprites
 	end
-; 0x7eeb6
 
-MapLavRadioTower1FSignpost0Script: ; 0x7eeb6
+MapLavRadioTower1FSignpost0Script:
 	jumptext UnknownText_0x7f2e3
-; 0x7eeb9
 
-MapLavRadioTower1FSignpost1Script: ; 0x7eeb9
+MapLavRadioTower1FSignpost1Script:
 	jumptext UnknownText_0x7f32d
-; 0x7eebc
 
-UnknownScript_0x7eebc: ; 0x7eebc
+UnknownScript_0x7eebc:
 	jumptext UnknownText_0x7f36b
-; 0x7eebf
 
-UnknownText_0x7eebf: ; 0x7eebf
+UnknownText_0x7eebf:
 	text "Welcome!"
 	line "Feel free to look"
 
@@ -90,9 +77,8 @@
 	para "around anywhere on"
 	line "this floor."
 	done
-; 0x7eefa
 
-UnknownText_0x7eefa: ; 0x7eefa
+UnknownText_0x7eefa:
 	text "Sorry, but you can"
 	line "only tour the"
 	cont "ground floor."
@@ -106,9 +92,8 @@
 	para "have had to step"
 	line "up our security."
 	done
-; 0x7ef90
 
-UnknownText_0x7ef90: ; 0x7ef90
+UnknownText_0x7ef90:
 	text "Many people are"
 	line "hard at work here"
 
@@ -119,9 +104,8 @@
 	line "their best to put"
 	cont "on good shows."
 	done
-; 0x7effb
 
-UnknownText_0x7effb: ; 0x7effb
+UnknownText_0x7effb:
 	text "Oh, no, no, no!"
 
 	para "We've been off the"
@@ -138,9 +122,8 @@
 
 	para "I'll be ruined!"
 	done
-; 0x7f0a1
 
-UnknownText_0x7f0a1: ; 0x7f0a1
+UnknownText_0x7f0a1:
 	text "Ah! So you're the"
 	line "<PLAY_G> who solved"
 
@@ -156,9 +139,8 @@
 	para "Please take this"
 	line "as my thanks."
 	done
-; 0x7f141
 
-UnknownText_0x7f141: ; 0x7f141
+UnknownText_0x7f141:
 	text "With that thing,"
 	line "you can tune into"
 
@@ -167,9 +149,8 @@
 
 	para "Gahahahaha!"
 	done
-; 0x7f193
 
-UnknownText_0x7f193: ; 0x7f193
+UnknownText_0x7f193:
 	text "Hey there!"
 
 	para "I am the super"
@@ -187,9 +168,8 @@
 	para "can tune in. You'd"
 	line "better get one!"
 	done
-; 0x7f248
 
-UnknownText_0x7f248: ; 0x7f248
+UnknownText_0x7f248:
 	text "Hey there!"
 
 	para "I am the super"
@@ -205,9 +185,8 @@
 	line "Grab your music"
 	cont "off the air!"
 	done
-; 0x7f2e3
 
-UnknownText_0x7f2e3: ; 0x7f2e3
+UnknownText_0x7f2e3:
 	text "1F RECEPTION"
 	line "2F SALES"
 
@@ -217,9 +196,8 @@
 	para "5F DIRECTOR'S"
 	line "   OFFICE"
 	done
-; 0x7f32d
 
-UnknownText_0x7f32d: ; 0x7f32d
+UnknownText_0x7f32d:
 	text "Perk Up #MON"
 	line "with Mellow Sounds"
 
@@ -226,9 +204,8 @@
 	para "of the # FLUTE"
 	line "on CHANNEL 20"
 	done
-; 0x7f36b
 
-UnknownText_0x7f36b: ; 0x7f36b
+UnknownText_0x7f36b:
 	text "Wow! A full rack"
 	line "of #MON CDs and"
 	cont "videos."
@@ -236,30 +213,28 @@
 	para "This must be the"
 	line "reference library."
 	done
-; 0x7f3b9
 
-LavRadioTower1F_MapEventHeader: ; 0x7f3b9
+LavRadioTower1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 0, 11, $0, MapLavRadioTower1FSignpost0Script
-	signpost 0, 5, $0, MapLavRadioTower1FSignpost1Script
+	signpost 0, 11, SIGNPOST_READ, MapLavRadioTower1FSignpost0Script
+	signpost 0, 5, SIGNPOST_READ, MapLavRadioTower1FSignpost1Script
 
-	; people-events
+.PersonEvents:
 	db 5
-	person_event SPRITE_RECEPTIONIST, 10, 10, $7, $0, 255, 255, $a0, 0, ReceptionistScript_0x7ee63, $ffff
-	person_event SPRITE_OFFICER, 5, 19, $6, $0, 255, 255, $a0, 0, OfficerScript_0x7ee66, $ffff
-	person_event SPRITE_SUPER_NERD, 7, 5, $2, $11, 255, 255, $80, 0, SuperNerdScript_0x7ee69, $ffff
-	person_event SPRITE_GENTLEMAN, 5, 13, $7, $0, 255, 255, $0, 0, GentlemanScript_0x7ee6c, $ffff
-	person_event SPRITE_SUPER_NERD, 10, 18, $9, $0, 255, 255, $0, 0, SuperNerdScript_0x7eea2, $ffff
-; 0x7f414
+	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
--- a/maps/LavenderMart.asm
+++ b/maps/LavenderMart.asm
@@ -1,27 +1,23 @@
-LavenderMart_MapScriptHeader: ; 0x7eb1a
-	; trigger count
+LavenderMart_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x7eb1c
 
-ClerkScript_0x7eb1c: ; 0x7eb1c
+ClerkScript_0x7eb1c:
 	loadfont
 	pokemart $0, $0015
 	loadmovesprites
 	end
-; 0x7eb23
 
-PokefanMScript_0x7eb23: ; 0x7eb23
+PokefanMScript_0x7eb23:
 	jumptextfaceplayer UnknownText_0x7eb29
-; 0x7eb26
 
-RockerScript_0x7eb26: ; 0x7eb26
+RockerScript_0x7eb26:
 	jumptextfaceplayer UnknownText_0x7ebac
-; 0x7eb29
 
-UnknownText_0x7eb29: ; 0x7eb29
+UnknownText_0x7eb29:
 	text "REPEL is a neces-"
 	line "sity if you are"
 
@@ -34,9 +30,8 @@
 	para "haven't made it to"
 	line "all the caves."
 	done
-; 0x7ebac
 
-UnknownText_0x7ebac: ; 0x7ebac
+UnknownText_0x7ebac:
 	text "I heard about a"
 	line "craftsman who"
 
@@ -46,26 +41,24 @@
 	para "of AZALEA. I wish"
 	line "I had some."
 	done
-; 0x7ec0e
 
-LavenderMart_MapEventHeader: ; 0x7ec0e
+LavenderMart_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 7, 5, $9, $0, 255, 255, $0, 0, ClerkScript_0x7eb1c, $ffff
-	person_event SPRITE_POKEFAN_M, 10, 10, $5, $2, 255, 255, $80, 0, PokefanMScript_0x7eb23, $ffff
-	person_event SPRITE_ROCKER, 6, 13, $3, $0, 255, 255, $0, 0, RockerScript_0x7eb26, $ffff
-; 0x7ec45
+	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
--- a/maps/LavenderNameRater.asm
+++ b/maps/LavenderNameRater.asm
@@ -1,11 +1,11 @@
 LavenderNameRater_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 1
 
 	; triggers
 	dw UnknownScript_0x7eaf1, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 UnknownScript_0x7eaf1:
@@ -27,17 +27,17 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_GENTLEMAN, 7, 6, $6, $0, 255, 255, $80, 0, LavenderNameRater, $ffff
+	person_event SPRITE_GENTLEMAN, 7, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, LavenderNameRater, -1
--- a/maps/LavenderPokeCenter1F.asm
+++ b/maps/LavenderPokeCenter1F.asm
@@ -1,24 +1,20 @@
-LavenderPokeCenter1F_MapScriptHeader: ; 0x7e69e
-	; trigger count
+LavenderPokeCenter1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x7e6a0
 
-NurseScript_0x7e6a0: ; 0x7e6a0
+NurseScript_0x7e6a0:
 	jumpstd pokecenternurse
-; 0x7e6a3
 
-GentlemanScript_0x7e6a3: ; 0x7e6a3
+GentlemanScript_0x7e6a3:
 	jumptextfaceplayer UnknownText_0x7e6bd
-; 0x7e6a6
 
-TeacherScript_0x7e6a6: ; 0x7e6a6
+TeacherScript_0x7e6a6:
 	jumptextfaceplayer UnknownText_0x7e710
-; 0x7e6a9
 
-YoungsterScript_0x7e6a9: ; 0x7e6a9
+YoungsterScript_0x7e6a9:
 	faceplayer
 	loadfont
 	checkevent EVENT_RETURNED_MACHINE_PART
@@ -27,16 +23,14 @@
 	closetext
 	loadmovesprites
 	end
-; 0x7e6b7
 
-UnknownScript_0x7e6b7: ; 0x7e6b7
+UnknownScript_0x7e6b7:
 	writetext UnknownText_0x7e7ed
 	closetext
 	loadmovesprites
 	end
-; 0x7e6bd
 
-UnknownText_0x7e6bd: ; 0x7e6bd
+UnknownText_0x7e6bd:
 	text "To the north of"
 	line "LAVENDER is ROCK"
 
@@ -44,9 +38,8 @@
 	line "it to get to the"
 	cont "POWER PLANT."
 	done
-; 0x7e710
 
-UnknownText_0x7e710: ; 0x7e710
+UnknownText_0x7e710:
 	text "There's a radio"
 	line "program that plays"
 	cont "# FLUTE music."
@@ -55,9 +48,8 @@
 	line "needs an EXPN CARD"
 	cont "to tune into it."
 	done
-; 0x7e779
 
-UnknownText_0x7e779: ; 0x7e779
+UnknownText_0x7e779:
 	text "If the POWER PLANT"
 	line "isn't running, the"
 
@@ -68,9 +60,8 @@
 	line "RADIO STATION"
 	cont "can't broadcast…"
 	done
-; 0x7e7ed
 
-UnknownText_0x7e7ed: ; 0x7e7ed
+UnknownText_0x7e7ed:
 	text "The DIRECTOR of"
 	line "the RADIO STATION"
 	cont "sure was happy."
@@ -82,28 +73,26 @@
 	line "PLANT is running"
 	cont "smoothly again."
 	done
-; 0x7e872
 
-LavenderPokeCenter1F_MapEventHeader: ; 0x7e872
+LavenderPokeCenter1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_NURSE, 5, 7, $6, $0, 255, 255, $0, 0, NurseScript_0x7e6a0, $ffff
-	person_event SPRITE_GENTLEMAN, 10, 11, $5, $1, 255, 255, $0, 0, GentlemanScript_0x7e6a3, $ffff
-	person_event SPRITE_TEACHER, 7, 9, $6, $0, 255, 255, $a0, 0, TeacherScript_0x7e6a6, $ffff
-	person_event SPRITE_YOUNGSTER, 9, 5, $4, $10, 255, 255, $80, 0, YoungsterScript_0x7e6a9, $ffff
-; 0x7e8bb
+	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
--- a/maps/LavenderPokeCenter2FBeta.asm
+++ b/maps/LavenderPokeCenter2FBeta.asm
@@ -1,25 +1,23 @@
-LavenderPokeCenter2FBeta_MapScriptHeader: ; 0x7e8bb
-	; trigger count
+LavenderPokeCenter2FBeta_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x7e8bd
 
-LavenderPokeCenter2FBeta_MapEventHeader: ; 0x7e8bd
+LavenderPokeCenter2FBeta_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $7, $0, 3, GROUP_LAVENDER_POKECENTER_1F, MAP_LAVENDER_POKECENTER_1F
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x7e8c8
--- a/maps/LavenderTown.asm
+++ b/maps/LavenderTown.asm
@@ -1,8 +1,8 @@
 LavenderTown_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -105,7 +105,7 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -115,21 +115,21 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 6
-	signpost 3, 11, $0, LavenderTownSign
-	signpost 7, 15, $0, KantoRadioStationSign
-	signpost 9, 3, $0, VolunteerPokemonHouseSign
-	signpost 13, 15, $0, SoulHouseSign
-	signpost 5, 6, $0, LavenderPokeCenterSignText
-	signpost 5, 2, $0, LavenderMartSignText
+	signpost 3, 11, SIGNPOST_READ, LavenderTownSign
+	signpost 7, 15, SIGNPOST_READ, KantoRadioStationSign
+	signpost 9, 3, SIGNPOST_READ, VolunteerPokemonHouseSign
+	signpost 13, 15, SIGNPOST_READ, SoulHouseSign
+	signpost 5, 6, SIGNPOST_READ, LavenderPokeCenterSignText
+	signpost 5, 2, SIGNPOST_READ, LavenderMartSignText
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_POKEFAN_M, 11, 16, $5, $1, 255, 255, $80, 0, PokefanMScript_0x1ad6e4, $ffff
-	person_event SPRITE_TEACHER, 19, 6, $5, $1, 255, 255, $90, 0, TeacherScript_0x1ad6e7, $ffff
-	person_event SPRITE_GRAMPS, 16, 18, $7, $0, 255, 255, $0, 0, GrampsScript_0x1ad6ea, $ffff
-	person_event SPRITE_YOUNGSTER, 15, 10, $5, $1, 255, 255, $a0, 1, YoungsterScript_0x1ad6ed, $ffff
+	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
--- a/maps/LavenderTownSpeechHouse.asm
+++ b/maps/LavenderTownSpeechHouse.asm
@@ -1,19 +1,17 @@
-LavenderTownSpeechHouse_MapScriptHeader: ; 0x7ea45
-	; trigger count
+LavenderTownSpeechHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x7ea47
 
-PokefanFScript_0x7ea47: ; 0x7ea47
+PokefanFScript_0x7ea47:
 	jumptextfaceplayer UnknownText_0x7ea4d
-; 0x7ea4a
 
 LavenderTownSpeechHouseBookshelf:
 	jumpstd picturebookshelf
 
-UnknownText_0x7ea4d: ; 0x7ea4d
+UnknownText_0x7ea4d:
 	text "LAVENDER is a"
 	line "tiny, quiet town"
 
@@ -26,26 +24,24 @@
 	para "RADIO TOWER was"
 	line "built."
 	done
-; 0x7eac4
 
-LavenderTownSpeechHouse_MapEventHeader: ; 0x7eac4
+LavenderTownSpeechHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 0, $0, LavenderTownSpeechHouseBookshelf
-	signpost 1, 1, $0, LavenderTownSpeechHouseBookshelf
+	signpost 1, 0, SIGNPOST_READ, LavenderTownSpeechHouseBookshelf
+	signpost 1, 1, SIGNPOST_READ, LavenderTownSpeechHouseBookshelf
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_POKEFAN_F, 7, 6, $7, $0, 255, 255, $90, 0, PokefanFScript_0x7ea47, $ffff
-; 0x7eaeb
+	person_event SPRITE_POKEFAN_F, 7, 6, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, PokefanFScript_0x7ea47, -1
--- a/maps/MahoganyGym.asm
+++ b/maps/MahoganyGym.asm
@@ -1,16 +1,15 @@
-MahoganyGym_MapScriptHeader: ; 0x199a9c
-	; trigger count
+MahoganyGym_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x199a9e
 
-PryceScript_0x199a9e: ; 0x199a9e
+PryceScript_0x199a9e:
 	faceplayer
 	loadfont
 	checkevent EVENT_BEAT_PRYCE
-	iftrue UnknownScript_0x199ac8
+	iftrue .FightDone
 	writetext UnknownText_0x199b8d
 	closetext
 	loadmovesprites
@@ -23,10 +22,10 @@
 	writetext UnknownText_0x199d3b
 	playsound SFX_GET_BADGE
 	waitbutton
-	setflag $0021
-	checkcode $7
-	scall UnknownScript_0x199af6
-UnknownScript_0x199ac8: ; 0x199ac8
+	setflag ENGINE_GLACIERBADGE
+	checkcode VAR_BADGES
+	scall MahoganyGymTriggerRockets
+.FightDone
 	checkevent EVENT_GOT_TM16_ICY_WIND
 	iftrue UnknownScript_0x199af0
 	setevent EVENT_BEAT_SKIER_ROXANNE
@@ -36,7 +35,7 @@
 	setevent EVENT_BEAT_BOARDER_DOUGLAS
 	writetext UnknownText_0x199d55
 	keeptextopen
-	verbosegiveitem TM_16, 1
+	verbosegiveitem TM_ICY_WIND, 1
 	iffalse UnknownScript_0x199af4
 	setevent EVENT_GOT_TM16_ICY_WIND
 	writetext UnknownText_0x199def
@@ -43,51 +42,29 @@
 	closetext
 	loadmovesprites
 	end
-; 0x199af0
 
-UnknownScript_0x199af0: ; 0x199af0
+UnknownScript_0x199af0:
 	writetext UnknownText_0x199e59
 	closetext
-UnknownScript_0x199af4: ; 0x199af4
+UnknownScript_0x199af4:
 	loadmovesprites
 	end
-; 0x199af6
 
-UnknownScript_0x199af6: ; 0x199af6
-	if_equal $7, UnknownScript_0x199b02
-	if_equal $6, UnknownScript_0x199aff
+MahoganyGymTriggerRockets:
+	if_equal 7, .RadioTowerRockets
+	if_equal 6, .GoldenrodRockets
 	end
-; 0x199aff
 
-UnknownScript_0x199aff: ; 0x199aff
+.GoldenrodRockets
 	jumpstd goldenrodrockets
-; 0x199b02
 
-UnknownScript_0x199b02: ; 0x199b02
+.RadioTowerRockets
 	jumpstd radiotowerrockets
-; 0x199b05
 
-TrainerSkierRoxanne: ; 0x199b05
-	; bit/flag number
-	dw $592
+TrainerSkierRoxanne:
+	trainer EVENT_BEAT_SKIER_ROXANNE, SKIER, ROXANNE, SkierRoxanneSeenText, SkierRoxanneBeatenText, $0000, SkierRoxanneScript
 
-	; trainer group && trainer id
-	db SKIER, ROXANNE
-
-	; text when seen
-	dw SkierRoxanneSeenText
-
-	; text when trainer beaten
-	dw SkierRoxanneBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SkierRoxanneScript
-; 0x199b11
-
-SkierRoxanneScript: ; 0x199b11
+SkierRoxanneScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19a116
@@ -94,29 +71,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x199b19
 
-TrainerSkierClarissa: ; 0x199b19
-	; bit/flag number
-	dw $593
+TrainerSkierClarissa:
+	trainer EVENT_BEAT_SKIER_CLARISSA, SKIER, CLARISSA, SkierClarissaSeenText, SkierClarissaBeatenText, $0000, SkierClarissaScript
 
-	; trainer group && trainer id
-	db SKIER, CLARISSA
-
-	; text when seen
-	dw SkierClarissaSeenText
-
-	; text when trainer beaten
-	dw SkierClarissaBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SkierClarissaScript
-; 0x199b25
-
-SkierClarissaScript: ; 0x199b25
+SkierClarissaScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19a18f
@@ -123,29 +82,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x199b2d
 
-TrainerBoarderRonald: ; 0x199b2d
-	; bit/flag number
-	dw $40e
+TrainerBoarderRonald:
+	trainer EVENT_BEAT_BOARDER_RONALD, BOARDER, RONALD, BoarderRonaldSeenText, BoarderRonaldBeatenText, $0000, BoarderRonaldScript
 
-	; trainer group && trainer id
-	db BOARDER, RONALD
-
-	; text when seen
-	dw BoarderRonaldSeenText
-
-	; text when trainer beaten
-	dw BoarderRonaldBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw BoarderRonaldScript
-; 0x199b39
-
-BoarderRonaldScript: ; 0x199b39
+BoarderRonaldScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x199f2d
@@ -152,29 +93,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x199b41
 
-TrainerBoarderBrad: ; 0x199b41
-	; bit/flag number
-	dw $40f
+TrainerBoarderBrad:
+	trainer EVENT_BEAT_BOARDER_BRAD, BOARDER, BRAD, BoarderBradSeenText, BoarderBradBeatenText, $0000, BoarderBradScript
 
-	; trainer group && trainer id
-	db BOARDER, BRAD
-
-	; text when seen
-	dw BoarderBradSeenText
-
-	; text when trainer beaten
-	dw BoarderBradBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw BoarderBradScript
-; 0x199b4d
-
-BoarderBradScript: ; 0x199b4d
+BoarderBradScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x199fdd
@@ -181,29 +104,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x199b55
 
-TrainerBoarderDouglas: ; 0x199b55
-	; bit/flag number
-	dw $410
+TrainerBoarderDouglas:
+	trainer EVENT_BEAT_BOARDER_DOUGLAS, BOARDER, DOUGLAS, BoarderDouglasSeenText, BoarderDouglasBeatenText, $0000, BoarderDouglasScript
 
-	; trainer group && trainer id
-	db BOARDER, DOUGLAS
-
-	; text when seen
-	dw BoarderDouglasSeenText
-
-	; text when trainer beaten
-	dw BoarderDouglasBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw BoarderDouglasScript
-; 0x199b61
-
-BoarderDouglasScript: ; 0x199b61
+BoarderDouglasScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19a047
@@ -210,9 +115,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x199b69
 
-MahoganyGymGuyScript: ; 0x199b69
+MahoganyGymGuyScript:
 	faceplayer
 	loadfont
 	checkevent EVENT_BEAT_PRYCE
@@ -227,7 +131,6 @@
 	closetext
 	loadmovesprites
 	end
-; 0x199b7d
 
 MahoganyGymStatue:
 	checkflag ENGINE_GLACIERBADGE
@@ -237,7 +140,7 @@
 	trainertotext PRYCE, 1, $1
 	jumpstd gymstatue2
 
-UnknownText_0x199b8d: ; 0x199b8d
+UnknownText_0x199b8d:
 	text "#MON have many"
 	line "experiences in"
 
@@ -267,9 +170,8 @@
 	para "shall demonstrate"
 	line "my power!"
 	done
-; 0x199cb3
 
-UnknownText_0x199cb3: ; 0x199cb3
+UnknownText_0x199cb3:
 	text "Ah, I am impressed"
 	line "by your prowess."
 
@@ -282,15 +184,13 @@
 	para "You are worthy of"
 	line "this BADGE!"
 	done
-; 0x199d3b
 
-UnknownText_0x199d3b: ; 0x199d3b
+UnknownText_0x199d3b:
 	text "<PLAYER> received"
 	line "GLACIERBADGE."
 	done
-; 0x199d55
 
-UnknownText_0x199d55: ; 0x199d55
+UnknownText_0x199d55:
 	text "That BADGE will"
 	line "raise the SPECIAL"
 	cont "stats of #MON."
@@ -303,9 +203,8 @@
 	para "And this… This is"
 	line "a gift from me!"
 	done
-; 0x199def
 
-UnknownText_0x199def: ; 0x199def
+UnknownText_0x199def:
 	text "That TM contains"
 	line "ICY WIND."
 
@@ -316,9 +215,8 @@
 	line "the harshness of"
 	cont "winter."
 	done
-; 0x199e59
 
-UnknownText_0x199e59: ; 0x199e59
+UnknownText_0x199e59:
 	text "When the ice and"
 	line "snow melt, spring"
 	cont "arrives."
@@ -332,22 +230,19 @@
 	para "Cherish your time"
 	line "together!"
 	done
-; 0x199ee1
 
-BoarderRonaldSeenText: ; 0x199ee1
+BoarderRonaldSeenText:
 	text "I'll freeze your"
 	line "#MON, so you"
 	cont "can't do a thing!"
 	done
-; 0x199f10
 
-BoarderRonaldBeatenText: ; 0x199f10
+BoarderRonaldBeatenText:
 	text "Darn. I couldn't"
 	line "do a thing."
 	done
-; 0x199f2d
 
-UnknownText_0x199f2d: ; 0x199f2d
+UnknownText_0x199f2d:
 	text "I think there's a"
 	line "move a #MON"
 
@@ -354,9 +249,8 @@
 	para "can use while it's"
 	line "frozen."
 	done
-; 0x199f65
 
-BoarderBradSeenText: ; 0x199f65
+BoarderBradSeenText:
 	text "This GYM has a"
 	line "slippery floor."
 
@@ -367,34 +261,29 @@
 	line "not playing games"
 	cont "here!"
 	done
-; 0x199fbd
 
-BoarderBradBeatenText: ; 0x199fbd
+BoarderBradBeatenText:
 	text "Do you see how"
 	line "serious we are?"
 	done
-; 0x199fdd
 
-UnknownText_0x199fdd: ; 0x199fdd
+UnknownText_0x199fdd:
 	text "This GYM is great."
 	line "I love boarding"
 	cont "with my #MON!"
 	done
-; 0x19a00f
 
-BoarderDouglasSeenText: ; 0x19a00f
+BoarderDouglasSeenText:
 	text "I know PRYCE's"
 	line "secret."
 	done
-; 0x19a026
 
-BoarderDouglasBeatenText: ; 0x19a026
+BoarderDouglasBeatenText:
 	text "OK. I'll tell you"
 	line "PRYCE's secret."
 	done
-; 0x19a047
 
-UnknownText_0x19a047: ; 0x19a047
+UnknownText_0x19a047:
 	text "The secret behind"
 	line "PRYCE's power…"
 
@@ -404,9 +293,8 @@
 	para "to strengthen his"
 	line "mind and body."
 	done
-; 0x19a0ae
 
-SkierRoxanneSeenText: ; 0x19a0ae
+SkierRoxanneSeenText:
 	text "To get to PRYCE,"
 	line "our GYM LEADER,"
 
@@ -413,15 +301,13 @@
 	para "you need to think"
 	line "before you skate."
 	done
-; 0x19a0f4
 
-SkierRoxanneBeatenText: ; 0x19a0f4
+SkierRoxanneBeatenText:
 	text "I wouldn't lose to"
 	line "you in skiing!"
 	done
-; 0x19a116
 
-UnknownText_0x19a116: ; 0x19a116
+UnknownText_0x19a116:
 	text "If you don't skate"
 	line "with precision,"
 
@@ -428,28 +314,24 @@
 	para "you won't get far"
 	line "in this GYM."
 	done
-; 0x19a157
 
-SkierClarissaSeenText: ; 0x19a157
+SkierClarissaSeenText:
 	text "Check out my"
 	line "parallel turn!"
 	done
-; 0x19a174
 
-SkierClarissaBeatenText: ; 0x19a174
+SkierClarissaBeatenText:
 	text "No! You made me"
 	line "wipe out!"
 	done
-; 0x19a18f
 
-UnknownText_0x19a18f: ; 0x19a18f
+UnknownText_0x19a18f:
 	text "I shouldn't have"
 	line "been bragging"
 	cont "about my skiing…"
 	done
-; 0x19a1bf
 
-MahoganyGymGuyText: ; 0x19a1bf
+MahoganyGymGuyText:
 	text "PRYCE is a veteran"
 	line "who has trained"
 
@@ -468,9 +350,8 @@
 	para "with your burning"
 	line "ambition!"
 	done
-; 0x19a275
 
-MahoganyGymGuyWinText: ; 0x19a275
+MahoganyGymGuyWinText:
 	text "PRYCE is some-"
 	line "thing, but you're"
 	cont "something else!"
@@ -481,32 +362,30 @@
 	para "bridged the gen-"
 	line "eration gap!"
 	done
-; 0x19a2df
 
-MahoganyGym_MapEventHeader: ; 0x19a2df
+MahoganyGym_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 15, 3, $0, MahoganyGymStatue
-	signpost 15, 6, $0, MahoganyGymStatue
+	signpost 15, 3, SIGNPOST_READ, MahoganyGymStatue
+	signpost 15, 6, SIGNPOST_READ, MahoganyGymStatue
 
-	; people-events
+.PersonEvents:
 	db 7
-	person_event SPRITE_PRYCE, 7, 9, $6, $0, 255, 255, $b0, 0, PryceScript_0x199a9e, $ffff
-	person_event SPRITE_BUENA, 10, 8, $6, $0, 255, 255, $82, 1, TrainerSkierRoxanne, $ffff
-	person_event SPRITE_ROCKER, 21, 4, $7, $0, 255, 255, $92, 1, TrainerBoarderRonald, $ffff
-	person_event SPRITE_BUENA, 21, 13, $7, $0, 255, 255, $82, 1, TrainerSkierClarissa, $ffff
-	person_event SPRITE_ROCKER, 13, 9, $6, $0, 255, 255, $92, 1, TrainerBoarderBrad, $ffff
-	person_event SPRITE_ROCKER, 8, 6, $a, $0, 255, 255, $92, 1, TrainerBoarderDouglas, $ffff
-	person_event SPRITE_GYM_GUY, 19, 11, $6, $0, 255, 255, $80, 0, MahoganyGymGuyScript, $ffff
-; 0x19a354
+	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
--- a/maps/MahoganyMart1F.asm
+++ b/maps/MahoganyMart1F.asm
@@ -1,5 +1,5 @@
-MahoganyMart1F_MapScriptHeader: ; 0x6c349
-	; trigger count
+MahoganyMart1F_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,35 +6,30 @@
 	dw UnknownScript_0x6c356, $0000
 	dw UnknownScript_0x6c357, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 1, UnknownScript_0x6c35b
-; 0x6c356
 
-UnknownScript_0x6c356: ; 0x6c356
+UnknownScript_0x6c356:
 	end
-; 0x6c357
 
-UnknownScript_0x6c357: ; 0x6c357
+UnknownScript_0x6c357:
 	priorityjump UnknownScript_0x6c38f
 	end
-; 0x6c35b
 
-UnknownScript_0x6c35b: ; 0x6c35b
+UnknownScript_0x6c35b:
 	checkevent EVENT_UNCOVERED_STAIRCASE_IN_MAHOGANY_MART
 	iftrue UnknownScript_0x6c362
 	return
-; 0x6c362
 
-UnknownScript_0x6c362: ; 0x6c362
+UnknownScript_0x6c362:
 	changeblock $6, $2, $1e
 	return
-; 0x6c367
 
-PharmacistScript_0x6c367: ; 0x6c367
+PharmacistScript_0x6c367:
 	faceplayer
 	loadfont
 	checkevent EVENT_DECIDED_TO_HELP_LANCE
@@ -42,16 +37,14 @@
 	pokemart $0, $000f
 	loadmovesprites
 	end
-; 0x6c375
 
-UnknownScript_0x6c375: ; 0x6c375
+UnknownScript_0x6c375:
 	writetext UnknownText_0x6c46b
 	closetext
 	loadmovesprites
 	end
-; 0x6c37b
 
-BlackBeltScript_0x6c37b: ; 0x6c37b
+BlackBeltScript_0x6c37b:
 	faceplayer
 	loadfont
 	checkevent EVENT_DECIDED_TO_HELP_LANCE
@@ -60,16 +53,14 @@
 	closetext
 	loadmovesprites
 	end
-; 0x6c389
 
-UnknownScript_0x6c389: ; 0x6c389
+UnknownScript_0x6c389:
 	writetext UnknownText_0x6c501
 	closetext
 	loadmovesprites
 	end
-; 0x6c38f
 
-UnknownScript_0x6c38f: ; 0x6c38f
+UnknownScript_0x6c38f:
 	pause 15
 	loadfont
 	writetext UnknownText_0x6c52a
@@ -94,7 +85,7 @@
 	loadfont
 	writetext UnknownText_0x6c59e
 	closetext
-	showemote $0, $2, 10
+	showemote EMOTE_SHOCK, $2, 10
 	playsound SFX_UNKNOWN_2A
 	changeblock $6, $2, $1e
 	reloadmappart
@@ -111,25 +102,22 @@
 	dotrigger $0
 	waitbutton
 	end
-; 0x6c3ee
 
-GrannyScript_0x6c3ee: ; 0x6c3ee
+GrannyScript_0x6c3ee:
 	faceplayer
 	loadfont
 	pokemart $0, $0010
 	loadmovesprites
 	end
-; 0x6c3f6
 
-MovementData_0x6c3f6: ; 0x6c3f6
+MovementData_0x6c3f6:
 	fix_facing
 	big_step_left
 	big_step_right
 	remove_fixed_facing
 	step_end
-; 0x6c3fb
 
-MovementData_0x6c3fb: ; 0x6c3fb
+MovementData_0x6c3fb:
 	fix_facing
 	big_step_left
 	remove_fixed_facing
@@ -138,41 +126,35 @@
 	turn_head_up
 	turn_head_right
 	step_end
-; 0x6c403
 
-MovementData_0x6c403: ; 0x6c403
+MovementData_0x6c403:
 	fix_facing
 	big_step_left
 	remove_fixed_facing
 	step_end
-; 0x6c407
 
-MovementData_0x6c407: ; 0x6c407
+MovementData_0x6c407:
 	slow_step_left
 	turn_head_down
 	step_end
-; 0x6c40a
 
-MovementData_0x6c40a: ; 0x6c40a
+MovementData_0x6c40a:
 	slow_step_right
 	slow_step_up
 	slow_step_up
 	step_end
-; 0x6c40e
 
-MovementData_0x6c40e: ; 0x6c40e
+MovementData_0x6c40e:
 	slow_step_up
 	slow_step_right
 	slow_step_right
 	step_end
-; 0x6c412
 
-MovementData_0x6c412: ; 0x6c412
+MovementData_0x6c412:
 	slow_step_right
 	step_end
-; 0x6c414
 
-UnknownText_0x6c414: ; 0x6c414
+UnknownText_0x6c414:
 	text "Hello, kiddo!"
 
 	para "How would you like"
@@ -181,16 +163,14 @@
 	para "It's the thing to"
 	line "eat in MAHOGANY!"
 	done
-; 0x6c46b
 
-UnknownText_0x6c46b: ; 0x6c46b
+UnknownText_0x6c46b:
 	text "Arrgh… You found"
 	line "the secret stair-"
 	cont "way…"
 	done
-; 0x6c494
 
-UnknownText_0x6c494: ; 0x6c494
+UnknownText_0x6c494:
 	text "Heheh! The experi-"
 	line "ment worked like a"
 	cont "charm."
@@ -201,23 +181,20 @@
 	para "GYARADOS are big"
 	line "moneymakers."
 	done
-; 0x6c501
 
-UnknownText_0x6c501: ; 0x6c501
+UnknownText_0x6c501:
 	text "Urrgh…"
 
 	para "That guy's dragon"
 	line "#MON are tough…"
 	done
-; 0x6c52a
 
-UnknownText_0x6c52a: ; 0x6c52a
+UnknownText_0x6c52a:
 	text "LANCE: DRAGONITE,"
 	line "HYPER BEAM."
 	done
-; 0x6c549
 
-UnknownText_0x6c549: ; 0x6c549
+UnknownText_0x6c549:
 	text "What took you,"
 	line "<PLAY_G>?"
 
@@ -227,15 +204,13 @@
 	para "signal is coming"
 	line "from here."
 	done
-; 0x6c59e
 
-UnknownText_0x6c59e: ; 0x6c59e
+UnknownText_0x6c59e:
 	text "The stairs are"
 	line "right here."
 	done
-; 0x6c5ba
 
-UnknownText_0x6c5ba: ; 0x6c5ba
+UnknownText_0x6c5ba:
 	text "LANCE: <PLAY_G>, we"
 	line "should split up to"
 
@@ -242,29 +217,27 @@
 	para "check this place."
 	line "I'll go first."
 	done
-; 0x6c5fb
 
-MahoganyMart1F_MapEventHeader: ; 0x6c5fb
+MahoganyMart1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 5
-	person_event SPRITE_PHARMACIST, 7, 8, $6, $0, 255, 255, $0, 0, PharmacistScript_0x6c367, $06da
-	person_event SPRITE_BLACK_BELT, 10, 5, $3, $0, 255, 255, $0, 0, BlackBeltScript_0x6c37b, $06da
-	person_event SPRITE_LANCE, 10, 8, $8, $0, 255, 255, $0, 0, ObjectEvent, $06d5
-	person_event SPRITE_DRAGON, 10, 7, $8, $0, 255, 255, $0, 0, ObjectEvent, $06d5
-	person_event SPRITE_GRANNY, 7, 5, $9, $0, 255, 255, $0, 0, GrannyScript_0x6c3ee, $0736
-; 0x6c651
+	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
--- a/maps/MahoganyPokeCenter1F.asm
+++ b/maps/MahoganyPokeCenter1F.asm
@@ -1,28 +1,23 @@
-MahoganyPokeCenter1F_MapScriptHeader: ; 0x19a354
-	; trigger count
+MahoganyPokeCenter1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x19a356
 
-NurseScript_0x19a356: ; 0x19a356
+NurseScript_0x19a356:
 	jumpstd pokecenternurse
-; 0x19a359
 
-PokefanMScript_0x19a359: ; 0x19a359
+PokefanMScript_0x19a359:
 	jumptextfaceplayer UnknownText_0x19a362
-; 0x19a35c
 
-YoungsterScript_0x19a35c: ; 0x19a35c
+YoungsterScript_0x19a35c:
 	jumptextfaceplayer UnknownText_0x19a3b3
-; 0x19a35f
 
-CooltrainerFScript_0x19a35f: ; 0x19a35f
+CooltrainerFScript_0x19a35f:
 	jumptextfaceplayer UnknownText_0x19a418
-; 0x19a362
 
-UnknownText_0x19a362: ; 0x19a362
+UnknownText_0x19a362:
 	text "What's this? TEAM"
 	line "ROCKET has come"
 	cont "back?"
@@ -31,9 +26,8 @@
 	line "black at LAKE OF"
 	cont "RAGE…"
 	done
-; 0x19a3b3
 
-UnknownText_0x19a3b3: ; 0x19a3b3
+UnknownText_0x19a3b3:
 	text "I stop my #MON"
 	line "from evolving too"
 	cont "early."
@@ -43,9 +37,8 @@
 	cont "fore I let them"
 	cont "evolve."
 	done
-; 0x19a418
 
-UnknownText_0x19a418: ; 0x19a418
+UnknownText_0x19a418:
 	text "#MON do become"
 	line "stronger when they"
 
@@ -53,28 +46,26 @@
 	line "also learn moves"
 	cont "more slowly."
 	done
-; 0x19a46a
 
-MahoganyPokeCenter1F_MapEventHeader: ; 0x19a46a
+MahoganyPokeCenter1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_NURSE, 5, 7, $6, $0, 255, 255, $0, 0, NurseScript_0x19a356, $ffff
-	person_event SPRITE_POKEFAN_M, 6, 11, $2, $11, 255, 255, $80, 0, PokefanMScript_0x19a359, $ffff
-	person_event SPRITE_YOUNGSTER, 7, 5, $9, $0, 255, 255, $a0, 0, YoungsterScript_0x19a35c, $ffff
-	person_event SPRITE_COOLTRAINER_F, 7, 6, $8, $0, 255, 255, $0, 0, CooltrainerFScript_0x19a35f, $ffff
-; 0x19a4b3
+	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
--- a/maps/MahoganyRedGyaradosSpeechHouse.asm
+++ b/maps/MahoganyRedGyaradosSpeechHouse.asm
@@ -1,32 +1,28 @@
-MahoganyRedGyaradosSpeechHouse_MapScriptHeader: ; 0x19997d
-	; trigger count
+MahoganyRedGyaradosSpeechHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x19997f
 
-BlackBeltScript_0x19997f: ; 0x19997f
+BlackBeltScript_0x19997f:
 	jumptextfaceplayer UnknownText_0x19999c
-; 0x199982
 
-TeacherScript_0x199982: ; 0x199982
+TeacherScript_0x199982:
 	faceplayer
 	loadfont
-	checkflag $0013
+	checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
 	iftrue UnknownScript_0x199990
 	writetext UnknownText_0x199a0e
 	closetext
 	loadmovesprites
 	end
-; 0x199990
 
-UnknownScript_0x199990: ; 0x199990
+UnknownScript_0x199990:
 	writetext UnknownText_0x199a3d
 	closetext
 	loadmovesprites
 	end
-; 0x199996
 
 UnknownScript_0x195996:
 	jumpstd picturebookshelf
@@ -34,7 +30,7 @@
 UnknownScript_0x195999:
 	jumpstd magazinebookshelf
 
-UnknownText_0x19999c: ; 0x19999c
+UnknownText_0x19999c:
 	text "I heard that a red"
 	line "GYARADOS appeared"
 	cont "at the LAKE."
@@ -45,16 +41,14 @@
 	para "GYARADOS are rare"
 	line "in that lake…"
 	done
-; 0x199a0e
 
-UnknownText_0x199a0e: ; 0x199a0e
+UnknownText_0x199a0e:
 	text "My favorite radio"
 	line "program? I'd say"
 	cont "#MON MUSIC."
 	done
-; 0x199a3d
 
-UnknownText_0x199a3d: ; 0x199a3d
+UnknownText_0x199a3d:
 	text "I've been hearing"
 	line "laughter on the"
 
@@ -61,25 +55,23 @@
 	para "radio…"
 	line "It's creepy."
 	done
-; 0x199a72
 
-MahoganyRedGyaradosSpeechHouse_MapEventHeader: ; 0x199a72
+MahoganyRedGyaradosSpeechHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_BLACK_BELT, 7, 6, $9, $0, 255, 255, $0, 0, BlackBeltScript_0x19997f, $ffff
-	person_event SPRITE_TEACHER, 9, 10, $4, $10, 255, 255, $90, 0, TeacherScript_0x199982, $ffff
-; 0x199a9c
+	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
--- a/maps/MahoganyTown.asm
+++ b/maps/MahoganyTown.asm
@@ -1,5 +1,5 @@
 MahoganyTown_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,7 +6,7 @@
 	dw .Trigger1, $0000
 	dw .Trigger2, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -23,7 +23,7 @@
 	return
 
 UnknownScript_0x190013:
-	showemote $0, $2, 15
+	showemote EMOTE_SHOCK, $2, 15
 	applymovement $2, MovementData_0x1900a9
 	follow $0, $2
 	applymovement $0, MovementData_0x1900a7
@@ -246,7 +246,7 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -254,21 +254,21 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 2
 	xy_trigger 0, $8, $13, $0, UnknownScript_0x190013, $0, $0
 	xy_trigger 0, $9, $13, $0, UnknownScript_0x190013, $0, $0
 
-	; signposts
+.Signposts:
 	db 4
-	signpost 5, 1, $0, MahoganyTownSign
-	signpost 7, 9, $0, MahoganyTownRagecandybarSign
-	signpost 13, 3, $0, MahoganyGymSign
-	signpost 13, 16, $0, MahoganyTownPokeCenterSign
+	signpost 5, 1, SIGNPOST_READ, MahoganyTownSign
+	signpost 7, 9, SIGNPOST_READ, MahoganyTownRagecandybarSign
+	signpost 13, 3, SIGNPOST_READ, MahoganyGymSign
+	signpost 13, 16, SIGNPOST_READ, MahoganyTownPokeCenterSign
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_POKEFAN_M, 12, 23, $6, $0, 255, 255, $0, 0, PokefanMScript_0x19002e, $0756
-	person_event SPRITE_GRAMPS, 13, 10, $5, $1, 255, 255, $0, 0, GrampsScript_0x19007e, $ffff
-	person_event SPRITE_FISHER, 18, 10, $6, $0, 255, 255, $a0, 0, FisherScript_0x190092, $0757
-	person_event SPRITE_LASS, 12, 16, $6, $0, 255, 255, $0, 0, LassScript_0x190095, $0736
+	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
--- a/maps/ManiasHouse.asm
+++ b/maps/ManiasHouse.asm
@@ -1,12 +1,11 @@
-ManiasHouse_MapScriptHeader: ; 0x9d276
-	; trigger count
+ManiasHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9d278
 
-RockerScript_0x9d278: ; 0x9d278
+RockerScript_0x9d278:
 	faceplayer
 	loadfont
 	checkevent EVENT_MANIA_TOOK_SHUCKIE_OR_LET_YOU_KEEP_HIM
@@ -27,32 +26,28 @@
 	loadmovesprites
 	setevent EVENT_GOT_SHUCKIE
 	end
-; 0x9d2a4
 
-UnknownScript_0x9d2a4: ; 0x9d2a4
-	checkflag $0055
+UnknownScript_0x9d2a4:
+	checkflag ENGINE_SHUCKLE_GIVEN
 	iffalse UnknownScript_0x9d2bc
 	writetext UnknownText_0x9d3ed
 	closetext
 	loadmovesprites
 	end
-; 0x9d2b0
 
-UnknownScript_0x9d2b0: ; 0x9d2b0
+UnknownScript_0x9d2b0:
 	writetext UnknownText_0x9d42f
 	closetext
 	loadmovesprites
 	end
-; 0x9d2b6
 
-UnknownScript_0x9d2b6: ; 0x9d2b6
+UnknownScript_0x9d2b6:
 	writetext UnknownText_0x9d449
 	closetext
 	loadmovesprites
 	end
-; 0x9d2bc
 
-UnknownScript_0x9d2bc: ; 0x9d2bc
+UnknownScript_0x9d2bc:
 	writetext UnknownText_0x9d470
 	yesorno
 	iffalse UnknownScript_0x9d2ee
@@ -66,49 +61,42 @@
 	loadmovesprites
 	setevent EVENT_MANIA_TOOK_SHUCKIE_OR_LET_YOU_KEEP_HIM
 	end
-; 0x9d2df
 
-UnknownScript_0x9d2df: ; 0x9d2df
+UnknownScript_0x9d2df:
 	writetext UnknownText_0x9d4bd
 	closetext
 	loadmovesprites
 	end
-; 0x9d2e5
 
-UnknownScript_0x9d2e5: ; 0x9d2e5
+UnknownScript_0x9d2e5:
 	writetext UnknownText_0x9d4e3
 	closetext
 	loadmovesprites
 	setevent EVENT_MANIA_TOOK_SHUCKIE_OR_LET_YOU_KEEP_HIM
 	end
-; 0x9d2ee
 
-UnknownScript_0x9d2ee: ; 0x9d2ee
+UnknownScript_0x9d2ee:
 	writetext UnknownText_0x9d53f
 	closetext
 	loadmovesprites
 	end
-; 0x9d2f4
 
-UnknownScript_0x9d2f4: ; 0x9d2f4
+UnknownScript_0x9d2f4:
 	writetext UnknownText_0x9d5b0
 	closetext
 	loadmovesprites
 	end
-; 0x9d2fa
 
-UnknownScript_0x9d2fa: ; 0x9d2fa
+UnknownScript_0x9d2fa:
 	writetext UnknownText_0x9d56c
 	closetext
 	loadmovesprites
 	end
-; 0x9d300
 
-UnknownScript_0x9d300: ; 0x9d300
+UnknownScript_0x9d300:
 	jumpstd picturebookshelf
-; 0x9d303
 
-UnknownText_0x9d303: ; 0x9d303
+UnknownText_0x9d303:
 	text "I, I'm in shock!"
 
 	para "A guy about your"
@@ -131,36 +119,31 @@
 	para "after my #MON"
 	line "for a while?"
 	done
-; 0x9d3ed
 
-UnknownText_0x9d3ed: ; 0x9d3ed
+UnknownText_0x9d3ed:
 	text "Oh, thank you!"
 
 	para "Take good care of"
 	line "it, please!"
 	done
-; 0x9d41b
 
-UnknownText_0x9d41b: ; 0x9d41b
+UnknownText_0x9d41b:
 	text "<PLAYER> received a"
 	line "#MON."
 	done
-; 0x9d42f
 
-UnknownText_0x9d42f: ; 0x9d42f
+UnknownText_0x9d42f:
 	text "Your #MON party"
 	line "is full."
 	done
-; 0x9d449
 
-UnknownText_0x9d449: ; 0x9d449
+UnknownText_0x9d449:
 	text "Oh, no… What'll"
 	line "I do if he comes"
 	cont "back?"
 	done
-; 0x9d470
 
-UnknownText_0x9d470: ; 0x9d470
+UnknownText_0x9d470:
 	text "Hi! How's my #-"
 	line "MON?"
 
@@ -168,21 +151,18 @@
 	line "now, so may I have"
 	cont "it back?"
 	done
-; 0x9d4b1
 
-UnknownText_0x9d4b1: ; 0x9d4b1
+UnknownText_0x9d4b1:
 	text "Thank you!"
 	done
-; 0x9d4bd
 
-UnknownText_0x9d4bd: ; 0x9d4bd
+UnknownText_0x9d4bd:
 	text "Hey, you don't"
 	line "have my #MON"
 	cont "with you."
 	done
-; 0x9d4e3
 
-UnknownText_0x9d4e3: ; 0x9d4e3
+UnknownText_0x9d4e3:
 	text "My #MON has"
 	line "come to like you."
 
@@ -192,16 +172,14 @@
 	para "But promise to"
 	line "be good to it!"
 	done
-; 0x9d53f
 
-UnknownText_0x9d53f: ; 0x9d53f
+UnknownText_0x9d53f:
 	text "Oh, no, no… That's"
 	line "the same as being"
 	cont "robbed."
 	done
-; 0x9d56c
 
-UnknownText_0x9d56c: ; 0x9d56c
+UnknownText_0x9d56c:
 	text "For #MON, hap-"
 	line "piness is being"
 
@@ -208,9 +186,8 @@
 	para "with a person who"
 	line "treats them well."
 	done
-; 0x9d5b0
 
-UnknownText_0x9d5b0: ; 0x9d5b0
+UnknownText_0x9d5b0:
 	text "If I take my #-"
 	line "MON back, what are"
 
@@ -217,24 +194,22 @@
 	para "you going to use"
 	line "in battle?"
 	done
-; 0x9d5f0
 
-ManiasHouse_MapEventHeader: ; 0x9d5f0
+ManiasHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_ROCKER, 8, 6, $3, $0, 255, 255, $0, 0, RockerScript_0x9d278, $ffff
-; 0x9d60d
+	person_event SPRITE_ROCKER, 8, 6, OW_DOWN | $3, $0, -1, -1, $0, 0, RockerScript_0x9d278, -1
--- a/maps/MobileBattleRoom.asm
+++ b/maps/MobileBattleRoom.asm
@@ -1,97 +1,88 @@
-MobileBattleRoom_MapScriptHeader: ; 0x1935c4
-	; trigger count
+MobileBattleRoom_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
-	dw UnknownScript_0x1935ce, $0000
-	dw UnknownScript_0x1935d2, $0000
+	dw .Trigger1, $0000
+	dw .Trigger2, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1935ce
 
-UnknownScript_0x1935ce: ; 0x1935ce
-	priorityjump UnknownScript_0x1935d3
+.Trigger1:
+	priorityjump MobileBattleRoom_Initialize
 	end
-; 0x1935d2
 
-UnknownScript_0x1935d2: ; 0x1935d2
+.Trigger2:
 	end
-; 0x1935d3
 
-UnknownScript_0x1935d3: ; 0x1935d3
+MobileBattleRoom_Initialize:
 	dotrigger $1
 	domaptrigger GROUP_POKECENTER_2F, MAP_POKECENTER_2F, $5
 	end
-; 0x1935da
 
-MapMobileBattleRoomSignpost0Script: ; 0x1935da
+MapMobileBattleRoomSignpost0Script:
 	refreshscreen $0
 	special Function1037c2
-	if_equal $1, UnknownScript_0x193619
+	if_equal $1, .one
 	special Function1037eb
-	iffalse UnknownScript_0x193624
-	if_equal $1, UnknownScript_0x1935f4
-	if_equal $2, UnknownScript_0x19360d
-	jump UnknownScript_0x193624
-; 0x1935f4
+	iffalse .false
+	if_equal $1, .one_
+	if_equal $2, .two_
+	jump .false
 
-UnknownScript_0x1935f4: ; 0x1935f4
-	writetext UnknownText_0x193644
+.one_:
+	writetext MobileBattleRoom_HealText
 	pause 20
 	loadmovesprites
-	special Function8c084
+	special FadeBlackBGMap
 	playmusic MUSIC_HEAL
-	special Function1047eb
+	special LoadMapPalettes
 	pause 60
-	special Function8c079
+	special FadeInBGMap
 	special RestartMapMusic
 	refreshscreen $0
-UnknownScript_0x19360d: ; 0x19360d
-	special Function1060a2
+.two_:
+	special Mobile_HealParty
 	special HealParty
 	special Function10383c
-	iftrue UnknownScript_0x193624
-UnknownScript_0x193619: ; 0x193619
+	iftrue .false
+.one:
 	special Function10387b
-	writetext UnknownText_0x193626
+	writetext MobileBattleRoom_EstablishingCommsText
 	closetext
 	reloadmappart
 	special Function101225
-UnknownScript_0x193624: ; 0x193624
+.false:
 	loadmovesprites
 	end
-; 0x193626
 
-UnknownText_0x193626: ; 0x193626
+MobileBattleRoom_EstablishingCommsText:
 	text "Establishing"
 	line "communications…"
 	done
-; 0x193644
 
-UnknownText_0x193644: ; 0x193644
+MobileBattleRoom_HealText:
 	text "Your #MON will"
 	line "be fully healed"
 	cont "before battle."
 	done
-; 0x193673
 
-MobileBattleRoom_MapEventHeader: ; 0x193673
+MobileBattleRoom_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 2, 4, $1, MapMobileBattleRoomSignpost0Script
+	signpost 2, 4, SIGNPOST_UP, MapMobileBattleRoomSignpost0Script
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x193688
--- a/maps/MobileTradeRoomMobile.asm
+++ b/maps/MobileTradeRoomMobile.asm
@@ -1,63 +1,56 @@
-MobileTradeRoomMobile_MapScriptHeader: ; 0x19356c
-	; trigger count
+MobileTradeRoomMobile_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
-	dw UnknownScript_0x193576, $0000
-	dw UnknownScript_0x19357a, $0000
+	dw .Trigger1, $0000
+	dw .Trigger2, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x193576
 
-UnknownScript_0x193576: ; 0x193576
-	priorityjump UnknownScript_0x19357b
+.Trigger1:
+	priorityjump MobileTradeRoomMobile_Initialize
 	end
-; 0x19357a
 
-UnknownScript_0x19357a: ; 0x19357a
+.Trigger2:
 	end
-; 0x19357b
 
-UnknownScript_0x19357b: ; 0x19357b
+MobileTradeRoomMobile_Initialize:
 	dotrigger $1
 	domaptrigger GROUP_POKECENTER_2F, MAP_POKECENTER_2F, $4
 	end
-; 0x193582
 
-MapMobileTradeRoomMobileSignpost0Script: ; 0x193582
+MapMobileTradeRoomMobileSignpost0Script:
 	refreshscreen $0
 	special Function1037c2
-	writetext UnknownText_0x193591
+	writetext MobileTradeRoomMobile_EstablishingCommsText
 	closetext
 	reloadmappart
 	special Function101231
 	loadmovesprites
 	end
-; 0x193591
 
-UnknownText_0x193591: ; 0x193591
+MobileTradeRoomMobile_EstablishingCommsText:
 	text "Establishing"
 	line "communications…"
 	done
-; 0x1935af
 
-MobileTradeRoomMobile_MapEventHeader: ; 0x1935af
+MobileTradeRoomMobile_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 2, 4, $1, MapMobileTradeRoomMobileSignpost0Script
+	signpost 2, 4, SIGNPOST_UP, MapMobileTradeRoomMobileSignpost0Script
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x1935c4
--- a/maps/MountMoon.asm
+++ b/maps/MountMoon.asm
@@ -1,5 +1,5 @@
-MountMoon_MapScriptHeader: ; 0x7407f
-	; trigger count
+MountMoon_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,22 +6,19 @@
 	dw UnknownScript_0x74089, $0000
 	dw UnknownScript_0x7408d, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x74089
 
-UnknownScript_0x74089: ; 0x74089
+UnknownScript_0x74089:
 	priorityjump UnknownScript_0x7408e
 	end
-; 0x7408d
 
-UnknownScript_0x7408d: ; 0x7408d
+UnknownScript_0x7408d:
 	end
-; 0x7408e
 
-UnknownScript_0x7408e: ; 0x7408e
+UnknownScript_0x7408e:
 	spriteface $0, RIGHT
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	special Functionc48f
 	pause 15
 	applymovement $2, MovementData_0x740f9
@@ -41,9 +38,8 @@
 	reloadmapmusic
 	returnafterbattle
 	jump UnknownScript_0x740e3
-; 0x740c3
 
-UnknownScript_0x740c3: ; 0x740c3
+UnknownScript_0x740c3:
 	winlosstext UnknownText_0x7419d, UnknownText_0x742e0
 	setlasttalked $2
 	loadtrainer RIVAL2, 1
@@ -51,9 +47,8 @@
 	reloadmapmusic
 	returnafterbattle
 	jump UnknownScript_0x740e3
-; 0x740d3
 
-UnknownScript_0x740d3: ; 0x740d3
+UnknownScript_0x740d3:
 	winlosstext UnknownText_0x7419d, UnknownText_0x742e0
 	setlasttalked $2
 	loadtrainer RIVAL2, 2
@@ -61,9 +56,8 @@
 	reloadmapmusic
 	returnafterbattle
 	jump UnknownScript_0x740e3
-; 0x740e3
 
-UnknownScript_0x740e3: ; 0x740e3
+UnknownScript_0x740e3:
 	playmusic MUSIC_RIVAL_AFTER
 	loadfont
 	writetext UnknownText_0x741fa
@@ -75,16 +69,14 @@
 	setevent EVENT_BEAT_RIVAL_IN_MT_MOON
 	playmapmusic
 	end
-; 0x740f9
 
-MovementData_0x740f9: ; 0x740f9
+MovementData_0x740f9:
 	step_left
 	step_left
 	step_left
 	step_end
-; 0x740fd
 
-MovementData_0x740fd: ; 0x740fd
+MovementData_0x740fd:
 	step_right
 	step_right
 	step_down
@@ -93,9 +85,8 @@
 	step_down
 	step_down
 	step_end
-; 0x74105
 
-UnknownText_0x74105: ; 0x74105
+UnknownText_0x74105:
 	text $56, " ", $56, " ", $56
 
 	para "It's been a while,"
@@ -114,9 +105,8 @@
 	para "<PLAYER>, now we'll"
 	line "show you!"
 	done
-; 0x7419d
 
-UnknownText_0x7419d: ; 0x7419d
+UnknownText_0x7419d:
 	text $56, " ", $56, " ", $56
 
 	para "I thought I raised"
@@ -128,9 +118,8 @@
 	para "…But it still "
 	line "wasn't enough…"
 	done
-; 0x741fa
 
-UnknownText_0x741fa: ; 0x741fa
+UnknownText_0x741fa:
 	text $56, " ", $56, " ", $56
 
 	para "…You won, fair"
@@ -155,9 +144,8 @@
 	para "how good I am by"
 	line "beating you."
 	done
-; 0x742e0
 
-UnknownText_0x742e0: ; 0x742e0
+UnknownText_0x742e0:
 	text $56, " ", $56, " ", $56
 
 	para "I've repaid my"
@@ -170,13 +158,12 @@
 	line "become the world's"
 	cont "greatest trainer."
 	done
-; 0x74356
 
-MountMoon_MapEventHeader: ; 0x74356
+MountMoon_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -187,13 +174,12 @@
 	warp_def $3, $19, 3, GROUP_MOUNT_MOON, MAP_MOUNT_MOON
 	warp_def $d, $19, 4, GROUP_MOUNT_MOON, MAP_MOUNT_MOON
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_SILVER, 7, 11, $8, $0, 255, 255, $0, 0, ObjectEvent, $077a
-; 0x74391
+	person_event SPRITE_SILVER, 7, 11, OW_LEFT | $0, $0, -1, -1, $0, 0, ObjectEvent, EVENT_MT_MOON_RIVAL
--- a/maps/MountMoonGiftShop.asm
+++ b/maps/MountMoonGiftShop.asm
@@ -1,49 +1,44 @@
-MountMoonGiftShop_MapScriptHeader: ; 0x771a6
-	; trigger count
+MountMoonGiftShop_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x771a8
 
-GrampsScript_0x771a8: ; 0x771a8
+GrampsScript_0x771a8:
 	faceplayer
 	loadfont
 	pokemart $0, $001f
 	loadmovesprites
 	end
-; 0x771b0
 
-LassScript_0x771b0: ; 0x771b0
+LassScript_0x771b0:
 	jumptextfaceplayer UnknownText_0x771b3
-; 0x771b3
 
-UnknownText_0x771b3: ; 0x771b3
+UnknownText_0x771b3:
 	text "When the sun goes"
 	line "down, CLEFAIRY"
 	cont "come out to play."
 	done
-; 0x771e7
 
-MountMoonGiftShop_MapEventHeader: ; 0x771e7
+MountMoonGiftShop_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_GRAMPS, 7, 8, $6, $0, 255, 1, $0, 0, GrampsScript_0x771a8, $ffff
-	person_event SPRITE_GRAMPS, 6, 5, $9, $0, 255, 2, $0, 0, GrampsScript_0x771a8, $ffff
-	person_event SPRITE_LASS, 10, 5, $5, $1, 255, 1, $0, 0, LassScript_0x771b0, $ffff
-	person_event SPRITE_LASS, 8, 9, $4, $10, 255, 2, $0, 0, LassScript_0x771b0, $ffff
-; 0x7722b
+	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
--- a/maps/MountMoonSquare.asm
+++ b/maps/MountMoonSquare.asm
@@ -1,11 +1,11 @@
-MountMoonSquare_MapScriptHeader: ; 0x77086
-	; trigger count
+MountMoonSquare_MapScriptHeader:
+.MapTriggers:
 	db 1
 
 	; triggers
 	dw UnknownScript_0x77092, $0000
 
-	; callback count
+.MapCallbacks:
 	db 2
 
 	; callbacks
@@ -13,29 +13,25 @@
 	dbw 5, UnknownScript_0x77093
 
 	dbw 2, UnknownScript_0x77097
-; 0x77092
 
-UnknownScript_0x77092: ; 0x77092
+UnknownScript_0x77092:
 	end
-; 0x77093
 
-UnknownScript_0x77093: ; 0x77093
-	setevent $00ec
+UnknownScript_0x77093:
+	setevent EVENT_MOUNT_MOON_SQUARE_HIDDEN_MOON_STONE 
 	return
-; 0x77097
 
-UnknownScript_0x77097: ; 0x77097
+UnknownScript_0x77097:
 	disappear $4
 	return
-; 0x7709a
 
-UnknownScript_0x7709a: ; 0x7709a
-	checkflag $0058
-	iftrue UnknownScript_0x77117
-	checkcode $b
-	if_not_equal MONDAY, UnknownScript_0x77117
+UnknownScript_0x7709a:
+	checkflag ENGINE_MT_MOON_SQUARE_CLEFAIRY
+	iftrue .NoDancing
+	checkcode VAR_WEEKDAY
+	if_not_equal MONDAY, .NoDancing
 	checknite
-	iffalse UnknownScript_0x77117
+	iffalse .NoDancing
 	appear $2
 	appear $3
 	applymovement $0, MovementData_0x77121
@@ -63,7 +59,7 @@
 	stopfollow
 	spriteface $2, DOWN
 	pause 10
-	showemote $0, $2, 15
+	showemote EMOTE_SHOCK, $2, 15
 	spriteface $2, DOWN
 	cry CLEFAIRY
 	pause 15
@@ -72,72 +68,59 @@
 	disappear $2
 	disappear $3
 	stopfollow
-	clearevent $00ec
-	setflag $0058
+	clearevent EVENT_MOUNT_MOON_SQUARE_HIDDEN_MOON_STONE
+	setflag ENGINE_MT_MOON_SQUARE_CLEFAIRY
 	end
-; 0x77117
 
-UnknownScript_0x77117: ; 0x77117
+.NoDancing:
 	end
-; 0x77118
 
-MapMountMoonSquareSignpostItem0: ; 0x77118
-	dw $00ec
-	db MOON_STONE
+MapMountMoonSquareSignpostItem0:
+	dwb EVENT_MOUNT_MOON_SQUARE_HIDDEN_MOON_STONE, MOON_STONE
 	
-; 0x7711b
 
-MapMountMoonSquareSignpost1Script: ; 0x7711b
+MapMountMoonSquareSignpost1Script:
 	jumptext UnknownText_0x7713b
-; 0x7711e
 
 MtMoonSquareRock:
 	jumpstd smashrock
 
-MovementData_0x77121: ; 0x77121
+MovementData_0x77121:
 	step_up
 	step_end
-; 0x77123
 
-MovementData_0x77123: ; 0x77123
+MovementData_0x77123:
 	slow_step_down
 	slow_jump_step_down
 	step_end
-; 0x77126
 
-MovementData_0x77126: ; 0x77126
+MovementData_0x77126:
 	slow_jump_step_right
 	step_end
-; 0x77128
 
-MovementData_0x77128: ; 0x77128
+MovementData_0x77128:
 	slow_step_up
 	slow_jump_step_up
 	step_end
-; 0x7712b
 
-MovementData_0x7712b: ; 0x7712b
+MovementData_0x7712b:
 	slow_jump_step_left
 	step_end
-; 0x7712d
 
-MovementData_0x7712d: ; 0x7712d
+MovementData_0x7712d:
 	slow_step_down
 	slow_jump_step_down
 	step_end
-; 0x77130
 
-MovementData_0x77130: ; 0x77130
+MovementData_0x77130:
 	slow_step_down
 	step_end
-; 0x77132
 
-MovementData_0x77132: ; 0x77132
+MovementData_0x77132:
 	slow_step_right
 	step_end
-; 0x77134
 
-MovementData_0x77134: ; 0x77134
+MovementData_0x77134:
 	step_right
 	step_right
 	step_right
@@ -145,36 +128,33 @@
 	step_right
 	step_right
 	step_end
-; 0x7713b
 
-UnknownText_0x7713b: ; 0x7713b
+UnknownText_0x7713b:
 	text "MT.MOON SQUARE"
 	line "DON'T LITTER"
 	done
-; 0x77158
 
-MountMoonSquare_MapEventHeader: ; 0x77158
+MountMoonSquare_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 1
 	xy_trigger 0, $b, $7, $0, UnknownScript_0x7709a, $0, $0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 7, 7, $7, MapMountMoonSquareSignpostItem0
-	signpost 7, 17, $0, MapMountMoonSquareSignpost1Script
+	signpost 7, 7, SIGNPOST_ITEM, MapMountMoonSquareSignpostItem0
+	signpost 7, 17, SIGNPOST_READ, MapMountMoonSquareSignpost1Script
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_FAIRY, 10, 10, $6, $0, 255, 255, $0, 0, ObjectEvent, $0779
-	person_event SPRITE_FAIRY, 10, 11, $6, $0, 255, 255, $0, 0, ObjectEvent, $0779
-	person_event SPRITE_ROCK, 11, 11, $18, $0, 255, 255, $0, 0, MtMoonSquareRock, $0778
-; 0x771a6
+	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
--- a/maps/MountMortar1FInside.asm
+++ b/maps/MountMortar1FInside.asm
@@ -1,32 +1,14 @@
-MountMortar1FInside_MapScriptHeader: ; 0x7de4f
-	; trigger count
+MountMortar1FInside_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x7de51
 
-TrainerPokemaniacMiller: ; 0x7de51
-	; bit/flag number
-	dw $5c4
+TrainerPokemaniacMiller:
+	trainer EVENT_BEAT_POKEMANIAC_MILLER, POKEMANIAC, MILLER, PokemaniacMillerSeenText, PokemaniacMillerBeatenText, $0000, PokemaniacMillerScript
 
-	; trainer group && trainer id
-	db POKEMANIAC, MILLER
-
-	; text when seen
-	dw PokemaniacMillerSeenText
-
-	; text when trainer beaten
-	dw PokemaniacMillerBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PokemaniacMillerScript
-; 0x7de5d
-
-PokemaniacMillerScript: ; 0x7de5d
+PokemaniacMillerScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x7debd
@@ -33,29 +15,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x7de65
 
-TrainerSupernerdMarkus: ; 0x7de65
-	; bit/flag number
-	dw $5c6
+TrainerSupernerdMarkus:
+	trainer EVENT_BEAT_SUPER_NERD_MARKUS, SUPER_NERD, MARKUS, SupernerdMarkusSeenText, SupernerdMarkusBeatenText, $0000, SupernerdMarkusScript
 
-	; trainer group && trainer id
-	db SUPER_NERD, MARKUS
-
-	; text when seen
-	dw SupernerdMarkusSeenText
-
-	; text when trainer beaten
-	dw SupernerdMarkusBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SupernerdMarkusScript
-; 0x7de71
-
-SupernerdMarkusScript: ; 0x7de71
+SupernerdMarkusScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x7df97
@@ -62,58 +26,46 @@
 	closetext
 	loadmovesprites
 	end
-; 0x7de79
 
 MountMortar1FBoulder:
 	jumpstd strengthboulder
 
-ItemFragment_0x7de7c: ; 0x7de7c
+ItemFragment_0x7de7c:
 	db ESCAPE_ROPE, 1
-; 0x7de7e
 
-ItemFragment_0x7de7e: ; 0x7de7e
+ItemFragment_0x7de7e:
 	db MAX_REVIVE, 1
-; 0x7de80
 
-ItemFragment_0x7de80: ; 0x7de80
+ItemFragment_0x7de80:
 	db HYPER_POTION, 1
-; 0x7de82
 
-ItemFragment_0x7de82: ; 0x7de82
+ItemFragment_0x7de82:
 	db MAX_POTION, 1
-; 0x7de84
 
-ItemFragment_0x7de84: ; 0x7de84
+ItemFragment_0x7de84:
 	db NUGGET, 1
-; 0x7de86
 
-ItemFragment_0x7de86: ; 0x7de86
+ItemFragment_0x7de86:
 	db IRON, 1
-; 0x7de88
 
-ItemFragment_0x7de88: ; 0x7de88
+ItemFragment_0x7de88:
 	db ULTRA_BALL, 1
-; 0x7de8a
 
-MapMountMortar1FInsideSignpostItem0: ; 0x7de8a
-	dw $0091
-	db MAX_REPEL
+MapMountMortar1FInsideSignpostItem0:
+	dwb EVENT_MOUNT_MORTAR_1F_INSIDE_HIDDEN_MAX_REPEL, MAX_REPEL
 	
-; 0x7de8d
 
-PokemaniacMillerSeenText: ; 0x7de8d
+PokemaniacMillerSeenText:
 	text "I'm not losing"
 	line "this time!"
 	done
-; 0x7dea7
 
-PokemaniacMillerBeatenText: ; 0x7dea7
+PokemaniacMillerBeatenText:
 	text "I lost to some"
 	line "kid…?"
 	done
-; 0x7debd
 
-UnknownText_0x7debd: ; 0x7debd
+UnknownText_0x7debd:
 	text "A while back, this"
 	line "karate dude wanted"
 
@@ -129,20 +81,17 @@
 	para "his training. I"
 	line "wonder how he is?"
 	done
-; 0x7df6a
 
-SupernerdMarkusSeenText: ; 0x7df6a
+SupernerdMarkusSeenText:
 	text "Hey! HUGH!"
 	done
-; 0x7df76
 
-SupernerdMarkusBeatenText: ; 0x7df76
+SupernerdMarkusBeatenText:
 	text "I mistook you for"
 	line "someone else…"
 	done
-; 0x7df97
 
-UnknownText_0x7df97: ; 0x7df97
+UnknownText_0x7df97:
 	text "I came to explore"
 	line "MT.MORTAR, but I"
 
@@ -155,13 +104,12 @@
 	para "SEADRA that knows"
 	line "WATERFALL?"
 	done
-; 0x7e01d
 
-MountMortar1FInside_MapEventHeader: ; 0x7e01d
+MountMortar1FInside_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -170,23 +118,22 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 11, 30, $7, MapMountMortar1FInsideSignpostItem0
+	signpost 11, 30, SIGNPOST_ITEM, MapMountMortar1FInsideSignpostItem0
 
-	; people-events
+.PersonEvents:
 	db 10
-	person_event SPRITE_BOULDER, 47, 25, $19, $0, 255, 255, $0, 0, MountMortar1FBoulder, $ffff
-	person_event SPRITE_POKE_BALL, 42, 39, $1, $0, 255, 255, $1, 0, ItemFragment_0x7de7c, $067d
-	person_event SPRITE_POKE_BALL, 14, 20, $1, $0, 255, 255, $1, 0, ItemFragment_0x7de7e, $067e
-	person_event SPRITE_POKE_BALL, 31, 14, $1, $0, 255, 255, $1, 0, ItemFragment_0x7de80, $067f
-	person_event SPRITE_POKE_BALL, 24, 26, $1, $0, 255, 255, $1, 0, ItemFragment_0x7de82, $07a6
-	person_event SPRITE_POKE_BALL, 23, 39, $1, $0, 255, 255, $1, 0, ItemFragment_0x7de84, $07a7
-	person_event SPRITE_SUPER_NERD, 47, 37, $8, $0, 255, 255, $92, 3, TrainerPokemaniacMiller, $ffff
-	person_event SPRITE_SUPER_NERD, 32, 28, $a, $0, 255, 255, $b2, 3, TrainerSupernerdMarkus, $ffff
-	person_event SPRITE_POKE_BALL, 20, 12, $1, $0, 255, 255, $1, 0, ItemFragment_0x7de86, $07c8
-	person_event SPRITE_POKE_BALL, 21, 21, $1, $0, 255, 255, $1, 0, ItemFragment_0x7de88, $07c9
-; 0x7e0c8
+	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
--- a/maps/MountMortar1FOutside.asm
+++ b/maps/MountMortar1FOutside.asm
@@ -1,30 +1,25 @@
-MountMortar1FOutside_MapScriptHeader: ; 0x7ddf4
-	; trigger count
+MountMortar1FOutside_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x7ddf6
 
-ItemFragment_0x7ddf6: ; 0x7ddf6
+ItemFragment_0x7ddf6:
 	db ETHER, 1
-; 0x7ddf8
 
-ItemFragment_0x7ddf8: ; 0x7ddf8
+ItemFragment_0x7ddf8:
 	db REVIVE, 1
-; 0x7ddfa
 
-MapMountMortar1FOutsideSignpostItem0: ; 0x7ddfa
-	dw $0090
-	db HYPER_POTION
+MapMountMortar1FOutsideSignpostItem0:
+	dwb EVENT_MOUNT_MORTAR_1F_OUTSIDE_HIDDEN_HYPER_POTION, HYPER_POTION
 	
-; 0x7ddfd
 
-MountMortar1FOutside_MapEventHeader: ; 0x7ddfd
+MountMortar1FOutside_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -36,15 +31,14 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 22, 25, $7, MapMountMortar1FOutsideSignpostItem0
+	signpost 22, 25, SIGNPOST_ITEM, MapMountMortar1FOutsideSignpostItem0
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_POKE_BALL, 19, 17, $1, $0, 255, 255, $1, 0, ItemFragment_0x7ddf6, $067b
-	person_event SPRITE_POKE_BALL, 22, 35, $1, $0, 255, 255, $1, 0, ItemFragment_0x7ddf8, $067c
-; 0x7de4f
+	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
--- a/maps/MountMortar2FInside.asm
+++ b/maps/MountMortar2FInside.asm
@@ -1,32 +1,14 @@
-MountMortar2FInside_MapScriptHeader: ; 0x7e0c8
-	; trigger count
+MountMortar2FInside_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x7e0ca
 
-TrainerSupernerdHugh: ; 0x7e0ca
-	; bit/flag number
-	dw $5c5
+TrainerSupernerdHugh:
+	trainer EVENT_BEAT_SUPER_NERD_HUGH, SUPER_NERD, HUGH, SupernerdHughSeenText, SupernerdHughBeatenText, $0000, SupernerdHughScript
 
-	; trainer group && trainer id
-	db SUPER_NERD, HUGH
-
-	; text when seen
-	dw SupernerdHughSeenText
-
-	; text when trainer beaten
-	dw SupernerdHughBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SupernerdHughScript
-; 0x7e0d6
-
-SupernerdHughScript: ; 0x7e0d6
+SupernerdHughScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x7e10e
@@ -33,49 +15,38 @@
 	closetext
 	loadmovesprites
 	end
-; 0x7e0de
 
-ItemFragment_0x7e0de: ; 0x7e0de
+ItemFragment_0x7e0de:
 	db MAX_POTION, 1
-; 0x7e0e0
 
-ItemFragment_0x7e0e0: ; 0x7e0e0
+ItemFragment_0x7e0e0:
 	db RARE_CANDY, 1
-; 0x7e0e2
 
-ItemFragment_0x7e0e2: ; 0x7e0e2
-	db TM_40, 1
-; 0x7e0e4
+ItemFragment_0x7e0e2:
+	db TM_DEFENSE_CURL, 1
 
-ItemFragment_0x7e0e4: ; 0x7e0e4
+ItemFragment_0x7e0e4:
 	db DRAGON_SCALE, 1
-; 0x7e0e6
 
-ItemFragment_0x7e0e6: ; 0x7e0e6
+ItemFragment_0x7e0e6:
 	db ELIXER, 1
-; 0x7e0e8
 
-ItemFragment_0x7e0e8: ; 0x7e0e8
+ItemFragment_0x7e0e8:
 	db ESCAPE_ROPE, 1
-; 0x7e0ea
 
-MapMountMortar2FInsideSignpostItem0: ; 0x7e0ea
-	dw $0092
-	db FULL_RESTORE
+MapMountMortar2FInsideSignpostItem0:
+	dwb EVENT_MOUNT_MORTAR_2F_INSIDE_HIDDEN_FULL_RESTORE, FULL_RESTORE
 	
-; 0x7e0ed
 
-SupernerdHughSeenText: ; 0x7e0ed
+SupernerdHughSeenText:
 	text "Yo! MARKUS!"
 	done
-; 0x7e0fa
 
-SupernerdHughBeatenText: ; 0x7e0fa
+SupernerdHughBeatenText:
 	text "Sorry, my mistake."
 	done
-; 0x7e10e
 
-UnknownText_0x7e10e: ; 0x7e10e
+UnknownText_0x7e10e:
 	text "I'm investigating"
 	line "MT.MORTAR, but my"
 	cont "pal's gone AWOL."
@@ -86,31 +57,29 @@
 	para "SLOWPOKE that can"
 	line "use STRENGTH?"
 	done
-; 0x7e184
 
-MountMortar2FInside_MapEventHeader: ; 0x7e184
+MountMortar2FInside_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 8, 24, $7, MapMountMortar2FInsideSignpostItem0
+	signpost 8, 24, SIGNPOST_ITEM, MapMountMortar2FInsideSignpostItem0
 
-	; people-events
+.PersonEvents:
 	db 7
-	person_event SPRITE_POKE_BALL, 26, 32, $1, $0, 255, 255, $1, 0, ItemFragment_0x7e0de, $0680
-	person_event SPRITE_POKE_BALL, 37, 6, $1, $0, 255, 255, $1, 0, ItemFragment_0x7e0e0, $0681
-	person_event SPRITE_POKE_BALL, 21, 23, $1, $0, 255, 255, $1, 0, ItemFragment_0x7e0e2, $0682
-	person_event SPRITE_POKE_BALL, 9, 20, $1, $0, 255, 255, $1, 0, ItemFragment_0x7e0e4, $0683
-	person_event SPRITE_POKE_BALL, 15, 13, $1, $0, 255, 255, $1, 0, ItemFragment_0x7e0e6, $0684
-	person_event SPRITE_POKE_BALL, 9, 32, $1, $0, 255, 255, $1, 0, ItemFragment_0x7e0e8, $0685
-	person_event SPRITE_SUPER_NERD, 30, 17, $a, $0, 255, 255, $b2, 2, TrainerSupernerdHugh, $ffff
-; 0x7e1f4
+	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
--- a/maps/MountMortarB1F.asm
+++ b/maps/MountMortarB1F.asm
@@ -1,17 +1,16 @@
-MountMortarB1F_MapScriptHeader: ; 0x7e1f4
-	; trigger count
+MountMortarB1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x7e1f6
 
-BlackBeltScript_0x7e1f6: ; 0x7e1f6
+BlackBeltScript_0x7e1f6:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_TYROGUE_FROM_KIYO
 	iftrue UnknownScript_0x7e231
-	checkevent $04a9
+	checkevent EVENT_BEAT_BLACKBELT_KIYO
 	iftrue UnknownScript_0x7e217
 	writetext UnknownText_0x7e24d
 	closetext
@@ -20,13 +19,13 @@
 	loadtrainer BLACKBELT_T, KIYO
 	startbattle
 	returnafterbattle
-	setevent $04a9
+	setevent EVENT_BEAT_BLACKBELT_KIYO
 	loadfont
-UnknownScript_0x7e217: ; 0x7e217
+UnknownScript_0x7e217:
 	writetext UnknownText_0x7e2c0
 	keeptextopen
 	waitbutton
-	checkcode $1
+	checkcode VAR_PARTYCOUNT
 	if_equal $6, UnknownScript_0x7e237
 	writetext UnknownText_0x7e355
 	playsound SFX_CAUGHT_MON
@@ -33,50 +32,41 @@
 	waitbutton
 	givepoke TYROGUE, 10, 0, 0
 	setevent EVENT_GOT_TYROGUE_FROM_KIYO
-UnknownScript_0x7e231: ; 0x7e231
+UnknownScript_0x7e231:
 	writetext UnknownText_0x7e36a
 	closetext
 	loadmovesprites
 	end
-; 0x7e237
 
-UnknownScript_0x7e237: ; 0x7e237
+UnknownScript_0x7e237:
 	writetext UnknownText_0x7e3df
 	closetext
 	loadmovesprites
 	end
-; 0x7e23d
 
 MountMortarB1FBoulder:
 	jumpstd strengthboulder
 
-ItemFragment_0x7e240: ; 0x7e240
+ItemFragment_0x7e240:
 	db HYPER_POTION, 1
-; 0x7e242
 
-ItemFragment_0x7e242: ; 0x7e242
+ItemFragment_0x7e242:
 	db CARBOS, 1
-; 0x7e244
 
-ItemFragment_0x7e244: ; 0x7e244
+ItemFragment_0x7e244:
 	db FULL_RESTORE, 1
-; 0x7e246
 
-ItemFragment_0x7e246: ; 0x7e246
+ItemFragment_0x7e246:
 	db MAX_ETHER, 1
-; 0x7e248
 
-ItemFragment_0x7e248: ; 0x7e248
+ItemFragment_0x7e248:
 	db PP_UP, 1
-; 0x7e24a
 
-MapMountMortarB1FSignpostItem0: ; 0x7e24a
-	dw $0093
-	db MAX_REVIVE
+MapMountMortarB1FSignpostItem0:
+	dwb EVENT_MOUNT_MORTAR_B1F_HIDDEN_MAX_REVIVE, MAX_REVIVE
 	
-; 0x7e24d
 
-UnknownText_0x7e24d: ; 0x7e24d
+UnknownText_0x7e24d:
 	text "Hey!"
 
 	para "I am the KARATE"
@@ -90,15 +80,13 @@
 
 	para "Hwaaarggh!"
 	done
-; 0x7e2a9
 
-UnknownText_0x7e2a9: ; 0x7e2a9
+UnknownText_0x7e2a9:
 	text "Waaaarggh!"
 	line "I'm beaten!"
 	done
-; 0x7e2c0
 
-UnknownText_0x7e2c0: ; 0x7e2c0
+UnknownText_0x7e2c0:
 	text "I… I'm crushed…"
 
 	para "My training is"
@@ -113,15 +101,13 @@
 	para "give you a rare"
 	line "fighting #MON."
 	done
-; 0x7e355
 
-UnknownText_0x7e355: ; 0x7e355
+UnknownText_0x7e355:
 	text "<PLAYER> received"
 	line "TYROGUE."
 	done
-; 0x7e36a
 
-UnknownText_0x7e36a: ; 0x7e36a
+UnknownText_0x7e36a:
 	text "TYROGUE is a"
 	line "fighting-type."
 
@@ -134,37 +120,34 @@
 
 	para "Farewell!"
 	done
-; 0x7e3df
 
-UnknownText_0x7e3df: ; 0x7e3df
+UnknownText_0x7e3df:
 	text "You have no room"
 	line "in your party!"
 	done
-; 0x7e400
 
-MountMortarB1F_MapEventHeader: ; 0x7e400
+MountMortarB1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 6, 4, $7, MapMountMortarB1FSignpostItem0
+	signpost 6, 4, SIGNPOST_ITEM, MapMountMortarB1FSignpostItem0
 
-	; people-events
+.PersonEvents:
 	db 7
-	person_event SPRITE_POKE_BALL, 16, 33, $1, $0, 255, 255, $1, 0, ItemFragment_0x7e240, $0686
-	person_event SPRITE_POKE_BALL, 20, 8, $1, $0, 255, 255, $1, 0, ItemFragment_0x7e242, $0687
-	person_event SPRITE_BOULDER, 14, 13, $19, $0, 255, 255, $0, 0, MountMortarB1FBoulder, $ffff
-	person_event SPRITE_BLACK_BELT, 8, 20, $6, $0, 255, 255, $b0, 0, BlackBeltScript_0x7e1f6, $ffff
-	person_event SPRITE_POKE_BALL, 28, 38, $1, $0, 255, 255, $1, 0, ItemFragment_0x7e244, $07ca
-	person_event SPRITE_POKE_BALL, 7, 36, $1, $0, 255, 255, $1, 0, ItemFragment_0x7e246, $07cb
-	person_event SPRITE_POKE_BALL, 30, 25, $1, $0, 255, 255, $1, 0, ItemFragment_0x7e248, $07cc
-; 0x7e470
+	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
--- a/maps/MoveDeletersHouse.asm
+++ b/maps/MoveDeletersHouse.asm
@@ -1,8 +1,8 @@
 MoveDeletersHouse_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 MoveDeleter:
@@ -20,19 +20,19 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 0, $0, MoveDeletersHouseBookshelf
-	signpost 1, 1, $0, MoveDeletersHouseBookshelf
+	signpost 1, 0, SIGNPOST_READ, MoveDeletersHouseBookshelf
+	signpost 1, 1, SIGNPOST_READ, MoveDeletersHouseBookshelf
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_SUPER_NERD, 7, 6, $6, $0, 255, 255, $0, 0, MoveDeleter, $ffff
+	person_event SPRITE_SUPER_NERD, 7, 6, OW_UP | $2, $0, -1, -1, $0, 0, MoveDeleter, -1
--- a/maps/MrFujisHouse.asm
+++ b/maps/MrFujisHouse.asm
@@ -1,18 +1,15 @@
-MrFujisHouse_MapScriptHeader: ; 0x7e8c8
-	; trigger count
+MrFujisHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x7e8ca
 
-SuperNerdScript_0x7e8ca: ; 0x7e8ca
+SuperNerdScript_0x7e8ca:
 	jumptextfaceplayer UnknownText_0x7e8f1
-; 0x7e8cd
 
-LassScript_0x7e8cd: ; 0x7e8cd
+LassScript_0x7e8cd:
 	jumptextfaceplayer UnknownText_0x7e940
-; 0x7e8d0
 
 MrFujisPsyduck:
 	loadfont
@@ -41,7 +38,7 @@
 MrFujisHouseBookshelf:
 	jumpstd difficultbookshelf
 
-UnknownText_0x7e8f1: ; 0x7e8f1
+UnknownText_0x7e8f1:
 	text "MR.FUJI does live"
 	line "here, but he's not"
 
@@ -50,9 +47,8 @@
 	para "He should be at"
 	line "the SOUL HOUSE."
 	done
-; 0x7e940
 
-UnknownText_0x7e940: ; 0x7e940
+UnknownText_0x7e940:
 	text "Some cold-hearted"
 	line "people stop caring"
 	cont "for their #MON."
@@ -63,7 +59,6 @@
 	para "#MON and takes"
 	line "care of them."
 	done
-; 0x7e9b6
 
 MrFujisPsyduckText:
 	text "PSYDUCK: Gu-guwa?"
@@ -77,27 +72,27 @@
 	text "PIDGEY: Pijji!"
 	done
 
-MrFujisHouse_MapEventHeader: ; 0x7e9ea
+MrFujisHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 0, $0, MrFujisHouseBookshelf
-	signpost 1, 1, $0, MrFujisHouseBookshelf
+	signpost 1, 0, SIGNPOST_READ, MrFujisHouseBookshelf
+	signpost 1, 1, SIGNPOST_READ, MrFujisHouseBookshelf
 
-	; people-events
+.PersonEvents:
 	db 5
-	person_event SPRITE_SUPER_NERD, 5, 8, $6, $0, 255, 255, $a0, 0, SuperNerdScript_0x7e8ca, $ffff
-	person_event SPRITE_LASS, 8, 7, $2, $11, 255, 255, $0, 0, LassScript_0x7e8cd, $ffff
-	person_event SPRITE_RHYDON, 8, 11, $16, $0, 255, 255, $0, 0, MrFujisPsyduck, $ffff
-	person_event SPRITE_GROWLITHE, 9, 9, $16, $0, 255, 255, $90, 0, MrFujisNidorino, $ffff
-	person_event SPRITE_MOLTRES, 7, 5, $16, $0, 255, 255, $b0, 0, MrFujisPidgey, $ffff
+	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
--- a/maps/MrPokemonsHouse.asm
+++ b/maps/MrPokemonsHouse.asm
@@ -1,5 +1,5 @@
-MrPokemonsHouse_MapScriptHeader: ; 0x196e47
-	; trigger count
+MrPokemonsHouse_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,21 +6,18 @@
 	dw UnknownScript_0x196e51, $0000
 	dw UnknownScript_0x196e55, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x196e51
 
-UnknownScript_0x196e51: ; 0x196e51
+UnknownScript_0x196e51:
 	priorityjump UnknownScript_0x196e56
 	end
-; 0x196e55
 
-UnknownScript_0x196e55: ; 0x196e55
+UnknownScript_0x196e55:
 	end
-; 0x196e56
 
-UnknownScript_0x196e56: ; 0x196e56
-	showemote $0, $2, 15
+UnknownScript_0x196e56:
+	showemote EMOTE_SHOCK, $2, 15
 	spriteface $2, DOWN
 	loadfont
 	writetext UnknownText_0x196f66
@@ -49,9 +46,8 @@
 	closetext
 	loadmovesprites
 	jump UnknownScript_0x196ec9
-; 0x196e97
 
-GentlemanScript_0x196e97: ; 0x196e97
+GentlemanScript_0x196e97:
 	faceplayer
 	loadfont
 	checkitem RED_SCALE
@@ -62,16 +58,14 @@
 	closetext
 	loadmovesprites
 	end
-; 0x196eaa
 
-UnknownScript_0x196eaa: ; 0x196eaa
+UnknownScript_0x196eaa:
 	writetext UnknownText_0x19714a
 	closetext
 	loadmovesprites
 	end
-; 0x196eb0
 
-UnknownScript_0x196eb0: ; 0x196eb0
+UnknownScript_0x196eb0:
 	writetext UnknownText_0x197476
 	yesorno
 	iffalse UnknownScript_0x196ec3
@@ -79,17 +73,15 @@
 	iffalse UnknownScript_0x196ec7
 	takeitem RED_SCALE, 1
 	jump UnknownScript_0x196eaa
-; 0x196ec3
 
-UnknownScript_0x196ec3: ; 0x196ec3
+UnknownScript_0x196ec3:
 	writetext UnknownText_0x19750d
 	closetext
-UnknownScript_0x196ec7: ; 0x196ec7
+UnknownScript_0x196ec7:
 	loadmovesprites
 	end
-; 0x196ec9
 
-UnknownScript_0x196ec9: ; 0x196ec9
+UnknownScript_0x196ec9:
 	playmusic MUSIC_PROF_OAK
 	applymovement $3, MovementData_0x196f5d
 	spriteface $0, RIGHT
@@ -100,7 +92,7 @@
 	writetext UnknownText_0x1973cc
 	playsound SFX_ITEM
 	waitbutton
-	setflag $000b
+	setflag ENGINE_POKEDEX
 	writetext UnknownText_0x1973de
 	closetext
 	loadmovesprites
@@ -116,78 +108,69 @@
 	writetext UnknownText_0x1970ed
 	closetext
 	loadmovesprites
-	special Function8c0b6
-	special Functiond91
+	special Special_FadeBlackQuickly
+	special Special_ReloadSpritesNoPalettes
 	playmusic MUSIC_HEAL
-	special Function1060a2
+	special Mobile_HealParty
 	special HealParty
 	pause 60
-	special Function8c0ab
+	special Special_FadeInQuickly
 	special RestartMapMusic
 	loadfont
 	writetext UnknownText_0x197134
 	closetext
 	loadmovesprites
-	setevent $06bd
-	setevent $0792
-	clearevent $0793
+	setevent EVENT_RIVAL_NEW_BARK_TOWN
+	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
-	specialphonecall $2
-	clearevent $0702
+	specialphonecall ELMCALL_ROBBED
+	clearevent EVENT_COP_IN_ELMS_LAB
 	checkevent EVENT_GOT_TOTODILE_FROM_ELM
 	iftrue UnknownScript_0x196f49
 	checkevent EVENT_GOT_CHIKORITA_FROM_ELM
 	iftrue UnknownScript_0x196f4d
-	setevent $0641
+	setevent EVENT_TOTODILE_POKEBALL_IN_ELMS_LAB
 	end
-; 0x196f49
 
-UnknownScript_0x196f49: ; 0x196f49
-	setevent $0642
+UnknownScript_0x196f49:
+	setevent EVENT_CHIKORITA_POKEBALL_IN_ELMS_LAB
 	end
-; 0x196f4d
 
-UnknownScript_0x196f4d: ; 0x196f4d
-	setevent $0640
+UnknownScript_0x196f4d:
+	setevent EVENT_CYNDAQUIL_POKEBALL_IN_ELMS_LAB
 	end
-; 0x196f51
 
-MapMrPokemonsHouseSignpost1Script: ; 0x196f51
+MapMrPokemonsHouseSignpost1Script:
 	jumptext UnknownText_0x197543
-; 0x196f54
 
-MapMrPokemonsHouseSignpost3Script: ; 0x196f54
+MapMrPokemonsHouseSignpost3Script:
 	jumptext UnknownText_0x197584
-; 0x196f57
 
-MapMrPokemonsHouseSignpost4Script: ; 0x196f57
+MapMrPokemonsHouseSignpost4Script:
 	jumptext UnknownText_0x1975ac
-; 0x196f5a
 
-MovementData_0x196f5a: ; 0x196f5a
+MovementData_0x196f5a:
 	step_right
 	step_up
 	step_end
-; 0x196f5d
 
-MovementData_0x196f5d: ; 0x196f5d
+MovementData_0x196f5d:
 	step_down
 	step_left
 	step_left
 	step_end
-; 0x196f61
 
-MovementData_0x196f61: ; 0x196f61
+MovementData_0x196f61:
 	step_down
 	step_left
 	turn_head_down
 	db $3f ; movement
 	step_end
-; 0x196f66
 
-UnknownText_0x196f66: ; 0x196f66
+UnknownText_0x196f66:
 	text "Hello, hello! You"
 	line "must be <PLAY_G>."
 
@@ -194,22 +177,19 @@
 	para "PROF.ELM said that"
 	line "you would visit."
 	done
-; 0x196fa8
 
-UnknownText_0x196fa8: ; 0x196fa8
+UnknownText_0x196fa8:
 	text "This is what I"
 	line "want PROF.ELM to"
 	cont "examine."
 	done
-; 0x196fd2
 
-UnknownText_0x196fd2: ; 0x196fd2
+UnknownText_0x196fd2:
 	text "<PLAYER> received"
 	line "MYSTERY EGG."
 	done
-; 0x196feb
 
-UnknownText_0x196feb: ; 0x196feb
+UnknownText_0x196feb:
 	text "I know a couple"
 	line "who run a #MON"
 	cont "DAY-CARE service."
@@ -225,22 +205,19 @@
 	line "tion, PROF.ELM is"
 	cont "the authority."
 	done
-; 0x197092
 
-UnknownText_0x197092: ; 0x197092
+UnknownText_0x197092:
 	text "Even PROF.OAK here"
 	line "recognizes that."
 	done
-; 0x1970b7
 
-UnknownText_0x1970b7: ; 0x1970b7
+UnknownText_0x1970b7:
 	text "If my assumption"
 	line "is correct, PROF."
 	cont "ELM will know it."
 	done
-; 0x1970ed
 
-UnknownText_0x1970ed: ; 0x1970ed
+UnknownText_0x1970ed:
 	text "You are returning"
 	line "to PROF.ELM?"
 
@@ -248,15 +225,13 @@
 	line "should have some"
 	cont "rest."
 	done
-; 0x197134
 
-UnknownText_0x197134: ; 0x197134
+UnknownText_0x197134:
 	text "I'm depending on"
 	line "you!"
 	done
-; 0x19714a
 
-UnknownText_0x19714a: ; 0x19714a
+UnknownText_0x19714a:
 	text "Life is delight-"
 	line "ful! Always, new"
 
@@ -263,9 +238,8 @@
 	para "discoveries to be"
 	line "made!"
 	done
-; 0x197185
 
-UnknownText_0x197185: ; 0x197185
+UnknownText_0x197185:
 	text "OAK: Aha! So"
 	line "you're <PLAY_G>!"
 
@@ -328,15 +302,13 @@
 	para "It's a hi-tech"
 	line "encyclopedia!"
 	done
-; 0x1973cc
 
-UnknownText_0x1973cc: ; 0x1973cc
+UnknownText_0x1973cc:
 	text "<PLAYER> received"
 	line "#DEX!"
 	done
-; 0x1973de
 
-UnknownText_0x1973de: ; 0x1973de
+UnknownText_0x1973de:
 	text "Go meet many kinds"
 	line "of #MON and"
 
@@ -353,9 +325,8 @@
 	para "<PLAY_G>, I'm"
 	line "counting on you!"
 	done
-; 0x197476
 
-UnknownText_0x197476: ; 0x197476
+UnknownText_0x197476:
 	text "Hm? That SCALE!"
 	line "What's that?"
 	cont "A red GYARADOS?"
@@ -370,16 +341,14 @@
 	line "EXP.SHARE I got"
 	cont "from PROF.OAK."
 	done
-; 0x19750d
 
-UnknownText_0x19750d: ; 0x19750d
+UnknownText_0x19750d:
 	text "That's disappoint-"
 	line "ing. That happens"
 	cont "to be very rare."
 	done
-; 0x197543
 
-UnknownText_0x197543: ; 0x197543
+UnknownText_0x197543:
 	text "It's packed with"
 	line "foreign magazines."
 
@@ -386,16 +355,14 @@
 	para "Can't even read"
 	line "their titles…"
 	done
-; 0x197584
 
-UnknownText_0x197584: ; 0x197584
+UnknownText_0x197584:
 	text "It's a big com-"
 	line "puter. Hmm. It's"
 	cont "broken."
 	done
-; 0x1975ac
 
-UnknownText_0x1975ac: ; 0x1975ac
+UnknownText_0x1975ac:
 	text "A whole pile of"
 	line "strange coins!"
 
@@ -402,30 +369,28 @@
 	para "Maybe they're from"
 	line "another country…"
 	done
-; 0x1975ef
 
-MrPokemonsHouse_MapEventHeader: ; 0x1975ef
+MrPokemonsHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 5
-	signpost 1, 0, $0, MapMrPokemonsHouseSignpost1Script
-	signpost 1, 1, $0, MapMrPokemonsHouseSignpost1Script
-	signpost 1, 6, $0, MapMrPokemonsHouseSignpost3Script
-	signpost 1, 7, $0, MapMrPokemonsHouseSignpost3Script
-	signpost 4, 6, $0, MapMrPokemonsHouseSignpost4Script
+	signpost 1, 0, SIGNPOST_READ, MapMrPokemonsHouseSignpost1Script
+	signpost 1, 1, SIGNPOST_READ, MapMrPokemonsHouseSignpost1Script
+	signpost 1, 6, SIGNPOST_READ, MapMrPokemonsHouseSignpost3Script
+	signpost 1, 7, SIGNPOST_READ, MapMrPokemonsHouseSignpost3Script
+	signpost 4, 6, SIGNPOST_READ, MapMrPokemonsHouseSignpost4Script
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_GENTLEMAN, 9, 7, $9, $0, 255, 255, $0, 0, GentlemanScript_0x196e97, $ffff
-	person_event SPRITE_OAK, 9, 10, $7, $0, 255, 255, $0, 0, ObjectEvent, $06c9
-; 0x197632
+	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
--- a/maps/MrPsychicsHouse.asm
+++ b/maps/MrPsychicsHouse.asm
@@ -1,8 +1,8 @@
 MrPsychicsHouse_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 MrPsychic:
@@ -12,7 +12,7 @@
 	iftrue .AlreadyGotItem
 	writetext MrPsychicText1
 	keeptextopen
-	verbosegiveitem TM_29, 1
+	verbosegiveitem TM_PSYCHIC, 1
 	iffalse .Done
 	setevent EVENT_GOT_TM29_PSYCHIC
 .AlreadyGotItem
@@ -48,19 +48,19 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 0, $0, MrPsychicsHouseBookshelf
-	signpost 1, 1, $0, MrPsychicsHouseBookshelf
+	signpost 1, 0, SIGNPOST_READ, MrPsychicsHouseBookshelf
+	signpost 1, 1, SIGNPOST_READ, MrPsychicsHouseBookshelf
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_FISHING_GURU, 7, 9, $8, $0, 255, 255, $a0, 0, MrPsychic, $ffff
+	person_event SPRITE_FISHING_GURU, 7, 9, OW_LEFT | $0, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, MrPsychic, -1
--- a/maps/NationalPark.asm
+++ b/maps/NationalPark.asm
@@ -1,20 +1,17 @@
-NationalPark_MapScriptHeader: ; 0x5c000
-	; trigger count
+NationalPark_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x5c002
 
-LassScript_0x5c002: ; 0x5c002
+LassScript_0x5c002:
 	jumptextfaceplayer UnknownText_0x5c1d3
-; 0x5c005
 
-PokefanFScript_0x5c005: ; 0x5c005
+PokefanFScript_0x5c005:
 	jumptextfaceplayer UnknownText_0x5c22e
-; 0x5c008
 
-TeacherScript_0x5c008: ; 0x5c008
+TeacherScript_0x5c008:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_QUICK_CLAW
@@ -24,27 +21,23 @@
 	verbosegiveitem QUICK_CLAW, 1
 	iffalse UnknownScript_0x5c021
 	setevent EVENT_GOT_QUICK_CLAW
-UnknownScript_0x5c01d: ; 0x5c01d
+UnknownScript_0x5c01d:
 	writetext UnknownText_0x5c30d
 	closetext
-UnknownScript_0x5c021: ; 0x5c021
+UnknownScript_0x5c021:
 	loadmovesprites
 	end
-; 0x5c023
 
-YoungsterScript_0x5c023: ; 0x5c023
+YoungsterScript_0x5c023:
 	jumptextfaceplayer UnknownText_0x5c35d
-; 0x5c026
 
-YoungsterScript_0x5c026: ; 0x5c026
+YoungsterScript_0x5c026:
 	jumptextfaceplayer UnknownText_0x5c38f
-; 0x5c029
 
-TeacherScript_0x5c029: ; 0x5c029
+TeacherScript_0x5c029:
 	jumptextfaceplayer UnknownText_0x5c3bc
-; 0x5c02c
 
-GrowlitheScript_0x5c02c: ; 0x5c02c
+GrowlitheScript_0x5c02c:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x5c416
@@ -52,9 +45,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5c037
 
-GameboyKidScript_0x5c037: ; 0x5c037
+GameboyKidScript_0x5c037:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x5c42a
@@ -62,177 +54,128 @@
 	loadmovesprites
 	spriteface $e, DOWN
 	end
-; 0x5c042
 
-TrainerSchoolboyJack1: ; 0x5c042
-	; bit/flag number
-	dw $46c
+TrainerSchoolboyJack1:
+	trainer EVENT_BEAT_SCHOOLBOY_JACK, SCHOOLBOY, JACK1, SchoolboyJack1SeenText, SchoolboyJack1BeatenText, $0000, SchoolboyJack1Script
 
-	; trainer group && trainer id
-	db SCHOOLBOY, JACK1
-
-	; text when seen
-	dw SchoolboyJack1SeenText
-
-	; text when trainer beaten
-	dw SchoolboyJack1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SchoolboyJack1Script
-; 0x5c04e
-
-SchoolboyJack1Script: ; 0x5c04e
-	writecode $17, $5
+SchoolboyJack1Script:
+	writecode VAR_CALLERID, PHONE_SCHOOLBOY_JACK
 	talkaftercancel
 	loadfont
-	checkflag $0065
+	checkflag ENGINE_JACK
 	iftrue UnknownScript_0x5c088
-	checkcellnum $5
+	checkcellnum PHONE_SCHOOLBOY_JACK
 	iftrue UnknownScript_0x5c108
-	checkevent $025f
+	checkevent EVENT_JACK_ASKED_FOR_PHONE_NUMBER
 	iftrue UnknownScript_0x5c071
 	writetext UnknownText_0x5c4f3
 	keeptextopen
-	setevent $025f
+	setevent EVENT_JACK_ASKED_FOR_PHONE_NUMBER
 	scall UnknownScript_0x5c0fc
 	jump UnknownScript_0x5c074
-; 0x5c071
 
-UnknownScript_0x5c071: ; 0x5c071
+UnknownScript_0x5c071:
 	scall UnknownScript_0x5c100
-UnknownScript_0x5c074: ; 0x5c074
-	askforphonenumber $5
+UnknownScript_0x5c074:
+	askforphonenumber PHONE_SCHOOLBOY_JACK
 	if_equal $1, UnknownScript_0x5c110
 	if_equal $2, UnknownScript_0x5c10c
 	trainertotext SCHOOLBOY, JACK1, $0
 	scall UnknownScript_0x5c104
 	jump UnknownScript_0x5c108
-; 0x5c088
 
-UnknownScript_0x5c088: ; 0x5c088
+UnknownScript_0x5c088:
 	scall UnknownScript_0x5c114
 	winlosstext SchoolboyJack1BeatenText, $0000
-	copybytetovar wd9f2
-	if_equal $4, UnknownScript_0x5c0a7
-	if_equal $3, UnknownScript_0x5c0ad
-	if_equal $2, UnknownScript_0x5c0b3
-	if_equal $1, UnknownScript_0x5c0b9
-	if_equal $0, UnknownScript_0x5c0bf
-UnknownScript_0x5c0a7: ; 0x5c0a7
+	copybytetovar wJackFightCount
+	if_equal 4, .Fight4
+	if_equal 3, .Fight3
+	if_equal 2, .Fight2
+	if_equal 1, .Fight1
+	if_equal 0, .LoadFight0
+.Fight4
 	checkevent EVENT_RESTORED_POWER_TO_KANTO
-	iftrue UnknownScript_0x5c0f3
-UnknownScript_0x5c0ad: ; 0x5c0ad
+	iftrue .LoadFight4
+.Fight3
 	checkevent EVENT_BEAT_ELITE_FOUR
-	iftrue UnknownScript_0x5c0e6
-UnknownScript_0x5c0b3: ; 0x5c0b3
+	iftrue .LoadFight3
+.Fight2
 	checkevent EVENT_CLEARED_RADIO_TOWER
-	iftrue UnknownScript_0x5c0d9
-UnknownScript_0x5c0b9: ; 0x5c0b9
-	checkflag $0047
-	iftrue UnknownScript_0x5c0cc
-UnknownScript_0x5c0bf: ; 0x5c0bf
+	iftrue .LoadFight2
+.Fight1
+	checkflag ENGINE_FLYPOINT_OLIVINE
+	iftrue .LoadFight1
+.LoadFight0
 	loadtrainer SCHOOLBOY, JACK1
 	startbattle
 	returnafterbattle
-	loadvar wd9f2, $1
-	clearflag $0065
+	loadvar wJackFightCount, 1
+	clearflag ENGINE_JACK
 	end
-; 0x5c0cc
 
-UnknownScript_0x5c0cc: ; 0x5c0cc
+.LoadFight1
 	loadtrainer SCHOOLBOY, JACK2
 	startbattle
 	returnafterbattle
-	loadvar wd9f2, $2
-	clearflag $0065
+	loadvar wJackFightCount, 2
+	clearflag ENGINE_JACK
 	end
-; 0x5c0d9
 
-UnknownScript_0x5c0d9: ; 0x5c0d9
+.LoadFight2
 	loadtrainer SCHOOLBOY, JACK3
 	startbattle
 	returnafterbattle
-	loadvar wd9f2, $3
-	clearflag $0065
+	loadvar wJackFightCount, 3
+	clearflag ENGINE_JACK
 	end
-; 0x5c0e6
 
-UnknownScript_0x5c0e6: ; 0x5c0e6
+.LoadFight3
 	loadtrainer SCHOOLBOY, JACK4
 	startbattle
 	returnafterbattle
-	loadvar wd9f2, $4
-	clearflag $0065
+	loadvar wJackFightCount, 4
+	clearflag ENGINE_JACK
 	end
-; 0x5c0f3
 
-UnknownScript_0x5c0f3: ; 0x5c0f3
+.LoadFight4
 	loadtrainer SCHOOLBOY, JACK5
 	startbattle
 	returnafterbattle
-	clearflag $0065
+	clearflag ENGINE_JACK
 	end
-; 0x5c0fc
 
-UnknownScript_0x5c0fc: ; 0x5c0fc
+UnknownScript_0x5c0fc:
 	jumpstd asknumber1m
 	end
-; 0x5c100
 
-UnknownScript_0x5c100: ; 0x5c100
+UnknownScript_0x5c100:
 	jumpstd asknumber2m
 	end
-; 0x5c104
 
-UnknownScript_0x5c104: ; 0x5c104
+UnknownScript_0x5c104:
 	jumpstd registerednumberm
 	end
-; 0x5c108
 
-UnknownScript_0x5c108: ; 0x5c108
+UnknownScript_0x5c108:
 	jumpstd numberacceptedm
 	end
-; 0x5c10c
 
-UnknownScript_0x5c10c: ; 0x5c10c
+UnknownScript_0x5c10c:
 	jumpstd numberdeclinedm
 	end
-; 0x5c110
 
-UnknownScript_0x5c110: ; 0x5c110
+UnknownScript_0x5c110:
 	jumpstd phonefullm
 	end
-; 0x5c114
 
-UnknownScript_0x5c114: ; 0x5c114
+UnknownScript_0x5c114:
 	jumpstd rematchm
 	end
-; 0x5c118
 
-TrainerPokefanmWilliam: ; 0x5c118
-	; bit/flag number
-	dw $4cd
+TrainerPokefanmWilliam:
+	trainer EVENT_BEAT_POKEFANM_WILLIAM, POKEFANM, WILLIAM, PokefanmWilliamSeenText, PokefanmWilliamBeatenText, $0000, PokefanmWilliamScript
 
-	; trainer group && trainer id
-	db POKEFANM, WILLIAM
-
-	; text when seen
-	dw PokefanmWilliamSeenText
-
-	; text when trainer beaten
-	dw PokefanmWilliamBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PokefanmWilliamScript
-; 0x5c124
-
-PokefanmWilliamScript: ; 0x5c124
+PokefanmWilliamScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5c645
@@ -239,138 +182,90 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5c12c
 
-TrainerPokefanfBeverly1: ; 0x5c12c
-	; bit/flag number
-	dw $4d9
+TrainerPokefanfBeverly1:
+	trainer EVENT_BEAT_POKEFANF_BEVERLY, POKEFANF, BEVERLY1, PokefanfBeverly1SeenText, PokefanfBeverly1BeatenText, $0000, PokefanfBeverly1Script
 
-	; trainer group && trainer id
-	db POKEFANF, BEVERLY1
-
-	; text when seen
-	dw PokefanfBeverly1SeenText
-
-	; text when trainer beaten
-	dw PokefanfBeverly1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PokefanfBeverly1Script
-; 0x5c138
-
-PokefanfBeverly1Script: ; 0x5c138
-	writecode $17, $6
+PokefanfBeverly1Script:
+	writecode VAR_CALLERID, PHONE_POKEFAN_BEVERLY
 	talkaftercancel
 	loadfont
-	checkflag $007d
+	checkflag ENGINE_BEVERLY_HAS_NUGGET
 	iftrue UnknownScript_0x5c177
-	checkcellnum $6
+	checkcellnum PHONE_POKEFAN_BEVERLY
 	iftrue UnknownScript_0x5c19b
 	checkpoke MARILL
 	iffalse UnknownScript_0x5c189
-	checkevent EVENT_SHOWED_BEVERLY_MARILL
+	checkevent EVENT_BEVERLY_ASKED_FOR_PHONE_NUMBER
 	iftrue UnknownScript_0x5c160
 	writetext UnknownText_0x5c5bd
 	keeptextopen
-	setevent EVENT_SHOWED_BEVERLY_MARILL
+	setevent EVENT_BEVERLY_ASKED_FOR_PHONE_NUMBER
 	scall UnknownScript_0x5c18f
 	jump UnknownScript_0x5c163
-; 0x5c160
 
-UnknownScript_0x5c160: ; 0x5c160
+UnknownScript_0x5c160:
 	scall UnknownScript_0x5c193
-UnknownScript_0x5c163: ; 0x5c163
-	askforphonenumber $6
+UnknownScript_0x5c163:
+	askforphonenumber PHONE_POKEFAN_BEVERLY
 	if_equal $1, UnknownScript_0x5c1a3
 	if_equal $2, UnknownScript_0x5c19f
 	trainertotext POKEFANF, BEVERLY1, $0
 	scall UnknownScript_0x5c197
 	jump UnknownScript_0x5c19b
-; 0x5c177
 
-UnknownScript_0x5c177: ; 0x5c177
+UnknownScript_0x5c177:
 	scall UnknownScript_0x5c1a7
 	verbosegiveitem NUGGET, 1
 	iffalse UnknownScript_0x5c186
-	clearflag $007d
+	clearflag ENGINE_BEVERLY_HAS_NUGGET
 	jump UnknownScript_0x5c19b
-; 0x5c186
 
-UnknownScript_0x5c186: ; 0x5c186
+UnknownScript_0x5c186:
 	jump UnknownScript_0x5c1ab
-; 0x5c189
 
-UnknownScript_0x5c189: ; 0x5c189
+UnknownScript_0x5c189:
 	writetext UnknownText_0x5c68a
 	closetext
 	loadmovesprites
 	end
-; 0x5c18f
 
-UnknownScript_0x5c18f: ; 0x5c18f
+UnknownScript_0x5c18f:
 	jumpstd asknumber1f
 	end
-; 0x5c193
 
-UnknownScript_0x5c193: ; 0x5c193
+UnknownScript_0x5c193:
 	jumpstd asknumber2f
 	end
-; 0x5c197
 
-UnknownScript_0x5c197: ; 0x5c197
+UnknownScript_0x5c197:
 	jumpstd registerednumberf
 	end
-; 0x5c19b
 
-UnknownScript_0x5c19b: ; 0x5c19b
+UnknownScript_0x5c19b:
 	jumpstd numberacceptedf
 	end
-; 0x5c19f
 
-UnknownScript_0x5c19f: ; 0x5c19f
+UnknownScript_0x5c19f:
 	jumpstd numberdeclinedf
 	end
-; 0x5c1a3
 
-UnknownScript_0x5c1a3: ; 0x5c1a3
+UnknownScript_0x5c1a3:
 	jumpstd phonefullf
 	end
-; 0x5c1a7
 
-UnknownScript_0x5c1a7: ; 0x5c1a7
+UnknownScript_0x5c1a7:
 	jumpstd giftf
 	end
-; 0x5c1ab
 
-UnknownScript_0x5c1ab: ; 0x5c1ab
+UnknownScript_0x5c1ab:
 	jumpstd packfullf
 	end
-; 0x5c1af
 
-TrainerLassKrise: ; 0x5c1af
-	; bit/flag number
-	dw $518
+TrainerLassKrise:
+	trainer EVENT_BEAT_LASS_KRISE, LASS, KRISE, LassKriseSeenText, LassKriseBeatenText, $0000, LassKriseScript
 
-	; trainer group && trainer id
-	db LASS, KRISE
-
-	; text when seen
-	dw LassKriseSeenText
-
-	; text when trainer beaten
-	dw LassKriseBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw LassKriseScript
-; 0x5c1bb
-
-LassKriseScript: ; 0x5c1bb
+LassKriseScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5c71d
@@ -377,35 +272,27 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5c1c3
 
-MapNationalParkSignpost0Script: ; 0x5c1c3
+MapNationalParkSignpost0Script:
 	jumptext UnknownText_0x5c750
-; 0x5c1c6
 
-MapNationalParkSignpost1Script: ; 0x5c1c6
+MapNationalParkSignpost1Script:
 	jumptext UnknownText_0x5c771
-; 0x5c1c9
 
-MapNationalParkSignpost3Script: ; 0x5c1c9
+MapNationalParkSignpost3Script:
 	jumptext UnknownText_0x5c7c6
-; 0x5c1cc
 
-ItemFragment_0x5c1cc: ; 0x5c1cc
+ItemFragment_0x5c1cc:
 	db PARLYZ_HEAL, 1
-; 0x5c1ce
 
-ItemFragment_0x5c1ce: ; 0x5c1ce
-	db TM_28, 1
-; 0x5c1d0
+ItemFragment_0x5c1ce:
+	db TM_DIG, 1
 
-MapNationalParkSignpostItem2: ; 0x5c1d0
-	dw $0084
-	db FULL_HEAL
+MapNationalParkSignpostItem2:
+	dwb EVENT_NATIONAL_PARK_HIDDEN_FULL_HEAL, FULL_HEAL
 	
-; 0x5c1d3
 
-UnknownText_0x5c1d3: ; 0x5c1d3
+UnknownText_0x5c1d3:
 	text "Look! Check out my"
 	line "bag!"
 
@@ -415,16 +302,14 @@
 	para "#DEX and stuck"
 	line "them on my bag."
 	done
-; 0x5c22e
 
-UnknownText_0x5c22e: ; 0x5c22e
+UnknownText_0x5c22e:
 	text "This is MAIL I got"
 	line "from my daughter."
 	cont "It cheers me up."
 	done
-; 0x5c265
 
-UnknownText_0x5c265: ; 0x5c265
+UnknownText_0x5c265:
 	text "Pay attention,"
 	line "please!"
 
@@ -443,9 +328,8 @@
 	para "want you to have"
 	line "this."
 	done
-; 0x5c30d
 
-UnknownText_0x5c30d: ; 0x5c30d
+UnknownText_0x5c30d:
 	text "Let a #MON hold"
 	line "that QUICK CLAW."
 
@@ -453,23 +337,20 @@
 	line "strike first"
 	cont "during battle."
 	done
-; 0x5c35d
 
-UnknownText_0x5c35d: ; 0x5c35d
+UnknownText_0x5c35d:
 	text "I'm playing with"
 	line "stickers I printed"
 	cont "from my #DEX."
 	done
-; 0x5c38f
 
-UnknownText_0x5c38f: ; 0x5c38f
+UnknownText_0x5c38f:
 	text "I get the other"
 	line "guy's #DEX"
 	cont "sticker if I win."
 	done
-; 0x5c3bc
 
-UnknownText_0x5c3bc: ; 0x5c3bc
+UnknownText_0x5c3bc:
 	text "I take walks in"
 	line "the PARK, but I"
 
@@ -479,14 +360,12 @@
 	para "Trainers always"
 	line "want to battle…"
 	done
-; 0x5c416
 
-UnknownText_0x5c416: ; 0x5c416
+UnknownText_0x5c416:
 	text "PERSIAN: Fufushaa!"
 	done
-; 0x5c42a
 
-UnknownText_0x5c42a: ; 0x5c42a
+UnknownText_0x5c42a:
 	text "I'm printing out"
 	line "my #DEX."
 
@@ -496,9 +375,8 @@
 	para "MAIL and your PC"
 	line "BOXES."
 	done
-; 0x5c47e
 
-SchoolboyJack1SeenText: ; 0x5c47e
+SchoolboyJack1SeenText:
 	text "The world of"
 	line "#MON is deep."
 
@@ -509,14 +387,12 @@
 	para "But I know more"
 	line "than you do!"
 	done
-; 0x5c4e4
 
-SchoolboyJack1BeatenText: ; 0x5c4e4
+SchoolboyJack1BeatenText:
 	text "Wha-wha-what?"
 	done
-; 0x5c4f3
 
-UnknownText_0x5c4f3: ; 0x5c4f3
+UnknownText_0x5c4f3:
 	text "There is a lot"
 	line "to learn."
 
@@ -528,9 +404,8 @@
 	para "Traded #MON"
 	line "level up faster."
 	done
-; 0x5c552
 
-PokefanfBeverly1SeenText: ; 0x5c552
+PokefanfBeverly1SeenText:
 	text "My #MON are"
 	line "simply darling."
 
@@ -538,22 +413,19 @@
 	line "how proud my"
 	cont "darlings make me."
 	done
-; 0x5c59e
 
-PokefanfBeverly1BeatenText: ; 0x5c59e
+PokefanfBeverly1BeatenText:
 	text "I can beat you in"
 	line "pride, but…"
 	done
-; 0x5c5bd
 
-UnknownText_0x5c5bd: ; 0x5c5bd
+UnknownText_0x5c5bd:
 	text "I must say, your"
 	line "#MON are quite"
 	cont "cute, too."
 	done
-; 0x5c5e9
 
-PokefanmWilliamSeenText: ; 0x5c5e9
+PokefanmWilliamSeenText:
 	text "We adore our #-"
 	line "MON, even if they"
 	cont "dislike us."
@@ -561,14 +433,12 @@
 	para "That's what being"
 	line "a FAN is about."
 	done
-; 0x5c639
 
-PokefanmWilliamBeatenText: ; 0x5c639
+PokefanmWilliamBeatenText:
 	text "M-my #MON!"
 	done
-; 0x5c645
 
-UnknownText_0x5c645: ; 0x5c645
+UnknownText_0x5c645:
 	text "I lost the battle,"
 	line "but my #MON win"
 
@@ -575,9 +445,8 @@
 	para "the prize for"
 	line "being most lovely."
 	done
-; 0x5c68a
 
-UnknownText_0x5c68a: ; 0x5c68a
+UnknownText_0x5c68a:
 	text "My friend keeps a"
 	line "MARILL!"
 
@@ -587,35 +456,30 @@
 	para "Oh, I wish for a"
 	line "MARILL of my own…"
 	done
-; 0x5c6e4
 
-LassKriseSeenText: ; 0x5c6e4
+LassKriseSeenText:
 	text "Hello? Why are you"
 	line "staring at me?"
 
 	para "Oh, a battle?"
 	done
-; 0x5c715
 
-LassKriseBeatenText: ; 0x5c715
+LassKriseBeatenText:
 	text "…Hmmm…"
 	done
-; 0x5c71d
 
-UnknownText_0x5c71d: ; 0x5c71d
+UnknownText_0x5c71d:
 	text "I thought you were"
 	line "staring at me"
 	cont "because I'm cute!"
 	done
-; 0x5c750
 
-UnknownText_0x5c750: ; 0x5c750
+UnknownText_0x5c750:
 	text "RELAXATION SQUARE"
 	line "NATIONAL PARK"
 	done
-; 0x5c771
 
-UnknownText_0x5c771: ; 0x5c771
+UnknownText_0x5c771:
 	text "What is this"
 	line "notice?"
 
@@ -625,9 +489,8 @@
 	para "NATIONAL PARK"
 	line "WARDEN'S OFFICE"
 	done
-; 0x5c7c6
 
-UnknownText_0x5c7c6: ; 0x5c7c6
+UnknownText_0x5c7c6:
 	text "TRAINER TIPS"
 
 	para "Print out MAIL by"
@@ -634,13 +497,12 @@
 	line "opening it then"
 	cont "pressing START."
 	done
-; 0x5c806
 
-NationalPark_MapEventHeader: ; 0x5c806
+NationalPark_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -647,30 +509,29 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 4
-	signpost 44, 14, $0, MapNationalParkSignpost0Script
-	signpost 31, 27, $0, MapNationalParkSignpost1Script
-	signpost 47, 6, $7, MapNationalParkSignpostItem2
-	signpost 4, 12, $0, MapNationalParkSignpost3Script
+	signpost 44, 14, SIGNPOST_READ, MapNationalParkSignpost0Script
+	signpost 31, 27, SIGNPOST_READ, MapNationalParkSignpost1Script
+	signpost 47, 6, SIGNPOST_ITEM, MapNationalParkSignpostItem2
+	signpost 4, 12, SIGNPOST_READ, MapNationalParkSignpost3Script
 
-	; people-events
+.PersonEvents:
 	db 14
-	person_event SPRITE_LASS, 28, 19, $5, $1, 255, 255, $a0, 0, LassScript_0x5c002, $ffff
-	person_event SPRITE_POKEFAN_F, 8, 18, $6, $0, 255, 255, $0, 0, PokefanFScript_0x5c005, $ffff
-	person_event SPRITE_TEACHER, 44, 31, $6, $0, 255, 255, $a0, 0, TeacherScript_0x5c008, $ffff
-	person_event SPRITE_YOUNGSTER, 45, 15, $8, $0, 255, 255, $0, 0, YoungsterScript_0x5c023, $ffff
-	person_event SPRITE_YOUNGSTER, 45, 14, $6, $0, 255, 255, $80, 0, YoungsterScript_0x5c026, $ffff
-	person_event SPRITE_TEACHER, 45, 21, $2, $21, 255, 255, $0, 0, TeacherScript_0x5c029, $ffff
-	person_event SPRITE_GROWLITHE, 44, 30, $16, $0, 255, 255, $0, 0, GrowlitheScript_0x5c02c, $ffff
-	person_event SPRITE_YOUNGSTER, 27, 31, $a, $0, 255, 255, $92, 3, TrainerSchoolboyJack1, $ffff
-	person_event SPRITE_POKEFAN_F, 33, 22, $a, $0, 255, 255, $82, 2, TrainerPokefanfBeverly1, $ffff
-	person_event SPRITE_POKEFAN_M, 13, 20, $a, $0, 255, 255, $82, 2, TrainerPokefanmWilliam, $ffff
-	person_event SPRITE_LASS, 18, 12, $a, $0, 255, 255, $92, 3, TrainerLassKrise, $ffff
-	person_event SPRITE_POKE_BALL, 16, 39, $1, $0, 255, 255, $1, 0, ItemFragment_0x5c1cc, $0658
-	person_event SPRITE_GAMEBOY_KID, 10, 30, $6, $0, 255, 255, $0, 0, GameboyKidScript_0x5c037, $ffff
-	person_event SPRITE_POKE_BALL, 47, 5, $1, $0, 255, 255, $1, 0, ItemFragment_0x5c1ce, $0659
-; 0x5c8ea
+	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
--- a/maps/NationalParkBugContest.asm
+++ b/maps/NationalParkBugContest.asm
@@ -1,12 +1,11 @@
-NationalParkBugContest_MapScriptHeader: ; 0x5c8ea
-	; trigger count
+NationalParkBugContest_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x5c8ec
 
-YoungsterScript_0x5c8ec: ; 0x5c8ec
+YoungsterScript_0x5c8ec:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x5c94c
@@ -13,9 +12,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5c8f4
 
-YoungsterScript_0x5c8f4: ; 0x5c8f4
+YoungsterScript_0x5c8f4:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x5c973
@@ -22,9 +20,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5c8fc
 
-RockerScript_0x5c8fc: ; 0x5c8fc
+RockerScript_0x5c8fc:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x5c9a3
@@ -31,9 +28,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5c904
 
-PokefanMScript_0x5c904: ; 0x5c904
+PokefanMScript_0x5c904:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x5c9cc
@@ -40,9 +36,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5c90c
 
-YoungsterScript_0x5c90c: ; 0x5c90c
+YoungsterScript_0x5c90c:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x5ca15
@@ -49,9 +44,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5c914
 
-YoungsterScript_0x5c914: ; 0x5c914
+YoungsterScript_0x5c914:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x5ca52
@@ -58,9 +52,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5c91c
 
-LassScript_0x5c91c: ; 0x5c91c
+LassScript_0x5c91c:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x5ca8f
@@ -67,9 +60,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5c924
 
-YoungsterScript_0x5c924: ; 0x5c924
+YoungsterScript_0x5c924:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x5cac8
@@ -76,9 +68,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5c92c
 
-YoungsterScript_0x5c92c: ; 0x5c92c
+YoungsterScript_0x5c92c:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x5cb25
@@ -85,9 +76,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5c934
 
-YoungsterScript_0x5c934: ; 0x5c934
+YoungsterScript_0x5c934:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x5cb64
@@ -94,56 +84,45 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5c93c
 
-MapNationalParkBugContestSignpost0Script: ; 0x5c93c
+MapNationalParkBugContestSignpost0Script:
 	jumptext UnknownText_0x5cba7
-; 0x5c93f
 
-MapNationalParkBugContestSignpost1Script: ; 0x5c93f
+MapNationalParkBugContestSignpost1Script:
 	jumptext UnknownText_0x5cbc8
-; 0x5c942
 
-MapNationalParkBugContestSignpost3Script: ; 0x5c942
+MapNationalParkBugContestSignpost3Script:
 	jumptext UnknownText_0x5cc1d
-; 0x5c945
 
-ItemFragment_0x5c945: ; 0x5c945
+ItemFragment_0x5c945:
 	db PARLYZ_HEAL, 1
-; 0x5c947
 
-ItemFragment_0x5c947: ; 0x5c947
-	db TM_28, 1
-; 0x5c949
+ItemFragment_0x5c947:
+	db TM_DIG, 1
 
-MapNationalParkBugContestSignpostItem2: ; 0x5c949
-	dw $0084
-	db FULL_HEAL
+MapNationalParkBugContestSignpostItem2:
+	dwb EVENT_NATIONAL_PARK_HIDDEN_FULL_HEAL, FULL_HEAL
 	
-; 0x5c94c
 
-UnknownText_0x5c94c: ; 0x5c94c
+UnknownText_0x5c94c:
 	text "DON: I'm going to"
 	line "win! Don't bother"
 	cont "me."
 	done
-; 0x5c973
 
-UnknownText_0x5c973: ; 0x5c973
+UnknownText_0x5c973:
 	text "ED: My PARASECT"
 	line "puts #MON to"
 	cont "sleep with SPORE."
 	done
-; 0x5c9a3
 
-UnknownText_0x5c9a3: ; 0x5c9a3
+UnknownText_0x5c9a3:
 	text "NICK: I'm raising"
 	line "fast #MON for"
 	cont "battles."
 	done
-; 0x5c9cc
 
-UnknownText_0x5c9cc: ; 0x5c9cc
+UnknownText_0x5c9cc:
 	text "WILLIAM: I'm not"
 	line "concerned about"
 	cont "winning."
@@ -151,9 +130,8 @@
 	para "I'm just looking"
 	line "for rare #MON."
 	done
-; 0x5ca15
 
-UnknownText_0x5ca15: ; 0x5ca15
+UnknownText_0x5ca15:
 	text "BENNY: Ssh! You'll"
 	line "scare off SCYTHER."
 
@@ -160,9 +138,8 @@
 	para "I'll talk to you"
 	line "later."
 	done
-; 0x5ca52
 
-UnknownText_0x5ca52: ; 0x5ca52
+UnknownText_0x5ca52:
 	text "BARRY: You should"
 	line "weaken bug #MON"
 
@@ -169,9 +146,8 @@
 	para "first, then throw"
 	line "a BALL."
 	done
-; 0x5ca8f
 
-UnknownText_0x5ca8f: ; 0x5ca8f
+UnknownText_0x5ca8f:
 	text "CINDY: I love bug"
 	line "#MON."
 
@@ -178,9 +154,8 @@
 	para "I guess you must"
 	line "like them too."
 	done
-; 0x5cac8
 
-UnknownText_0x5cac8: ; 0x5cac8
+UnknownText_0x5cac8:
 	text "JOSH: I've been"
 	line "collecting bug"
 
@@ -190,9 +165,8 @@
 	para "There's no way I'm"
 	line "going to lose!"
 	done
-; 0x5cb25
 
-UnknownText_0x5cb25: ; 0x5cb25
+UnknownText_0x5cb25:
 	text "SAMUEL: If you've"
 	line "got the time to"
 
@@ -199,9 +173,8 @@
 	para "chat, go find some"
 	line "bug #MON."
 	done
-; 0x5cb64
 
-UnknownText_0x5cb64: ; 0x5cb64
+UnknownText_0x5cb64:
 	text "KIPP: I've studied"
 	line "about bug #MON"
 	cont "a lot."
@@ -209,15 +182,13 @@
 	para "I'm going to win"
 	line "for sure."
 	done
-; 0x5cba7
 
-UnknownText_0x5cba7: ; 0x5cba7
+UnknownText_0x5cba7:
 	text "RELAXATION SQUARE"
 	line "NATIONAL PARK"
 	done
-; 0x5cbc8
 
-UnknownText_0x5cbc8: ; 0x5cbc8
+UnknownText_0x5cbc8:
 	text "What is this"
 	line "notice?"
 
@@ -227,9 +198,8 @@
 	para "NATIONAL PARK"
 	line "WARDEN'S OFFICE"
 	done
-; 0x5cc1d
 
-UnknownText_0x5cc1d: ; 0x5cc1d
+UnknownText_0x5cc1d:
 	text "TRAINER TIPS"
 
 	para "Print out MAIL by"
@@ -236,13 +206,12 @@
 	line "opening it then"
 	cont "pressing START."
 	done
-; 0x5cc5d
 
-NationalParkBugContest_MapEventHeader: ; 0x5cc5d
+NationalParkBugContest_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -249,28 +218,27 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 4
-	signpost 44, 14, $0, MapNationalParkBugContestSignpost0Script
-	signpost 31, 27, $0, MapNationalParkBugContestSignpost1Script
-	signpost 47, 6, $7, MapNationalParkBugContestSignpostItem2
-	signpost 4, 12, $0, MapNationalParkBugContestSignpost3Script
+	signpost 44, 14, SIGNPOST_READ, MapNationalParkBugContestSignpost0Script
+	signpost 31, 27, SIGNPOST_READ, MapNationalParkBugContestSignpost1Script
+	signpost 47, 6, SIGNPOST_ITEM, MapNationalParkBugContestSignpostItem2
+	signpost 4, 12, SIGNPOST_READ, MapNationalParkBugContestSignpost3Script
 
-	; people-events
+.PersonEvents:
 	db 12
-	person_event SPRITE_YOUNGSTER, 33, 23, $2, $22, 255, 255, $80, 0, YoungsterScript_0x5c8ec, $0716
-	person_event SPRITE_YOUNGSTER, 26, 32, $2, $22, 255, 255, $a0, 0, YoungsterScript_0x5c8f4, $0717
-	person_event SPRITE_ROCKER, 22, 13, $7, $0, 255, 255, $90, 0, RockerScript_0x5c8fc, $0718
-	person_event SPRITE_POKEFAN_M, 17, 11, $4, $1, 255, 255, $b0, 0, PokefanMScript_0x5c904, $0719
-	person_event SPRITE_YOUNGSTER, 13, 27, $3, $0, 255, 255, $80, 0, YoungsterScript_0x5c90c, $071a
-	person_event SPRITE_YOUNGSTER, 17, 31, $2, $33, 255, 255, $a0, 0, YoungsterScript_0x5c914, $071b
-	person_event SPRITE_LASS, 27, 11, $5, $2, 255, 255, $90, 0, LassScript_0x5c91c, $071c
-	person_event SPRITE_YOUNGSTER, 31, 15, $2, $11, 255, 255, $80, 0, YoungsterScript_0x5c924, $071d
-	person_event SPRITE_YOUNGSTER, 12, 20, $2, $11, 255, 255, $a0, 0, YoungsterScript_0x5c92c, $071e
-	person_event SPRITE_YOUNGSTER, 38, 21, $2, $33, 255, 255, $90, 0, YoungsterScript_0x5c934, $071f
-	person_event SPRITE_POKE_BALL, 16, 39, $1, $0, 255, 255, $1, 0, ItemFragment_0x5c945, $0658
-	person_event SPRITE_POKE_BALL, 47, 5, $1, $0, 255, 255, $1, 0, ItemFragment_0x5c947, $0659
-; 0x5cd27
+	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
--- a/maps/NewBarkTown.asm
+++ b/maps/NewBarkTown.asm
@@ -1,5 +1,5 @@
 NewBarkTown_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,7 +6,7 @@
 	dw .Trigger1, $0000
 	dw .Trigger2, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -20,7 +20,7 @@
 
 .FlyPoint
 	setflag ENGINE_FLYPOINT_NEW_BARK
-	clearevent $0076
+	clearevent EVENT_FIRST_TIME_BANKING_WITH_MOM
 	return
 
 UnknownScript_0x1a8016:
@@ -284,7 +284,7 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -291,20 +291,20 @@
 	warp_def $b, $3, 1, GROUP_KRISS_NEIGHBORS_HOUSE, MAP_KRISS_NEIGHBORS_HOUSE
 	warp_def $d, $b, 1, GROUP_ELMS_HOUSE, MAP_ELMS_HOUSE
 
-	; xy triggers
+.XYTriggers:
 	db 2
 	xy_trigger 0, $8, $1, $0, UnknownScript_0x1a8016, $0, $0
 	xy_trigger 0, $9, $1, $0, UnknownScript_0x1a8041, $0, $0
 
-	; signposts
+.Signposts:
 	db 4
-	signpost 8, 8, $0, MapNewBarkTownSignpost0Script
-	signpost 5, 11, $0, MapNewBarkTownSignpost1Script
-	signpost 3, 3, $0, MapNewBarkTownSignpost2Script
-	signpost 13, 9, $0, MapNewBarkTownSignpost3Script
+	signpost 8, 8, SIGNPOST_READ, MapNewBarkTownSignpost0Script
+	signpost 5, 11, SIGNPOST_READ, MapNewBarkTownSignpost1Script
+	signpost 3, 3, SIGNPOST_READ, MapNewBarkTownSignpost2Script
+	signpost 13, 9, SIGNPOST_READ, MapNewBarkTownSignpost3Script
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_TEACHER, 12, 10, $3, $1, 255, 255, $0, 0, TeacherScript_0x1a806f, $ffff
-	person_event SPRITE_FISHER, 13, 16, $4, $10, 255, 255, $a0, 0, FisherScript_0x1a809b, $ffff
-	person_event SPRITE_SILVER, 6, 7, $9, $0, 255, 255, $0, 0, SilverScript_0x1a809e, $06bd
+	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
--- a/maps/OaksLab.asm
+++ b/maps/OaksLab.asm
@@ -1,14 +1,12 @@
-OaksLab_MapScriptHeader: ; 0x19b3c5
-	; trigger count
+OaksLab_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x19b3c7
 
-UnknownScript_0x19b3c7: ; 0x19b3c7
+UnknownScript_0x19b3c7:
 	end
-; 0x19b3c8
 
 Oak:
 	faceplayer
@@ -21,7 +19,7 @@
 	keeptextopen
 	setevent EVENT_TALKED_TO_OAK_IN_KANTO
 .CheckBadges
-	checkcode $7
+	checkcode VAR_BADGES
 	if_equal 16, .OpenMtSilver
 	if_equal 8, .Complain
 	jump .AhGood
@@ -51,17 +49,14 @@
 	keeptextopen
 	jump .CheckPokedex
 
-ScientistScript_0x19b40f: ; 0x19b40f
+ScientistScript_0x19b40f:
 	jumptextfaceplayer UnknownText_0x19b7fb
-; 0x19b412
 
-ScientistScript_0x19b412: ; 0x19b412
+ScientistScript_0x19b412:
 	jumptextfaceplayer UnknownText_0x19b859
-; 0x19b415
 
-ScientistScript_0x19b415: ; 0x19b415
+ScientistScript_0x19b415:
 	jumptextfaceplayer UnknownText_0x19b8a7
-; 0x19b418
 
 OaksLabBookshelf:
 	jumpstd difficultbookshelf
@@ -183,7 +178,7 @@
 	line "<PLAY_G>!"
 	done
 
-UnknownText_0x19b7fb: ; 0x19b7fb
+UnknownText_0x19b7fb:
 	text "The PROF's #MON"
 	line "TALK radio program"
 
@@ -193,9 +188,8 @@
 	para "It's a shame--I'd"
 	line "like to hear it."
 	done
-; 0x19b859
 
-UnknownText_0x19b859: ; 0x19b859
+UnknownText_0x19b859:
 	text "Thanks to your"
 	line "work on the #-"
 	cont "DEX, the PROF's"
@@ -203,9 +197,8 @@
 	para "research is coming"
 	line "along great."
 	done
-; 0x19b8a7
 
-UnknownText_0x19b8a7: ; 0x19b8a7
+UnknownText_0x19b8a7:
 	text "Don't tell anyone,"
 	line "but PROF.OAK'S"
 
@@ -212,7 +205,6 @@
 	para "#MON TALK isn't"
 	line "a live broadcast."
 	done
-; 0x19b8ea
 
 OaksLabPoster1Text:
 	text "Press START to"
@@ -257,43 +249,41 @@
 	para "ELM in NEW BARK"
 	line "TOWN 8-)"
 	done
-; 0x19ba33
 
-OaksLab_MapEventHeader: ; 0x19ba33
+OaksLab_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 16
-	signpost 1, 6, $0, OaksLabBookshelf
-	signpost 1, 7, $0, OaksLabBookshelf
-	signpost 1, 8, $0, OaksLabBookshelf
-	signpost 1, 9, $0, OaksLabBookshelf
-	signpost 7, 0, $0, OaksLabBookshelf
-	signpost 7, 1, $0, OaksLabBookshelf
-	signpost 7, 2, $0, OaksLabBookshelf
-	signpost 7, 3, $0, OaksLabBookshelf
-	signpost 7, 6, $0, OaksLabBookshelf
-	signpost 7, 7, $0, OaksLabBookshelf
-	signpost 7, 8, $0, OaksLabBookshelf
-	signpost 7, 9, $0, OaksLabBookshelf
-	signpost 0, 4, $0, OaksLabPoster1
-	signpost 0, 5, $0, OaksLabPoster2
-	signpost 3, 9, $0, OaksLabTrashcan
-	signpost 1, 0, $0, OaksLabPC
+	signpost 1, 6, SIGNPOST_READ, OaksLabBookshelf
+	signpost 1, 7, SIGNPOST_READ, OaksLabBookshelf
+	signpost 1, 8, SIGNPOST_READ, OaksLabBookshelf
+	signpost 1, 9, SIGNPOST_READ, OaksLabBookshelf
+	signpost 7, 0, SIGNPOST_READ, OaksLabBookshelf
+	signpost 7, 1, SIGNPOST_READ, OaksLabBookshelf
+	signpost 7, 2, SIGNPOST_READ, OaksLabBookshelf
+	signpost 7, 3, SIGNPOST_READ, OaksLabBookshelf
+	signpost 7, 6, SIGNPOST_READ, OaksLabBookshelf
+	signpost 7, 7, SIGNPOST_READ, OaksLabBookshelf
+	signpost 7, 8, SIGNPOST_READ, OaksLabBookshelf
+	signpost 7, 9, SIGNPOST_READ, OaksLabBookshelf
+	signpost 0, 4, SIGNPOST_READ, OaksLabPoster1
+	signpost 0, 5, SIGNPOST_READ, OaksLabPoster2
+	signpost 3, 9, SIGNPOST_READ, OaksLabTrashcan
+	signpost 1, 0, SIGNPOST_READ, OaksLabPC
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_OAK, 6, 8, $6, $0, 255, 255, $0, 0, Oak, $ffff
-	person_event SPRITE_SCIENTIST, 12, 5, $5, $1, 255, 255, $90, 0, ScientistScript_0x19b40f, $ffff
-	person_event SPRITE_SCIENTIST, 13, 12, $4, $10, 255, 255, $90, 0, ScientistScript_0x19b412, $ffff
-	person_event SPRITE_SCIENTIST, 8, 5, $2, $11, 255, 255, $90, 0, ScientistScript_0x19b415, $ffff
-; 0x19bac7
+	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
--- a/maps/OlivineCafe.asm
+++ b/maps/OlivineCafe.asm
@@ -1,12 +1,11 @@
-OlivineCafe_MapScriptHeader: ; 0x9c8bf
-	; trigger count
+OlivineCafe_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9c8c1
 
-SailorScript_0x9c8c1: ; 0x9c8c1
+SailorScript_0x9c8c1:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_HM04_STRENGTH
@@ -13,24 +12,21 @@
 	iftrue UnknownScript_0x9c8d3
 	writetext UnknownText_0x9c8df
 	keeptextopen
-	verbosegiveitem HM_04, 1
+	verbosegiveitem HM_STRENGTH, 1
 	setevent EVENT_GOT_HM04_STRENGTH
-UnknownScript_0x9c8d3: ; 0x9c8d3
+UnknownScript_0x9c8d3:
 	writetext UnknownText_0x9c965
 	closetext
 	loadmovesprites
 	end
-; 0x9c8d9
 
-FishingGuruScript_0x9c8d9: ; 0x9c8d9
+FishingGuruScript_0x9c8d9:
 	jumptextfaceplayer UnknownText_0x9c9c5
-; 0x9c8dc
 
-SailorScript_0x9c8dc: ; 0x9c8dc
+SailorScript_0x9c8dc:
 	jumptextfaceplayer UnknownText_0x9ca09
-; 0x9c8df
 
-UnknownText_0x9c8df: ; 0x9c8df
+UnknownText_0x9c8df:
 	text "Hah! Your #MON"
 	line "sure look like"
 	cont "lightweights!"
@@ -43,9 +39,8 @@
 	line "and teach them"
 	cont "STRENGTH!"
 	done
-; 0x9c965
 
-UnknownText_0x9c965: ; 0x9c965
+UnknownText_0x9c965:
 	text "On the sea, the"
 	line "only thing you can"
 
@@ -55,9 +50,8 @@
 	para "I'm so proud of my"
 	line "buff bod!"
 	done
-; 0x9c9c5
 
-UnknownText_0x9c9c5: ; 0x9c9c5
+UnknownText_0x9c9c5:
 	text "OLIVINE CAFE's"
 	line "menu is chock full"
 
@@ -64,9 +58,8 @@
 	para "of hearty fare for"
 	line "beefy SAILORS!"
 	done
-; 0x9ca09
 
-UnknownText_0x9ca09: ; 0x9ca09
+UnknownText_0x9ca09:
 	text "Whenever I roll"
 	line "into this town, I"
 
@@ -79,26 +72,24 @@
 	para "stronger. I can't"
 	line "stop eating!"
 	done
-; 0x9ca8e
 
-OlivineCafe_MapEventHeader: ; 0x9ca8e
+OlivineCafe_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_SAILOR, 7, 8, $8, $0, 255, 255, $0, 0, SailorScript_0x9c8c1, $ffff
-	person_event SPRITE_FISHING_GURU, 7, 11, $4, $10, 255, 255, $0, 0, FishingGuruScript_0x9c8d9, $ffff
-	person_event SPRITE_SAILOR, 10, 10, $7, $0, 255, 255, $0, 0, SailorScript_0x9c8dc, $ffff
-; 0x9cac5
+	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
--- a/maps/OlivineCity.asm
+++ b/maps/OlivineCity.asm
@@ -1,5 +1,5 @@
 OlivineCity_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,7 +6,7 @@
 	dw .Trigger1, $0000
 	dw .Trigger2, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -24,7 +24,7 @@
 
 UnknownScript_0x1a8833:
 	spriteface $0, LEFT
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	special Functionc48f
 	pause 15
 	playsound SFX_ENTER_DOOR
@@ -42,13 +42,13 @@
 	dotrigger $1
 	disappear $5
 	special RestartMapMusic
-	variablesprite $5, $31
-	special Function14209
+	variablesprite SPRITE_OLIVINE_RIVAL, SPRITE_SWIMMER_GUY
+	special RunCallback_04
 	end
 
 UnknownScript_0x1a886b:
 	spriteface $0, LEFT
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	special Functionc48f
 	pause 15
 	playsound SFX_ENTER_DOOR
@@ -66,8 +66,8 @@
 	disappear $5
 	dotrigger $1
 	special RestartMapMusic
-	variablesprite $5, $31
-	special Function14209
+	variablesprite SPRITE_OLIVINE_RIVAL, SPRITE_SWIMMER_GUY
+	special RunCallback_04
 	end
 
 SailorScript_0x1a88a3:
@@ -289,7 +289,7 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -303,24 +303,24 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 2
 	xy_trigger 0, $c, $d, $0, UnknownScript_0x1a8833, $0, $0
 	xy_trigger 0, $d, $d, $0, UnknownScript_0x1a886b, $0, $0
 
-	; signposts
+.Signposts:
 	db 7
-	signpost 11, 17, $0, OlivineCitySign
-	signpost 24, 20, $0, OlivineCityPortSign
-	signpost 11, 7, $0, OlivineGymSign
-	signpost 28, 30, $0, OlivineLighthouseSign
-	signpost 23, 3, $0, OlivineCityBattleTowerSign
-	signpost 21, 14, $0, OlivineCityPokeCenterSign
-	signpost 17, 20, $0, OlivineCityMartSign
+	signpost 11, 17, SIGNPOST_READ, OlivineCitySign
+	signpost 24, 20, SIGNPOST_READ, OlivineCityPortSign
+	signpost 11, 7, SIGNPOST_READ, OlivineGymSign
+	signpost 28, 30, SIGNPOST_READ, OlivineLighthouseSign
+	signpost 23, 3, SIGNPOST_READ, OlivineCityBattleTowerSign
+	signpost 21, 14, SIGNPOST_READ, OlivineCityPokeCenterSign
+	signpost 17, 20, SIGNPOST_READ, OlivineCityMartSign
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_SAILOR, 31, 30, $4, $10, 255, 255, $0, 0, SailorScript_0x1a88a3, $ffff
-	person_event SPRITE_STANDING_YOUNGSTER, 17, 24, $3, $0, 255, 255, $80, 0, StandingYoungsterScript_0x1a88a6, $ffff
-	person_event SPRITE_SAILOR, 25, 21, $2, $11, 255, 255, $0, 0, SailorScript_0x1a88ba, $ffff
-	person_event SPRITE_OLIVINE_RIVAL, 15, 14, $6, $0, 255, 255, $0, 0, ObjectEvent, $06c3
+	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
--- a/maps/OlivineGoodRodHouse.asm
+++ b/maps/OlivineGoodRodHouse.asm
@@ -1,8 +1,8 @@
 OlivineGoodRodHouse_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 GoodRodGuru:
@@ -83,17 +83,17 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_FISHING_GURU, 7, 6, $6, $0, 255, 255, $a0, 0, GoodRodGuru, $ffff
+	person_event SPRITE_FISHING_GURU, 7, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, GoodRodGuru, -1
--- a/maps/OlivineGym.asm
+++ b/maps/OlivineGym.asm
@@ -1,16 +1,15 @@
-OlivineGym_MapScriptHeader: ; 0x9c12d
-	; trigger count
+OlivineGym_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9c12f
 
-JasmineScript_0x9c12f: ; 0x9c12f
+JasmineScript_0x9c12f:
 	faceplayer
 	loadfont
 	checkevent EVENT_BEAT_JASMINE
-	iftrue UnknownScript_0x9c159
+	iftrue .FightDone
 	writetext UnknownText_0x9c1b9
 	closetext
 	loadmovesprites
@@ -23,15 +22,15 @@
 	writetext UnknownText_0x9c33a
 	playsound SFX_GET_BADGE
 	waitbutton
-	setflag $001f
-	checkcode $7
-	scall UnknownScript_0x9c178
-UnknownScript_0x9c159: ; 0x9c159
+	setflag ENGINE_MINERALBADGE
+	checkcode VAR_BADGES
+	scall OlivineGymTriggerRockets
+.FightDone
 	checkevent EVENT_GOT_TM23_IRON_TAIL
 	iftrue UnknownScript_0x9c172
 	writetext UnknownText_0x9c354
 	keeptextopen
-	verbosegiveitem TM_23, 1
+	verbosegiveitem TM_IRON_TAIL, 1
 	iffalse UnknownScript_0x9c176
 	setevent EVENT_GOT_TM23_IRON_TAIL
 	writetext UnknownText_0x9c3a5
@@ -38,31 +37,26 @@
 	closetext
 	loadmovesprites
 	end
-; 0x9c172
 
-UnknownScript_0x9c172: ; 0x9c172
+UnknownScript_0x9c172:
 	writetext UnknownText_0x9c3d1
 	closetext
-UnknownScript_0x9c176: ; 0x9c176
+UnknownScript_0x9c176:
 	loadmovesprites
 	end
-; 0x9c178
 
-UnknownScript_0x9c178: ; 0x9c178
-	if_equal $7, UnknownScript_0x9c184
-	if_equal $6, UnknownScript_0x9c181
+OlivineGymTriggerRockets:
+	if_equal 7, .RadioTowerRockets
+	if_equal 6, .GoldenrodRockets
 	end
-; 0x9c181
 
-UnknownScript_0x9c181: ; 0x9c181
+.GoldenrodRockets
 	jumpstd goldenrodrockets
-; 0x9c184
 
-UnknownScript_0x9c184: ; 0x9c184
+.RadioTowerRockets
 	jumpstd radiotowerrockets
-; 0x9c187
 
-OlivineGymGuyScript: ; 0x9c187
+OlivineGymGuyScript:
 	faceplayer
 	checkevent EVENT_BEAT_JASMINE
 	iftrue .OlivineGymGuyWinScript
@@ -73,7 +67,6 @@
 	closetext
 	loadmovesprites
 	end
-; 0x9c19b
 
 .OlivineGymGuyWinScript
 	loadfont
@@ -81,7 +74,6 @@
 	closetext
 	loadmovesprites
 	end
-; 0x9c1a2
 
 .OlivineGymGuyPreScript
 	loadfont
@@ -89,7 +81,6 @@
 	closetext
 	loadmovesprites
 	end
-; 0x9c1a9
 
 OlivineGymStatue:
 	checkflag ENGINE_MINERALBADGE
@@ -99,7 +90,7 @@
 	trainertotext JASMINE, 1, $1
 	jumpstd gymstatue2
 
-UnknownText_0x9c1b9: ; 0x9c1b9
+UnknownText_0x9c1b9:
 	text "…Thank you for"
 	line "your help at the"
 	cont "LIGHTHOUSE…"
@@ -123,9 +114,8 @@
 
 	para "…Um… May I begin?"
 	done
-; 0x9c2bb
 
-UnknownText_0x9c2bb: ; 0x9c2bb
+UnknownText_0x9c2bb:
 	text "…You are a better"
 	line "trainer than me,"
 
@@ -138,15 +128,13 @@
 	para "confer upon you"
 	line "this BADGE."
 	done
-; 0x9c33a
 
-UnknownText_0x9c33a: ; 0x9c33a
+UnknownText_0x9c33a:
 	text "<PLAYER> received"
 	line "MINERALBADGE."
 	done
-; 0x9c354
 
-UnknownText_0x9c354: ; 0x9c354
+UnknownText_0x9c354:
 	text "MINERALBADGE"
 	line "raises #MON's"
 	cont "DEFENSE."
@@ -154,29 +142,25 @@
 	para "…Um… Please take"
 	line "this too…"
 	done
-; 0x9c393
 
-UnknownText_0x9c393: ; 0x9c393
+UnknownText_0x9c393:
 	text "<PLAYER> received"
 	line "TM09."
 	done
-; 0x9c3a5
 
-UnknownText_0x9c3a5: ; 0x9c3a5
+UnknownText_0x9c3a5:
 	text "…You could use"
 	line "that TM to teach"
 	cont "IRON TAIL."
 	done
-; 0x9c3d1
 
-UnknownText_0x9c3d1: ; 0x9c3d1
+UnknownText_0x9c3d1:
 	text "Um… I don't know"
 	line "how to say this,"
 	cont "but good luck…"
 	done
-; 0x9c402
 
-OlivineGymGuyText: ; 0x9c402
+OlivineGymGuyText:
 	text "JASMINE uses the"
 	line "newly discovered"
 	cont "steel-type."
@@ -184,9 +168,8 @@
 	para "I don't know very"
 	line "much about it."
 	done
-; 0x9c451
 
-OlivineGymGuyWinText: ; 0x9c451
+OlivineGymGuyWinText:
 	text "That was awesome."
 
 	para "The steel-type,"
@@ -196,9 +179,8 @@
 	line "encounter of an"
 	cont "unknown kind!"
 	done
-; 0x9c4a8
 
-OlivineGymGuyPreText: ; 0x9c4a8
+OlivineGymGuyPreText:
 	text "JASMINE, the GYM"
 	line "LEADER, is at the"
 	cont "LIGHTHOUSE."
@@ -210,27 +192,25 @@
 	line "has to be compas-"
 	cont "sionate."
 	done
-; 0x9c526
 
-OlivineGym_MapEventHeader: ; 0x9c526
+OlivineGym_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 13, 3, $0, OlivineGymStatue
-	signpost 13, 6, $0, OlivineGymStatue
+	signpost 13, 3, SIGNPOST_READ, OlivineGymStatue
+	signpost 13, 6, SIGNPOST_READ, OlivineGymStatue
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_JASMINE, 7, 9, $6, $0, 255, 255, $80, 0, JasmineScript_0x9c12f, $06d3
-	person_event SPRITE_GYM_GUY, 17, 11, $6, $0, 255, 255, $80, 0, OlivineGymGuyScript, $ffff
-; 0x9c55a
+	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
--- a/maps/OlivineHouseBeta.asm
+++ b/maps/OlivineHouseBeta.asm
@@ -1,16 +1,14 @@
-OlivineHouseBeta_MapScriptHeader: ; 0x9c58d
-	; trigger count
+OlivineHouseBeta_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9c58f
 
-TeacherScript_0x9c58f: ; 0x9c58f
+TeacherScript_0x9c58f:
 	jumptextfaceplayer UnknownText_0x9c5a2
-; 0x9c592
 
-RhydonScript_0x9c592: ; 0x9c592
+RhydonScript_0x9c592:
 	loadfont
 	writetext UnknownText_0x9c5f0
 	cry RHYDON
@@ -17,7 +15,6 @@
 	closetext
 	loadmovesprites
 	end
-; 0x9c59c
 
 OlivineHouseBetaBookshelf1:
 	jumpstd picturebookshelf
@@ -25,7 +22,7 @@
 OlivineHouseBetaBookshelf2:
 	jumpstd magazinebookshelf
 
-UnknownText_0x9c5a2: ; 0x9c5a2
+UnknownText_0x9c5a2:
 	text "When my #MON"
 	line "got sick, the"
 
@@ -33,32 +30,29 @@
 	line "ECRUTEAK made some"
 	cont "medicine for me."
 	done
-; 0x9c5f0
 
-UnknownText_0x9c5f0: ; 0x9c5f0
+UnknownText_0x9c5f0:
 	text "RHYDON: Gugooh!"
 	done
-; 0x9c601
 
-OlivineHouseBeta_MapEventHeader: ; 0x9c601
+OlivineHouseBeta_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 0, $0, OlivineHouseBetaBookshelf1
-	signpost 1, 1, $0, OlivineHouseBetaBookshelf2
+	signpost 1, 0, SIGNPOST_READ, OlivineHouseBetaBookshelf1
+	signpost 1, 1, SIGNPOST_READ, OlivineHouseBetaBookshelf2
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_TEACHER, 7, 6, $3, $0, 255, 255, $0, 0, TeacherScript_0x9c58f, $ffff
-	person_event SPRITE_RHYDON, 8, 10, $4, $20, 255, 255, $0, 0, RhydonScript_0x9c592, $ffff
-; 0x9c635
+	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
--- a/maps/OlivineLighthouse1F.asm
+++ b/maps/OlivineLighthouse1F.asm
@@ -1,20 +1,17 @@
-OlivineLighthouse1F_MapScriptHeader: ; 0x5ae65
-	; trigger count
+OlivineLighthouse1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x5ae67
 
-SailorScript_0x5ae67: ; 0x5ae67
+SailorScript_0x5ae67:
 	jumptextfaceplayer UnknownText_0x5ae6d
-; 0x5ae6a
 
-PokefanFScript_0x5ae6a: ; 0x5ae6a
+PokefanFScript_0x5ae6a:
 	jumptextfaceplayer UnknownText_0x5aec2
-; 0x5ae6d
 
-UnknownText_0x5ae6d: ; 0x5ae6d
+UnknownText_0x5ae6d:
 	text "People train at"
 	line "this LIGHTHOUSE."
 
@@ -22,9 +19,8 @@
 	line "climb because of"
 	cont "all the trainers."
 	done
-; 0x5aec2
 
-UnknownText_0x5aec2: ; 0x5aec2
+UnknownText_0x5aec2:
 	text "In the past, #-"
 	line "MON used to light"
 
@@ -35,13 +31,12 @@
 	line "made in honor of"
 	cont "those #MON."
 	done
-; 0x5af36
 
-OlivineLighthouse1F_MapEventHeader: ; 0x5af36
+OlivineLighthouse1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -49,14 +44,13 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_SAILOR, 6, 12, $6, $0, 255, 255, $0, 0, SailorScript_0x5ae67, $ffff
-	person_event SPRITE_POKEFAN_F, 13, 20, $4, $20, 255, 255, $0, 0, PokefanFScript_0x5ae6a, $ffff
-; 0x5af6f
+	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
--- a/maps/OlivineLighthouse2F.asm
+++ b/maps/OlivineLighthouse2F.asm
@@ -1,32 +1,14 @@
-OlivineLighthouse2F_MapScriptHeader: ; 0x5af6f
-	; trigger count
+OlivineLighthouse2F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x5af71
 
-TrainerGentlemanAlfred: ; 0x5af71
-	; bit/flag number
-	dw $49e
+TrainerGentlemanAlfred:
+	trainer EVENT_BEAT_GENTLEMAN_ALFRED, GENTLEMAN, ALFRED, GentlemanAlfredSeenText, GentlemanAlfredBeatenText, $0000, GentlemanAlfredScript
 
-	; trainer group && trainer id
-	db GENTLEMAN, ALFRED
-
-	; text when seen
-	dw GentlemanAlfredSeenText
-
-	; text when trainer beaten
-	dw GentlemanAlfredBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GentlemanAlfredScript
-; 0x5af7d
-
-GentlemanAlfredScript: ; 0x5af7d
+GentlemanAlfredScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5b13e
@@ -33,119 +15,94 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5af85
 
-TrainerSailorHuey1: ; 0x5af85
-	; bit/flag number
-	dw $576
+TrainerSailorHuey1:
+	trainer EVENT_BEAT_SAILOR_HUEY, SAILOR, HUEY1, SailorHuey1SeenText, SailorHuey1BeatenText, $0000, SailorHuey1Script
 
-	; trainer group && trainer id
-	db SAILOR, HUEY1
-
-	; text when seen
-	dw SailorHuey1SeenText
-
-	; text when trainer beaten
-	dw SailorHuey1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SailorHuey1Script
-; 0x5af91
-
-SailorHuey1Script: ; 0x5af91
-	writecode $17, $7
+SailorHuey1Script:
+	writecode VAR_CALLERID, PHONE_SAILOR_HUEY
 	talkaftercancel
 	loadfont
-	checkflag $0066
+	checkflag ENGINE_HUEY
 	iftrue UnknownScript_0x5afc7
-	checkcellnum $7
+	checkcellnum PHONE_SAILOR_HUEY
 	iftrue UnknownScript_0x5b05f
-	checkevent $0263
+	checkevent EVENT_HUEY_ASKED_FOR_PHONE_NUMBER
 	iftrue UnknownScript_0x5afb0
-	setevent $0263
+	setevent EVENT_HUEY_ASKED_FOR_PHONE_NUMBER
 	scall UnknownScript_0x5b053
 	jump UnknownScript_0x5afb3
-; 0x5afb0
 
-UnknownScript_0x5afb0: ; 0x5afb0
+UnknownScript_0x5afb0:
 	scall UnknownScript_0x5b057
-UnknownScript_0x5afb3: ; 0x5afb3
-	askforphonenumber $7
+UnknownScript_0x5afb3:
+	askforphonenumber PHONE_SAILOR_HUEY
 	if_equal $1, UnknownScript_0x5b067
 	if_equal $2, UnknownScript_0x5b063
 	trainertotext SAILOR, HUEY1, $0
 	scall UnknownScript_0x5b05b
 	jump UnknownScript_0x5b05f
-; 0x5afc7
 
-UnknownScript_0x5afc7: ; 0x5afc7
+UnknownScript_0x5afc7:
 	scall UnknownScript_0x5b06b
 	winlosstext SailorHuey1BeatenText, $0000
-	copybytetovar wd9f4
-	if_equal $3, UnknownScript_0x5afe2
-	if_equal $2, UnknownScript_0x5afe8
-	if_equal $1, UnknownScript_0x5afee
-	if_equal $0, UnknownScript_0x5aff4
-UnknownScript_0x5afe2: ; 0x5afe2
+	copybytetovar wHueyFightCount
+	if_equal 3, .Fight3
+	if_equal 2, .Fight2
+	if_equal 1, .Fight1
+	if_equal 0, .LoadFight0
+.Fight3
 	checkevent EVENT_RESTORED_POWER_TO_KANTO
-	iftrue UnknownScript_0x5b01b
-UnknownScript_0x5afe8: ; 0x5afe8
+	iftrue .LoadFight3
+.Fight2
 	checkevent EVENT_BEAT_ELITE_FOUR
-	iftrue UnknownScript_0x5b00e
-UnknownScript_0x5afee: ; 0x5afee
+	iftrue .LoadFight2
+.Fight1
 	checkevent EVENT_CLEARED_RADIO_TOWER
-	iftrue UnknownScript_0x5b001
-UnknownScript_0x5aff4: ; 0x5aff4
+	iftrue .LoadFight1
+.LoadFight0
 	loadtrainer SAILOR, HUEY1
 	startbattle
 	returnafterbattle
-	loadvar wd9f4, $1
-	clearflag $0066
+	loadvar wHueyFightCount, 1
+	clearflag ENGINE_HUEY
 	end
-; 0x5b001
 
-UnknownScript_0x5b001: ; 0x5b001
+.LoadFight1
 	loadtrainer SAILOR, HUEY2
 	startbattle
 	returnafterbattle
-	loadvar wd9f4, $2
-	clearflag $0066
+	loadvar wHueyFightCount, 2
+	clearflag ENGINE_HUEY
 	end
-; 0x5b00e
 
-UnknownScript_0x5b00e: ; 0x5b00e
+.LoadFight2
 	loadtrainer SAILOR, HUEY3
 	startbattle
 	returnafterbattle
-	loadvar wd9f4, $3
-	clearflag $0066
+	loadvar wHueyFightCount, 3
+	clearflag ENGINE_HUEY
 	end
-; 0x5b01b
 
-UnknownScript_0x5b01b: ; 0x5b01b
+.LoadFight3
 	loadtrainer SAILOR, HUEY4
 	startbattle
 	returnafterbattle
-	clearflag $0066
+	clearflag ENGINE_HUEY
 	checkevent EVENT_HUEY_PROTEIN
 	iftrue UnknownScript_0x5b03f
-	checkevent $0265
+	checkevent EVENT_GOT_PROTEIN_FROM_HUEY
 	iftrue UnknownScript_0x5b03e
 	scall UnknownScript_0x5b076
 	verbosegiveitem PROTEIN, 1
 	iffalse UnknownScript_0x5b06f
-	setevent $0265
+	setevent EVENT_GOT_PROTEIN_FROM_HUEY
 	jump UnknownScript_0x5b05f
-; 0x5b03e
 
-UnknownScript_0x5b03e: ; 0x5b03e
+UnknownScript_0x5b03e:
 	end
-; 0x5b03f
 
-UnknownScript_0x5b03f: ; 0x5b03f
+UnknownScript_0x5b03f:
 	loadfont
 	writetext UnknownText_0x5b1b6
 	closetext
@@ -152,71 +109,59 @@
 	verbosegiveitem PROTEIN, 1
 	iffalse UnknownScript_0x5b06f
 	clearevent EVENT_HUEY_PROTEIN
-	setevent $0265
+	setevent EVENT_GOT_PROTEIN_FROM_HUEY
 	jump UnknownScript_0x5b05f
-; 0x5b053
 
-UnknownScript_0x5b053: ; 0x5b053
+UnknownScript_0x5b053:
 	jumpstd asknumber1m
 	end
-; 0x5b057
 
-UnknownScript_0x5b057: ; 0x5b057
+UnknownScript_0x5b057:
 	jumpstd asknumber2m
 	end
-; 0x5b05b
 
-UnknownScript_0x5b05b: ; 0x5b05b
+UnknownScript_0x5b05b:
 	jumpstd registerednumberm
 	end
-; 0x5b05f
 
-UnknownScript_0x5b05f: ; 0x5b05f
+UnknownScript_0x5b05f:
 	jumpstd numberacceptedm
 	end
-; 0x5b063
 
-UnknownScript_0x5b063: ; 0x5b063
+UnknownScript_0x5b063:
 	jumpstd numberdeclinedm
 	end
-; 0x5b067
 
-UnknownScript_0x5b067: ; 0x5b067
+UnknownScript_0x5b067:
 	jumpstd phonefullm
 	end
-; 0x5b06b
 
-UnknownScript_0x5b06b: ; 0x5b06b
+UnknownScript_0x5b06b:
 	jumpstd rematchm
 	end
-; 0x5b06f
 
-UnknownScript_0x5b06f: ; 0x5b06f
+UnknownScript_0x5b06f:
 	setevent EVENT_HUEY_PROTEIN
 	jumpstd packfullm
 	end
-; 0x5b076
 
-UnknownScript_0x5b076: ; 0x5b076
+UnknownScript_0x5b076:
 	jumpstd rematchgiftm
 	end
-; 0x5b07a
 
-SailorHuey1SeenText: ; 0x5b07a
+SailorHuey1SeenText:
 	text "Men of the sea are"
 	line "always spoiling"
 	cont "for a good fight!"
 	done
-; 0x5b0b0
 
-SailorHuey1BeatenText: ; 0x5b0b0
+SailorHuey1BeatenText:
 	text "Urf!"
 	line "I lose!"
 	done
-; 0x5b0be
 
 ; possibly unused
-UnknownText_0x5b0be: ; 0x5b0be
+UnknownText_0x5b0be:
 	text "What power!"
 	line "How would you like"
 
@@ -223,21 +168,18 @@
 	para "to sail the seas"
 	line "with me?"
 	done
-; 0x5b0f8
 
-GentlemanAlfredSeenText: ; 0x5b0f8
+GentlemanAlfredSeenText:
 	text "Hm? This is no"
 	line "place for playing."
 	done
-; 0x5b11b
 
-GentlemanAlfredBeatenText: ; 0x5b11b
+GentlemanAlfredBeatenText:
 	text "Ah! I can see that"
 	line "you're serious."
 	done
-; 0x5b13e
 
-UnknownText_0x5b13e: ; 0x5b13e
+UnknownText_0x5b13e:
 	text "Up top is a #-"
 	line "MON that keeps the"
 	cont "LIGHTHOUSE lit."
@@ -248,9 +190,8 @@
 	para "can't be cured by"
 	line "ordinary medicine."
 	done
-; 0x5b1b6
 
-UnknownText_0x5b1b6: ; 0x5b1b6
+UnknownText_0x5b1b6:
 	text "Man! You're as"
 	line "tough as ever!"
 
@@ -258,13 +199,12 @@
 	line "that medicine from"
 	cont "before."
 	done
-; 0x5b1fd
 
-OlivineLighthouse2F_MapEventHeader: ; 0x5b1fd
+OlivineLighthouse2F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -273,14 +213,13 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_SAILOR, 7, 13, $9, $0, 255, 255, $92, 3, TrainerSailorHuey1, $ffff
-	person_event SPRITE_GENTLEMAN, 12, 21, $8, $0, 255, 255, $92, 3, TrainerGentlemanAlfred, $ffff
-; 0x5b23b
+	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
--- a/maps/OlivineLighthouse3F.asm
+++ b/maps/OlivineLighthouse3F.asm
@@ -1,32 +1,14 @@
-OlivineLighthouse3F_MapScriptHeader: ; 0x5b23b
-	; trigger count
+OlivineLighthouse3F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x5b23d
 
-TrainerBird_keeperTheo: ; 0x5b23d
-	; bit/flag number
-	dw $3fe
+TrainerBird_keeperTheo:
+	trainer EVENT_BEAT_BIRD_KEEPER_THEO, BIRD_KEEPER, THEO, Bird_keeperTheoSeenText, Bird_keeperTheoBeatenText, $0000, Bird_keeperTheoScript
 
-	; trainer group && trainer id
-	db BIRD_KEEPER, THEO
-
-	; text when seen
-	dw Bird_keeperTheoSeenText
-
-	; text when trainer beaten
-	dw Bird_keeperTheoBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Bird_keeperTheoScript
-; 0x5b249
-
-Bird_keeperTheoScript: ; 0x5b249
+Bird_keeperTheoScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5b2df
@@ -33,29 +15,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5b251
 
-TrainerGentlemanPreston: ; 0x5b251
-	; bit/flag number
-	dw $49a
+TrainerGentlemanPreston:
+	trainer EVENT_BEAT_GENTLEMAN_PRESTON, GENTLEMAN, PRESTON, GentlemanPrestonSeenText, GentlemanPrestonBeatenText, $0000, GentlemanPrestonScript
 
-	; trainer group && trainer id
-	db GENTLEMAN, PRESTON
-
-	; text when seen
-	dw GentlemanPrestonSeenText
-
-	; text when trainer beaten
-	dw GentlemanPrestonBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GentlemanPrestonScript
-; 0x5b25d
-
-GentlemanPrestonScript: ; 0x5b25d
+GentlemanPrestonScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5b457
@@ -62,29 +26,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5b265
 
-TrainerSailorTerrell: ; 0x5b265
-	; bit/flag number
-	dw $577
+TrainerSailorTerrell:
+	trainer EVENT_BEAT_SAILOR_TERRELL, SAILOR, TERRELL, SailorTerrellSeenText, SailorTerrellBeatenText, $0000, SailorTerrellScript
 
-	; trainer group && trainer id
-	db SAILOR, TERRELL
-
-	; text when seen
-	dw SailorTerrellSeenText
-
-	; text when trainer beaten
-	dw SailorTerrellBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SailorTerrellScript
-; 0x5b271
-
-SailorTerrellScript: ; 0x5b271
+SailorTerrellScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5b384
@@ -91,13 +37,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5b279
 
-ItemFragment_0x5b279: ; 0x5b279
+ItemFragment_0x5b279:
 	db ETHER, 1
-; 0x5b27b
 
-Bird_keeperTheoSeenText: ; 0x5b27b
+Bird_keeperTheoSeenText:
 	text "Why are you here?"
 	line "Are you just going"
 
@@ -104,15 +48,13 @@
 	para "to gawk? I suggest"
 	line "that you leave!"
 	done
-; 0x5b2c4
 
-Bird_keeperTheoBeatenText: ; 0x5b2c4
+Bird_keeperTheoBeatenText:
 	text "You really are"
 	line "concerned…"
 	done
-; 0x5b2df
 
-UnknownText_0x5b2df: ; 0x5b2df
+UnknownText_0x5b2df:
 	text "How the heck do"
 	line "you go up?"
 
@@ -122,22 +64,19 @@
 	para "but I can't get up"
 	line "there…"
 	done
-; 0x5b333
 
-SailorTerrellSeenText: ; 0x5b333
+SailorTerrellSeenText:
 	text "Sailors are both"
 	line "kind and strong."
 	cont "How about you?"
 	done
-; 0x5b365
 
-SailorTerrellBeatenText: ; 0x5b365
+SailorTerrellBeatenText:
 	text "You are both kind"
 	line "and strong…"
 	done
-; 0x5b384
 
-UnknownText_0x5b384: ; 0x5b384
+UnknownText_0x5b384:
 	text "Every time I come"
 	line "back to OLIVINE, I"
 	cont "visit the GYM."
@@ -148,34 +87,30 @@
 	para "changed without me"
 	line "noticing."
 	done
-; 0x5b3f4
 
-GentlemanPrestonSeenText: ; 0x5b3f4
+GentlemanPrestonSeenText:
 	text "I travel the world"
 	line "to train my #-"
 	cont "MON. I wish to"
 	cont "battle with you."
 	done
-; 0x5b437
 
-GentlemanPrestonBeatenText: ; 0x5b437
+GentlemanPrestonBeatenText:
 	text "…sigh… I must"
 	line "train some more…"
 	done
-; 0x5b457
 
-UnknownText_0x5b457: ; 0x5b457
+UnknownText_0x5b457:
 	text "JASMINE used to"
 	line "use rock #MON"
 	cont "like ONIX."
 	done
-; 0x5b481
 
-OlivineLighthouse3F_MapEventHeader: ; 0x5b481
+OlivineLighthouse3F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -187,16 +122,15 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_SAILOR, 6, 13, $6, $0, 255, 255, $92, 1, TrainerSailorTerrell, $ffff
-	person_event SPRITE_GENTLEMAN, 9, 17, $9, $0, 255, 255, $92, 4, TrainerGentlemanPreston, $ffff
-	person_event SPRITE_YOUNGSTER, 13, 7, $7, $0, 255, 255, $92, 3, TrainerBird_keeperTheo, $ffff
-	person_event SPRITE_POKE_BALL, 6, 12, $1, $0, 255, 255, $1, 0, ItemFragment_0x5b279, $0664
-; 0x5b4e8
+	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
--- a/maps/OlivineLighthouse4F.asm
+++ b/maps/OlivineLighthouse4F.asm
@@ -1,32 +1,14 @@
-OlivineLighthouse4F_MapScriptHeader: ; 0x5b4e8
-	; trigger count
+OlivineLighthouse4F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x5b4ea
 
-TrainerLassConnie1: ; 0x5b4ea
-	; bit/flag number
-	dw $519
+TrainerLassConnie:
+	trainer EVENT_BEAT_LASS_CONNIE, LASS, CONNIE1, LassConnie1SeenText, LassConnie1BeatenText, $0000, LassConnie1Script
 
-	; trainer group && trainer id
-	db LASS, CONNIE1
-
-	; text when seen
-	dw LassConnie1SeenText
-
-	; text when trainer beaten
-	dw LassConnie1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw LassConnie1Script
-; 0x5b4f6
-
-LassConnie1Script: ; 0x5b4f6
+LassConnie1Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5b63c
@@ -33,29 +15,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5b4fe
 
-TrainerSailorKent: ; 0x5b4fe
-	; bit/flag number
-	dw $578
+TrainerSailorKent:
+	trainer EVENT_BEAT_SAILOR_KENT, SAILOR, KENT, SailorKentSeenText, SailorKentBeatenText, $0000, SailorKentScript
 
-	; trainer group && trainer id
-	db SAILOR, KENT
-
-	; text when seen
-	dw SailorKentSeenText
-
-	; text when trainer beaten
-	dw SailorKentBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SailorKentScript
-; 0x5b50a
-
-SailorKentScript: ; 0x5b50a
+SailorKentScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5b584
@@ -62,9 +26,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5b512
 
-SailorKentSeenText: ; 0x5b512
+SailorKentSeenText:
 	text "JASMINE must be"
 	line "worried sick about"
 	cont "the #MON here."
@@ -72,15 +35,13 @@
 	para "She won't even"
 	line "smile these days."
 	done
-; 0x5b565
 
-SailorKentBeatenText: ; 0x5b565
+SailorKentBeatenText:
 	text "I can't manage a"
 	line "smile either…"
 	done
-; 0x5b584
 
-UnknownText_0x5b584: ; 0x5b584
+UnknownText_0x5b584:
 	text "Speaking of sick,"
 	line "I've heard there's"
 
@@ -87,9 +48,8 @@
 	para "a good PHARMACY in"
 	line "CIANWOOD."
 	done
-; 0x5b5c5
 
-LassConnie1SeenText: ; 0x5b5c5
+LassConnie1SeenText:
 	text "JASMINE is this"
 	line "city's GYM LEADER."
 
@@ -99,14 +59,12 @@
 	para "Nobody had better"
 	line "get in my way!"
 	done
-; 0x5b62b
 
-LassConnie1BeatenText: ; 0x5b62b
+LassConnie1BeatenText:
 	text "Aaack! My #MON!"
 	done
-; 0x5b63c
 
-UnknownText_0x5b63c: ; 0x5b63c
+UnknownText_0x5b63c:
 	text "Right. Anybody"
 	line "would be worried"
 	cont "if his or her own"
@@ -118,13 +76,12 @@
 	para "JASMINE can come"
 	line "back to the GYM."
 	done
-; 0x5b6c0
 
-OlivineLighthouse4F_MapEventHeader: ; 0x5b6c0
+OlivineLighthouse4F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -137,14 +94,13 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_SAILOR, 18, 11, $8, $0, 255, 255, $92, 3, TrainerSailorKent, $ffff
-	person_event SPRITE_LASS, 6, 15, $6, $0, 255, 255, $92, 1, TrainerLassConnie1, $ffff
-; 0x5b712
+	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
--- a/maps/OlivineLighthouse5F.asm
+++ b/maps/OlivineLighthouse5F.asm
@@ -1,32 +1,14 @@
-OlivineLighthouse5F_MapScriptHeader: ; 0x60980
-	; trigger count
+OlivineLighthouse5F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x60982
 
-TrainerBird_keeperDenis: ; 0x60982
-	; bit/flag number
-	dw $400
+TrainerBird_keeperDenis:
+	trainer EVENT_BEAT_BIRD_KEEPER_DENIS, BIRD_KEEPER, DENIS, Bird_keeperDenisSeenText, Bird_keeperDenisBeatenText, $0000, Bird_keeperDenisScript
 
-	; trainer group && trainer id
-	db BIRD_KEEPER, DENIS
-
-	; text when seen
-	dw Bird_keeperDenisSeenText
-
-	; text when trainer beaten
-	dw Bird_keeperDenisBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Bird_keeperDenisScript
-; 0x6098e
-
-Bird_keeperDenisScript: ; 0x6098e
+Bird_keeperDenisScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x60ac3
@@ -33,29 +15,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x60996
 
-TrainerSailorErnest: ; 0x60996
-	; bit/flag number
-	dw $579
+TrainerSailorErnest:
+	trainer EVENT_BEAT_SAILOR_ERNEST, SAILOR, ERNEST, SailorErnestSeenText, SailorErnestBeatenText, $0000, SailorErnestScript
 
-	; trainer group && trainer id
-	db SAILOR, ERNEST
-
-	; text when seen
-	dw SailorErnestSeenText
-
-	; text when trainer beaten
-	dw SailorErnestBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SailorErnestScript
-; 0x609a2
-
-SailorErnestScript: ; 0x609a2
+SailorErnestScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x60a1f
@@ -62,27 +26,21 @@
 	closetext
 	loadmovesprites
 	end
-; 0x609aa
 
-ItemFragment_0x609aa: ; 0x609aa
+ItemFragment_0x609aa:
 	db RARE_CANDY, 1
-; 0x609ac
 
-ItemFragment_0x609ac: ; 0x609ac
+ItemFragment_0x609ac:
 	db SUPER_REPEL, 1
-; 0x609ae
 
-ItemFragment_0x609ae: ; 0x609ae
-	db TM_34, 1
-; 0x609b0
+ItemFragment_0x609ae:
+	db TM_SWAGGER, 1
 
-MapOlivineLighthouse5FSignpostItem0: ; 0x609b0
-	dw $0085
-	db HYPER_POTION
+MapOlivineLighthouse5FSignpostItem0:
+	dwb EVENT_OLIVINE_LIGHTHOUSE_5F_HIDDEN_HYPER_POTION, HYPER_POTION
 	
-; 0x609b3
 
-SailorErnestSeenText: ; 0x609b3
+SailorErnestSeenText:
 	text "I wanted to battle"
 	line "JASMINE, but she's"
 
@@ -89,15 +47,13 @@
 	para "not up to it now."
 	line "So, how about you?"
 	done
-; 0x609fe
 
-SailorErnestBeatenText: ; 0x609fe
+SailorErnestBeatenText:
 	text "Whoa, whoa. You're"
 	line "overwhelming!"
 	done
-; 0x60a1f
 
-UnknownText_0x60a1f: ; 0x60a1f
+UnknownText_0x60a1f:
 	text "A GYM LEADER isn't"
 	line "just about being"
 
@@ -105,9 +61,8 @@
 	line "also needs to be"
 	cont "compassionate."
 	done
-; 0x60a74
 
-Bird_keeperDenisSeenText: ; 0x60a74
+Bird_keeperDenisSeenText:
 	text "We're pretty high"
 	line "up here. My bird"
 
@@ -114,14 +69,12 @@
 	para "#MON are in"
 	line "prime form."
 	done
-; 0x60aaf
 
-Bird_keeperDenisBeatenText: ; 0x60aaf
+Bird_keeperDenisBeatenText:
 	text "Oops…They crashed…"
 	done
-; 0x60ac3
 
-UnknownText_0x60ac3: ; 0x60ac3
+UnknownText_0x60ac3:
 	text "My #MON learned"
 	line "how to use FLY in"
 	cont "CIANWOOD."
@@ -130,13 +83,12 @@
 	line "loser, I'll FLY"
 	cont "across the sea…"
 	done
-; 0x60b20
 
-OlivineLighthouse5F_MapEventHeader: ; 0x60b20
+OlivineLighthouse5F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -146,18 +98,17 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 13, 3, $7, MapOlivineLighthouse5FSignpostItem0
+	signpost 13, 3, SIGNPOST_ITEM, MapOlivineLighthouse5FSignpostItem0
 
-	; people-events
+.PersonEvents:
 	db 5
-	person_event SPRITE_SAILOR, 15, 12, $a, $0, 255, 255, $92, 3, TrainerSailorErnest, $ffff
-	person_event SPRITE_YOUNGSTER, 7, 12, $8, $0, 255, 255, $92, 4, TrainerBird_keeperDenis, $ffff
-	person_event SPRITE_POKE_BALL, 16, 19, $1, $0, 255, 255, $1, 0, ItemFragment_0x609aa, $0665
-	person_event SPRITE_POKE_BALL, 19, 10, $1, $0, 255, 255, $1, 0, ItemFragment_0x609ac, $0666
-	person_event SPRITE_POKE_BALL, 17, 6, $1, $0, 255, 255, $1, 0, ItemFragment_0x609ae, $0667
-; 0x60b8f
+	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
--- a/maps/OlivineLighthouse6F.asm
+++ b/maps/OlivineLighthouse6F.asm
@@ -1,29 +1,27 @@
-OlivineLighthouse6F_MapScriptHeader: ; 0x60b8f
-	; trigger count
+OlivineLighthouse6F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x60b91
 
-JasmineScript_0x60b91: ; 0x60b91
+JasmineScript_0x60b91:
 	faceplayer
 	loadfont
 	checkitem SECRETPOTION
 	iftrue UnknownScript_0x60bab
-	checkevent $0037
+	checkevent EVENT_JASMINE_EXPLAINED_AMPHYS_SICKNESS
 	iftrue UnknownScript_0x60ba5
 	writetext UnknownText_0x60c81
 	keeptextopen
-	setevent $0037
-UnknownScript_0x60ba5: ; 0x60ba5
+	setevent EVENT_JASMINE_EXPLAINED_AMPHYS_SICKNESS
+UnknownScript_0x60ba5:
 	writetext UnknownText_0x60d64
 	closetext
 	loadmovesprites
 	end
-; 0x60bab
 
-UnknownScript_0x60bab: ; 0x60bab
+UnknownScript_0x60bab:
 	writetext UnknownText_0x60d99
 	yesorno
 	iffalse UnknownScript_0x60c25
@@ -44,9 +42,9 @@
 	loadmovesprites
 	special RestartMapMusic
 	cry AMPHAROS
-	special Function8c084
+	special FadeBlackBGMap
 	pause 10
-	special Function8c079
+	special FadeInBGMap
 	loadfont
 	writetext UnknownText_0x60f3d
 	closetext
@@ -65,28 +63,25 @@
 	closetext
 	loadmovesprites
 	setevent EVENT_JASMINE_RETURNED_TO_GYM
-	clearevent $06d3
-	checkcode $9
+	clearevent EVENT_OLIVINE_GYM_JASMINE
+	checkcode VAR_FACING
 	if_equal $0, UnknownScript_0x60c17
 	if_equal $3, UnknownScript_0x60c1e
 	applymovement $2, MovementData_0x60c68
 	disappear $2
 	end
-; 0x60c17
 
-UnknownScript_0x60c17: ; 0x60c17
+UnknownScript_0x60c17:
 	applymovement $2, MovementData_0x60c70
 	disappear $2
 	end
-; 0x60c1e
 
-UnknownScript_0x60c1e: ; 0x60c1e
+UnknownScript_0x60c1e:
 	applymovement $2, MovementData_0x60c79
 	disappear $2
 	end
-; 0x60c25
 
-UnknownScript_0x60c25: ; 0x60c25
+UnknownScript_0x60c25:
 	writetext UnknownText_0x60edf
 	closetext
 	loadmovesprites
@@ -98,13 +93,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x60c39
 
-UnknownScript_0x60c39: ; 0x60c39
+UnknownScript_0x60c39:
 	end
-; 0x60c3a
 
-MonsterScript_0x60c3a: ; 0x60c3a
+MonsterScript_0x60c3a:
 	faceplayer
 	loadfont
 	checkevent EVENT_JASMINE_RETURNED_TO_GYM
@@ -117,25 +110,22 @@
 	closetext
 	loadmovesprites
 	end
-; 0x60c51
 
-UnknownScript_0x60c51: ; 0x60c51
+UnknownScript_0x60c51:
 	writetext UnknownText_0x60f3d
 	cry AMPHAROS
 	closetext
 	loadmovesprites
-	special Function8c084
-	special Function8c079
-	special Function8c084
-	special Function8c079
+	special FadeBlackBGMap
+	special FadeInBGMap
+	special FadeBlackBGMap
+	special FadeInBGMap
 	end
-; 0x60c66
 
-ItemFragment_0x60c66: ; 0x60c66
+ItemFragment_0x60c66:
 	db SUPER_POTION, 1
-; 0x60c68
 
-MovementData_0x60c68: ; 0x60c68
+MovementData_0x60c68:
 	slow_step_up
 	slow_step_up
 	slow_step_right
@@ -144,9 +134,8 @@
 	accelerate_last
 	accelerate_last
 	step_end
-; 0x60c70
 
-MovementData_0x60c70: ; 0x60c70
+MovementData_0x60c70:
 	slow_step_down
 	slow_step_right
 	slow_step_right
@@ -156,9 +145,8 @@
 	slow_step_right
 	slow_step_right
 	step_end
-; 0x60c79
 
-MovementData_0x60c79: ; 0x60c79
+MovementData_0x60c79:
 	slow_step_up
 	slow_step_up
 	slow_step_right
@@ -167,9 +155,8 @@
 	slow_step_up
 	accelerate_last
 	step_end
-; 0x60c81
 
-UnknownText_0x60c81: ; 0x60c81
+UnknownText_0x60c81:
 	text "JASMINE: … This"
 	line "#MON always"
 
@@ -192,30 +179,26 @@
 	para "And I can't leave"
 	line "AMPHY unattended…"
 	done
-; 0x60d64
 
-UnknownText_0x60d64: ; 0x60d64
+UnknownText_0x60d64:
 	text "…May I ask you to"
 	line "get some medicine"
 	cont "for me? Please?"
 	done
-; 0x60d99
 
-UnknownText_0x60d99: ; 0x60d99
+UnknownText_0x60d99:
 	text "JASMINE: …Will"
 	line "that medicine cure"
 	cont "AMPHY?"
 	done
-; 0x60dc3
 
-UnknownText_0x60dc3: ; 0x60dc3
+UnknownText_0x60dc3:
 	text "<PLAYER> handed the"
 	line "SECRETPOTION to"
 	cont "JASMINE."
 	done
-; 0x60dea
 
-UnknownText_0x60dea: ; 0x60dea
+UnknownText_0x60dea:
 	text "JASMINE: …Um,"
 	line "please don't be"
 	cont "offended…"
@@ -224,17 +207,15 @@
 	line "take anything from"
 	cont "anyone but me…"
 	done
-; 0x60e44
 
-UnknownText_0x60e44: ; 0x60e44
+UnknownText_0x60e44:
 	text "JASMINE: …"
 
 	para "AMPHY, how are you"
 	line "feeling?"
 	done
-; 0x60e6c
 
-UnknownText_0x60e6c: ; 0x60e6c
+UnknownText_0x60e6c:
 	text "JASMINE: …Oh, I'm"
 	line "so relieved…"
 
@@ -247,55 +228,48 @@
 	para "…I will return to"
 	line "the GYM…"
 	done
-; 0x60edf
 
-UnknownText_0x60edf: ; 0x60edf
+UnknownText_0x60edf:
 	text "JASMINE: …I see…"
 	done
-; 0x60ef1
 
-UnknownText_0x60ef1: ; 0x60ef1
+UnknownText_0x60ef1:
 	text "…AMPHY, hang on!"
 	done
-; 0x60f03
 
-UnknownText_0x60f03: ; 0x60f03
+UnknownText_0x60f03:
 	text "AMPHY: …"
 	line "…Pa… paloo…"
 	done
-; 0x60f19
 
-UnknownText_0x60f19: ; 0x60f19
+UnknownText_0x60f19:
 	text "Its breathing is"
 	line "terribly labored…"
 	done
-; 0x60f3d
 
-UnknownText_0x60f3d: ; 0x60f3d
+UnknownText_0x60f3d:
 	text "AMPHY: Palu!"
 	line "Palulu!"
 	done
-; 0x60f53
 
-OlivineLighthouse6F_MapEventHeader: ; 0x60f53
+OlivineLighthouse6F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_JASMINE, 12, 12, $6, $0, 255, 255, $80, 0, JasmineScript_0x60b91, $06d2
-	person_event SPRITE_MONSTER, 12, 13, $6, $0, 255, 255, $b0, 0, MonsterScript_0x60c3a, $ffff
-	person_event SPRITE_POKE_BALL, 8, 7, $1, $0, 255, 255, $1, 0, ItemFragment_0x60c66, $0668
-; 0x60f8f
+	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
--- a/maps/OlivineMart.asm
+++ b/maps/OlivineMart.asm
@@ -1,27 +1,23 @@
-OlivineMart_MapScriptHeader: ; 0x9cac5
-	; trigger count
+OlivineMart_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9cac7
 
-ClerkScript_0x9cac7: ; 0x9cac7
+ClerkScript_0x9cac7:
 	loadfont
 	pokemart $0, $000d
 	loadmovesprites
 	end
-; 0x9cace
 
-CooltrainerFScript_0x9cace: ; 0x9cace
+CooltrainerFScript_0x9cace:
 	jumptextfaceplayer UnknownText_0x9cad4
-; 0x9cad1
 
-LassScript_0x9cad1: ; 0x9cad1
+LassScript_0x9cad1:
 	jumptextfaceplayer UnknownText_0x9cb16
-; 0x9cad4
 
-UnknownText_0x9cad4: ; 0x9cad4
+UnknownText_0x9cad4:
 	text "Do your #MON"
 	line "already know the"
 
@@ -28,9 +24,8 @@
 	para "move for carrying"
 	line "people on water?"
 	done
-; 0x9cb16
 
-UnknownText_0x9cb16: ; 0x9cb16
+UnknownText_0x9cb16:
 	text "My BUTTERFREE came"
 	line "from my boyfriend"
 	cont "overseas."
@@ -44,26 +39,24 @@
 	para "Let's see… Nope!"
 	line "It's a secret!"
 	done
-; 0x9cb9e
 
-OlivineMart_MapEventHeader: ; 0x9cb9e
+OlivineMart_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 7, 5, $9, $0, 255, 255, $0, 0, ClerkScript_0x9cac7, $ffff
-	person_event SPRITE_COOLTRAINER_F, 6, 10, $5, $2, 255, 255, $a0, 0, CooltrainerFScript_0x9cace, $ffff
-	person_event SPRITE_LASS, 10, 5, $8, $0, 255, 255, $0, 0, LassScript_0x9cad1, $ffff
-; 0x9cbd5
+	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
--- a/maps/OlivinePokeCenter1F.asm
+++ b/maps/OlivinePokeCenter1F.asm
@@ -1,28 +1,23 @@
-OlivinePokeCenter1F_MapScriptHeader: ; 0x9c000
-	; trigger count
+OlivinePokeCenter1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9c002
 
-NurseScript_0x9c002: ; 0x9c002
+NurseScript_0x9c002:
 	jumpstd pokecenternurse
-; 0x9c005
 
-FishingGuruScript_0x9c005: ; 0x9c005
-	jumpstd $0033
-; 0x9c008
+FishingGuruScript_0x9c005:
+	jumpstd happinesschecknpc
 
-FisherScript_0x9c008: ; 0x9c008
+FisherScript_0x9c008:
 	jumptextfaceplayer UnknownText_0x9c00e
-; 0x9c00b
 
-TeacherScript_0x9c00b: ; 0x9c00b
+TeacherScript_0x9c00b:
 	jumptextfaceplayer UnknownText_0x9c086
-; 0x9c00e
 
-UnknownText_0x9c00e: ; 0x9c00e
+UnknownText_0x9c00e:
 	text "The SAILOR in the"
 	line "OLIVINE CAFE next"
 
@@ -35,9 +30,8 @@
 	para "Now it can move"
 	line "big boulders."
 	done
-; 0x9c086
 
-UnknownText_0x9c086: ; 0x9c086
+UnknownText_0x9c086:
 	text "There's a person"
 	line "in CIANWOOD CITY"
 	cont "across the sea."
@@ -46,28 +40,26 @@
 	line "ging about his"
 	cont "rare #MON."
 	done
-; 0x9c0e4
 
-OlivinePokeCenter1F_MapEventHeader: ; 0x9c0e4
+OlivinePokeCenter1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_NURSE, 5, 7, $6, $0, 255, 255, $0, 0, NurseScript_0x9c002, $ffff
-	person_event SPRITE_FISHING_GURU, 8, 12, $5, $1, 255, 255, $0, 0, FishingGuruScript_0x9c005, $ffff
-	person_event SPRITE_FISHER, 7, 6, $6, $0, 255, 255, $a0, 0, FisherScript_0x9c008, $ffff
-	person_event SPRITE_TEACHER, 5, 11, $6, $0, 255, 255, $0, 0, TeacherScript_0x9c00b, $ffff
-; 0x9c12d
+	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
--- a/maps/OlivinePort.asm
+++ b/maps/OlivinePort.asm
@@ -1,5 +1,5 @@
-OlivinePort_MapScriptHeader: ; 0x748a2
-	; trigger count
+OlivinePort_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,32 +6,28 @@
 	dw UnknownScript_0x748ac, $0000
 	dw UnknownScript_0x748ad, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x748ac
 
-UnknownScript_0x748ac: ; 0x748ac
+UnknownScript_0x748ac:
 	end
-; 0x748ad
 
-UnknownScript_0x748ad: ; 0x748ad
+UnknownScript_0x748ad:
 	priorityjump UnknownScript_0x748b1
 	end
-; 0x748b1
 
-UnknownScript_0x748b1: ; 0x748b1
+UnknownScript_0x748b1:
 	applymovement $0, MovementData_0x74a32
 	appear $2
 	dotrigger $0
-	setevent $0000
+	setevent EVENT_GAVE_KURT_APRICORNS
 	blackoutmod GROUP_OLIVINE_CITY, MAP_OLIVINE_CITY
 	end
-; 0x748c0
 
-SailorScript_0x748c0: ; 0x748c0
+SailorScript_0x748c0:
 	faceplayer
 	loadfont
-	checkevent $0000
+	checkevent EVENT_GAVE_KURT_APRICORNS
 	iftrue UnknownScript_0x74919
 	writetext UnknownText_0x74a55
 	closetext
@@ -43,12 +39,12 @@
 	waitbutton
 	applymovement $0, MovementData_0x74a30
 	playsound SFX_EXIT_BUILDING
-	special Function8c084
+	special FadeBlackBGMap
 	waitbutton
-	checkevent $0030
+	checkevent EVENT_FAST_SHIP_FIRST_TIME
 	iffalse UnknownScript_0x7490a
-	clearevent $073a
-	setevent $073b
+	clearevent EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
+	setevent EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
 	clearevent EVENT_BEAT_COOLTRAINERM_SEAN
 	clearevent EVENT_BEAT_COOLTRAINERF_CAROL
 	clearevent EVENT_BEAT_GENTLEMAN_EDWARD
@@ -58,38 +54,36 @@
 	clearevent EVENT_BEAT_SAILOR_GARRETT
 	clearevent EVENT_BEAT_FISHER_JONAH
 	clearevent EVENT_BEAT_BLACKBELT_WAI
-UnknownScript_0x7490a: ; 0x7490a
-	clearevent $002f
+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
 	end
-; 0x74919
 
-UnknownScript_0x74919: ; 0x74919
+UnknownScript_0x74919:
 	writetext UnknownText_0x74a80
 	closetext
 	loadmovesprites
 	end
-; 0x7491f
 
-UnknownScript_0x7491f: ; 0x7491f
+UnknownScript_0x7491f:
 	spriteface $4, RIGHT
-	checkevent $0000
+	checkevent EVENT_GAVE_KURT_APRICORNS
 	iftrue UnknownScript_0x7498b
-	checkevent $0001
+	checkevent EVENT_RECEIVED_BALLS_FROM_KURT
 	iftrue UnknownScript_0x7498b
 	spriteface $0, LEFT
 	loadfont
-	checkevent $0030
+	checkevent EVENT_FAST_SHIP_FIRST_TIME
 	iffalse UnknownScript_0x7494e
-	checkcode $b
+	checkcode VAR_WEEKDAY
 	if_equal SUNDAY, UnknownScript_0x74977
 	if_equal SATURDAY, UnknownScript_0x74977
 	if_equal TUESDAY, UnknownScript_0x74981
 	if_equal WEDNESDAY, UnknownScript_0x74981
 	if_equal THURSDAY, UnknownScript_0x74981
-UnknownScript_0x7494e: ; 0x7494e
+UnknownScript_0x7494e:
 	writetext UnknownText_0x74a9c
 	yesorno
 	iffalse UnknownScript_0x74992
@@ -100,68 +94,61 @@
 	writetext UnknownText_0x74b11
 	closetext
 	loadmovesprites
-	setevent $0001
+	setevent EVENT_RECEIVED_BALLS_FROM_KURT
 	applymovement $0, MovementData_0x74a37
 	jump SailorScript_0x748c0
-; 0x7496d
 
-UnknownScript_0x7496d: ; 0x7496d
+UnknownScript_0x7496d:
 	writetext UnknownText_0x74b41
 	closetext
 	loadmovesprites
 	applymovement $0, MovementData_0x74a34
 	end
-; 0x74977
 
-UnknownScript_0x74977: ; 0x74977
+UnknownScript_0x74977:
 	writetext UnknownText_0x74ba8
 	closetext
 	loadmovesprites
 	applymovement $0, MovementData_0x74a34
 	end
-; 0x74981
 
-UnknownScript_0x74981: ; 0x74981
+UnknownScript_0x74981:
 	writetext UnknownText_0x74bce
 	closetext
 	loadmovesprites
 	applymovement $0, MovementData_0x74a34
 	end
-; 0x7498b
 
-UnknownScript_0x7498b: ; 0x7498b
+UnknownScript_0x7498b:
 	end
-; 0x7498c
 
-UnknownScript_0x7498c: ; 0x7498c
+UnknownScript_0x7498c:
 	writetext UnknownText_0x74af6
 	closetext
 	loadmovesprites
 	end
-; 0x74992
 
-UnknownScript_0x74992: ; 0x74992
+UnknownScript_0x74992:
 	writetext UnknownText_0x74af6
 	closetext
 	loadmovesprites
 	applymovement $0, MovementData_0x74a34
 	end
-; 0x7499c
 
-SailorScript_0x7499c: ; 0x7499c
+SailorScript_0x7499c:
 	faceplayer
 	loadfont
-	checkevent $0000
+	checkevent EVENT_GAVE_KURT_APRICORNS
 	iftrue UnknownScript_0x74919
-	checkevent $0030
+	checkevent EVENT_FAST_SHIP_FIRST_TIME
 	iffalse UnknownScript_0x749c0
-	checkcode $b
+	checkcode VAR_WEEKDAY
 	if_equal SUNDAY, UnknownScript_0x749f2
 	if_equal SATURDAY, UnknownScript_0x749f2
 	if_equal TUESDAY, UnknownScript_0x749f8
 	if_equal WEDNESDAY, UnknownScript_0x749f8
 	if_equal THURSDAY, UnknownScript_0x749f8
-UnknownScript_0x749c0: ; 0x749c0
+UnknownScript_0x749c0:
 	writetext UnknownText_0x74a9c
 	yesorno
 	iffalse UnknownScript_0x7498c
@@ -172,44 +159,38 @@
 	writetext UnknownText_0x74b11
 	closetext
 	loadmovesprites
-	setevent $0001
-	checkcode $9
+	setevent EVENT_RECEIVED_BALLS_FROM_KURT
+	checkcode VAR_FACING
 	if_equal $3, UnknownScript_0x749e5
 	applymovement $0, MovementData_0x74a3f
 	jump SailorScript_0x748c0
-; 0x749e5
 
-UnknownScript_0x749e5: ; 0x749e5
+UnknownScript_0x749e5:
 	applymovement $0, MovementData_0x74a49
 	jump SailorScript_0x748c0
-; 0x749ec
 
-UnknownScript_0x749ec: ; 0x749ec
+UnknownScript_0x749ec:
 	writetext UnknownText_0x74b41
 	closetext
 	loadmovesprites
 	end
-; 0x749f2
 
-UnknownScript_0x749f2: ; 0x749f2
+UnknownScript_0x749f2:
 	writetext UnknownText_0x74ba8
 	closetext
 	loadmovesprites
 	end
-; 0x749f8
 
-UnknownScript_0x749f8: ; 0x749f8
+UnknownScript_0x749f8:
 	writetext UnknownText_0x74bce
 	closetext
 	loadmovesprites
 	end
-; 0x749fe
 
-SailorScript_0x749fe: ; 0x749fe
+SailorScript_0x749fe:
 	jumptextfaceplayer UnknownText_0x74cd7
-; 0x74a01
 
-FishingGuruScript_0x74a01: ; 0x74a01
+FishingGuruScript_0x74a01:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x74bf4
@@ -217,9 +198,8 @@
 	loadmovesprites
 	spriteface $5, UP
 	end
-; 0x74a0c
 
-FishingGuruScript_0x74a0c: ; 0x74a0c
+FishingGuruScript_0x74a0c:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x74c35
@@ -227,9 +207,8 @@
 	loadmovesprites
 	spriteface $6, UP
 	end
-; 0x74a17
 
-YoungsterScript_0x74a17: ; 0x74a17
+YoungsterScript_0x74a17:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x74c76
@@ -237,9 +216,8 @@
 	loadmovesprites
 	spriteface $7, DOWN
 	end
-; 0x74a22
 
-CooltrainerFScript_0x74a22: ; 0x74a22
+CooltrainerFScript_0x74a22:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x74ca2
@@ -247,31 +225,25 @@
 	loadmovesprites
 	spriteface $8, DOWN
 	end
-; 0x74a2d
 
-MapOlivinePortSignpostItem0: ; 0x74a2d
-	dw $00ea
-	db PROTEIN
+MapOlivinePortSignpostItem0:
+	dwb EVENT_OLIVINE_PORT_HIDDEN_PROTEIN, PROTEIN
 	
-; 0x74a30
 
-MovementData_0x74a30: ; 0x74a30
+MovementData_0x74a30:
 	step_down
 	step_end
-; 0x74a32
 
-MovementData_0x74a32: ; 0x74a32
+MovementData_0x74a32:
 	step_up
 	step_end
-; 0x74a34
 
-MovementData_0x74a34: ; 0x74a34
+MovementData_0x74a34:
 	step_right
 	turn_head_left
 	step_end
-; 0x74a37
 
-MovementData_0x74a37: ; 0x74a37
+MovementData_0x74a37:
 	step_down
 	step_down
 	step_down
@@ -280,9 +252,8 @@
 	step_down
 	step_down
 	step_end
-; 0x74a3f
 
-MovementData_0x74a3f: ; 0x74a3f
+MovementData_0x74a3f:
 	step_right
 	step_down
 	step_down
@@ -293,9 +264,8 @@
 	step_down
 	step_down
 	step_end
-; 0x74a49
 
-MovementData_0x74a49: ; 0x74a49
+MovementData_0x74a49:
 	step_up
 	step_right
 	step_right
@@ -308,22 +278,19 @@
 	step_down
 	step_down
 	step_end
-; 0x74a55
 
-UnknownText_0x74a55: ; 0x74a55
+UnknownText_0x74a55:
 	text "We're departing"
 	line "soon. Please get"
 	cont "on board."
 	done
-; 0x74a80
 
-UnknownText_0x74a80: ; 0x74a80
+UnknownText_0x74a80:
 	text "Sorry. You can't"
 	line "board now."
 	done
-; 0x74a9c
 
-UnknownText_0x74a9c: ; 0x74a9c
+UnknownText_0x74a9c:
 	text "Welcome to FAST"
 	line "SHIP S.S.AQUA."
 
@@ -330,21 +297,18 @@
 	para "Will you be board-"
 	line "ing today?"
 	done
-; 0x74ada
 
-UnknownText_0x74ada: ; 0x74ada
+UnknownText_0x74ada:
 	text "May I see your"
 	line "S.S.TICKET?"
 	done
-; 0x74af6
 
-UnknownText_0x74af6: ; 0x74af6
+UnknownText_0x74af6:
 	text "We hope to see you"
 	line "again!"
 	done
-; 0x74b11
 
-UnknownText_0x74b11: ; 0x74b11
+UnknownText_0x74b11:
 	text "<PLAYER> flashed"
 	line "the S.S.TICKET."
 
@@ -351,9 +315,8 @@
 	para "That's it."
 	line "Thank you!"
 	done
-; 0x74b41
 
-UnknownText_0x74b41: ; 0x74b41
+UnknownText_0x74b41:
 	text "<PLAYER> tried to"
 	line "show the S.S."
 	cont "TICKET…"
@@ -366,21 +329,18 @@
 	para "if you have an"
 	line "S.S.TICKET."
 	done
-; 0x74ba8
 
-UnknownText_0x74ba8: ; 0x74ba8
+UnknownText_0x74ba8:
 	text "The FAST SHIP will"
 	line "sail next Monday."
 	done
-; 0x74bce
 
-UnknownText_0x74bce: ; 0x74bce
+UnknownText_0x74bce:
 	text "The FAST SHIP will"
 	line "sail next Friday."
 	done
-; 0x74bf4
 
-UnknownText_0x74bf4: ; 0x74bf4
+UnknownText_0x74bf4:
 	text "SHELLDER are easy"
 	line "to catch here."
 
@@ -387,9 +347,8 @@
 	para "They're kind of"
 	line "rare elsewhere."
 	done
-; 0x74c35
 
-UnknownText_0x74c35: ; 0x74c35
+UnknownText_0x74c35:
 	text "How many RODS do"
 	line "you have?"
 
@@ -397,24 +356,21 @@
 	line "catch different"
 	cont "#MON."
 	done
-; 0x74c76
 
-UnknownText_0x74c76: ; 0x74c76
+UnknownText_0x74c76:
 	text "S.S.AQUA uses jets"
 	line "to skim over the"
 	cont "waves!"
 	done
-; 0x74ca2
 
-UnknownText_0x74ca2: ; 0x74ca2
+UnknownText_0x74ca2:
 	text "There are lots of"
 	line "#MON in KANTO."
 
 	para "I wish I could go…"
 	done
-; 0x74cd7
 
-UnknownText_0x74cd7: ; 0x74cd7
+UnknownText_0x74cd7:
 	text "We don't want you"
 	line "to fall into the"
 
@@ -421,32 +377,30 @@
 	para "sea, so you're not"
 	line "allowed in."
 	done
-; 0x74d18
 
-OlivinePort_MapEventHeader: ; 0x74d18
+OlivinePort_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 1
 	xy_trigger 0, $f, $7, $0, UnknownScript_0x7491f, $0, $0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 22, 1, $7, MapOlivinePortSignpostItem0
+	signpost 22, 1, SIGNPOST_ITEM, MapOlivinePortSignpostItem0
 
-	; people-events
+.PersonEvents:
 	db 7
-	person_event SPRITE_SAILOR, 27, 11, $7, $0, 255, 255, $0, 0, SailorScript_0x748c0, $072a
-	person_event SPRITE_SAILOR, 19, 11, $7, $0, 255, 255, $0, 0, SailorScript_0x749fe, $0737
-	person_event SPRITE_SAILOR, 19, 10, $9, $0, 255, 255, $0, 0, SailorScript_0x7499c, $0738
-	person_event SPRITE_FISHING_GURU, 18, 8, $7, $0, 255, 255, $0, 0, FishingGuruScript_0x74a01, $0737
-	person_event SPRITE_FISHING_GURU, 18, 17, $7, $0, 255, 255, $0, 0, FishingGuruScript_0x74a0c, $0737
-	person_event SPRITE_YOUNGSTER, 19, 8, $6, $0, 255, 255, $0, 0, YoungsterScript_0x74a17, $0738
-	person_event SPRITE_COOLTRAINER_F, 19, 15, $6, $0, 255, 255, $0, 0, CooltrainerFScript_0x74a22, $0738
-; 0x74d90
+	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
--- a/maps/OlivinePortPassage.asm
+++ b/maps/OlivinePortPassage.asm
@@ -1,16 +1,14 @@
-OlivinePortPassage_MapScriptHeader: ; 0x76faa
-	; trigger count
+OlivinePortPassage_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x76fac
 
-PokefanMScript_0x76fac: ; 0x76fac
+PokefanMScript_0x76fac:
 	jumptextfaceplayer UnknownText_0x76faf
-; 0x76faf
 
-UnknownText_0x76faf: ; 0x76faf
+UnknownText_0x76faf:
 	text "FAST SHIP S.S.AQUA"
 	line "sails to KANTO on"
 
@@ -17,13 +15,12 @@
 	para "Mondays and Fri-"
 	line "days."
 	done
-; 0x76fec
 
-OlivinePortPassage_MapEventHeader: ; 0x76fec
+OlivinePortPassage_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -31,13 +28,12 @@
 	warp_def $2, $3, 3, GROUP_OLIVINE_PORT_PASSAGE, MAP_OLIVINE_PORT_PASSAGE
 	warp_def $e, $3, 1, GROUP_OLIVINE_PORT, MAP_OLIVINE_PORT
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_POKEFAN_M, 5, 21, $8, $0, 255, 255, $0, 0, PokefanMScript_0x76fac, $0733
-; 0x77018
+	person_event SPRITE_POKEFAN_M, 5, 21, OW_LEFT | $0, $0, -1, -1, $0, 0, PokefanMScript_0x76fac, EVENT_OLIVINE_PORT_PASSAGE_POKEFAN_M
--- a/maps/OlivinePunishmentSpeechHouse.asm
+++ b/maps/OlivinePunishmentSpeechHouse.asm
@@ -1,8 +1,8 @@
 OlivinePunishmentSpeechHouse_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 OlivinePunishmentSpeechHouseDad:
@@ -39,20 +39,20 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 0, $0, OlivinePunishmentSpeechHouseBookshelf1
-	signpost 1, 1, $0, OlivinePunishmentSpeechHouseBookshelf2
+	signpost 1, 0, SIGNPOST_READ, OlivinePunishmentSpeechHouseBookshelf1
+	signpost 1, 1, SIGNPOST_READ, OlivinePunishmentSpeechHouseBookshelf2
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_POKEFAN_M, 6, 5, $3, $0, 255, 255, $0, 0, OlivinePunishmentSpeechHouseDad, $ffff
-	person_event SPRITE_LASS, 9, 9, $5, $2, 255, 255, $0, 0, OlivinePunishmentSpeechHouseDaughter, $ffff
+	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
--- a/maps/OlivineVoltorbHouse.asm
+++ b/maps/OlivineVoltorbHouse.asm
@@ -1,8 +1,8 @@
 OlivineVoltorbHouse_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 Tim:
@@ -20,19 +20,19 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 0, $0, TimsHouseBookshelf
-	signpost 1, 1, $0, TimsHouseBookshelf
+	signpost 1, 0, SIGNPOST_READ, TimsHouseBookshelf
+	signpost 1, 1, SIGNPOST_READ, TimsHouseBookshelf
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_FISHING_GURU, 7, 6, $3, $0, 255, 255, $80, 0, Tim, $ffff
+	person_event SPRITE_FISHING_GURU, 7, 6, OW_DOWN | $3, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, Tim, -1
--- a/maps/PalletTown.asm
+++ b/maps/PalletTown.asm
@@ -1,8 +1,8 @@
 PalletTown_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -71,23 +71,23 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 4
-	signpost 9, 7, $0, PalletTownSign
-	signpost 5, 3, $0, RedsHouseSign
-	signpost 13, 13, $0, OaksLabSign
-	signpost 5, 11, $0, BluesHouseSign
+	signpost 9, 7, SIGNPOST_READ, PalletTownSign
+	signpost 5, 3, SIGNPOST_READ, RedsHouseSign
+	signpost 13, 13, SIGNPOST_READ, OaksLabSign
+	signpost 5, 11, SIGNPOST_READ, BluesHouseSign
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_TEACHER, 12, 7, $2, $22, 255, 255, $0, 0, TeacherScript_0x1ac6d5, $ffff
-	person_event SPRITE_FISHER, 18, 16, $5, $2, 255, 255, $a0, 0, FisherScript_0x1ac6d8, $ffff
+	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
--- a/maps/PewterCity.asm
+++ b/maps/PewterCity.asm
@@ -1,8 +1,8 @@
 PewterCity_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -151,7 +151,7 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -159,23 +159,23 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 7
-	signpost 23, 25, $0, PewterCitySign
-	signpost 17, 11, $0, PewterGymSign
-	signpost 9, 15, $0, PewterMuseumSign
-	signpost 19, 33, $0, PewterCityMtMoonGiftShopSign
-	signpost 29, 19, $0, PewterCityWelcomeSign
-	signpost 25, 14, $0, PewterCityPokeCenterSign
-	signpost 17, 24, $0, PewterCityMartSign
+	signpost 23, 25, SIGNPOST_READ, PewterCitySign
+	signpost 17, 11, SIGNPOST_READ, PewterGymSign
+	signpost 9, 15, SIGNPOST_READ, PewterMuseumSign
+	signpost 19, 33, SIGNPOST_READ, PewterCityMtMoonGiftShopSign
+	signpost 29, 19, SIGNPOST_READ, PewterCityWelcomeSign
+	signpost 25, 14, SIGNPOST_READ, PewterCityPokeCenterSign
+	signpost 17, 24, SIGNPOST_READ, PewterCityMartSign
 
-	; people-events
+.PersonEvents:
 	db 5
-	person_event SPRITE_COOLTRAINER_F, 15, 23, $2, $22, 255, 255, $a0, 0, CooltrainerFScript_0x18c009, $ffff
-	person_event SPRITE_BUG_CATCHER, 33, 18, $2, $22, 255, 255, $80, 0, BugCatcherScript_0x18c00c, $ffff
-	person_event SPRITE_GRAMPS, 21, 33, $5, $2, 255, 255, $90, 0, GrampsScript_0x18c00f, $ffff
-	person_event SPRITE_FRUIT_TREE, 7, 36, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x18c03e, $ffff
-	person_event SPRITE_FRUIT_TREE, 7, 34, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x18c040, $ffff
+	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
--- a/maps/PewterGym.asm
+++ b/maps/PewterGym.asm
@@ -1,16 +1,15 @@
-PewterGym_MapScriptHeader: ; 0x1a2862
-	; trigger count
+PewterGym_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1a2864
 
-BrockScript_0x1a2864: ; 0x1a2864
+BrockScript_0x1a2864:
 	faceplayer
 	loadfont
-	checkflag $0023
-	iftrue UnknownScript_0x1a2892
+	checkflag ENGINE_BOULDERBADGE
+	iftrue .FightDone
 	writetext UnknownText_0x1a28d0
 	closetext
 	loadmovesprites
@@ -24,41 +23,22 @@
 	writetext UnknownText_0x1a2a3d
 	playsound SFX_GET_BADGE
 	waitbutton
-	setflag $0023
+	setflag ENGINE_BOULDERBADGE
 	writetext UnknownText_0x1a2a57
 	closetext
 	loadmovesprites
 	end
-; 0x1a2892
 
-UnknownScript_0x1a2892: ; 0x1a2892
+.FightDone
 	writetext UnknownText_0x1a2ada
 	closetext
 	loadmovesprites
 	end
-; 0x1a2898
 
-TrainerCamperJerry: ; 0x1a2898
-	; bit/flag number
-	dw $42b
+TrainerCamperJerry:
+	trainer EVENT_BEAT_CAMPER_JERRY, CAMPER, JERRY, CamperJerrySeenText, CamperJerryBeatenText, $0000, CamperJerryScript
 
-	; trainer group && trainer id
-	db CAMPER, JERRY
-
-	; text when seen
-	dw CamperJerrySeenText
-
-	; text when trainer beaten
-	dw CamperJerryBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CamperJerryScript
-; 0x1a28a4
-
-CamperJerryScript: ; 0x1a28a4
+CamperJerryScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a2c0f
@@ -65,9 +45,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a28ac
 
-PewterGymGuyScript: ; 0x1a28ac
+PewterGymGuyScript:
 	faceplayer
 	loadfont
 	checkevent EVENT_BEAT_BROCK
@@ -82,7 +61,6 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a28c0
 
 PewterGymStatue:
 	checkflag ENGINE_BOULDERBADGE
@@ -92,7 +70,7 @@
 	trainertotext BROCK, 1, $1
 	jumpstd gymstatue2
 
-UnknownText_0x1a28d0: ; 0x1a28d0
+UnknownText_0x1a28d0:
 	text "BROCK: Wow, it's"
 	line "not often that we"
 
@@ -116,9 +94,8 @@
 
 	para "Come on!"
 	done
-; 0x1a29bb
 
-UnknownText_0x1a29bb: ; 0x1a29bb
+UnknownText_0x1a29bb:
 	text "BROCK: Your #-"
 	line "MON's powerful at-"
 	cont "tacks overcame my"
@@ -130,15 +107,13 @@
 	para "Go ahead--take"
 	line "this BADGE."
 	done
-; 0x1a2a3d
 
-UnknownText_0x1a2a3d: ; 0x1a2a3d
+UnknownText_0x1a2a3d:
 	text "<PLAYER> received"
 	line "BOULDERBADGE."
 	done
-; 0x1a2a57
 
-UnknownText_0x1a2a57: ; 0x1a2a57
+UnknownText_0x1a2a57:
 	text "BROCK: <PLAY_G>,"
 	line "thanks. I enjoyed"
 
@@ -152,9 +127,8 @@
 	para "#MON even more"
 	line "powerful."
 	done
-; 0x1a2ada
 
-UnknownText_0x1a2ada: ; 0x1a2ada
+UnknownText_0x1a2ada:
 	text "BROCK: The world"
 	line "is huge. There are"
 
@@ -166,9 +140,8 @@
 	cont "come a lot strong-"
 	cont "er too."
 	done
-; 0x1a2b62
 
-CamperJerrySeenText: ; 0x1a2b62
+CamperJerrySeenText:
 	text "The trainers of"
 	line "this GYM use rock-"
 	cont "type #MON."
@@ -182,15 +155,13 @@
 	para "time. Are you"
 	line "ready for this?"
 	done
-; 0x1a2bf1
 
-CamperJerryBeatenText: ; 0x1a2bf1
+CamperJerryBeatenText:
 	text "I have to win"
 	line "these battles…"
 	done
-; 0x1a2c0f
 
-UnknownText_0x1a2c0f: ; 0x1a2c0f
+UnknownText_0x1a2c0f:
 	text "Hey, you! Trainer"
 	line "from JOHTO! BROCK"
 
@@ -200,9 +171,8 @@
 	para "don't take him"
 	line "seriously."
 	done
-; 0x1a2c6e
 
-PewterGymGuyText: ; 0x1a2c6e
+PewterGymGuyText:
 	text "Yo! CHAMP in"
 	line "making! You're"
 
@@ -218,9 +188,8 @@
 	para "just like JOHTO's"
 	line "GYM LEADERS."
 	done
-; 0x1a2d07
 
-PewterGymGuyWinText: ; 0x1a2d07
+PewterGymGuyWinText:
 	text "Yo! CHAMP in"
 	line "making! That GYM"
 
@@ -233,28 +202,26 @@
 	para "inspiring. I mean"
 	line "that seriously."
 	done
-; 0x1a2d88
 
-PewterGym_MapEventHeader: ; 0x1a2d88
+PewterGym_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 11, 2, $0, PewterGymStatue
-	signpost 11, 7, $0, PewterGymStatue
+	signpost 11, 2, SIGNPOST_READ, PewterGymStatue
+	signpost 11, 7, SIGNPOST_READ, PewterGymStatue
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_BROCK, 5, 9, $6, $0, 255, 255, $b0, 0, BrockScript_0x1a2864, $ffff
-	person_event SPRITE_YOUNGSTER, 9, 6, $9, $0, 255, 255, $a2, 3, TrainerCamperJerry, $ffff
-	person_event SPRITE_GYM_GUY, 15, 10, $6, $0, 255, 255, $90, 1, PewterGymGuyScript, $ffff
-; 0x1a2dc9
+	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
--- a/maps/PewterMart.asm
+++ b/maps/PewterMart.asm
@@ -1,27 +1,23 @@
-PewterMart_MapScriptHeader: ; 0x1a2dc9
-	; trigger count
+PewterMart_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1a2dcb
 
-ClerkScript_0x1a2dcb: ; 0x1a2dcb
+ClerkScript_0x1a2dcb:
 	loadfont
 	pokemart $0, $0013
 	loadmovesprites
 	end
-; 0x1a2dd2
 
-YoungsterScript_0x1a2dd2: ; 0x1a2dd2
+YoungsterScript_0x1a2dd2:
 	jumptextfaceplayer UnknownText_0x1a2dd8
-; 0x1a2dd5
 
-SuperNerdScript_0x1a2dd5: ; 0x1a2dd5
+SuperNerdScript_0x1a2dd5:
 	jumptextfaceplayer UnknownText_0x1a2e3a
-; 0x1a2dd8
 
-UnknownText_0x1a2dd8: ; 0x1a2dd8
+UnknownText_0x1a2dd8:
 	text "Hi! Check out my"
 	line "GYARADOS!"
 
@@ -31,9 +27,8 @@
 	para "believe how strong"
 	line "it has become."
 	done
-; 0x1a2e3a
 
-UnknownText_0x1a2e3a: ; 0x1a2e3a
+UnknownText_0x1a2e3a:
 	text "There once was a"
 	line "weird old man who"
 	cont "sold MAGIKARP."
@@ -44,26 +39,24 @@
 	para "LAKE OF RAGE were"
 	line "excellent."
 	done
-; 0x1a2eae
 
-PewterMart_MapEventHeader: ; 0x1a2eae
+PewterMart_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 7, 5, $9, $0, 255, 255, $0, 0, ClerkScript_0x1a2dcb, $ffff
-	person_event SPRITE_YOUNGSTER, 6, 13, $5, $2, 255, 255, $0, 0, YoungsterScript_0x1a2dd2, $ffff
-	person_event SPRITE_SUPER_NERD, 10, 10, $3, $0, 255, 255, $80, 0, SuperNerdScript_0x1a2dd5, $ffff
-; 0x1a2ee5
+	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
--- a/maps/PewterNidoranSpeechHouse.asm
+++ b/maps/PewterNidoranSpeechHouse.asm
@@ -1,16 +1,14 @@
-PewterNidoranSpeechHouse_MapScriptHeader: ; 0x1a2805
-	; trigger count
+PewterNidoranSpeechHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1a2807
 
-SuperNerdScript_0x1a2807: ; 0x1a2807
+SuperNerdScript_0x1a2807:
 	jumptextfaceplayer UnknownText_0x1a2814
-; 0x1a280a
 
-GrowlitheScript_0x1a280a: ; 0x1a280a
+GrowlitheScript_0x1a280a:
 	loadfont
 	writetext UnknownText_0x1a2825
 	cry NIDORAN_M
@@ -17,35 +15,31 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a2814
 
-UnknownText_0x1a2814: ; 0x1a2814
+UnknownText_0x1a2814:
 	text "NIDORAN, shake!"
 	done
-; 0x1a2825
 
-UnknownText_0x1a2825: ; 0x1a2825
+UnknownText_0x1a2825:
 	text "NIDORAN: Gau gau!"
 	done
-; 0x1a2838
 
-PewterNidoranSpeechHouse_MapEventHeader: ; 0x1a2838
+PewterNidoranSpeechHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_SUPER_NERD, 9, 7, $9, $0, 255, 255, $a0, 0, SuperNerdScript_0x1a2807, $ffff
-	person_event SPRITE_GROWLITHE, 9, 8, $16, $0, 255, 255, $90, 0, GrowlitheScript_0x1a280a, $ffff
-; 0x1a2862
+	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
--- a/maps/PewterPokeCEnter2FBeta.asm
+++ b/maps/PewterPokeCEnter2FBeta.asm
@@ -1,25 +1,23 @@
-PewterPokeCEnter2FBeta_MapScriptHeader: ; 0x1a304a
-	; trigger count
+PewterPokeCEnter2FBeta_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1a304c
 
-PewterPokeCEnter2FBeta_MapEventHeader: ; 0x1a304c
+PewterPokeCEnter2FBeta_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $7, $0, 3, GROUP_PEWTER_POKECENTER_1F, MAP_PEWTER_POKECENTER_1F
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x1a3057
--- a/maps/PewterPokeCenter1F.asm
+++ b/maps/PewterPokeCenter1F.asm
@@ -1,20 +1,17 @@
-PewterPokeCenter1F_MapScriptHeader: ; 0x1a2ee5
-	; trigger count
+PewterPokeCenter1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1a2ee7
 
-NurseScript_0x1a2ee7: ; 0x1a2ee7
+NurseScript_0x1a2ee7:
 	jumpstd pokecenternurse
-; 0x1a2eea
 
-TeacherScript_0x1a2eea: ; 0x1a2eea
+TeacherScript_0x1a2eea:
 	jumptextfaceplayer UnknownText_0x1a2f01
-; 0x1a2eed
 
-JigglypuffScript_0x1a2eed: ; 0x1a2eed
+JigglypuffScript_0x1a2eed:
 	loadfont
 	writetext UnknownText_0x1a2f5d
 	cry JIGGLYPUFF
@@ -21,13 +18,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a2ef7
 
-BugCatcherScript_0x1a2ef7: ; 0x1a2ef7
+BugCatcherScript_0x1a2ef7:
 	jumptextfaceplayer UnknownText_0x1a2f75
-; 0x1a2efa
 
-PokefanMScript_0x1a2efa: ; 0x1a2efa
+PokefanMScript_0x1a2efa:
 	faceplayer
 	loadfont
 	trade $4
@@ -34,9 +29,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a2f01
 
-UnknownText_0x1a2f01: ; 0x1a2f01
+UnknownText_0x1a2f01:
 	text "…Yeah, and the"
 	line "GYM in CINNABAR's"
 
@@ -46,15 +40,13 @@
 	para "…Yes? I'm on the"
 	line "phone. Go away!"
 	done
-; 0x1a2f5d
 
-UnknownText_0x1a2f5d: ; 0x1a2f5d
+UnknownText_0x1a2f5d:
 	text "JIGGLYPUFF: Puu"
 	line "pupuu."
 	done
-; 0x1a2f75
 
-UnknownText_0x1a2f75: ; 0x1a2f75
+UnknownText_0x1a2f75:
 	text "Most #MON get"
 	line "drowsy if they"
 
@@ -67,29 +59,27 @@
 	para "used only while a"
 	line "#MON is asleep."
 	done
-; 0x1a2ff4
 
-PewterPokeCenter1F_MapEventHeader: ; 0x1a2ff4
+PewterPokeCenter1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 5
-	person_event SPRITE_NURSE, 5, 7, $6, $0, 255, 255, $0, 0, NurseScript_0x1a2ee7, $ffff
-	person_event SPRITE_TEACHER, 10, 12, $6, $0, 255, 255, $a0, 0, TeacherScript_0x1a2eea, $ffff
-	person_event SPRITE_JIGGLYPUFF, 7, 5, $16, $0, 255, 255, $0, 0, JigglypuffScript_0x1a2eed, $ffff
-	person_event SPRITE_BUG_CATCHER, 7, 6, $6, $0, 255, 255, $90, 0, BugCatcherScript_0x1a2ef7, $ffff
-	person_event SPRITE_POKEFAN_M, 6, 11, $6, $0, 255, 255, $80, 0, PokefanMScript_0x1a2efa, $ffff
-; 0x1a304a
+	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
--- a/maps/PewterSnoozeSpeechHouse.asm
+++ b/maps/PewterSnoozeSpeechHouse.asm
@@ -1,8 +1,8 @@
 PewterSnoozeSpeechHouse_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 GrampsScript_0x1a3059:
@@ -21,19 +21,19 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 0, $0, PewterSnoozeSpeechHouseBookshelf
-	signpost 1, 1, $0, PewterSnoozeSpeechHouseBookshelf
+	signpost 1, 0, SIGNPOST_READ, PewterSnoozeSpeechHouseBookshelf
+	signpost 1, 1, SIGNPOST_READ, PewterSnoozeSpeechHouseBookshelf
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_GRAMPS, 7, 9, $8, $0, 255, 255, $90, 0, GrampsScript_0x1a3059, $ffff
+	person_event SPRITE_GRAMPS, 7, 9, OW_LEFT | $0, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, GrampsScript_0x1a3059, -1
--- a/maps/PokeCenter2F.asm
+++ b/maps/PokeCenter2F.asm
@@ -1,483 +1,432 @@
-PokeCenter2F_MapScriptHeader: ; 0x192845
-	; trigger count
+PokeCenter2F_MapScriptHeader:
+.MapTriggers:
 	db 6
 
 	; triggers
-	dw UnknownScript_0x19285f, $0000
-	dw UnknownScript_0x192873, $0000
-	dw UnknownScript_0x192877, $0000
-	dw UnknownScript_0x19287b, $0000
-	dw UnknownScript_0x19287f, $0000
-	dw UnknownScript_0x192883, $0000
+	dw .Trigger1, $0000
+	dw .Trigger2, $0000
+	dw .Trigger3, $0000
+	dw .Trigger4, $0000
+	dw .Trigger5, $0000
+	dw .Trigger6, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x19285f
 
-UnknownScript_0x19285f: ; 0x19285f
-	special Functionc2f6
-	if_equal $0, UnknownScript_0x192872
-	clearevent $0711
-	checkevent $0001
-	iftrue UnknownScript_0x192872
-	priorityjump UnknownScript_0x192887
-; 0x192872
+.Trigger1:
+	special Special_CheckMysteryGift
+	if_equal $0, .Trigger1Done
+	clearevent EVENT_MYSTERY_GIFT_DELIVERY_GUY
+	checkevent EVENT_RECEIVED_BALLS_FROM_KURT
+	iftrue .Trigger1Done
+	priorityjump PokeCenter2F_AppearMysteryGiftDeliveryGuy
 
-UnknownScript_0x192872: ; 0x192872
+.Trigger1Done:
 	end
-; 0x192873
 
-UnknownScript_0x192873: ; 0x192873
-	priorityjump UnknownScript_0x192ab6
+.Trigger2:
+	priorityjump Script_LeftCableTradeCenter
 	end
-; 0x192877
 
-UnknownScript_0x192877: ; 0x192877
-	priorityjump UnknownScript_0x192add
+.Trigger3:
+	priorityjump Script_LeftCableColosseum
 	end
-; 0x19287b
 
-UnknownScript_0x19287b: ; 0x19287b
-	priorityjump UnknownScript_0x192c4e
+.Trigger4:
+	priorityjump Script_LeftTimeCapsule
 	end
-; 0x19287f
 
-UnknownScript_0x19287f: ; 0x19287f
-	priorityjump UnknownScript_0x192ac3
+.Trigger5:
+	priorityjump Script_LeftMobileTradeRoom
 	end
-; 0x192883
 
-UnknownScript_0x192883: ; 0x192883
-	priorityjump UnknownScript_0x192aea
+.Trigger6:
+	priorityjump Script_LeftMobileBattleRoom
 	end
-; 0x192887
 
-UnknownScript_0x192887: ; 0x192887
+PokeCenter2F_AppearMysteryGiftDeliveryGuy:
 	appear $5
-	setevent $0001
+	setevent EVENT_RECEIVED_BALLS_FROM_KURT
 	end
-; 0x19288d
 
-UnknownScript_0x19288d: ; 0x19288d
+Script_TradeCenterClosed:
 	faceplayer
 	loadfont
-	writetext UnknownText_0x19312f
+	writetext Text_TradeRoomClosed
 	closetext
 	loadmovesprites
 	end
-; 0x192895
 
-UnknownScript_0x192895: ; 0x192895
+Script_BattleRoomClosed:
 	faceplayer
 	loadfont
-	writetext UnknownText_0x19315f
+	writetext Text_BattleRoomClosed
 	closetext
 	loadmovesprites
 	end
-; 0x19289d
 
-LinkReceptionistScript_0x19289d: ; 0x19289d
+LinkReceptionistScript_Trade:
 	checkevent EVENT_GAVE_MYSTERY_EGG_TO_ELM
-	iffalse UnknownScript_0x19288d
+	iffalse Script_TradeCenterClosed
 	loadfont
-	writetext UnknownText_0x192e3a
+	writetext Text_TradeReceptionistIntro
 	yesorno
-	iffalse UnknownScript_0x19291d
+	iffalse .Cancel
 	special Function10630f
-	iffalse UnknownScript_0x1928be
-	writetext UnknownText_0x192d7e
+	iffalse .NoMobile
+	writetext Text_TradeReceptionistMobile
 	special Function103612
-	iffalse UnknownScript_0x19291d
-	if_equal $1, UnknownScript_0x19291f
-UnknownScript_0x1928be: ; 0x1928be
-	special Function29ce8
-	writetext UnknownText_0x192f67
-	special Function29d11
-	iffalse UnknownScript_0x1928f6
-	writetext UnknownText_0x192f34
+	iffalse .Cancel
+	if_equal $1, .Mobile
+.NoMobile:
+	special Special_SetBitsForLinkTradeRequest
+	writetext Text_PleaseWait
+	special Special_WaitForLinkedFriend
+	iffalse .FriendNotReady
+	writetext Text_MustSaveGame
 	yesorno
-	iffalse UnknownScript_0x192917
-	special Function29e66
-	iffalse UnknownScript_0x192917
-	writetext UnknownText_0x192f67
-	special Function29d92
-	iffalse UnknownScript_0x192911
+	iffalse .DidNotSave
+	special Special_TryQuickSave
+	iffalse .DidNotSave
+	writetext Text_PleaseWait
+	special Special_CheckLinkTimeout
+	iffalse .LinkTimedOut
 	copybytetovar wcf51
-	iffalse UnknownScript_0x1928fe
-	special Function29e82
-	iffalse UnknownScript_0x192909
-	writetext UnknownText_0x19306b
+	iffalse .LinkedToFirstGen
+	special Special_CheckBothSelectedSameRoom
+	iffalse .IncompatibleRooms
+	writetext Text_PleaseComeIn2
 	closetext
 	loadmovesprites
-	scall UnknownScript_0x192b04
+	scall PokeCenter2F_CheckGender
 	warpcheck
 	end
-; 0x1928f6
 
-UnknownScript_0x1928f6: ; 0x1928f6
-	special Function29c92
-	writetext UnknownText_0x192f19
+.FriendNotReady:
+	special Special_AbortLink
+	writetext Text_FriendNotReady
 	loadmovesprites
 	end
-; 0x1928fe
 
-UnknownScript_0x1928fe: ; 0x1928fe
-	special Function29efa
-	writetext UnknownText_0x193029
-	special Function29eee
+.LinkedToFirstGen:
+	special Special_FailedLinkToPast
+	writetext Text_CantLinkToThePast
+	special Special_CloseLink
 	loadmovesprites
 	end
-; 0x192909
 
-UnknownScript_0x192909: ; 0x192909
-	writetext UnknownText_0x19304a
-	special Function29eee
+.IncompatibleRooms:
+	writetext Text_IncompatibleRooms
+	special Special_CloseLink
 	loadmovesprites
 	end
-; 0x192911
 
-UnknownScript_0x192911: ; 0x192911
-	writetext UnknownText_0x192f75
-	jump UnknownScript_0x19291a
-; 0x192917
+.LinkTimedOut:
+	writetext Text_LinkTimedOut
+	jump .AbortLink
 
-UnknownScript_0x192917: ; 0x192917
-	writetext UnknownText_0x192fd1
-UnknownScript_0x19291a: ; 0x19291a
-	special Function29c92
-UnknownScript_0x19291d: ; 0x19291d
+.DidNotSave:
+	writetext Text_PleaseComeAgain
+.AbortLink:
+	special Special_AbortLink
+.Cancel:
 	loadmovesprites
 	end
-; 0x19291f
 
-UnknownScript_0x19291f: ; 0x19291f
-	scall UnknownScript_0x19292b
-	iftrue UnknownScript_0x19292a
-	scall UnknownScript_0x19294a
+.Mobile:
+	scall .Mobile_TrySave
+	iftrue .Mobile_Abort
+	scall BattleTradeMobile_WalkIn
 	warpcheck
 	end
-; 0x19292a
 
-UnknownScript_0x19292a: ; 0x19292a
+.Mobile_Abort:
 	end
-; 0x19292b
 
-UnknownScript_0x19292b: ; 0x19292b
-	writetext UnknownText_0x192f34
+.Mobile_TrySave:
+	writetext Text_MustSaveGame
 	yesorno
-	iffalse UnknownScript_0x192943
-	special Function29e66
-	iffalse UnknownScript_0x192943
+	iffalse .Mobile_DidNotSave
+	special Special_TryQuickSave
+	iffalse .Mobile_DidNotSave
 	special Function1011f1
-	writetext UnknownText_0x19306b
+	writetext Text_PleaseComeIn2
 	closetext
 	loadmovesprites
 	writebyte $0
 	end
-; 0x192943
 
-UnknownScript_0x192943: ; 0x192943
-	writetext UnknownText_0x192fd1
+.Mobile_DidNotSave:
+	writetext Text_PleaseComeAgain
 	loadmovesprites
 	writebyte $1
 	end
-; 0x19294a
 
-UnknownScript_0x19294a: ; 0x19294a
+BattleTradeMobile_WalkIn:
 	applymovement2 MovementData_0x192cce
 	applymovement $0, MovementData_0x192ce7
 	end
-; 0x192952
 
-LinkReceptionistScript_0x192952: ; 0x192952
+LinkReceptionistScript_Battle:
 	checkevent EVENT_GAVE_MYSTERY_EGG_TO_ELM
-	iffalse UnknownScript_0x192895
+	iffalse Script_BattleRoomClosed
 	loadfont
-	writetext UnknownText_0x192de0
+	writetext Text_BattleReceptionistIntro
 	yesorno
-	iffalse UnknownScript_0x1929d2
+	iffalse .Cancel
 	special Function10630f
-	iffalse UnknownScript_0x192973
-	writetext UnknownText_0x192d39
+	iffalse .NoMobile
+	writetext Text_BattleReceptionistMobile
 	special Function103612
-	iffalse UnknownScript_0x1929d2
-	if_equal $1, UnknownScript_0x1929d4
-UnknownScript_0x192973: ; 0x192973
-	special Function29cf1
-	writetext UnknownText_0x192f67
-	special Function29d11
-	iffalse UnknownScript_0x1929ab
-	writetext UnknownText_0x192f34
+	iffalse .Cancel
+	if_equal $1, .Mobile
+.NoMobile:
+	special Special_SetBitsForBattleRequest
+	writetext Text_PleaseWait
+	special Special_WaitForLinkedFriend
+	iffalse .FriendNotReady
+	writetext Text_MustSaveGame
 	yesorno
-	iffalse UnknownScript_0x1929cc
-	special Function29e66
-	iffalse UnknownScript_0x1929cc
-	writetext UnknownText_0x192f67
-	special Function29d92
-	iffalse UnknownScript_0x1929c6
+	iffalse .DidNotSave
+	special Special_TryQuickSave
+	iffalse .DidNotSave
+	writetext Text_PleaseWait
+	special Special_CheckLinkTimeout
+	iffalse .LinkTimedOut
 	copybytetovar wcf51
-	iffalse UnknownScript_0x1929b3
-	special Function29e82
-	iffalse UnknownScript_0x1929be
-	writetext UnknownText_0x19306b
+	iffalse .LinkedToFirstGen
+	special Special_CheckBothSelectedSameRoom
+	iffalse .IncompatibleRooms
+	writetext Text_PleaseComeIn2
 	closetext
 	loadmovesprites
-	scall UnknownScript_0x192b04
+	scall PokeCenter2F_CheckGender
 	warpcheck
 	end
-; 0x1929ab
 
-UnknownScript_0x1929ab: ; 0x1929ab
-	special Function29c92
-	writetext UnknownText_0x192f19
+.FriendNotReady:
+	special Special_AbortLink
+	writetext Text_FriendNotReady
 	loadmovesprites
 	end
-; 0x1929b3
 
-UnknownScript_0x1929b3: ; 0x1929b3
-	special Function29efa
-	writetext UnknownText_0x193029
-	special Function29eee
+.LinkedToFirstGen:
+	special Special_FailedLinkToPast
+	writetext Text_CantLinkToThePast
+	special Special_CloseLink
 	loadmovesprites
 	end
-; 0x1929be
 
-UnknownScript_0x1929be: ; 0x1929be
-	writetext UnknownText_0x19304a
-	special Function29eee
+.IncompatibleRooms:
+	writetext Text_IncompatibleRooms
+	special Special_CloseLink
 	loadmovesprites
 	end
-; 0x1929c6
 
-UnknownScript_0x1929c6: ; 0x1929c6
-	writetext UnknownText_0x192f75
-	jump UnknownScript_0x1929cf
-; 0x1929cc
+.LinkTimedOut:
+	writetext Text_LinkTimedOut
+	jump .AbortLink
 
-UnknownScript_0x1929cc: ; 0x1929cc
-	writetext UnknownText_0x192fd1
-UnknownScript_0x1929cf: ; 0x1929cf
-	special Function29c92
-UnknownScript_0x1929d2: ; 0x1929d2
+.DidNotSave:
+	writetext Text_PleaseComeAgain
+.AbortLink:
+	special Special_AbortLink
+.Cancel:
 	loadmovesprites
 	end
-; 0x1929d4
 
-UnknownScript_0x1929d4: ; 0x1929d4
-	scall UnknownScript_0x192a05
-	iffalse UnknownScript_0x1929e5
-	scall UnknownScript_0x1929e6
-	iftrue UnknownScript_0x1929e5
-	scall UnknownScript_0x19294a
+.Mobile:
+	scall .SelectThreeMons
+	iffalse .Mobile_Abort
+	scall .Mobile_TrySave
+	iftrue .Mobile_Abort
+	scall BattleTradeMobile_WalkIn
 	warpcheck
 	end
-; 0x1929e5
 
-UnknownScript_0x1929e5: ; 0x1929e5
+.Mobile_Abort:
 	end
-; 0x1929e6
 
-UnknownScript_0x1929e6: ; 0x1929e6
-	writetext UnknownText_0x192f34
+.Mobile_TrySave:
+	writetext Text_MustSaveGame
 	yesorno
-	iffalse UnknownScript_0x1929fe
+	iffalse .Mobile_DidNotSave
 	special Function103780
-	iffalse UnknownScript_0x1929fe
+	iffalse .Mobile_DidNotSave
 	special Function1011f1
-	writetext UnknownText_0x19306b
+	writetext Text_PleaseComeIn2
 	closetext
 	loadmovesprites
 	writebyte $0
 	end
-; 0x1929fe
 
-UnknownScript_0x1929fe: ; 0x1929fe
-	writetext UnknownText_0x192fd1
+.Mobile_DidNotSave:
+	writetext Text_PleaseComeAgain
 	loadmovesprites
 	writebyte $1
 	end
-; 0x192a05
 
-UnknownScript_0x192a05: ; 0x192a05
-	special Function10366e
-	iffalse UnknownScript_0x192a1e
-	if_equal $1, UnknownScript_0x192a22
-	if_equal $2, UnknownScript_0x192a22
-	if_equal $3, UnknownScript_0x192a1a
-	jump UnknownScript_0x192a1e
-; 0x192a1a
+.SelectThreeMons:
+	special Mobile_SelectThreeMons
+	iffalse .Mobile_DidNotSelect
+	if_equal $1, .Mobile_OK
+	if_equal $2, .Mobile_OK
+	if_equal $3, .Mobile_InvalidParty
+	jump .Mobile_DidNotSelect
 
-UnknownScript_0x192a1a: ; 0x192a1a
-	writetext UnknownText_0x1932bc
+.Mobile_InvalidParty:
+	writetext Text_BrokeStadiumRules
 	closetext
-UnknownScript_0x192a1e: ; 0x192a1e
+.Mobile_DidNotSelect:
 	loadmovesprites
 	writebyte $0
 	end
-; 0x192a22
 
-UnknownScript_0x192a22: ; 0x192a22
+.Mobile_OK:
 	writebyte $1
 	end
-; 0x192a25
 
-UnknownScript_0x192a25: ; 0x192a25
+Script_TimeCapsuleClosed:
 	faceplayer
 	loadfont
-	writetext UnknownText_0x193100
+	writetext Text_TimeCapsuleClosed
 	closetext
 	loadmovesprites
 	end
-; 0x192a2d
 
-LinkReceptionistScript_0x192a2d: ; 0x192a2d
-	checkevent $0712
-	iftrue UnknownScript_0x192a25
-	checkflag $0053
-	iftrue UnknownScript_0x192a25
-	special Function29cfa
+LinkReceptionistScript_TimeCapsule:
+	checkevent EVENT_MET_BILL
+	iftrue Script_TimeCapsuleClosed
+	checkflag ENGINE_TIME_CAPSULE
+	iftrue Script_TimeCapsuleClosed
+	special Special_SetBitsForTimeCapsuleRequest
 	faceplayer
 	loadfont
-	writetext UnknownText_0x192e9f
+	writetext Text_TimeCapsuleRecptionistIntro
 	yesorno
-	iffalse UnknownScript_0x192aa2
-	special Function29bfb
-	if_equal $1, UnknownScript_0x192aa7
-	if_equal $2, UnknownScript_0x192aac
-	if_equal $3, UnknownScript_0x192ab1
-	writetext UnknownText_0x192f67
-	special Function29d11
-	iffalse UnknownScript_0x192a91
-	writetext UnknownText_0x192f34
+	iffalse .Cancel
+	special Special_CheckTimeCapsuleCompatibility
+	if_equal $1, .MonTooNew
+	if_equal $2, .MonMoveTooNew
+	if_equal $3, .MonHasMail
+	writetext Text_PleaseWait
+	special Special_WaitForLinkedFriend
+	iffalse .FriendNotReady
+	writetext Text_MustSaveGame
 	yesorno
-	iffalse UnknownScript_0x192a9f
-	special Function29e66
-	iffalse UnknownScript_0x192a9f
-	writetext UnknownText_0x192f67
-	special Function29d92
-	iffalse UnknownScript_0x192a99
+	iffalse .DidNotSave
+	special Special_TryQuickSave
+	iffalse .DidNotSave
+	writetext Text_PleaseWait
+	special Special_CheckLinkTimeout
+	iffalse .LinkTimedOut
 	copybytetovar wcf51
-	iffalse UnknownScript_0x192a84
-	special Function29e82
-	writetext UnknownText_0x19304a
-	special Function29eee
+	iffalse .OK
+	special Special_CheckBothSelectedSameRoom
+	writetext Text_IncompatibleRooms
+	special Special_CloseLink
 	loadmovesprites
 	end
-; 0x192a84
 
-UnknownScript_0x192a84: ; 0x192a84
-	special Function29c7b
-	writetext UnknownText_0x19306b
+.OK:
+	special Special_EnterTimeCapsule
+	writetext Text_PleaseComeIn2
 	closetext
 	loadmovesprites
-	scall UnknownScript_0x192bc4
+	scall TimeCapsuleScript_CheckPlayerGender
 	warpcheck
 	end
-; 0x192a91
 
-UnknownScript_0x192a91: ; 0x192a91
-	special Function29c92
-	writetext UnknownText_0x192f19
+.FriendNotReady:
+	special Special_AbortLink
+	writetext Text_FriendNotReady
 	loadmovesprites
 	end
-; 0x192a99
 
-UnknownScript_0x192a99: ; 0x192a99
-	writetext UnknownText_0x192f75
-	jump UnknownScript_0x192aa2
-; 0x192a9f
+.LinkTimedOut:
+	writetext Text_LinkTimedOut
+	jump .Cancel
 
-UnknownScript_0x192a9f: ; 0x192a9f
-	writetext UnknownText_0x192fd1
-UnknownScript_0x192aa2: ; 0x192aa2
-	special Function29c92
+.DidNotSave:
+	writetext Text_PleaseComeAgain
+.Cancel:
+	special Special_AbortLink
 	loadmovesprites
 	end
-; 0x192aa7
 
-UnknownScript_0x192aa7: ; 0x192aa7
-	writetext UnknownText_0x19308b
+.MonTooNew:
+	writetext Text_RejectNewMon
 	loadmovesprites
 	end
-; 0x192aac
 
-UnknownScript_0x192aac: ; 0x192aac
-	writetext UnknownText_0x1930a8
+.MonMoveTooNew:
+	writetext Text_RejectMonWithNewMove
 	loadmovesprites
 	end
-; 0x192ab1
 
-UnknownScript_0x192ab1: ; 0x192ab1
-	writetext UnknownText_0x1930cf
+.MonHasMail:
+	writetext Text_RejectMonWithMail
 	loadmovesprites
 	end
-; 0x192ab6
 
-UnknownScript_0x192ab6: ; 0x192ab6
-	special Function29c92
-	scall UnknownScript_0x192b50
+Script_LeftCableTradeCenter:
+	special Special_AbortLink
+	scall Script_CleanUpFemaleFlagAfterTrade
 	dotrigger $0
 	domaptrigger GROUP_TRADE_CENTER, MAP_TRADE_CENTER, $0
 	end
-; 0x192ac3
 
-UnknownScript_0x192ac3: ; 0x192ac3
+Script_LeftMobileTradeRoom:
 	special Function101220
-	scall UnknownScript_0x192ad0
+	scall Script_WalkOutOfMobileTradeRoom
 	dotrigger $0
 	domaptrigger GROUP_MOBILE_TRADE_ROOM_MOBILE, MAP_MOBILE_TRADE_ROOM_MOBILE, $0
 	end
-; 0x192ad0
 
-UnknownScript_0x192ad0: ; 0x192ad0
+Script_WalkOutOfMobileTradeRoom:
 	applymovement $2, MovementData_0x192d0b
 	applymovement $0, MovementData_0x192d0f
 	applymovement $2, MovementData_0x192d14
 	end
-; 0x192add
 
-UnknownScript_0x192add: ; 0x192add
-	special Function29c92
-	scall UnknownScript_0x192b8a
+Script_LeftCableColosseum:
+	special Special_AbortLink
+	scall Script_CleanUpFemaleFlagAfterBattle
 	dotrigger $0
 	domaptrigger GROUP_COLOSSEUM, MAP_COLOSSEUM, $0
 	end
-; 0x192aea
 
-UnknownScript_0x192aea: ; 0x192aea
+Script_LeftMobileBattleRoom:
 	special Function101220
-	scall UnknownScript_0x192af7
+	scall Script_WalkOutOfMobileBattleRoom
 	dotrigger $0
 	domaptrigger GROUP_MOBILE_BATTLE_ROOM, MAP_MOBILE_BATTLE_ROOM, $0
 	end
-; 0x192af7
 
-UnknownScript_0x192af7: ; 0x192af7
+Script_WalkOutOfMobileBattleRoom:
 	applymovement $3, MovementData_0x192d0b
 	applymovement $0, MovementData_0x192d0f
 	applymovement $3, MovementData_0x192d14
 	end
-; 0x192b04
 
-UnknownScript_0x192b04: ; 0x192b04
-	checkflag $0063
-	iftrue UnknownScript_0x192b12
+PokeCenter2F_CheckGender:
+	checkflag ENGINE_PLAYER_IS_FEMALE
+	iftrue .Female
 	applymovement2 MovementData_0x192cca
 	applymovement $0, MovementData_0x192cde
 	end
-; 0x192b12
 
-UnknownScript_0x192b12: ; 0x192b12
+.Female:
 	applymovement2 MovementData_0x192cd8
 	applymovement $0, MovementData_0x192ce2
 	loadfont
-	writetext UnknownText_0x193266
+	writetext Text_OhPleaseWait
 	closetext
 	loadmovesprites
 	applymovement2 MovementData_0x192cdc
 	spriteface $0, LEFT
 	loadfont
-	writetext UnknownText_0x193278
+	writetext Text_ChangeTheLook
 	closetext
 	loadmovesprites
 	playsound SFX_TINGLE
@@ -485,117 +434,107 @@
 	writebyte $80
 	special Functionc225
 	applymovement $0, MovementData_0x192d1c
-	setflag $009f
-	special Functione4a
+	setflag ENGINE_KRIS_IN_CABLE_CLUB
+	special Special_ReplaceKrisSprite
 	loadfont
-	writetext UnknownText_0x19329a
+	writetext Text_LikeTheLook
 	closetext
 	loadmovesprites
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	applymovement $0, MovementData_0x192ce5
 	end
-; 0x192b50
 
-UnknownScript_0x192b50: ; 0x192b50
-	checkflag $009f
-	iftrue UnknownScript_0x192b63
+Script_CleanUpFemaleFlagAfterTrade:
+	checkflag ENGINE_KRIS_IN_CABLE_CLUB
+	iftrue .Female
 	applymovement $2, MovementData_0x192d04
 	applymovement $0, MovementData_0x192cf5
 	applymovement $2, MovementData_0x192cfe
 	end
-; 0x192b63
 
-UnknownScript_0x192b63: ; 0x192b63
+.Female:
 	applymovement $2, MovementData_0x192d04
 	applymovement $0, MovementData_0x192d28
-	clearflag $009f
+	clearflag ENGINE_KRIS_IN_CABLE_CLUB
 	playsound SFX_TINGLE
 	applymovement $0, MovementData_0x192d17
 	writebyte $90
 	special Functionc225
 	applymovement $0, MovementData_0x192d1c
-	special Functione4a
+	special Special_ReplaceKrisSprite
 	applymovement $0, MovementData_0x192d2a
 	applymovement $2, MovementData_0x192cfe
 	end
-; 0x192b8a
 
-UnknownScript_0x192b8a: ; 0x192b8a
-	checkflag $009f
-	iftrue UnknownScript_0x192b9d
+Script_CleanUpFemaleFlagAfterBattle:
+	checkflag ENGINE_KRIS_IN_CABLE_CLUB
+	iftrue .Female
 	applymovement $3, MovementData_0x192d04
 	applymovement $0, MovementData_0x192cf5
 	applymovement $3, MovementData_0x192cfe
 	end
-; 0x192b9d
 
-UnknownScript_0x192b9d: ; 0x192b9d
+.Female:
 	applymovement $3, MovementData_0x192d04
 	applymovement $0, MovementData_0x192d28
-	clearflag $009f
+	clearflag ENGINE_KRIS_IN_CABLE_CLUB
 	playsound SFX_TINGLE
 	applymovement $0, MovementData_0x192d17
 	writebyte $90
 	special Functionc225
 	applymovement $0, MovementData_0x192d1c
-	special Functione4a
+	special Special_ReplaceKrisSprite
 	applymovement $0, MovementData_0x192d2a
 	applymovement $3, MovementData_0x192cfe
 	end
-; 0x192bc4
 
-UnknownScript_0x192bc4: ; 0x192bc4
-	checkflag $0063
-	iftrue UnknownScript_0x192bec
-	checkcode $9
-	if_equal $2, UnknownScript_0x192bdc
-	if_equal $3, UnknownScript_0x192be4
+TimeCapsuleScript_CheckPlayerGender:
+	checkflag ENGINE_PLAYER_IS_FEMALE
+	iftrue .Female
+	checkcode VAR_FACING
+	if_equal LEFT, .MaleFacingLeft
+	if_equal RIGHT, .MaleFacingRight
 	applymovement2 MovementData_0x192cd2
 	applymovement $0, MovementData_0x192cec
 	end
-; 0x192bdc
 
-UnknownScript_0x192bdc: ; 0x192bdc
+.MaleFacingLeft:
 	applymovement2 MovementData_0x192cd2
 	applymovement $0, MovementData_0x192cef
 	end
-; 0x192be4
 
-UnknownScript_0x192be4: ; 0x192be4
+.MaleFacingRight:
 	applymovement2 MovementData_0x192cd5
 	applymovement $0, MovementData_0x192cf2
 	end
-; 0x192bec
 
-UnknownScript_0x192bec: ; 0x192bec
-	checkcode $9
-	if_equal $3, UnknownScript_0x192c00
-	if_equal $2, UnknownScript_0x192c0a
+.Female:
+	checkcode VAR_FACING
+	if_equal RIGHT, .FemaleFacingRight
+	if_equal LEFT, .FemaleFacingLeft
 	applymovement2 MovementData_0x192d33
 	applymovement $0, MovementData_0x192d2d
-	jump UnknownScript_0x192c11
-; 0x192c00
+	jump .FemaleContinue
 
-UnknownScript_0x192c00: ; 0x192c00
+.FemaleFacingRight:
 	applymovement2 MovementData_0x192d36
 	applymovement $0, MovementData_0x192d2f
-	jump UnknownScript_0x192c11
-; 0x192c0a
+	jump .FemaleContinue
 
-UnknownScript_0x192c0a: ; 0x192c0a
+.FemaleFacingLeft:
 	applymovement2 MovementData_0x192d33
 	applymovement $0, MovementData_0x192d31
-UnknownScript_0x192c11: ; 0x192c11
+.FemaleContinue:
 	loadfont
-	writetext UnknownText_0x193266
+	writetext Text_OhPleaseWait
 	closetext
 	loadmovesprites
-	checkcode $9
-	if_not_equal $1, UnknownScript_0x192c20
+	checkcode VAR_FACING
+	if_not_equal UP, .FemaleChangeApperance
 	spriteface $0, LEFT
-UnknownScript_0x192c20: ; 0x192c20
+.FemaleChangeApperance:
 	loadfont
-	writetext UnknownText_0x193278
+	writetext Text_ChangeTheLook
 	closetext
 	loadmovesprites
 	playsound SFX_TINGLE
@@ -604,243 +543,212 @@
 	special Functionc225
 	applymovement $0, MovementData_0x192d22
 	faceperson $0, $4
-	setflag $009f
-	special Functione4a
+	setflag ENGINE_KRIS_IN_CABLE_CLUB
+	special Special_ReplaceKrisSprite
 	loadfont
-	writetext UnknownText_0x19329a
+	writetext Text_LikeTheLook
 	closetext
 	loadmovesprites
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	applymovement $0, MovementData_0x192d2d
 	end
-; 0x192c4e
 
-UnknownScript_0x192c4e: ; 0x192c4e
-	special Function29c92
-	checkflag $009f
-	iftrue UnknownScript_0x192c66
+Script_LeftTimeCapsule:
+	special Special_AbortLink
+	checkflag ENGINE_KRIS_IN_CABLE_CLUB
+	iftrue .Female
 	applymovement $4, MovementData_0x192d08
 	applymovement $0, MovementData_0x192cf9
 	applymovement $4, MovementData_0x192d01
-	jump UnknownScript_0x192c8c
-; 0x192c66
+	jump .Done
 
-UnknownScript_0x192c66: ; 0x192c66
+.Female:
 	applymovement $4, MovementData_0x192d08
 	applymovement $0, MovementData_0x192cfc
-	clearflag $009f
+	clearflag ENGINE_KRIS_IN_CABLE_CLUB
 	playsound SFX_TINGLE
 	applymovement $0, MovementData_0x192d17
 	writebyte $90
 	special Functionc225
 	applymovement $0, MovementData_0x192d1c
-	special Functione4a
+	special Special_ReplaceKrisSprite
 	applymovement $0, MovementData_0x192cfc
 	applymovement $4, MovementData_0x192d01
-UnknownScript_0x192c8c: ; 0x192c8c
+.Done:
 	dotrigger $0
 	domaptrigger GROUP_TIME_CAPSULE, MAP_TIME_CAPSULE, $0
 	end
-; 0x192c93
 
-MapPokeCenter2FSignpost0Script: ; 0x192c93
+MapPokeCenter2FSignpost0Script:
 	refreshscreen $0
 	special Functionc2da
 	loadmovesprites
 	end
-; 0x192c9a
 
-OfficerScript_0x192c9a: ; 0x192c9a
+OfficerScript_0x192c9a:
 	faceplayer
 	loadfont
-	checkevent $0711
-	iftrue UnknownScript_0x192cb8
-	writetext UnknownText_0x193190
+	checkevent EVENT_MYSTERY_GIFT_DELIVERY_GUY
+	iftrue .AlreadyGotGift
+	writetext Text_MysteryGiftDeliveryGuy_Intro
 	yesorno
-	iffalse UnknownScript_0x192cc4
-	writetext UnknownText_0x1931c4
+	iffalse .RefusedGift
+	writetext Text_MysteryGiftDeliveryGuy_HereYouGo
 	keeptextopen
 	waitbutton
-	special Functionc309
-	iffalse UnknownScript_0x192cbe
+	special Special_GetMysteryGiftItem
+	iffalse .BagIsFull
 	itemnotify
-	setevent $0711
-UnknownScript_0x192cb8: ; 0x192cb8
-	writetext UnknownText_0x1931d2
+	setevent EVENT_MYSTERY_GIFT_DELIVERY_GUY
+.AlreadyGotGift:
+	writetext Text_MysteryGiftDeliveryGuy_Outro
 	closetext
 	loadmovesprites
 	end
-; 0x192cbe
 
-UnknownScript_0x192cbe: ; 0x192cbe
-	writetext UnknownText_0x1931ef
+.BagIsFull:
+	writetext Text_MysteryGiftDeliveryGuy_NoRoom
 	closetext
 	loadmovesprites
 	end
-; 0x192cc4
 
-UnknownScript_0x192cc4: ; 0x192cc4
-	writetext UnknownText_0x19324d
+.RefusedGift:
+	writetext Text_MysteryGiftDeliveryGuy_SaidNo
 	closetext
 	loadmovesprites
 	end
-; 0x192cca
 
-MovementData_0x192cca: ; 0x192cca
+MovementData_0x192cca:
 	slow_step_up
 	slow_step_left
 	turn_head_right
 	step_end
-; 0x192cce
 
-MovementData_0x192cce: ; 0x192cce
+MovementData_0x192cce:
 	slow_step_up
 	slow_step_left
 	turn_head_down
 	step_end
-; 0x192cd2
 
-MovementData_0x192cd2: ; 0x192cd2
+MovementData_0x192cd2:
 	slow_step_left
 	turn_head_down
 	step_end
-; 0x192cd5
 
-MovementData_0x192cd5: ; 0x192cd5
+MovementData_0x192cd5:
 	slow_step_right
 	turn_head_down
 	step_end
-; 0x192cd8
 
-MovementData_0x192cd8: ; 0x192cd8
+MovementData_0x192cd8:
 	slow_step_up
 	slow_step_left
 	turn_head_right
 	step_end
-; 0x192cdc
 
-MovementData_0x192cdc: ; 0x192cdc
+MovementData_0x192cdc:
 	turn_head_right
 	step_end
-; 0x192cde
 
-MovementData_0x192cde: ; 0x192cde
+MovementData_0x192cde:
 	step_up
 	step_up
 	step_up
 	step_end
-; 0x192ce2
 
-MovementData_0x192ce2: ; 0x192ce2
+MovementData_0x192ce2:
 	step_up
 	step_up
 	step_end
-; 0x192ce5
 
-MovementData_0x192ce5: ; 0x192ce5
+MovementData_0x192ce5:
 	step_up
 	step_end
-; 0x192ce7
 
-MovementData_0x192ce7: ; 0x192ce7
+MovementData_0x192ce7:
 	step_up
 	step_up
 	step_right
 	step_up
 	step_end
-; 0x192cec
 
-MovementData_0x192cec: ; 0x192cec
+MovementData_0x192cec:
 	step_up
 	step_up
 	step_end
-; 0x192cef
 
-MovementData_0x192cef: ; 0x192cef
+MovementData_0x192cef:
 	step_left
 	step_up
 	step_end
-; 0x192cf2
 
-MovementData_0x192cf2: ; 0x192cf2
+MovementData_0x192cf2:
 	step_right
 	step_up
 	step_end
-; 0x192cf5
 
-MovementData_0x192cf5: ; 0x192cf5
+MovementData_0x192cf5:
 	step_down
 	step_down
 	step_down
 	step_end
-; 0x192cf9
 
-MovementData_0x192cf9: ; 0x192cf9
+MovementData_0x192cf9:
 	step_down
 	step_down
 	step_end
-; 0x192cfc
 
-MovementData_0x192cfc: ; 0x192cfc
+MovementData_0x192cfc:
 	step_down
 	step_end
-; 0x192cfe
 
-MovementData_0x192cfe: ; 0x192cfe
+MovementData_0x192cfe:
 	slow_step_right
 	slow_step_down
 	step_end
-; 0x192d01
 
-MovementData_0x192d01: ; 0x192d01
+MovementData_0x192d01:
 	slow_step_right
 	turn_head_down
 	step_end
-; 0x192d04
 
-MovementData_0x192d04: ; 0x192d04
+MovementData_0x192d04:
 	slow_step_up
 	slow_step_left
 	turn_head_right
 	step_end
-; 0x192d08
 
-MovementData_0x192d08: ; 0x192d08
+MovementData_0x192d08:
 	slow_step_left
 	turn_head_right
 	step_end
-; 0x192d0b
 
-MovementData_0x192d0b: ; 0x192d0b
+MovementData_0x192d0b:
 	slow_step_up
 	slow_step_left
 	turn_head_right
 	step_end
-; 0x192d0f
 
-MovementData_0x192d0f: ; 0x192d0f
+MovementData_0x192d0f:
 	step_down
 	step_left
 	step_down
 	step_down
 	step_end
-; 0x192d14
 
-MovementData_0x192d14: ; 0x192d14
+MovementData_0x192d14:
 	slow_step_right
 	slow_step_down
 	step_end
-; 0x192d17
 
-MovementData_0x192d17: ; 0x192d17
+MovementData_0x192d17:
 	turn_head_down
 	turn_head_left
 	turn_head_up
 	turn_head_right
 	step_end
-; 0x192d1c
 
-MovementData_0x192d1c: ; 0x192d1c
+MovementData_0x192d1c:
 	turn_head_down
 	turn_head_left
 	turn_head_up
@@ -847,9 +755,8 @@
 	turn_head_right
 	turn_head_left
 	step_end
-; 0x192d22
 
-MovementData_0x192d22: ; 0x192d22
+MovementData_0x192d22:
 	turn_head_down
 	turn_head_left
 	turn_head_up
@@ -856,47 +763,39 @@
 	turn_head_right
 	turn_head_down
 	step_end
-; 0x192d28
 
-MovementData_0x192d28: ; 0x192d28
+MovementData_0x192d28:
 	step_down
 	step_end
-; 0x192d2a
 
-MovementData_0x192d2a: ; 0x192d2a
+MovementData_0x192d2a:
 	step_down
 	step_down
 	step_end
-; 0x192d2d
 
-MovementData_0x192d2d: ; 0x192d2d
+MovementData_0x192d2d:
 	step_up
 	step_end
-; 0x192d2f
 
-MovementData_0x192d2f: ; 0x192d2f
+MovementData_0x192d2f:
 	step_right
 	step_end
-; 0x192d31
 
-MovementData_0x192d31: ; 0x192d31
+MovementData_0x192d31:
 	step_left
 	step_end
-; 0x192d33
 
-MovementData_0x192d33: ; 0x192d33
+MovementData_0x192d33:
 	slow_step_left
 	turn_head_right
 	step_end
-; 0x192d36
 
-MovementData_0x192d36: ; 0x192d36
+MovementData_0x192d36:
 	slow_step_right
 	turn_head_left
 	step_end
-; 0x192d39
 
-UnknownText_0x192d39: ; 0x192d39
+Text_BattleReceptionistMobile:
 	text "Would you like to"
 	line "battle over a GAME"
 
@@ -903,9 +802,8 @@
 	para "LINK cable or by"
 	line "mobile phone?"
 	done
-; 0x192d7e
 
-UnknownText_0x192d7e: ; 0x192d7e
+Text_TradeReceptionistMobile:
 	text "Would you like to"
 	line "trade over a GAME"
 
@@ -912,15 +810,13 @@
 	para "LINK cable or by"
 	line "mobile phone?"
 	done
-; 0x192dc2
 
-UnknownText_0x192dc2: ; 0x192dc2
+Text_ThisWayToMobileRoom:
 	text "This way to the"
 	line "MOBILE ROOM."
 	done
-; 0x192de0
 
-UnknownText_0x192de0: ; 0x192de0
+Text_BattleReceptionistIntro:
 	text "Welcome to CABLE"
 	line "CLUB COLOSSEUM."
 
@@ -930,9 +826,8 @@
 	para "Would you like to"
 	line "battle?"
 	done
-; 0x192e3a
 
-UnknownText_0x192e3a: ; 0x192e3a
+Text_TradeReceptionistIntro:
 	text "Welcome to CABLE"
 	line "TRADE CENTER."
 
@@ -943,9 +838,8 @@
 	para "Would you like to"
 	line "trade?"
 	done
-; 0x192e9f
 
-UnknownText_0x192e9f: ; 0x192e9f
+Text_TimeCapsuleRecptionistIntro:
 	text "Welcome to CABLE"
 	line "CLUB TIME CAPSULE."
 
@@ -956,27 +850,23 @@
 	para "Would you like to"
 	line "trade across time?"
 	done
-; 0x192f19
 
-UnknownText_0x192f19: ; 0x192f19
+Text_FriendNotReady:
 	text "Your friend is not"
 	line "ready."
 	prompt
-; 0x192f34
 
-UnknownText_0x192f34: ; 0x192f34
+Text_MustSaveGame:
 	text "Before opening the"
 	line "link, you must"
 	cont "save your game."
 	done
-; 0x192f67
 
-UnknownText_0x192f67: ; 0x192f67
+Text_PleaseWait:
 	text "Please wait."
 	done
-; 0x192f75
 
-UnknownText_0x192f75: ; 0x192f75
+Text_LinkTimedOut:
 	text "The link has been"
 	line "closed because of"
 	cont "inactivity."
@@ -985,56 +875,47 @@
 	line "your friend and"
 	cont "come again."
 	prompt
-; 0x192fd1
 
-UnknownText_0x192fd1: ; 0x192fd1
+Text_PleaseComeAgain:
 	text "Please come again."
 	prompt
-; 0x192fe5
 
-UnknownText_0x192fe5: ; 0x192fe5
+Text_PleaseComeIn:
 	text "Please come in."
 	prompt
-; 0x192ff6
 
-UnknownText_0x192ff6: ; 0x192ff6
+Text_TemporaryStagingInLinkRoom:
 	text "We'll put you in"
 	line "the link room for"
 	cont "the time being."
 	done
-; 0x193029
 
-UnknownText_0x193029: ; 0x193029
+Text_CantLinkToThePast:
 	text "You can't link to"
 	line "the past here."
 	prompt
-; 0x19304a
 
-UnknownText_0x19304a: ; 0x19304a
+Text_IncompatibleRooms:
 	text "Incompatible rooms"
 	line "were chosen."
 	prompt
-; 0x19306b
 
-UnknownText_0x19306b: ; 0x19306b
+Text_PleaseComeIn2:
 	text "Please come in."
 	done
-; 0x19307c
 
-UnknownText_0x19307c: ; 0x19307c
+Text_PleaseEnter:
 	text "Please enter."
 	prompt
-; 0x19308b
 
-UnknownText_0x19308b: ; 0x19308b
+Text_RejectNewMon:
 	text "Sorry--@"
 	text_from_ram StringBuffer1
 	text ""
 	line "can't be taken."
 	prompt
-; 0x1930a8
 
-UnknownText_0x1930a8: ; 0x1930a8
+Text_RejectMonWithNewMove:
 	text "You can't take the"
 	line "@"
 	text_from_ram StringBuffer1
@@ -1043,9 +924,8 @@
 	text_from_ram StringBuffer2
 	text "."
 	prompt
-; 0x1930cf
 
-UnknownText_0x1930cf: ; 0x1930cf
+Text_RejectMonWithMail:
 	text "You can't take the"
 	line "@"
 	text_from_ram StringBuffer1
@@ -1052,30 +932,26 @@
 	text " that"
 	cont "has MAIL with you."
 	prompt
-; 0x193100
 
-UnknownText_0x193100: ; 0x193100
+Text_TimeCapsuleClosed:
 	text "I'm sorry--the"
 	line "TIME CAPSULE is"
 	cont "being adjusted."
 	done
-; 0x19312f
 
-UnknownText_0x19312f: ; 0x19312f
+Text_TradeRoomClosed:
 	text "I'm sorry--the"
 	line "TRADE MACHINE is"
 	cont "being adjusted."
 	done
-; 0x19315f
 
-UnknownText_0x19315f: ; 0x19315f
+Text_BattleRoomClosed:
 	text "I'm sorry--the"
 	line "BATTLE MACHINE is"
 	cont "being adjusted."
 	done
-; 0x193190
 
-UnknownText_0x193190: ; 0x193190
+Text_MysteryGiftDeliveryGuy_Intro:
 	text "Hello! You're"
 	line "<PLAYER>, right?"
 
@@ -1082,20 +958,17 @@
 	para "I have some-"
 	line "thing for you."
 	done
-; 0x1931c4
 
-UnknownText_0x1931c4: ; 0x1931c4
+Text_MysteryGiftDeliveryGuy_HereYouGo:
 	text "Here you go!"
 	done
-; 0x1931d2
 
-UnknownText_0x1931d2: ; 0x1931d2
+Text_MysteryGiftDeliveryGuy_Outro:
 	text "We hope to serve"
 	line "you again."
 	done
-; 0x1931ef
 
-UnknownText_0x1931ef: ; 0x1931ef
+Text_MysteryGiftDeliveryGuy_NoRoom:
 	text "Oh, you have no"
 	line "space for this."
 
@@ -1105,32 +978,27 @@
 	para "across the country"
 	line "to pick it up."
 	done
-; 0x19324d
 
-UnknownText_0x19324d: ; 0x19324d
+Text_MysteryGiftDeliveryGuy_SaidNo:
 	text "No? That's very"
 	line "strange…"
 	done
-; 0x193266
 
-UnknownText_0x193266: ; 0x193266
+Text_OhPleaseWait:
 	text "Oh, please wait."
 	done
-; 0x193278
 
-UnknownText_0x193278: ; 0x193278
+Text_ChangeTheLook:
 	text "We need to change"
 	line "the look here…"
 	done
-; 0x19329a
 
-UnknownText_0x19329a: ; 0x19329a
+Text_LikeTheLook:
 	text "How does this"
 	line "style look to you?"
 	done
-; 0x1932bc
 
-UnknownText_0x1932bc: ; 0x1932bc
+Text_BrokeStadiumRules:
 	text "Excuse me!"
 
 	para "For STADIUM rules,"
@@ -1149,15 +1017,14 @@
 	para "Please come back"
 	line "when you're ready."
 	done
-; 0x19337f
 
-PokeCenter2F_MapEventHeader: ; 0x19337f
+PokeCenter2F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 6
-	warp_def $7, $0, 255, GROUP_POKECENTER_2F, MAP_POKECENTER_2F
+	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
@@ -1164,17 +1031,16 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 3, 7, $0, MapPokeCenter2FSignpost0Script
+	signpost 3, 7, SIGNPOST_READ, MapPokeCenter2FSignpost0Script
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_LINK_RECEPTIONIST, 6, 9, $6, $0, 255, 255, $a0, 0, LinkReceptionistScript_0x19289d, $ffff
-	person_event SPRITE_LINK_RECEPTIONIST, 6, 13, $6, $0, 255, 255, $a0, 0, LinkReceptionistScript_0x192952, $ffff
-	person_event SPRITE_LINK_RECEPTIONIST, 7, 17, $6, $0, 255, 255, $a0, 0, LinkReceptionistScript_0x192a2d, $ffff
-	person_event SPRITE_OFFICER, 5, 5, $6, $0, 255, 255, $0, 0, OfficerScript_0x192c9a, $0711
-; 0x1933dc
+	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
--- a/maps/PokeSeersHouse.asm
+++ b/maps/PokeSeersHouse.asm
@@ -1,12 +1,11 @@
-PokeSeersHouse_MapScriptHeader: ; 0x9e36c
-	; trigger count
+PokeSeersHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9e36e
 
-SeerScript: ; 0x9e36e
+SeerScript:
 	faceplayer
 	loadfont
 	special SpecialPokeSeer
@@ -13,24 +12,22 @@
 	closetext
 	loadmovesprites
 	end
-; 0x9e376
 
-PokeSeersHouse_MapEventHeader: ; 0x9e376
+PokeSeersHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_GRANNY, 7, 6, $6, $0, 255, 255, $80, 0, SeerScript, $ffff
-; 0x9e393
+	person_event SPRITE_GRANNY, 7, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, SeerScript, -1
--- a/maps/PokemonFanClub.asm
+++ b/maps/PokemonFanClub.asm
@@ -1,12 +1,11 @@
-PokemonFanClub_MapScriptHeader: ; 0x1917e7
-	; trigger count
+PokemonFanClub_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1917e9
 
-GentlemanScript_0x1917e9: ; 0x1917e9
+GentlemanScript_0x1917e9:
 	faceplayer
 	loadfont
 	checkevent EVENT_LISTENED_TO_FAN_CLUB_PRESIDENT
@@ -18,7 +17,7 @@
 	iffalse UnknownScript_0x19181b
 	writetext UnknownText_0x191911
 	keeptextopen
-UnknownScript_0x191802: ; 0x191802
+UnknownScript_0x191802:
 	writetext UnknownText_0x191a3d
 	keeptextopen
 	verbosegiveitem RARE_CANDY, 1
@@ -28,28 +27,24 @@
 	closetext
 	loadmovesprites
 	end
-; 0x191815
 
-UnknownScript_0x191815: ; 0x191815
+UnknownScript_0x191815:
 	writetext UnknownText_0x191ae0
 	closetext
 	loadmovesprites
 	end
-; 0x19181b
 
-UnknownScript_0x19181b: ; 0x19181b
+UnknownScript_0x19181b:
 	writetext UnknownText_0x191b38
 	closetext
-UnknownScript_0x19181f: ; 0x19181f
+UnknownScript_0x19181f:
 	loadmovesprites
 	end
-; 0x191821
 
-ReceptionistScript_0x191821: ; 0x191821
+ReceptionistScript_0x191821:
 	jumptextfaceplayer UnknownText_0x191b6d
-; 0x191824
 
-FisherScript_0x191824: ; 0x191824
+FisherScript_0x191824:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_LOST_ITEM_FROM_FAN_CLUB
@@ -60,9 +55,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x191838
 
-UnknownScript_0x191838: ; 0x191838
+UnknownScript_0x191838:
 	writetext UnknownText_0x191bff
 	checkevent EVENT_MET_COPYCAT_FOUND_OUT_ABOUT_LOST_ITEM
 	iftrue UnknownScript_0x191844
@@ -69,9 +63,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x191844
 
-UnknownScript_0x191844: ; 0x191844
+UnknownScript_0x191844:
 	keeptextopen
 	writetext UnknownText_0x191c5a
 	keeptextopen
@@ -86,31 +79,26 @@
 	setevent EVENT_GOT_LOST_ITEM_FROM_FAN_CLUB
 	loadmovesprites
 	end
-; 0x19185f
 
-UnknownScript_0x19185f: ; 0x19185f
+UnknownScript_0x19185f:
 	writetext UnknownText_0x191d1e
 	closetext
 	loadmovesprites
 	end
-; 0x191865
 
-UnknownScript_0x191865: ; 0x191865
+UnknownScript_0x191865:
 	writetext UnknownText_0x191d58
 	closetext
 	loadmovesprites
 	end
-; 0x19186b
 
-TeacherScript_0x19186b: ; 0x19186b
+TeacherScript_0x19186b:
 	jumptextfaceplayer UnknownText_0x191d73
-; 0x19186e
 
-FairyScript_0x19186e: ; 0x19186e
+FairyScript_0x19186e:
 	jumptext UnknownText_0x191db1
-; 0x191871
 
-OddishScript_0x191871: ; 0x191871
+OddishScript_0x191871:
 	loadfont
 	writetext UnknownText_0x191de9
 	cry BAYLEEF
@@ -117,17 +105,14 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19187b
 
-MapPokemonFanClubSignpost0Script: ; 0x19187b
+MapPokemonFanClubSignpost0Script:
 	jumptext UnknownText_0x191dfc
-; 0x19187e
 
-MapPokemonFanClubSignpost1Script: ; 0x19187e
+MapPokemonFanClubSignpost1Script:
 	jumptext UnknownText_0x191e29
-; 0x191881
 
-UnknownText_0x191881: ; 0x191881
+UnknownText_0x191881:
 	text "I'm the CHAIRMAN"
 	line "of the #MON FAN"
 	cont "CLUB."
@@ -143,9 +128,8 @@
 	line "to hear about my"
 	cont "#MON?"
 	done
-; 0x191911
 
-UnknownText_0x191911: ; 0x191911
+UnknownText_0x191911:
 	text "Good!"
 	line "Then listen up!"
 
@@ -170,16 +154,14 @@
 	cont "time! I've kept"
 	cont "you too long!"
 	done
-; 0x191a3d
 
-UnknownText_0x191a3d: ; 0x191a3d
+UnknownText_0x191a3d:
 	text "Thanks for hearing"
 	line "me out. I want you"
 	cont "to have this!"
 	done
-; 0x191a72
 
-UnknownText_0x191a72: ; 0x191a72
+UnknownText_0x191a72:
 	text "It's a RARE CANDY"
 	line "that makes #MON"
 	cont "stronger."
@@ -190,9 +172,8 @@
 	para "by battling, so"
 	line "you can have it."
 	done
-; 0x191ae0
 
-UnknownText_0x191ae0: ; 0x191ae0
+UnknownText_0x191ae0:
 	text "Hello, <PLAY_G>!"
 
 	para "Did you come see"
@@ -202,24 +183,21 @@
 	para "No? Oh… I had more"
 	line "tales to tell…"
 	done
-; 0x191b38
 
-UnknownText_0x191b38: ; 0x191b38
+UnknownText_0x191b38:
 	text "How disappointing…"
 
 	para "Come back if you"
 	line "want to listen."
 	done
-; 0x191b6d
 
-UnknownText_0x191b6d: ; 0x191b6d
+UnknownText_0x191b6d:
 	text "Our CHAIRMAN is"
 	line "very vocal when it"
 	cont "comes to #MON…"
 	done
-; 0x191ba0
 
-UnknownText_0x191ba0: ; 0x191ba0
+UnknownText_0x191ba0:
 	text "I love the way"
 	line "CLEFAIRY waggles"
 
@@ -229,9 +207,8 @@
 	para "METRONOME."
 	line "It's so adorable!"
 	done
-; 0x191bff
 
-UnknownText_0x191bff: ; 0x191bff
+UnknownText_0x191bff:
 	text "I love CLEFAIRY,"
 	line "but I could never"
 
@@ -241,9 +218,8 @@
 	para "# DOLL that I"
 	line "found."
 	done
-; 0x191c5a
 
-UnknownText_0x191c5a: ; 0x191c5a
+UnknownText_0x191c5a:
 	text "Oh, I see now. The"
 	line "girl who lost this"
 
@@ -261,15 +237,13 @@
 	para "my own one day."
 	line "No worries!"
 	done
-; 0x191d0a
 
-UnknownText_0x191d0a: ; 0x191d0a
+UnknownText_0x191d0a:
 	text "<PLAYER> received"
 	line "# DOLL."
 	done
-; 0x191d1e
 
-UnknownText_0x191d1e: ; 0x191d1e
+UnknownText_0x191d1e:
 	text "You watch. I'm"
 	line "going to get a"
 
@@ -276,15 +250,13 @@
 	para "real CLEFAIRY as"
 	line "my friend."
 	done
-; 0x191d58
 
-UnknownText_0x191d58: ; 0x191d58
+UnknownText_0x191d58:
 	text "Your PACK is"
 	line "jammed full."
 	done
-; 0x191d73
 
-UnknownText_0x191d73: ; 0x191d73
+UnknownText_0x191d73:
 	text "Look at my darling"
 	line "BAYLEEF!"
 
@@ -291,9 +263,8 @@
 	para "The leaf on its"
 	line "head is so cute!"
 	done
-; 0x191db1
 
-UnknownText_0x191db1: ; 0x191db1
+UnknownText_0x191db1:
 	text "It's a CLEFAIRY!"
 	line "Huh?"
 
@@ -301,49 +272,44 @@
 	line "CLEFAIRY #"
 	cont "DOLL."
 	done
-; 0x191de9
 
-UnknownText_0x191de9: ; 0x191de9
+UnknownText_0x191de9:
 	text "BAYLEEF: Li liif!"
 	done
-; 0x191dfc
 
-UnknownText_0x191dfc: ; 0x191dfc
+UnknownText_0x191dfc:
 	text "Let's all listen"
 	line "politely to other"
 	cont "trainers."
 	done
-; 0x191e29
 
-UnknownText_0x191e29: ; 0x191e29
+UnknownText_0x191e29:
 	text "If someone brags,"
 	line "brag right back!"
 	done
-; 0x191e4d
 
-PokemonFanClub_MapEventHeader: ; 0x191e4d
+PokemonFanClub_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 0, 7, $0, MapPokemonFanClubSignpost0Script
-	signpost 0, 9, $0, MapPokemonFanClubSignpost1Script
+	signpost 0, 7, SIGNPOST_READ, MapPokemonFanClubSignpost0Script
+	signpost 0, 9, SIGNPOST_READ, MapPokemonFanClubSignpost1Script
 
-	; people-events
+.PersonEvents:
 	db 6
-	person_event SPRITE_GENTLEMAN, 5, 7, $6, $0, 255, 255, $0, 0, GentlemanScript_0x1917e9, $ffff
-	person_event SPRITE_RECEPTIONIST, 5, 8, $6, $0, 255, 255, $a0, 0, ReceptionistScript_0x191821, $ffff
-	person_event SPRITE_FISHER, 7, 6, $9, $0, 255, 255, $0, 0, FisherScript_0x191824, $ffff
-	person_event SPRITE_TEACHER, 6, 11, $8, $0, 255, 255, $0, 0, TeacherScript_0x19186b, $ffff
-	person_event SPRITE_FAIRY, 8, 6, $6, $0, 255, 255, $0, 0, FairyScript_0x19186e, $0774
-	person_event SPRITE_ODDISH, 7, 11, $16, $0, 255, 255, $a0, 0, OddishScript_0x191871, $ffff
-; 0x191eb5
+	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
--- a/maps/PowerPlant.asm
+++ b/maps/PowerPlant.asm
@@ -1,5 +1,5 @@
-PowerPlant_MapScriptHeader: ; 0x188db9
-	; trigger count
+PowerPlant_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,21 +6,18 @@
 	dw UnknownScript_0x188dc3, $0000
 	dw UnknownScript_0x188dc4, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x188dc3
 
-UnknownScript_0x188dc3: ; 0x188dc3
+UnknownScript_0x188dc3:
 	end
-; 0x188dc4
 
-UnknownScript_0x188dc4: ; 0x188dc4
+UnknownScript_0x188dc4:
 	end
-; 0x188dc5
 
-UnknownScript_0x188dc5: ; 0x188dc5
+UnknownScript_0x188dc5:
 	playsound SFX_CALL
-	showemote $0, $2, 15
+	showemote EMOTE_SHOCK, $2, 15
 	waitbutton
 	pause 30
 	applymovement $2, MovementData_0x188ed5
@@ -40,9 +37,8 @@
 	applymovement $2, MovementData_0x188eda
 	dotrigger $0
 	end
-; 0x188df5
 
-OfficerScript_0x188df5: ; 0x188df5
+OfficerScript_0x188df5:
 	faceplayer
 	loadfont
 	checkevent EVENT_RETURNED_MACHINE_PART
@@ -53,23 +49,20 @@
 	closetext
 	loadmovesprites
 	end
-; 0x188e09
 
-UnknownScript_0x188e09: ; 0x188e09
+UnknownScript_0x188e09:
 	writetext UnknownText_0x188f7f
 	closetext
 	loadmovesprites
 	end
-; 0x188e0f
 
-UnknownScript_0x188e0f: ; 0x188e0f
+UnknownScript_0x188e0f:
 	writetext UnknownText_0x188fa2
 	closetext
 	loadmovesprites
 	end
-; 0x188e15
 
-GymGuyScript_0x188e15: ; 0x188e15
+GymGuyScript_0x188e15:
 	faceplayer
 	loadfont
 	checkevent EVENT_RETURNED_MACHINE_PART
@@ -78,16 +71,14 @@
 	closetext
 	loadmovesprites
 	end
-; 0x188e23
 
-UnknownScript_0x188e23: ; 0x188e23
+UnknownScript_0x188e23:
 	writetext UnknownText_0x189038
 	closetext
 	loadmovesprites
 	end
-; 0x188e29
 
-GymGuyScript_0x188e29: ; 0x188e29
+GymGuyScript_0x188e29:
 	faceplayer
 	loadfont
 	checkevent EVENT_RETURNED_MACHINE_PART
@@ -96,16 +87,14 @@
 	closetext
 	loadmovesprites
 	end
-; 0x188e37
 
-UnknownScript_0x188e37: ; 0x188e37
+UnknownScript_0x188e37:
 	writetext UnknownText_0x1890ef
 	closetext
 	loadmovesprites
 	end
-; 0x188e3d
 
-OfficerScript_0x188e3d: ; 0x188e3d
+OfficerScript_0x188e3d:
 	faceplayer
 	loadfont
 	checkevent EVENT_RETURNED_MACHINE_PART
@@ -114,16 +103,14 @@
 	closetext
 	loadmovesprites
 	end
-; 0x188e4b
 
-UnknownScript_0x188e4b: ; 0x188e4b
+UnknownScript_0x188e4b:
 	writetext UnknownText_0x18917f
 	closetext
 	loadmovesprites
 	end
-; 0x188e51
 
-GymGuyScript_0x188e51: ; 0x188e51
+GymGuyScript_0x188e51:
 	faceplayer
 	loadfont
 	checkevent EVENT_RETURNED_MACHINE_PART
@@ -132,16 +119,14 @@
 	closetext
 	loadmovesprites
 	end
-; 0x188e5f
 
-UnknownScript_0x188e5f: ; 0x188e5f
+UnknownScript_0x188e5f:
 	writetext UnknownText_0x189225
 	closetext
 	loadmovesprites
 	end
-; 0x188e65
 
-PowerPlantManager: ; 0x188e65
+PowerPlantManager:
 	faceplayer
 	loadfont
 	checkevent EVENT_RETURNED_MACHINE_PART
@@ -154,53 +139,49 @@
 	closetext
 	loadmovesprites
 	setevent EVENT_MET_MANAGER_AT_POWER_PLANT
-	clearevent $076d
+	clearevent EVENT_CERULEAN_GYM_ROCKET
 	clearevent EVENT_FOUND_MACHINE_PART_IN_CERULEAN_GYM
 	domaptrigger GROUP_CERULEAN_GYM, MAP_CERULEAN_GYM, $1
 	dotrigger $1
 	end
-; 0x188e8d
 
-UnknownScript_0x188e8d: ; 0x188e8d
+UnknownScript_0x188e8d:
 	writetext UnknownText_0x189308
 	closetext
 	loadmovesprites
 	end
-; 0x188e93
 
-UnknownScript_0x188e93: ; 0x188e93
+UnknownScript_0x188e93:
 	writetext UnknownText_0x18936e
 	keeptextopen
 	takeitem MACHINE_PART, 1
 	setevent EVENT_RETURNED_MACHINE_PART
-	clearevent $0772
-	setevent $0771
-	setevent $076c
+	clearevent EVENT_SAFFRON_TRAIN_STATION_POPULATION
+	setevent EVENT_ROUTE_5_6_POKEFAN_M_BLOCKS_UNDERGROUND_PATH
+	setevent EVENT_ROUTE_24_ROCKET
 	setevent EVENT_RESTORED_POWER_TO_KANTO
-	clearevent $0749
-UnknownScript_0x188eac: ; 0x188eac
+	clearevent EVENT_GOLDENROD_TRAIN_STATION_GENTLEMAN
+UnknownScript_0x188eac:
 	checkevent EVENT_GOT_TM07_ZAP_CANNON
 	iftrue UnknownScript_0x188ec5
 	writetext UnknownText_0x1893c4
 	keeptextopen
-	verbosegiveitem TM_07, 1
+	verbosegiveitem TM_ZAP_CANNON, 1
 	iffalse UnknownScript_0x188ec3
 	setevent EVENT_GOT_TM07_ZAP_CANNON
 	writetext UnknownText_0x1893f4
 	closetext
-UnknownScript_0x188ec3: ; 0x188ec3
+UnknownScript_0x188ec3:
 	loadmovesprites
 	end
-; 0x188ec5
 
-UnknownScript_0x188ec5: ; 0x188ec5
+UnknownScript_0x188ec5:
 	writetext UnknownText_0x189475
 	closetext
 	loadmovesprites
 	end
-; 0x188ecb
 
-GymGuyScript_0x188ecb: ; 0x188ecb
+GymGuyScript_0x188ecb:
 	faceplayer
 	loadfont
 	trade $6
@@ -207,20 +188,18 @@
 	closetext
 	loadmovesprites
 	end
-; 0x188ed2
 
 PowerPlantBookshelf:
 	jumpstd difficultbookshelf
 
-MovementData_0x188ed5: ; 0x188ed5
+MovementData_0x188ed5:
 	step_right
 	step_right
 	step_up
 	step_up
 	step_end
-; 0x188eda
 
-MovementData_0x188eda: ; 0x188eda
+MovementData_0x188eda:
 	step_down
 	step_down
 	step_left
@@ -227,9 +206,8 @@
 	step_left
 	turn_head_down
 	step_end
-; 0x188ee0
 
-UnknownText_0x188ee0: ; 0x188ee0
+UnknownText_0x188ee0:
 	text "A thief broke into"
 	line "the POWER PLANT…"
 
@@ -236,9 +214,8 @@
 	para "What is the world"
 	line "coming to?"
 	done
-; 0x188f22
 
-UnknownText_0x188f22: ; 0x188f22
+UnknownText_0x188f22:
 	text "I just got word"
 	line "from CERULEAN."
 
@@ -248,22 +225,19 @@
 	para "has been loitering"
 	line "around."
 	done
-; 0x188f7f
 
-UnknownText_0x188f7f: ; 0x188f7f
+UnknownText_0x188f7f:
 	text "Could I ask for"
 	line "your cooperation?"
 	done
-; 0x188fa2
 
-UnknownText_0x188fa2: ; 0x188fa2
+UnknownText_0x188fa2:
 	text "We'll have to beef"
 	line "up our security"
 	cont "presence."
 	done
-; 0x188fcf
 
-UnknownText_0x188fcf: ; 0x188fcf
+UnknownText_0x188fcf:
 	text "Someone made off"
 	line "with a part that's"
 
@@ -274,9 +248,8 @@
 	line "new generator's"
 	cont "useless!"
 	done
-; 0x189038
 
-UnknownText_0x189038: ; 0x189038
+UnknownText_0x189038:
 	text "The generator's up"
 	line "and running. It's"
 
@@ -283,9 +256,8 @@
 	para "making electricity"
 	line "to spare."
 	done
-; 0x189079
 
-UnknownText_0x189079: ; 0x189079
+UnknownText_0x189079:
 	text "This POWER PLANT"
 	line "had been abandoned"
 	cont "in the past."
@@ -296,15 +268,13 @@
 	para "provide power to"
 	line "the MAGNET TRAIN."
 	done
-; 0x1890ef
 
-UnknownText_0x1890ef: ; 0x1890ef
+UnknownText_0x1890ef:
 	text "The generator's"
 	line "running again!"
 	done
-; 0x18910e
 
-UnknownText_0x18910e: ; 0x18910e
+UnknownText_0x18910e:
 	text "The POWER PLANT's"
 	line "MANAGER is up"
 	cont "ahead."
@@ -315,9 +285,8 @@
 	cont "both sad and"
 	cont "furious…"
 	done
-; 0x18917f
 
-UnknownText_0x18917f: ; 0x18917f
+UnknownText_0x18917f:
 	text "Since the gener-"
 	line "ator's been fixed,"
 
@@ -324,9 +293,8 @@
 	para "the MANAGER has"
 	line "been cheerful."
 	done
-; 0x1891c2
 
-UnknownText_0x1891c2: ; 0x1891c2
+UnknownText_0x1891c2:
 	text "The MAGNET TRAIN"
 	line "consumes a lot of"
 	cont "electricity."
@@ -335,9 +303,8 @@
 	line "the new generator"
 	cont "isn't operating."
 	done
-; 0x189225
 
-UnknownText_0x189225: ; 0x189225
+UnknownText_0x189225:
 	text "All right! We can"
 	line "finally get the"
 
@@ -344,9 +311,8 @@
 	para "MAGNET TRAIN"
 	line "running again."
 	done
-; 0x189264
 
-UnknownText_0x189264: ; 0x189264
+UnknownText_0x189264:
 	text "MANAGER: I, I, I'm"
 	line "ready to blast"
 	cont "someone!"
@@ -363,9 +329,8 @@
 	para "a taste of my ZAP"
 	line "CANNON!"
 	done
-; 0x189308
 
-UnknownText_0x189308: ; 0x189308
+UnknownText_0x189308:
 	text "MANAGER: I won't"
 	line "forgive him!"
 
@@ -377,9 +342,8 @@
 
 	para "Gahahahah!"
 	done
-; 0x18936e
 
-UnknownText_0x18936e: ; 0x18936e
+UnknownText_0x18936e:
 	text "MANAGER: Ah! Yeah!"
 
 	para "That's the missing"
@@ -387,17 +351,15 @@
 	cont "loved generator!"
 	cont "You found it?"
 	done
-; 0x1893c4
 
-UnknownText_0x1893c4: ; 0x1893c4
+UnknownText_0x1893c4:
 	text "Wahah! Thanks!"
 
 	para "Here! Take this TM"
 	line "as a reward!"
 	done
-; 0x1893f4
 
-UnknownText_0x1893f4: ; 0x1893f4
+UnknownText_0x1893f4:
 	text "MANAGER: TM07 is"
 	line "my ZAP CANNON."
 
@@ -410,9 +372,8 @@
 	para "accurate, but it"
 	line "packs a wallop!"
 	done
-; 0x189475
 
-UnknownText_0x189475: ; 0x189475
+UnknownText_0x189475:
 	text "MANAGER: My be-"
 	line "loved generator!"
 
@@ -419,33 +380,31 @@
 	para "Keep pumping the"
 	line "electricity out!"
 	done
-; 0x1894b9
 
-PowerPlant_MapEventHeader: ; 0x1894b9
+PowerPlant_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 1
 	xy_trigger 1, $c, $5, $0, UnknownScript_0x188dc5, $0, $0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 0, $0, PowerPlantBookshelf
-	signpost 1, 1, $0, PowerPlantBookshelf
+	signpost 1, 0, SIGNPOST_READ, PowerPlantBookshelf
+	signpost 1, 1, SIGNPOST_READ, PowerPlantBookshelf
 
-	; people-events
+.PersonEvents:
 	db 7
-	person_event SPRITE_OFFICER, 18, 8, $6, $0, 255, 255, $a0, 0, OfficerScript_0x188df5, $ffff
-	person_event SPRITE_GYM_GUY, 13, 6, $3, $0, 255, 255, $90, 0, GymGuyScript_0x188e15, $ffff
-	person_event SPRITE_GYM_GUY, 15, 10, $7, $0, 255, 255, $90, 0, GymGuyScript_0x188e29, $ffff
-	person_event SPRITE_OFFICER, 7, 13, $8, $0, 255, 255, $a0, 0, OfficerScript_0x188e3d, $ffff
-	person_event SPRITE_GYM_GUY, 6, 11, $5, $1, 255, 255, $90, 0, GymGuyScript_0x188e51, $ffff
-	person_event SPRITE_FISHER, 14, 18, $7, $0, 255, 255, $80, 0, PowerPlantManager, $ffff
-	person_event SPRITE_GYM_GUY, 9, 9, $7, $0, 255, 255, $90, 0, GymGuyScript_0x188ecb, $ffff
-; 0x189536
+	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
--- a/maps/RadioTower1F.asm
+++ b/maps/RadioTower1F.asm
@@ -1,30 +1,27 @@
-RadioTower1F_MapScriptHeader: ; 0x5cd27
-	; trigger count
+RadioTower1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x5cd29
 
-ReceptionistScript_0x5cd29: ; 0x5cd29
+ReceptionistScript_0x5cd29:
 	faceplayer
 	loadfont
-	checkflag $0013
+	checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
 	iftrue UnknownScript_0x5cd37
 	writetext UnknownText_0x5ce77
 	closetext
 	loadmovesprites
 	end
-; 0x5cd37
 
-UnknownScript_0x5cd37: ; 0x5cd37
+UnknownScript_0x5cd37:
 	writetext UnknownText_0x5ce81
 	closetext
 	loadmovesprites
 	end
-; 0x5cd3d
 
-GentlemanScript_0x5cd3d: ; 0x5cd3d
+GentlemanScript_0x5cd3d:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x5ceba
@@ -32,10 +29,10 @@
 	special Functionc434
 	iffalse UnknownScript_0x5cd4c
 	special Functionc422
-UnknownScript_0x5cd4c: ; 0x5cd4c
+UnknownScript_0x5cd4c:
 	special Function4d9d3
-	checkflag $004e
-	iftrue UnknownScript_0x5cd84
+	checkflag ENGINE_LUCKY_NUMBER_SHOW
+	iftrue .GameOver
 	writetext UnknownText_0x5cf3a
 	keeptextopen
 	loadmovesprites
@@ -52,73 +49,66 @@
 	loadmovesprites
 	applymovement $6, MovementData_0x5ce74
 	loadfont
-	if_equal $1, UnknownScript_0x5cd8a
-	if_equal $2, UnknownScript_0x5cd9f
-	if_equal $3, UnknownScript_0x5cdb4
-	jump UnknownScript_0x5cdc9
-; 0x5cd84
+	if_equal 1, .FirstPlace
+	if_equal 2, .SecondPlace
+	if_equal 3, .ThirdPlace
+	jump .NoPrize
 
-UnknownScript_0x5cd84: ; 0x5cd84
+.GameOver
 	writetext UnknownText_0x5cf7e
 	closetext
 	loadmovesprites
 	end
-; 0x5cd8a
 
-UnknownScript_0x5cd8a: ; 0x5cd8a
+.FirstPlace
 	writetext UnknownText_0x5cfb5
 	playsound SFX_1ST_PLACE
 	waitbutton
 	keeptextopen
-	giveitem MASTER_BALL, $1
+	giveitem MASTER_BALL, 1
 	iffalse UnknownScript_0x5cdcf
 	itemnotify
-	setflag $004e
-	jump UnknownScript_0x5cd84
-; 0x5cd9f
+	setflag ENGINE_LUCKY_NUMBER_SHOW
+	jump .GameOver
 
-UnknownScript_0x5cd9f: ; 0x5cd9f
+.SecondPlace
 	writetext UnknownText_0x5d023
 	playsound SFX_2ND_PLACE
 	waitbutton
 	keeptextopen
-	giveitem EXP_SHARE, $1
+	giveitem EXP_SHARE, 1
 	iffalse UnknownScript_0x5cdcf
 	itemnotify
-	setflag $004e
-	jump UnknownScript_0x5cd84
-; 0x5cdb4
+	setflag ENGINE_LUCKY_NUMBER_SHOW
+	jump .GameOver
 
-UnknownScript_0x5cdb4: ; 0x5cdb4
+.ThirdPlace
 	writetext UnknownText_0x5d076
 	playsound SFX_3RD_PLACE
 	waitbutton
 	keeptextopen
-	giveitem PP_UP, $1
+	giveitem PP_UP, 1
 	iffalse UnknownScript_0x5cdcf
 	itemnotify
-	setflag $004e
-	jump UnknownScript_0x5cd84
-; 0x5cdc9
+	setflag ENGINE_LUCKY_NUMBER_SHOW
+	jump .GameOver
 
-UnknownScript_0x5cdc9: ; 0x5cdc9
+.NoPrize
 	writetext UnknownText_0x5d0c0
 	closetext
 	loadmovesprites
 	end
-; 0x5cdcf
 
-UnknownScript_0x5cdcf: ; 0x5cdcf
+UnknownScript_0x5cdcf:
 	writetext UnknownText_0x5d0e6
 	closetext
 	loadmovesprites
 	end
-; 0x5cdd5
 
-CooltrainerFScript_0x5cdd5: ; 0x5cdd5
+CooltrainerFScript_0x5cdd5:
 	faceplayer
 	loadfont
-	checkflag $0000
+	checkflag ENGINE_RADIO_CARD
 	iftrue UnknownScript_0x5ce2d
 	writetext UnknownText_0x5d12d
 	yesorno
@@ -154,67 +144,43 @@
 	scall UnknownScript_0x5ce3e
 	writetext UnknownText_0x5d3c0
 	keeptextopen
-	setflag $0000
-UnknownScript_0x5ce2d: ; 0x5ce2d
+	setflag ENGINE_RADIO_CARD
+UnknownScript_0x5ce2d:
 	writetext UnknownText_0x5d3e5
 	closetext
 	loadmovesprites
 	end
-; 0x5ce33
 
-RadioCardText: ; 0x5ce33
+RadioCardText:
 	db "RADIO CARD@"
-; 0x5ce3d
 
-UnknownScript_0x5ce3e: ; 0x5ce3e
-	jumpstd $002f
+UnknownScript_0x5ce3e:
+	jumpstd receiveitem
 	end
-; 0x5ce42
 
-UnknownScript_0x5ce42: ; 0x5ce42
+UnknownScript_0x5ce42:
 	playsound SFX_WRONG
 	writetext UnknownText_0x5d409
 	closetext
 	loadmovesprites
 	end
-; 0x5ce4b
 
-UnknownScript_0x5ce4b: ; 0x5ce4b
+UnknownScript_0x5ce4b:
 	writetext UnknownText_0x5d443
 	closetext
 	loadmovesprites
 	end
-; 0x5ce51
 
-LassScript_0x5ce51: ; 0x5ce51
+LassScript_0x5ce51:
 	jumptextfaceplayer UnknownText_0x5d476
-; 0x5ce54
 
-YoungsterScript_0x5ce54: ; 0x5ce54
+YoungsterScript_0x5ce54:
 	jumptextfaceplayer UnknownText_0x5d4ac
-; 0x5ce57
 
-TrainerGruntM3: ; 0x5ce57
-	; bit/flag number
-	dw $4f3
+TrainerGruntM3:
+	trainer EVENT_BEAT_ROCKET_GRUNTM_3, GRUNTM, 3, GruntM3SeenText, GruntM3BeatenText, $0000, GruntM3Script
 
-	; trainer group && trainer id
-	db GRUNTM, 3
-
-	; text when seen
-	dw GruntM3SeenText
-
-	; text when trainer beaten
-	dw GruntM3BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GruntM3Script
-; 0x5ce63
-
-GruntM3Script: ; 0x5ce63
+GruntM3Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5d5a2
@@ -221,42 +187,35 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5ce6b
 
-MapRadioTower1FSignpost0Script: ; 0x5ce6b
+MapRadioTower1FSignpost0Script:
 	jumptext UnknownText_0x5d5e7
-; 0x5ce6e
 
-MapRadioTower1FSignpost1Script: ; 0x5ce6e
+MapRadioTower1FSignpost1Script:
 	jumptext UnknownText_0x5d631
-; 0x5ce71
 
-MovementData_0x5ce71: ; 0x5ce71
+MovementData_0x5ce71:
 	step_right
 	turn_head_up
 	step_end
-; 0x5ce74
 
-MovementData_0x5ce74: ; 0x5ce74
+MovementData_0x5ce74:
 	step_left
 	turn_head_up
 	step_end
-; 0x5ce77
 
-UnknownText_0x5ce77: ; 0x5ce77
+UnknownText_0x5ce77:
 	text "Welcome!"
 	done
-; 0x5ce81
 
-UnknownText_0x5ce81: ; 0x5ce81
+UnknownText_0x5ce81:
 	text "Hello. I'm sorry,"
 	line "but we're not"
 	cont "offering any tours"
 	cont "today."
 	done
-; 0x5ceba
 
-UnknownText_0x5ceba: ; 0x5ceba
+UnknownText_0x5ceba:
 	text "Hi, are you here"
 	line "for the LUCKY NUM-"
 	cont "BER SHOW?"
@@ -268,36 +227,31 @@
 	para "If you get lucky,"
 	line "you win a prize."
 	done
-; 0x5cf3a
 
-UnknownText_0x5cf3a: ; 0x5cf3a
+UnknownText_0x5cf3a:
 	text "This week's ID"
 	line "number is @"
 	text_from_ram StringBuffer3
 	text "."
 	done
-; 0x5cf5a
 
-UnknownText_0x5cf5a: ; 0x5cf5a
+UnknownText_0x5cf5a:
 	text "Let's see if you"
 	line "have a match."
 	done
-; 0x5cf79
 
-UnknownText_0x5cf79: ; 0x5cf79
+UnknownText_0x5cf79:
 	text $56
 	line $56
 	done
-; 0x5cf7e
 
-UnknownText_0x5cf7e: ; 0x5cf7e
+UnknownText_0x5cf7e:
 	text "Please come back"
 	line "next week for the"
 	cont "next LUCKY NUMBER."
 	done
-; 0x5cfb5
 
-UnknownText_0x5cfb5: ; 0x5cfb5
+UnknownText_0x5cfb5:
 	text "Wow! You have a"
 	line "perfect match of"
 	cont "all five numbers!"
@@ -308,9 +262,8 @@
 	para "You have won a"
 	line "MASTER BALL!"
 	done
-; 0x5d023
 
-UnknownText_0x5d023: ; 0x5d023
+UnknownText_0x5d023:
 	text "Hey! You've"
 	line "matched the last"
 	cont "three numbers!"
@@ -319,9 +272,8 @@
 	line "prize, an EXP."
 	cont "SHARE!"
 	done
-; 0x5d076
 
-UnknownText_0x5d076: ; 0x5d076
+UnknownText_0x5d076:
 	text "Ooh, you've"
 	line "matched the last"
 	cont "two numbers."
@@ -329,15 +281,13 @@
 	para "You've won third"
 	line "prize, a PP UP."
 	done
-; 0x5d0c0
 
-UnknownText_0x5d0c0: ; 0x5d0c0
+UnknownText_0x5d0c0:
 	text "Nope, none of your"
 	line "ID numbers match."
 	done
-; 0x5d0e6
 
-UnknownText_0x5d0e6: ; 0x5d0e6
+UnknownText_0x5d0e6:
 	text "You've got no room"
 	line "for your prize."
 
@@ -344,9 +294,8 @@
 	para "Make room and come"
 	line "back right away."
 	done
-; 0x5d12d
 
-UnknownText_0x5d12d: ; 0x5d12d
+UnknownText_0x5d12d:
 	text "We have a special"
 	line "quiz campaign on"
 	cont "right now."
@@ -364,9 +313,8 @@
 	para "Would you like to"
 	line "take the quiz?"
 	done
-; 0x5d1f2
 
-UnknownText_0x5d1f2: ; 0x5d1f2
+UnknownText_0x5d1f2:
 	text "Question 1:"
 
 	para "Is there a #MON"
@@ -373,9 +321,8 @@
 	line "that appears only"
 	cont "in the morning?"
 	done
-; 0x5d231
 
-UnknownText_0x5d231: ; 0x5d231
+UnknownText_0x5d231:
 	text "Correct!"
 	line "Question 2:"
 
@@ -385,9 +332,8 @@
 	para "You can't buy a"
 	line "BERRY at a MART."
 	done
-; 0x5d282
 
-UnknownText_0x5d282: ; 0x5d282
+UnknownText_0x5d282:
 	text "Bull's-eye!"
 	line "Question 3:"
 
@@ -394,9 +340,8 @@
 	para "Does HM01 contain"
 	line "the move FLASH?"
 	done
-; 0x5d2bc
 
-UnknownText_0x5d2bc: ; 0x5d2bc
+UnknownText_0x5d2bc:
 	text "So far so good!"
 	line "Question 4:"
 
@@ -406,9 +351,8 @@
 	para "who uses bird"
 	line "#MON?"
 	done
-; 0x5d30e
 
-UnknownText_0x5d30e: ; 0x5d30e
+UnknownText_0x5d30e:
 	text "Wow! Right again!"
 	line "Here's the final"
 	cont "question:"
@@ -419,9 +363,8 @@
 	para "have CHARMANDER"
 	line "on their reels?"
 	done
-; 0x5d37b
 
-UnknownText_0x5d37b: ; 0x5d37b
+UnknownText_0x5d37b:
 	text "Bingo! You got it!"
 	line "Congratulations!"
 
@@ -428,22 +371,19 @@
 	para "Here's your prize,"
 	line "a RADIO CARD!"
 	done
-; 0x5d3c0
 
-UnknownText_0x5d3c0: ; 0x5d3c0
+UnknownText_0x5d3c0:
 	text "<PLAYER>'s #GEAR"
 	line "can now double as"
 	cont "a radio!"
 	done
-; 0x5d3e5
 
-UnknownText_0x5d3e5: ; 0x5d3e5
+UnknownText_0x5d3e5:
 	text "Please tune in to"
 	line "our radio shows."
 	done
-; 0x5d409
 
-UnknownText_0x5d409: ; 0x5d409
+UnknownText_0x5d409:
 	text "Oh, dear."
 	line "Sorry, but you"
 
@@ -450,16 +390,14 @@
 	para "got it wrong."
 	line "Please try again!"
 	done
-; 0x5d443
 
-UnknownText_0x5d443: ; 0x5d443
+UnknownText_0x5d443:
 	text "Oh. I see. Please"
 	line "see me if you"
 	cont "change your mind."
 	done
-; 0x5d476
 
-UnknownText_0x5d476: ; 0x5d476
+UnknownText_0x5d476:
 	text "BEN is a fabulous"
 	line "DJ."
 
@@ -466,9 +404,8 @@
 	para "His sweet voice"
 	line "makes me melt!"
 	done
-; 0x5d4ac
 
-UnknownText_0x5d4ac: ; 0x5d4ac
+UnknownText_0x5d4ac:
 	text "I love MARY, from"
 	line "#MON TALK."
 
@@ -476,9 +413,8 @@
 	line "she sounds like,"
 	cont "though."
 	done
-; 0x5d4f4
 
-GruntM3SeenText: ; 0x5d4f4
+GruntM3SeenText:
 	text "We've finally"
 	line "taken over the"
 	cont "RADIO TOWER!"
@@ -492,15 +428,13 @@
 	para "We'll show you"
 	line "how scary we are!"
 	done
-; 0x5d582
 
-GruntM3BeatenText: ; 0x5d582
+GruntM3BeatenText:
 	text "Too strong! We"
 	line "must watch you…"
 	done
-; 0x5d5a2
 
-UnknownText_0x5d5a2: ; 0x5d5a2
+UnknownText_0x5d5a2:
 	text "You're too strong."
 
 	para "Our plan could be"
@@ -507,9 +441,8 @@
 	line "ruined. I must"
 	cont "warn the others…"
 	done
-; 0x5d5e7
 
-UnknownText_0x5d5e7: ; 0x5d5e7
+UnknownText_0x5d5e7:
 	text "1F RECEPTION"
 	line "2F SALES"
 
@@ -519,9 +452,8 @@
 	para "5F DIRECTOR'S"
 	line "   OFFICE"
 	done
-; 0x5d631
 
-UnknownText_0x5d631: ; 0x5d631
+UnknownText_0x5d631:
 	text "LUCKY CHANNEL!"
 
 	para "Win with #MON"
@@ -531,32 +463,30 @@
 	line "to collect differ-"
 	cont "ent ID numbers!"
 	done
-; 0x5d68e
 
-RadioTower1F_MapEventHeader: ; 0x5d68e
+RadioTower1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 0, 3, $0, MapRadioTower1FSignpost0Script
-	signpost 0, 13, $0, MapRadioTower1FSignpost1Script
+	signpost 0, 3, SIGNPOST_READ, MapRadioTower1FSignpost0Script
+	signpost 0, 13, SIGNPOST_READ, MapRadioTower1FSignpost1Script
 
-	; people-events
+.PersonEvents:
 	db 6
-	person_event SPRITE_RECEPTIONIST, 10, 9, $8, $0, 255, 255, $80, 0, ReceptionistScript_0x5cd29, $ffff
-	person_event SPRITE_LASS, 8, 20, $8, $0, 255, 255, $80, 0, LassScript_0x5ce51, $06cf
-	person_event SPRITE_YOUNGSTER, 8, 19, $9, $0, 255, 255, $90, 0, YoungsterScript_0x5ce54, $06cf
-	person_event SPRITE_ROCKET, 5, 18, $6, $0, 255, 255, $2, 3, TrainerGruntM3, $06ce
-	person_event SPRITE_GENTLEMAN, 10, 12, $7, $0, 255, 255, $90, 0, GentlemanScript_0x5cd3d, $06cf
-	person_event SPRITE_COOLTRAINER_F, 10, 16, $7, $0, 255, 255, $a0, 0, CooltrainerFScript_0x5cdd5, $06cf
-; 0x5d6fb
+	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
--- a/maps/RadioTower2F.asm
+++ b/maps/RadioTower2F.asm
@@ -1,38 +1,33 @@
-RadioTower2F_MapScriptHeader: ; 0x5d6fb
-	; trigger count
+RadioTower2F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x5d6fd
 
-UnknownScript_0x5d6fd: ; 0x5d6fd
+UnknownScript_0x5d6fd:
 	end
-; 0x5d6fe
 
-SuperNerdScript_0x5d6fe: ; 0x5d6fe
+SuperNerdScript_0x5d6fe:
 	jumptextfaceplayer UnknownText_0x5d924
-; 0x5d701
 
-TeacherScript_0x5d701: ; 0x5d701
+TeacherScript_0x5d701:
 	faceplayer
 	loadfont
-	checkflag $0013
+	checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
 	iftrue UnknownScript_0x5d70f
 	writetext UnknownText_0x5d956
 	closetext
 	loadmovesprites
 	end
-; 0x5d70f
 
-UnknownScript_0x5d70f: ; 0x5d70f
+UnknownScript_0x5d70f:
 	writetext UnknownText_0x5d983
 	closetext
 	loadmovesprites
 	end
-; 0x5d715
 
-JigglypuffScript_0x5d715: ; 0x5d715
+JigglypuffScript_0x5d715:
 	loadfont
 	writetext UnknownText_0x5d9b6
 	cry JIGGLYPUFF
@@ -39,37 +34,17 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5d71f
 
-BlackBeltScript_0x5d71f: ; 0x5d71f
+BlackBeltScript_0x5d71f:
 	jumptextfaceplayer UnknownText_0x5d9cb
-; 0x5d722
 
-BlackBeltScript_0x5d722: ; 0x5d722
+BlackBeltScript_0x5d722:
 	jumptextfaceplayer UnknownText_0x5da44
-; 0x5d725
 
-TrainerGruntM4: ; 0x5d725
-	; bit/flag number
-	dw $4f4
+TrainerGruntM4:
+	trainer EVENT_BEAT_ROCKET_GRUNTM_4, GRUNTM, 4, GruntM4SeenText, GruntM4BeatenText, $0000, GruntM4Script
 
-	; trainer group && trainer id
-	db GRUNTM, 4
-
-	; text when seen
-	dw GruntM4SeenText
-
-	; text when trainer beaten
-	dw GruntM4BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GruntM4Script
-; 0x5d731
-
-GruntM4Script: ; 0x5d731
+GruntM4Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5db07
@@ -76,29 +51,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5d739
 
-TrainerGruntM5: ; 0x5d739
-	; bit/flag number
-	dw $4f5
+TrainerGruntM5:
+	trainer EVENT_BEAT_ROCKET_GRUNTM_5, GRUNTM, 5, GruntM5SeenText, GruntM5BeatenText, $0000, GruntM5Script
 
-	; trainer group && trainer id
-	db GRUNTM, 5
-
-	; text when seen
-	dw GruntM5SeenText
-
-	; text when trainer beaten
-	dw GruntM5BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GruntM5Script
-; 0x5d745
-
-GruntM5Script: ; 0x5d745
+GruntM5Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5db99
@@ -105,29 +62,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5d74d
 
-TrainerGruntM6: ; 0x5d74d
-	; bit/flag number
-	dw $4f6
+TrainerGruntM6:
+	trainer EVENT_BEAT_ROCKET_GRUNTM_6, GRUNTM, 6, GruntM6SeenText, GruntM6BeatenText, $0000, GruntM6Script
 
-	; trainer group && trainer id
-	db GRUNTM, 6
-
-	; text when seen
-	dw GruntM6SeenText
-
-	; text when trainer beaten
-	dw GruntM6BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GruntM6Script
-; 0x5d759
-
-GruntM6Script: ; 0x5d759
+GruntM6Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5dc00
@@ -134,29 +73,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5d761
 
-TrainerGruntF2: ; 0x5d761
-	; bit/flag number
-	dw $511
+TrainerGruntF2:
+	trainer EVENT_BEAT_ROCKET_GRUNTF_2, GRUNTF, 2, GruntF2SeenText, GruntF2BeatenText, $0000, GruntF2Script
 
-	; trainer group && trainer id
-	db GRUNTF, 2
-
-	; text when seen
-	dw GruntF2SeenText
-
-	; text when trainer beaten
-	dw GruntF2BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GruntF2Script
-; 0x5d76d
-
-GruntF2Script: ; 0x5d76d
+GruntF2Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5dcd0
@@ -163,25 +84,24 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5d775
 
 Buena:
 	faceplayer
 	loadfont
-	checkflag $0013
+	checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
 	iftrue UnknownScript_0x5d865
 	checkevent EVENT_MET_BUENA
 	iffalse UnknownScript_0x5d800
-	checkflag $0060
+	checkflag ENGINE_BUENAS_PASSWORD_2
 	iftrue UnknownScript_0x5d82f
-	checkcode $a
-	if_less_than $12, UnknownScript_0x5d893
-	checkflag $005f
+	checkcode VAR_HOUR
+	if_less_than 18, UnknownScript_0x5d893
+	checkflag ENGINE_BUENAS_PASSWORD
 	iffalse UnknownScript_0x5d80a
 	checkitem BLUE_CARD
 	iffalse UnknownScript_0x5d86b
-	checkcode $18
-	if_equal $1e, UnknownScript_0x5d87f
+	checkcode VAR_BLUECARDBALANCE
+	if_equal 30, UnknownScript_0x5d87f
 	playmusic MUSIC_BUENAS_PASSWORD
 	writetext UnknownText_0x5de35
 	special Function4ae12
@@ -190,10 +110,10 @@
 	closetext
 	loadmovesprites
 	spriteface $b, RIGHT
-	checkcode $9
+	checkcode VAR_FACING
 	if_not_equal $3, UnknownScript_0x5d7be
 	applymovement $0, MovementData_0x5d921
-UnknownScript_0x5d7be: ; 0x5d7be
+UnknownScript_0x5d7be:
 	spriteface $0, RIGHT
 	loadfont
 	writetext UnknownText_0x5dedd
@@ -208,12 +128,12 @@
 	writetext UnknownText_0x5dfc1
 	closetext
 	loadmovesprites
-	checkcode $18
+	checkcode VAR_BLUECARDBALANCE
 	addvar $1
-	writevarcode $18
+	writevarcode VAR_BLUECARDBALANCE
 	waitbutton
 	playsound SFX_TRANSACTION
-	setflag $0060
+	setflag ENGINE_BUENAS_PASSWORD_2
 	pause 20
 	spriteface $b, RIGHT
 	loadfont
@@ -223,30 +143,28 @@
 	special Functionc48f
 	pause 20
 	special RestartMapMusic
-	checkcode $18
+	checkcode VAR_BLUECARDBALANCE
 	if_equal $1e, UnknownScript_0x5d8a4
 	end
-; 0x5d800
 
-UnknownScript_0x5d800: ; 0x5d800
+UnknownScript_0x5d800:
 	writetext UnknownText_0x5dcf4
 	keeptextopen
 	setevent EVENT_MET_BUENA
 	verbosegiveitem BLUE_CARD, 1
-UnknownScript_0x5d80a: ; 0x5d80a
+UnknownScript_0x5d80a:
 	writetext UnknownText_0x5de10
 	closetext
 	loadmovesprites
-	checkcellnum $25
+	checkcellnum PHONE_BUENA
 	iftrue UnknownScript_0x5d81a
 	checkevent EVENT_BUENA_OFFERED_HER_PHONE_NUMBER
 	iftrue UnknownScript_0x5d8cc
-UnknownScript_0x5d81a: ; 0x5d81a
+UnknownScript_0x5d81a:
 	spriteface $b, RIGHT
 	end
-; 0x5d81e
 
-UnknownScript_0x5d81e: ; 0x5d81e
+UnknownScript_0x5d81e:
 	writetext UnknownText_0x5df29
 	closetext
 	loadmovesprites
@@ -255,24 +173,22 @@
 	pause 20
 	special RestartMapMusic
 	end
-; 0x5d82f
 
-UnknownScript_0x5d82f: ; 0x5d82f
+UnknownScript_0x5d82f:
 	writetext UnknownText_0x5df6c
 	closetext
 	loadmovesprites
-	checkcellnum $25
+	checkcellnum PHONE_BUENA
 	iftrue UnknownScript_0x5d83f
 	checkevent EVENT_BUENA_OFFERED_HER_PHONE_NUMBER
 	iftrue UnknownScript_0x5d8cc
-UnknownScript_0x5d83f: ; 0x5d83f
+UnknownScript_0x5d83f:
 	spriteface $b, RIGHT
 	pause 10
 	end
-; 0x5d845
 
-UnknownScript_0x5d845: ; 0x5d845
-	setflag $0060
+UnknownScript_0x5d845:
+	setflag ENGINE_BUENAS_PASSWORD_2
 	loadfont
 	writetext UnknownText_0x5e01c
 	closetext
@@ -288,55 +204,50 @@
 	pause 20
 	special RestartMapMusic
 	end
-; 0x5d865
 
-UnknownScript_0x5d865: ; 0x5d865
+UnknownScript_0x5d865:
 	writetext UnknownText_0x5e0c2
 	closetext
 	loadmovesprites
 	end
-; 0x5d86b
 
-UnknownScript_0x5d86b: ; 0x5d86b
+UnknownScript_0x5d86b:
 	writetext UnknownText_0x5e192
 	closetext
 	loadmovesprites
-	checkcellnum $25
+	checkcellnum PHONE_BUENA
 	iftrue UnknownScript_0x5d87b
 	checkevent EVENT_BUENA_OFFERED_HER_PHONE_NUMBER_NO_BLUE_CARD
 	iftrue UnknownScript_0x5d8cc
-UnknownScript_0x5d87b: ; 0x5d87b
+UnknownScript_0x5d87b:
 	spriteface $b, RIGHT
 	end
-; 0x5d87f
 
-UnknownScript_0x5d87f: ; 0x5d87f
+UnknownScript_0x5d87f:
 	writetext UnknownText_0x5e0f1
 	closetext
 	loadmovesprites
-	checkcellnum $25
+	checkcellnum PHONE_BUENA
 	iftrue UnknownScript_0x5d88f
 	checkevent EVENT_BUENA_OFFERED_HER_PHONE_NUMBER_NO_BLUE_CARD
 	iftrue UnknownScript_0x5d8cc
-UnknownScript_0x5d88f: ; 0x5d88f
+UnknownScript_0x5d88f:
 	spriteface $b, RIGHT
 	end
-; 0x5d893
 
-UnknownScript_0x5d893: ; 0x5d893
+UnknownScript_0x5d893:
 	writetext UnknownText_0x5e131
 	closetext
 	loadmovesprites
-	checkcellnum $25
+	checkcellnum PHONE_BUENA
 	iftrue UnknownScript_0x5d8a3
 	checkevent EVENT_BUENA_OFFERED_HER_PHONE_NUMBER
 	iftrue UnknownScript_0x5d8cc
-UnknownScript_0x5d8a3: ; 0x5d8a3
+UnknownScript_0x5d8a3:
 	end
-; 0x5d8a4
 
-UnknownScript_0x5d8a4: ; 0x5d8a4
-	checkcellnum $25
+UnknownScript_0x5d8a4:
+	checkcellnum PHONE_BUENA
 	iftrue UnknownScript_0x5d8fe
 	pause 20
 	spriteface $b, DOWN
@@ -345,19 +256,18 @@
 	pause 15
 	checkevent EVENT_BUENA_OFFERED_HER_PHONE_NUMBER_NO_BLUE_CARD
 	iftrue UnknownScript_0x5d8cc
-	showemote $0, $b, 15
+	showemote EMOTE_SHOCK, $b, 15
 	setevent EVENT_BUENA_OFFERED_HER_PHONE_NUMBER_NO_BLUE_CARD
 	setevent EVENT_BUENA_OFFERED_HER_PHONE_NUMBER
 	loadfont
 	writetext UnknownText_0x5e1ee
 	jump UnknownScript_0x5d8d0
-; 0x5d8cc
 
-UnknownScript_0x5d8cc: ; 0x5d8cc
+UnknownScript_0x5d8cc:
 	loadfont
 	writetext UnknownText_0x5e2bf
-UnknownScript_0x5d8d0: ; 0x5d8d0
-	askforphonenumber $25
+UnknownScript_0x5d8d0:
+	askforphonenumber PHONE_BUENA
 	if_equal $1, UnknownScript_0x5d8f6
 	if_equal $2, UnknownScript_0x5d8ed
 	writetext UnknownText_0x5e2f3
@@ -368,28 +278,25 @@
 	closetext
 	loadmovesprites
 	spriteface $b, RIGHT
-	addcellnum $25
+	addcellnum PHONE_BUENA
 	end
-; 0x5d8ed
 
-UnknownScript_0x5d8ed: ; 0x5d8ed
+UnknownScript_0x5d8ed:
 	writetext UnknownText_0x5e33c
 	closetext
 	loadmovesprites
 	spriteface $b, RIGHT
 	end
-; 0x5d8f6
 
-UnknownScript_0x5d8f6: ; 0x5d8f6
+UnknownScript_0x5d8f6:
 	writetext UnknownText_0x5e35e
 	closetext
 	loadmovesprites
 	spriteface $b, RIGHT
-UnknownScript_0x5d8fe: ; 0x5d8fe
+UnknownScript_0x5d8fe:
 	end
-; 0x5d8ff
 
-ReceptionistScript_0x5d8ff: ; 0x5d8ff
+ReceptionistScript_0x5d8ff:
 	faceplayer
 	loadfont
 	checkitem BLUE_CARD
@@ -399,64 +306,54 @@
 	special SpecialBuenaPrize
 	loadmovesprites
 	end
-; 0x5d90f
 
-UnknownScript_0x5d90f: ; 0x5d90f
+UnknownScript_0x5d90f:
 	writetext UnknownText_0x5e3d8
 	keeptextopen
 	loadmovesprites
 	end
-; 0x5d915
 
-MapRadioTower2FSignpost0Script: ; 0x5d915
+MapRadioTower2FSignpost0Script:
 	jumptext UnknownText_0x5e426
-; 0x5d918
 
-MapRadioTower2FSignpost1Script: ; 0x5d918
+MapRadioTower2FSignpost1Script:
 	jumptext UnknownText_0x5e430
-; 0x5d91b
 
-MapRadioTower2FSignpost5Script: ; 0x5d91b
+MapRadioTower2FSignpost5Script:
 	jumptext UnknownText_0x5e463
-; 0x5d91e
 
 RadioTower2FBookshelf:
 	jumpstd magazinebookshelf
 
-MovementData_0x5d921: ; 0x5d921
+MovementData_0x5d921:
 	slow_step_down
 	slow_step_right
 	step_end
-; 0x5d924
 
-UnknownText_0x5d924: ; 0x5d924
+UnknownText_0x5d924:
 	text "You can listen to"
 	line "the radio any-"
 	cont "where. Tune in!"
 	done
-; 0x5d956
 
-UnknownText_0x5d956: ; 0x5d956
+UnknownText_0x5d956:
 	text "Lullabies on the"
 	line "radio may make"
 	cont "#MON sleep."
 	done
-; 0x5d983
 
-UnknownText_0x5d983: ; 0x5d983
+UnknownText_0x5d983:
 	text "Why would they"
 	line "want to take over"
 	cont "the RADIO TOWER?"
 	done
-; 0x5d9b6
 
-UnknownText_0x5d9b6: ; 0x5d9b6
+UnknownText_0x5d9b6:
 	text "JIGGLYPUFF:"
 	line "Jiggly…"
 	done
-; 0x5d9cb
 
-UnknownText_0x5d9cb: ; 0x5d9cb
+UnknownText_0x5d9cb:
 	text "Sorry. Authorized"
 	line "personnel only"
 	cont "beyond this point."
@@ -468,9 +365,8 @@
 	line "wrong with the"
 	cont "DIRECTOR…"
 	done
-; 0x5da44
 
-UnknownText_0x5da44: ; 0x5da44
+UnknownText_0x5da44:
 	text "Feel free to look"
 	line "around anywhere."
 
@@ -478,9 +374,8 @@
 	line "nice again, just"
 	cont "as he was before."
 	done
-; 0x5da9b
 
-GruntM4SeenText: ; 0x5da9b
+GruntM4SeenText:
 	text "Three years ago,"
 	line "TEAM ROCKET was"
 	cont "forced to disband."
@@ -488,22 +383,19 @@
 	para "But we're making a"
 	line "comeback here!"
 	done
-; 0x5daf1
 
-GruntM4BeatenText: ; 0x5daf1
+GruntM4BeatenText:
 	text "Gwah! Don't get"
 	line "cute!"
 	done
-; 0x5db07
 
-UnknownText_0x5db07: ; 0x5db07
+UnknownText_0x5db07:
 	text "We won't let you"
 	line "ruin our plans"
 	cont "for our comeback!"
 	done
-; 0x5db39
 
-GruntM5SeenText: ; 0x5db39
+GruntM5SeenText:
 	text "We're TEAM ROCKET,"
 	line "the exploiters of"
 	cont "#MON!"
@@ -511,33 +403,28 @@
 	para "We love being"
 	line "evil! Scared?"
 	done
-; 0x5db80
 
-GruntM5BeatenText: ; 0x5db80
+GruntM5BeatenText:
 	text "You think you're a"
 	line "hero?"
 	done
-; 0x5db99
 
-UnknownText_0x5db99: ; 0x5db99
+UnknownText_0x5db99:
 	text "We're not always"
 	line "evil. We just do"
 	cont "whatever we like."
 	done
-; 0x5dbcd
 
-GruntM6SeenText: ; 0x5dbcd
+GruntM6SeenText:
 	text "Hey, hey! Keep out"
 	line "of our way!"
 	done
-; 0x5dbed
 
-GruntM6BeatenText: ; 0x5dbed
+GruntM6BeatenText:
 	text "Arggh. I give up."
 	done
-; 0x5dc00
 
-UnknownText_0x5dc00: ; 0x5dc00
+UnknownText_0x5dc00:
 	text "Our EXECUTIVES are"
 	line "trying to take"
 	cont "this place over."
@@ -546,9 +433,8 @@
 	line "plan. I wonder"
 	cont "what that is?"
 	done
-; 0x5dc64
 
-GruntF2SeenText: ; 0x5dc64
+GruntF2SeenText:
 	text "Hahaha!"
 
 	para "How boring."
@@ -560,20 +446,17 @@
 	para "Come on, keep me"
 	line "amused!"
 	done
-; 0x5dcbf
 
-GruntF2BeatenText: ; 0x5dcbf
+GruntF2BeatenText:
 	text "Wh-who are you?"
 	done
-; 0x5dcd0
 
-UnknownText_0x5dcd0: ; 0x5dcd0
+UnknownText_0x5dcd0:
 	text "You beat me, and"
 	line "I won't forget it!"
 	done
-; 0x5dcf4
 
-UnknownText_0x5dcf4: ; 0x5dcf4
+UnknownText_0x5dcf4:
 	text "BUENA: Hi! I'm"
 	line "BUENA!"
 
@@ -601,15 +484,13 @@
 	para "It's your very own"
 	line "point card!"
 	done
-; 0x5de10
 
-UnknownText_0x5de10: ; 0x5de10
+UnknownText_0x5de10:
 	text "BUENA: Tune in to"
 	line "my PASSWORD SHOW!"
 	done
-; 0x5de35
 
-UnknownText_0x5de35: ; 0x5de35
+UnknownText_0x5de35:
 	text "BUENA: Hi!"
 	line "Did you tune in to"
 	cont "my radio show?"
@@ -617,9 +498,8 @@
 	para "Do you remember"
 	line "today's password?"
 	done
-; 0x5de84
 
-UnknownText_0x5de84: ; 0x5de84
+UnknownText_0x5de84:
 	text "BUENA: Oh, wow!"
 	line "Thank you!"
 
@@ -631,9 +511,8 @@
 	para "Come on, <PLAY_G>."
 	line "Join the show."
 	done
-; 0x5dedd
 
-UnknownText_0x5dedd: ; 0x5dedd
+UnknownText_0x5dedd:
 	text "BUENA: Everyone"
 	line "ready?"
 
@@ -643,9 +522,8 @@
 	para "password for"
 	line "<PLAY_G>!"
 	done
-; 0x5df29
 
-UnknownText_0x5df29: ; 0x5df29
+UnknownText_0x5df29:
 	text "BUENA: Come back"
 	line "after you listen"
 
@@ -652,9 +530,8 @@
 	para "to my show, OK?"
 	line "Catch ya later!"
 	done
-; 0x5df6c
 
-UnknownText_0x5df6c: ; 0x5df6c
+UnknownText_0x5df6c:
 	text "BUENA: Sorry…"
 
 	para "You get just one"
@@ -663,9 +540,8 @@
 	para "Come back tomorrow"
 	line "for another try!"
 	done
-; 0x5dfc1
 
-UnknownText_0x5dfc1: ; 0x5dfc1
+UnknownText_0x5dfc1:
 	text "BUENA: YIPPEE!"
 	line "That's right!"
 
@@ -675,9 +551,8 @@
 	para "You earned one"
 	line "point! Congrats!"
 	done
-; 0x5e01c
 
-UnknownText_0x5e01c: ; 0x5e01c
+UnknownText_0x5e01c:
 	text "BUENA: Aww…"
 	line "That's not it…"
 
@@ -684,9 +559,8 @@
 	para "Did you forget the"
 	line "password?"
 	done
-; 0x5e054
 
-UnknownText_0x5e054: ; 0x5e054
+UnknownText_0x5e054:
 	text "BUENA: Yup! Our"
 	line "contestant was"
 
@@ -699,17 +573,15 @@
 	para "come too!"
 	line "I'll be waiting!"
 	done
-; 0x5e0c2
 
-UnknownText_0x5e0c2: ; 0x5e0c2
+UnknownText_0x5e0c2:
 	text "BUENA: Huh?"
 	line "Today's password?"
 
 	para "HELP, of course!"
 	done
-; 0x5e0f1
 
-UnknownText_0x5e0f1: ; 0x5e0f1
+UnknownText_0x5e0f1:
 	text "BUENA: Your BLUE"
 	line "CARD's full."
 
@@ -716,9 +588,8 @@
 	para "Trade it in for a"
 	line "fabulous prize!"
 	done
-; 0x5e131
 
-UnknownText_0x5e131: ; 0x5e131
+UnknownText_0x5e131:
 	text "BUENA: Tune in to"
 	line "PASSWORD every"
 
@@ -728,9 +599,8 @@
 	para "Tune in, then drop"
 	line "in for a visit!"
 	done
-; 0x5e192
 
-UnknownText_0x5e192: ; 0x5e192
+UnknownText_0x5e192:
 	text "BUENA: Oh? You"
 	line "forgot to bring"
 	cont "your BLUE CARD?"
@@ -739,9 +609,8 @@
 	line "points if you"
 	cont "don't have it."
 	done
-; 0x5e1ee
 
-UnknownText_0x5e1ee: ; 0x5e1ee
+UnknownText_0x5e1ee:
 	text "BUENA: Oh! Your"
 	line "BLUE CARD reached"
 
@@ -761,9 +630,8 @@
 	para "How would you like"
 	line "my phone number?"
 	done
-; 0x5e2bf
 
-UnknownText_0x5e2bf: ; 0x5e2bf
+UnknownText_0x5e2bf:
 	text "BUENA: <PLAY_G>,"
 	line "do you want to"
 
@@ -770,28 +638,24 @@
 	para "register my phone"
 	line "number?"
 	done
-; 0x5e2f3
 
-UnknownText_0x5e2f3: ; 0x5e2f3
+UnknownText_0x5e2f3:
 	text "<PLAYER> registered"
 	line "BUENA's number."
 	done
-; 0x5e310
 
-UnknownText_0x5e310: ; 0x5e310
+UnknownText_0x5e310:
 	text "BUENA: I look"
 	line "forward to hearing"
 	cont "from you!"
 	done
-; 0x5e33c
 
-UnknownText_0x5e33c: ; 0x5e33c
+UnknownText_0x5e33c:
 	text "BUENA: Aww… It's a"
 	line "special prize…"
 	done
-; 0x5e35e
 
-UnknownText_0x5e35e: ; 0x5e35e
+UnknownText_0x5e35e:
 	text "BUENA: <PLAY_G>,"
 	line "your phone list"
 
@@ -798,9 +662,8 @@
 	para "has no room left"
 	line "for me…"
 	done
-; 0x5e392
 
-UnknownText_0x5e392: ; 0x5e392
+UnknownText_0x5e392:
 	text "You can cash in"
 	line "your saved points"
 
@@ -807,9 +670,8 @@
 	para "for a lovely prize"
 	line "of your choice!"
 	done
-; 0x5e3d8
 
-UnknownText_0x5e3d8: ; 0x5e3d8
+UnknownText_0x5e3d8:
 	text "You can't trade in"
 	line "points without"
 	cont "your BLUE CARD."
@@ -817,14 +679,12 @@
 	para "Don't forget your"
 	line "BLUE CARD!"
 	done
-; 0x5e426
 
-UnknownText_0x5e426: ; 0x5e426
+UnknownText_0x5e426:
 	text "2F SALES"
 	done
-; 0x5e430
 
-UnknownText_0x5e430: ; 0x5e430
+UnknownText_0x5e430:
 	text "PROF.OAK'S #MON"
 	line "TALK"
 
@@ -831,45 +691,43 @@
 	para "The Hottest Show"
 	line "on the Air!"
 	done
-; 0x5e463
 
-UnknownText_0x5e463: ; 0x5e463
+UnknownText_0x5e463:
 	text "Anywhere, Anytime"
 	line "#MON Radio"
 	done
-; 0x5e481
 
-RadioTower2F_MapEventHeader: ; 0x5e481
+RadioTower2F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 6
-	signpost 0, 3, $0, MapRadioTower2FSignpost0Script
-	signpost 0, 5, $0, MapRadioTower2FSignpost1Script
-	signpost 1, 9, $0, RadioTower2FBookshelf
-	signpost 1, 10, $0, RadioTower2FBookshelf
-	signpost 1, 11, $0, RadioTower2FBookshelf
-	signpost 0, 13, $0, MapRadioTower2FSignpost5Script
+	signpost 0, 3, SIGNPOST_READ, MapRadioTower2FSignpost0Script
+	signpost 0, 5, SIGNPOST_READ, MapRadioTower2FSignpost1Script
+	signpost 1, 9, SIGNPOST_READ, RadioTower2FBookshelf
+	signpost 1, 10, SIGNPOST_READ, RadioTower2FBookshelf
+	signpost 1, 11, SIGNPOST_READ, RadioTower2FBookshelf
+	signpost 0, 13, SIGNPOST_READ, MapRadioTower2FSignpost5Script
 
-	; people-events
+.PersonEvents:
 	db 11
-	person_event SPRITE_SUPER_NERD, 10, 10, $8, $0, 255, 255, $a0, 0, SuperNerdScript_0x5d6fe, $06cf
-	person_event SPRITE_TEACHER, 6, 21, $5, $1, 255, 255, $80, 0, TeacherScript_0x5d701, $ffff
-	person_event SPRITE_ROCKET, 8, 5, $7, $0, 255, 255, $2, 3, TrainerGruntM4, $06ce
-	person_event SPRITE_ROCKET, 8, 12, $6, $0, 255, 255, $2, 3, TrainerGruntM5, $06ce
-	person_event SPRITE_ROCKET, 5, 8, $6, $0, 255, 255, $2, 2, TrainerGruntM6, $06ce
-	person_event SPRITE_ROCKET_GIRL, 9, 14, $7, $0, 255, 255, $82, 3, TrainerGruntF2, $06ce
-	person_event SPRITE_BLACK_BELT, 5, 4, $6, $0, 255, 255, $0, 0, BlackBeltScript_0x5d71f, $06d1
-	person_event SPRITE_BLACK_BELT, 5, 5, $6, $0, 255, 255, $0, 0, BlackBeltScript_0x5d722, $06d0
-	person_event SPRITE_JIGGLYPUFF, 5, 16, $16, $0, 255, 255, $0, 0, JigglypuffScript_0x5d715, $ffff
-	person_event SPRITE_BUENA, 9, 18, $9, $0, 255, 255, $80, 0, Buena, $ffff
-	person_event SPRITE_RECEPTIONIST, 11, 16, $9, $0, 255, 255, $a0, 0, ReceptionistScript_0x5d8ff, $06cf
+	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
--- a/maps/RadioTower3F.asm
+++ b/maps/RadioTower3F.asm
@@ -1,32 +1,28 @@
-RadioTower3F_MapScriptHeader: ; 0x5e53e
-	; trigger count
+RadioTower3F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 1, UnknownScript_0x5e543
-; 0x5e543
 
-UnknownScript_0x5e543: ; 0x5e543
+UnknownScript_0x5e543:
 	checkevent EVENT_USED_THE_CARD_KEY_IN_THE_RADIO_TOWER
 	iftrue UnknownScript_0x5e54a
 	return
-; 0x5e54a
 
-UnknownScript_0x5e54a: ; 0x5e54a
+UnknownScript_0x5e54a:
 	changeblock $e, $2, $2a
 	changeblock $e, $4, $1
 	return
-; 0x5e553
 
-SuperNerdScript_0x5e553: ; 0x5e553
+SuperNerdScript_0x5e553:
 	jumptextfaceplayer UnknownText_0x5e621
-; 0x5e556
 
-GymGuyScript_0x5e556: ; 0x5e556
+GymGuyScript_0x5e556:
 	faceplayer
 	loadfont
 	checkevent EVENT_CLEARED_RADIO_TOWER
@@ -35,16 +31,14 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5e564
 
-UnknownScript_0x5e564: ; 0x5e564
+UnknownScript_0x5e564:
 	writetext UnknownText_0x5e6eb
 	closetext
 	loadmovesprites
 	end
-; 0x5e56a
 
-CooltrainerFScript_0x5e56a: ; 0x5e56a
+CooltrainerFScript_0x5e56a:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_SUNNY_DAY_FROM_RADIO_TOWER
@@ -57,19 +51,17 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5e584
 
-UnknownScript_0x5e584: ; 0x5e584
+UnknownScript_0x5e584:
 	writetext UnknownText_0x5e7cb
 	closetext
 	loadmovesprites
 	end
-; 0x5e58a
 
-UnknownScript_0x5e58a: ; 0x5e58a
+UnknownScript_0x5e58a:
 	writetext UnknownText_0x5e7e2
 	keeptextopen
-	verbosegiveitem TM_11, 1
+	verbosegiveitem TM_SUNNY_DAY, 1
 	iffalse UnknownScript_0x5e5a1
 	writetext UnknownText_0x5e821
 	closetext
@@ -76,37 +68,18 @@
 	loadmovesprites
 	setevent EVENT_GOT_SUNNY_DAY_FROM_RADIO_TOWER
 	end
-; 0x5e59d
 
-UnknownScript_0x5e59d: ; 0x5e59d
+UnknownScript_0x5e59d:
 	writetext UnknownText_0x5e85c
 	closetext
-UnknownScript_0x5e5a1: ; 0x5e5a1
+UnknownScript_0x5e5a1:
 	loadmovesprites
 	end
-; 0x5e5a3
 
-TrainerGruntM7: ; 0x5e5a3
-	; bit/flag number
-	dw $4f7
+TrainerGruntM7:
+	trainer EVENT_BEAT_ROCKET_GRUNTM_7, GRUNTM, 7, GruntM7SeenText, GruntM7BeatenText, $0000, GruntM7Script
 
-	; trainer group && trainer id
-	db GRUNTM, 7
-
-	; text when seen
-	dw GruntM7SeenText
-
-	; text when trainer beaten
-	dw GruntM7BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GruntM7Script
-; 0x5e5af
-
-GruntM7Script: ; 0x5e5af
+GruntM7Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5e8d0
@@ -113,29 +86,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5e5b7
 
-TrainerGruntM8: ; 0x5e5b7
-	; bit/flag number
-	dw $4f8
+TrainerGruntM8:
+	trainer EVENT_BEAT_ROCKET_GRUNTM_8, GRUNTM, 8, GruntM8SeenText, GruntM8BeatenText, $0000, GruntM8Script
 
-	; trainer group && trainer id
-	db GRUNTM, 8
-
-	; text when seen
-	dw GruntM8SeenText
-
-	; text when trainer beaten
-	dw GruntM8BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GruntM8Script
-; 0x5e5c3
-
-GruntM8Script: ; 0x5e5c3
+GruntM8Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5e944
@@ -142,29 +97,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5e5cb
 
-TrainerGruntM9: ; 0x5e5cb
-	; bit/flag number
-	dw $4f9
+TrainerGruntM9:
+	trainer EVENT_BEAT_ROCKET_GRUNTM_9, GRUNTM, 9, GruntM9SeenText, GruntM9BeatenText, $0000, GruntM9Script
 
-	; trainer group && trainer id
-	db GRUNTM, 9
-
-	; text when seen
-	dw GruntM9SeenText
-
-	; text when trainer beaten
-	dw GruntM9BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GruntM9Script
-; 0x5e5d7
-
-GruntM9Script: ; 0x5e5d7
+GruntM9Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5e9d0
@@ -171,29 +108,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5e5df
 
-TrainerScientistMarc: ; 0x5e5df
-	; bit/flag number
-	dw $4a2
+TrainerScientistMarc:
+	trainer EVENT_BEAT_SCIENTIST_MARC, SCIENTIST, MARC, ScientistMarcSeenText, ScientistMarcBeatenText, $0000, ScientistMarcScript
 
-	; trainer group && trainer id
-	db SCIENTIST, MARC
-
-	; text when seen
-	dw ScientistMarcSeenText
-
-	; text when trainer beaten
-	dw ScientistMarcBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw ScientistMarcScript
-; 0x5e5eb
-
-ScientistMarcScript: ; 0x5e5eb
+ScientistMarcScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5ea61
@@ -200,9 +119,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5e5f3
 
-MapRadioTower3FSignpost2Script:: ; 0x5e5f3
+MapRadioTower3FSignpost2Script::
 	loadfont
 	writetext UnknownText_0x5eaa4
 	closetext
@@ -210,12 +128,11 @@
 	iftrue UnknownScript_0x5e603
 	checkitem CARD_KEY
 	iftrue UnknownScript_0x5e605
-UnknownScript_0x5e603: ; 0x5e603
+UnknownScript_0x5e603:
 	loadmovesprites
 	end
-; 0x5e605
 
-UnknownScript_0x5e605: ; 0x5e605
+UnknownScript_0x5e605:
 	writetext UnknownText_0x5eabc
 	closetext
 	setevent EVENT_USED_THE_CARD_KEY_IN_THE_RADIO_TOWER
@@ -226,17 +143,14 @@
 	loadmovesprites
 	waitbutton
 	end
-; 0x5e61b
 
-MapRadioTower3FSignpost0Script: ; 0x5e61b
+MapRadioTower3FSignpost0Script:
 	jumptext UnknownText_0x5ead6
-; 0x5e61e
 
-MapRadioTower3FSignpost1Script: ; 0x5e61e
+MapRadioTower3FSignpost1Script:
 	jumptext UnknownText_0x5eae4
-; 0x5e621
 
-UnknownText_0x5e621: ; 0x5e621
+UnknownText_0x5e621:
 	text "We have recordings"
 	line "of the cries of"
 
@@ -246,9 +160,8 @@
 	para "We must have about"
 	line "200 kinds."
 	done
-; 0x5e682
 
-UnknownText_0x5e682: ; 0x5e682
+UnknownText_0x5e682:
 	text "To trainers, #-"
 	line "MON are their"
 	cont "beloved partners."
@@ -259,9 +172,8 @@
 	para "trying to control"
 	line "#MON."
 	done
-; 0x5e6eb
 
-UnknownText_0x5e6eb: ; 0x5e6eb
+UnknownText_0x5e6eb:
 	text "We run 24 hours a"
 	line "day to broadcast"
 
@@ -272,9 +184,8 @@
 	line "run around the"
 	cont "clock too!"
 	done
-; 0x5e754
 
-UnknownText_0x5e754: ; 0x5e754
+UnknownText_0x5e754:
 	text "The TEAM ROCKET"
 	line "boss has locked"
 	cont "himself in."
@@ -287,15 +198,13 @@
 
 	para "Please save him!"
 	done
-; 0x5e7cb
 
-UnknownText_0x5e7cb: ; 0x5e7cb
+UnknownText_0x5e7cb:
 	text "Is the DIRECTOR"
 	line "safe?"
 	done
-; 0x5e7e2
 
-UnknownText_0x5e7e2: ; 0x5e7e2
+UnknownText_0x5e7e2:
 	text "Thank you!"
 	line "You're my hero!"
 
@@ -302,23 +211,20 @@
 	para "This is a token of"
 	line "my appreciation."
 	done
-; 0x5e821
 
-UnknownText_0x5e821: ; 0x5e821
+UnknownText_0x5e821:
 	text "It's SUNNY DAY."
 	line "It powers up fire-"
 	cont "type moves for a"
 	cont "while."
 	done
-; 0x5e85c
 
-UnknownText_0x5e85c: ; 0x5e85c
+UnknownText_0x5e85c:
 	text "You were simply"
 	line "marvelous!"
 	done
-; 0x5e878
 
-GruntM7SeenText: ; 0x5e878
+GruntM7SeenText:
 	text "I've been given"
 	line "strict orders."
 
@@ -326,14 +232,12 @@
 	line "one who challenges"
 	cont "TEAM ROCKET!"
 	done
-; 0x5e8c8
 
-GruntM7BeatenText: ; 0x5e8c8
+GruntM7BeatenText:
 	text "What?!"
 	done
-; 0x5e8d0
 
-UnknownText_0x5e8d0: ; 0x5e8d0
+UnknownText_0x5e8d0:
 	text "I failed in my"
 	line "duties…"
 
@@ -340,21 +244,18 @@
 	para "I'll be docked pay"
 	line "for this…"
 	done
-; 0x5e904
 
-GruntM8SeenText: ; 0x5e904
+GruntM8SeenText:
 	text "It feels great"
 	line "ordering #MON"
 	cont "to commit crimes."
 	done
-; 0x5e934
 
-GruntM8BeatenText: ; 0x5e934
+GruntM8BeatenText:
 	text "You're kidding!"
 	done
-; 0x5e944
 
-UnknownText_0x5e944: ; 0x5e944
+UnknownText_0x5e944:
 	text "I feel lousy over"
 	line "losing!"
 
@@ -361,9 +262,8 @@
 	para "Darn it! I hate"
 	line "useless #MON!"
 	done
-; 0x5e97d
 
-GruntM9SeenText: ; 0x5e97d
+GruntM9SeenText:
 	text "Why did the shut-"
 	line "ter open? Did you"
 
@@ -370,14 +270,12 @@
 	para "have something to"
 	line "do with this?"
 	done
-; 0x5e9c2
 
-GruntM9BeatenText: ; 0x5e9c2
+GruntM9BeatenText:
 	text "I'm done for!"
 	done
-; 0x5e9d0
 
-UnknownText_0x5e9d0: ; 0x5e9d0
+UnknownText_0x5e9d0:
 	text "What?! You made it"
 	line "past our men in"
 	cont "the UNDERGROUND?"
@@ -384,23 +282,20 @@
 
 	para "How could you?"
 	done
-; 0x5ea14
 
-ScientistMarcSeenText: ; 0x5ea14
+ScientistMarcSeenText:
 	text "An unknown child"
 	line "wandering here?"
 
 	para "Who are you?"
 	done
-; 0x5ea43
 
-ScientistMarcBeatenText: ; 0x5ea43
+ScientistMarcBeatenText:
 	text "Tch! I took you"
 	line "too lightly!"
 	done
-; 0x5ea61
 
-UnknownText_0x5ea61: ; 0x5ea61
+UnknownText_0x5ea61:
 	text "Bwahahaha…"
 
 	para "I can transmit as"
@@ -407,57 +302,51 @@
 	line "strong a signal as"
 	cont "I need from here."
 	done
-; 0x5eaa4
 
-UnknownText_0x5eaa4: ; 0x5eaa4
+UnknownText_0x5eaa4:
 	text "It's the CARD KEY"
 	line "slot."
 	done
-; 0x5eabc
 
-UnknownText_0x5eabc: ; 0x5eabc
+UnknownText_0x5eabc:
 	text "<PLAYER> inserted"
 	line "the CARD KEY."
 	done
-; 0x5ead6
 
-UnknownText_0x5ead6: ; 0x5ead6
+UnknownText_0x5ead6:
 	text "3F PERSONNEL"
 	done
-; 0x5eae4
 
-UnknownText_0x5eae4: ; 0x5eae4
+UnknownText_0x5eae4:
 	text "#MON MUSIC with"
 	line "Host DJ BEN"
 	done
-; 0x5eb01
 
-RadioTower3F_MapEventHeader: ; 0x5eb01
+RadioTower3F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 3
-	signpost 0, 3, $0, MapRadioTower3FSignpost0Script
-	signpost 0, 9, $0, MapRadioTower3FSignpost1Script
-	signpost 2, 14, $1, MapRadioTower3FSignpost2Script
+	signpost 0, 3, SIGNPOST_READ, MapRadioTower3FSignpost0Script
+	signpost 0, 9, SIGNPOST_READ, MapRadioTower3FSignpost1Script
+	signpost 2, 14, SIGNPOST_UP, MapRadioTower3FSignpost2Script
 
-	; people-events
+.PersonEvents:
 	db 7
-	person_event SPRITE_SUPER_NERD, 8, 11, $7, $0, 255, 255, $90, 0, SuperNerdScript_0x5e553, $06d0
-	person_event SPRITE_GYM_GUY, 8, 7, $a, $0, 255, 255, $80, 0, GymGuyScript_0x5e556, $ffff
-	person_event SPRITE_COOLTRAINER_F, 7, 15, $2, $11, 255, 255, $a0, 0, CooltrainerFScript_0x5e56a, $ffff
-	person_event SPRITE_ROCKET, 5, 9, $9, $0, 255, 255, $2, 2, TrainerGruntM7, $06ce
-	person_event SPRITE_ROCKET, 6, 10, $6, $0, 255, 255, $2, 3, TrainerGruntM8, $06ce
-	person_event SPRITE_ROCKET, 10, 20, $7, $0, 255, 255, $2, 3, TrainerGruntM9, $06ce
-	person_event SPRITE_SCIENTIST, 10, 13, $7, $0, 255, 255, $92, 5, TrainerScientistMarc, $06ce
-; 0x5eb80
+	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
--- a/maps/RadioTower4F.asm
+++ b/maps/RadioTower4F.asm
@@ -1,16 +1,14 @@
-RadioTower4F_MapScriptHeader: ; 0x5eb80
-	; trigger count
+RadioTower4F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x5eb82
 
-FisherScript_0x5eb82: ; 0x5eb82
+FisherScript_0x5eb82:
 	jumptextfaceplayer UnknownText_0x5ec12
-; 0x5eb85
 
-TeacherScript_0x5eb85: ; 0x5eb85
+TeacherScript_0x5eb85:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_PINK_BOW_FROM_MARY
@@ -21,9 +19,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5eb99
 
-UnknownScript_0x5eb99: ; 0x5eb99
+UnknownScript_0x5eb99:
 	writetext UnknownText_0x5ecab
 	keeptextopen
 	verbosegiveitem PINK_BOW, 1
@@ -33,17 +30,15 @@
 	loadmovesprites
 	setevent EVENT_GOT_PINK_BOW_FROM_MARY
 	end
-; 0x5ebac
 
-UnknownScript_0x5ebac: ; 0x5ebac
+UnknownScript_0x5ebac:
 	writetext UnknownText_0x5ed2c
 	closetext
-UnknownScript_0x5ebb0: ; 0x5ebb0
+UnknownScript_0x5ebb0:
 	loadmovesprites
 	end
-; 0x5ebb2
 
-GrowlitheScript_0x5ebb2: ; 0x5ebb2
+GrowlitheScript_0x5ebb2:
 	loadfont
 	writetext UnknownText_0x5ed66
 	cry MEOWTH
@@ -50,29 +45,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5ebbc
 
-TrainerGruntM10: ; 0x5ebbc
-	; bit/flag number
-	dw $4fa
+TrainerGruntM10:
+	trainer EVENT_BEAT_ROCKET_GRUNTM_10, GRUNTM, 10, GruntM10SeenText, GruntM10BeatenText, $0000, GruntM10Script
 
-	; trainer group && trainer id
-	db GRUNTM, 10
-
-	; text when seen
-	dw GruntM10SeenText
-
-	; text when trainer beaten
-	dw GruntM10BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GruntM10Script
-; 0x5ebc8
-
-GruntM10Script: ; 0x5ebc8
+GruntM10Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5ede2
@@ -79,29 +56,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5ebd0
 
-TrainerExecutivem2: ; 0x5ebd0
-	; bit/flag number
-	dw $572
+TrainerExecutivem2:
+	trainer EVENT_BEAT_ROCKET_EXECUTIVEM_2, EXECUTIVEM, 2, Executivem2SeenText, Executivem2BeatenText, $0000, Executivem2Script
 
-	; trainer group && trainer id
-	db EXECUTIVEM, 2
-
-	; text when seen
-	dw Executivem2SeenText
-
-	; text when trainer beaten
-	dw Executivem2BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Executivem2Script
-; 0x5ebdc
-
-Executivem2Script: ; 0x5ebdc
+Executivem2Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5ee69
@@ -108,29 +67,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5ebe4
 
-TrainerGruntF4: ; 0x5ebe4
-	; bit/flag number
-	dw $513
+TrainerGruntF4:
+	trainer EVENT_BEAT_ROCKET_GRUNTF_4, GRUNTF, 4, GruntF4SeenText, GruntF4BeatenText, $0000, GruntF4Script
 
-	; trainer group && trainer id
-	db GRUNTF, 4
-
-	; text when seen
-	dw GruntF4SeenText
-
-	; text when trainer beaten
-	dw GruntF4BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GruntF4Script
-; 0x5ebf0
-
-GruntF4Script: ; 0x5ebf0
+GruntF4Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5ef31
@@ -137,29 +78,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5ebf8
 
-TrainerScientistRich: ; 0x5ebf8
-	; bit/flag number
-	dw $4a3
+TrainerScientistRich:
+	trainer EVENT_BEAT_SCIENTIST_RICH, SCIENTIST, RICH, ScientistRichSeenText, ScientistRichBeatenText, $0000, ScientistRichScript
 
-	; trainer group && trainer id
-	db SCIENTIST, RICH
-
-	; text when seen
-	dw ScientistRichSeenText
-
-	; text when trainer beaten
-	dw ScientistRichBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw ScientistRichScript
-; 0x5ec04
-
-ScientistRichScript: ; 0x5ec04
+ScientistRichScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5efcb
@@ -166,17 +89,14 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5ec0c
 
-MapRadioTower4FSignpost0Script: ; 0x5ec0c
+MapRadioTower4FSignpost0Script:
 	jumptext UnknownText_0x5effe
-; 0x5ec0f
 
-MapRadioTower4FSignpost1Script: ; 0x5ec0f
+MapRadioTower4FSignpost1Script:
 	jumptext UnknownText_0x5f00d
-; 0x5ec12
 
-UnknownText_0x5ec12: ; 0x5ec12
+UnknownText_0x5ec12:
 	text "I listened to the"
 	line "radio while I was"
 	cont "at the RUINS."
@@ -184,9 +104,8 @@
 	para "I heard a strange"
 	line "broadcast there."
 	done
-; 0x5ec68
 
-UnknownText_0x5ec68: ; 0x5ec68
+UnknownText_0x5ec68:
 	text "MARY: Why? Why do"
 	line "I have to suffer"
 	cont "through this?"
@@ -193,9 +112,8 @@
 
 	para "MEOWTH, help me!"
 	done
-; 0x5ecab
 
-UnknownText_0x5ecab: ; 0x5ecab
+UnknownText_0x5ecab:
 	text "MARY: Oh! You're"
 	line "my little savior!"
 
@@ -202,9 +120,8 @@
 	para "Will you take this"
 	line "as my thanks?"
 	done
-; 0x5ecef
 
-UnknownText_0x5ecef: ; 0x5ecef
+UnknownText_0x5ecef:
 	text "MARY: It's just"
 	line "right for #MON"
 
@@ -211,9 +128,8 @@
 	para "that know normal-"
 	line "type moves."
 	done
-; 0x5ed2c
 
-UnknownText_0x5ed2c: ; 0x5ed2c
+UnknownText_0x5ed2c:
 	text "MARY: Please tune"
 	line "into me on PROF."
 
@@ -220,14 +136,12 @@
 	para "OAK'S #MON TALK"
 	line "show."
 	done
-; 0x5ed66
 
-UnknownText_0x5ed66: ; 0x5ed66
+UnknownText_0x5ed66:
 	text "MEOWTH: Meowth…"
 	done
-; 0x5ed77
 
-GruntM10SeenText: ; 0x5ed77
+GruntM10SeenText:
 	text "You plan to rescue"
 	line "the DIRECTOR?"
 
@@ -235,20 +149,17 @@
 	line "sible because I'm"
 	cont "going to beat you!"
 	done
-; 0x5edcf
 
-GruntM10BeatenText: ; 0x5edcf
+GruntM10BeatenText:
 	text "No! Unbelievable!"
 	done
-; 0x5ede2
 
-UnknownText_0x5ede2: ; 0x5ede2
+UnknownText_0x5ede2:
 	text "I don't believe"
 	line "it! I was beaten!"
 	done
-; 0x5ee04
 
-Executivem2SeenText: ; 0x5ee04
+Executivem2SeenText:
 	text "Stop! I'm known as"
 	line "the TEAM ROCKET"
 	cont "fortress!"
@@ -256,15 +167,13 @@
 	para "You're not taking"
 	line "another step!"
 	done
-; 0x5ee50
 
-Executivem2BeatenText: ; 0x5ee50
+Executivem2BeatenText:
 	text "The fortress came"
 	line "down!"
 	done
-; 0x5ee69
 
-UnknownText_0x5ee69: ; 0x5ee69
+UnknownText_0x5ee69:
 	text "You've earned my"
 	line "respect, so here's"
 	cont "some advice."
@@ -273,9 +182,8 @@
 	line "You can still turn"
 	cont "back."
 	done
-; 0x5eec4
 
-GruntF4SeenText: ; 0x5eec4
+GruntF4SeenText:
 	text "Don't I think"
 	line "#MON are cute?"
 
@@ -285,15 +193,13 @@
 	para "after they beat"
 	line "yours!"
 	done
-; 0x5ef15
 
-GruntF4BeatenText: ; 0x5ef15
+GruntF4BeatenText:
 	text "Oh, no! They're so"
 	line "useless!"
 	done
-; 0x5ef31
 
-UnknownText_0x5ef31: ; 0x5ef31
+UnknownText_0x5ef31:
 	text "I love my"
 	line "beautiful self!"
 
@@ -300,9 +206,8 @@
 	para "Who cares about"
 	line "#MON?"
 	done
-; 0x5ef62
 
-ScientistRichSeenText: ; 0x5ef62
+ScientistRichSeenText:
 	text "Most excellent."
 
 	para "This RADIO TOWER"
@@ -309,38 +214,33 @@
 	line "will fulfill our"
 	cont "grand design."
 	done
-; 0x5efa3
 
-ScientistRichBeatenText: ; 0x5efa3
+ScientistRichBeatenText:
 	text "Hmmm…"
 
 	para "All grand plans"
 	line "come with snags."
 	done
-; 0x5efcb
 
-UnknownText_0x5efcb: ; 0x5efcb
+UnknownText_0x5efcb:
 	text "Do you honestly"
 	line "believe you can"
 	cont "stop TEAM ROCKET?"
 	done
-; 0x5effe
 
-UnknownText_0x5effe: ; 0x5effe
+UnknownText_0x5effe:
 	text "4F PRODUCTION"
 	done
-; 0x5f00d
 
-UnknownText_0x5f00d: ; 0x5f00d
+UnknownText_0x5f00d:
 	text "4F STUDIO 2"
 	done
-; 0x5f01a
 
-RadioTower4F_MapEventHeader: ; 0x5f01a
+RadioTower4F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -347,21 +247,20 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 0, 7, $0, MapRadioTower4FSignpost0Script
-	signpost 0, 15, $0, MapRadioTower4FSignpost1Script
+	signpost 0, 7, SIGNPOST_READ, MapRadioTower4FSignpost0Script
+	signpost 0, 15, SIGNPOST_READ, MapRadioTower4FSignpost1Script
 
-	; people-events
+.PersonEvents:
 	db 7
-	person_event SPRITE_FISHER, 8, 10, $7, $0, 255, 255, $80, 0, FisherScript_0x5eb82, $06d0
-	person_event SPRITE_TEACHER, 10, 18, $3, $0, 255, 255, $a0, 0, TeacherScript_0x5eb85, $ffff
-	person_event SPRITE_GROWLITHE, 11, 16, $16, $0, 255, 255, $80, 0, GrowlitheScript_0x5ebb2, $ffff
-	person_event SPRITE_ROCKET, 10, 9, $1f, $0, 255, 255, $2, 3, TrainerGruntM10, $06ce
-	person_event SPRITE_ROCKET, 5, 18, $8, $2, 255, 255, $2, 2, TrainerExecutivem2, $06ce
-	person_event SPRITE_ROCKET_GIRL, 8, 16, $9, $0, 255, 255, $82, 1, TrainerGruntF4, $06ce
-	person_event SPRITE_SCIENTIST, 6, 8, $8, $0, 255, 255, $92, 4, TrainerScientistRich, $06ce
-; 0x5f099
+	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
--- a/maps/RadioTower5F.asm
+++ b/maps/RadioTower5F.asm
@@ -1,5 +1,5 @@
-RadioTower5F_MapScriptHeader: ; 0x60000
-	; trigger count
+RadioTower5F_MapScriptHeader:
+.MapTriggers:
 	db 3
 
 	; triggers
@@ -7,25 +7,21 @@
 	dw UnknownScript_0x6000f, $0000
 	dw UnknownScript_0x60010, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x6000e
 
-UnknownScript_0x6000e: ; 0x6000e
+UnknownScript_0x6000e:
 	end
-; 0x6000f
 
-UnknownScript_0x6000f: ; 0x6000f
+UnknownScript_0x6000f:
 	end
-; 0x60010
 
-UnknownScript_0x60010: ; 0x60010
+UnknownScript_0x60010:
 	end
-; 0x60011
 
-UnknownScript_0x60011: ; 0x60011
+UnknownScript_0x60011:
 	spriteface $2, UP
-	showemote $0, $2, 15
+	showemote EMOTE_SHOCK, $2, 15
 	loadfont
 	writetext UnknownText_0x60128
 	closetext
@@ -47,9 +43,8 @@
 	verbosegiveitem BASEMENT_KEY, 1
 	loadmovesprites
 	dotrigger $1
-	setevent $0573
+	setevent EVENT_BEAT_ROCKET_EXECUTIVEM_3
 	end
-; 0x60046
 
 Director:
 	faceplayer
@@ -61,34 +56,16 @@
 	loadmovesprites
 	end
 
-UnknownScript_0x60054: ; 0x60054
+UnknownScript_0x60054:
 	writetext UnknownText_0x60824
 	closetext
 	loadmovesprites
 	end
-; 0x6005a
 
-TrainerExecutivef1: ; 0x6005a
-	; bit/flag number
-	dw $56f
+TrainerExecutivef1:
+	trainer EVENT_BEAT_ROCKET_EXECUTIVEF_1, EXECUTIVEF, 1, Executivef1SeenText, Executivef1BeatenText, $0000, Executivef1Script
 
-	; trainer group && trainer id
-	db EXECUTIVEF, 1
-
-	; text when seen
-	dw Executivef1SeenText
-
-	; text when trainer beaten
-	dw Executivef1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Executivef1Script
-; 0x60066
-
-Executivef1Script: ; 0x60066
+Executivef1Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x60358
@@ -95,9 +72,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x6006e
 
-UnknownScript_0x6006e: ; 0x6006e
+UnknownScript_0x6006e:
 	applymovement $0, MovementData_0x60125
 	playmusic MUSIC_ROCKET_ENCOUNTER
 	spriteface $3, RIGHT
@@ -114,24 +90,24 @@
 	writetext UnknownText_0x6050e
 	closetext
 	loadmovesprites
-	special Function8c0b6
-	special Functiond91
+	special Special_FadeBlackQuickly
+	special Special_ReloadSpritesNoPalettes
 	disappear $3
 	disappear $4
 	pause 15
-	special Function8c0ab
-	setevent $0571
+	special Special_FadeInQuickly
+	setevent EVENT_BEAT_ROCKET_EXECUTIVEM_1
 	setevent EVENT_CLEARED_RADIO_TOWER
-	clearflag $0013
-	setevent $06cc
-	setevent $06cd
-	setevent $06ce
-	clearevent $0736
-	clearflag $0017
-	clearevent $06cf
-	clearevent $06d0
-	setevent $06e3
-	clearevent $06e4
+	clearflag ENGINE_ROCKETS_IN_RADIO_TOWER
+	setevent EVENT_GOLDENROD_CITY_ROCKET_SCOUT
+	setevent EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER
+	setevent EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+	clearevent EVENT_MAHOGANY_MART_OWNERS
+	clearflag ENGINE_ROCKETS_IN_MAHOGANY
+	clearevent EVENT_GOLDENROD_CITY_CIVILIANS
+	clearevent EVENT_RADIO_TOWER_CIVILIANS_AFTER
+	setevent EVENT_BLACKTHORN_CITY_SUPER_NERD_BLOCKS_GYM
+	clearevent EVENT_BLACKTHORN_CITY_SUPER_NERD_DOES_NOT_BLOCK_GYM
 	special PlayMapMusic
 	disappear $2
 	moveperson $2, $c, $0
@@ -148,36 +124,31 @@
 	dotrigger $2
 	domaptrigger GROUP_ECRUTEAK_HOUSE, MAP_ECRUTEAK_HOUSE, $0
 	setevent EVENT_GOT_CLEAR_BELL
-	setevent $0761
+	setevent EVENT_TEAM_ROCKET_DISBANDED
 	jump UnknownScript_0x600f1
-; 0x600f1
 
-UnknownScript_0x600f1: ; 0x600f1
+UnknownScript_0x600f1:
 	applymovement $2, MovementData_0x6011a
 	playsound SFX_EXIT_BUILDING
 	disappear $2
 	end
-; 0x600fb
 
 Ben:
 	jumptextfaceplayer BenText
 
-ItemFragment_0x600fe: ; 0x600fe
+ItemFragment_0x600fe:
 	db ULTRA_BALL, 1
-; 0x60100
 
-MapRadioTower5FSignpost0Script: ; 0x60100
+MapRadioTower5FSignpost0Script:
 	jumptext UnknownText_0x608e0
-; 0x60103
 
-MapRadioTower5FSignpost2Script: ; 0x60103
+MapRadioTower5FSignpost2Script:
 	jumptext UnknownText_0x608f9
-; 0x60106
 
 RadioTower5FBookshelf:
 	jumpstd magazinebookshelf
 
-MovementData_0x60109: ; 0x60109
+MovementData_0x60109:
 	step_left
 	step_left
 	step_left
@@ -184,9 +155,8 @@
 	step_up
 	step_up
 	step_end
-; 0x6010f
 
-MovementData_0x6010f: ; 0x6010f
+MovementData_0x6010f:
 	step_down
 	step_down
 	step_right
@@ -198,9 +168,8 @@
 	step_down
 	step_left
 	step_end
-; 0x6011a
 
-MovementData_0x6011a: ; 0x6011a
+MovementData_0x6011a:
 	step_right
 	step_up
 	step_up
@@ -212,21 +181,18 @@
 	step_up
 	step_up
 	step_end
-; 0x60125
 
-MovementData_0x60125: ; 0x60125
+MovementData_0x60125:
 	step_left
 	step_left
 	step_end
-; 0x60128
 
-UnknownText_0x60128: ; 0x60128
+UnknownText_0x60128:
 	text "Y-you! You came to"
 	line "rescue me?"
 	done
-; 0x60147
 
-UnknownText_0x60147: ; 0x60147
+UnknownText_0x60147:
 	text "Is that what you"
 	line "were expecting?"
 
@@ -247,15 +213,13 @@
 	line "you. But only if"
 	cont "you can beat me!"
 	done
-; 0x60223
 
-UnknownText_0x60223: ; 0x60223
+UnknownText_0x60223:
 	text "OK, OK. I'll tell"
 	line "you where he is."
 	done
-; 0x60246
 
-UnknownText_0x60246: ; 0x60246
+UnknownText_0x60246:
 	text "We stashed the"
 	line "real DIRECTOR in"
 
@@ -269,9 +233,8 @@
 	para "But I doubt you'll"
 	line "get that far."
 	done
-; 0x602cb
 
-Executivef1SeenText: ; 0x602cb
+Executivef1SeenText:
 	text "Remember me from"
 	line "the HIDEOUT in"
 	cont "MAHOGANY TOWN?"
@@ -279,9 +242,8 @@
 	para "I lost then, but I"
 	line "won't this time."
 	done
-; 0x6031e
 
-Executivef1BeatenText: ; 0x6031e
+Executivef1BeatenText:
 	text "This can't be"
 	line "happening!"
 
@@ -288,9 +250,8 @@
 	para "I fought hard, but"
 	line "I still lost…"
 	done
-; 0x60358
 
-UnknownText_0x60358: ; 0x60358
+UnknownText_0x60358:
 	text "<PLAYER>, isn't it?"
 
 	para "A brat like you"
@@ -303,9 +264,8 @@
 	line "I really admire"
 	cont "your power."
 	done
-; 0x603d1
 
-UnknownText_0x603d1: ; 0x603d1
+UnknownText_0x603d1:
 	text "Oh? You managed to"
 	line "get this far?"
 
@@ -333,15 +293,13 @@
 	line "to interfere with"
 	cont "our plans."
 	done
-; 0x604f3
 
-UnknownText_0x604f3: ; 0x604f3
+UnknownText_0x604f3:
 	text "No! Forgive me,"
 	line "GIOVANNI!"
 	done
-; 0x6050e
 
-UnknownText_0x6050e: ; 0x6050e
+UnknownText_0x6050e:
 	text "How could this be?"
 
 	para "Our dreams have"
@@ -358,9 +316,8 @@
 
 	para "Farewell."
 	done
-; 0x605b2
 
-UnknownText_0x605b2: ; 0x605b2
+UnknownText_0x605b2:
 	text "DIRECTOR: <PLAY_G>,"
 	line "thank you!"
 
@@ -374,9 +331,8 @@
 	line "much, but please"
 	cont "take this."
 	done
-; 0x6062c
 
-UnknownText_0x6062c: ; 0x6062c
+UnknownText_0x6062c:
 	text "There used to be a"
 	line "tower right here"
 	cont "in GOLDENROD CITY."
@@ -426,9 +382,8 @@
 	para "OK, I better go to"
 	line "my OFFICE."
 	done
-; 0x60824
 
-UnknownText_0x60824: ; 0x60824
+UnknownText_0x60824:
 	text "DIRECTOR: Hello,"
 	line "<PLAY_G>!"
 
@@ -445,7 +400,6 @@
 	line "if people enjoyed"
 	cont "our programs."
 	done
-; 0x608be
 
 BenText:
 	text "BEN: Do you listen"
@@ -452,44 +406,41 @@
 	line "to our music?"
 	done
 
-UnknownText_0x608e0: ; 0x608e0
+UnknownText_0x608e0:
 	text "5F DIRECTOR'S"
 	line "   OFFICE"
 	done
-; 0x608f9
 
-UnknownText_0x608f9: ; 0x608f9
+UnknownText_0x608f9:
 	text "5F STUDIO 1"
 	done
-; 0x60906
 
-RadioTower5F_MapEventHeader: ; 0x60906
+RadioTower5F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 2
 	xy_trigger 0, $3, $0, $0, UnknownScript_0x60011, $0, $0
 	xy_trigger 1, $5, $10, $0, UnknownScript_0x6006e, $0, $0
 
-	; signposts
+.Signposts:
 	db 5
-	signpost 0, 3, $0, MapRadioTower5FSignpost0Script
-	signpost 0, 11, $0, MapRadioTower5FSignpost2Script
-	signpost 0, 15, $0, MapRadioTower5FSignpost2Script
-	signpost 1, 16, $0, RadioTower5FBookshelf
-	signpost 1, 17, $0, RadioTower5FBookshelf
+	signpost 0, 3, SIGNPOST_READ, MapRadioTower5FSignpost0Script
+	signpost 0, 11, SIGNPOST_READ, MapRadioTower5FSignpost2Script
+	signpost 0, 15, SIGNPOST_READ, MapRadioTower5FSignpost2Script
+	signpost 1, 16, SIGNPOST_READ, RadioTower5FBookshelf
+	signpost 1, 17, SIGNPOST_READ, RadioTower5FBookshelf
 
-	; people-events
+.PersonEvents:
 	db 5
-	person_event SPRITE_GENTLEMAN, 10, 7, $3, $0, 255, 255, $0, 0, Director, $ffff
-	person_event SPRITE_ROCKET, 9, 17, $8, $0, 255, 255, $0, 0, ObjectEvent, $06ce
-	person_event SPRITE_ROCKET_GIRL, 6, 21, $8, $0, 255, 255, $82, 1, TrainerExecutivef1, $06ce
-	person_event SPRITE_ROCKER, 9, 17, $8, $0, 255, 255, $80, 0, Ben, $06d0
-	person_event SPRITE_POKE_BALL, 9, 12, $1, $0, 255, 255, $1, 0, ItemFragment_0x600fe, $07cd
-; 0x60980
+	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
--- a/maps/RedsHouse1F.asm
+++ b/maps/RedsHouse1F.asm
@@ -1,11 +1,11 @@
 RedsHouse1F_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 1
 
 	; triggers
 	dw .Trigger, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 .Trigger
@@ -77,21 +77,21 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 3
-	signpost 1, 0, $0, RedsHouse1FBookshelf
-	signpost 1, 1, $0, RedsHouse1FBookshelf
-	signpost 1, 2, $0, RedsHouse1FTV
+	signpost 1, 0, SIGNPOST_READ, RedsHouse1FBookshelf
+	signpost 1, 1, SIGNPOST_READ, RedsHouse1FBookshelf
+	signpost 1, 2, SIGNPOST_READ, RedsHouse1FTV
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_REDS_MOM, 7, 9, $8, $0, 255, 255, $0, 0, RedsMom, $ffff
+	person_event SPRITE_REDS_MOM, 7, 9, OW_LEFT | $0, $0, -1, -1, $0, 0, RedsMom, -1
--- a/maps/RedsHouse2F.asm
+++ b/maps/RedsHouse2F.asm
@@ -1,20 +1,17 @@
-RedsHouse2F_MapScriptHeader: ; 0x19b048
-	; trigger count
+RedsHouse2F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x19b04a
 
-MapRedsHouse2FSignpost0Script: ; 0x19b04a
+MapRedsHouse2FSignpost0Script:
 	jumptext UnknownText_0x19b050
-; 0x19b04d
 
-MapRedsHouse2FSignpost1Script: ; 0x19b04d
+MapRedsHouse2FSignpost1Script:
 	jumptext UnknownText_0x19b087
-; 0x19b050
 
-UnknownText_0x19b050: ; 0x19b050
+UnknownText_0x19b050:
 	text "<PLAYER> played the"
 	line "N64."
 
@@ -21,31 +18,28 @@
 	para "Better get going--"
 	line "no time to lose!"
 	done
-; 0x19b087
 
-UnknownText_0x19b087: ; 0x19b087
+UnknownText_0x19b087:
 	text "It looks like it"
 	line "hasn't been used"
 	cont "in a long time…"
 	done
-; 0x19b0b9
 
-RedsHouse2F_MapEventHeader: ; 0x19b0b9
+RedsHouse2F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $0, $7, 3, GROUP_REDS_HOUSE_1F, MAP_REDS_HOUSE_1F
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 5, 3, $0, MapRedsHouse2FSignpost0Script
-	signpost 1, 0, $0, MapRedsHouse2FSignpost1Script
+	signpost 5, 3, SIGNPOST_READ, MapRedsHouse2FSignpost0Script
+	signpost 1, 0, SIGNPOST_READ, MapRedsHouse2FSignpost1Script
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x19b0ce
--- a/maps/RockTunnel1F.asm
+++ b/maps/RockTunnel1F.asm
@@ -1,36 +1,29 @@
-RockTunnel1F_MapScriptHeader: ; 0x743b3
-	; trigger count
+RockTunnel1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x743b5
 
-ItemFragment_0x743b5: ; 0x743b5
+ItemFragment_0x743b5:
 	db ELIXER, 1
-; 0x743b7
 
-ItemFragment_0x743b7: ; 0x743b7
-	db TM_47, 1
-; 0x743b9
+ItemFragment_0x743b7:
+	db TM_STEEL_WING, 1
 
-MapRockTunnel1FSignpostItem0: ; 0x743b9
-	dw $00e7
-	db X_ACCURACY
+MapRockTunnel1FSignpostItem0:
+	dwb EVENT_ROCK_TUNNEL_1F_HIDDEN_X_ACCURACY, X_ACCURACY
 	
-; 0x743bc
 
-MapRockTunnel1FSignpostItem1: ; 0x743bc
-	dw $00e8
-	db X_DEFEND
+MapRockTunnel1FSignpostItem1:
+	dwb EVENT_ROCK_TUNNEL_1F_HIDDEN_X_DEFEND, X_DEFEND
 	
-; 0x743bf
 
-RockTunnel1F_MapEventHeader: ; 0x743bf
+RockTunnel1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -39,16 +32,15 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 4, 24, $7, MapRockTunnel1FSignpostItem0
-	signpost 15, 21, $7, MapRockTunnel1FSignpostItem1
+	signpost 4, 24, SIGNPOST_ITEM, MapRockTunnel1FSignpostItem0
+	signpost 15, 21, SIGNPOST_ITEM, MapRockTunnel1FSignpostItem1
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_POKE_BALL, 22, 8, $1, $0, 255, 255, $1, 0, ItemFragment_0x743b5, $077e
-	person_event SPRITE_POKE_BALL, 19, 14, $1, $0, 255, 255, $1, 0, ItemFragment_0x743b7, $077f
-; 0x74407
+	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
--- a/maps/RockTunnelB1F.asm
+++ b/maps/RockTunnelB1F.asm
@@ -1,34 +1,28 @@
-RockTunnelB1F_MapScriptHeader: ; 0x74407
-	; trigger count
+RockTunnelB1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x74409
 
-ItemFragment_0x74409: ; 0x74409
+ItemFragment_0x74409:
 	db IRON, 1
-; 0x7440b
 
-ItemFragment_0x7440b: ; 0x7440b
+ItemFragment_0x7440b:
 	db PP_UP, 1
-; 0x7440d
 
-ItemFragment_0x7440d: ; 0x7440d
+ItemFragment_0x7440d:
 	db REVIVE, 1
-; 0x7440f
 
-MapRockTunnelB1FSignpostItem0: ; 0x7440f
-	dw $00e9
-	db MAX_POTION
+MapRockTunnelB1FSignpostItem0:
+	dwb EVENT_ROCK_TUNNEL_B1F_HIDDEN_MAX_POTION, MAX_POTION
 	
-; 0x74412
 
-RockTunnelB1F_MapEventHeader: ; 0x74412
+RockTunnelB1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -35,16 +29,15 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 14, 4, $7, MapRockTunnelB1FSignpostItem0
+	signpost 14, 4, SIGNPOST_ITEM, MapRockTunnelB1FSignpostItem0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_POKE_BALL, 29, 11, $1, $0, 255, 255, $1, 0, ItemFragment_0x74409, $0780
-	person_event SPRITE_POKE_BALL, 21, 10, $1, $0, 255, 255, $1, 0, ItemFragment_0x7440b, $0781
-	person_event SPRITE_POKE_BALL, 6, 19, $1, $0, 255, 255, $1, 0, ItemFragment_0x7440d, $0782
-; 0x74458
+	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
--- a/maps/Route1.asm
+++ b/maps/Route1.asm
@@ -1,32 +1,14 @@
-Route1_MapScriptHeader: ; 0x1ac554
-	; trigger count
+Route1_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1ac556
 
-TrainerSchoolboyDanny: ; 0x1ac556
-	; bit/flag number
-	dw $470
+TrainerSchoolboyDanny:
+	trainer EVENT_BEAT_SCHOOLBOY_DANNY, SCHOOLBOY, DANNY, SchoolboyDannySeenText, SchoolboyDannyBeatenText, $0000, SchoolboyDannyScript
 
-	; trainer group && trainer id
-	db SCHOOLBOY, DANNY
-
-	; text when seen
-	dw SchoolboyDannySeenText
-
-	; text when trainer beaten
-	dw SchoolboyDannyBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SchoolboyDannyScript
-; 0x1ac562
-
-SchoolboyDannyScript: ; 0x1ac562
+SchoolboyDannyScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ac5d7
@@ -33,29 +15,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1ac56a
 
-TrainerCooltrainerfQuinn: ; 0x1ac56a
-	; bit/flag number
-	dw $568
+TrainerCooltrainerfQuinn:
+	trainer EVENT_BEAT_COOLTRAINERF_QUINN, COOLTRAINERF, QUINN, CooltrainerfQuinnSeenText, CooltrainerfQuinnBeatenText, $0000, CooltrainerfQuinnScript
 
-	; trainer group && trainer id
-	db COOLTRAINERF, QUINN
-
-	; text when seen
-	dw CooltrainerfQuinnSeenText
-
-	; text when trainer beaten
-	dw CooltrainerfQuinnBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainerfQuinnScript
-; 0x1ac576
-
-CooltrainerfQuinnScript: ; 0x1ac576
+CooltrainerfQuinnScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ac640
@@ -62,30 +26,25 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1ac57e
 
-MapRoute1Signpost0Script: ; 0x1ac57e
+MapRoute1Signpost0Script:
 	jumptext UnknownText_0x1ac675
-; 0x1ac581
 
-FruitTreeScript_0x1ac581: ; 0x1ac581
+FruitTreeScript_0x1ac581:
 	fruittree $1a
-; 0x1ac583
 
-SchoolboyDannySeenText: ; 0x1ac583
+SchoolboyDannySeenText:
 	text "If trainers meet,"
 	line "the first thing to"
 	cont "do is battle."
 	done
-; 0x1ac5b7
 
-SchoolboyDannyBeatenText: ; 0x1ac5b7
+SchoolboyDannyBeatenText:
 	text "Awww… I've got a"
 	line "losing record…"
 	done
-; 0x1ac5d7
 
-UnknownText_0x1ac5d7: ; 0x1ac5d7
+UnknownText_0x1ac5d7:
 	text "For trainers, it's"
 	line "a given that we'll"
 
@@ -92,52 +51,46 @@
 	para "battle whenever we"
 	line "meet."
 	done
-; 0x1ac615
 
-CooltrainerfQuinnSeenText: ; 0x1ac615
+CooltrainerfQuinnSeenText:
 	text "You there!"
 	line "Want to battle?"
 	done
-; 0x1ac631
 
-CooltrainerfQuinnBeatenText: ; 0x1ac631
+CooltrainerfQuinnBeatenText:
 	text "Down and out…"
 	done
-; 0x1ac640
 
-UnknownText_0x1ac640: ; 0x1ac640
+UnknownText_0x1ac640:
 	text "You're strong."
 
 	para "You obviously must"
 	line "have trained hard."
 	done
-; 0x1ac675
 
-UnknownText_0x1ac675: ; 0x1ac675
+UnknownText_0x1ac675:
 	text "ROUTE 1"
 
 	para "PALLET TOWN -"
 	line "VIRIDIAN CITY"
 	done
-; 0x1ac69a
 
-Route1_MapEventHeader: ; 0x1ac69a
+Route1_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 0
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 27, 7, $0, MapRoute1Signpost0Script
+	signpost 27, 7, SIGNPOST_READ, MapRoute1Signpost0Script
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_YOUNGSTER, 16, 8, $9, $0, 255, 255, $92, 4, TrainerSchoolboyDanny, $ffff
-	person_event SPRITE_COOLTRAINER_F, 29, 13, $a, $0, 255, 255, $82, 2, TrainerCooltrainerfQuinn, $ffff
-	person_event SPRITE_FRUIT_TREE, 11, 7, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x1ac581, $ffff
-; 0x1ac6cc
+	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
--- a/maps/Route10North.asm
+++ b/maps/Route10North.asm
@@ -1,8 +1,8 @@
 Route10North_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 PowerPlantSign:
@@ -19,18 +19,18 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 11, 5, $0, PowerPlantSign
-	signpost 1, 12, $0, Route10PokeCenterSign
+	signpost 11, 5, SIGNPOST_READ, PowerPlantSign
+	signpost 1, 12, SIGNPOST_READ, Route10PokeCenterSign
 
-	; people-events
+.PersonEvents:
 	db 0
--- a/maps/Route10PokeCenter1F.asm
+++ b/maps/Route10PokeCenter1F.asm
@@ -1,20 +1,17 @@
-Route10PokeCenter1F_MapScriptHeader: ; 0x188bd2
-	; trigger count
+Route10PokeCenter1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x188bd4
 
-NurseScript_0x188bd4: ; 0x188bd4
+NurseScript_0x188bd4:
 	jumpstd pokecenternurse
-; 0x188bd7
 
-GentlemanScript_0x188bd7: ; 0x188bd7
+GentlemanScript_0x188bd7:
 	jumptextfaceplayer UnknownText_0x188bf1
-; 0x188bda
 
-GymGuyScript_0x188bda: ; 0x188bda
+GymGuyScript_0x188bda:
 	faceplayer
 	loadfont
 	checkevent EVENT_RETURNED_MACHINE_PART
@@ -23,20 +20,17 @@
 	closetext
 	loadmovesprites
 	end
-; 0x188be8
 
-UnknownScript_0x188be8: ; 0x188be8
+UnknownScript_0x188be8:
 	writetext UnknownText_0x188c9e
 	closetext
 	loadmovesprites
 	end
-; 0x188bee
 
-CooltrainerFScript_0x188bee: ; 0x188bee
+CooltrainerFScript_0x188bee:
 	jumptextfaceplayer UnknownText_0x188d0c
-; 0x188bf1
 
-UnknownText_0x188bf1: ; 0x188bf1
+UnknownText_0x188bf1:
 	text "A #MON CENTER"
 	line "near a cave?"
 
@@ -43,9 +37,8 @@
 	para "That's mighty"
 	line "convenient."
 	done
-; 0x188c26
 
-UnknownText_0x188c26: ; 0x188c26
+UnknownText_0x188c26:
 	text "The POWER PLANT's"
 	line "MANAGER is looking"
 
@@ -58,9 +51,8 @@
 	para "something that"
 	line "was stolen."
 	done
-; 0x188c9e
 
-UnknownText_0x188c9e: ; 0x188c9e
+UnknownText_0x188c9e:
 	text "I hear TEAM ROCKET"
 	line "got back together"
 
@@ -70,9 +62,8 @@
 	para "I didn't know any-"
 	line "thing about that."
 	done
-; 0x188d0c
 
-UnknownText_0x188d0c: ; 0x188d0c
+UnknownText_0x188d0c:
 	text "When you go out-"
 	line "side, you can see"
 
@@ -82,28 +73,26 @@
 	para "That's the POWER"
 	line "PLANT."
 	done
-; 0x188d63
 
-Route10PokeCenter1F_MapEventHeader: ; 0x188d63
+Route10PokeCenter1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_NURSE, 5, 7, $6, $0, 255, 255, $0, 0, NurseScript_0x188bd4, $ffff
-	person_event SPRITE_GENTLEMAN, 10, 11, $5, $1, 255, 255, $80, 0, GentlemanScript_0x188bd7, $ffff
-	person_event SPRITE_GYM_GUY, 6, 11, $3, $0, 255, 255, $a0, 0, GymGuyScript_0x188bda, $ffff
-	person_event SPRITE_COOLTRAINER_F, 7, 5, $6, $0, 255, 255, $0, 0, CooltrainerFScript_0x188bee, $ffff
-; 0x188dac
+	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
--- a/maps/Route10PokeCenter2FBeta.asm
+++ b/maps/Route10PokeCenter2FBeta.asm
@@ -1,25 +1,23 @@
-Route10PokeCenter2FBeta_MapScriptHeader: ; 0x188dac
-	; trigger count
+Route10PokeCenter2FBeta_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x188dae
 
-Route10PokeCenter2FBeta_MapEventHeader: ; 0x188dae
+Route10PokeCenter2FBeta_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $7, $0, 3, GROUP_ROUTE_10_POKECENTER_1F, MAP_ROUTE_10_POKECENTER_1F
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x188db9
--- a/maps/Route10South.asm
+++ b/maps/Route10South.asm
@@ -1,32 +1,14 @@
-Route10South_MapScriptHeader: ; 0x1ae3f4
-	; trigger count
+Route10South_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1ae3f6
 
-TrainerHikerJim: ; 0x1ae3f6
-	; bit/flag number
-	dw $534
+TrainerHikerJim:
+	trainer EVENT_BEAT_HIKER_JIM, HIKER, JIM, HikerJimSeenText, HikerJimBeatenText, $0000, HikerJimScript
 
-	; trainer group && trainer id
-	db HIKER, JIM
-
-	; text when seen
-	dw HikerJimSeenText
-
-	; text when trainer beaten
-	dw HikerJimBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw HikerJimScript
-; 0x1ae402
-
-HikerJimScript: ; 0x1ae402
+HikerJimScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ae43b
@@ -33,29 +15,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1ae40a
 
-TrainerPokefanmRobert: ; 0x1ae40a
-	; bit/flag number
-	dw $4cf
+TrainerPokefanmRobert:
+	trainer EVENT_BEAT_POKEFANM_ROBERT, POKEFANM, ROBERT, PokefanmRobertSeenText, PokefanmRobertBeatenText, $0000, PokefanmRobertScript
 
-	; trainer group && trainer id
-	db POKEFANM, ROBERT
-
-	; text when seen
-	dw PokefanmRobertSeenText
-
-	; text when trainer beaten
-	dw PokefanmRobertBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PokefanmRobertScript
-; 0x1ae416
-
-PokefanmRobertScript: ; 0x1ae416
+PokefanmRobertScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ae4a9
@@ -62,44 +26,37 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1ae41e
 
-MapRoute10SouthSignpost0Script: ; 0x1ae41e
+MapRoute10SouthSignpost0Script:
 	jumptext UnknownText_0x1ae4dc
-; 0x1ae421
 
-HikerJimSeenText: ; 0x1ae421
+HikerJimSeenText:
 	text "Hahahah!"
 	done
-; 0x1ae42b
 
-HikerJimBeatenText: ; 0x1ae42b
+HikerJimBeatenText:
 	text "Hahaha-hachoo!"
 	done
-; 0x1ae43b
 
-UnknownText_0x1ae43b: ; 0x1ae43b
+UnknownText_0x1ae43b:
 	text "Hay fever is"
 	line "making me sneeze!"
 	cont "Ahahah-CHOO!"
 	done
-; 0x1ae468
 
-PokefanmRobertSeenText: ; 0x1ae468
+PokefanmRobertSeenText:
 	text "You like #MON,"
 	line "don't you?"
 
 	para "Me too!"
 	done
-; 0x1ae48a
 
-PokefanmRobertBeatenText: ; 0x1ae48a
+PokefanmRobertBeatenText:
 	text "I'd have to say"
 	line "that's my loss."
 	done
-; 0x1ae4a9
 
-UnknownText_0x1ae4a9: ; 0x1ae4a9
+UnknownText_0x1ae4a9:
 	text "Look what you did"
 	line "to my #MON…"
 
@@ -106,33 +63,30 @@
 	para "I won't forget"
 	line "this…"
 	done
-; 0x1ae4dc
 
-UnknownText_0x1ae4dc: ; 0x1ae4dc
+UnknownText_0x1ae4dc:
 	text "ROUTE 10"
 
 	para "CERULEAN CITY -"
 	line "LAVENDER TOWN"
 	done
-; 0x1ae504
 
-Route10South_MapEventHeader: ; 0x1ae504
+Route10South_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $1, $6, 2, GROUP_ROCK_TUNNEL_1F, MAP_ROCK_TUNNEL_1F
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 3, 5, $0, MapRoute10SouthSignpost0Script
+	signpost 3, 5, SIGNPOST_READ, MapRoute10SouthSignpost0Script
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_POKEFAN_M, 7, 21, $8, $0, 255, 255, $b2, 3, TrainerHikerJim, $ffff
-	person_event SPRITE_POKEFAN_M, 14, 12, $a, $0, 255, 255, $82, 3, TrainerPokefanmRobert, $ffff
-; 0x1ae52e
+	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
--- a/maps/Route11.asm
+++ b/maps/Route11.asm
@@ -1,32 +1,14 @@
-Route11_MapScriptHeader: ; 0x68000
-	; trigger count
+Route11_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x68002
 
-TrainerYoungsterOwen: ; 0x68002
-	; bit/flag number
-	dw $5b3
+TrainerYoungsterOwen:
+	trainer EVENT_BEAT_YOUNGSTER_OWEN, YOUNGSTER, OWEN, YoungsterOwenSeenText, YoungsterOwenBeatenText, $0000, YoungsterOwenScript
 
-	; trainer group && trainer id
-	db YOUNGSTER, OWEN
-
-	; text when seen
-	dw YoungsterOwenSeenText
-
-	; text when trainer beaten
-	dw YoungsterOwenBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw YoungsterOwenScript
-; 0x6800e
-
-YoungsterOwenScript: ; 0x6800e
+YoungsterOwenScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x680b2
@@ -33,29 +15,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x68016
 
-TrainerYoungsterJason: ; 0x68016
-	; bit/flag number
-	dw $5b4
+TrainerYoungsterJason:
+	trainer EVENT_BEAT_YOUNGSTER_JASON, YOUNGSTER, JASON, YoungsterJasonSeenText, YoungsterJasonBeatenText, $0000, YoungsterJasonScript
 
-	; trainer group && trainer id
-	db YOUNGSTER, JASON
-
-	; text when seen
-	dw YoungsterJasonSeenText
-
-	; text when trainer beaten
-	dw YoungsterJasonBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw YoungsterJasonScript
-; 0x68022
-
-YoungsterJasonScript: ; 0x68022
+YoungsterJasonScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x6814a
@@ -62,29 +26,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x6802a
 
-TrainerPsychicHerman: ; 0x6802a
-	; bit/flag number
-	dw $43c
+TrainerPsychicHerman:
+	trainer EVENT_BEAT_PSYCHIC_HERMAN, PSYCHIC_T, HERMAN, PsychicHermanSeenText, PsychicHermanBeatenText, $0000, PsychicHermanScript
 
-	; trainer group && trainer id
-	db PSYCHIC_T, HERMAN
-
-	; text when seen
-	dw PsychicHermanSeenText
-
-	; text when trainer beaten
-	dw PsychicHermanBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PsychicHermanScript
-; 0x68036
-
-PsychicHermanScript: ; 0x68036
+PsychicHermanScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x6817b
@@ -91,29 +37,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x6803e
 
-TrainerPsychicFidel: ; 0x6803e
-	; bit/flag number
-	dw $43d
+TrainerPsychicFidel:
+	trainer EVENT_BEAT_PSYCHIC_FIDEL, PSYCHIC_T, FIDEL, PsychicFidelSeenText, PsychicFidelBeatenText, $0000, PsychicFidelScript
 
-	; trainer group && trainer id
-	db PSYCHIC_T, FIDEL
-
-	; text when seen
-	dw PsychicFidelSeenText
-
-	; text when trainer beaten
-	dw PsychicFidelBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PsychicFidelScript
-; 0x6804a
-
-PsychicFidelScript: ; 0x6804a
+PsychicFidelScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x681ec
@@ -120,23 +48,18 @@
 	closetext
 	loadmovesprites
 	end
-; 0x68052
 
-MapRoute11Signpost0Script: ; 0x68052
+MapRoute11Signpost0Script:
 	jumptext UnknownText_0x68238
-; 0x68055
 
-FruitTreeScript_0x68055: ; 0x68055
+FruitTreeScript_0x68055:
 	fruittree $18
-; 0x68057
 
-MapRoute11SignpostItem1: ; 0x68057
-	dw $00f5
-	db REVIVE
+MapRoute11SignpostItem1:
+	dwb EVENT_ROUTE_11_HIDDEN_REVIVE, REVIVE
 	
-; 0x6805a
 
-YoungsterOwenSeenText: ; 0x6805a
+YoungsterOwenSeenText:
 	text "There's no cheat-"
 	line "ing in #MON."
 
@@ -143,15 +66,13 @@
 	para "Let's keep it fair"
 	line "and square!"
 	done
-; 0x68097
 
-YoungsterOwenBeatenText: ; 0x68097
+YoungsterOwenBeatenText:
 	text "Huh? How did this"
 	line "happen?"
 	done
-; 0x680b2
 
-UnknownText_0x680b2: ; 0x680b2
+UnknownText_0x680b2:
 	text "I fought fair and"
 	line "square with honor."
 
@@ -158,9 +79,8 @@
 	para "I don't regret"
 	line "this at all."
 	done
-; 0x680f3
 
-YoungsterJasonSeenText: ; 0x680f3
+YoungsterJasonSeenText:
 	text "It itches and"
 	line "tickles a bit when"
 
@@ -167,54 +87,46 @@
 	para "I wear shorts in"
 	line "the grass."
 	done
-; 0x68131
 
-YoungsterJasonBeatenText: ; 0x68131
+YoungsterJasonBeatenText:
 	text "Aiyaaah!"
 	line "I got stomped!"
 	done
-; 0x6814a
 
-UnknownText_0x6814a: ; 0x6814a
+UnknownText_0x6814a:
 	text "I'm going to catch"
 	line "more #MON in"
 	cont "the grass."
 	done
-; 0x68175
 
-PsychicHermanSeenText: ; 0x68175
+PsychicHermanSeenText:
 	text "…"
 	done
-; 0x68178
 
-PsychicHermanBeatenText: ; 0x68178
+PsychicHermanBeatenText:
 	text "…"
 	done
-; 0x6817b
 
-UnknownText_0x6817b: ; 0x6817b
+UnknownText_0x6817b:
 	text "…"
 
 	para "I lost while I had"
 	line "my eyes closed…"
 	done
-; 0x681a1
 
-PsychicFidelSeenText: ; 0x681a1
+PsychicFidelSeenText:
 	text "I can see it…"
 
 	para "Everything to see"
 	line "about you…"
 	done
-; 0x681cd
 
-PsychicFidelBeatenText: ; 0x681cd
+PsychicFidelBeatenText:
 	text "I couldn't foresee"
 	line "your power…"
 	done
-; 0x681ec
 
-UnknownText_0x681ec: ; 0x681ec
+UnknownText_0x681ec:
 	text "Strength in con-"
 	line "viction…"
 
@@ -222,33 +134,30 @@
 	line "cause you believe"
 	cont "in your #MON."
 	done
-; 0x68238
 
-UnknownText_0x68238: ; 0x68238
+UnknownText_0x68238:
 	text "ROUTE 11"
 	done
-; 0x68242
 
-Route11_MapEventHeader: ; 0x68242
+Route11_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 0
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 7, 3, $0, MapRoute11Signpost0Script
-	signpost 5, 32, $7, MapRoute11SignpostItem1
+	signpost 7, 3, SIGNPOST_READ, MapRoute11Signpost0Script
+	signpost 5, 32, SIGNPOST_ITEM, MapRoute11SignpostItem1
 
-	; people-events
+.PersonEvents:
 	db 5
-	person_event SPRITE_YOUNGSTER, 18, 26, $a, $0, 255, 255, $92, 3, TrainerYoungsterOwen, $ffff
-	person_event SPRITE_YOUNGSTER, 8, 24, $6, $0, 255, 255, $92, 3, TrainerYoungsterJason, $ffff
-	person_event SPRITE_YOUNGSTER, 11, 32, $6, $0, 255, 255, $92, 1, TrainerPsychicHerman, $ffff
-	person_event SPRITE_YOUNGSTER, 10, 12, $a, $0, 255, 255, $92, 3, TrainerPsychicFidel, $ffff
-	person_event SPRITE_FRUIT_TREE, 6, 36, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x68055, $ffff
-; 0x68293
+	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
--- a/maps/Route12.asm
+++ b/maps/Route12.asm
@@ -1,32 +1,14 @@
-Route12_MapScriptHeader: ; 0x1a6fb3
-	; trigger count
+Route12_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1a6fb5
 
-TrainerFisherKyle: ; 0x1a6fb5
-	; bit/flag number
-	dw $451
+TrainerFisherKyle:
+	trainer EVENT_BEAT_FISHER_KYLE, FISHER, KYLE, FisherKyleSeenText, FisherKyleBeatenText, $0000, FisherKyleScript
 
-	; trainer group && trainer id
-	db FISHER, KYLE
-
-	; text when seen
-	dw FisherKyleSeenText
-
-	; text when trainer beaten
-	dw FisherKyleBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw FisherKyleScript
-; 0x1a6fc1
-
-FisherKyleScript: ; 0x1a6fc1
+FisherKyleScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a7238
@@ -33,29 +15,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a6fc9
 
-TrainerFisherMartin: ; 0x1a6fc9
-	; bit/flag number
-	dw $45a
+TrainerFisherMartin:
+	trainer EVENT_BEAT_FISHER_MARTIN, FISHER, MARTIN, FisherMartinSeenText, FisherMartinBeatenText, $0000, FisherMartinScript
 
-	; trainer group && trainer id
-	db FISHER, MARTIN
-
-	; text when seen
-	dw FisherMartinSeenText
-
-	; text when trainer beaten
-	dw FisherMartinBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw FisherMartinScript
-; 0x1a6fd5
-
-FisherMartinScript: ; 0x1a6fd5
+FisherMartinScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a704c
@@ -62,29 +26,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a6fdd
 
-TrainerFisherStephen: ; 0x1a6fdd
-	; bit/flag number
-	dw $45b
+TrainerFisherStephen:
+	trainer EVENT_BEAT_FISHER_STEPHEN, FISHER, STEPHEN, FisherStephenSeenText, FisherStephenBeatenText, $0000, FisherStephenScript
 
-	; trainer group && trainer id
-	db FISHER, STEPHEN
-
-	; text when seen
-	dw FisherStephenSeenText
-
-	; text when trainer beaten
-	dw FisherStephenBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw FisherStephenScript
-; 0x1a6fe9
-
-FisherStephenScript: ; 0x1a6fe9
+FisherStephenScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a70d4
@@ -91,29 +37,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a6ff1
 
-TrainerFisherBarney: ; 0x1a6ff1
-	; bit/flag number
-	dw $45c
+TrainerFisherBarney:
+	trainer EVENT_BEAT_FISHER_BARNEY, FISHER, BARNEY, FisherBarneySeenText, FisherBarneyBeatenText, $0000, FisherBarneyScript
 
-	; trainer group && trainer id
-	db FISHER, BARNEY
-
-	; text when seen
-	dw FisherBarneySeenText
-
-	; text when trainer beaten
-	dw FisherBarneyBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw FisherBarneyScript
-; 0x1a6ffd
-
-FisherBarneyScript: ; 0x1a6ffd
+FisherBarneyScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a716d
@@ -120,63 +48,51 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a7005
 
-MapRoute12Signpost0Script: ; 0x1a7005
+MapRoute12Signpost0Script:
 	jumptext UnknownText_0x1a72a0
-; 0x1a7008
 
-MapRoute12Signpost1Script: ; 0x1a7008
+MapRoute12Signpost1Script:
 	jumptext UnknownText_0x1a72c1
-; 0x1a700b
 
-ItemFragment_0x1a700b: ; 0x1a700b
+ItemFragment_0x1a700b:
 	db CALCIUM, 1
-; 0x1a700d
 
-ItemFragment_0x1a700d: ; 0x1a700d
+ItemFragment_0x1a700d:
 	db NUGGET, 1
-; 0x1a700f
 
-MapRoute12SignpostItem2: ; 0x1a700f
-	dw $00f3
-	db ELIXER
+MapRoute12SignpostItem2:
+	dwb EVENT_ROUTE_12_HIDDEN_ELIXER, ELIXER
 	
-; 0x1a7012
 
-FisherMartinSeenText: ; 0x1a7012
+FisherMartinSeenText:
 	text "Patience is the"
 	line "key to both fish-"
 	cont "ing and #MON."
 	done
-; 0x1a7043
 
-FisherMartinBeatenText: ; 0x1a7043
+FisherMartinBeatenText:
 	text "Gwaaah!"
 	done
-; 0x1a704c
 
-UnknownText_0x1a704c: ; 0x1a704c
+UnknownText_0x1a704c:
 	text "I'm too impatient"
 	line "for fishing…"
 	done
-; 0x1a706b
 
-FisherStephenSeenText: ; 0x1a706b
+FisherStephenSeenText:
 	text "I feel so content,"
 	line "fishing while lis-"
 	cont "tening to some"
 	cont "tunes on my radio."
 	done
-; 0x1a70b4
 
-FisherStephenBeatenText: ; 0x1a70b4
+FisherStephenBeatenText:
 	text "My stupid radio"
 	line "distracted me!"
 	done
-; 0x1a70d4
 
-UnknownText_0x1a70d4: ; 0x1a70d4
+UnknownText_0x1a70d4:
 	text "Have you checked"
 	line "out KANTO's radio"
 
@@ -183,22 +99,19 @@
 	para "programs? We get a"
 	line "good variety here."
 	done
-; 0x1a711d
 
-FisherBarneySeenText: ; 0x1a711d
+FisherBarneySeenText:
 	text "What's most impor-"
 	line "tant in our every-"
 	cont "day lives?"
 	done
-; 0x1a714e
 
-FisherBarneyBeatenText: ; 0x1a714e
+FisherBarneyBeatenText:
 	text "The answer is"
 	line "coming up next!"
 	done
-; 0x1a716d
 
-UnknownText_0x1a716d: ; 0x1a716d
+UnknownText_0x1a716d:
 	text "I think electric-"
 	line "ity is the most"
 
@@ -214,19 +127,16 @@
 	para "POWER PLANT went"
 	line "out of commission."
 	done
-; 0x1a7214
 
-FisherKyleSeenText: ; 0x1a7214
+FisherKyleSeenText:
 	text "Do you remember?"
 	done
-; 0x1a7226
 
-FisherKyleBeatenText: ; 0x1a7226
+FisherKyleBeatenText:
 	text "You do remember?"
 	done
-; 0x1a7238
 
-UnknownText_0x1a7238: ; 0x1a7238
+UnknownText_0x1a7238:
 	text "The tug you feel"
 	line "on the ROD when"
 
@@ -237,44 +147,40 @@
 	line "feeling ever for"
 	cont "an angler like me."
 	done
-; 0x1a72a0
 
-UnknownText_0x1a72a0: ; 0x1a72a0
+UnknownText_0x1a72a0:
 	text "ROUTE 12"
 
 	para "NORTH TO LAVENDER"
 	line "TOWN"
 	done
-; 0x1a72c1
 
-UnknownText_0x1a72c1: ; 0x1a72c1
+UnknownText_0x1a72c1:
 	text "FISHING SPOT"
 	done
-; 0x1a72cf
 
-Route12_MapEventHeader: ; 0x1a72cf
+Route12_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $21, $b, 1, GROUP_ROUTE_12_SUPER_ROD_HOUSE, MAP_ROUTE_12_SUPER_ROD_HOUSE
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 3
-	signpost 27, 11, $0, MapRoute12Signpost0Script
-	signpost 9, 13, $0, MapRoute12Signpost1Script
-	signpost 13, 14, $7, MapRoute12SignpostItem2
+	signpost 27, 11, SIGNPOST_READ, MapRoute12Signpost0Script
+	signpost 9, 13, SIGNPOST_READ, MapRoute12Signpost1Script
+	signpost 13, 14, SIGNPOST_ITEM, MapRoute12SignpostItem2
 
-	; people-events
+.PersonEvents:
 	db 6
-	person_event SPRITE_FISHER, 17, 9, $a, $0, 255, 255, $a2, 1, TrainerFisherMartin, $ffff
-	person_event SPRITE_FISHER, 27, 18, $6, $0, 255, 255, $a2, 1, TrainerFisherStephen, $ffff
-	person_event SPRITE_FISHER, 42, 14, $8, $0, 255, 255, $a2, 5, TrainerFisherBarney, $ffff
-	person_event SPRITE_FISHER, 11, 10, $9, $0, 255, 255, $a2, 3, TrainerFisherKyle, $ffff
-	person_event SPRITE_POKE_BALL, 47, 9, $1, $0, 255, 255, $1, 0, ItemFragment_0x1a700b, $0788
-	person_event SPRITE_POKE_BALL, 55, 9, $1, $0, 255, 255, $1, 0, ItemFragment_0x1a700d, $0789
-; 0x1a7337
+	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
--- a/maps/Route12SuperRodHouse.asm
+++ b/maps/Route12SuperRodHouse.asm
@@ -1,12 +1,11 @@
-Route12SuperRodHouse_MapScriptHeader: ; 0x7f482
-	; trigger count
+Route12SuperRodHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x7f484
 
-FishingGuruScript_0x7f484: ; 0x7f484
+FishingGuruScript_0x7f484:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_SUPER_ROD
@@ -19,26 +18,24 @@
 	verbosegiveitem SUPER_ROD, 1
 	iffalse UnknownScript_0x7f4aa
 	setevent EVENT_GOT_SUPER_ROD
-UnknownScript_0x7f4a0: ; 0x7f4a0
+UnknownScript_0x7f4a0:
 	writetext UnknownText_0x7f57c
 	closetext
 	loadmovesprites
 	end
-; 0x7f4a6
 
-UnknownScript_0x7f4a6: ; 0x7f4a6
+UnknownScript_0x7f4a6:
 	writetext UnknownText_0x7f5ec
 	closetext
-UnknownScript_0x7f4aa: ; 0x7f4aa
+UnknownScript_0x7f4aa:
 	loadmovesprites
 	end
-; 0x7f4ac
 
 SuperRodHouseBookshelf:
 ; unused
 	jumpstd picturebookshelf
 
-UnknownText_0x7f4af: ; 0x7f4af
+UnknownText_0x7f4af:
 	text "I'm the FISHING"
 	line "GURU's younger"
 	cont "brother."
@@ -52,9 +49,8 @@
 	para "So? I know I'm"
 	line "right."
 	done
-; 0x7f52f
 
-UnknownText_0x7f52f: ; 0x7f52f
+UnknownText_0x7f52f:
 	text "Yes, yes. Just as"
 	line "I thought!"
 
@@ -62,9 +58,8 @@
 	line "Take this--it's a"
 	cont "SUPER ROD."
 	done
-; 0x7f57c
 
-UnknownText_0x7f57c: ; 0x7f57c
+UnknownText_0x7f57c:
 	text "Try your hand at"
 	line "fishing wherever"
 	cont "there is water."
@@ -75,30 +70,27 @@
 	para "#MON using"
 	line "different RODS."
 	done
-; 0x7f5ec
 
-UnknownText_0x7f5ec: ; 0x7f5ec
+UnknownText_0x7f5ec:
 	text "Huh? My own eyes"
 	line "deceived me?"
 	done
-; 0x7f60b
 
-Route12SuperRodHouse_MapEventHeader: ; 0x7f60b
+Route12SuperRodHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_FISHING_GURU, 7, 9, $6, $0, 255, 255, $80, 0, FishingGuruScript_0x7f484, $ffff
-; 0x7f628
+	person_event SPRITE_FISHING_GURU, 7, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, FishingGuruScript_0x7f484, -1
--- a/maps/Route13.asm
+++ b/maps/Route13.asm
@@ -1,32 +1,14 @@
-Route13_MapScriptHeader: ; 0x1a2430
-	; trigger count
+Route13_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1a2432
 
-TrainerPokefanmAlex: ; 0x1a2432
-	; bit/flag number
-	dw $4d8
+TrainerPokefanmAlex:
+	trainer EVENT_BEAT_POKEFANM_ALEX, POKEFANM, ALEX, PokefanmAlexSeenText, PokefanmAlexBeatenText, $0000, PokefanmAlexScript
 
-	; trainer group && trainer id
-	db POKEFANM, ALEX
-
-	; text when seen
-	dw PokefanmAlexSeenText
-
-	; text when trainer beaten
-	dw PokefanmAlexBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PokefanmAlexScript
-; 0x1a243e
-
-PokefanmAlexScript: ; 0x1a243e
+PokefanmAlexScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a24e3
@@ -33,29 +15,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a2446
 
-TrainerPokefanmJoshua: ; 0x1a2446
-	; bit/flag number
-	dw $4d0
+TrainerPokefanmJoshua:
+	trainer EVENT_BEAT_POKEFANM_JOSHUA, POKEFANM, JOSHUA, PokefanmJoshuaSeenText, PokefanmJoshuaBeatenText, $0000, PokefanmJoshuaScript
 
-	; trainer group && trainer id
-	db POKEFANM, JOSHUA
-
-	; text when seen
-	dw PokefanmJoshuaSeenText
-
-	; text when trainer beaten
-	dw PokefanmJoshuaBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PokefanmJoshuaScript
-; 0x1a2452
-
-PokefanmJoshuaScript: ; 0x1a2452
+PokefanmJoshuaScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a254f
@@ -62,29 +26,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a245a
 
-TrainerBird_keeperPerry: ; 0x1a245a
-	; bit/flag number
-	dw $409
+TrainerBird_keeperPerry:
+	trainer EVENT_BEAT_BIRD_KEEPER_PERRY, BIRD_KEEPER, PERRY, Bird_keeperPerrySeenText, Bird_keeperPerryBeatenText, $0000, Bird_keeperPerryScript
 
-	; trainer group && trainer id
-	db BIRD_KEEPER, PERRY
-
-	; text when seen
-	dw Bird_keeperPerrySeenText
-
-	; text when trainer beaten
-	dw Bird_keeperPerryBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Bird_keeperPerryScript
-; 0x1a2466
-
-Bird_keeperPerryScript: ; 0x1a2466
+Bird_keeperPerryScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a25db
@@ -91,29 +37,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a246e
 
-TrainerBird_keeperBret: ; 0x1a246e
-	; bit/flag number
-	dw $40a
+TrainerBird_keeperBret:
+	trainer EVENT_BEAT_BIRD_KEEPER_BRET, BIRD_KEEPER, BRET, Bird_keeperBretSeenText, Bird_keeperBretBeatenText, $0000, Bird_keeperBretScript
 
-	; trainer group && trainer id
-	db BIRD_KEEPER, BRET
-
-	; text when seen
-	dw Bird_keeperBretSeenText
-
-	; text when trainer beaten
-	dw Bird_keeperBretBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Bird_keeperBretScript
-; 0x1a247a
-
-Bird_keeperBretScript: ; 0x1a247a
+Bird_keeperBretScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a2662
@@ -120,29 +48,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a2482
 
-TrainerHikerKenny: ; 0x1a2482
-	; bit/flag number
-	dw $533
+TrainerHikerKenny:
+	trainer EVENT_BEAT_HIKER_KENNY, HIKER, KENNY, HikerKennySeenText, HikerKennyBeatenText, $0000, HikerKennyScript
 
-	; trainer group && trainer id
-	db HIKER, KENNY
-
-	; text when seen
-	dw HikerKennySeenText
-
-	; text when trainer beaten
-	dw HikerKennyBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw HikerKennyScript
-; 0x1a248e
-
-HikerKennyScript: ; 0x1a248e
+HikerKennyScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a26c2
@@ -149,58 +59,47 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a2496
 
-MapRoute13Signpost0Script: ; 0x1a2496
+MapRoute13Signpost0Script:
 	jumptext UnknownText_0x1a271c
-; 0x1a2499
 
-MapRoute13Signpost1Script: ; 0x1a2499
+MapRoute13Signpost1Script:
 	jumptext UnknownText_0x1a275b
-; 0x1a249c
 
-MapRoute13Signpost2Script: ; 0x1a249c
+MapRoute13Signpost2Script:
 	jumptext UnknownText_0x1a277d
-; 0x1a249f
 
-MapRoute13SignpostItem3: ; 0x1a249f
-	dw $00f4
-	db CALCIUM
+MapRoute13SignpostItem3:
+	dwb EVENT_ROUTE_13_HIDDEN_CALCIUM, CALCIUM
 	
-; 0x1a24a2
 
-PokefanmAlexSeenText: ; 0x1a24a2
+PokefanmAlexSeenText:
 	text "Bow down before my"
 	line "regal #MON!"
 	done
-; 0x1a24c2
 
-PokefanmAlexBeatenText: ; 0x1a24c2
+PokefanmAlexBeatenText:
 	text "How… How dare you"
 	line "mock royalty!"
 	done
-; 0x1a24e3
 
-UnknownText_0x1a24e3: ; 0x1a24e3
+UnknownText_0x1a24e3:
 	text "Doesn't everyone"
 	line "wish to someday be"
 	cont "a king?"
 	done
-; 0x1a250f
 
-PokefanmJoshuaSeenText: ; 0x1a250f
+PokefanmJoshuaSeenText:
 	text "Nihihi! Would you"
 	line "like to battle my"
 	cont "PIKACHU gang?"
 	done
-; 0x1a2542
 
-PokefanmJoshuaBeatenText: ; 0x1a2542
+PokefanmJoshuaBeatenText:
 	text "PI-PIKACHU!"
 	done
-; 0x1a254f
 
-UnknownText_0x1a254f: ; 0x1a254f
+UnknownText_0x1a254f:
 	text "You look like you"
 	line "have many #MON,"
 
@@ -207,29 +106,25 @@
 	para "but PIKACHU is"
 	line "still the best."
 	done
-; 0x1a2591
 
-Bird_keeperPerrySeenText: ; 0x1a2591
+Bird_keeperPerrySeenText:
 	text "Agility is the key"
 	line "attribute of bird"
 	cont "#MON."
 	done
-; 0x1a25bd
 
-Bird_keeperPerryBeatenText: ; 0x1a25bd
+Bird_keeperPerryBeatenText:
 	text "You beat me with"
 	line "your speed…"
 	done
-; 0x1a25db
 
-UnknownText_0x1a25db: ; 0x1a25db
+UnknownText_0x1a25db:
 	text "Your #MON are"
 	line "remarkably well-"
 	cont "trained."
 	done
-; 0x1a2604
 
-Bird_keeperBretSeenText: ; 0x1a2604
+Bird_keeperBretSeenText:
 	text "Check out my #-"
 	line "MON. Just look at"
 
@@ -236,33 +131,28 @@
 	para "their coloring and"
 	line "their plumage."
 	done
-; 0x1a2649
 
-Bird_keeperBretBeatenText: ; 0x1a2649
+Bird_keeperBretBeatenText:
 	text "Shoot!"
 	line "Not good enough!"
 	done
-; 0x1a2662
 
-UnknownText_0x1a2662: ; 0x1a2662
+UnknownText_0x1a2662:
 	text "If you groom them,"
 	line "#MON get happy."
 	done
-; 0x1a2686
 
-HikerKennySeenText: ; 0x1a2686
+HikerKennySeenText:
 	text "I should go to"
 	line "ROCK TUNNEL to get"
 	cont "myself an ONIX."
 	done
-; 0x1a26b9
 
-HikerKennyBeatenText: ; 0x1a26b9
+HikerKennyBeatenText:
 	text "I lost…"
 	done
-; 0x1a26c2
 
-UnknownText_0x1a26c2: ; 0x1a26c2
+UnknownText_0x1a26c2:
 	text "Geological fea-"
 	line "tures don't appear"
 	cont "to change."
@@ -271,9 +161,8 @@
 	line "change, little by"
 	cont "little."
 	done
-; 0x1a271c
 
-UnknownText_0x1a271c: ; 0x1a271c
+UnknownText_0x1a271c:
 	text "TRAINER TIPS"
 
 	para "Look! Right there,"
@@ -280,17 +169,15 @@
 	line "at the left side"
 	cont "of the post."
 	done
-; 0x1a275b
 
-UnknownText_0x1a275b: ; 0x1a275b
+UnknownText_0x1a275b:
 	text "ROUTE 13"
 
 	para "NORTH TO SILENCE"
 	line "BRIDGE"
 	done
-; 0x1a277d
 
-UnknownText_0x1a277d: ; 0x1a277d
+UnknownText_0x1a277d:
 	text "NORTH TO LAVENDER"
 	line "TOWN"
 
@@ -297,30 +184,28 @@
 	para "WEST TO FUCHSIA"
 	line "CITY"
 	done
-; 0x1a27aa
 
-Route13_MapEventHeader: ; 0x1a27aa
+Route13_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 0
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 4
-	signpost 13, 29, $0, MapRoute13Signpost0Script
-	signpost 11, 41, $0, MapRoute13Signpost1Script
-	signpost 13, 17, $0, MapRoute13Signpost2Script
-	signpost 13, 30, $7, MapRoute13SignpostItem3
+	signpost 13, 29, SIGNPOST_READ, MapRoute13Signpost0Script
+	signpost 11, 41, SIGNPOST_READ, MapRoute13Signpost1Script
+	signpost 13, 17, SIGNPOST_READ, MapRoute13Signpost2Script
+	signpost 13, 30, SIGNPOST_ITEM, MapRoute13SignpostItem3
 
-	; people-events
+.PersonEvents:
 	db 5
-	person_event SPRITE_YOUNGSTER, 10, 46, $6, $0, 255, 255, $92, 2, TrainerBird_keeperPerry, $ffff
-	person_event SPRITE_YOUNGSTER, 10, 47, $6, $0, 255, 255, $92, 2, TrainerBird_keeperBret, $ffff
-	person_event SPRITE_POKEFAN_M, 12, 36, $8, $0, 255, 255, $82, 3, TrainerPokefanmJoshua, $ffff
-	person_event SPRITE_POKEFAN_M, 14, 18, $8, $0, 255, 255, $82, 4, TrainerHikerKenny, $ffff
-	person_event SPRITE_POKEFAN_M, 10, 29, $9, $0, 255, 255, $82, 4, TrainerPokefanmAlex, $ffff
-; 0x1a2805
+	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
--- a/maps/Route14.asm
+++ b/maps/Route14.asm
@@ -1,12 +1,11 @@
-Route14_MapScriptHeader: ; 0x1ad47d
-	; trigger count
+Route14_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1ad47f
 
-TeacherScript_0x1ad47f: ; 0x1ad47f
+TeacherScript_0x1ad47f:
 	faceplayer
 	loadfont
 	trade $5
@@ -13,29 +12,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1ad486
 
-TrainerPokefanmCarter: ; 0x1ad486
-	; bit/flag number
-	dw $4d1
+TrainerPokefanmCarter:
+	trainer EVENT_BEAT_POKEFANM_CARTER, POKEFANM, CARTER, PokefanmCarterSeenText, PokefanmCarterBeatenText, $0000, PokefanmCarterScript
 
-	; trainer group && trainer id
-	db POKEFANM, CARTER
-
-	; text when seen
-	dw PokefanmCarterSeenText
-
-	; text when trainer beaten
-	dw PokefanmCarterBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PokefanmCarterScript
-; 0x1ad492
-
-PokefanmCarterScript: ; 0x1ad492
+PokefanmCarterScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ad508
@@ -42,29 +23,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1ad49a
 
-TrainerBird_keeperRoy: ; 0x1ad49a
-	; bit/flag number
-	dw $403
+TrainerBird_keeperRoy:
+	trainer EVENT_BEAT_BIRD_KEEPER_ROY, BIRD_KEEPER, ROY, Bird_keeperRoySeenText, Bird_keeperRoyBeatenText, $0000, Bird_keeperRoyScript
 
-	; trainer group && trainer id
-	db BIRD_KEEPER, ROY
-
-	; text when seen
-	dw Bird_keeperRoySeenText
-
-	; text when trainer beaten
-	dw Bird_keeperRoyBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Bird_keeperRoyScript
-; 0x1ad4a6
-
-Bird_keeperRoyScript: ; 0x1ad4a6
+Bird_keeperRoyScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ad5a4
@@ -71,29 +34,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1ad4ae
 
-TrainerPokefanmTrevor: ; 0x1ad4ae
-	; bit/flag number
-	dw $4d2
+TrainerPokefanmTrevor:
+	trainer EVENT_BEAT_POKEFANM_TREVOR, POKEFANM, TREVOR, PokefanmTrevorSeenText, PokefanmTrevorBeatenText, $0000, PokefanmTrevorScript
 
-	; trainer group && trainer id
-	db POKEFANM, TREVOR
-
-	; text when seen
-	dw PokefanmTrevorSeenText
-
-	; text when trainer beaten
-	dw PokefanmTrevorBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PokefanmTrevorScript
-; 0x1ad4ba
-
-PokefanmTrevorScript: ; 0x1ad4ba
+PokefanmTrevorScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ad660
@@ -100,9 +45,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1ad4c2
 
-PokefanmCarterSeenText: ; 0x1ad4c2
+PokefanmCarterSeenText:
 	text "Let me tell you,"
 	line "I had a hard time"
 
@@ -109,14 +53,12 @@
 	para "catching my prized"
 	line "#MON."
 	done
-; 0x1ad4ff
 
-PokefanmCarterBeatenText: ; 0x1ad4ff
+PokefanmCarterBeatenText:
 	text "Awaaah!"
 	done
-; 0x1ad508
 
-UnknownText_0x1ad508: ; 0x1ad508
+UnknownText_0x1ad508:
 	text "SQUIRTLE, CHARMAN-"
 	line "DER and BULBASAUR…"
 
@@ -123,22 +65,19 @@
 	para "I think that's a"
 	line "well-balanced mix."
 	done
-; 0x1ad552
 
-Bird_keeperRoySeenText: ; 0x1ad552
+Bird_keeperRoySeenText:
 	text "My dream is to fly"
 	line "with my beloved"
 	cont "bird #MON."
 	done
-; 0x1ad581
 
-Bird_keeperRoyBeatenText: ; 0x1ad581
+Bird_keeperRoyBeatenText:
 	text "I can dream, but I"
 	line "can't ever fly…"
 	done
-; 0x1ad5a4
 
-UnknownText_0x1ad5a4: ; 0x1ad5a4
+UnknownText_0x1ad5a4:
 	text "You have #MON"
 	line "that know the HM"
 
@@ -145,9 +84,8 @@
 	para "move FLY, don't"
 	line "you? I envy you."
 	done
-; 0x1ad5e4
 
-PokefanmTrevorSeenText: ; 0x1ad5e4
+PokefanmTrevorSeenText:
 	text "Hi. Did you know…?"
 
 	para "#MON get more"
@@ -157,15 +95,13 @@
 	line "place that they"
 	cont "remember."
 	done
-; 0x1ad640
 
-PokefanmTrevorBeatenText: ; 0x1ad640
+PokefanmTrevorBeatenText:
 	text "Where did I meet"
 	line "this PSYDUCK?"
 	done
-; 0x1ad660
 
-UnknownText_0x1ad660: ; 0x1ad660
+UnknownText_0x1ad660:
 	text "If only there were"
 	line "an easy way to"
 
@@ -172,25 +108,23 @@
 	para "identify where I"
 	line "got my #MON…"
 	done
-; 0x1ad6a1
 
-Route14_MapEventHeader: ; 0x1ad6a1
+Route14_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 0
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_POKEFAN_M, 19, 15, $9, $0, 255, 255, $82, 3, TrainerPokefanmCarter, $ffff
-	person_event SPRITE_YOUNGSTER, 31, 15, $a, $0, 255, 255, $92, 3, TrainerBird_keeperRoy, $ffff
-	person_event SPRITE_POKEFAN_M, 15, 10, $a, $0, 255, 255, $82, 3, TrainerPokefanmTrevor, $ffff
-	person_event SPRITE_TEACHER, 9, 11, $5, $1, 255, 255, $a0, 4, TeacherScript_0x1ad47f, $ffff
-; 0x1ad6db
+	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
--- a/maps/Route15.asm
+++ b/maps/Route15.asm
@@ -1,32 +1,14 @@
-Route15_MapScriptHeader: ; 0x1aa567
-	; trigger count
+Route15_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1aa569
 
-TrainerTeacherColette: ; 0x1aa569
-	; bit/flag number
-	dw $5b5
+TrainerTeacherColette:
+	trainer EVENT_BEAT_TEACHER_COLETTE, TEACHER, COLETTE, TeacherColetteSeenText, TeacherColetteBeatenText, $0000, TeacherColetteScript
 
-	; trainer group && trainer id
-	db TEACHER, COLETTE
-
-	; text when seen
-	dw TeacherColetteSeenText
-
-	; text when trainer beaten
-	dw TeacherColetteBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw TeacherColetteScript
-; 0x1aa575
-
-TeacherColetteScript: ; 0x1aa575
+TeacherColetteScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1aa60d
@@ -33,29 +15,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1aa57d
 
-TrainerTeacherHillary: ; 0x1aa57d
-	; bit/flag number
-	dw $5b6
+TrainerTeacherHillary:
+	trainer EVENT_BEAT_TEACHER_HILLARY, TEACHER, HILLARY, TeacherHillarySeenText, TeacherHillaryBeatenText, $0000, TeacherHillaryScript
 
-	; trainer group && trainer id
-	db TEACHER, HILLARY
-
-	; text when seen
-	dw TeacherHillarySeenText
-
-	; text when trainer beaten
-	dw TeacherHillaryBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw TeacherHillaryScript
-; 0x1aa589
-
-TeacherHillaryScript: ; 0x1aa589
+TeacherHillaryScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1aa6ca
@@ -62,29 +26,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1aa591
 
-TrainerSchoolboyKipp: ; 0x1aa591
-	; bit/flag number
-	dw $46d
+TrainerSchoolboyKipp:
+	trainer EVENT_BEAT_SCHOOLBOY_KIP, SCHOOLBOY, KIPP, SchoolboyKippSeenText, SchoolboyKippBeatenText, $0000, SchoolboyKippScript
 
-	; trainer group && trainer id
-	db SCHOOLBOY, KIPP
-
-	; text when seen
-	dw SchoolboyKippSeenText
-
-	; text when trainer beaten
-	dw SchoolboyKippBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SchoolboyKippScript
-; 0x1aa59d
-
-SchoolboyKippScript: ; 0x1aa59d
+SchoolboyKippScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1aa740
@@ -91,29 +37,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1aa5a5
 
-TrainerSchoolboyTommy: ; 0x1aa5a5
-	; bit/flag number
-	dw $471
+TrainerSchoolboyTommy:
+	trainer EVENT_BEAT_SCHOOLBOY_TOMMY, SCHOOLBOY, TOMMY, SchoolboyTommySeenText, SchoolboyTommyBeatenText, $0000, SchoolboyTommyScript
 
-	; trainer group && trainer id
-	db SCHOOLBOY, TOMMY
-
-	; text when seen
-	dw SchoolboyTommySeenText
-
-	; text when trainer beaten
-	dw SchoolboyTommyBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SchoolboyTommyScript
-; 0x1aa5b1
-
-SchoolboyTommyScript: ; 0x1aa5b1
+SchoolboyTommyScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1aa7bc
@@ -120,29 +48,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1aa5b9
 
-TrainerSchoolboyJohnny: ; 0x1aa5b9
-	; bit/flag number
-	dw $46f
+TrainerSchoolboyJohnny:
+	trainer EVENT_BEAT_SCHOOLBOY_JOHNNY, SCHOOLBOY, JOHNNY, SchoolboyJohnnySeenText, SchoolboyJohnnyBeatenText, $0000, SchoolboyJohnnyScript
 
-	; trainer group && trainer id
-	db SCHOOLBOY, JOHNNY
-
-	; text when seen
-	dw SchoolboyJohnnySeenText
-
-	; text when trainer beaten
-	dw SchoolboyJohnnyBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SchoolboyJohnnyScript
-; 0x1aa5c5
-
-SchoolboyJohnnyScript: ; 0x1aa5c5
+SchoolboyJohnnyScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1aa84a
@@ -149,29 +59,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1aa5cd
 
-TrainerSchoolboyBilly: ; 0x1aa5cd
-	; bit/flag number
-	dw $474
+TrainerSchoolboyBilly:
+	trainer EVENT_BEAT_SCHOOLBOY_BILLY, SCHOOLBOY, BILLY, SchoolboyBillySeenText, SchoolboyBillyBeatenText, $0000, SchoolboyBillyScript
 
-	; trainer group && trainer id
-	db SCHOOLBOY, BILLY
-
-	; text when seen
-	dw SchoolboyBillySeenText
-
-	; text when trainer beaten
-	dw SchoolboyBillyBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SchoolboyBillyScript
-; 0x1aa5d9
-
-SchoolboyBillyScript: ; 0x1aa5d9
+SchoolboyBillyScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1aa8b0
@@ -178,28 +70,23 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1aa5e1
 
-MapRoute15Signpost0Script: ; 0x1aa5e1
+MapRoute15Signpost0Script:
 	jumptext UnknownText_0x1aa8e3
-; 0x1aa5e4
 
-ItemFragment_0x1aa5e4: ; 0x1aa5e4
+ItemFragment_0x1aa5e4:
 	db PP_UP, 1
-; 0x1aa5e6
 
-TeacherColetteSeenText: ; 0x1aa5e6
+TeacherColetteSeenText:
 	text "Have you forgotten"
 	line "anything?"
 	done
-; 0x1aa604
 
-TeacherColetteBeatenText: ; 0x1aa604
+TeacherColetteBeatenText:
 	text "Kyaaah!"
 	done
-; 0x1aa60d
 
-UnknownText_0x1aa60d: ; 0x1aa60d
+UnknownText_0x1aa60d:
 	text "Before I became a"
 	line "teacher, I used to"
 
@@ -206,9 +93,8 @@
 	para "forget a lot of"
 	line "things."
 	done
-; 0x1aa64b
 
-TeacherHillarySeenText: ; 0x1aa64b
+TeacherHillarySeenText:
 	text "On sunny days, I"
 	line "think that the"
 
@@ -218,34 +104,29 @@
 	para "schoolyard than"
 	line "studying in class."
 	done
-; 0x1aa6b3
 
-TeacherHillaryBeatenText: ; 0x1aa6b3
+TeacherHillaryBeatenText:
 	text "I didn't want to"
 	line "lose…"
 	done
-; 0x1aa6ca
 
-UnknownText_0x1aa6ca: ; 0x1aa6ca
+UnknownText_0x1aa6ca:
 	text "Studying is impor-"
 	line "tant, but exercise"
 	cont "is just as vital."
 	done
-; 0x1aa703
 
-SchoolboyKippSeenText: ; 0x1aa703
+SchoolboyKippSeenText:
 	text "Hang on. I have to"
 	line "phone my mom."
 	done
-; 0x1aa725
 
-SchoolboyKippBeatenText: ; 0x1aa725
+SchoolboyKippBeatenText:
 	text "Sorry, Mom!"
 	line "I was beaten!"
 	done
-; 0x1aa740
 
-UnknownText_0x1aa740: ; 0x1aa740
+UnknownText_0x1aa740:
 	text "My mom worries so"
 	line "much about me, I"
 
@@ -252,28 +133,24 @@
 	para "have to phone her"
 	line "all the time."
 	done
-; 0x1aa784
 
-SchoolboyTommySeenText: ; 0x1aa784
+SchoolboyTommySeenText:
 	text "Let's battle."
 	line "I won't lose!"
 	done
-; 0x1aa79f
 
-SchoolboyTommyBeatenText: ; 0x1aa79f
+SchoolboyTommyBeatenText:
 	text "I forgot to do my"
 	line "homework!"
 	done
-; 0x1aa7bc
 
-UnknownText_0x1aa7bc: ; 0x1aa7bc
+UnknownText_0x1aa7bc:
 	text "Sayonara! I just"
 	line "learned that in my"
 	cont "Japanese class."
 	done
-; 0x1aa7f1
 
-SchoolboyJohnnySeenText: ; 0x1aa7f1
+SchoolboyJohnnySeenText:
 	text "We're on a field"
 	line "trip to LAVENDER"
 
@@ -280,71 +157,63 @@
 	para "RADIO TOWER for"
 	line "social studies."
 	done
-; 0x1aa833
 
-SchoolboyJohnnyBeatenText: ; 0x1aa833
+SchoolboyJohnnyBeatenText:
 	text "You're wickedly"
 	line "tough!"
 	done
-; 0x1aa84a
 
-UnknownText_0x1aa84a: ; 0x1aa84a
+UnknownText_0x1aa84a:
 	text "I'm tired of walk-"
 	line "ing. I need to"
 	cont "take a break."
 	done
-; 0x1aa87a
 
-SchoolboyBillySeenText: ; 0x1aa87a
+SchoolboyBillySeenText:
 	text "My favorite class"
 	line "is gym!"
 	done
-; 0x1aa895
 
-SchoolboyBillyBeatenText: ; 0x1aa895
+SchoolboyBillyBeatenText:
 	text "Oh, no!"
 	line "How could I lose?"
 	done
-; 0x1aa8b0
 
-UnknownText_0x1aa8b0: ; 0x1aa8b0
+UnknownText_0x1aa8b0:
 	text "If #MON were a"
 	line "subject at school,"
 	cont "I'd be the best!"
 	done
-; 0x1aa8e3
 
-UnknownText_0x1aa8e3: ; 0x1aa8e3
+UnknownText_0x1aa8e3:
 	text "ROUTE 15"
 
 	para "FUCHSIA CITY -"
 	line "LAVENDER TOWN"
 	done
-; 0x1aa90a
 
-Route15_MapEventHeader: ; 0x1aa90a
+Route15_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 9, 19, $0, MapRoute15Signpost0Script
+	signpost 9, 19, SIGNPOST_READ, MapRoute15Signpost0Script
 
-	; people-events
+.PersonEvents:
 	db 7
-	person_event SPRITE_YOUNGSTER, 14, 14, $9, $0, 255, 255, $92, 4, TrainerSchoolboyKipp, $ffff
-	person_event SPRITE_YOUNGSTER, 17, 19, $7, $0, 255, 255, $92, 3, TrainerSchoolboyTommy, $ffff
-	person_event SPRITE_YOUNGSTER, 14, 37, $6, $0, 255, 255, $92, 3, TrainerSchoolboyJohnny, $ffff
-	person_event SPRITE_YOUNGSTER, 14, 31, $6, $0, 255, 255, $92, 3, TrainerSchoolboyBilly, $ffff
-	person_event SPRITE_TEACHER, 16, 34, $7, $0, 255, 255, $82, 4, TrainerTeacherColette, $ffff
-	person_event SPRITE_TEACHER, 14, 24, $a, $0, 255, 255, $82, 3, TrainerTeacherHillary, $ffff
-	person_event SPRITE_POKE_BALL, 9, 16, $1, $0, 255, 255, $1, 0, ItemFragment_0x1aa5e4, $078a
-; 0x1aa97a
+	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
--- a/maps/Route15FuchsiaGate.asm
+++ b/maps/Route15FuchsiaGate.asm
@@ -1,16 +1,14 @@
-Route15FuchsiaGate_MapScriptHeader: ; 0x19679c
-	; trigger count
+Route15FuchsiaGate_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x19679e
 
-OfficerScript_0x19679e: ; 0x19679e
+OfficerScript_0x19679e:
 	jumptextfaceplayer UnknownText_0x1967a1
-; 0x1967a1
 
-UnknownText_0x1967a1: ; 0x1967a1
+UnknownText_0x1967a1:
 	text "You're working on"
 	line "a #DEX? That's"
 
@@ -17,13 +15,12 @@
 	para "really something."
 	line "Don't give up!"
 	done
-; 0x1967e1
 
-Route15FuchsiaGate_MapEventHeader: ; 0x1967e1
+Route15FuchsiaGate_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -30,13 +27,12 @@
 	warp_def $4, $9, 1, GROUP_ROUTE_15, MAP_ROUTE_15
 	warp_def $5, $9, 2, GROUP_ROUTE_15, MAP_ROUTE_15
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_OFFICER, 6, 9, $6, $0, 255, 255, $90, 0, OfficerScript_0x19679e, $ffff
-; 0x196808
+	person_event SPRITE_OFFICER, 6, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, OfficerScript_0x19679e, -1
--- a/maps/Route16.asm
+++ b/maps/Route16.asm
@@ -1,46 +1,41 @@
-Route16_MapScriptHeader: ; 0x1ad313
-	; trigger count
+Route16_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 5, UnknownScript_0x1ad318
-; 0x1ad318
 
-UnknownScript_0x1ad318: ; 0x1ad318
-	checkcode $13
+UnknownScript_0x1ad318:
+	checkcode VAR_YCOORD
 	if_less_than $5, UnknownScript_0x1ad328
-	checkcode $12
+	checkcode VAR_XCOORD
 	if_greater_than $d, UnknownScript_0x1ad328
-	setflag $0019
+	setflag ENGINE_ALWAYS_ON_BIKE
 	return
-; 0x1ad328
 
-UnknownScript_0x1ad328: ; 0x1ad328
-	clearflag $0019
+UnknownScript_0x1ad328:
+	clearflag ENGINE_ALWAYS_ON_BIKE
 	return
-; 0x1ad32c
 
-MapRoute16Signpost0Script: ; 0x1ad32c
+MapRoute16Signpost0Script:
 	jumptext UnknownText_0x1ad32f
-; 0x1ad32f
 
-UnknownText_0x1ad32f: ; 0x1ad32f
+UnknownText_0x1ad32f:
 	text "CYCLING ROAD"
 
 	para "DOWNHILL COASTING"
 	line "ALL THE WAY!"
 	done
-; 0x1ad35c
 
-Route16_MapEventHeader: ; 0x1ad35c
+Route16_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -48,13 +43,12 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 5, 5, $0, MapRoute16Signpost0Script
+	signpost 5, 5, SIGNPOST_READ, MapRoute16Signpost0Script
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x1ad380
--- a/maps/Route16FuchsiaSpeechHouse.asm
+++ b/maps/Route16FuchsiaSpeechHouse.asm
@@ -1,8 +1,8 @@
 Route16FuchsiaSpeechHouse_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 SuperNerdScript_0x73373:
@@ -23,19 +23,19 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 0, $0, Route16FuchsiaSpeechHouseBookshelf
-	signpost 1, 1, $0, Route16FuchsiaSpeechHouseBookshelf
+	signpost 1, 0, SIGNPOST_READ, Route16FuchsiaSpeechHouseBookshelf
+	signpost 1, 1, SIGNPOST_READ, Route16FuchsiaSpeechHouseBookshelf
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_SUPER_NERD, 7, 6, $6, $0, 255, 255, $a0, 0, SuperNerdScript_0x73373, $ffff
+	person_event SPRITE_SUPER_NERD, 7, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, SuperNerdScript_0x73373, -1
--- a/maps/Route16Gate.asm
+++ b/maps/Route16Gate.asm
@@ -1,30 +1,26 @@
-Route16Gate_MapScriptHeader: ; 0x733e3
-	; trigger count
+Route16Gate_MapScriptHeader:
+.MapTriggers:
 	db 1
 
 	; triggers
 	dw UnknownScript_0x733e9, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x733e9
 
-UnknownScript_0x733e9: ; 0x733e9
+UnknownScript_0x733e9:
 	end
-; 0x733ea
 
-OfficerScript_0x733ea: ; 0x733ea
+OfficerScript_0x733ea:
 	jumptextfaceplayer UnknownText_0x73408
-; 0x733ed
 
-UnknownScript_0x733ed: ; 0x733ed
+UnknownScript_0x733ed:
 	checkitem BICYCLE
 	iffalse UnknownScript_0x733f3
 	end
-; 0x733f3
 
-UnknownScript_0x733f3: ; 0x733f3
-	showemote $0, $2, 15
+UnknownScript_0x733f3:
+	showemote EMOTE_SHOCK, $2, 15
 	spriteface $0, UP
 	loadfont
 	writetext UnknownText_0x73496
@@ -32,15 +28,13 @@
 	loadmovesprites
 	applymovement $0, MovementData_0x73405
 	end
-; 0x73405
 
-MovementData_0x73405: ; 0x73405
+MovementData_0x73405:
 	step_right
 	turn_head_left
 	step_end
-; 0x73408
 
-UnknownText_0x73408: ; 0x73408
+UnknownText_0x73408:
 	text "CYCLING ROAD"
 	line "starts here."
 
@@ -54,9 +48,8 @@
 	para "you can't get from"
 	line "a ship or train."
 	done
-; 0x73496
 
-UnknownText_0x73496: ; 0x73496
+UnknownText_0x73496:
 	text "Hey! Whoa! Stop!"
 
 	para "You can't go out"
@@ -65,13 +58,12 @@
 	para "ROAD without a"
 	line "BICYCLE."
 	done
-; 0x734df
 
-Route16Gate_MapEventHeader: ; 0x734df
+Route16Gate_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -78,15 +70,14 @@
 	warp_def $4, $9, 2, GROUP_ROUTE_16, MAP_ROUTE_16
 	warp_def $5, $9, 3, GROUP_ROUTE_16, MAP_ROUTE_16
 
-	; xy triggers
+.XYTriggers:
 	db 2
 	xy_trigger 0, $4, $5, $0, UnknownScript_0x733ed, $0, $0
 	xy_trigger 0, $5, $5, $0, UnknownScript_0x733ed, $0, $0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_OFFICER, 6, 9, $6, $0, 255, 255, $90, 0, OfficerScript_0x733ea, $ffff
-; 0x73516
+	person_event SPRITE_OFFICER, 6, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, OfficerScript_0x733ea, -1
--- a/maps/Route17.asm
+++ b/maps/Route17.asm
@@ -1,42 +1,23 @@
-Route17_MapScriptHeader: ; 0x1ad0a6
-	; trigger count
+Route17_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 5, UnknownScript_0x1ad0ab
-; 0x1ad0ab
 
-UnknownScript_0x1ad0ab: ; 0x1ad0ab
-	setflag $0019
-	setflag $001a
+UnknownScript_0x1ad0ab:
+	setflag ENGINE_ALWAYS_ON_BIKE
+	setflag ENGINE_DOWNHILL
 	return
-; 0x1ad0b2
 
-TrainerBikerCharles: ; 0x1ad0b2
-	; bit/flag number
-	dw $436
+TrainerBikerCharles:
+	trainer EVENT_BEAT_BIKER_CHARLES, BIKER, CHARLES, BikerCharlesSeenText, BikerCharlesBeatenText, $0000, BikerCharlesScript
 
-	; trainer group && trainer id
-	db BIKER, CHARLES
-
-	; text when seen
-	dw BikerCharlesSeenText
-
-	; text when trainer beaten
-	dw BikerCharlesBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw BikerCharlesScript
-; 0x1ad0be
-
-BikerCharlesScript: ; 0x1ad0be
+BikerCharlesScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ad293
@@ -43,29 +24,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1ad0c6
 
-TrainerBikerRiley: ; 0x1ad0c6
-	; bit/flag number
-	dw $437
+TrainerBikerRiley:
+	trainer EVENT_BEAT_BIKER_RILEY, BIKER, RILEY, BikerRileySeenText, BikerRileyBeatenText, $0000, BikerRileyScript
 
-	; trainer group && trainer id
-	db BIKER, RILEY
-
-	; text when seen
-	dw BikerRileySeenText
-
-	; text when trainer beaten
-	dw BikerRileyBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw BikerRileyScript
-; 0x1ad0d2
-
-BikerRileyScript: ; 0x1ad0d2
+BikerRileyScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ad13b
@@ -72,29 +35,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1ad0da
 
-TrainerBikerJoel: ; 0x1ad0da
-	; bit/flag number
-	dw $438
+TrainerBikerJoel:
+	trainer EVENT_BEAT_BIKER_JOEL, BIKER, JOEL, BikerJoelSeenText, BikerJoelBeatenText, $0000, BikerJoelScript
 
-	; trainer group && trainer id
-	db BIKER, JOEL
-
-	; text when seen
-	dw BikerJoelSeenText
-
-	; text when trainer beaten
-	dw BikerJoelBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw BikerJoelScript
-; 0x1ad0e6
-
-BikerJoelScript: ; 0x1ad0e6
+BikerJoelScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ad196
@@ -101,29 +46,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1ad0ee
 
-TrainerBikerGlenn: ; 0x1ad0ee
-	; bit/flag number
-	dw $439
+TrainerBikerGlenn:
+	trainer EVENT_BEAT_BIKER_GLENN, BIKER, GLENN, BikerGlennSeenText, BikerGlennBeatenText, $0000, BikerGlennScript
 
-	; trainer group && trainer id
-	db BIKER, GLENN
-
-	; text when seen
-	dw BikerGlennSeenText
-
-	; text when trainer beaten
-	dw BikerGlennBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw BikerGlennScript
-; 0x1ad0fa
-
-BikerGlennScript: ; 0x1ad0fa
+BikerGlennScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ad225
@@ -130,50 +57,40 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1ad102
 
-MapRoute17SignpostItem0: ; 0x1ad102
-	dw $00f6
-	db MAX_ETHER
+MapRoute17SignpostItem0:
+	dwb EVENT_ROUTE_17_HIDDEN_MAX_ETHER, MAX_ETHER
 	
-; 0x1ad105
 
-MapRoute17SignpostItem1: ; 0x1ad105
-	dw $00f7
-	db MAX_ELIXER
+MapRoute17SignpostItem1:
+	dwb EVENT_ROUTE_17_HIDDEN_MAX_ELIXER, MAX_ELIXER
 	
-; 0x1ad108
 
-BikerRileySeenText: ; 0x1ad108
+BikerRileySeenText:
 	text "Hey, you! You're"
 	line "from JOHTO, huh?"
 	done
-; 0x1ad12a
 
-BikerRileyBeatenText: ; 0x1ad12a
+BikerRileyBeatenText:
 	text "Whoa, you kick!"
 	done
-; 0x1ad13b
 
-UnknownText_0x1ad13b: ; 0x1ad13b
+UnknownText_0x1ad13b:
 	text "Don't get cocky,"
 	line "you JOHTO punk!"
 	done
-; 0x1ad15c
 
-BikerJoelSeenText: ; 0x1ad15c
+BikerJoelSeenText:
 	text "Wow. That's a cool"
 	line "BICYCLE!"
 	done
-; 0x1ad178
 
-BikerJoelBeatenText: ; 0x1ad178
+BikerJoelBeatenText:
 	text "But you don't just"
 	line "look cool…"
 	done
-; 0x1ad196
 
-UnknownText_0x1ad196: ; 0x1ad196
+UnknownText_0x1ad196:
 	text "I look cool, but"
 	line "I'm weak, so I'm"
 	cont "not really cool."
@@ -181,67 +98,59 @@
 	para "I have to train"
 	line "harder…"
 	done
-; 0x1ad1e0
 
-BikerGlennSeenText: ; 0x1ad1e0
+BikerGlennSeenText:
 	text "Hey! Want to have"
 	line "a speed battle?"
 	done
-; 0x1ad203
 
-BikerGlennBeatenText: ; 0x1ad203
+BikerGlennBeatenText:
 	text "Yikes! You've got"
 	line "awesome torque!"
 	done
-; 0x1ad225
 
-UnknownText_0x1ad225: ; 0x1ad225
+UnknownText_0x1ad225:
 	text "Hands-free riding"
 	line "is considered cool"
 	cont "on CYCLING ROAD."
 	done
-; 0x1ad25c
 
-BikerCharlesSeenText: ; 0x1ad25c
+BikerCharlesSeenText:
 	text "We're fearless"
 	line "highway stars!"
 	done
-; 0x1ad27a
 
-BikerCharlesBeatenText: ; 0x1ad27a
+BikerCharlesBeatenText:
 	text "Arrrgh! Crash and"
 	line "burn!"
 	done
-; 0x1ad293
 
-UnknownText_0x1ad293: ; 0x1ad293
+UnknownText_0x1ad293:
 	text "Reckless driving"
 	line "causes accidents!"
 	cont "Take it easy!"
 	done
-; 0x1ad2c5
 
-Route17_MapEventHeader: ; 0x1ad2c5
+Route17_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 54, 9, $7, MapRoute17SignpostItem0
-	signpost 77, 8, $7, MapRoute17SignpostItem1
+	signpost 54, 9, SIGNPOST_ITEM, MapRoute17SignpostItem0
+	signpost 77, 8, SIGNPOST_ITEM, MapRoute17SignpostItem1
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_BIKER, 21, 8, $a, $0, 255, 255, $b2, 4, TrainerBikerRiley, $ffff
-	person_event SPRITE_BIKER, 72, 13, $6, $0, 255, 255, $b2, 1, TrainerBikerJoel, $ffff
-	person_event SPRITE_BIKER, 57, 7, $a, $0, 255, 255, $b2, 3, TrainerBikerGlenn, $ffff
-	person_event SPRITE_BIKER, 84, 10, $9, $0, 255, 255, $b2, 4, TrainerBikerCharles, $ffff
-; 0x1ad313
+	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
--- a/maps/Route1718Gate.asm
+++ b/maps/Route1718Gate.asm
@@ -1,30 +1,26 @@
-Route1718Gate_MapScriptHeader: ; 0x73607
-	; trigger count
+Route1718Gate_MapScriptHeader:
+.MapTriggers:
 	db 1
 
 	; triggers
 	dw UnknownScript_0x7360d, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x7360d
 
-UnknownScript_0x7360d: ; 0x7360d
+UnknownScript_0x7360d:
 	end
-; 0x7360e
 
-OfficerScript_0x7360e: ; 0x7360e
+OfficerScript_0x7360e:
 	jumptextfaceplayer UnknownText_0x7362c
-; 0x73611
 
-UnknownScript_0x73611: ; 0x73611
+UnknownScript_0x73611:
 	checkitem BICYCLE
 	iffalse UnknownScript_0x73617
 	end
-; 0x73617
 
-UnknownScript_0x73617: ; 0x73617
-	showemote $0, $2, 15
+UnknownScript_0x73617:
+	showemote EMOTE_SHOCK, $2, 15
 	spriteface $0, UP
 	loadfont
 	writetext UnknownText_0x7364d
@@ -32,21 +28,18 @@
 	loadmovesprites
 	applymovement $0, MovementData_0x73629
 	end
-; 0x73629
 
-MovementData_0x73629: ; 0x73629
+MovementData_0x73629:
 	step_right
 	turn_head_left
 	step_end
-; 0x7362c
 
-UnknownText_0x7362c: ; 0x7362c
+UnknownText_0x7362c:
 	text "CYCLING ROAD"
 	line "Uphill Starts Here"
 	done
-; 0x7364d
 
-UnknownText_0x7364d: ; 0x7364d
+UnknownText_0x7364d:
 	text "Hang on! Don't you"
 	line "have a BICYCLE?"
 
@@ -56,13 +49,12 @@
 	para "You have to have a"
 	line "BICYCLE to go on."
 	done
-; 0x736b6
 
-Route1718Gate_MapEventHeader: ; 0x736b6
+Route1718Gate_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -69,15 +61,14 @@
 	warp_def $4, $9, 1, GROUP_ROUTE_18, MAP_ROUTE_18
 	warp_def $5, $9, 2, GROUP_ROUTE_18, MAP_ROUTE_18
 
-	; xy triggers
+.XYTriggers:
 	db 2
 	xy_trigger 0, $4, $5, $0, UnknownScript_0x73611, $0, $0
 	xy_trigger 0, $5, $5, $0, UnknownScript_0x73611, $0, $0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_OFFICER, 6, 9, $6, $0, 255, 255, $90, 0, OfficerScript_0x7360e, $ffff
-; 0x736ed
+	person_event SPRITE_OFFICER, 6, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, OfficerScript_0x7360e, -1
--- a/maps/Route18.asm
+++ b/maps/Route18.asm
@@ -1,32 +1,14 @@
-Route18_MapScriptHeader: ; 0x1acf2f
-	; trigger count
+Route18_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1acf31
 
-TrainerBird_keeperBoris: ; 0x1acf31
-	; bit/flag number
-	dw $404
+TrainerBird_keeperBoris:
+	trainer EVENT_BEAT_BIRD_KEEPER_BORIS, BIRD_KEEPER, BORIS, Bird_keeperBorisSeenText, Bird_keeperBorisBeatenText, $0000, Bird_keeperBorisScript
 
-	; trainer group && trainer id
-	db BIRD_KEEPER, BORIS
-
-	; text when seen
-	dw Bird_keeperBorisSeenText
-
-	; text when trainer beaten
-	dw Bird_keeperBorisBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Bird_keeperBorisScript
-; 0x1acf3d
-
-Bird_keeperBorisScript: ; 0x1acf3d
+Bird_keeperBorisScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1acfa5
@@ -33,29 +15,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1acf45
 
-TrainerBird_keeperBob: ; 0x1acf45
-	; bit/flag number
-	dw $405
+TrainerBird_keeperBob:
+	trainer EVENT_BEAT_BIRD_KEEPER_BOB, BIRD_KEEPER, BOB, Bird_keeperBobSeenText, Bird_keeperBobBeatenText, $0000, Bird_keeperBobScript
 
-	; trainer group && trainer id
-	db BIRD_KEEPER, BOB
-
-	; text when seen
-	dw Bird_keeperBobSeenText
-
-	; text when trainer beaten
-	dw Bird_keeperBobBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Bird_keeperBobScript
-; 0x1acf51
-
-Bird_keeperBobScript: ; 0x1acf51
+Bird_keeperBobScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ad00d
@@ -62,13 +26,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1acf59
 
-MapRoute18Signpost0Script: ; 0x1acf59
+MapRoute18Signpost0Script:
 	jumptext UnknownText_0x1ad051
-; 0x1acf5c
 
-Bird_keeperBorisSeenText: ; 0x1acf5c
+Bird_keeperBorisSeenText:
 	text "If you're looking"
 	line "for #MON, you"
 
@@ -75,33 +37,28 @@
 	para "have to look in"
 	line "the tall grass."
 	done
-; 0x1acf9c
 
-Bird_keeperBorisBeatenText: ; 0x1acf9c
+Bird_keeperBorisBeatenText:
 	text "Ayieee!"
 	done
-; 0x1acfa5
 
-UnknownText_0x1acfa5: ; 0x1acfa5
+UnknownText_0x1acfa5:
 	text "Since you're so"
 	line "strong, it must be"
 	cont "fun to battle."
 	done
-; 0x1acfd7
 
-Bird_keeperBobSeenText: ; 0x1acfd7
+Bird_keeperBobSeenText:
 	text "CYCLING ROAD is a"
 	line "quick shortcut to"
 	cont "CELADON."
 	done
-; 0x1ad005
 
-Bird_keeperBobBeatenText: ; 0x1ad005
+Bird_keeperBobBeatenText:
 	text "…Whew!"
 	done
-; 0x1ad00d
 
-UnknownText_0x1ad00d: ; 0x1ad00d
+UnknownText_0x1ad00d:
 	text "If you don't have"
 	line "a BICYCLE, you're"
 
@@ -108,34 +65,31 @@
 	para "not allowed to use"
 	line "the shortcut."
 	done
-; 0x1ad051
 
-UnknownText_0x1ad051: ; 0x1ad051
+UnknownText_0x1ad051:
 	text "ROUTE 18"
 
 	para "CELADON CITY -"
 	line "FUCHSIA CITY"
 	done
-; 0x1ad077
 
-Route18_MapEventHeader: ; 0x1ad077
+Route18_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 5, 9, $0, MapRoute18Signpost0Script
+	signpost 5, 9, SIGNPOST_READ, MapRoute18Signpost0Script
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_YOUNGSTER, 16, 13, $a, $0, 255, 255, $92, 3, TrainerBird_keeperBoris, $ffff
-	person_event SPRITE_YOUNGSTER, 10, 17, $6, $0, 255, 255, $92, 3, TrainerBird_keeperBob, $ffff
-; 0x1ad0a6
+	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
--- a/maps/Route19.asm
+++ b/maps/Route19.asm
@@ -1,18 +1,17 @@
-Route19_MapScriptHeader: ; 0x19e9d9
-	; trigger count
+Route19_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
-	dbw 1, UnknownScript_0x19e9de
-; 0x19e9de
+	dbw 1, .ClearRocks
 
-UnknownScript_0x19e9de: ; 0x19e9de
-	checkevent $00d7
-	iftrue UnknownScript_0x19e9fc
+.ClearRocks
+	checkevent EVENT_CINNABAR_ROCKS_CLEARED
+	iftrue .Done
 	changeblock $6, $6, $7a
 	changeblock $8, $6, $7a
 	changeblock $a, $6, $7a
@@ -19,31 +18,13 @@
 	changeblock $c, $8, $7a
 	changeblock $4, $8, $7a
 	changeblock $a, $a, $7a
-UnknownScript_0x19e9fc: ; 0x19e9fc
+.Done
 	return
-; 0x19e9fd
 
-TrainerSwimmerfDawn: ; 0x19e9fd
-	; bit/flag number
-	dw $3f3
+TrainerSwimmerfDawn:
+	trainer EVENT_BEAT_SWIMMERF_DAWN, SWIMMERF, DAWN, SwimmerfDawnSeenText, SwimmerfDawnBeatenText, $0000, SwimmerfDawnScript
 
-	; trainer group && trainer id
-	db SWIMMERF, DAWN
-
-	; text when seen
-	dw SwimmerfDawnSeenText
-
-	; text when trainer beaten
-	dw SwimmerfDawnBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SwimmerfDawnScript
-; 0x19ea09
-
-SwimmerfDawnScript: ; 0x19ea09
+SwimmerfDawnScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19ebad
@@ -50,29 +31,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19ea11
 
-TrainerSwimmermHarold: ; 0x19ea11
-	; bit/flag number
-	dw $594
+TrainerSwimmermHarold:
+	trainer EVENT_BEAT_SWIMMERM_HAROLD, SWIMMERM, HAROLD, SwimmermHaroldSeenText, SwimmermHaroldBeatenText, $0000, SwimmermHaroldScript
 
-	; trainer group && trainer id
-	db SWIMMERM, HAROLD
-
-	; text when seen
-	dw SwimmermHaroldSeenText
-
-	; text when trainer beaten
-	dw SwimmermHaroldBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SwimmermHaroldScript
-; 0x19ea1d
-
-SwimmermHaroldScript: ; 0x19ea1d
+SwimmermHaroldScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19eab4
@@ -79,29 +42,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19ea25
 
-TrainerSwimmermJerome: ; 0x19ea25
-	; bit/flag number
-	dw $5a1
+TrainerSwimmermJerome:
+	trainer EVENT_BEAT_SWIMMERM_JEROME, SWIMMERM, JEROME, SwimmermJeromeSeenText, SwimmermJeromeBeatenText, $0000, SwimmermJeromeScript
 
-	; trainer group && trainer id
-	db SWIMMERM, JEROME
-
-	; text when seen
-	dw SwimmermJeromeSeenText
-
-	; text when trainer beaten
-	dw SwimmermJeromeBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SwimmermJeromeScript
-; 0x19ea31
-
-SwimmermJeromeScript: ; 0x19ea31
+SwimmermJeromeScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19ec7e
@@ -108,29 +53,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19ea39
 
-TrainerSwimmermTucker: ; 0x19ea39
-	; bit/flag number
-	dw $5a2
+TrainerSwimmermTucker:
+	trainer EVENT_BEAT_SWIMMERM_TUCKER, SWIMMERM, TUCKER, SwimmermTuckerSeenText, SwimmermTuckerBeatenText, $0000, SwimmermTuckerScript
 
-	; trainer group && trainer id
-	db SWIMMERM, TUCKER
-
-	; text when seen
-	dw SwimmermTuckerSeenText
-
-	; text when trainer beaten
-	dw SwimmermTuckerBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SwimmermTuckerScript
-; 0x19ea45
-
-SwimmermTuckerScript: ; 0x19ea45
+SwimmermTuckerScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19eb3b
@@ -137,65 +64,56 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19ea4d
 
-FisherScript_0x19ea4d: ; 0x19ea4d
+FisherScript_0x19ea4d:
 	faceplayer
 	loadfont
-	checkevent $00d7
+	checkevent EVENT_CINNABAR_ROCKS_CLEARED
 	iftrue UnknownScript_0x19ea5b
 	writetext UnknownText_0x19ecaf
 	closetext
 	loadmovesprites
 	end
-; 0x19ea5b
 
-UnknownScript_0x19ea5b: ; 0x19ea5b
+UnknownScript_0x19ea5b:
 	writetext UnknownText_0x19ed24
 	closetext
 	loadmovesprites
 	end
-; 0x19ea61
 
-FisherScript_0x19ea61: ; 0x19ea61
+FisherScript_0x19ea61:
 	faceplayer
 	loadfont
-	checkevent $00d7
+	checkevent EVENT_CINNABAR_ROCKS_CLEARED
 	iftrue UnknownScript_0x19ea6f
 	writetext UnknownText_0x19ed45
 	closetext
 	loadmovesprites
 	end
-; 0x19ea6f
 
-UnknownScript_0x19ea6f: ; 0x19ea6f
+UnknownScript_0x19ea6f:
 	writetext UnknownText_0x19ed7d
 	closetext
 	loadmovesprites
 	end
-; 0x19ea75
 
-MapRoute19Signpost0Script: ; 0x19ea75
+MapRoute19Signpost0Script:
 	jumptext UnknownText_0x19edbc
-; 0x19ea78
 
-MapRoute19Signpost1Script: ; 0x19ea78
+MapRoute19Signpost1Script:
 	jumptext UnknownText_0x19ede5
-; 0x19ea7b
 
-SwimmermHaroldSeenText: ; 0x19ea7b
+SwimmermHaroldSeenText:
 	text "Have you ever gone"
 	line "swimming in the"
 	cont "sea at night?"
 	done
-; 0x19eaad
 
-SwimmermHaroldBeatenText: ; 0x19eaad
+SwimmermHaroldBeatenText:
 	text "Glub…"
 	done
-; 0x19eab4
 
-UnknownText_0x19eab4: ; 0x19eab4
+UnknownText_0x19eab4:
 	text "At night, the sea"
 	line "turns black. It"
 
@@ -202,9 +120,8 @@
 	para "feels like it will"
 	line "swallow you up."
 	done
-; 0x19eafa
 
-SwimmermTuckerSeenText: ; 0x19eafa
+SwimmermTuckerSeenText:
 	text "Pant, pant…"
 	line "Just… a little…"
 
@@ -211,33 +128,28 @@
 	para "farther… to…"
 	line "FUCHSIA…"
 	done
-; 0x19eb2d
 
-SwimmermTuckerBeatenText: ; 0x19eb2d
+SwimmermTuckerBeatenText:
 	text "I'm drowning!"
 	done
-; 0x19eb3b
 
-UnknownText_0x19eb3b: ; 0x19eb3b
+UnknownText_0x19eb3b:
 	text "I… asked my girl-"
 	line "friend to swim to"
 	cont "FUCHSIA… Gasp…"
 	done
-; 0x19eb6f
 
-SwimmerfDawnSeenText: ; 0x19eb6f
+SwimmerfDawnSeenText:
 	text "I'm disgusted by"
 	line "wimpy people!"
 	done
-; 0x19eb8e
 
-SwimmerfDawnBeatenText: ; 0x19eb8e
+SwimmerfDawnBeatenText:
 	text "I could beat you"
 	line "at swimming…"
 	done
-; 0x19ebad
 
-UnknownText_0x19ebad: ; 0x19ebad
+UnknownText_0x19ebad:
 	text "It's a quick swim"
 	line "between FUCHSIA"
 
@@ -249,9 +161,8 @@
 
 	para "is! What a wimp!"
 	done
-; 0x19ec19
 
-SwimmermJeromeSeenText: ; 0x19ec19
+SwimmermJeromeSeenText:
 	text "Swimming?"
 	line "I'm lousy at it."
 
@@ -259,22 +170,19 @@
 	line "around in these"
 	cont "shallow waters."
 	done
-; 0x19ec66
 
-SwimmermJeromeBeatenText: ; 0x19ec66
+SwimmermJeromeBeatenText:
 	text "I thought I could"
 	line "win."
 	done
-; 0x19ec7e
 
-UnknownText_0x19ec7e: ; 0x19ec7e
+UnknownText_0x19ec7e:
 	text "I might be bad at"
 	line "swimming, but I"
 	cont "love the sea."
 	done
-; 0x19ecaf
 
-UnknownText_0x19ecaf: ; 0x19ecaf
+UnknownText_0x19ecaf:
 	text "Sorry. This road"
 	line "is closed for"
 	cont "construction."
@@ -285,22 +193,19 @@
 	para "better go south"
 	line "from PALLET TOWN."
 	done
-; 0x19ed24
 
-UnknownText_0x19ed24: ; 0x19ed24
+UnknownText_0x19ed24:
 	text "I'm all sweaty."
 	line "Time for a swim!"
 	done
-; 0x19ed45
 
-UnknownText_0x19ed45: ; 0x19ed45
+UnknownText_0x19ed45:
 	text "Who knows how long"
 	line "it would take to"
 	cont "move this boulder…"
 	done
-; 0x19ed7d
 
-UnknownText_0x19ed7d: ; 0x19ed7d
+UnknownText_0x19ed7d:
 	text "The roadwork is"
 	line "finally finished."
 
@@ -307,17 +212,15 @@
 	para "Now I can go"
 	line "fishing again."
 	done
-; 0x19edbc
 
-UnknownText_0x19edbc: ; 0x19edbc
+UnknownText_0x19edbc:
 	text "ROUTE 19"
 
 	para "FUCHSIA CITY -"
 	line "SEAFOAM ISLANDS"
 	done
-; 0x19ede5
 
-UnknownText_0x19ede5: ; 0x19ede5
+UnknownText_0x19ede5:
 	text "Please be careful"
 	line "if you are swim-"
 	cont "ming to SEAFOAM"
@@ -325,30 +228,28 @@
 
 	para "FUCHSIA POLICE"
 	done
-; 0x19ee31
 
-Route19_MapEventHeader: ; 0x19ee31
+Route19_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $3, $7, 3, GROUP_ROUTE_19___FUCHSIA_GATE, MAP_ROUTE_19___FUCHSIA_GATE
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 13, 11, $0, MapRoute19Signpost0Script
-	signpost 1, 11, $0, MapRoute19Signpost1Script
+	signpost 13, 11, SIGNPOST_READ, MapRoute19Signpost0Script
+	signpost 1, 11, SIGNPOST_READ, MapRoute19Signpost1Script
 
-	; people-events
+.PersonEvents:
 	db 6
-	person_event SPRITE_SWIMMER_GIRL, 27, 13, $8, $0, 255, 255, $a2, 0, TrainerSwimmerfDawn, $ffff
-	person_event SPRITE_SWIMMER_GUY, 32, 17, $a, $0, 255, 255, $82, 3, TrainerSwimmermHarold, $ffff
-	person_event SPRITE_SWIMMER_GUY, 21, 15, $a, $0, 255, 255, $82, 3, TrainerSwimmermJerome, $ffff
-	person_event SPRITE_SWIMMER_GUY, 27, 12, $7, $0, 255, 255, $82, 0, TrainerSwimmermTucker, $ffff
-	person_event SPRITE_FISHER, 9, 13, $6, $0, 255, 255, $80, 1, FisherScript_0x19ea4d, $ffff
-	person_event SPRITE_FISHER, 9, 15, $5, $1, 255, 255, $90, 1, FisherScript_0x19ea61, $ffff
-; 0x19ee94
+	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
--- a/maps/Route19FuchsiaGate.asm
+++ b/maps/Route19FuchsiaGate.asm
@@ -1,30 +1,27 @@
-Route19FuchsiaGate_MapScriptHeader: ; 0x1ab3f4
-	; trigger count
+Route19FuchsiaGate_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1ab3f6
 
-OfficerScript_0x1ab3f6: ; 0x1ab3f6
+OfficerScript_0x1ab3f6:
 	faceplayer
 	loadfont
-	checkevent $00d7
-	iftrue UnknownScript_0x1ab404
+	checkevent EVENT_CINNABAR_ROCKS_CLEARED
+	iftrue .RocksCleared
 	writetext UnknownText_0x1ab40a
 	closetext
 	loadmovesprites
 	end
-; 0x1ab404
 
-UnknownScript_0x1ab404: ; 0x1ab404
+.RocksCleared
 	writetext UnknownText_0x1ab48a
 	closetext
 	loadmovesprites
 	end
-; 0x1ab40a
 
-UnknownText_0x1ab40a: ; 0x1ab40a
+UnknownText_0x1ab40a:
 	text "CINNABAR's volcano"
 	line "erupted."
 
@@ -36,9 +33,8 @@
 	line "people of CINNABAR"
 	cont "are safe…"
 	done
-; 0x1ab48a
 
-UnknownText_0x1ab48a: ; 0x1ab48a
+UnknownText_0x1ab48a:
 	text "No CINNABAR citi-"
 	line "zens were injured"
 
@@ -45,13 +41,12 @@
 	para "by the eruption."
 	line "That's great!"
 	done
-; 0x1ab4cd
 
-Route19FuchsiaGate_MapEventHeader: ; 0x1ab4cd
+Route19FuchsiaGate_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -58,13 +53,12 @@
 	warp_def $7, $4, 1, GROUP_ROUTE_19, MAP_ROUTE_19
 	warp_def $7, $5, 1, GROUP_ROUTE_19, MAP_ROUTE_19
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_OFFICER, 8, 4, $9, $0, 255, 255, $90, 0, OfficerScript_0x1ab3f6, $ffff
-; 0x1ab4f4
+	person_event SPRITE_OFFICER, 8, 4, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, OfficerScript_0x1ab3f6, -1
--- a/maps/Route2.asm
+++ b/maps/Route2.asm
@@ -1,32 +1,14 @@
-Route2_MapScriptHeader: ; 0x1ac2ba
-	; trigger count
+Route2_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1ac2bc
 
-TrainerBug_catcherRob: ; 0x1ac2bc
-	; bit/flag number
-	dw $539
+TrainerBug_catcherRob:
+	trainer EVENT_BEAT_BUG_CATCHER_ROB, BUG_CATCHER, ROB, Bug_catcherRobSeenText, Bug_catcherRobBeatenText, $0000, Bug_catcherRobScript
 
-	; trainer group && trainer id
-	db BUG_CATCHER, ROB
-
-	; text when seen
-	dw Bug_catcherRobSeenText
-
-	; text when trainer beaten
-	dw Bug_catcherRobBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Bug_catcherRobScript
-; 0x1ac2c8
-
-Bug_catcherRobScript: ; 0x1ac2c8
+Bug_catcherRobScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ac34d
@@ -33,29 +15,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1ac2d0
 
-TrainerBug_catcherEd: ; 0x1ac2d0
-	; bit/flag number
-	dw $53a
+TrainerBug_catcherEd:
+	trainer EVENT_BEAT_BUG_CATCHER_ED, BUG_CATCHER, ED, Bug_catcherEdSeenText, Bug_catcherEdBeatenText, $0000, Bug_catcherEdScript
 
-	; trainer group && trainer id
-	db BUG_CATCHER, ED
-
-	; text when seen
-	dw Bug_catcherEdSeenText
-
-	; text when trainer beaten
-	dw Bug_catcherEdBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Bug_catcherEdScript
-; 0x1ac2dc
-
-Bug_catcherEdScript: ; 0x1ac2dc
+Bug_catcherEdScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ac3cf
@@ -62,29 +26,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1ac2e4
 
-TrainerBug_catcherDoug: ; 0x1ac2e4
-	; bit/flag number
-	dw $543
+TrainerBug_catcherDoug:
+	trainer EVENT_BEAT_BUG_CATCHER_DOUG, BUG_CATCHER, DOUG, Bug_catcherDougSeenText, Bug_catcherDougBeatenText, $0000, Bug_catcherDougScript
 
-	; trainer group && trainer id
-	db BUG_CATCHER, DOUG
-
-	; text when seen
-	dw Bug_catcherDougSeenText
-
-	; text when trainer beaten
-	dw Bug_catcherDougBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Bug_catcherDougScript
-; 0x1ac2f0
-
-Bug_catcherDougScript: ; 0x1ac2f0
+Bug_catcherDougScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ac423
@@ -91,80 +37,57 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1ac2f8
 
-MapRoute2Signpost0Script: ; 0x1ac2f8
+MapRoute2Signpost0Script:
 	jumptext UnknownText_0x1ac47a
-; 0x1ac2fb
 
-MapRoute2Signpost1Script: ; 0x1ac2fb
+MapRoute2Signpost1Script:
 	jumptext UnknownText_0x1ac49f
-; 0x1ac2fe
 
-ItemFragment_0x1ac2fe: ; 0x1ac2fe
+ItemFragment_0x1ac2fe:
 	db DIRE_HIT, 1
-; 0x1ac300
 
-ItemFragment_0x1ac300: ; 0x1ac300
+ItemFragment_0x1ac300:
 	db MAX_POTION, 1
-; 0x1ac302
 
-ItemFragment_0x1ac302: ; 0x1ac302
+ItemFragment_0x1ac302:
 	db CARBOS, 1
-; 0x1ac304
 
-ItemFragment_0x1ac304: ; 0x1ac304
+ItemFragment_0x1ac304:
 	db ELIXER, 1
-; 0x1ac306
 
-FruitTreeScript_0x1ac306: ; 0x1ac306
+FruitTreeScript_0x1ac306:
 	fruittree $19
-; 0x1ac308
 
-MapRoute2SignpostItem2: ; 0x1ac308
-	dw $00ed
-	db MAX_ETHER
-	
-; 0x1ac30b
+MapRoute2SignpostItem2:
+	dwb EVENT_ROUTE_2_HIDDEN_MAX_ETHER, MAX_ETHER
 
-MapRoute2SignpostItem3: ; 0x1ac30b
-	dw $00ee
-	db FULL_HEAL
-	
-; 0x1ac30e
+MapRoute2SignpostItem3:
+	dwb EVENT_ROUTE_2_HIDDEN_FULL_HEAL, FULL_HEAL
 
-MapRoute2SignpostItem4: ; 0x1ac30e
-	dw $00ef
-	db FULL_RESTORE
-	
-; 0x1ac311
+MapRoute2SignpostItem4:
+	dwb EVENT_ROUTE_2_HIDDEN_FULL_RESTORE, FULL_RESTORE
 
-MapRoute2SignpostItem5: ; 0x1ac311
-	dw $00f0
-	db REVIVE
-	
-; 0x1ac314
+MapRoute2SignpostItem5:
+	dwb EVENT_ROUTE_2_HIDDEN_REVIVE, REVIVE
 
-Bug_catcherRobSeenText: ; 0x1ac314
+Bug_catcherRobSeenText:
 	text "My bug #MON are"
 	line "tough. Prepare to"
 	cont "lose!"
 	done
-; 0x1ac33d
 
-Bug_catcherRobBeatenText: ; 0x1ac33d
+Bug_catcherRobBeatenText:
 	text "I was whipped…"
 	done
-; 0x1ac34d
 
-UnknownText_0x1ac34d: ; 0x1ac34d
+UnknownText_0x1ac34d:
 	text "I'm going to look"
 	line "for stronger bug"
 	cont "#MON."
 	done
-; 0x1ac376
 
-Bug_catcherEdSeenText: ; 0x1ac376
+Bug_catcherEdSeenText:
 	text "If you walk in"
 	line "tall grass wearing"
 
@@ -171,32 +94,27 @@
 	para "shorts, do you get"
 	line "nicks and cuts?"
 	done
-; 0x1ac3bc
 
-Bug_catcherEdBeatenText: ; 0x1ac3bc
+Bug_catcherEdBeatenText:
 	text "Ouch, ouch, ouch!"
 	done
-; 0x1ac3cf
 
-UnknownText_0x1ac3cf: ; 0x1ac3cf
+UnknownText_0x1ac3cf:
 	text "They'll really"
 	line "sting when you"
 	cont "take a bath."
 	done
-; 0x1ac3fa
 
-Bug_catcherDougSeenText: ; 0x1ac3fa
+Bug_catcherDougSeenText:
 	text "Why don't girls"
 	line "like bug #MON?"
 	done
-; 0x1ac419
 
-Bug_catcherDougBeatenText: ; 0x1ac419
+Bug_catcherDougBeatenText:
 	text "No good!"
 	done
-; 0x1ac423
 
-UnknownText_0x1ac423: ; 0x1ac423
+UnknownText_0x1ac423:
 	text "Bug #MON squish"
 	line "like plush toys"
 
@@ -206,26 +124,23 @@
 	para "I love how they"
 	line "feel!"
 	done
-; 0x1ac47a
 
-UnknownText_0x1ac47a: ; 0x1ac47a
+UnknownText_0x1ac47a:
 	text "ROUTE 2"
 
 	para "VIRIDIAN CITY -"
 	line "PEWTER CITY"
 	done
-; 0x1ac49f
 
-UnknownText_0x1ac49f: ; 0x1ac49f
+UnknownText_0x1ac49f:
 	text "DIGLETT'S CAVE"
 	done
-; 0x1ac4af
 
-Route2_MapEventHeader: ; 0x1ac4af
+Route2_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -233,26 +148,25 @@
 	warp_def $1b, $11, 2, GROUP_ROUTE_2_GATE, MAP_ROUTE_2_GATE
 	warp_def $7, $c, 3, GROUP_DIGLETTS_CAVE, MAP_DIGLETTS_CAVE
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 6
-	signpost 51, 7, $0, MapRoute2Signpost0Script
-	signpost 9, 11, $0, MapRoute2Signpost1Script
-	signpost 23, 7, $7, MapRoute2SignpostItem2
-	signpost 14, 4, $7, MapRoute2SignpostItem3
-	signpost 27, 4, $7, MapRoute2SignpostItem4
-	signpost 30, 11, $7, MapRoute2SignpostItem5
+	signpost 51, 7, SIGNPOST_READ, MapRoute2Signpost0Script
+	signpost 9, 11, SIGNPOST_READ, MapRoute2Signpost1Script
+	signpost 23, 7, SIGNPOST_ITEM, MapRoute2SignpostItem2
+	signpost 14, 4, SIGNPOST_ITEM, MapRoute2SignpostItem3
+	signpost 27, 4, SIGNPOST_ITEM, MapRoute2SignpostItem4
+	signpost 30, 11, SIGNPOST_ITEM, MapRoute2SignpostItem5
 
-	; people-events
+.PersonEvents:
 	db 8
-	person_event SPRITE_BUG_CATCHER, 49, 14, $8, $0, 255, 255, $b2, 5, TrainerBug_catcherRob, $ffff
-	person_event SPRITE_BUG_CATCHER, 8, 10, $1f, $0, 255, 255, $b2, 3, TrainerBug_catcherEd, $ffff
-	person_event SPRITE_BUG_CATCHER, 44, 4, $9, $0, 255, 255, $b2, 3, TrainerBug_catcherDoug, $ffff
-	person_event SPRITE_POKE_BALL, 33, 4, $1, $0, 255, 255, $1, 0, ItemFragment_0x1ac2fe, $0783
-	person_event SPRITE_POKE_BALL, 27, 6, $1, $0, 255, 255, $1, 0, ItemFragment_0x1ac300, $0784
-	person_event SPRITE_POKE_BALL, 6, 23, $1, $0, 255, 255, $1, 0, ItemFragment_0x1ac302, $0785
-	person_event SPRITE_POKE_BALL, 54, 18, $1, $0, 255, 255, $1, 0, ItemFragment_0x1ac304, $0786
-	person_event SPRITE_FRUIT_TREE, 18, 14, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x1ac306, $ffff
-; 0x1ac554
+	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
--- a/maps/Route20.asm
+++ b/maps/Route20.asm
@@ -1,41 +1,22 @@
-Route20_MapScriptHeader: ; 0x1acd20
-	; trigger count
+Route20_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
-	dbw 5, UnknownScript_0x1acd25
-; 0x1acd25
+	dbw 5, .ClearRocks
 
-UnknownScript_0x1acd25: ; 0x1acd25
-	setevent $00d7
+.ClearRocks
+	setevent EVENT_CINNABAR_ROCKS_CLEARED
 	return
-; 0x1acd29
 
-TrainerSwimmerfNicole: ; 0x1acd29
-	; bit/flag number
-	dw $3f5
+TrainerSwimmerfNicole:
+	trainer EVENT_BEAT_SWIMMERF_NICOLE, SWIMMERF, NICOLE, SwimmerfNicoleSeenText, SwimmerfNicoleBeatenText, $0000, SwimmerfNicoleScript
 
-	; trainer group && trainer id
-	db SWIMMERF, NICOLE
-
-	; text when seen
-	dw SwimmerfNicoleSeenText
-
-	; text when trainer beaten
-	dw SwimmerfNicoleBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SwimmerfNicoleScript
-; 0x1acd35
-
-SwimmerfNicoleScript: ; 0x1acd35
+SwimmerfNicoleScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1acd93
@@ -42,29 +23,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1acd3d
 
-TrainerSwimmerfLori: ; 0x1acd3d
-	; bit/flag number
-	dw $3f6
+TrainerSwimmerfLori:
+	trainer EVENT_BEAT_SWIMMERF_LORI, SWIMMERF, LORI, SwimmerfLoriSeenText, SwimmerfLoriBeatenText, $0000, SwimmerfLoriScript
 
-	; trainer group && trainer id
-	db SWIMMERF, LORI
-
-	; text when seen
-	dw SwimmerfLoriSeenText
-
-	; text when trainer beaten
-	dw SwimmerfLoriBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SwimmerfLoriScript
-; 0x1acd49
-
-SwimmerfLoriScript: ; 0x1acd49
+SwimmerfLoriScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ace15
@@ -71,29 +34,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1acd51
 
-TrainerSwimmermCameron: ; 0x1acd51
-	; bit/flag number
-	dw $5a4
+TrainerSwimmermCameron:
+	trainer EVENT_BEAT_SWIMMERM_CAMERON, SWIMMERM, CAMERON, SwimmermCameronSeenText, SwimmermCameronBeatenText, $0000, SwimmermCameronScript
 
-	; trainer group && trainer id
-	db SWIMMERM, CAMERON
-
-	; text when seen
-	dw SwimmermCameronSeenText
-
-	; text when trainer beaten
-	dw SwimmermCameronBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SwimmermCameronScript
-; 0x1acd5d
-
-SwimmermCameronScript: ; 0x1acd5d
+SwimmermCameronScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ace8b
@@ -100,24 +45,20 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1acd65
 
-MapRoute20Signpost0Script: ; 0x1acd65
+MapRoute20Signpost0Script:
 	jumptext UnknownText_0x1acec2
-; 0x1acd68
 
-SwimmerfNicoleSeenText: ; 0x1acd68
+SwimmerfNicoleSeenText:
 	text "I feel so much"
 	line "lighter in water."
 	done
-; 0x1acd8a
 
-SwimmerfNicoleBeatenText: ; 0x1acd8a
+SwimmerfNicoleBeatenText:
 	text "Oh, no!"
 	done
-; 0x1acd93
 
-UnknownText_0x1acd93: ; 0x1acd93
+UnknownText_0x1acd93:
 	text "Swimming exercises"
 	line "your full body."
 
@@ -124,9 +65,8 @@
 	para "It's really good"
 	line "for you."
 	done
-; 0x1acdd0
 
-SwimmerfLoriSeenText: ; 0x1acdd0
+SwimmerfLoriSeenText:
 	text "What an impressive"
 	line "collection of GYM"
 
@@ -133,21 +73,18 @@
 	para "BADGES. We should"
 	line "battle!"
 	done
-; 0x1ace10
 
-SwimmerfLoriBeatenText: ; 0x1ace10
+SwimmerfLoriBeatenText:
 	text "No!"
 	done
-; 0x1ace15
 
-UnknownText_0x1ace15: ; 0x1ace15
+UnknownText_0x1ace15:
 	text "SURF is no longer"
 	line "the only HM move"
 	cont "you use in water."
 	done
-; 0x1ace4b
 
-SwimmermCameronSeenText: ; 0x1ace4b
+SwimmermCameronSeenText:
 	text "I guess it's im-"
 	line "possible to swim"
 
@@ -154,21 +91,18 @@
 	para "all the way to"
 	line "JOHTO."
 	done
-; 0x1ace83
 
-SwimmermCameronBeatenText: ; 0x1ace83
+SwimmermCameronBeatenText:
 	text "Aiyah!"
 	done
-; 0x1ace8b
 
-UnknownText_0x1ace8b: ; 0x1ace8b
+UnknownText_0x1ace8b:
 	text "Besides the sea, I"
 	line "can also swim in"
 	cont "ponds and rivers."
 	done
-; 0x1acec2
 
-UnknownText_0x1acec2: ; 0x1acec2
+UnknownText_0x1acec2:
 	text "What does this"
 	line "sign say?"
 
@@ -175,26 +109,24 @@
 	para "CINNABAR GYM"
 	line "LEADER: BLAINE"
 	done
-; 0x1acef8
 
-Route20_MapEventHeader: ; 0x1acef8
+Route20_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $7, $26, 1, GROUP_SEAFOAM_GYM, MAP_SEAFOAM_GYM
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 11, 37, $0, MapRoute20Signpost0Script
+	signpost 11, 37, SIGNPOST_READ, MapRoute20Signpost0Script
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_SWIMMER_GIRL, 12, 56, $a, $0, 255, 255, $a2, 3, TrainerSwimmerfNicole, $ffff
-	person_event SPRITE_SWIMMER_GIRL, 17, 49, $a, $0, 255, 255, $a2, 3, TrainerSwimmerfLori, $ffff
-	person_event SPRITE_SWIMMER_GUY, 17, 16, $a, $0, 255, 255, $82, 3, TrainerSwimmermCameron, $ffff
-; 0x1acf2f
+	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
--- a/maps/Route21.asm
+++ b/maps/Route21.asm
@@ -1,32 +1,14 @@
-Route21_MapScriptHeader: ; 0x1ac812
-	; trigger count
+Route21_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1ac814
 
-TrainerSwimmermSeth: ; 0x1ac814
-	; bit/flag number
-	dw $5a5
+TrainerSwimmermSeth:
+	trainer EVENT_BEAT_SWIMMERM_SETH, SWIMMERM, SETH, SwimmermSethSeenText, SwimmermSethBeatenText, $0000, SwimmermSethScript
 
-	; trainer group && trainer id
-	db SWIMMERM, SETH
-
-	; text when seen
-	dw SwimmermSethSeenText
-
-	; text when trainer beaten
-	dw SwimmermSethBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SwimmermSethScript
-; 0x1ac820
-
-SwimmermSethScript: ; 0x1ac820
+SwimmermSethScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ac873
@@ -33,29 +15,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1ac828
 
-TrainerSwimmerfNikki: ; 0x1ac828
-	; bit/flag number
-	dw $3f8
+TrainerSwimmerfNikki:
+	trainer EVENT_BEAT_SWIMMERF_NIKKI, SWIMMERF, NIKKI, SwimmerfNikkiSeenText, SwimmerfNikkiBeatenText, $0000, SwimmerfNikkiScript
 
-	; trainer group && trainer id
-	db SWIMMERF, NIKKI
-
-	; text when seen
-	dw SwimmerfNikkiSeenText
-
-	; text when trainer beaten
-	dw SwimmerfNikkiBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SwimmerfNikkiScript
-; 0x1ac834
-
-SwimmerfNikkiScript: ; 0x1ac834
+SwimmerfNikkiScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ac8f1
@@ -62,29 +26,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1ac83c
 
-TrainerFisherArnold: ; 0x1ac83c
-	; bit/flag number
-	dw $450
+TrainerFisherArnold:
+	trainer EVENT_BEAT_FISHER_ARNOLD, FISHER, ARNOLD, FisherArnoldSeenText, FisherArnoldBeatenText, $0000, FisherArnoldScript
 
-	; trainer group && trainer id
-	db FISHER, ARNOLD
-
-	; text when seen
-	dw FisherArnoldSeenText
-
-	; text when trainer beaten
-	dw FisherArnoldBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw FisherArnoldScript
-; 0x1ac848
-
-FisherArnoldScript: ; 0x1ac848
+FisherArnoldScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ac95c
@@ -91,79 +37,68 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1ac850
 
-SwimmermSethSeenText: ; 0x1ac850
+SwimmermSethSeenText:
 	text "Land ho! Gotta"
 	line "keep going!"
 	done
-; 0x1ac86c
 
-SwimmermSethBeatenText: ; 0x1ac86c
+SwimmermSethBeatenText:
 	text "Glug…"
 	done
-; 0x1ac873
 
-UnknownText_0x1ac873: ; 0x1ac873
+UnknownText_0x1ac873:
 	text "This arrogant guy"
 	line "was at CINNABAR's"
 	cont "volcano."
 	done
-; 0x1ac8a0
 
-SwimmerfNikkiSeenText: ; 0x1ac8a0
+SwimmerfNikkiSeenText:
 	text "If I win, you have"
 	line "to help me with my"
 	cont "suntan lotion!"
 	done
-; 0x1ac8d6
 
-SwimmerfNikkiBeatenText: ; 0x1ac8d6
+SwimmerfNikkiBeatenText:
 	text "I'm worried about"
 	line "sunburn…"
 	done
-; 0x1ac8f1
 
-UnknownText_0x1ac8f1: ; 0x1ac8f1
+UnknownText_0x1ac8f1:
 	text "I have to watch"
 	line "out for blemishes"
 	cont "caused by the sun."
 	done
-; 0x1ac927
 
-FisherArnoldSeenText: ; 0x1ac927
+FisherArnoldSeenText:
 	text "I'm bored by fish-"
 	line "ing. Let's battle!"
 	done
-; 0x1ac94c
 
-FisherArnoldBeatenText: ; 0x1ac94c
+FisherArnoldBeatenText:
 	text "Utter failure…"
 	done
-; 0x1ac95c
 
-UnknownText_0x1ac95c: ; 0x1ac95c
+UnknownText_0x1ac95c:
 	text "I'll just go back"
 	line "to fishing…"
 	done
-; 0x1ac97a
 
-Route21_MapEventHeader: ; 0x1ac97a
+Route21_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 0
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_SWIMMER_GIRL, 20, 15, $a, $0, 255, 255, $a2, 3, TrainerSwimmerfNikki, $ffff
-	person_event SPRITE_SWIMMER_GUY, 34, 6, $9, $0, 255, 255, $82, 4, TrainerSwimmermSeth, $ffff
-	person_event SPRITE_FISHER, 26, 18, $7, $0, 255, 255, $a2, 1, TrainerFisherArnold, $ffff
-; 0x1ac9a7
+	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
--- a/maps/Route22.asm
+++ b/maps/Route22.asm
@@ -1,38 +1,34 @@
-Route22_MapScriptHeader: ; 0x7c000
-	; trigger count
+Route22_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x7c002
 
-MapRoute22Signpost0Script: ; 0x7c002
+MapRoute22Signpost0Script:
 	jumptext UnknownText_0x7c005
-; 0x7c005
 
-UnknownText_0x7c005: ; 0x7c005
+UnknownText_0x7c005:
 	text "#MON LEAGUE"
 
 	para "VICTORY ROAD"
 	line "ENTRANCE"
 	done
-; 0x7c028
 
-Route22_MapEventHeader: ; 0x7c028
+Route22_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $5, $d, 1, GROUP_VICTORY_ROAD_GATE, MAP_VICTORY_ROAD_GATE
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 7, 15, $0, MapRoute22Signpost0Script
+	signpost 7, 15, SIGNPOST_READ, MapRoute22Signpost0Script
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x7c038
--- a/maps/Route23.asm
+++ b/maps/Route23.asm
@@ -1,8 +1,8 @@
 Route23_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -28,7 +28,7 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -35,12 +35,12 @@
 	warp_def $d, $9, 10, GROUP_VICTORY_ROAD, MAP_VICTORY_ROAD
 	warp_def $d, $a, 10, GROUP_VICTORY_ROAD, MAP_VICTORY_ROAD
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 7, 11, $0, IndigoPlateauSign
+	signpost 7, 11, SIGNPOST_READ, IndigoPlateauSign
 
-	; people-events
+.PersonEvents:
 	db 0
--- a/maps/Route24.asm
+++ b/maps/Route24.asm
@@ -1,12 +1,11 @@
-Route24_MapScriptHeader: ; 0x1adbf8
-	; trigger count
+Route24_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1adbfa
 
-RocketScript_0x1adbfa: ; 0x1adbfa
+RocketScript_0x1adbfa:
 	faceplayer
 	playmusic MUSIC_ROCKET_ENCOUNTER
 	loadfont
@@ -13,7 +12,7 @@
 	writetext UnknownText_0x1adc2e
 	closetext
 	loadmovesprites
-	winlosstext UnknownText_0x1add67, $ffff
+	winlosstext UnknownText_0x1add67, -1
 	loadtrainer GRUNTM, 31
 	startbattle
 	reloadmapmusic
@@ -26,16 +25,15 @@
 	writetext UnknownText_0x1adee1
 	closetext
 	loadmovesprites
-	special Function8c0b6
-	special Functiond91
+	special Special_FadeBlackQuickly
+	special Special_ReloadSpritesNoPalettes
 	disappear $2
 	pause 25
-	special Function8c0ab
+	special Special_FadeInQuickly
 	playmapmusic
 	end
-; 0x1adc2e
 
-UnknownText_0x1adc2e: ; 0x1adc2e
+UnknownText_0x1adc2e:
 	text "Hey, kid! Me am a"
 	line "TEAM ROCKET member"
 	cont "kind of guy!"
@@ -63,9 +61,8 @@
 	para "Hey, kid! Battle"
 	line "begin we do!"
 	done
-; 0x1add67
 
-UnknownText_0x1add67: ; 0x1add67
+UnknownText_0x1add67:
 	text "Ayieeeh! No, no,"
 	line "no, believe it I"
 	cont "can't!"
@@ -74,9 +71,8 @@
 	line "be you! Match I am"
 	cont "not to you!"
 	done
-; 0x1addc0
 
-UnknownText_0x1addc0: ; 0x1addc0
+UnknownText_0x1addc0:
 	text "OK. Tell you mine"
 	line "secret will I."
 
@@ -104,9 +100,8 @@
 	para "friends, yes. Will"
 	line "revenge they are."
 	done
-; 0x1adee1
 
-UnknownText_0x1adee1: ; 0x1adee1
+UnknownText_0x1adee1:
 	text "…"
 
 	para "You say what? TEAM"
@@ -119,22 +114,20 @@
 	line "do what now on"
 	cont "from, me?"
 	done
-; 0x1adf50
 
-Route24_MapEventHeader: ; 0x1adf50
+Route24_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 0
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_ROCKET, 11, 12, $3, $0, 255, 255, $0, 0, RocketScript_0x1adbfa, $076c
-; 0x1adf63
+	person_event SPRITE_ROCKET, 11, 12, OW_DOWN | $3, $0, -1, -1, $0, 0, RocketScript_0x1adbfa, EVENT_ROUTE_24_ROCKET
--- a/maps/Route25.asm
+++ b/maps/Route25.asm
@@ -1,5 +1,5 @@
-Route25_MapScriptHeader: ; 0x19ee94
-	; trigger count
+Route25_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,22 +6,19 @@
 	dw UnknownScript_0x19ee9e, $0000
 	dw UnknownScript_0x19ee9f, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x19ee9e
 
-UnknownScript_0x19ee9e: ; 0x19ee9e
+UnknownScript_0x19ee9e:
 	end
-; 0x19ee9f
 
-UnknownScript_0x19ee9f: ; 0x19ee9f
+UnknownScript_0x19ee9f:
 	end
-; 0x19eea0
 
-UnknownScript_0x19eea0: ; 0x19eea0
+UnknownScript_0x19eea0:
 	showemote $4, $2, 15
 	pause 30
-	showemote $0, $3, 10
+	showemote EMOTE_SHOCK, $3, 10
 	spriteface $2, DOWN
 	applymovement $3, MovementData_0x19efe8
 	disappear $3
@@ -43,12 +40,11 @@
 	dotrigger $0
 	special RestartMapMusic
 	end
-; 0x19eee0
 
-UnknownScript_0x19eee0: ; 0x19eee0
+UnknownScript_0x19eee0:
 	showemote $4, $2, 15
 	pause 30
-	showemote $0, $3, 10
+	showemote EMOTE_SHOCK, $3, 10
 	spriteface $2, DOWN
 	applymovement $3, MovementData_0x19efea
 	disappear $3
@@ -70,29 +66,11 @@
 	dotrigger $0
 	special RestartMapMusic
 	end
-; 0x19ef20
 
-TrainerSchoolboyDudley: ; 0x19ef20
-	; bit/flag number
-	dw $472
+TrainerSchoolboyDudley:
+	trainer EVENT_BEAT_SCHOOLBOY_DUDLEY, SCHOOLBOY, DUDLEY, SchoolboyDudleySeenText, SchoolboyDudleyBeatenText, $0000, SchoolboyDudleyScript
 
-	; trainer group && trainer id
-	db SCHOOLBOY, DUDLEY
-
-	; text when seen
-	dw SchoolboyDudleySeenText
-
-	; text when trainer beaten
-	dw SchoolboyDudleyBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SchoolboyDudleyScript
-; 0x19ef2c
-
-SchoolboyDudleyScript: ; 0x19ef2c
+SchoolboyDudleyScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19f1b5
@@ -99,29 +77,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19ef34
 
-TrainerLassEllen: ; 0x19ef34
-	; bit/flag number
-	dw $51f
+TrainerLassEllen:
+	trainer EVENT_BEAT_LASS_ELLEN, LASS, ELLEN, LassEllenSeenText, LassEllenBeatenText, $0000, LassEllenScript
 
-	; trainer group && trainer id
-	db LASS, ELLEN
-
-	; text when seen
-	dw LassEllenSeenText
-
-	; text when trainer beaten
-	dw LassEllenBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw LassEllenScript
-; 0x19ef40
-
-LassEllenScript: ; 0x19ef40
+LassEllenScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19f208
@@ -128,29 +88,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19ef48
 
-TrainerSchoolboyJoe: ; 0x19ef48
-	; bit/flag number
-	dw $473
+TrainerSchoolboyJoe:
+	trainer EVENT_BEAT_SCHOOLBOY_JOE, SCHOOLBOY, JOE, SchoolboyJoeSeenText, SchoolboyJoeBeatenText, $0000, SchoolboyJoeScript
 
-	; trainer group && trainer id
-	db SCHOOLBOY, JOE
-
-	; text when seen
-	dw SchoolboyJoeSeenText
-
-	; text when trainer beaten
-	dw SchoolboyJoeBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SchoolboyJoeScript
-; 0x19ef54
-
-SchoolboyJoeScript: ; 0x19ef54
+SchoolboyJoeScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19f25c
@@ -157,29 +99,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19ef5c
 
-TrainerLassLaura: ; 0x19ef5c
-	; bit/flag number
-	dw $51b
+TrainerLassLaura:
+	trainer EVENT_BEAT_LASS_LAURA, LASS, LAURA, LassLauraSeenText, LassLauraBeatenText, $0000, LassLauraScript
 
-	; trainer group && trainer id
-	db LASS, LAURA
-
-	; text when seen
-	dw LassLauraSeenText
-
-	; text when trainer beaten
-	dw LassLauraBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw LassLauraScript
-; 0x19ef68
-
-LassLauraScript: ; 0x19ef68
+LassLauraScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19f2a6
@@ -186,29 +110,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19ef70
 
-TrainerCamperLloyd: ; 0x19ef70
-	; bit/flag number
-	dw $41f
+TrainerCamperLloyd:
+	trainer EVENT_BEAT_CAMPER_LLOYD, CAMPER, LLOYD, CamperLloydSeenText, CamperLloydBeatenText, $0000, CamperLloydScript
 
-	; trainer group && trainer id
-	db CAMPER, LLOYD
-
-	; text when seen
-	dw CamperLloydSeenText
-
-	; text when trainer beaten
-	dw CamperLloydBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CamperLloydScript
-; 0x19ef7c
-
-CamperLloydScript: ; 0x19ef7c
+CamperLloydScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19f2f8
@@ -215,29 +121,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19ef84
 
-TrainerLassShannon: ; 0x19ef84
-	; bit/flag number
-	dw $51c
+TrainerLassShannon:
+	trainer EVENT_BEAT_LASS_SHANNON, LASS, SHANNON, LassShannonSeenText, LassShannonBeatenText, $0000, LassShannonScript
 
-	; trainer group && trainer id
-	db LASS, SHANNON
-
-	; text when seen
-	dw LassShannonSeenText
-
-	; text when trainer beaten
-	dw LassShannonBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw LassShannonScript
-; 0x19ef90
-
-LassShannonScript: ; 0x19ef90
+LassShannonScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19f35b
@@ -244,29 +132,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19ef98
 
-TrainerSupernerdPat: ; 0x19ef98
-	; bit/flag number
-	dw $588
+TrainerSupernerdPat:
+	trainer EVENT_BEAT_SUPER_NERD_PAT, SUPER_NERD, PAT, SupernerdPatSeenText, SupernerdPatBeatenText, $0000, SupernerdPatScript
 
-	; trainer group && trainer id
-	db SUPER_NERD, PAT
-
-	; text when seen
-	dw SupernerdPatSeenText
-
-	; text when trainer beaten
-	dw SupernerdPatBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SupernerdPatScript
-; 0x19efa4
-
-SupernerdPatScript: ; 0x19efa4
+SupernerdPatScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19f41a
@@ -273,12 +143,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19efac
 
-CooltrainerMScript_0x19efac: ; 0x19efac
+CooltrainerMScript_0x19efac:
 	faceplayer
 	loadfont
-	checkevent $0558
+	checkevent EVENT_BEAT_COOLTRAINERM_KEVIN
 	iftrue UnknownScript_0x19efda
 	checkevent EVENT_CLEARED_NUGGET_BRIDGE
 	iftrue UnknownScript_0x19efc7
@@ -287,7 +156,7 @@
 	verbosegiveitem NUGGET, 1
 	iffalse UnknownScript_0x19efde
 	setevent EVENT_CLEARED_NUGGET_BRIDGE
-UnknownScript_0x19efc7: ; 0x19efc7
+UnknownScript_0x19efc7:
 	writetext UnknownText_0x19f49d
 	closetext
 	loadmovesprites
@@ -295,42 +164,35 @@
 	loadtrainer COOLTRAINERM, KEVIN
 	startbattle
 	returnafterbattle
-	setevent $0558
+	setevent EVENT_BEAT_COOLTRAINERM_KEVIN
 	loadfont
-UnknownScript_0x19efda: ; 0x19efda
+UnknownScript_0x19efda:
 	writetext UnknownText_0x19f520
 	closetext
-UnknownScript_0x19efde: ; 0x19efde
+UnknownScript_0x19efde:
 	loadmovesprites
 	end
-; 0x19efe0
 
-MapRoute25Signpost0Script: ; 0x19efe0
+MapRoute25Signpost0Script:
 	jumptext UnknownText_0x19f567
-; 0x19efe3
 
-ItemFragment_0x19efe3: ; 0x19efe3
+ItemFragment_0x19efe3:
 	db PROTEIN, 1
-; 0x19efe5
 
-MapRoute25SignpostItem1: ; 0x19efe5
-	dw $00f8
-	db POTION
+MapRoute25SignpostItem1:
+	dwb EVENT_ROUTE_25_HIDDEN_POTION, POTION
 	
-; 0x19efe8
 
-MovementData_0x19efe8: ; 0x19efe8
+MovementData_0x19efe8:
 	big_step_down
 	step_end
-; 0x19efea
 
-MovementData_0x19efea: ; 0x19efea
+MovementData_0x19efea:
 	big_step_down
 	big_step_down
 	step_end
-; 0x19efed
 
-MovementData_0x19efed: ; 0x19efed
+MovementData_0x19efed:
 	step_up
 	step_up
 	step_up
@@ -338,9 +200,8 @@
 	step_left
 	step_left
 	step_end
-; 0x19eff4
 
-MovementData_0x19eff4: ; 0x19eff4
+MovementData_0x19eff4:
 	step_up
 	step_up
 	step_left
@@ -347,21 +208,18 @@
 	step_left
 	step_left
 	step_end
-; 0x19effa
 
-MovementData_0x19effa: ; 0x19effa
+MovementData_0x19effa:
 	step_down
 	step_left
 	step_end
-; 0x19effd
 
-MovementData_0x19effd: ; 0x19effd
+MovementData_0x19effd:
 	step_up
 	step_left
 	step_end
-; 0x19f000
 
-MovementData_0x19f000: ; 0x19f000
+MovementData_0x19f000:
 	step_left
 	step_left
 	step_left
@@ -368,9 +226,8 @@
 	step_left
 	step_left
 	step_end
-; 0x19f006
 
-UnknownText_0x19f006: ; 0x19f006
+UnknownText_0x19f006:
 	text "MISTY: Aww! Why"
 	line "did you have to"
 
@@ -403,9 +260,8 @@
 	line "GYM LEADER in"
 	cont "CERULEAN."
 	done
-; 0x19f14d
 
-SchoolboyDudleySeenText: ; 0x19f14d
+SchoolboyDudleySeenText:
 	text "Beat the six of us"
 	line "trainers to win a"
 	cont "fabulous prize!"
@@ -413,106 +269,88 @@
 	para "Think you've got"
 	line "what it takes?"
 	done
-; 0x19f1a2
 
-SchoolboyDudleyBeatenText: ; 0x19f1a2
+SchoolboyDudleyBeatenText:
 	text "Whoo! Good stuff."
 	done
-; 0x19f1b5
 
-UnknownText_0x19f1b5: ; 0x19f1b5
+UnknownText_0x19f1b5:
 	text "I did my best."
 	line "I have no regrets."
 	done
-; 0x19f1d8
 
-LassEllenSeenText: ; 0x19f1d8
+LassEllenSeenText:
 	text "I'm second."
 	line "Now it's serious!"
 	done
-; 0x19f1f5
 
-LassEllenBeatenText: ; 0x19f1f5
+LassEllenBeatenText:
 	text "How could I lose?"
 	done
-; 0x19f208
 
-UnknownText_0x19f208: ; 0x19f208
+UnknownText_0x19f208:
 	text "I did my best."
 	line "I have no regrets."
 	done
-; 0x19f22b
 
-SchoolboyJoeSeenText: ; 0x19f22b
+SchoolboyJoeSeenText:
 	text "Here's No. 3!"
 	line "I won't be easy."
 	done
-; 0x19f249
 
-SchoolboyJoeBeatenText: ; 0x19f249
+SchoolboyJoeBeatenText:
 	text "Ow! Stomped flat!"
 	done
-; 0x19f25c
 
-UnknownText_0x19f25c: ; 0x19f25c
+UnknownText_0x19f25c:
 	text "I did my best."
 	line "I have no regrets."
 	done
-; 0x19f27f
 
-LassLauraSeenText: ; 0x19f27f
+LassLauraSeenText:
 	text "I'm No. 4!"
 	line "Getting tired?"
 	done
-; 0x19f299
 
-LassLauraBeatenText: ; 0x19f299
+LassLauraBeatenText:
 	text "I lost too…"
 	done
-; 0x19f2a6
 
-UnknownText_0x19f2a6: ; 0x19f2a6
+UnknownText_0x19f2a6:
 	text "I did my best."
 	line "I have no regrets."
 	done
-; 0x19f2c9
 
-CamperLloydSeenText: ; 0x19f2c9
+CamperLloydSeenText:
 	text "OK! I'm No. 5."
 	line "I'll stomp you!"
 	done
-; 0x19f2e7
 
-CamperLloydBeatenText: ; 0x19f2e7
+CamperLloydBeatenText:
 	text "Whoa! Too much."
 	done
-; 0x19f2f8
 
-UnknownText_0x19f2f8: ; 0x19f2f8
+UnknownText_0x19f2f8:
 	text "I did my best."
 	line "I have no regrets."
 	done
-; 0x19f31b
 
-LassShannonSeenText: ; 0x19f31b
+LassShannonSeenText:
 	text "I'm the last in"
 	line "line, but I tell"
 	cont "you, I'm tough!"
 	done
-; 0x19f34b
 
-LassShannonBeatenText: ; 0x19f34b
+LassShannonBeatenText:
 	text "You're kidding."
 	done
-; 0x19f35b
 
-UnknownText_0x19f35b: ; 0x19f35b
+UnknownText_0x19f35b:
 	text "I did my best."
 	line "I have no regrets."
 	done
-; 0x19f37e
 
-SupernerdPatSeenText: ; 0x19f37e
+SupernerdPatSeenText:
 	text "Mufufufu…"
 
 	para "I have nothing to"
@@ -525,21 +363,18 @@
 	para "were tired out by"
 	line "all the battles."
 	done
-; 0x19f401
 
-SupernerdPatBeatenText: ; 0x19f401
+SupernerdPatBeatenText:
 	text "Aren't you tired"
 	line "at all?"
 	done
-; 0x19f41a
 
-UnknownText_0x19f41a: ; 0x19f41a
+UnknownText_0x19f41a:
 	text "I'm sorry… I won't"
 	line "cheat anymore…"
 	done
-; 0x19f43b
 
-UnknownText_0x19f43b: ; 0x19f43b
+UnknownText_0x19f43b:
 	text "You took on one"
 	line "more battle than"
 
@@ -549,9 +384,8 @@
 	para "As promised, you"
 	line "win a prize."
 	done
-; 0x19f49d
 
-UnknownText_0x19f49d: ; 0x19f49d
+UnknownText_0x19f49d:
 	text "But after seeing"
 	line "how you battle, I"
 
@@ -561,15 +395,13 @@
 	para "How about it? Let"
 	line "me take you on."
 	done
-; 0x19f4fd
 
-UnknownText_0x19f4fd: ; 0x19f4fd
+UnknownText_0x19f4fd:
 	text "I've never had a"
 	line "battle this good!"
 	done
-; 0x19f520
 
-UnknownText_0x19f520: ; 0x19f520
+UnknownText_0x19f520:
 	text "That was a great"
 	line "battle!"
 
@@ -577,48 +409,44 @@
 	line "MON are truly out-"
 	cont "standing!"
 	done
-; 0x19f567
 
-UnknownText_0x19f567: ; 0x19f567
+UnknownText_0x19f567:
 	text "SEA COTTAGE"
 	line "BILL'S HOUSE"
 	done
-; 0x19f581
 
-UnknownText_0x19f581: ; 0x19f581
+UnknownText_0x19f581:
 	text "BILL'S HOUSE"
 	done
-; 0x19f58f
 
-Route25_MapEventHeader: ; 0x19f58f
+Route25_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $5, $2f, 1, GROUP_BILLS_HOUSE, MAP_BILLS_HOUSE
 
-	; xy triggers
+.XYTriggers:
 	db 2
 	xy_trigger 1, $6, $2a, $0, UnknownScript_0x19eea0, $0, $0
 	xy_trigger 1, $7, $2a, $0, UnknownScript_0x19eee0, $0, $0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 5, 45, $0, MapRoute25Signpost0Script
-	signpost 5, 4, $7, MapRoute25SignpostItem1
+	signpost 5, 45, SIGNPOST_READ, MapRoute25Signpost0Script
+	signpost 5, 4, SIGNPOST_ITEM, MapRoute25SignpostItem1
 
-	; people-events
+.PersonEvents:
 	db 11
-	person_event SPRITE_MISTY, 13, 50, $8, $0, 255, 255, $80, 0, ObjectEvent, $076e
-	person_event SPRITE_COOLTRAINER_M, 14, 50, $8, $0, 255, 255, $a0, 0, ObjectEvent, $076e
-	person_event SPRITE_YOUNGSTER, 12, 16, $6, $0, 255, 255, $92, 3, TrainerSchoolboyDudley, $ffff
-	person_event SPRITE_LASS, 15, 20, $7, $0, 255, 255, $92, 3, TrainerLassEllen, $ffff
-	person_event SPRITE_YOUNGSTER, 12, 25, $6, $0, 255, 255, $92, 1, TrainerSchoolboyJoe, $ffff
-	person_event SPRITE_LASS, 10, 26, $9, $0, 255, 255, $92, 3, TrainerLassLaura, $ffff
-	person_event SPRITE_YOUNGSTER, 8, 29, $6, $0, 255, 255, $a2, 2, TrainerCamperLloyd, $ffff
-	person_event SPRITE_LASS, 15, 32, $7, $0, 255, 255, $92, 1, TrainerLassShannon, $ffff
-	person_event SPRITE_SUPER_NERD, 11, 35, $6, $0, 255, 255, $b2, 1, TrainerSupernerdPat, $ffff
-	person_event SPRITE_COOLTRAINER_M, 12, 41, $8, $0, 255, 255, $80, 0, CooltrainerMScript_0x19efac, $ffff
-	person_event SPRITE_POKE_BALL, 8, 36, $1, $0, 255, 255, $1, 0, ItemFragment_0x19efe3, $078b
-; 0x19f643
+	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
--- a/maps/Route26.asm
+++ b/maps/Route26.asm
@@ -1,32 +1,14 @@
-Route26_MapScriptHeader: ; 0x1a4d1d
-	; trigger count
+Route26_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1a4d1f
 
-TrainerCooltrainermJake: ; 0x1a4d1f
-	; bit/flag number
-	dw $550
+TrainerCooltrainermJake:
+	trainer EVENT_BEAT_COOLTRAINERM_JAKE, COOLTRAINERM, JAKE, CooltrainermJakeSeenText, CooltrainermJakeBeatenText, $0000, CooltrainermJakeScript
 
-	; trainer group && trainer id
-	db COOLTRAINERM, JAKE
-
-	; text when seen
-	dw CooltrainermJakeSeenText
-
-	; text when trainer beaten
-	dw CooltrainermJakeBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainermJakeScript
-; 0x1a4d2b
-
-CooltrainermJakeScript: ; 0x1a4d2b
+CooltrainermJakeScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a4f08
@@ -33,151 +15,104 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a4d33
 
-TrainerCooltrainermGaven3: ; 0x1a4d33
-	; bit/flag number
-	dw $551
+TrainerCooltrainermGaven3:
+	trainer EVENT_BEAT_COOLTRAINERM_GAVEN, COOLTRAINERM, GAVEN3, CooltrainermGaven3SeenText, CooltrainermGaven3BeatenText, $0000, CooltrainermGaven3Script
 
-	; trainer group && trainer id
-	db COOLTRAINERM, GAVEN3
-
-	; text when seen
-	dw CooltrainermGaven3SeenText
-
-	; text when trainer beaten
-	dw CooltrainermGaven3BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainermGaven3Script
-; 0x1a4d3f
-
-CooltrainermGaven3Script: ; 0x1a4d3f
-	writecode $17, $b
+CooltrainermGaven3Script:
+	writecode VAR_CALLERID, PHONE_COOLTRAINERM_GAVEN
 	talkaftercancel
 	loadfont
-	checkflag $0067
+	checkflag ENGINE_GAVEN
 	iftrue UnknownScript_0x1a4d79
-	checkcellnum $b
+	checkcellnum PHONE_COOLTRAINERM_GAVEN
 	iftrue UnknownScript_0x1a4dcb
-	checkevent $026b
+	checkevent EVENT_GAVEN_ASKED_FOR_PHONE_NUMBER
 	iftrue UnknownScript_0x1a4d62
 	writetext UnknownText_0x1a4fe4
 	keeptextopen
-	setevent $026b
+	setevent EVENT_GAVEN_ASKED_FOR_PHONE_NUMBER
 	scall UnknownScript_0x1a4dbf
 	jump UnknownScript_0x1a4d65
-; 0x1a4d62
 
-UnknownScript_0x1a4d62: ; 0x1a4d62
+UnknownScript_0x1a4d62:
 	scall UnknownScript_0x1a4dc3
-UnknownScript_0x1a4d65: ; 0x1a4d65
-	askforphonenumber $b
+UnknownScript_0x1a4d65:
+	askforphonenumber PHONE_COOLTRAINERM_GAVEN
 	if_equal $1, UnknownScript_0x1a4dd3
 	if_equal $2, UnknownScript_0x1a4dcf
 	trainertotext COOLTRAINERM, GAVEN3, $0
 	scall UnknownScript_0x1a4dc7
 	jump UnknownScript_0x1a4dcb
-; 0x1a4d79
 
-UnknownScript_0x1a4d79: ; 0x1a4d79
+UnknownScript_0x1a4d79:
 	scall UnknownScript_0x1a4dd7
 	winlosstext CooltrainermGaven3BeatenText, $0000
-	copybytetovar wd9f5
-	if_equal $2, UnknownScript_0x1a4d90
-	if_equal $1, UnknownScript_0x1a4d96
-	if_equal $0, UnknownScript_0x1a4d9c
-UnknownScript_0x1a4d90: ; 0x1a4d90
+	copybytetovar wGavenFightCount
+	if_equal 2, .Fight2
+	if_equal 1, .Fight1
+	if_equal 0, .LoadFight0
+.Fight2
 	checkevent EVENT_RESTORED_POWER_TO_KANTO
-	iftrue UnknownScript_0x1a4db6
-UnknownScript_0x1a4d96: ; 0x1a4d96
+	iftrue .LoadFight2
+.Fight1
 	checkevent EVENT_BEAT_ELITE_FOUR
-	iftrue UnknownScript_0x1a4da9
-UnknownScript_0x1a4d9c: ; 0x1a4d9c
+	iftrue .LoadFight1
+.LoadFight0
 	loadtrainer COOLTRAINERM, GAVEN3
 	startbattle
 	returnafterbattle
-	loadvar wd9f5, $1
-	clearflag $0067
+	loadvar wGavenFightCount, 1
+	clearflag ENGINE_GAVEN
 	end
-; 0x1a4da9
 
-UnknownScript_0x1a4da9: ; 0x1a4da9
+.LoadFight1
 	loadtrainer COOLTRAINERM, GAVEN1
 	startbattle
 	returnafterbattle
-	loadvar wd9f5, $2
-	clearflag $0067
+	loadvar wGavenFightCount, 2
+	clearflag ENGINE_GAVEN
 	end
-; 0x1a4db6
 
-UnknownScript_0x1a4db6: ; 0x1a4db6
+.LoadFight2
 	loadtrainer COOLTRAINERM, GAVEN2
 	startbattle
 	returnafterbattle
-	clearflag $0067
+	clearflag ENGINE_GAVEN
 	end
-; 0x1a4dbf
 
-UnknownScript_0x1a4dbf: ; 0x1a4dbf
+UnknownScript_0x1a4dbf:
 	jumpstd asknumber1m
 	end
-; 0x1a4dc3
 
-UnknownScript_0x1a4dc3: ; 0x1a4dc3
+UnknownScript_0x1a4dc3:
 	jumpstd asknumber2m
 	end
-; 0x1a4dc7
 
-UnknownScript_0x1a4dc7: ; 0x1a4dc7
+UnknownScript_0x1a4dc7:
 	jumpstd registerednumberm
 	end
-; 0x1a4dcb
 
-UnknownScript_0x1a4dcb: ; 0x1a4dcb
+UnknownScript_0x1a4dcb:
 	jumpstd numberacceptedm
 	end
-; 0x1a4dcf
 
-UnknownScript_0x1a4dcf: ; 0x1a4dcf
+UnknownScript_0x1a4dcf:
 	jumpstd numberdeclinedm
 	end
-; 0x1a4dd3
 
-UnknownScript_0x1a4dd3: ; 0x1a4dd3
+UnknownScript_0x1a4dd3:
 	jumpstd phonefullm
 	end
-; 0x1a4dd7
 
-UnknownScript_0x1a4dd7: ; 0x1a4dd7
+UnknownScript_0x1a4dd7:
 	jumpstd rematchm
 	end
-; 0x1a4ddb
 
-TrainerCooltrainerfJoyce: ; 0x1a4ddb
-	; bit/flag number
-	dw $562
+TrainerCooltrainerfJoyce:
+	trainer EVENT_BEAT_COOLTRAINERF_JOYCE, COOLTRAINERF, JOYCE, CooltrainerfJoyceSeenText, CooltrainerfJoyceBeatenText, $0000, CooltrainerfJoyceScript
 
-	; trainer group && trainer id
-	db COOLTRAINERF, JOYCE
-
-	; text when seen
-	dw CooltrainerfJoyceSeenText
-
-	; text when trainer beaten
-	dw CooltrainerfJoyceBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainerfJoyceScript
-; 0x1a4de7
-
-CooltrainerfJoyceScript: ; 0x1a4de7
+CooltrainerfJoyceScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a50d7
@@ -184,151 +119,104 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a4def
 
-TrainerCooltrainerfBeth1: ; 0x1a4def
-	; bit/flag number
-	dw $563
+TrainerCooltrainerfBeth1:
+	trainer EVENT_BEAT_COOLTRAINERF_BETH, COOLTRAINERF, BETH1, CooltrainerfBeth1SeenText, CooltrainerfBeth1BeatenText, $0000, CooltrainerfBeth1Script
 
-	; trainer group && trainer id
-	db COOLTRAINERF, BETH1
-
-	; text when seen
-	dw CooltrainerfBeth1SeenText
-
-	; text when trainer beaten
-	dw CooltrainerfBeth1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainerfBeth1Script
-; 0x1a4dfb
-
-CooltrainerfBeth1Script: ; 0x1a4dfb
-	writecode $17, $c
+CooltrainerfBeth1Script:
+	writecode VAR_CALLERID, PHONE_COOLTRAINERF_BETH
 	talkaftercancel
 	loadfont
-	checkflag $0068
+	checkflag ENGINE_BETH
 	iftrue UnknownScript_0x1a4e35
-	checkcellnum $c
+	checkcellnum PHONE_COOLTRAINERF_BETH
 	iftrue UnknownScript_0x1a4e87
-	checkevent $026d
+	checkevent EVENT_BETH_ASKED_FOR_PHONE_NUMBER
 	iftrue UnknownScript_0x1a4e1e
 	writetext UnknownText_0x1a51d9
 	keeptextopen
-	setevent $026d
+	setevent EVENT_BETH_ASKED_FOR_PHONE_NUMBER
 	scall UnknownScript_0x1a4e7b
 	jump UnknownScript_0x1a4e21
-; 0x1a4e1e
 
-UnknownScript_0x1a4e1e: ; 0x1a4e1e
+UnknownScript_0x1a4e1e:
 	scall UnknownScript_0x1a4e7f
-UnknownScript_0x1a4e21: ; 0x1a4e21
-	askforphonenumber $c
+UnknownScript_0x1a4e21:
+	askforphonenumber PHONE_COOLTRAINERF_BETH
 	if_equal $1, UnknownScript_0x1a4e8f
 	if_equal $2, UnknownScript_0x1a4e8b
 	trainertotext COOLTRAINERF, BETH1, $0
 	scall UnknownScript_0x1a4e83
 	jump UnknownScript_0x1a4e87
-; 0x1a4e35
 
-UnknownScript_0x1a4e35: ; 0x1a4e35
+UnknownScript_0x1a4e35:
 	scall UnknownScript_0x1a4e93
 	winlosstext CooltrainerfBeth1BeatenText, $0000
-	copybytetovar wd9f6
-	if_equal $2, UnknownScript_0x1a4e4c
-	if_equal $1, UnknownScript_0x1a4e52
-	if_equal $0, UnknownScript_0x1a4e58
-UnknownScript_0x1a4e4c: ; 0x1a4e4c
+	copybytetovar wBethFightCount
+	if_equal 2, .Fight2
+	if_equal 1, .Fight1
+	if_equal 0, .LoadFight0
+.Fight2
 	checkevent EVENT_RESTORED_POWER_TO_KANTO
-	iftrue UnknownScript_0x1a4e72
-UnknownScript_0x1a4e52: ; 0x1a4e52
+	iftrue .LoadFight2
+.Fight1
 	checkevent EVENT_BEAT_ELITE_FOUR
-	iftrue UnknownScript_0x1a4e65
-UnknownScript_0x1a4e58: ; 0x1a4e58
+	iftrue .LoadFight1
+.LoadFight0
 	loadtrainer COOLTRAINERF, BETH1
 	startbattle
 	returnafterbattle
-	loadvar wd9f6, $1
-	clearflag $0068
+	loadvar wBethFightCount, 1
+	clearflag ENGINE_BETH
 	end
-; 0x1a4e65
 
-UnknownScript_0x1a4e65: ; 0x1a4e65
+.LoadFight1
 	loadtrainer COOLTRAINERF, BETH2
 	startbattle
 	returnafterbattle
-	loadvar wd9f6, $2
-	clearflag $0068
+	loadvar wBethFightCount, 2
+	clearflag ENGINE_BETH
 	end
-; 0x1a4e72
 
-UnknownScript_0x1a4e72: ; 0x1a4e72
+.LoadFight2
 	loadtrainer COOLTRAINERF, BETH3
 	startbattle
 	returnafterbattle
-	clearflag $0068
+	clearflag ENGINE_BETH
 	end
-; 0x1a4e7b
 
-UnknownScript_0x1a4e7b: ; 0x1a4e7b
+UnknownScript_0x1a4e7b:
 	jumpstd asknumber1f
 	end
-; 0x1a4e7f
 
-UnknownScript_0x1a4e7f: ; 0x1a4e7f
+UnknownScript_0x1a4e7f:
 	jumpstd asknumber2f
 	end
-; 0x1a4e83
 
-UnknownScript_0x1a4e83: ; 0x1a4e83
+UnknownScript_0x1a4e83:
 	jumpstd registerednumberf
 	end
-; 0x1a4e87
 
-UnknownScript_0x1a4e87: ; 0x1a4e87
+UnknownScript_0x1a4e87:
 	jumpstd numberacceptedf
 	end
-; 0x1a4e8b
 
-UnknownScript_0x1a4e8b: ; 0x1a4e8b
+UnknownScript_0x1a4e8b:
 	jumpstd numberdeclinedf
 	end
-; 0x1a4e8f
 
-UnknownScript_0x1a4e8f: ; 0x1a4e8f
+UnknownScript_0x1a4e8f:
 	jumpstd phonefullf
 	end
-; 0x1a4e93
 
-UnknownScript_0x1a4e93: ; 0x1a4e93
+UnknownScript_0x1a4e93:
 	jumpstd rematchf
 	end
-; 0x1a4e97
 
-TrainerPsychicRichard: ; 0x1a4e97
-	; bit/flag number
-	dw $442
+TrainerPsychicRichard:
+	trainer EVENT_BEAT_PSYCHIC_RICHARD, PSYCHIC_T, RICHARD, PsychicRichardSeenText, PsychicRichardBeatenText, $0000, PsychicRichardScript
 
-	; trainer group && trainer id
-	db PSYCHIC_T, RICHARD
-
-	; text when seen
-	dw PsychicRichardSeenText
-
-	; text when trainer beaten
-	dw PsychicRichardBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PsychicRichardScript
-; 0x1a4ea3
-
-PsychicRichardScript: ; 0x1a4ea3
+PsychicRichardScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a5278
@@ -335,29 +223,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a4eab
 
-TrainerFisherScott: ; 0x1a4eab
-	; bit/flag number
-	dw $462
+TrainerFisherScott:
+	trainer EVENT_BEAT_FISHER_SCOTT, FISHER, SCOTT, FisherScottSeenText, FisherScottBeatenText, $0000, FisherScottScript
 
-	; trainer group && trainer id
-	db FISHER, SCOTT
-
-	; text when seen
-	dw FisherScottSeenText
-
-	; text when trainer beaten
-	dw FisherScottBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw FisherScottScript
-; 0x1a4eb7
-
-FisherScottScript: ; 0x1a4eb7
+FisherScottScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a5326
@@ -364,21 +234,17 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a4ebf
 
-MapRoute26Signpost0Script: ; 0x1a4ebf
+MapRoute26Signpost0Script:
 	jumptext UnknownText_0x1a5364
-; 0x1a4ec2
 
-FruitTreeScript_0x1a4ec2: ; 0x1a4ec2
+FruitTreeScript_0x1a4ec2:
 	fruittree $e
-; 0x1a4ec4
 
-ItemFragment_0x1a4ec4: ; 0x1a4ec4
+ItemFragment_0x1a4ec4:
 	db MAX_ELIXER, 1
-; 0x1a4ec6
 
-CooltrainermJakeSeenText: ; 0x1a4ec6
+CooltrainermJakeSeenText:
 	text "I'm making my"
 	line "final preparations"
 
@@ -385,14 +251,12 @@
 	para "for the #MON"
 	line "LEAGUE."
 	done
-; 0x1a4efc
 
-CooltrainermJakeBeatenText: ; 0x1a4efc
+CooltrainermJakeBeatenText:
 	text "I blew it!"
 	done
-; 0x1a4f08
 
-UnknownText_0x1a4f08: ; 0x1a4f08
+UnknownText_0x1a4f08:
 	text "It's going to be"
 	line "tough to win at"
 	cont "the LEAGUE."
@@ -406,22 +270,19 @@
 	para "FOUR are tougher"
 	line "than GYM LEADERS."
 	done
-; 0x1a4f97
 
-CooltrainermGaven3SeenText: ; 0x1a4f97
+CooltrainermGaven3SeenText:
 	text "By experiencing"
 	line "tough battles, you"
 	cont "gain power."
 	done
-; 0x1a4fc7
 
-CooltrainermGaven3BeatenText: ; 0x1a4fc7
+CooltrainermGaven3BeatenText:
 	text "Gaah! Life is even"
 	line "tougher!"
 	done
-; 0x1a4fe4
 
-UnknownText_0x1a4fe4: ; 0x1a4fe4
+UnknownText_0x1a4fe4:
 	text "To get to #MON"
 	line "LEAGUE, you have"
 
@@ -434,9 +295,8 @@
 	para "Practically nobody"
 	line "goes there!"
 	done
-; 0x1a505c
 
-CooltrainerfJoyceSeenText: ; 0x1a505c
+CooltrainerfJoyceSeenText:
 	text "Since you've come"
 	line "this far, you must"
 	cont "be good."
@@ -445,15 +305,13 @@
 	line "this battle every-"
 	cont "thing I've got!"
 	done
-; 0x1a50bd
 
-CooltrainerfJoyceBeatenText: ; 0x1a50bd
+CooltrainerfJoyceBeatenText:
 	text "No! I don't"
 	line "believe this!"
 	done
-; 0x1a50d7
 
-UnknownText_0x1a50d7: ; 0x1a50d7
+UnknownText_0x1a50d7:
 	text "I've defeated"
 	line "eight GYM LEADERS,"
 
@@ -463,9 +321,8 @@
 	para "I'll have to try"
 	line "harder next time."
 	done
-; 0x1a5136
 
-CooltrainerfBeth1SeenText: ; 0x1a5136
+CooltrainerfBeth1SeenText:
 	text "I lost to a train-"
 	line "er named <RIVAL>."
 
@@ -479,22 +336,19 @@
 	para "I felt sorry for"
 	line "his #MON."
 	done
-; 0x1a51bf
 
-CooltrainerfBeth1BeatenText: ; 0x1a51bf
+CooltrainerfBeth1BeatenText:
 	text "#MON aren't"
 	line "tools of war."
 	done
-; 0x1a51d9
 
-UnknownText_0x1a51d9: ; 0x1a51d9
+UnknownText_0x1a51d9:
 	text "#MON are in-"
 	line "valuable, lifelong"
 	cont "partners."
 	done
-; 0x1a5204
 
-PsychicRichardSeenText: ; 0x1a5204
+PsychicRichardSeenText:
 	text "Wow, look at all"
 	line "those BADGES!"
 	cont "I'm impressed."
@@ -505,14 +359,12 @@
 	para "collecting them,"
 	line "right?"
 	done
-; 0x1a526a
 
-PsychicRichardBeatenText: ; 0x1a526a
+PsychicRichardBeatenText:
 	text "Good battle!"
 	done
-; 0x1a5278
 
-UnknownText_0x1a5278: ; 0x1a5278
+UnknownText_0x1a5278:
 	text "People and #MON"
 	line "grow from their"
 	cont "experiences."
@@ -520,9 +372,8 @@
 	para "Don't get lazy and"
 	line "complacent."
 	done
-; 0x1a52c4
 
-FisherScottSeenText: ; 0x1a52c4
+FisherScottSeenText:
 	text "I'm feeling great"
 	line "today!"
 
@@ -530,15 +381,13 @@
 	line "could boot even"
 	cont "the LEAGUE CHAMP!"
 	done
-; 0x1a530d
 
-FisherScottBeatenText: ; 0x1a530d
+FisherScottBeatenText:
 	text "No! Not in this"
 	line "battle!"
 	done
-; 0x1a5326
 
-UnknownText_0x1a5326: ; 0x1a5326
+UnknownText_0x1a5326:
 	text "Just like in fish-"
 	line "ing, it's all over"
 
@@ -545,41 +394,38 @@
 	para "in #MON if you"
 	line "give up."
 	done
-; 0x1a5364
 
-UnknownText_0x1a5364: ; 0x1a5364
+UnknownText_0x1a5364:
 	text "ROUTE 26"
 
 	para "#MON LEAGUE"
 	line "RECEPTION GATE"
 	done
-; 0x1a5389
 
-Route26_MapEventHeader: ; 0x1a5389
+Route26_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 6, 8, $0, MapRoute26Signpost0Script
+	signpost 6, 8, SIGNPOST_READ, MapRoute26Signpost0Script
 
-	; people-events
+.PersonEvents:
 	db 8
-	person_event SPRITE_COOLTRAINER_M, 28, 18, $8, $0, 255, 255, $82, 2, TrainerCooltrainermJake, $ffff
-	person_event SPRITE_COOLTRAINER_M, 42, 13, $8, $0, 255, 255, $82, 3, TrainerCooltrainermGaven3, $ffff
-	person_event SPRITE_COOLTRAINER_F, 60, 14, $a, $0, 255, 255, $82, 3, TrainerCooltrainerfJoyce, $ffff
-	person_event SPRITE_COOLTRAINER_F, 12, 9, $9, $0, 255, 255, $82, 4, TrainerCooltrainerfBeth1, $ffff
-	person_event SPRITE_YOUNGSTER, 83, 17, $9, $0, 255, 255, $92, 2, TrainerPsychicRichard, $ffff
-	person_event SPRITE_FISHER, 96, 14, $6, $0, 255, 255, $a2, 3, TrainerFisherScott, $ffff
-	person_event SPRITE_FRUIT_TREE, 58, 18, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x1a4ec2, $ffff
-	person_event SPRITE_POKE_BALL, 19, 13, $1, $0, 255, 255, $1, 0, ItemFragment_0x1a4ec4, $06aa
-; 0x1a540b
+	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
--- a/maps/Route26DayofWeekSiblingsHouse.asm
+++ b/maps/Route26DayofWeekSiblingsHouse.asm
@@ -1,12 +1,11 @@
-Route26DayofWeekSiblingsHouse_MapScriptHeader: ; 0x7b1e2
-	; trigger count
+Route26DayofWeekSiblingsHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x7b1e4
 
-PokedexScript_0x7b1e4: ; 0x7b1e4
+PokedexScript_0x7b1e4:
 	loadfont
 	writetext UnknownText_0x7b1f9
 	yesorno
@@ -16,20 +15,18 @@
 	iffalse UnknownText_0x7b1f7
 	writetext UnknownText_0x7b2b9
 	closetext
-UnknownText_0x7b1f7: ; 0x7b1f7
+UnknownText_0x7b1f7:
 	loadmovesprites
 	end
-; 0x7b1f9
 
-UnknownText_0x7b1f9: ; 0x7b1f9
+UnknownText_0x7b1f9:
 	text "There's something"
 	line "written here."
 
 	para "Read it?"
 	done
-; 0x7b222
 
-UnknownText_0x7b222: ; 0x7b222
+UnknownText_0x7b222:
 	text "To my brothers and"
 	line "sisters:"
 
@@ -46,9 +43,8 @@
 
 	para "Keep reading?"
 	done
-; 0x7b2b9
 
-UnknownText_0x7b2b9: ; 0x7b2b9
+UnknownText_0x7b2b9:
 	text "Monday, MONICA"
 	line "ROUTE 40"
 
@@ -70,24 +66,22 @@
 	para "Sunday, SUNNY"
 	line "ROUTE 37"
 	done
-; 0x7b375
 
-Route26DayofWeekSiblingsHouse_MapEventHeader: ; 0x7b375
+Route26DayofWeekSiblingsHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_POKEDEX, 7, 7, $1, $0, 255, 255, $0, 0, PokedexScript_0x7b1e4, $ffff
-; 0x7b392
+	person_event SPRITE_POKEDEX, 7, 7, OW_DOWN | $1, $0, -1, -1, $0, 0, PokedexScript_0x7b1e4, -1
--- a/maps/Route26HealSpeechHouse.asm
+++ b/maps/Route26HealSpeechHouse.asm
@@ -1,24 +1,23 @@
-Route26HealSpeechHouse_MapScriptHeader: ; 0x7b123
-	; trigger count
+Route26HealSpeechHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x7b125
 
-TeacherScript_0x7b125: ; 0x7b125
+TeacherScript_0x7b125:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x7b14d
 	closetext
 	loadmovesprites
-	special Function8c0b6
-	special Functiond91
-	special Function1060a2
+	special Special_FadeBlackQuickly
+	special Special_ReloadSpritesNoPalettes
+	special Mobile_HealParty
 	playmusic MUSIC_HEAL
 	special HealParty
 	pause 60
-	special Function8c0ab
+	special Special_FadeInQuickly
 	special RestartMapMusic
 	loadfont
 	writetext UnknownText_0x7b18b
@@ -25,13 +24,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x7b14a
 
-Route26HealHouseBookshelf: ; 0x7b14a
+Route26HealHouseBookshelf:
 	jumpstd picturebookshelf
-; 0x7b14d
 
-UnknownText_0x7b14d: ; 0x7b14d
+UnknownText_0x7b14d:
 	text "Your #MON look"
 	line "a little tired."
 
@@ -38,9 +35,8 @@
 	para "You should rest"
 	line "them a while."
 	done
-; 0x7b18b
 
-UnknownText_0x7b18b: ; 0x7b18b
+UnknownText_0x7b18b:
 	text "There!"
 
 	para "Your #MON are"
@@ -48,25 +44,24 @@
 
 	para "Keep at it!"
 	done
-; 0x7b1bb
 
-Route26HealSpeechHouse_MapEventHeader: ; 0x7b1bb
+Route26HealSpeechHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 0, $0, Route26HealHouseBookshelf
-	signpost 1, 1, $0, Route26HealHouseBookshelf
+	signpost 1, 0, SIGNPOST_READ, Route26HealHouseBookshelf
+	signpost 1, 1, SIGNPOST_READ, Route26HealHouseBookshelf
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_TEACHER, 7, 6, $6, $0, 255, 255, $90, 0, TeacherScript_0x7b125, $ffff
+	person_event SPRITE_TEACHER, 7, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, TeacherScript_0x7b125, -1
--- a/maps/Route27.asm
+++ b/maps/Route27.asm
@@ -1,5 +1,5 @@
-Route27_MapScriptHeader: ; 0x1a0867
-	; trigger count
+Route27_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,30 +6,26 @@
 	dw UnknownScript_0x1a0871, $0000
 	dw UnknownScript_0x1a0872, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1a0871
 
-UnknownScript_0x1a0871: ; 0x1a0871
+UnknownScript_0x1a0871:
 	end
-; 0x1a0872
 
-UnknownScript_0x1a0872: ; 0x1a0872
+UnknownScript_0x1a0872:
 	end
-; 0x1a0873
 
-UnknownScript_0x1a0873: ; 0x1a0873
+UnknownScript_0x1a0873:
 	spriteface $a, LEFT
-	showemote $0, $a, 15
+	showemote EMOTE_SHOCK, $a, 15
 	applymovement $a, MovementData_0x1a0a66
 	jump UnknownScript_0x1a088c
-; 0x1a0881
 
-UnknownScript_0x1a0881: ; 0x1a0881
+UnknownScript_0x1a0881:
 	spriteface $a, LEFT
-	showemote $0, $a, 15
+	showemote EMOTE_SHOCK, $a, 15
 	applymovement $a, MovementData_0x1a0a69
-UnknownScript_0x1a088c: ; 0x1a088c
+UnknownScript_0x1a088c:
 	spriteface $0, RIGHT
 	loadfont
 	writetext UnknownText_0x1a0a6b
@@ -39,33 +35,14 @@
 	loadmovesprites
 	dotrigger $1
 	end
-; 0x1a089c
 
-FisherScript_0x1a089c: ; 0x1a089c
+FisherScript_0x1a089c:
 	jumptextfaceplayer UnknownText_0x1a0a71
-; 0x1a089f
 
-TrainerPsychicGilbert: ; 0x1a089f
-	; bit/flag number
-	dw $443
+TrainerPsychicGilbert:
+	trainer EVENT_BEAT_PSYCHIC_GILBERT, PSYCHIC_T, GILBERT, PsychicGilbertSeenText, PsychicGilbertBeatenText, $0000, PsychicGilbertScript
 
-	; trainer group && trainer id
-	db PSYCHIC_T, GILBERT
-
-	; text when seen
-	dw PsychicGilbertSeenText
-
-	; text when trainer beaten
-	dw PsychicGilbertBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PsychicGilbertScript
-; 0x1a08ab
-
-PsychicGilbertScript: ; 0x1a08ab
+PsychicGilbertScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a0dd2
@@ -72,175 +49,124 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a08b3
 
-TrainerBird_keeperJose2: ; 0x1a08b3
-	; bit/flag number
-	dw $408
+TrainerBird_keeperJose2:
+	trainer EVENT_BEAT_BIRD_KEEPER_JOSE2, BIRD_KEEPER, JOSE2, Bird_keeperJose2SeenText, Bird_keeperJose2BeatenText, $0000, Bird_keeperJose2Script
 
-	; trainer group && trainer id
-	db BIRD_KEEPER, JOSE2
-
-	; text when seen
-	dw Bird_keeperJose2SeenText
-
-	; text when trainer beaten
-	dw Bird_keeperJose2BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Bird_keeperJose2Script
-; 0x1a08bf
-
-Bird_keeperJose2Script: ; 0x1a08bf
-	writecode $17, $d
+Bird_keeperJose2Script:
+	writecode VAR_CALLERID, PHONE_BIRDKEEPER_JOSE
 	talkaftercancel
 	loadfont
-	checkflag $0069
+	checkflag ENGINE_JOSE
 	iftrue UnknownScript_0x1a08ff
-	checkflag $007e
+	checkflag ENGINE_JOSE_HAS_STAR_PIECE
 	iftrue UnknownScript_0x1a0945
-	checkcellnum $d
+	checkcellnum PHONE_BIRDKEEPER_JOSE
 	iftrue UnknownScript_0x1a0963
-	checkevent $026f
+	checkevent EVENT_JOSE_ASKED_FOR_PHONE_NUMBER
 	iftrue UnknownScript_0x1a08e8
 	writetext UnknownText_0x1a0e42
 	keeptextopen
-	setevent $026f
+	setevent EVENT_JOSE_ASKED_FOR_PHONE_NUMBER
 	scall UnknownScript_0x1a0957
 	jump UnknownScript_0x1a08eb
-; 0x1a08e8
 
-UnknownScript_0x1a08e8: ; 0x1a08e8
+UnknownScript_0x1a08e8:
 	scall UnknownScript_0x1a095b
-UnknownScript_0x1a08eb: ; 0x1a08eb
-	askforphonenumber $d
+UnknownScript_0x1a08eb:
+	askforphonenumber PHONE_BIRDKEEPER_JOSE
 	if_equal $1, UnknownScript_0x1a096b
 	if_equal $2, UnknownScript_0x1a0967
 	trainertotext BIRD_KEEPER, JOSE2, $0
 	scall UnknownScript_0x1a095f
 	jump UnknownScript_0x1a0963
-; 0x1a08ff
 
-UnknownScript_0x1a08ff: ; 0x1a08ff
+UnknownScript_0x1a08ff:
 	scall UnknownScript_0x1a096f
 	winlosstext Bird_keeperJose2BeatenText, $0000
-	copybytetovar wd9f7
-	if_equal $2, UnknownScript_0x1a0916
-	if_equal $1, UnknownScript_0x1a091c
-	if_equal $0, UnknownScript_0x1a0922
-UnknownScript_0x1a0916: ; 0x1a0916
+	copybytetovar wJoseFightCount
+	if_equal 2, .Fight2
+	if_equal 1, .Fight1
+	if_equal 0, .LoadFight0
+.Fight2
 	checkevent EVENT_RESTORED_POWER_TO_KANTO
-	iftrue UnknownScript_0x1a093c
-UnknownScript_0x1a091c: ; 0x1a091c
+	iftrue .LoadFight2
+.Fight1
 	checkevent EVENT_BEAT_ELITE_FOUR
-	iftrue UnknownScript_0x1a092f
-UnknownScript_0x1a0922: ; 0x1a0922
+	iftrue .LoadFight1
+.LoadFight0
 	loadtrainer BIRD_KEEPER, JOSE2
 	startbattle
 	returnafterbattle
-	loadvar wd9f7, $1
-	clearflag $0069
+	loadvar wJoseFightCount, 1
+	clearflag ENGINE_JOSE
 	end
-; 0x1a092f
 
-UnknownScript_0x1a092f: ; 0x1a092f
+.LoadFight1
 	loadtrainer BIRD_KEEPER, JOSE1
 	startbattle
 	returnafterbattle
-	loadvar wd9f7, $2
-	clearflag $0069
+	loadvar wJoseFightCount, 2
+	clearflag ENGINE_JOSE
 	end
-; 0x1a093c
 
-UnknownScript_0x1a093c: ; 0x1a093c
+.LoadFight2
 	loadtrainer BIRD_KEEPER, JOSE3
 	startbattle
 	returnafterbattle
-	clearflag $0069
+	clearflag ENGINE_JOSE
 	end
-; 0x1a0945
 
-UnknownScript_0x1a0945: ; 0x1a0945
+UnknownScript_0x1a0945:
 	scall UnknownScript_0x1a0973
 	verbosegiveitem STAR_PIECE, 1
 	iffalse UnknownScript_0x1a0954
-	clearflag $007e
+	clearflag ENGINE_JOSE_HAS_STAR_PIECE
 	jump UnknownScript_0x1a0963
-; 0x1a0954
 
-UnknownScript_0x1a0954: ; 0x1a0954
+UnknownScript_0x1a0954:
 	jump UnknownScript_0x1a0977
-; 0x1a0957
 
-UnknownScript_0x1a0957: ; 0x1a0957
+UnknownScript_0x1a0957:
 	jumpstd asknumber1m
 	end
-; 0x1a095b
 
-UnknownScript_0x1a095b: ; 0x1a095b
+UnknownScript_0x1a095b:
 	jumpstd asknumber2m
 	end
-; 0x1a095f
 
-UnknownScript_0x1a095f: ; 0x1a095f
+UnknownScript_0x1a095f:
 	jumpstd registerednumberm
 	end
-; 0x1a0963
 
-UnknownScript_0x1a0963: ; 0x1a0963
+UnknownScript_0x1a0963:
 	jumpstd numberacceptedm
 	end
-; 0x1a0967
 
-UnknownScript_0x1a0967: ; 0x1a0967
+UnknownScript_0x1a0967:
 	jumpstd numberdeclinedm
 	end
-; 0x1a096b
 
-UnknownScript_0x1a096b: ; 0x1a096b
+UnknownScript_0x1a096b:
 	jumpstd phonefullm
 	end
-; 0x1a096f
 
-UnknownScript_0x1a096f: ; 0x1a096f
+UnknownScript_0x1a096f:
 	jumpstd rematchm
 	end
-; 0x1a0973
 
-UnknownScript_0x1a0973: ; 0x1a0973
+UnknownScript_0x1a0973:
 	jumpstd giftm
 	end
-; 0x1a0977
 
-UnknownScript_0x1a0977: ; 0x1a0977
+UnknownScript_0x1a0977:
 	jumpstd packfullm
 	end
-; 0x1a097b
 
-TrainerCooltrainermBlake: ; 0x1a097b
-	; bit/flag number
-	dw $552
+TrainerCooltrainermBlake:
+	trainer EVENT_BEAT_COOLTRAINERM_BLAKE, COOLTRAINERM, BLAKE, CooltrainermBlakeSeenText, CooltrainermBlakeBeatenText, $0000, CooltrainermBlakeScript
 
-	; trainer group && trainer id
-	db COOLTRAINERM, BLAKE
-
-	; text when seen
-	dw CooltrainermBlakeSeenText
-
-	; text when trainer beaten
-	dw CooltrainermBlakeBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainermBlakeScript
-; 0x1a0987
-
-CooltrainermBlakeScript: ; 0x1a0987
+CooltrainermBlakeScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a0b0b
@@ -247,29 +173,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a098f
 
-TrainerCooltrainermBrian: ; 0x1a098f
-	; bit/flag number
-	dw $553
+TrainerCooltrainermBrian:
+	trainer EVENT_BEAT_COOLTRAINERM_BRIAN, COOLTRAINERM, BRIAN, CooltrainermBrianSeenText, CooltrainermBrianBeatenText, $0000, CooltrainermBrianScript
 
-	; trainer group && trainer id
-	db COOLTRAINERM, BRIAN
-
-	; text when seen
-	dw CooltrainermBrianSeenText
-
-	; text when trainer beaten
-	dw CooltrainermBrianBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainermBrianScript
-; 0x1a099b
-
-CooltrainermBrianScript: ; 0x1a099b
+CooltrainermBrianScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a0bac
@@ -276,151 +184,104 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a09a3
 
-TrainerCooltrainerfReena1: ; 0x1a09a3
-	; bit/flag number
-	dw $564
+TrainerCooltrainerfReena:
+	trainer EVENT_BEAT_COOLTRAINERF_REENA, COOLTRAINERF, REENA1, CooltrainerfReena1SeenText, CooltrainerfReena1BeatenText, $0000, CooltrainerfReena1Script
 
-	; trainer group && trainer id
-	db COOLTRAINERF, REENA1
-
-	; text when seen
-	dw CooltrainerfReena1SeenText
-
-	; text when trainer beaten
-	dw CooltrainerfReena1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainerfReena1Script
-; 0x1a09af
-
-CooltrainerfReena1Script: ; 0x1a09af
-	writecode $17, $e
+CooltrainerfReena1Script:
+	writecode VAR_CALLERID, PHONE_COOLTRAINERF_REENA
 	talkaftercancel
 	loadfont
-	checkflag $006a
+	checkflag ENGINE_REENA
 	iftrue UnknownScript_0x1a09e9
-	checkcellnum $e
+	checkcellnum PHONE_COOLTRAINERF_REENA
 	iftrue UnknownScript_0x1a0a3b
-	checkevent $0271
+	checkevent EVENT_REENA_ASKED_FOR_PHONE_NUMBER
 	iftrue UnknownScript_0x1a09d2
 	writetext UnknownText_0x1a0c35
 	keeptextopen
-	setevent $0271
+	setevent EVENT_REENA_ASKED_FOR_PHONE_NUMBER
 	scall UnknownScript_0x1a0a2f
 	jump UnknownScript_0x1a09d5
-; 0x1a09d2
 
-UnknownScript_0x1a09d2: ; 0x1a09d2
+UnknownScript_0x1a09d2:
 	scall UnknownScript_0x1a0a33
-UnknownScript_0x1a09d5: ; 0x1a09d5
-	askforphonenumber $e
+UnknownScript_0x1a09d5:
+	askforphonenumber PHONE_COOLTRAINERF_REENA
 	if_equal $1, UnknownScript_0x1a0a43
 	if_equal $2, UnknownScript_0x1a0a3f
 	trainertotext COOLTRAINERF, REENA1, $0
 	scall UnknownScript_0x1a0a37
 	jump UnknownScript_0x1a0a3b
-; 0x1a09e9
 
-UnknownScript_0x1a09e9: ; 0x1a09e9
+UnknownScript_0x1a09e9:
 	scall UnknownScript_0x1a0a47
 	winlosstext CooltrainerfReena1BeatenText, $0000
-	copybytetovar wd9f8
-	if_equal $2, UnknownScript_0x1a0a00
-	if_equal $1, UnknownScript_0x1a0a06
-	if_equal $0, UnknownScript_0x1a0a0c
-UnknownScript_0x1a0a00: ; 0x1a0a00
+	copybytetovar wReenaFightCount
+	if_equal 2, .Fight2
+	if_equal 1, .Fight1
+	if_equal 0, .LoadFight0
+.Fight2
 	checkevent EVENT_RESTORED_POWER_TO_KANTO
-	iftrue UnknownScript_0x1a0a26
-UnknownScript_0x1a0a06: ; 0x1a0a06
+	iftrue .LoadFight2
+.Fight1
 	checkevent EVENT_BEAT_ELITE_FOUR
-	iftrue UnknownScript_0x1a0a19
-UnknownScript_0x1a0a0c: ; 0x1a0a0c
+	iftrue .LoadFight1
+.LoadFight0
 	loadtrainer COOLTRAINERF, REENA1
 	startbattle
 	returnafterbattle
-	loadvar wd9f8, $1
-	clearflag $006a
+	loadvar wReenaFightCount, 1
+	clearflag ENGINE_REENA
 	end
-; 0x1a0a19
 
-UnknownScript_0x1a0a19: ; 0x1a0a19
+.LoadFight1
 	loadtrainer COOLTRAINERF, REENA2
 	startbattle
 	returnafterbattle
-	loadvar wd9f8, $2
-	clearflag $006a
+	loadvar wReenaFightCount, 2
+	clearflag ENGINE_REENA
 	end
-; 0x1a0a26
 
-UnknownScript_0x1a0a26: ; 0x1a0a26
+.LoadFight2
 	loadtrainer COOLTRAINERF, REENA3
 	startbattle
 	returnafterbattle
-	clearflag $006a
+	clearflag ENGINE_REENA
 	end
-; 0x1a0a2f
 
-UnknownScript_0x1a0a2f: ; 0x1a0a2f
+UnknownScript_0x1a0a2f:
 	jumpstd asknumber1f
 	end
-; 0x1a0a33
 
-UnknownScript_0x1a0a33: ; 0x1a0a33
+UnknownScript_0x1a0a33:
 	jumpstd asknumber2f
 	end
-; 0x1a0a37
 
-UnknownScript_0x1a0a37: ; 0x1a0a37
+UnknownScript_0x1a0a37:
 	jumpstd registerednumberf
 	end
-; 0x1a0a3b
 
-UnknownScript_0x1a0a3b: ; 0x1a0a3b
+UnknownScript_0x1a0a3b:
 	jumpstd numberacceptedf
 	end
-; 0x1a0a3f
 
-UnknownScript_0x1a0a3f: ; 0x1a0a3f
+UnknownScript_0x1a0a3f:
 	jumpstd numberdeclinedf
 	end
-; 0x1a0a43
 
-UnknownScript_0x1a0a43: ; 0x1a0a43
+UnknownScript_0x1a0a43:
 	jumpstd phonefullf
 	end
-; 0x1a0a47
 
-UnknownScript_0x1a0a47: ; 0x1a0a47
+UnknownScript_0x1a0a47:
 	jumpstd rematchf
 	end
-; 0x1a0a4b
 
-TrainerCooltrainerfMegan: ; 0x1a0a4b
-	; bit/flag number
-	dw $565
+TrainerCooltrainerfMegan:
+	trainer EVENT_BEAT_COOLTRAINERF_MEGAN, COOLTRAINERF, MEGAN, CooltrainerfMeganSeenText, CooltrainerfMeganBeatenText, $0000, CooltrainerfMeganScript
 
-	; trainer group && trainer id
-	db COOLTRAINERF, MEGAN
-
-	; text when seen
-	dw CooltrainerfMeganSeenText
-
-	; text when trainer beaten
-	dw CooltrainerfMeganBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainerfMeganScript
-; 0x1a0a57
-
-CooltrainerfMeganScript: ; 0x1a0a57
+CooltrainerfMeganScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a0cce
@@ -427,37 +288,30 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a0a5f
 
-MapRoute27Signpost0Script: ; 0x1a0a5f
+MapRoute27Signpost0Script:
 	jumptext UnknownText_0x1a0e7f
-; 0x1a0a62
 
-ItemFragment_0x1a0a62: ; 0x1a0a62
-	db TM_22, 1
-; 0x1a0a64
+ItemFragment_0x1a0a62:
+	db TM_SOLARBEAM, 1
 
-ItemFragment_0x1a0a64: ; 0x1a0a64
+ItemFragment_0x1a0a64:
 	db RARE_CANDY, 1
-; 0x1a0a66
 
-MovementData_0x1a0a66: ; 0x1a0a66
+MovementData_0x1a0a66:
 	step_left
 	step_left
 	step_end
-; 0x1a0a69
 
-MovementData_0x1a0a69: ; 0x1a0a69
+MovementData_0x1a0a69:
 	step_left
 	step_end
-; 0x1a0a6b
 
-UnknownText_0x1a0a6b: ; 0x1a0a6b
+UnknownText_0x1a0a6b:
 	text "Hey!"
 	done
-; 0x1a0a71
 
-UnknownText_0x1a0a71: ; 0x1a0a71
+UnknownText_0x1a0a71:
 	text "Do you know what"
 	line "you just did?"
 
@@ -468,21 +322,18 @@
 	para "Check your #-"
 	line "GEAR MAP and see."
 	done
-; 0x1a0ad9
 
-CooltrainermBlakeSeenText: ; 0x1a0ad9
+CooltrainermBlakeSeenText:
 	text "You look pretty"
 	line "strong."
 	cont "Let me battle you!"
 	done
-; 0x1a0b05
 
-CooltrainermBlakeBeatenText: ; 0x1a0b05
+CooltrainermBlakeBeatenText:
 	text "Yow!"
 	done
-; 0x1a0b0b
 
-UnknownText_0x1a0b0b: ; 0x1a0b0b
+UnknownText_0x1a0b0b:
 	text "If you prevail on"
 	line "this harsh trek,"
 
@@ -493,27 +344,23 @@
 	line "wanted to say"
 	cont "something cool."
 	done
-; 0x1a0b7c
 
-CooltrainermBrianSeenText: ; 0x1a0b7c
+CooltrainermBrianSeenText:
 	text "Hm? You're good,"
 	line "aren't you?"
 	done
-; 0x1a0b98
 
-CooltrainermBrianBeatenText: ; 0x1a0b98
+CooltrainermBrianBeatenText:
 	text "Just as I thought!"
 	done
-; 0x1a0bac
 
-UnknownText_0x1a0bac: ; 0x1a0bac
+UnknownText_0x1a0bac:
 	text "A good trainer can"
 	line "recognize other"
 	cont "good trainers."
 	done
-; 0x1a0bdf
 
-CooltrainerfReena1SeenText: ; 0x1a0bdf
+CooltrainerfReena1SeenText:
 	text "You shouldn't"
 	line "underestimate the"
 
@@ -520,15 +367,13 @@
 	para "wild #MON in"
 	line "these parts."
 	done
-; 0x1a0c19
 
-CooltrainerfReena1BeatenText: ; 0x1a0c19
+CooltrainerfReena1BeatenText:
 	text "Oh! You're much"
 	line "too strong!"
 	done
-; 0x1a0c35
 
-UnknownText_0x1a0c35: ; 0x1a0c35
+UnknownText_0x1a0c35:
 	text "You're just a kid,"
 	line "but you're not to"
 
@@ -535,9 +380,8 @@
 	para "be underestimated"
 	line "either."
 	done
-; 0x1a0c73
 
-CooltrainerfMeganSeenText: ; 0x1a0c73
+CooltrainerfMeganSeenText:
 	text "It's rare to see"
 	line "anyone come here."
 
@@ -544,15 +388,13 @@
 	para "Are you training"
 	line "on your own?"
 	done
-; 0x1a0cb4
 
-CooltrainerfMeganBeatenText: ; 0x1a0cb4
+CooltrainerfMeganBeatenText:
 	text "Oh! You're really"
 	line "strong!"
 	done
-; 0x1a0cce
 
-UnknownText_0x1a0cce: ; 0x1a0cce
+UnknownText_0x1a0cce:
 	text "I'm checking out"
 	line "pre- and post-"
 	cont "evolution #MON."
@@ -565,9 +407,8 @@
 	line "also learn moves"
 	cont "later on."
 	done
-; 0x1a0d55
 
-PsychicGilbertSeenText: ; 0x1a0d55
+PsychicGilbertSeenText:
 	text "Don't say a thing!"
 
 	para "Let me guess what"
@@ -579,14 +420,12 @@
 	line "on the #MON"
 	cont "LEAGUE challenge!"
 	done
-; 0x1a0dc1
 
-PsychicGilbertBeatenText: ; 0x1a0dc1
+PsychicGilbertBeatenText:
 	text "You're too much!"
 	done
-; 0x1a0dd2
 
-UnknownText_0x1a0dd2: ; 0x1a0dd2
+UnknownText_0x1a0dd2:
 	text "With your skills,"
 	line "you'll do well at"
 	cont "the LEAGUE."
@@ -594,20 +433,17 @@
 	para "That's what my"
 	line "premonition says."
 	done
-; 0x1a0e22
 
-Bird_keeperJose2SeenText: ; 0x1a0e22
+Bird_keeperJose2SeenText:
 	text "Tweet! Tweet!"
 	line "Tetweet!"
 	done
-; 0x1a0e3a
 
-Bird_keeperJose2BeatenText: ; 0x1a0e3a
+Bird_keeperJose2BeatenText:
 	text "Tweet!"
 	done
-; 0x1a0e42
 
-UnknownText_0x1a0e42: ; 0x1a0e42
+UnknownText_0x1a0e42:
 	text "BIRD KEEPERS like"
 	line "me mimic bird"
 
@@ -614,44 +450,41 @@
 	para "whistles to com-"
 	line "mand #MON."
 	done
-; 0x1a0e7f
 
-UnknownText_0x1a0e7f: ; 0x1a0e7f
+UnknownText_0x1a0e7f:
 	text "TOHJO FALLS"
 
 	para "THE LINK BETWEEN"
 	line "KANTO AND JOHTO"
 	done
-; 0x1a0ead
 
-Route27_MapEventHeader: ; 0x1a0ead
+Route27_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 2
 	xy_trigger 0, $a, $12, $0, UnknownScript_0x1a0873, $0, $0
 	xy_trigger 0, $a, $13, $0, UnknownScript_0x1a0881, $0, $0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 7, 25, $0, MapRoute27Signpost0Script
+	signpost 7, 25, SIGNPOST_READ, MapRoute27Signpost0Script
 
-	; people-events
+.PersonEvents:
 	db 9
-	person_event SPRITE_COOLTRAINER_M, 11, 52, $7, $0, 255, 255, $82, 3, TrainerCooltrainermBlake, $ffff
-	person_event SPRITE_COOLTRAINER_M, 10, 62, $9, $0, 255, 255, $82, 4, TrainerCooltrainermBrian, $ffff
-	person_event SPRITE_COOLTRAINER_F, 14, 76, $7, $0, 255, 255, $82, 4, TrainerCooltrainerfReena1, $ffff
-	person_event SPRITE_COOLTRAINER_F, 10, 41, $1f, $0, 255, 255, $82, 2, TrainerCooltrainerfMegan, $ffff
-	person_event SPRITE_YOUNGSTER, 11, 69, $8, $0, 255, 255, $92, 3, TrainerPsychicGilbert, $ffff
-	person_event SPRITE_YOUNGSTER, 17, 62, $9, $0, 255, 255, $92, 3, TrainerBird_keeperJose2, $ffff
-	person_event SPRITE_POKE_BALL, 16, 64, $1, $0, 255, 255, $1, 0, ItemFragment_0x1a0a62, $06ab
-	person_event SPRITE_POKE_BALL, 16, 57, $1, $0, 255, 255, $1, 0, ItemFragment_0x1a0a64, $06ac
-	person_event SPRITE_FISHER, 14, 25, $3, $0, 255, 255, $0, 3, FisherScript_0x1a089c, $ffff
-; 0x1a0f4c
+	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
--- a/maps/Route27SandstormHouse.asm
+++ b/maps/Route27SandstormHouse.asm
@@ -1,8 +1,8 @@
 Route27SandstormHouse_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 SandstormHouseWoman:
@@ -10,7 +10,7 @@
 	loadfont
 	checkevent EVENT_GOT_TM37_SANDSTORM
 	iftrue .AlreadyGotItem
-	special Function718d
+	special GetFirstPokemonHappiness
 	writetext SandstormHouseWomanText1
 	keeptextopen
 	if_greater_than $95, .Loyal
@@ -19,7 +19,7 @@
 .Loyal
 	writetext SandstormHouseWomanLoyalText
 	keeptextopen
-	verbosegiveitem TM_37, 1
+	verbosegiveitem TM_SANDSTORM, 1
 	iffalse .Done
 	setevent EVENT_GOT_TM37_SANDSTORM
 .AlreadyGotItem
@@ -94,19 +94,19 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 0, $0, SandstormHouseBookshelf
-	signpost 1, 1, $0, SandstormHouseBookshelf
+	signpost 1, 0, SIGNPOST_READ, SandstormHouseBookshelf
+	signpost 1, 1, SIGNPOST_READ, SandstormHouseBookshelf
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_GRANNY, 8, 6, $6, $0, 255, 255, $0, 0, SandstormHouseWoman, $ffff
+	person_event SPRITE_GRANNY, 8, 6, OW_UP | $2, $0, -1, -1, $0, 0, SandstormHouseWoman, -1
--- a/maps/Route28.asm
+++ b/maps/Route28.asm
@@ -1,43 +1,37 @@
-Route28_MapScriptHeader: ; 0x1a540b
-	; trigger count
+Route28_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1a540d
 
-MapRoute28Signpost0Script: ; 0x1a540d
+MapRoute28Signpost0Script:
 	jumptext UnknownText_0x1a5413
-; 0x1a5410
 
-MapRoute28SignpostItem1: ; 0x1a5410
-	dw $00a3
-	db RARE_CANDY
+MapRoute28SignpostItem1:
+	dwb EVENT_ROUTE_28_HIDDEN_RARE_CANDY, RARE_CANDY
 	
-; 0x1a5413
 
-UnknownText_0x1a5413: ; 0x1a5413
+UnknownText_0x1a5413:
 	text "ROUTE 28"
 	done
-; 0x1a541d
 
-Route28_MapEventHeader: ; 0x1a541d
+Route28_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 5, 31, $0, MapRoute28Signpost0Script
-	signpost 2, 25, $7, MapRoute28SignpostItem1
+	signpost 5, 31, SIGNPOST_READ, MapRoute28Signpost0Script
+	signpost 2, 25, SIGNPOST_ITEM, MapRoute28SignpostItem1
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x1a5437
--- a/maps/Route28FamousSpeechHouse.asm
+++ b/maps/Route28FamousSpeechHouse.asm
@@ -1,11 +1,11 @@
 Route28FamousSpeechHouse_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 1
 
 	; triggers
 	dw .Trigger, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 .Trigger
@@ -18,7 +18,7 @@
 	iftrue .AlreadyGotItem
 	writetext CelebrityText1
 	keeptextopen
-	verbosegiveitem TM_47, 1
+	verbosegiveitem TM_STEEL_WING, 1
 	iffalse .Done
 	setevent EVENT_GOT_TM47_STEEL_WING
 .Done
@@ -72,20 +72,20 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 0, $0, CelebrityHouseBookshelf
-	signpost 1, 1, $0, CelebrityHouseBookshelf
+	signpost 1, 0, SIGNPOST_READ, CelebrityHouseBookshelf
+	signpost 1, 1, SIGNPOST_READ, CelebrityHouseBookshelf
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_COOLTRAINER_F, 7, 6, $6, $0, 255, 255, $a0, 0, Celebrity, $ffff
-	person_event SPRITE_MOLTRES, 9, 10, $16, $0, 255, 255, $b0, 0, CelebritysFearow, $ffff
+	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
--- a/maps/Route29.asm
+++ b/maps/Route29.asm
@@ -1,5 +1,5 @@
-Route29_MapScriptHeader: ; 0x1a0f4c
-	; trigger count
+Route29_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,7 +6,7 @@
 	dw UnknownScript_0x1a0f59, $0000
 	dw UnknownScript_0x1a0f5a, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -13,16 +13,14 @@
 
 	dbw 2, TuscanyCallback
 
-UnknownScript_0x1a0f59: ; 0x1a0f59
+UnknownScript_0x1a0f59:
 	end
-; 0x1a0f5a
 
-UnknownScript_0x1a0f5a: ; 0x1a0f5a
+UnknownScript_0x1a0f5a:
 	end
-; 0x1a0f5b
 
 TuscanyCallback:
-	checkflag $001b
+	checkflag ENGINE_ZEPHYRBADGE
 	iftrue .DoesTuscanyAppear
 
 .TuscanyDisappears
@@ -30,14 +28,14 @@
 	return
 
 .DoesTuscanyAppear
-	checkcode $b
+	checkcode VAR_WEEKDAY
 	if_not_equal TUESDAY, .TuscanyDisappears
 	appear $8
 	return
 
-UnknownScript_0x1a0f6d: ; 0x1a0f6d
+UnknownScript_0x1a0f6d:
 	spriteface $2, UP
-	showemote $0, $2, 15
+	showemote EMOTE_SHOCK, $2, 15
 	applymovement $2, MovementData_0x1a108d
 	spriteface $0, LEFT
 	setevent EVENT_DUDE_TALKED_TO_YOU
@@ -59,11 +57,10 @@
 	dotrigger $0
 	setevent EVENT_LEARNED_TO_CATCH_POKEMON
 	end
-; 0x1a0fa3
 
-UnknownScript_0x1a0fa3: ; 0x1a0fa3
+UnknownScript_0x1a0fa3:
 	spriteface $2, UP
-	showemote $0, $2, 15
+	showemote EMOTE_SHOCK, $2, 15
 	applymovement $2, MovementData_0x1a1094
 	spriteface $0, LEFT
 	setevent EVENT_DUDE_TALKED_TO_YOU
@@ -85,9 +82,8 @@
 	dotrigger $0
 	setevent EVENT_LEARNED_TO_CATCH_POKEMON
 	end
-; 0x1a0fd9
 
-UnknownScript_0x1a0fd9: ; 0x1a0fd9
+UnknownScript_0x1a0fd9:
 	writetext UnknownText_0x1a1197
 	closetext
 	loadmovesprites
@@ -94,9 +90,8 @@
 	applymovement $2, MovementData_0x1a109a
 	dotrigger $0
 	end
-; 0x1a0fe5
 
-UnknownScript_0x1a0fe5: ; 0x1a0fe5
+UnknownScript_0x1a0fe5:
 	writetext UnknownText_0x1a1197
 	closetext
 	loadmovesprites
@@ -103,12 +98,11 @@
 	applymovement $2, MovementData_0x1a10a1
 	dotrigger $0
 	end
-; 0x1a0ff1
 
-CooltrainerMScript_0x1a0ff1: ; 0x1a0ff1
+CooltrainerMScript_0x1a0ff1:
 	faceplayer
 	loadfont
-	checkcode $10
+	checkcode VAR_BOXSPACE
 	if_equal $0, UnknownScript_0x1a101c
 	checkevent EVENT_LEARNED_TO_CATCH_POKEMON
 	iftrue UnknownScript_0x1a101c
@@ -126,35 +120,29 @@
 	loadmovesprites
 	setevent EVENT_LEARNED_TO_CATCH_POKEMON
 	end
-; 0x1a101c
 
-UnknownScript_0x1a101c: ; 0x1a101c
+UnknownScript_0x1a101c:
 	writetext UnknownText_0x1a10a7
 	closetext
 	loadmovesprites
 	end
-; 0x1a1022
 
-UnknownScript_0x1a1022: ; 0x1a1022
+UnknownScript_0x1a1022:
 	writetext UnknownText_0x1a1197
 	closetext
 	loadmovesprites
 	end
-; 0x1a1028
 
-YoungsterScript_0x1a1028: ; 0x1a1028
+YoungsterScript_0x1a1028:
 	jumptextfaceplayer UnknownText_0x1a1214
-; 0x1a102b
 
-TeacherScript_0x1a102b: ; 0x1a102b
+TeacherScript_0x1a102b:
 	jumptextfaceplayer UnknownText_0x1a126c
-; 0x1a102e
 
-FisherScript_0x1a102e: ; 0x1a102e
+FisherScript_0x1a102e:
 	jumptextfaceplayer UnknownText_0x1a12d9
-; 0x1a1031
 
-CooltrainerMScript_0x1a1031: ; 0x1a1031
+CooltrainerMScript_0x1a1031:
 	faceplayer
 	loadfont
 	checkday
@@ -161,19 +149,17 @@
 	iftrue UnknownScript_0x1a103d
 	checknite
 	iftrue UnknownScript_0x1a1043
-UnknownScript_0x1a103d: ; 0x1a103d
+UnknownScript_0x1a103d:
 	writetext UnknownText_0x1a134c
 	closetext
 	loadmovesprites
 	end
-; 0x1a1043
 
-UnknownScript_0x1a1043: ; 0x1a1043
+UnknownScript_0x1a1043:
 	writetext UnknownText_0x1a137c
 	closetext
 	loadmovesprites
 	end
-; 0x1a1049
 
 TuscanyScript:
 	faceplayer
@@ -180,7 +166,7 @@
 	loadfont
 	checkevent EVENT_GOT_PINK_BOW_FROM_TUSCANY
 	iftrue TuscanyTuesdayScript
-	checkcode $b
+	checkcode VAR_WEEKDAY
 	if_not_equal TUESDAY, TuscanyNotTuesdayScript
 	checkevent EVENT_MET_TUSCANY_OF_TUESDAY
 	iftrue .MetTuscany
@@ -211,23 +197,19 @@
 	loadmovesprites
 	end
 
-MapRoute29Signpost0Script: ; 0x1a1083
+MapRoute29Signpost0Script:
 	jumptext UnknownText_0x1a158e
-; 0x1a1086
 
-MapRoute29Signpost1Script: ; 0x1a1086
+MapRoute29Signpost1Script:
 	jumptext UnknownText_0x1a15b9
-; 0x1a1089
 
-FruitTreeScript_0x1a1089: ; 0x1a1089
+FruitTreeScript_0x1a1089:
 	fruittree $1
-; 0x1a108b
 
-ItemFragment_0x1a108b: ; 0x1a108b
+ItemFragment_0x1a108b:
 	db POTION, 1
-; 0x1a108d
 
-MovementData_0x1a108d: ; 0x1a108d
+MovementData_0x1a108d:
 	step_up
 	step_up
 	step_up
@@ -235,9 +217,8 @@
 	step_right
 	step_right
 	step_end
-; 0x1a1094
 
-MovementData_0x1a1094: ; 0x1a1094
+MovementData_0x1a1094:
 	step_up
 	step_up
 	step_up
@@ -244,9 +225,8 @@
 	step_right
 	step_right
 	step_end
-; 0x1a109a
 
-MovementData_0x1a109a: ; 0x1a109a
+MovementData_0x1a109a:
 	step_left
 	step_left
 	step_down
@@ -254,9 +234,8 @@
 	step_down
 	step_down
 	step_end
-; 0x1a10a1
 
-MovementData_0x1a10a1: ; 0x1a10a1
+MovementData_0x1a10a1:
 	step_left
 	step_left
 	step_down
@@ -263,9 +242,8 @@
 	step_down
 	step_down
 	step_end
-; 0x1a10a7
 
-UnknownText_0x1a10a7: ; 0x1a10a7
+UnknownText_0x1a10a7:
 	text "#MON hide in"
 	line "the grass. Who"
 
@@ -272,9 +250,8 @@
 	para "knows when they'll"
 	line "pop out…"
 	done
-; 0x1a10df
 
-UnknownText_0x1a10df: ; 0x1a10df
+UnknownText_0x1a10df:
 	text "I've seen you a"
 	line "couple times. How"
 
@@ -285,9 +262,8 @@
 	line "to show you how to"
 	cont "catch #MON?"
 	done
-; 0x1a114d
 
-UnknownText_0x1a114d: ; 0x1a114d
+UnknownText_0x1a114d:
 	text "That's how you do"
 	line "it."
 
@@ -295,9 +271,8 @@
 	line "first, #MON are"
 	cont "easier to catch."
 	done
-; 0x1a1197
 
-UnknownText_0x1a1197: ; 0x1a1197
+UnknownText_0x1a1197:
 	text "Oh. Fine, then."
 
 	para "Anyway, if you"
@@ -306,16 +281,14 @@
 	para "#MON, you have"
 	line "to walk a lot."
 	done
-; 0x1a11e3
 
-UnknownText_0x1a11e3: ; 0x1a11e3
+UnknownText_0x1a11e3:
 	text "Huh? You want me"
 	line "to show you how to"
 	cont "catch #MON?"
 	done
-; 0x1a1214
 
-UnknownText_0x1a1214: ; 0x1a1214
+UnknownText_0x1a1214:
 	text "Yo. How are your"
 	line "#MON?"
 
@@ -325,9 +298,8 @@
 	para "battle, keep out"
 	line "of the grass."
 	done
-; 0x1a126c
 
-UnknownText_0x1a126c: ; 0x1a126c
+UnknownText_0x1a126c:
 	text "See those ledges?"
 	line "It's scary to jump"
 	cont "off them."
@@ -338,9 +310,8 @@
 	para "walking through"
 	line "the grass."
 	done
-; 0x1a12d9
 
-UnknownText_0x1a12d9: ; 0x1a12d9
+UnknownText_0x1a12d9:
 	text "I wanted to take a"
 	line "break, so I saved"
 
@@ -347,10 +318,9 @@
 	para "to record my"
 	line "progress."
 	done
-; 0x1a1316
 
 ; possibly unused
-UnknownText_0x1a1316: ; 0x1a1316
+UnknownText_0x1a1316:
 	text "I'm waiting for"
 	line "#MON that"
 
@@ -357,9 +327,8 @@
 	para "appear only in the"
 	line "daytime."
 	done
-; 0x1a134c
 
-UnknownText_0x1a134c: ; 0x1a134c
+UnknownText_0x1a134c:
 	text "I'm waiting for"
 	line "#MON that"
 
@@ -366,9 +335,8 @@
 	para "appear only at"
 	line "night."
 	done
-; 0x1a137c
 
-UnknownText_0x1a137c: ; 0x1a137c
+UnknownText_0x1a137c:
 	text "I'm waiting for"
 	line "#MON that"
 
@@ -375,7 +343,6 @@
 	para "appear only in the"
 	line "morning."
 	done
-; 0x1a13b2
 
 MeetTuscanyText:
 	text "TUSCANY: I do be-"
@@ -429,47 +396,45 @@
 	cont "is unfortunate…"
 	done
 
-UnknownText_0x1a158e: ; 0x1a158e
+UnknownText_0x1a158e:
 	text "ROUTE 29"
 
 	para "CHERRYGROVE CITY -"
 	line "NEW BARK TOWN"
 	done
-; 0x1a15b9
 
-UnknownText_0x1a15b9: ; 0x1a15b9
+UnknownText_0x1a15b9:
 	text "ROUTE 29"
 
 	para "CHERRYGROVE CITY -"
 	line "NEW BARK TOWN"
 	done
-; 0x1a15e4
 
-Route29_MapEventHeader: ; 0x1a15e4
+Route29_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $1, $1b, 3, GROUP_ROUTE_29_46_GATE, MAP_ROUTE_29_46_GATE
 
-	; xy triggers
+.XYTriggers:
 	db 2
 	xy_trigger 1, $8, $35, $0, UnknownScript_0x1a0f6d, $0, $0
 	xy_trigger 1, $9, $35, $0, UnknownScript_0x1a0fa3, $0, $0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 7, 51, $0, MapRoute29Signpost0Script
-	signpost 5, 3, $0, MapRoute29Signpost1Script
+	signpost 7, 51, SIGNPOST_READ, MapRoute29Signpost0Script
+	signpost 5, 3, SIGNPOST_READ, MapRoute29Signpost1Script
 
-	; people-events
+.PersonEvents:
 	db 8
-	person_event SPRITE_COOLTRAINER_M, 16, 54, $3, $0, 255, 255, $80, 0, CooltrainerMScript_0x1a0ff1, $ffff
-	person_event SPRITE_YOUNGSTER, 20, 31, $4, $10, 255, 255, $a0, 0, YoungsterScript_0x1a1028, $ffff
-	person_event SPRITE_TEACHER, 15, 19, $5, $1, 255, 255, $a0, 0, TeacherScript_0x1a102b, $ffff
-	person_event SPRITE_FRUIT_TREE, 6, 16, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x1a1089, $ffff
-	person_event SPRITE_FISHER, 7, 29, $7, $0, 255, 255, $90, 0, FisherScript_0x1a102e, $ffff
-	person_event SPRITE_COOLTRAINER_M, 8, 17, $6, $0, 255, 255, $80, 0, CooltrainerMScript_0x1a1031, $ffff
-	person_event SPRITE_TEACHER, 16, 33, $3, $0, 255, 255, $0, 0, TuscanyScript, $0759
-	person_event SPRITE_POKE_BALL, 6, 52, $1, $0, 255, 255, $1, 0, ItemFragment_0x1a108b, $06ad
+	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
--- a/maps/Route2946Gate.asm
+++ b/maps/Route2946Gate.asm
@@ -1,20 +1,17 @@
-Route2946Gate_MapScriptHeader: ; 0x7b5b9
-	; trigger count
+Route2946Gate_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x7b5bb
 
-OfficerScript_0x7b5bb: ; 0x7b5bb
+OfficerScript_0x7b5bb:
 	jumptextfaceplayer UnknownText_0x7b5c1
-; 0x7b5be
 
-YoungsterScript_0x7b5be: ; 0x7b5be
+YoungsterScript_0x7b5be:
 	jumptextfaceplayer UnknownText_0x7b60d
-; 0x7b5c1
 
-UnknownText_0x7b5c1: ; 0x7b5c1
+UnknownText_0x7b5c1:
 	text "You can't climb"
 	line "ledges."
 
@@ -22,9 +19,8 @@
 	line "down from them to"
 	cont "take a shortcut."
 	done
-; 0x7b60d
 
-UnknownText_0x7b60d: ; 0x7b60d
+UnknownText_0x7b60d:
 	text "Different kinds of"
 	line "#MON appear"
 	cont "past here."
@@ -35,13 +31,12 @@
 	para "you have to look"
 	line "everywhere."
 	done
-; 0x7b674
 
-Route2946Gate_MapEventHeader: ; 0x7b674
+Route2946Gate_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -48,14 +43,13 @@
 	warp_def $7, $4, 1, GROUP_ROUTE_29, MAP_ROUTE_29
 	warp_def $7, $5, 1, GROUP_ROUTE_29, MAP_ROUTE_29
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_OFFICER, 8, 4, $9, $0, 255, 255, $80, 0, OfficerScript_0x7b5bb, $ffff
-	person_event SPRITE_YOUNGSTER, 8, 10, $4, $10, 255, 255, $a0, 0, YoungsterScript_0x7b5be, $ffff
-; 0x7b6a8
+	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
--- a/maps/Route2Gate.asm
+++ b/maps/Route2Gate.asm
@@ -1,16 +1,14 @@
-Route2Gate_MapScriptHeader: ; 0x9b950
-	; trigger count
+Route2Gate_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9b952
 
-ScientistScript_0x9b952: ; 0x9b952
+ScientistScript_0x9b952:
 	jumptextfaceplayer UnknownText_0x9b955
-; 0x9b955
 
-UnknownText_0x9b955: ; 0x9b955
+UnknownText_0x9b955:
 	text "Are you <PLAY_G>?"
 
 	para "I work as PROF."
@@ -23,13 +21,12 @@
 	line "nearby in PALLET"
 	cont "TOWN."
 	done
-; 0x9b9ca
 
-Route2Gate_MapEventHeader: ; 0x9b9ca
+Route2Gate_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -36,13 +33,12 @@
 	warp_def $7, $4, 2, GROUP_ROUTE_2, MAP_ROUTE_2
 	warp_def $7, $5, 2, GROUP_ROUTE_2, MAP_ROUTE_2
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_SCIENTIST, 8, 10, $4, $20, 255, 255, $90, 0, ScientistScript_0x9b952, $ffff
-; 0x9b9f1
+	person_event SPRITE_SCIENTIST, 8, 10, OW_UP | $0, $20, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, ScientistScript_0x9b952, -1
--- a/maps/Route2NuggetSpeechHouse.asm
+++ b/maps/Route2NuggetSpeechHouse.asm
@@ -1,25 +1,24 @@
-Route2NuggetSpeechHouse_MapScriptHeader: ; 0x9b845
-	; trigger count
+Route2NuggetSpeechHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9b847
 
-FisherScript_0x9b847: ; 0x9b847
+FisherScript_0x9b847:
 	faceplayer
 	loadfont
-	checkevent $00c8
-	iftrue UnknownScript_0x9b85c
+	checkevent EVENT_GOT_NUGGET_FROM_GUY
+	iftrue .GotItem
 	writetext UnknownText_0x9b865
 	keeptextopen
 	verbosegiveitem NUGGET, 1
-	iffalse UnknownScript_0x9b860
-	setevent $00c8
-UnknownScript_0x9b85c: ; 0x9b85c
+	iffalse .Done
+	setevent EVENT_GOT_NUGGET_FROM_GUY
+.GotItem
 	writetext UnknownText_0x9b8e5
 	closetext
-UnknownScript_0x9b860: ; 0x9b860
+.Done
 	loadmovesprites
 	end
 
@@ -27,7 +26,7 @@
 ; unused
 	jumpstd difficultbookshelf
 
-UnknownText_0x9b865: ; 0x9b865
+UnknownText_0x9b865:
 	text "Hi! Wow, I'm glad"
 	line "to see you."
 
@@ -39,9 +38,8 @@
 	line "Let me give you a"
 	cont "little present."
 	done
-; 0x9b8e5
 
-UnknownText_0x9b8e5: ; 0x9b8e5
+UnknownText_0x9b8e5:
 	text "That's a NUGGET."
 
 	para "I can't give you"
@@ -50,24 +48,22 @@
 	para "wisdom, so that'll"
 	line "have to do!"
 	done
-; 0x9b933
 
-Route2NuggetSpeechHouse_MapEventHeader: ; 0x9b933
+Route2NuggetSpeechHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_FISHER, 8, 6, $4, $20, 255, 255, $90, 0, FisherScript_0x9b847, $ffff
-; 0x9b950
+	person_event SPRITE_FISHER, 8, 6, OW_UP | $0, $20, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, FisherScript_0x9b847, -1
--- a/maps/Route3.asm
+++ b/maps/Route3.asm
@@ -1,32 +1,14 @@
-Route3_MapScriptHeader: ; 0x1adf63
-	; trigger count
+Route3_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1adf65
 
-TrainerFirebreatherOtis: ; 0x1adf65
-	; bit/flag number
-	dw $446
+TrainerFirebreatherOtis:
+	trainer EVENT_BEAT_FIREBREATHER_OTIS, FIREBREATHER, OTIS, FirebreatherOtisSeenText, FirebreatherOtisBeatenText, $0000, FirebreatherOtisScript
 
-	; trainer group && trainer id
-	db FIREBREATHER, OTIS
-
-	; text when seen
-	dw FirebreatherOtisSeenText
-
-	; text when trainer beaten
-	dw FirebreatherOtisBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw FirebreatherOtisScript
-; 0x1adf71
-
-FirebreatherOtisScript: ; 0x1adf71
+FirebreatherOtisScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1adff7
@@ -33,29 +15,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1adf79
 
-TrainerYoungsterWarren: ; 0x1adf79
-	; bit/flag number
-	dw $5b1
+TrainerYoungsterWarren:
+	trainer EVENT_BEAT_YOUNGSTER_WARREN, YOUNGSTER, WARREN, YoungsterWarrenSeenText, YoungsterWarrenBeatenText, $0000, YoungsterWarrenScript
 
-	; trainer group && trainer id
-	db YOUNGSTER, WARREN
-
-	; text when seen
-	dw YoungsterWarrenSeenText
-
-	; text when trainer beaten
-	dw YoungsterWarrenBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw YoungsterWarrenScript
-; 0x1adf85
-
-YoungsterWarrenScript: ; 0x1adf85
+YoungsterWarrenScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ae051
@@ -62,29 +26,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1adf8d
 
-TrainerYoungsterJimmy: ; 0x1adf8d
-	; bit/flag number
-	dw $5b2
+TrainerYoungsterJimmy:
+	trainer EVENT_BEAT_YOUNGSTER_JIMMY, YOUNGSTER, JIMMY, YoungsterJimmySeenText, YoungsterJimmyBeatenText, $0000, YoungsterJimmyScript
 
-	; trainer group && trainer id
-	db YOUNGSTER, JIMMY
-
-	; text when seen
-	dw YoungsterJimmySeenText
-
-	; text when trainer beaten
-	dw YoungsterJimmyBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw YoungsterJimmyScript
-; 0x1adf99
-
-YoungsterJimmyScript: ; 0x1adf99
+YoungsterJimmyScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ae0a9
@@ -91,29 +37,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1adfa1
 
-TrainerFirebreatherBurt: ; 0x1adfa1
-	; bit/flag number
-	dw $449
+TrainerFirebreatherBurt:
+	trainer EVENT_BEAT_FIREBREATHER_BURT, FIREBREATHER, BURT, FirebreatherBurtSeenText, FirebreatherBurtBeatenText, $0000, FirebreatherBurtScript
 
-	; trainer group && trainer id
-	db FIREBREATHER, BURT
-
-	; text when seen
-	dw FirebreatherBurtSeenText
-
-	; text when trainer beaten
-	dw FirebreatherBurtBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw FirebreatherBurtScript
-; 0x1adfad
-
-FirebreatherBurtScript: ; 0x1adfad
+FirebreatherBurtScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ae118
@@ -120,62 +48,52 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1adfb5
 
-MapRoute3Signpost0Script: ; 0x1adfb5
+MapRoute3Signpost0Script:
 	jumptext UnknownText_0x1ae163
-; 0x1adfb8
 
-FirebreatherOtisSeenText: ; 0x1adfb8
+FirebreatherOtisSeenText:
 	text "Ah! The weather's"
 	line "as fine as ever."
 	done
-; 0x1adfdb
 
-FirebreatherOtisBeatenText: ; 0x1adfdb
+FirebreatherOtisBeatenText:
 	text "It's sunny, but"
 	line "I'm all wet…"
 	done
-; 0x1adff7
 
-UnknownText_0x1adff7: ; 0x1adff7
+UnknownText_0x1adff7:
 	text "When it rains,"
 	line "it's hard to get"
 	cont "ignition…"
 	done
-; 0x1ae021
 
-YoungsterWarrenSeenText: ; 0x1ae021
+YoungsterWarrenSeenText:
 	text "Hmmm… I don't know"
 	line "what to do…"
 	done
-; 0x1ae040
 
-YoungsterWarrenBeatenText: ; 0x1ae040
+YoungsterWarrenBeatenText:
 	text "I knew I'd lose…"
 	done
-; 0x1ae051
 
-UnknownText_0x1ae051: ; 0x1ae051
+UnknownText_0x1ae051:
 	text "You looked strong."
 
 	para "I was afraid to"
 	line "take you on…"
 	done
-; 0x1ae082
 
-YoungsterJimmySeenText: ; 0x1ae082
+YoungsterJimmySeenText:
 	text "I can run like the"
 	line "wind!"
 	done
-; 0x1ae09c
 
-YoungsterJimmyBeatenText: ; 0x1ae09c
+YoungsterJimmyBeatenText:
 	text "Blown away!"
 	done
-; 0x1ae0a9
 
-UnknownText_0x1ae0a9: ; 0x1ae0a9
+UnknownText_0x1ae0a9:
 	text "I wear shorts the"
 	line "whole year round."
 
@@ -182,20 +100,17 @@
 	para "That's my fashion"
 	line "policy."
 	done
-; 0x1ae0e7
 
-FirebreatherBurtSeenText: ; 0x1ae0e7
+FirebreatherBurtSeenText:
 	text "Step right up and"
 	line "take a look!"
 	done
-; 0x1ae107
 
-FirebreatherBurtBeatenText: ; 0x1ae107
+FirebreatherBurtBeatenText:
 	text "Yow! That's hot!"
 	done
-; 0x1ae118
 
-UnknownText_0x1ae118: ; 0x1ae118
+UnknownText_0x1ae118:
 	text "The greatest fire-"
 	line "breather in KANTO,"
 	cont "that's me."
@@ -203,35 +118,32 @@
 	para "But not the best"
 	line "trainer…"
 	done
-; 0x1ae163
 
-UnknownText_0x1ae163: ; 0x1ae163
+UnknownText_0x1ae163:
 	text "MT.MOON SQUARE"
 
 	para "Just go up the"
 	line "stairs."
 	done
-; 0x1ae18a
 
-Route3_MapEventHeader: ; 0x1ae18a
+Route3_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $1, $34, 1, GROUP_MOUNT_MOON, MAP_MOUNT_MOON
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 13, 49, $0, MapRoute3Signpost0Script
+	signpost 13, 49, SIGNPOST_READ, MapRoute3Signpost0Script
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_FISHER, 16, 30, $7, $0, 255, 255, $82, 2, TrainerFirebreatherOtis, $ffff
-	person_event SPRITE_YOUNGSTER, 11, 14, $8, $0, 255, 255, $92, 3, TrainerYoungsterWarren, $ffff
-	person_event SPRITE_YOUNGSTER, 7, 20, $a, $0, 255, 255, $92, 1, TrainerYoungsterJimmy, $ffff
-	person_event SPRITE_FISHER, 9, 53, $a, $0, 255, 255, $82, 3, TrainerFirebreatherBurt, $ffff
-; 0x1ae1ce
+	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
--- a/maps/Route30.asm
+++ b/maps/Route30.asm
@@ -1,12 +1,11 @@
-Route30_MapScriptHeader: ; 0x1a1671
-	; trigger count
+Route30_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1a1673
 
-YoungsterScript_0x1a1673: ; 0x1a1673
+YoungsterScript_0x1a1673:
 	waitbutton
 	playmusic MUSIC_JOHTO_TRAINER_BATTLE
 	loadfont
@@ -25,134 +24,108 @@
 	applymovement $7, MovementData_0x1a1802
 	special RestartMapMusic
 	end
-; 0x1a169a
 
-TrainerYoungsterJoey1: ; 0x1a169a
-	; bit/flag number
-	dw $5a9
+TrainerYoungsterJoey:
+	trainer EVENT_BEAT_YOUNGSTER_JOEY, YOUNGSTER, JOEY1, YoungsterJoey1SeenText, YoungsterJoey1BeatenText, $0000, YoungsterJoey1Script
 
-	; trainer group && trainer id
-	db YOUNGSTER, JOEY1
-
-	; text when seen
-	dw YoungsterJoey1SeenText
-
-	; text when trainer beaten
-	dw YoungsterJoey1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw YoungsterJoey1Script
-; 0x1a16a6
-
-YoungsterJoey1Script: ; 0x1a16a6
-	writecode $17, $f
+YoungsterJoey1Script:
+	writecode VAR_CALLERID, PHONE_YOUNGSTER_JOEY
 	talkaftercancel
 	loadfont
-	checkflag $006b
+	checkflag ENGINE_JOEY
 	iftrue UnknownScript_0x1a16e0
-	checkcellnum $f
+	checkcellnum PHONE_YOUNGSTER_JOEY
 	iftrue UnknownScript_0x1a178f
-	checkevent $0273
+	checkevent EVENT_JOEY_ASKED_FOR_PHONE_NUMBER
 	iftrue UnknownScript_0x1a16c9
 	writetext UnknownText_0x1a18c2
 	keeptextopen
-	setevent $0273
+	setevent EVENT_JOEY_ASKED_FOR_PHONE_NUMBER
 	scall UnknownScript_0x1a1783
 	jump UnknownScript_0x1a16cc
-; 0x1a16c9
 
-UnknownScript_0x1a16c9: ; 0x1a16c9
+UnknownScript_0x1a16c9:
 	scall UnknownScript_0x1a1787
-UnknownScript_0x1a16cc: ; 0x1a16cc
-	askforphonenumber $f
+UnknownScript_0x1a16cc:
+	askforphonenumber PHONE_YOUNGSTER_JOEY
 	if_equal $1, UnknownScript_0x1a1797
 	if_equal $2, UnknownScript_0x1a1793
 	trainertotext YOUNGSTER, JOEY1, $0
 	scall UnknownScript_0x1a178b
 	jump UnknownScript_0x1a178f
-; 0x1a16e0
 
-UnknownScript_0x1a16e0: ; 0x1a16e0
+UnknownScript_0x1a16e0:
 	scall UnknownScript_0x1a179b
 	winlosstext YoungsterJoey1BeatenText, $0000
-	copybytetovar wd9f9
-	if_equal $4, UnknownScript_0x1a16ff
-	if_equal $3, UnknownScript_0x1a1705
-	if_equal $2, UnknownScript_0x1a170b
-	if_equal $1, UnknownScript_0x1a1711
-	if_equal $0, UnknownScript_0x1a1717
-UnknownScript_0x1a16ff: ; 0x1a16ff
+	copybytetovar wJoeyFightCount
+	if_equal 4, .Fight4
+	if_equal 3, .Fight3
+	if_equal 2, .Fight2
+	if_equal 1, .Fight1
+	if_equal 0, .LoadFight0
+.Fight4
 	checkevent EVENT_BEAT_ELITE_FOUR
-	iftrue UnknownScript_0x1a174b
-UnknownScript_0x1a1705: ; 0x1a1705
+	iftrue .LoadFight4
+.Fight3
 	checkevent EVENT_CLEARED_RADIO_TOWER
-	iftrue UnknownScript_0x1a173e
-UnknownScript_0x1a170b: ; 0x1a170b
-	checkflag $0047
-	iftrue UnknownScript_0x1a1731
-UnknownScript_0x1a1711: ; 0x1a1711
-	checkflag $0046
-	iftrue UnknownScript_0x1a1724
-UnknownScript_0x1a1717: ; 0x1a717
+	iftrue .LoadFight3
+.Fight2
+	checkflag ENGINE_FLYPOINT_OLIVINE
+	iftrue .LoadFight2
+.Fight1
+	checkflag ENGINE_FLYPOINT_GOLDENROD
+	iftrue .LoadFight1
+.LoadFight0
 	loadtrainer YOUNGSTER, JOEY1
 	startbattle
 	returnafterbattle
-	loadvar wd9f9, $1
-	clearflag $006b
+	loadvar wJoeyFightCount, 1
+	clearflag ENGINE_JOEY
 	end
-; 0x1a1724
 
-UnknownScript_0x1a1724: ; 0x1a1724
+.LoadFight1
 	loadtrainer YOUNGSTER, JOEY2
 	startbattle
 	returnafterbattle
-	loadvar wd9f9, $2
-	clearflag $006b
+	loadvar wJoeyFightCount, 2
+	clearflag ENGINE_JOEY
 	end
-; 0x1a1731
 
-UnknownScript_0x1a1731: ; 0x1a1731
+.LoadFight2
 	loadtrainer YOUNGSTER, JOEY3
 	startbattle
 	returnafterbattle
-	loadvar wd9f9, $3
-	clearflag $006b
+	loadvar wJoeyFightCount, 3
+	clearflag ENGINE_JOEY
 	end
-; 0x1a173e
 
-UnknownScript_0x1a173e: ; 0x1a173e
+.LoadFight3
 	loadtrainer YOUNGSTER, JOEY4
 	startbattle
 	returnafterbattle
-	loadvar wd9f9, $4
-	clearflag $006b
+	loadvar wJoeyFightCount, 4
+	clearflag ENGINE_JOEY
 	end
-; 0x1a174b
 
-UnknownScript_0x1a174b: ; 0x1a174b
+.LoadFight4
 	loadtrainer YOUNGSTER, JOEY5
 	startbattle
 	returnafterbattle
-	clearflag $006b
+	clearflag ENGINE_JOEY
 	checkevent EVENT_JOEY_HP_UP
 	iftrue UnknownScript_0x1a176f
-	checkevent $0266
+	checkevent EVENT_GOT_HP_UP_FROM_JOEY
 	iftrue UnknownScript_0x1a176e
 	scall UnknownScript_0x1a17a6
 	verbosegiveitem HP_UP, 1
 	iffalse UnknownScript_0x1a179f
-	setevent $0266
+	setevent EVENT_GOT_HP_UP_FROM_JOEY
 	jump UnknownScript_0x1a178f
-; 0x1a176e
 
-UnknownScript_0x1a176e: ; 0x1a176e
+UnknownScript_0x1a176e:
 	end
-; 0x1a176f
 
-UnknownScript_0x1a176f: ; 0x1a176f
+UnknownScript_0x1a176f:
 	loadfont
 	writetext UnknownText_0x1a1bc0
 	closetext
@@ -159,77 +132,50 @@
 	verbosegiveitem HP_UP, 1
 	iffalse UnknownScript_0x1a179f
 	clearevent EVENT_JOEY_HP_UP
-	setevent $0266
+	setevent EVENT_GOT_HP_UP_FROM_JOEY
 	jump UnknownScript_0x1a178f
-; 0x1a1783
 
-UnknownScript_0x1a1783: ; 0x1a1783
+UnknownScript_0x1a1783:
 	jumpstd asknumber1m
 	end
-; 0x1a1787
 
-UnknownScript_0x1a1787: ; 0x1a1787
+UnknownScript_0x1a1787:
 	jumpstd asknumber2m
 	end
-; 0x1a178b
 
-UnknownScript_0x1a178b: ; 0x1a178b
+UnknownScript_0x1a178b:
 	jumpstd registerednumberm
 	end
-; 0x1a178f
 
-UnknownScript_0x1a178f: ; 0x1a178f
+UnknownScript_0x1a178f:
 	jumpstd numberacceptedm
 	end
-; 0x1a1793
 
-UnknownScript_0x1a1793: ; 0x1a1793
+UnknownScript_0x1a1793:
 	jumpstd numberdeclinedm
 	end
-; 0x1a1797
 
-UnknownScript_0x1a1797: ; 0x1a1797
+UnknownScript_0x1a1797:
 	jumpstd phonefullm
 	end
-; 0x1a179b
 
-UnknownScript_0x1a179b: ; 0x1a179b
+UnknownScript_0x1a179b:
 	jumpstd rematchm
 	end
-; 0x1a179f
 
-UnknownScript_0x1a179f: ; 0x1a179f
+UnknownScript_0x1a179f:
 	setevent EVENT_JOEY_HP_UP
 	jumpstd packfullm
 	end
-; 0x1a17a6
 
-UnknownScript_0x1a17a6: ; 0x1a17a6
+UnknownScript_0x1a17a6:
 	jumpstd rematchgiftm
 	end
-; 0x1a17aa
 
-TrainerYoungsterMikey: ; 0x1a17aa
-	; bit/flag number
-	dw $5aa
+TrainerYoungsterMikey:
+	trainer EVENT_BEAT_YOUNGSTER_MIKEY, YOUNGSTER, MIKEY, YoungsterMikeySeenText, YoungsterMikeyBeatenText, $0000, YoungsterMikeyScript
 
-	; trainer group && trainer id
-	db YOUNGSTER, MIKEY
-
-	; text when seen
-	dw YoungsterMikeySeenText
-
-	; text when trainer beaten
-	dw YoungsterMikeyBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw YoungsterMikeyScript
-; 0x1a17b6
-
-YoungsterMikeyScript: ; 0x1a17b6
+YoungsterMikeyScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a197d
@@ -236,29 +182,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a17be
 
-TrainerBug_catcherDon: ; 0x1a17be
-	; bit/flag number
-	dw $538
+TrainerBug_catcherDon:
+	trainer EVENT_BEAT_BUG_CATCHER_DON, BUG_CATCHER, DON, Bug_catcherDonSeenText, Bug_catcherDonBeatenText, $0000, Bug_catcherDonScript
 
-	; trainer group && trainer id
-	db BUG_CATCHER, DON
-
-	; text when seen
-	dw Bug_catcherDonSeenText
-
-	; text when trainer beaten
-	dw Bug_catcherDonBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Bug_catcherDonScript
-; 0x1a17ca
-
-Bug_catcherDonScript: ; 0x1a17ca
+Bug_catcherDonScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a1a1c
@@ -265,9 +193,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a17d2
 
-YoungsterScript_0x1a17d2: ; 0x1a17d2
+YoungsterScript_0x1a17d2:
 	faceplayer
 	loadfont
 	checkevent EVENT_GAVE_MYSTERY_EGG_TO_ELM
@@ -276,82 +203,66 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a17e0
 
-UnknownScript_0x1a17e0: ; 0x1a17e0
+UnknownScript_0x1a17e0:
 	writetext UnknownText_0x1a1a94
 	closetext
 	loadmovesprites
 	end
-; 0x1a17e6
 
-CooltrainerFScript_0x1a17e6: ; 0x1a17e6
+CooltrainerFScript_0x1a17e6:
 	jumptextfaceplayer UnknownText_0x1a1ac4
-; 0x1a17e9
 
-MapRoute30Signpost0Script: ; 0x1a17e9
+MapRoute30Signpost0Script:
 	jumptext UnknownText_0x1a1b0b
-; 0x1a17ec
 
-MapRoute30Signpost1Script: ; 0x1a17ec
+MapRoute30Signpost1Script:
 	jumptext UnknownText_0x1a1b34
-; 0x1a17ef
 
-MapRoute30Signpost2Script: ; 0x1a17ef
+MapRoute30Signpost2Script:
 	jumptext UnknownText_0x1a1b55
-; 0x1a17f2
 
-MapRoute30Signpost3Script: ; 0x1a17f2
+MapRoute30Signpost3Script:
 	jumptext UnknownText_0x1a1b66
-; 0x1a17f5
 
-ItemFragment_0x1a17f5: ; 0x1a17f5
+ItemFragment_0x1a17f5:
 	db ANTIDOTE, 1
-; 0x1a17f7
 
-FruitTreeScript_0x1a17f7: ; 0x1a17f7
+FruitTreeScript_0x1a17f7:
 	fruittree $2
-; 0x1a17f9
 
-FruitTreeScript_0x1a17f9: ; 0x1a17f9
+FruitTreeScript_0x1a17f9:
 	fruittree $5
-; 0x1a17fb
 
-MapRoute30SignpostItem4: ; 0x1a17fb
-	dw $00a4
-	db POTION
+MapRoute30SignpostItem4:
+	dwb EVENT_ROUTE_30_HIDDEN_POTION, POTION
 	
-; 0x1a17fe
 
-MovementData_0x1a17fe: ; 0x1a17fe
+MovementData_0x1a17fe:
 	fix_facing
 	big_step_up
 	big_step_down
 	step_end
-; 0x1a1802
 
-MovementData_0x1a1802: ; 0x1a1802
+MovementData_0x1a1802:
 	fix_facing
 	big_step_down
 	big_step_up
 	step_end
-; 0x1a1806
 
-UnknownText_0x1a1806: ; 0x1a1806
+UnknownText_0x1a1806:
 	text "Go, RATTATA!"
 
 	para "TACKLE!"
 	done
-; 0x1a181c
 
-UnknownText_0x1a181c: ; 0x1a181c
+UnknownText_0x1a181c:
 	text "What? This is a"
 	line "big battle!"
 	cont "Leave me alone!"
 	done
-; 0x1a1849
 
-YoungsterJoey1SeenText: ; 0x1a1849
+YoungsterJoey1SeenText:
 	text "I just lost, so"
 	line "I'm trying to find"
 	cont "more #MON."
@@ -360,15 +271,13 @@
 	line "weak! Come on,"
 	cont "let's battle!"
 	done
-; 0x1a18a2
 
-YoungsterJoey1BeatenText: ; 0x1a18a2
+YoungsterJoey1BeatenText:
 	text "Ack! I lost again!"
 	line "Doggone it!"
 	done
-; 0x1a18c2
 
-UnknownText_0x1a18c2: ; 0x1a18c2
+UnknownText_0x1a18c2:
 	text "Do I have to have"
 	line "more #MON in"
 
@@ -379,9 +288,8 @@
 	line "with this one no"
 	cont "matter what!"
 	done
-; 0x1a1928
 
-YoungsterMikeySeenText: ; 0x1a1928
+YoungsterMikeySeenText:
 	text "You're a #MON"
 	line "trainer, right?"
 
@@ -388,15 +296,13 @@
 	para "Then you have to"
 	line "battle!"
 	done
-; 0x1a195f
 
-YoungsterMikeyBeatenText: ; 0x1a195f
+YoungsterMikeyBeatenText:
 	text "That's strange."
 	line "I won before."
 	done
-; 0x1a197d
 
-UnknownText_0x1a197d: ; 0x1a197d
+UnknownText_0x1a197d:
 	text "Becoming a good"
 	line "trainer is really"
 	cont "tough."
@@ -405,22 +311,19 @@
 	line "tle other people"
 	cont "to get better."
 	done
-; 0x1a19d8
 
-Bug_catcherDonSeenText: ; 0x1a19d8
+Bug_catcherDonSeenText:
 	text "Instead of a bug"
 	line "#MON, I found"
 	cont "a trainer!"
 	done
-; 0x1a1a03
 
-Bug_catcherDonBeatenText: ; 0x1a1a03
+Bug_catcherDonBeatenText:
 	text "Argh! You're too"
 	line "strong!"
 	done
-; 0x1a1a1c
 
-UnknownText_0x1a1a1c: ; 0x1a1a1c
+UnknownText_0x1a1a1c:
 	text "I ran out of #"
 	line "BALLS while I was"
 	cont "catching #MON."
@@ -428,23 +331,20 @@
 	para "I should've bought"
 	line "some more…"
 	done
-; 0x1a1a6a
 
-UnknownText_0x1a1a6a: ; 0x1a1a6a
+UnknownText_0x1a1a6a:
 	text "MR.#MON's"
 	line "house? It's a bit"
 	cont "farther ahead."
 	done
-; 0x1a1a94
 
-UnknownText_0x1a1a94: ; 0x1a1a94
+UnknownText_0x1a1a94:
 	text "Everyone's having"
 	line "fun battling!"
 	cont "You should too!"
 	done
-; 0x1a1ac4
 
-UnknownText_0x1a1ac4: ; 0x1a1ac4
+UnknownText_0x1a1ac4:
 	text "I'm not a trainer."
 
 	para "But if you look"
@@ -451,28 +351,24 @@
 	line "one in the eyes,"
 	cont "prepare to battle."
 	done
-; 0x1a1b0b
 
-UnknownText_0x1a1b0b: ; 0x1a1b0b
+UnknownText_0x1a1b0b:
 	text "ROUTE 30"
 
 	para "VIOLET CITY -"
 	line "CHERRYGROVE CITY"
 	done
-; 0x1a1b34
 
-UnknownText_0x1a1b34: ; 0x1a1b34
+UnknownText_0x1a1b34:
 	text "MR.#MON'S HOUSE"
 	line "STRAIGHT AHEAD!"
 	done
-; 0x1a1b55
 
-UnknownText_0x1a1b55: ; 0x1a1b55
+UnknownText_0x1a1b55:
 	text "MR.#MON'S HOUSE"
 	done
-; 0x1a1b66
 
-UnknownText_0x1a1b66: ; 0x1a1b66
+UnknownText_0x1a1b66:
 	text "TRAINER TIPS"
 
 	para "No stealing other"
@@ -482,9 +378,8 @@
 	line "be thrown only at"
 	cont "wild #MON!"
 	done
-; 0x1a1bc0
 
-UnknownText_0x1a1bc0: ; 0x1a1bc0
+UnknownText_0x1a1bc0:
 	text "I lost again…"
 	line "Gee, you're tough!"
 
@@ -498,39 +393,37 @@
 	para "I'm going to get"
 	line "tougher too."
 	done
-; 0x1a1c54
 
-Route30_MapEventHeader: ; 0x1a1c54
+Route30_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 5
-	signpost 43, 9, $0, MapRoute30Signpost0Script
-	signpost 29, 13, $0, MapRoute30Signpost1Script
-	signpost 5, 15, $0, MapRoute30Signpost2Script
-	signpost 21, 3, $0, MapRoute30Signpost3Script
-	signpost 9, 14, $7, MapRoute30SignpostItem4
+	signpost 43, 9, SIGNPOST_READ, MapRoute30Signpost0Script
+	signpost 29, 13, SIGNPOST_READ, MapRoute30Signpost1Script
+	signpost 5, 15, SIGNPOST_READ, MapRoute30Signpost2Script
+	signpost 21, 3, SIGNPOST_READ, MapRoute30Signpost3Script
+	signpost 9, 14, SIGNPOST_ITEM, MapRoute30SignpostItem4
 
-	; people-events
+.PersonEvents:
 	db 11
-	person_event SPRITE_YOUNGSTER, 30, 9, $7, $0, 255, 255, $90, 0, YoungsterScript_0x1a1673, $0714
-	person_event SPRITE_YOUNGSTER, 32, 6, $9, $0, 255, 255, $92, 3, TrainerYoungsterJoey1, $0715
-	person_event SPRITE_YOUNGSTER, 27, 9, $6, $0, 255, 255, $92, 1, TrainerYoungsterMikey, $ffff
-	person_event SPRITE_BUG_CATCHER, 11, 5, $6, $0, 255, 255, $b2, 3, TrainerBug_catcherDon, $ffff
-	person_event SPRITE_YOUNGSTER, 34, 11, $5, $1, 255, 255, $80, 0, YoungsterScript_0x1a17d2, $ffff
-	person_event SPRITE_MONSTER, 28, 9, $6, $0, 255, 255, $80, 0, ObjectEvent, $0714
-	person_event SPRITE_MONSTER, 29, 9, $7, $0, 255, 255, $90, 0, ObjectEvent, $0714
-	person_event SPRITE_FRUIT_TREE, 43, 9, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x1a17f7, $ffff
-	person_event SPRITE_FRUIT_TREE, 9, 15, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x1a17f9, $ffff
-	person_event SPRITE_COOLTRAINER_F, 17, 6, $6, $0, 255, 255, $0, 0, CooltrainerFScript_0x1a17e6, $ffff
-	person_event SPRITE_POKE_BALL, 39, 12, $1, $0, 255, 255, $1, 0, ItemFragment_0x1a17f5, $07b8
-; 0x1a1d0c
+	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
--- a/maps/Route30BerrySpeechHouse.asm
+++ b/maps/Route30BerrySpeechHouse.asm
@@ -1,12 +1,11 @@
-Route30BerrySpeechHouse_MapScriptHeader: ; 0x196d62
-	; trigger count
+Route30BerrySpeechHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x196d64
 
-PokefanMScript_0x196d64: ; 0x196d64
+PokefanMScript_0x196d64:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_BERRY_FROM_ROUTE_30_HOUSE
@@ -16,18 +15,17 @@
 	verbosegiveitem BERRY, 1
 	iffalse UnknownScript_0x196d7d
 	setevent EVENT_GOT_BERRY_FROM_ROUTE_30_HOUSE
-UnknownScript_0x196d79: ; 0x196d79
+UnknownScript_0x196d79:
 	writetext UnknownText_0x196dec
 	closetext
-UnknownScript_0x196d7d: ; 0x196d7d
+UnknownScript_0x196d7d:
 	loadmovesprites
 	end
-; 0x196d7f
 
 Route30BerrySpeechHouseBookshelf:
 	jumpstd magazinebookshelf
 
-UnknownText_0x196d82: ; 0x196d82
+UnknownText_0x196d82:
 	text "You know, #MON"
 	line "eat BERRIES."
 
@@ -38,32 +36,30 @@
 	para "Here. I'll share"
 	line "one with you!"
 	done
-; 0x196dec
 
-UnknownText_0x196dec: ; 0x196dec
+UnknownText_0x196dec:
 	text "Check trees for"
 	line "BERRIES. They just"
 	cont "drop right off."
 	done
-; 0x196e20
 
-Route30BerrySpeechHouse_MapEventHeader: ; 0x196e20
+Route30BerrySpeechHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 0, $0, Route30BerrySpeechHouseBookshelf
-	signpost 1, 1, $0, Route30BerrySpeechHouseBookshelf
+	signpost 1, 0, SIGNPOST_READ, Route30BerrySpeechHouseBookshelf
+	signpost 1, 1, SIGNPOST_READ, Route30BerrySpeechHouseBookshelf
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_POKEFAN_M, 7, 6, $6, $0, 255, 255, $b0, 0, PokefanMScript_0x196d64, $ffff
+	person_event SPRITE_POKEFAN_M, 7, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_BROWN << 4) | $80, 0, PokefanMScript_0x196d64, -1
--- a/maps/Route31.asm
+++ b/maps/Route31.asm
@@ -1,227 +1,182 @@
-Route31_MapScriptHeader: ; 0x1a5437
-	; trigger count
+Route31_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 5, UnknownScript_0x1a543c
-; 0x1a543c
 
-UnknownScript_0x1a543c: ; 0x1a543c
+UnknownScript_0x1a543c:
 	checkevent EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST
 	iffalse UnknownScript_0x1a5443
 	return
-; 0x1a5443
 
-UnknownScript_0x1a5443: ; 0x1a5443
-	specialphonecall $7
+UnknownScript_0x1a5443:
+	specialphonecall MOMCALL_WORRIED
 	return
-; 0x1a5447
 
-TrainerBug_catcherWade1: ; 0x1a5447
-	; bit/flag number
-	dw $53b
+TrainerBug_catcherWade1:
+	trainer EVENT_BEAT_BUG_CATCHER_WADE, BUG_CATCHER, WADE1, Bug_catcherWade1SeenText, Bug_catcherWade1BeatenText, $0000, Bug_catcherWade1Script
 
-	; trainer group && trainer id
-	db BUG_CATCHER, WADE1
-
-	; text when seen
-	dw Bug_catcherWade1SeenText
-
-	; text when trainer beaten
-	dw Bug_catcherWade1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Bug_catcherWade1Script
-; 0x1a5453
-
-Bug_catcherWade1Script: ; 0x1a5453
-	writecode $17, $10
+Bug_catcherWade1Script:
+	writecode VAR_CALLERID, PHONE_BUG_CATCHER_WADE
 	talkaftercancel
 	loadfont
-	checkflag $006c
+	checkflag ENGINE_WADE
 	iftrue UnknownScript_0x1a5493
-	checkflag $007f
+	checkflag ENGINE_WADE_HAS_ITEM
 	iftrue UnknownScript_0x1a5507
-	checkcellnum $10
+	checkcellnum PHONE_BUG_CATCHER_WADE
 	iftrue UnknownScript_0x1a5558
-	checkevent $0275
+	checkevent EVENT_WADE_ASKED_FOR_PHONE_NUMBER
 	iftrue UnknownScript_0x1a547c
 	writetext UnknownText_0x1a5671
 	closetext
-	setevent $0275
+	setevent EVENT_WADE_ASKED_FOR_PHONE_NUMBER
 	scall UnknownScript_0x1a554c
 	jump UnknownScript_0x1a547f
-; 0x1a547c
 
-UnknownScript_0x1a547c: ; 0x1a547c
+UnknownScript_0x1a547c:
 	scall UnknownScript_0x1a5550
-UnknownScript_0x1a547f: ; 0x1a547f
-	askforphonenumber $10
+UnknownScript_0x1a547f:
+	askforphonenumber PHONE_BUG_CATCHER_WADE
 	if_equal $1, UnknownScript_0x1a5560
 	if_equal $2, UnknownScript_0x1a555c
 	trainertotext BUG_CATCHER, WADE1, $0
 	scall UnknownScript_0x1a5554
 	jump UnknownScript_0x1a5558
-; 0x1a5493
 
-UnknownScript_0x1a5493: ; 0x1a5493
+UnknownScript_0x1a5493:
 	scall UnknownScript_0x1a5564
 	winlosstext Bug_catcherWade1BeatenText, $0000
-	copybytetovar wd9fa
-	if_equal $4, UnknownScript_0x1a54b2
-	if_equal $3, UnknownScript_0x1a54b8
-	if_equal $2, UnknownScript_0x1a54be
-	if_equal $1, UnknownScript_0x1a54c4
-	if_equal $0, UnknownScript_0x1a54ca
-UnknownScript_0x1a54b2: ; 0x1a54b2
+	copybytetovar wWadeFightCount
+	if_equal 4, .Fight4
+	if_equal 3, .Fight3
+	if_equal 2, .Fight2
+	if_equal 1, .Fight1
+	if_equal 0, .LoadFight0
+.Fight4
 	checkevent EVENT_BEAT_ELITE_FOUR
-	iftrue UnknownScript_0x1a54fe
-UnknownScript_0x1a54b8: ; 0x1a54b8
+	iftrue .LoadFight4
+.Fight3
 	checkevent EVENT_CLEARED_RADIO_TOWER
-	iftrue UnknownScript_0x1a54f1
-UnknownScript_0x1a54be: ; 0x1a54be
-	checkflag $0049
-	iftrue UnknownScript_0x1a54e4
-UnknownScript_0x1a54c4: ; 0x1a54c4
-	checkflag $0046
-	iftrue UnknownScript_0x1a54d7
-UnknownScript_0x1a54ca: ; 0x1a54ca
+	iftrue .LoadFight3
+.Fight2
+	checkflag ENGINE_FLYPOINT_MAHOGANY
+	iftrue .LoadFight2
+.Fight1
+	checkflag ENGINE_FLYPOINT_GOLDENROD
+	iftrue .LoadFight1
+.LoadFight0
 	loadtrainer BUG_CATCHER, WADE1
 	startbattle
 	returnafterbattle
-	loadvar wd9fa, $1
-	clearflag $006c
+	loadvar wWadeFightCount, 1
+	clearflag ENGINE_WADE
 	end
-; 0x1a54d7
 
-UnknownScript_0x1a54d7: ; 0x1a54d7
+.LoadFight1
 	loadtrainer BUG_CATCHER, WADE2
 	startbattle
 	returnafterbattle
-	loadvar wd9fa, $2
-	clearflag $006c
+	loadvar wWadeFightCount, 2
+	clearflag ENGINE_WADE
 	end
-; 0x1a54e4
 
-UnknownScript_0x1a54e4: ; 0x1a54e4
+.LoadFight2
 	loadtrainer BUG_CATCHER, WADE3
 	startbattle
 	returnafterbattle
-	loadvar wd9fa, $3
-	clearflag $006c
+	loadvar wWadeFightCount, 3
+	clearflag ENGINE_WADE
 	end
-; 0x1a54f1
 
-UnknownScript_0x1a54f1: ; 0x1a54f1
+.LoadFight3
 	loadtrainer BUG_CATCHER, WADE4
 	startbattle
 	returnafterbattle
-	loadvar wd9fa, $4
-	clearflag $006c
+	loadvar wWadeFightCount, 4
+	clearflag ENGINE_WADE
 	end
-; 0x1a54fe
 
-UnknownScript_0x1a54fe: ; 0x1a54fe
+.LoadFight4
 	loadtrainer BUG_CATCHER, WADE5
 	startbattle
 	returnafterbattle
-	clearflag $006c
+	clearflag ENGINE_WADE
 	end
-; 0x1a5507
 
-UnknownScript_0x1a5507: ; 0x1a5507
+UnknownScript_0x1a5507:
 	scall UnknownScript_0x1a5568
 	checkevent EVENT_WADE_HAS_BERRY
-	iftrue UnknownScript_0x1a5522
+	iftrue .Berry
 	checkevent EVENT_WADE_HAS_PSNCUREBERRY
-	iftrue UnknownScript_0x1a552b
+	iftrue .Psncureberry
 	checkevent EVENT_WADE_HAS_PRZCUREBERRY
-	iftrue UnknownScript_0x1a5534
+	iftrue .Przcureberry
 	checkevent EVENT_WADE_HAS_BITTER_BERRY
-	iftrue UnknownScript_0x1a553d
-UnknownScript_0x1a5522: ; 0x1a5522
+	iftrue .BitterBerry
+.Berry
 	verbosegiveitem BERRY, 1
-	iffalse UnknownScript_0x1a5549
-	jump UnknownScript_0x1a5543
-; 0x1a552b
-
-UnknownScript_0x1a552b: ; 0x1a552b
+	iffalse .PackFull
+	jump .Done
+.Psncureberry
 	verbosegiveitem PSNCUREBERRY, 1
-	iffalse UnknownScript_0x1a5549
-	jump UnknownScript_0x1a5543
-; 0x1a5534
-
-UnknownScript_0x1a5534: ; 0x1a5534
+	iffalse .PackFull
+	jump .Done
+.Przcureberry
 	verbosegiveitem PRZCUREBERRY, 1
-	iffalse UnknownScript_0x1a5549
-	jump UnknownScript_0x1a5543
-; 0x1a553d
-
-UnknownScript_0x1a553d: ; 0x1a553d
+	iffalse .PackFull
+	jump .Done
+.BitterBerry
 	verbosegiveitem BITTER_BERRY, 1
-	iffalse UnknownScript_0x1a5549
-UnknownScript_0x1a5543: ; 0x1a5543
-	clearflag $007f
+	iffalse .PackFull
+.Done
+	clearflag ENGINE_WADE_HAS_ITEM
 	jump UnknownScript_0x1a5558
-; 0x1a5549
-
-UnknownScript_0x1a5549: ; 0x1a5549
+.PackFull
 	jump UnknownScript_0x1a556c
-; 0x1a554c
 
-UnknownScript_0x1a554c: ; 0x1a554c
+UnknownScript_0x1a554c:
 	jumpstd asknumber1m
 	end
-; 0x1a5550
 
-UnknownScript_0x1a5550: ; 0x1a5550
+UnknownScript_0x1a5550:
 	jumpstd asknumber2m
 	end
-; 0x1a5554
 
-UnknownScript_0x1a5554: ; 0x1a5554
+UnknownScript_0x1a5554:
 	jumpstd registerednumberm
 	end
-; 0x1a5558
 
-UnknownScript_0x1a5558: ; 0x1a5558
+UnknownScript_0x1a5558:
 	jumpstd numberacceptedm
 	end
-; 0x1a555c
 
-UnknownScript_0x1a555c: ; 0x1a555c
+UnknownScript_0x1a555c:
 	jumpstd numberdeclinedm
 	end
-; 0x1a5560
 
-UnknownScript_0x1a5560: ; 0x1a5560
+UnknownScript_0x1a5560:
 	jumpstd phonefullm
 	end
-; 0x1a5564
 
-UnknownScript_0x1a5564: ; 0x1a5564
+UnknownScript_0x1a5564:
 	jumpstd rematchm
 	end
-; 0x1a5568
 
-UnknownScript_0x1a5568: ; 0x1a5568
+UnknownScript_0x1a5568:
 	jumpstd giftm
 	end
-; 0x1a556c
 
-UnknownScript_0x1a556c: ; 0x1a556c
+UnknownScript_0x1a556c:
 	jumpstd packfullm
 	end
-; 0x1a5570
 
-FisherScript_0x1a5570: ; 0x1a5570
+FisherScript_0x1a5570:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_TM50_NIGHTMARE
@@ -232,9 +187,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a5584
 
-UnknownScript_0x1a5584: ; 0x1a5584
+UnknownScript_0x1a5584:
 	writetext UnknownText_0x1a5761
 	keeptextopen
 	checkpokeitem ReceivedSpearowMailText
@@ -247,77 +201,66 @@
 	writetext UnknownText_0x1a57ba
 	keeptextopen
 	setevent EVENT_GAVE_KENYA
-	verbosegiveitem TM_50, 1
+	verbosegiveitem TM_NIGHTMARE, 1
 	iffalse UnknownScript_0x1a55b3
 	setevent EVENT_GOT_TM50_NIGHTMARE
-UnknownScript_0x1a55af: ; 0x1a55af
+UnknownScript_0x1a55af:
 	writetext UnknownText_0x1a5896
 	closetext
-UnknownScript_0x1a55b3: ; 0x1a55b3
+UnknownScript_0x1a55b3:
 	loadmovesprites
 	end
-; 0x1a55b5
 
-UnknownScript_0x1a55b5: ; 0x1a55b5
+UnknownScript_0x1a55b5:
 	writetext UnknownText_0x1a5921
 	closetext
 	loadmovesprites
 	end
-; 0x1a55bb
 
-UnknownScript_0x1a55bb: ; 0x1a55bb
+UnknownScript_0x1a55bb:
 	writetext UnknownText_0x1a5939
 	closetext
 	loadmovesprites
 	end
-; 0x1a55c1
 
-UnknownScript_0x1a55c1: ; 0x1a55c1
+UnknownScript_0x1a55c1:
 	writetext UnknownText_0x1a5972
 	closetext
 	loadmovesprites
 	end
-; 0x1a55c7
 
-UnknownScript_0x1a55c7: ; 0x1a55c7
+UnknownScript_0x1a55c7:
 	writetext UnknownText_0x1a5991
 	closetext
 	loadmovesprites
 	end
 
-ReceivedSpearowMailText: ; 0x1a55cd
-	db "DARK CAVE leads",$4E
+ReceivedSpearowMailText:
+	db "DARK CAVE leads", $4E
 	db "to another road@"
 
-YoungsterScript_0x1a55ed: ; 0x1a55ed
+YoungsterScript_0x1a55ed:
 	jumptextfaceplayer UnknownText_0x1a59d5
-; 0x1a55f0
 
-MapRoute31Signpost0Script: ; 0x1a55f0
+MapRoute31Signpost0Script:
 	jumptext UnknownText_0x1a5a45
-; 0x1a55f3
 
-MapRoute31Signpost1Script: ; 0x1a55f3
+MapRoute31Signpost1Script:
 	jumptext UnknownText_0x1a5a6e
-; 0x1a55f6
 
-CooltrainerMScript_0x1a55f6: ; 0x1a55f6
+CooltrainerMScript_0x1a55f6:
 	jumptextfaceplayer UnknownText_0x1a55ff
-; 0x1a55f9
 
-FruitTreeScript_0x1a55f9: ; 0x1a55f9
+FruitTreeScript_0x1a55f9:
 	fruittree $7
-; 0x1a55fb
 
-ItemFragment_0x1a55fb: ; 0x1a55fb
+ItemFragment_0x1a55fb:
 	db POTION, 1
-; 0x1a55fd
 
-ItemFragment_0x1a55fd: ; 0x1a55fd
+ItemFragment_0x1a55fd:
 	db POKE_BALL, 1
-; 0x1a55ff
 
-UnknownText_0x1a55ff: ; 0x1a55ff
+UnknownText_0x1a55ff:
 	text "DARK CAVE…"
 
 	para "If #MON could"
@@ -324,21 +267,18 @@
 	line "light it up, I'd"
 	cont "explore it."
 	done
-; 0x1a5635
 
-Bug_catcherWade1SeenText: ; 0x1a5635
+Bug_catcherWade1SeenText:
 	text "I caught a bunch"
 	line "of #MON. Let me"
 	cont "battle with you!"
 	done
-; 0x1a5668
 
-Bug_catcherWade1BeatenText: ; 0x1a5668
+Bug_catcherWade1BeatenText:
 	text "Awwwww…"
 	done
-; 0x1a5671
 
-UnknownText_0x1a5671: ; 0x1a5671
+UnknownText_0x1a5671:
 	text "You can catch"
 	line "#MON even if"
 
@@ -349,9 +289,8 @@
 	line "it'll go to your"
 	cont "BOX automatically."
 	done
-; 0x1a56d9
 
-UnknownText_0x1a56d9: ; 0x1a56d9
+UnknownText_0x1a56d9:
 	text "… Hnuurg… Huh?"
 
 	para "I walked too far"
@@ -367,24 +306,21 @@
 
 	para "…Zzzz…"
 	done
-; 0x1a5761
 
-UnknownText_0x1a5761: ; 0x1a5761
+UnknownText_0x1a5761:
 	text "…Zzzz… Huh?"
 
 	para "What's that? You"
 	line "have MAIL for me?"
 	done
-; 0x1a5790
 
-UnknownText_0x1a5790: ; 0x1a5790
+UnknownText_0x1a5790:
 	text "<PLAYER> handed"
 	line "over the #MON"
 	cont "holding the MAIL."
 	done
-; 0x1a57ba
 
-UnknownText_0x1a57ba: ; 0x1a57ba
+UnknownText_0x1a57ba:
 	text "Let's see…"
 
 	para "…DARK CAVE leads"
@@ -407,9 +343,8 @@
 	para "I know! I want you"
 	line "to have this!"
 	done
-; 0x1a5896
 
-UnknownText_0x1a5896: ; 0x1a5896
+UnknownText_0x1a5896:
 	text "TM50 is NIGHTMARE."
 
 	para "It's a wicked move"
@@ -424,15 +359,13 @@
 	para "I don't want to"
 	line "have bad dreams."
 	done
-; 0x1a5921
 
-UnknownText_0x1a5921: ; 0x1a5921
+UnknownText_0x1a5921:
 	text "This MAIL isn't"
 	line "for me."
 	done
-; 0x1a5939
 
-UnknownText_0x1a5939: ; 0x1a5939
+UnknownText_0x1a5939:
 	text "Why is this #-"
 	line "MON so special?"
 
@@ -439,15 +372,13 @@
 	para "It doesn't have"
 	line "any MAIL."
 	done
-; 0x1a5972
 
-UnknownText_0x1a5972: ; 0x1a5972
+UnknownText_0x1a5972:
 	text "What? You don't"
 	line "want anything?"
 	done
-; 0x1a5991
 
-UnknownText_0x1a5991: ; 0x1a5991
+UnknownText_0x1a5991:
 	text "If I take that"
 	line "#MON from you,"
 
@@ -454,9 +385,8 @@
 	para "what are you going"
 	line "to use in battle?"
 	done
-; 0x1a59d5
 
-UnknownText_0x1a59d5: ; 0x1a59d5
+UnknownText_0x1a59d5:
 	text "I found a good"
 	line "#MON in DARK"
 	cont "CAVE."
@@ -468,46 +398,42 @@
 	para "He's the leader of"
 	line "VIOLET CITY's GYM."
 	done
-; 0x1a5a45
 
-UnknownText_0x1a5a45: ; 0x1a5a45
+UnknownText_0x1a5a45:
 	text "ROUTE 31"
 
 	para "VIOLET CITY -"
 	line "CHERRYGROVE CITY"
 	done
-; 0x1a5a6e
 
-UnknownText_0x1a5a6e: ; 0x1a5a6e
+UnknownText_0x1a5a6e:
 	text "DARK CAVE"
 	done
-; 0x1a5a79
 
-Route31_MapEventHeader: ; 0x1a5a79
+Route31_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 5, 7, $0, MapRoute31Signpost0Script
-	signpost 5, 31, $0, MapRoute31Signpost1Script
+	signpost 5, 7, SIGNPOST_READ, MapRoute31Signpost0Script
+	signpost 5, 31, SIGNPOST_READ, MapRoute31Signpost1Script
 
-	; people-events
+.PersonEvents:
 	db 7
-	person_event SPRITE_FISHER, 11, 21, $6, $0, 255, 255, $0, 0, FisherScript_0x1a5570, $ffff
-	person_event SPRITE_YOUNGSTER, 9, 13, $2, $11, 255, 255, $0, 0, YoungsterScript_0x1a55ed, $ffff
-	person_event SPRITE_BUG_CATCHER, 17, 25, $8, $0, 255, 255, $b2, 5, TrainerBug_catcherWade1, $ffff
-	person_event SPRITE_COOLTRAINER_M, 12, 37, $2, $11, 255, 255, $0, 0, CooltrainerMScript_0x1a55f6, $ffff
-	person_event SPRITE_FRUIT_TREE, 11, 20, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x1a55f9, $ffff
-	person_event SPRITE_POKE_BALL, 9, 33, $1, $0, 255, 255, $1, 0, ItemFragment_0x1a55fb, $06ae
-	person_event SPRITE_POKE_BALL, 19, 23, $1, $0, 255, 255, $1, 0, ItemFragment_0x1a55fd, $06af
-; 0x1a5af3
+	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
--- a/maps/Route31VioletGate.asm
+++ b/maps/Route31VioletGate.asm
@@ -1,38 +1,33 @@
-Route31VioletGate_MapScriptHeader: ; 0x197632
-	; trigger count
+Route31VioletGate_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x197634
 
-OfficerScript_0x197634: ; 0x197634
+OfficerScript_0x197634:
 	jumptextfaceplayer UnknownText_0x19763a
-; 0x197637
 
-CooltrainerFScript_0x197637: ; 0x197637
+CooltrainerFScript_0x197637:
 	jumptextfaceplayer UnknownText_0x197661
-; 0x19763a
 
-UnknownText_0x19763a: ; 0x19763a
+UnknownText_0x19763a:
 	text "Hi there!"
 	line "Did you visit"
 	cont "SPROUT TOWER?"
 	done
-; 0x197661
 
-UnknownText_0x197661: ; 0x197661
+UnknownText_0x197661:
 	text "I came too far"
 	line "out. I'd better"
 	cont "phone home!"
 	done
-; 0x19768c
 
-Route31VioletGate_MapEventHeader: ; 0x19768c
+Route31VioletGate_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -39,14 +34,13 @@
 	warp_def $4, $9, 1, GROUP_ROUTE_31, MAP_ROUTE_31
 	warp_def $5, $9, 2, GROUP_ROUTE_31, MAP_ROUTE_31
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_OFFICER, 6, 9, $6, $0, 255, 255, $80, 0, OfficerScript_0x197634, $ffff
-	person_event SPRITE_COOLTRAINER_F, 6, 5, $3, $0, 255, 255, $90, 0, CooltrainerFScript_0x197637, $ffff
-; 0x1976c0
+	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
--- a/maps/Route32.asm
+++ b/maps/Route32.asm
@@ -1,5 +1,5 @@
 Route32_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 3
 
 	; triggers
@@ -7,7 +7,7 @@
 	dw UnknownScript_0x190461, $0000
 	dw UnknownScript_0x190462, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -24,7 +24,7 @@
 	end
 
 FriedaCallback:
-	checkcode $b
+	checkcode VAR_WEEKDAY
 	if_equal FRIDAY, .FriedaAppears
 	disappear $e
 	return
@@ -39,7 +39,7 @@
 	loadfont
 	checkevent EVENT_GOT_MIRACLE_SEED_IN_ROUTE_32
 	iftrue UnknownScript_0x1904a5
-	checkflag $001b
+	checkflag ENGINE_ZEPHYRBADGE
 	iffalse UnknownScript_0x19049f
 	checkevent EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE
 	iftrue UnknownScript_0x19048f
@@ -98,7 +98,7 @@
 	iftrue UnknownScript_0x1904e3
 	writetext UnknownText_0x191133
 	keeptextopen
-	verbosegiveitem TM_05, 1
+	verbosegiveitem TM_ROAR, 1
 	iffalse UnknownScript_0x1904e7
 	setevent EVENT_GOT_TM05_ROAR
 UnknownScript_0x1904e3:
@@ -133,24 +133,8 @@
 	end
 
 TrainerCamperRoland:
-	; bit/flag number
-	dw $41a
+	trainer EVENT_BEAT_CAMPER_ROLAND, CAMPER, ROLAND, CamperRolandSeenText, CamperRolandBeatenText, $0000, CamperRolandScript
 
-	; trainer group && trainer id
-	db CAMPER, ROLAND
-
-	; text when seen
-	dw CamperRolandSeenText
-
-	; text when trainer beaten
-	dw CamperRolandBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CamperRolandScript
-
 CamperRolandScript:
 	talkaftercancel
 	loadfont
@@ -160,24 +144,8 @@
 	end
 
 TrainerFisherJustin:
-	; bit/flag number
-	dw $44e
+	trainer EVENT_BEAT_FISHER_JUSTIN, FISHER, JUSTIN, FisherJustinSeenText, FisherJustinBeatenText, $0000, FisherJustinScript
 
-	; trainer group && trainer id
-	db FISHER, JUSTIN
-
-	; text when seen
-	dw FisherJustinSeenText
-
-	; text when trainer beaten
-	dw FisherJustinBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw FisherJustinScript
-
 FisherJustinScript:
 	talkaftercancel
 	loadfont
@@ -187,39 +155,23 @@
 	end
 
 TrainerFisherRalph1:
-	; bit/flag number
-	dw $44f
+	trainer EVENT_BEAT_FISHER_RALPH, FISHER, RALPH1, FisherRalph1SeenText, FisherRalph1BeatenText, $0000, FisherRalph1Script
 
-	; trainer group && trainer id
-	db FISHER, RALPH1
-
-	; text when seen
-	dw FisherRalph1SeenText
-
-	; text when trainer beaten
-	dw FisherRalph1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw FisherRalph1Script
-
 FisherRalph1Script:
-	writecode $17, $11
+	writecode VAR_CALLERID, PHONE_FISHER_RALPH
 	talkaftercancel
 	loadfont
-	checkflag $006d
+	checkflag ENGINE_RALPH
 	iftrue UnknownScript_0x19057d
-	checkflag $0052
+	checkflag ENGINE_SPECIAL_WILDDATA
 	iftrue UnknownScript_0x1905f1
-	checkcellnum $11
+	checkcellnum PHONE_FISHER_RALPH
 	iftrue UnknownScript_0x190603
-	checkevent $0277
+	checkevent EVENT_RALPH_ASKED_FOR_PHONE_NUMBER
 	iftrue UnknownScript_0x190566
 	writetext UnknownText_0x190bf8
 	keeptextopen
-	setevent $0277
+	setevent EVENT_RALPH_ASKED_FOR_PHONE_NUMBER
 	scall UnknownScript_0x1905f7
 	jump UnknownScript_0x190569
 
@@ -226,7 +178,7 @@
 UnknownScript_0x190566:
 	scall UnknownScript_0x1905fb
 UnknownScript_0x190569:
-	askforphonenumber $11
+	askforphonenumber PHONE_FISHER_RALPH
 	if_equal $1, UnknownScript_0x19060b
 	if_equal $2, UnknownScript_0x190607
 	trainertotext FISHER, RALPH1, $0
@@ -236,61 +188,61 @@
 UnknownScript_0x19057d:
 	scall UnknownScript_0x19060f
 	winlosstext FisherRalph1BeatenText, $0000
-	copybytetovar wd9fb
-	if_equal $4, UnknownScript_0x19059c
-	if_equal $3, UnknownScript_0x1905a2
-	if_equal $2, UnknownScript_0x1905a8
-	if_equal $1, UnknownScript_0x1905ae
-	if_equal $0, UnknownScript_0x1905b4
-UnknownScript_0x19059c:
+	copybytetovar wRalphFightCount
+	if_equal 4, .Fight4
+	if_equal 3, .Fight3
+	if_equal 2, .Fight2
+	if_equal 1, .Fight1
+	if_equal 0, .LoadFight0
+.Fight4
 	checkevent EVENT_RESTORED_POWER_TO_KANTO
-	iftrue UnknownScript_0x1905e8
-UnknownScript_0x1905a2:
+	iftrue .LoadFight4
+.Fight3
 	checkevent EVENT_BEAT_ELITE_FOUR
-	iftrue UnknownScript_0x1905db
-UnknownScript_0x1905a8:
-	checkflag $004a
-	iftrue UnknownScript_0x1905ce
-UnknownScript_0x1905ae:
-	checkflag $0048
-	iftrue UnknownScript_0x1905c1
-UnknownScript_0x1905b4:
+	iftrue .LoadFight3
+.Fight2
+	checkflag ENGINE_FLYPOINT_LAKE_OF_RAGE
+	iftrue .LoadFight2
+.Fight1
+	checkflag ENGINE_FLYPOINT_ECRUTEAK
+	iftrue .LoadFight1
+.LoadFight0
 	loadtrainer FISHER, RALPH1
 	startbattle
 	returnafterbattle
-	loadvar wd9fb, $1
-	clearflag $006d
+	loadvar wRalphFightCount, 1
+	clearflag ENGINE_RALPH
 	end
 
-UnknownScript_0x1905c1:
+.LoadFight1
 	loadtrainer FISHER, RALPH2
 	startbattle
 	returnafterbattle
-	loadvar wd9fb, $2
-	clearflag $006d
+	loadvar wRalphFightCount, 2
+	clearflag ENGINE_RALPH
 	end
 
-UnknownScript_0x1905ce:
+.LoadFight2
 	loadtrainer FISHER, RALPH3
 	startbattle
 	returnafterbattle
-	loadvar wd9fb, $3
-	clearflag $006d
+	loadvar wRalphFightCount, 3
+	clearflag ENGINE_RALPH
 	end
 
-UnknownScript_0x1905db:
+.LoadFight3
 	loadtrainer FISHER, RALPH4
 	startbattle
 	returnafterbattle
-	loadvar wd9fb, $4
-	clearflag $006d
+	loadvar wRalphFightCount, 4
+	clearflag ENGINE_RALPH
 	end
 
-UnknownScript_0x1905e8:
+.LoadFight4
 	loadtrainer FISHER, RALPH5
 	startbattle
 	returnafterbattle
-	clearflag $006d
+	clearflag ENGINE_RALPH
 	end
 
 UnknownScript_0x1905f1:
@@ -328,24 +280,8 @@
 	end
 
 TrainerFisherHenry:
-	; bit/flag number
-	dw $452
+	trainer EVENT_BEAT_FISHER_HENRY, FISHER, HENRY, FisherHenrySeenText, FisherHenryBeatenText, $0000, FisherHenryScript
 
-	; trainer group && trainer id
-	db FISHER, HENRY
-
-	; text when seen
-	dw FisherHenrySeenText
-
-	; text when trainer beaten
-	dw FisherHenryBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw FisherHenryScript
-
 FisherHenryScript:
 	talkaftercancel
 	loadfont
@@ -355,37 +291,21 @@
 	end
 
 TrainerPicnickerLiz1:
-	; bit/flag number
-	dw $47e
+	trainer EVENT_BEAT_PICNICKER_LIZ, PICNICKER, LIZ1, PicnickerLiz1SeenText, PicnickerLiz1BeatenText, $0000, PicnickerLiz1Script
 
-	; trainer group && trainer id
-	db PICNICKER, LIZ1
-
-	; text when seen
-	dw PicnickerLiz1SeenText
-
-	; text when trainer beaten
-	dw PicnickerLiz1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PicnickerLiz1Script
-
 PicnickerLiz1Script:
-	writecode $17, $12
+	writecode VAR_CALLERID, PHONE_PICNICKER_LIZ
 	talkaftercancel
 	loadfont
-	checkflag $006e
+	checkflag ENGINE_LIZ
 	iftrue UnknownScript_0x19066d
-	checkcellnum $12
+	checkcellnum PHONE_PICNICKER_LIZ
 	iftrue UnknownScript_0x1906ed
-	checkevent $0279
+	checkevent EVENT_LIZ_ASKED_FOR_PHONE_NUMBER
 	iftrue UnknownScript_0x190656
 	writetext UnknownText_0x191060
 	keeptextopen
-	setevent $0279
+	setevent EVENT_LIZ_ASKED_FOR_PHONE_NUMBER
 	scall UnknownScript_0x1906e1
 	jump UnknownScript_0x190659
 
@@ -392,7 +312,7 @@
 UnknownScript_0x190656:
 	scall UnknownScript_0x1906e5
 UnknownScript_0x190659:
-	askforphonenumber $12
+	askforphonenumber PHONE_PICNICKER_LIZ
 	if_equal $1, UnknownScript_0x1906f5
 	if_equal $2, UnknownScript_0x1906f1
 	trainertotext PICNICKER, LIZ1, $0
@@ -402,61 +322,61 @@
 UnknownScript_0x19066d:
 	scall UnknownScript_0x1906f9
 	winlosstext PicnickerLiz1BeatenText, $0000
-	copybytetovar wd9fc
-	if_equal $4, UnknownScript_0x19068c
-	if_equal $3, UnknownScript_0x190692
-	if_equal $2, UnknownScript_0x190698
-	if_equal $1, UnknownScript_0x19069e
-	if_equal $0, UnknownScript_0x1906a4
-UnknownScript_0x19068c:
+	copybytetovar wLizFightCount
+	if_equal 4, .Fight4
+	if_equal 3, .Fight3
+	if_equal 2, .Fight2
+	if_equal 1, .Fight1
+	if_equal 0, .LoadFight0
+.Fight4
 	checkevent EVENT_BEAT_ELITE_FOUR
-	iftrue UnknownScript_0x1906d8
-UnknownScript_0x190692:
+	iftrue .LoadFight4
+.Fight3
 	checkevent EVENT_CLEARED_RADIO_TOWER
-	iftrue UnknownScript_0x1906cb
-UnknownScript_0x190698:
+	iftrue .LoadFight3
+.Fight2
 	checkevent EVENT_CLEARED_ROCKET_HIDEOUT
-	iftrue UnknownScript_0x1906be
-UnknownScript_0x19069e:
-	checkflag $0048
-	iftrue UnknownScript_0x1906b1
-UnknownScript_0x1906a4:
+	iftrue .LoadFight2
+.Fight1
+	checkflag ENGINE_FLYPOINT_ECRUTEAK
+	iftrue .LoadFight1
+.LoadFight0
 	loadtrainer PICNICKER, LIZ1
 	startbattle
 	returnafterbattle
-	loadvar wd9fc, $1
-	clearflag $006e
+	loadvar wLizFightCount, 1
+	clearflag ENGINE_LIZ
 	end
 
-UnknownScript_0x1906b1:
+.LoadFight1
 	loadtrainer PICNICKER, LIZ2
 	startbattle
 	returnafterbattle
-	loadvar wd9fc, $2
-	clearflag $006e
+	loadvar wLizFightCount, 2
+	clearflag ENGINE_LIZ
 	end
 
-UnknownScript_0x1906be:
+.LoadFight2
 	loadtrainer PICNICKER, LIZ3
 	startbattle
 	returnafterbattle
-	loadvar wd9fc, $3
-	clearflag $006e
+	loadvar wLizFightCount, 3
+	clearflag ENGINE_LIZ
 	end
 
-UnknownScript_0x1906cb:
+.LoadFight3
 	loadtrainer PICNICKER, LIZ4
 	startbattle
 	returnafterbattle
-	loadvar wd9fc, $4
-	clearflag $006e
+	loadvar wLizFightCount, 4
+	clearflag ENGINE_LIZ
 	end
 
-UnknownScript_0x1906d8:
+.LoadFight4
 	loadtrainer PICNICKER, LIZ5
 	startbattle
 	returnafterbattle
-	clearflag $006e
+	clearflag ENGINE_LIZ
 	end
 
 UnknownScript_0x1906e1:
@@ -488,24 +408,8 @@
 	end
 
 TrainerYoungsterAlbert:
-	; bit/flag number
-	dw $5ab
+	trainer EVENT_BEAT_YOUNGSTER_ALBERT, YOUNGSTER, ALBERT, YoungsterAlbertSeenText, YoungsterAlbertBeatenText, $0000, YoungsterAlbertScript
 
-	; trainer group && trainer id
-	db YOUNGSTER, ALBERT
-
-	; text when seen
-	dw YoungsterAlbertSeenText
-
-	; text when trainer beaten
-	dw YoungsterAlbertBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw YoungsterAlbertScript
-
 YoungsterAlbertScript:
 	talkaftercancel
 	loadfont
@@ -515,24 +419,8 @@
 	end
 
 TrainerYoungsterGordon:
-	; bit/flag number
-	dw $5ac
+	trainer EVENT_BEAT_YOUNGSTER_GORDON, YOUNGSTER, GORDON, YoungsterGordonSeenText, YoungsterGordonBeatenText, $0000, YoungsterGordonScript
 
-	; trainer group && trainer id
-	db YOUNGSTER, GORDON
-
-	; text when seen
-	dw YoungsterGordonSeenText
-
-	; text when trainer beaten
-	dw YoungsterGordonBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw YoungsterGordonScript
-
 YoungsterGordonScript:
 	talkaftercancel
 	loadfont
@@ -542,24 +430,8 @@
 	end
 
 TrainerBird_keeperPeter:
-	; bit/flag number
-	dw $407
+	trainer EVENT_BEAT_BIRD_KEEPER_PETER, BIRD_KEEPER, PETER, Bird_keeperPeterSeenText, Bird_keeperPeterBeatenText, $0000, Bird_keeperPeterScript
 
-	; trainer group && trainer id
-	db BIRD_KEEPER, PETER
-
-	; text when seen
-	dw Bird_keeperPeterSeenText
-
-	; text when trainer beaten
-	dw Bird_keeperPeterBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Bird_keeperPeterScript
-
 Bird_keeperPeterScript:
 	talkaftercancel
 	loadfont
@@ -573,7 +445,7 @@
 	loadfont
 	checkevent EVENT_GOT_POISON_BARB_FROM_FRIEDA
 	iftrue FriedaFridayScript
-	checkcode $b
+	checkcode VAR_WEEKDAY
 	if_not_equal FRIDAY, FriedaNotFridayScript
 	checkevent EVENT_MET_FRIEDA_OF_FRIDAY
 	iftrue .MetFrieda
@@ -623,13 +495,11 @@
 	jumpstd pokecentersign
 
 MapRoute32SignpostItem4:
-	dw $00a5
-	db GREAT_BALL
+	dwb EVENT_ROUTE_32_HIDDEN_GREAT_BALL, GREAT_BALL
 	
 
 MapRoute32SignpostItem5:
-	dw $00a6
-	db SUPER_POTION
+	dwb EVENT_ROUTE_32_HIDDEN_SUPER_POTION, SUPER_POTION
 	
 
 MovementData_0x190789:
@@ -1053,7 +923,7 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -1060,33 +930,33 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 2
 	xy_trigger 0, $8, $12, $0, UnknownScript_0x1904ab, $0, $0
 	xy_trigger 1, $47, $7, $0, UnknownScript_0x1904e9, $0, $0
 
-	; signposts
+.Signposts:
 	db 6
-	signpost 5, 13, $0, Route32Sign
-	signpost 1, 9, $0, Route32RuinsSign
-	signpost 84, 10, $0, Route32UnionCaveSign
-	signpost 73, 12, $0, Route32PokeCenterSign
-	signpost 67, 12, $7, MapRoute32SignpostItem4
-	signpost 40, 11, $7, MapRoute32SignpostItem5
+	signpost 5, 13, SIGNPOST_READ, Route32Sign
+	signpost 1, 9, SIGNPOST_READ, Route32RuinsSign
+	signpost 84, 10, SIGNPOST_READ, Route32UnionCaveSign
+	signpost 73, 12, SIGNPOST_READ, Route32PokeCenterSign
+	signpost 67, 12, SIGNPOST_ITEM, MapRoute32SignpostItem4
+	signpost 40, 11, SIGNPOST_ITEM, MapRoute32SignpostItem5
 
-	; people-events
+.PersonEvents:
 	db 14
-	person_event SPRITE_FISHER, 53, 12, $6, $0, 255, 255, $a2, 1, TrainerFisherJustin, $ffff
-	person_event SPRITE_FISHER, 60, 16, $7, $0, 255, 255, $a2, 3, TrainerFisherRalph1, $ffff
-	person_event SPRITE_FISHER, 52, 10, $8, $0, 255, 255, $a2, 1, TrainerFisherHenry, $ffff
-	person_event SPRITE_YOUNGSTER, 26, 16, $9, $0, 255, 255, $92, 3, TrainerYoungsterAlbert, $ffff
-	person_event SPRITE_YOUNGSTER, 67, 8, $a, $0, 255, 255, $92, 3, TrainerYoungsterGordon, $ffff
-	person_event SPRITE_YOUNGSTER, 49, 7, $7, $0, 255, 255, $a2, 3, TrainerCamperRoland, $ffff
-	person_event SPRITE_LASS, 34, 14, $8, $0, 255, 255, $a2, 1, TrainerPicnickerLiz1, $ffff
-	person_event SPRITE_COOLTRAINER_M, 12, 23, $8, $0, 255, 255, $0, 0, CooltrainerMScript_0x19046f, $ffff
-	person_event SPRITE_YOUNGSTER, 86, 15, $7, $0, 255, 255, $92, 3, TrainerBird_keeperPeter, $ffff
-	person_event SPRITE_FISHER, 74, 11, $6, $0, 255, 255, $0, 0, FisherScript_0x1904f2, $06fc
-	person_event SPRITE_POKE_BALL, 57, 10, $1, $0, 255, 255, $1, 0, ItemFragment_0x190773, $06b0
-	person_event SPRITE_FISHER, 17, 19, $9, $0, 255, 255, $0, 0, FisherScript_0x1904ce, $ffff
-	person_event SPRITE_LASS, 71, 16, $8, $0, 255, 255, $0, 0, FriedaScript, $0758
-	person_event SPRITE_POKE_BALL, 34, 7, $1, $0, 255, 255, $1, 0, ItemFragment_0x190775, $06b1
+	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
--- a/maps/Route32PokeCenter1F.asm
+++ b/maps/Route32PokeCenter1F.asm
@@ -1,16 +1,14 @@
-Route32PokeCenter1F_MapScriptHeader: ; 0x69b50
-	; trigger count
+Route32PokeCenter1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x69b52
 
-NurseScript_0x69b52: ; 0x69b52
+NurseScript_0x69b52:
 	jumpstd pokecenternurse
-; 0x69b55
 
-FishingGuruScript_0x69b55: ; 0x69b55
+FishingGuruScript_0x69b55:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_OLD_ROD
@@ -26,27 +24,23 @@
 	loadmovesprites
 	setevent EVENT_GOT_OLD_ROD
 	end
-; 0x69b74
 
-UnknownScript_0x69b74: ; 0x69b74
+UnknownScript_0x69b74:
 	writetext UnknownText_0x69c6c
 	closetext
 	loadmovesprites
 	end
-; 0x69b7a
 
-UnknownScript_0x69b7a: ; 0x69b7a
+UnknownScript_0x69b7a:
 	writetext UnknownText_0x69c8d
 	closetext
 	loadmovesprites
 	end
-; 0x69b80
 
-CooltrainerFScript_0x69b80: ; 0x69b80
+CooltrainerFScript_0x69b80:
 	jumptextfaceplayer UnknownText_0x69cac
-; 0x69b83
 
-UnknownText_0x69b83: ; 0x69b83
+UnknownText_0x69b83:
 	text "This is a great"
 	line "fishing spot."
 
@@ -57,9 +51,8 @@
 	para "Would you like one"
 	line "of my RODS?"
 	done
-; 0x69be8
 
-UnknownText_0x69be8: ; 0x69be8
+UnknownText_0x69be8:
 	text "Heh, that's good"
 	line "to hear."
 
@@ -66,9 +59,8 @@
 	para "Now you're an"
 	line "angler too!"
 	done
-; 0x69c1b
 
-UnknownText_0x69c1b: ; 0x69c1b
+UnknownText_0x69c1b:
 	text "Fishing is great!"
 
 	para "If there's water,"
@@ -77,21 +69,18 @@
 	para "stream, try out"
 	line "your ROD."
 	done
-; 0x69c6c
 
-UnknownText_0x69c6c: ; 0x69c6c
+UnknownText_0x69c6c:
 	text "Oh. That's rather"
 	line "disappointing…"
 	done
-; 0x69c8d
 
-UnknownText_0x69c8d: ; 0x69c8d
+UnknownText_0x69c8d:
 	text "Yo, kid. How are"
 	line "they biting?"
 	done
-; 0x69cac
 
-UnknownText_0x69cac: ; 0x69cac
+UnknownText_0x69cac:
 	text "What should I make"
 	line "my #MON hold?"
 
@@ -99,27 +88,25 @@
 	line "increases ATTACK"
 	cont "power…"
 	done
-; 0x69cf9
 
-Route32PokeCenter1F_MapEventHeader: ; 0x69cf9
+Route32PokeCenter1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_NURSE, 5, 7, $6, $0, 255, 255, $0, 0, NurseScript_0x69b52, $ffff
-	person_event SPRITE_FISHING_GURU, 8, 5, $6, $0, 255, 255, $a0, 0, FishingGuruScript_0x69b55, $ffff
-	person_event SPRITE_COOLTRAINER_F, 6, 10, $6, $0, 255, 255, $80, 0, CooltrainerFScript_0x69b80, $ffff
-; 0x69d35
+	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
--- a/maps/Route32RuinsofAlphGate.asm
+++ b/maps/Route32RuinsofAlphGate.asm
@@ -1,24 +1,20 @@
-Route32RuinsofAlphGate_MapScriptHeader: ; 0x69a2b
-	; trigger count
+Route32RuinsofAlphGate_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x69a2d
 
-OfficerScript_0x69a2d: ; 0x69a2d
+OfficerScript_0x69a2d:
 	jumptextfaceplayer UnknownText_0x69a36
-; 0x69a30
 
-PokefanMScript_0x69a30: ; 0x69a30
+PokefanMScript_0x69a30:
 	jumptextfaceplayer UnknownText_0x69a81
-; 0x69a33
 
-YoungsterScript_0x69a33: ; 0x69a33
+YoungsterScript_0x69a33:
 	jumptextfaceplayer UnknownText_0x69abd
-; 0x69a36
 
-UnknownText_0x69a36: ; 0x69a36
+UnknownText_0x69a36:
 	text "RUINS OF ALPH"
 
 	para "A Look-and-Touch"
@@ -27,9 +23,8 @@
 	para "Try the sliding"
 	line "stone panels!"
 	done
-; 0x69a81
 
-UnknownText_0x69a81: ; 0x69a81
+UnknownText_0x69a81:
 	text "You're studying"
 	line "the RUINS?"
 
@@ -36,9 +31,8 @@
 	para "I see a scientist"
 	line "in the making."
 	done
-; 0x69abd
 
-UnknownText_0x69abd: ; 0x69abd
+UnknownText_0x69abd:
 	text "There are drawings"
 	line "on stone panels."
 
@@ -46,13 +40,12 @@
 	line "them. I wonder"
 	cont "what they are."
 	done
-; 0x69b0f
 
-Route32RuinsofAlphGate_MapEventHeader: ; 0x69b0f
+Route32RuinsofAlphGate_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -59,15 +52,14 @@
 	warp_def $4, $9, 2, GROUP_ROUTE_32, MAP_ROUTE_32
 	warp_def $5, $9, 3, GROUP_ROUTE_32, MAP_ROUTE_32
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_OFFICER, 6, 9, $6, $0, 255, 255, $80, 0, OfficerScript_0x69a2d, $ffff
-	person_event SPRITE_POKEFAN_M, 6, 12, $4, $10, 255, 255, $b0, 0, PokefanMScript_0x69a30, $ffff
-	person_event SPRITE_YOUNGSTER, 10, 5, $7, $0, 255, 255, $a0, 0, YoungsterScript_0x69a33, $ffff
-; 0x69b50
+	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
--- a/maps/Route33.asm
+++ b/maps/Route33.asm
@@ -1,181 +1,145 @@
-Route33_MapScriptHeader: ; 0x1ac000
-	; trigger count
+Route33_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1ac002
 
-LassScript_0x1ac002: ; 0x1ac002
+LassScript_0x1ac002:
 	jumptextfaceplayer UnknownText_0x1ac1e7
-; 0x1ac005
 
-TrainerHikerAnthony2: ; 0x1ac005
-	; bit/flag number
-	dw $528
+TrainerHikerAnthony:
+	trainer EVENT_BEAT_HIKER_ANTHONY, HIKER, ANTHONY2, HikerAnthony2SeenText, HikerAnthony2BeatenText, $0000, HikerAnthony2Script
 
-	; trainer group && trainer id
-	db HIKER, ANTHONY2
-
-	; text when seen
-	dw HikerAnthony2SeenText
-
-	; text when trainer beaten
-	dw HikerAnthony2BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw HikerAnthony2Script
-; 0x1ac011
-
-HikerAnthony2Script: ; 0x1ac011
-	writecode $17, $13
+HikerAnthony2Script:
+	writecode VAR_CALLERID, PHONE_HIKER_ANTHONY
 	talkaftercancel
 	loadfont
-	checkflag $006f
+	checkflag ENGINE_ANTHONY
 	iftrue UnknownScript_0x1ac051
-	checkflag $00a0
+	checkflag ENGINE_DUNSPARCE_SWARM
 	iftrue UnknownScript_0x1ac0c5
-	checkcellnum $13
+	checkcellnum PHONE_HIKER_ANTHONY
 	iftrue UnknownScript_0x1ac0d7
-	checkevent $027b
+	checkevent EVENT_ANTHONY_ASKED_FOR_PHONE_NUMBER
 	iftrue UnknownScript_0x1ac03a
 	writetext UnknownText_0x1ac153
 	keeptextopen
-	setevent $027b
+	setevent EVENT_ANTHONY_ASKED_FOR_PHONE_NUMBER
 	scall UnknownScript_0x1ac0cb
 	jump UnknownScript_0x1ac03d
-; 0x1ac03a
 
-UnknownScript_0x1ac03a: ; 0x1ac03a
+UnknownScript_0x1ac03a:
 	scall UnknownScript_0x1ac0cf
-UnknownScript_0x1ac03d: ; 0x1ac03d
-	askforphonenumber $13
+UnknownScript_0x1ac03d:
+	askforphonenumber PHONE_HIKER_ANTHONY
 	if_equal $1, UnknownScript_0x1ac0df
 	if_equal $2, UnknownScript_0x1ac0db
 	trainertotext HIKER, ANTHONY2, $0
 	scall UnknownScript_0x1ac0d3
 	jump UnknownScript_0x1ac0d7
-; 0x1ac051
 
-UnknownScript_0x1ac051: ; 0x1ac051
+UnknownScript_0x1ac051:
 	scall UnknownScript_0x1ac0e3
 	winlosstext HikerAnthony2BeatenText, $0000
-	copybytetovar wd9fd
-	if_equal $4, UnknownScript_0x1ac070
-	if_equal $3, UnknownScript_0x1ac076
-	if_equal $2, UnknownScript_0x1ac07c
-	if_equal $1, UnknownScript_0x1ac082
-	if_equal $0, UnknownScript_0x1ac088
-UnknownScript_0x1ac070: ; 0x1ac070
+	copybytetovar wAnthonyFightCount
+	if_equal 4, .Fight4
+	if_equal 3, .Fight3
+	if_equal 2, .Fight2
+	if_equal 1, .Fight1
+	if_equal 0, .LoadFight0
+.Fight4
 	checkevent EVENT_RESTORED_POWER_TO_KANTO
-	iftrue UnknownScript_0x1ac0bc
-UnknownScript_0x1ac076: ; 0x1ac076
+	iftrue .LoadFight4
+.Fight3
 	checkevent EVENT_BEAT_ELITE_FOUR
-	iftrue UnknownScript_0x1ac0af
-UnknownScript_0x1ac07c: ; 0x1ac07c
+	iftrue .LoadFight3
+.Fight2
 	checkevent EVENT_CLEARED_RADIO_TOWER
-	iftrue UnknownScript_0x1ac0a2
-UnknownScript_0x1ac082: ; 0x1ac082
-	checkflag $0047
-	iftrue UnknownScript_0x1ac095
-UnknownScript_0x1ac088: ; 0x1ac088
+	iftrue .LoadFight2
+.Fight1
+	checkflag ENGINE_FLYPOINT_OLIVINE
+	iftrue .LoadFight1
+.LoadFight0
 	loadtrainer HIKER, ANTHONY2
 	startbattle
 	returnafterbattle
-	loadvar wd9fd, $1
-	clearflag $006f
+	loadvar wAnthonyFightCount, 1
+	clearflag ENGINE_ANTHONY
 	end
-; 0x1ac095
 
-UnknownScript_0x1ac095: ; 0x1ac095
+.LoadFight1
 	loadtrainer HIKER, ANTHONY1
 	startbattle
 	returnafterbattle
-	loadvar wd9fd, $2
-	clearflag $006f
+	loadvar wAnthonyFightCount, 2
+	clearflag ENGINE_ANTHONY
 	end
-; 0x1ac0a2
 
-UnknownScript_0x1ac0a2: ; 0x1ac0a2
+.LoadFight2
 	loadtrainer HIKER, ANTHONY3
 	startbattle
 	returnafterbattle
-	loadvar wd9fd, $3
-	clearflag $006f
+	loadvar wAnthonyFightCount, 3
+	clearflag ENGINE_ANTHONY
 	end
-; 0x1ac0af
 
-UnknownScript_0x1ac0af: ; 0x1ac0af
+.LoadFight3
 	loadtrainer HIKER, ANTHONY4
 	startbattle
 	returnafterbattle
-	loadvar wd9fd, $4
-	clearflag $006f
+	loadvar wAnthonyFightCount, 4
+	clearflag ENGINE_ANTHONY
 	end
-; 0x1ac0bc
 
-UnknownScript_0x1ac0bc: ; 0x1ac0bc
+.LoadFight4
 	loadtrainer HIKER, ANTHONY5
 	startbattle
 	returnafterbattle
-	clearflag $006f
+	clearflag ENGINE_ANTHONY
 	end
-; 0x1ac0c5
 
-UnknownScript_0x1ac0c5: ; 0x1ac0c5
+UnknownScript_0x1ac0c5:
 	writetext UnknownText_0x1ac180
 	closetext
 	loadmovesprites
 	end
-; 0x1ac0cb
 
-UnknownScript_0x1ac0cb: ; 0x1ac0cb
+UnknownScript_0x1ac0cb:
 	jumpstd asknumber1m
 	end
-; 0x1ac0cf
 
-UnknownScript_0x1ac0cf: ; 0x1ac0cf
+UnknownScript_0x1ac0cf:
 	jumpstd asknumber2m
 	end
-; 0x1ac0d3
 
-UnknownScript_0x1ac0d3: ; 0x1ac0d3
+UnknownScript_0x1ac0d3:
 	jumpstd registerednumberm
 	end
-; 0x1ac0d7
 
-UnknownScript_0x1ac0d7: ; 0x1ac0d7
+UnknownScript_0x1ac0d7:
 	jumpstd numberacceptedm
 	end
-; 0x1ac0db
 
-UnknownScript_0x1ac0db: ; 0x1ac0db
+UnknownScript_0x1ac0db:
 	jumpstd numberdeclinedm
 	end
-; 0x1ac0df
 
-UnknownScript_0x1ac0df: ; 0x1ac0df
+UnknownScript_0x1ac0df:
 	jumpstd phonefullm
 	end
-; 0x1ac0e3
 
-UnknownScript_0x1ac0e3: ; 0x1ac0e3
+UnknownScript_0x1ac0e3:
 	jumpstd rematchm
 	end
-; 0x1ac0e7
 
-MapRoute33Signpost0Script: ; 0x1ac0e7
+MapRoute33Signpost0Script:
 	jumptext UnknownText_0x1ac279
-; 0x1ac0ea
 
-FruitTreeScript_0x1ac0ea: ; 0x1ac0ea
+FruitTreeScript_0x1ac0ea:
 	fruittree $6
-; 0x1ac0ec
 
-HikerAnthony2SeenText: ; 0x1ac0ec
+HikerAnthony2SeenText:
 	text "I came through the"
 	line "tunnel, but I"
 
@@ -182,22 +146,19 @@
 	para "still have plenty"
 	line "of energy left."
 	done
-; 0x1ac130
 
-HikerAnthony2BeatenText: ; 0x1ac130
+HikerAnthony2BeatenText:
 	text "Whoa! You've got"
 	line "more zip than me!"
 	done
-; 0x1ac153
 
-UnknownText_0x1ac153: ; 0x1ac153
+UnknownText_0x1ac153:
 	text "We HIKERS are at"
 	line "our best in the"
 	cont "mountains."
 	done
-; 0x1ac180
 
-UnknownText_0x1ac180: ; 0x1ac180
+UnknownText_0x1ac180:
 	text "Hey, did you get a"
 	line "DUNSPARCE?"
 
@@ -207,9 +168,8 @@
 	line "in the light. It's"
 	cont "got a funny face!"
 	done
-; 0x1ac1e7
 
-UnknownText_0x1ac1e7: ; 0x1ac1e7
+UnknownText_0x1ac1e7:
 	text "Pant, pant…"
 
 	para "I finally got"
@@ -224,31 +184,28 @@
 	para "thing, so I came"
 	line "outside."
 	done
-; 0x1ac279
 
-UnknownText_0x1ac279: ; 0x1ac279
+UnknownText_0x1ac279:
 	text "ROUTE 33"
 	done
-; 0x1ac283
 
-Route33_MapEventHeader: ; 0x1ac283
+Route33_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $9, $b, 3, GROUP_UNION_CAVE_1F, MAP_UNION_CAVE_1F
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 11, 11, $0, MapRoute33Signpost0Script
+	signpost 11, 11, SIGNPOST_READ, MapRoute33Signpost0Script
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_POKEFAN_M, 17, 10, $a, $0, 255, 255, $b2, 2, TrainerHikerAnthony2, $ffff
-	person_event SPRITE_LASS, 20, 17, $2, $11, 255, 255, $90, 0, LassScript_0x1ac002, $ffff
-	person_event SPRITE_FRUIT_TREE, 20, 18, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x1ac0ea, $ffff
-; 0x1ac2ba
+	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
--- a/maps/Route34.asm
+++ b/maps/Route34.asm
@@ -1,427 +1,349 @@
-Route34_MapScriptHeader: ; 0x78000
-	; trigger count
+Route34_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 2, UnknownScript_0x78005
-; 0x78005
 
-UnknownScript_0x78005: ; 0x78005
-	checkflag $0005
+UnknownScript_0x78005:
+	checkflag ENGINE_DAYCARE_MONS_ARE_COMPATIBLE
 	iftrue UnknownScript_0x78014
-	clearevent $06e5
-	setevent $06e6
+	clearevent EVENT_DAYCARE_MAN_IN_DAYCARE
+	setevent EVENT_DAYCARE_MAN_ON_ROUTE_34
 	jump UnknownScript_0x7801d
-; 0x78014
 
-UnknownScript_0x78014: ; 0x78014
-	setevent $06e5
-	clearevent $06e6
+UnknownScript_0x78014:
+	setevent EVENT_DAYCARE_MAN_IN_DAYCARE
+	clearevent EVENT_DAYCARE_MAN_ON_ROUTE_34
 	jump UnknownScript_0x7801d
-; 0x7801d
 
-UnknownScript_0x7801d: ; 0x7801d
-	checkflag $0006
+UnknownScript_0x7801d:
+	checkflag ENGINE_DAYCARE_MAN_HAS_MON
 	iffalse UnknownScript_0x78029
-	clearevent $06e7
+	clearevent EVENT_DAYCARE_MON_1
 	jump UnknownScript_0x7802f
-; 0x78029
 
-UnknownScript_0x78029: ; 0x78029
-	setevent $06e7
+UnknownScript_0x78029:
+	setevent EVENT_DAYCARE_MON_1
 	jump UnknownScript_0x7802f
-; 0x7802f
 
-UnknownScript_0x7802f: ; 0x7802f
-	checkflag $0007
+UnknownScript_0x7802f:
+	checkflag ENGINE_DAYCARE_LADY_HAS_MON
 	iffalse UnknownScript_0x78039
-	clearevent $06e8
+	clearevent EVENT_DAYCARE_MON_2
 	return
-; 0x78039
 
-UnknownScript_0x78039: ; 0x78039
-	setevent $06e8
+UnknownScript_0x78039:
+	setevent EVENT_DAYCARE_MON_2
 	return
-; 0x7803d
 
-GrampsScript_0x7803d: ; 0x7803d
+GrampsScript_0x7803d:
 	faceplayer
 	loadfont
-	special Function16936
+	special Special_DayCareManOutside
 	closetext
 	loadmovesprites
 	if_equal $1, UnknownScript_0x7805a
-	clearflag $0005
-	checkcode $9
+	clearflag ENGINE_DAYCARE_MONS_ARE_COMPATIBLE
+	checkcode VAR_FACING
 	if_equal $3, UnknownScript_0x7805b
 	applymovement $8, MovementData_0x78333
 	playsound SFX_ENTER_DOOR
 	disappear $8
-UnknownScript_0x7805a: ; 0x7805a
+UnknownScript_0x7805a:
 	end
-; 0x7805b
 
-UnknownScript_0x7805b: ; 0x7805b
+UnknownScript_0x7805b:
 	applymovement $8, MovementData_0x78337
 	playsound SFX_ENTER_DOOR
 	disappear $8
 	end
-; 0x78065
 
-DaycareMon1Script_0x78065: ; 0x78065
+DaycareMon1Script_0x78065:
 	loadfont
 	special Function17421
 	loadmovesprites
 	end
-; 0x7806b
 
-DaycareMon2Script_0x7806b: ; 0x7806b
+DaycareMon2Script_0x7806b:
 	loadfont
 	special Function17440
 	loadmovesprites
 	end
-; 0x78071
 
-TrainerCamperTodd1: ; 0x78071
-	; bit/flag number
-	dw $41b
+TrainerCamperTodd1:
+	trainer EVENT_BEAT_CAMPER_TODD, CAMPER, TODD1, CamperTodd1SeenText, CamperTodd1BeatenText, $0000, CamperTodd1Script
 
-	; trainer group && trainer id
-	db CAMPER, TODD1
-
-	; text when seen
-	dw CamperTodd1SeenText
-
-	; text when trainer beaten
-	dw CamperTodd1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CamperTodd1Script
-; 0x7807d
-
-CamperTodd1Script: ; 0x7807d
-	writecode $17, $14
+CamperTodd1Script:
+	writecode VAR_CALLERID, PHONE_CAMPER_TODD
 	talkaftercancel
 	loadfont
-	checkflag $0070
+	checkflag ENGINE_TODD
 	iftrue UnknownScript_0x780bd
-	checkflag $0061
+	checkflag ENGINE_GOLDENROD_DEPT_STORE_SALE_IS_ON
 	iftrue UnknownScript_0x78131
-	checkcellnum $14
+	checkcellnum PHONE_CAMPER_TODD
 	iftrue UnknownScript_0x78143
-	checkevent $027d
+	checkevent EVENT_TODD_ASKED_FOR_PHONE_NUMBER
 	iftrue UnknownScript_0x780a6
 	writetext UnknownText_0x784f0
 	keeptextopen
-	setevent $027d
+	setevent EVENT_TODD_ASKED_FOR_PHONE_NUMBER
 	scall UnknownScript_0x78137
 	jump UnknownScript_0x780a9
-; 0x780a6
 
-UnknownScript_0x780a6: ; 0x780a6
+UnknownScript_0x780a6:
 	scall UnknownScript_0x7813b
-UnknownScript_0x780a9: ; 0x780a9
-	askforphonenumber $14
+UnknownScript_0x780a9:
+	askforphonenumber PHONE_CAMPER_TODD
 	if_equal $1, UnknownScript_0x7814b
 	if_equal $2, UnknownScript_0x78147
 	trainertotext CAMPER, TODD1, $0
 	scall UnknownScript_0x7813f
 	jump UnknownScript_0x78143
-; 0x780bd
 
-UnknownScript_0x780bd: ; 0x780bd
+UnknownScript_0x780bd:
 	scall UnknownScript_0x7814f
 	winlosstext CamperTodd1BeatenText, $0000
-	copybytetovar wd9fe
-	if_equal $4, UnknownScript_0x780dc
-	if_equal $3, UnknownScript_0x780e2
-	if_equal $2, UnknownScript_0x780e8
-	if_equal $1, UnknownScript_0x780ee
-	if_equal $0, UnknownScript_0x780f4
-UnknownScript_0x780dc: ; 0x780dc
+	copybytetovar wToddFightCount
+	if_equal 4, .Fight4
+	if_equal 3, .Fight3
+	if_equal 2, .Fight2
+	if_equal 1, .Fight1
+	if_equal 0, .LoadFight0
+.Fight4
 	checkevent EVENT_RESTORED_POWER_TO_KANTO
-	iftrue UnknownScript_0x78128
-UnknownScript_0x780e2: ; 0x780e2
+	iftrue .LoadFight4
+.Fight3
 	checkevent EVENT_BEAT_ELITE_FOUR
-	iftrue UnknownScript_0x7811b
-UnknownScript_0x780e8: ; 0x780e8
-	checkflag $004b
-	iftrue UnknownScript_0x7810e
-UnknownScript_0x780ee: ; 0x780ee
-	checkflag $0045
-	iftrue UnknownScript_0x78101
-UnknownScript_0x780f4: ; 0x780f4
+	iftrue .LoadFight3
+.Fight2
+	checkflag ENGINE_FLYPOINT_BLACKTHORN
+	iftrue .LoadFight2
+.Fight1
+	checkflag ENGINE_FLYPOINT_CIANWOOD
+	iftrue .LoadFight1
+.LoadFight0
 	loadtrainer CAMPER, TODD1
 	startbattle
 	returnafterbattle
-	loadvar wd9fe, $1
-	clearflag $0070
+	loadvar wToddFightCount, 1
+	clearflag ENGINE_TODD
 	end
-; 0x78101
 
-UnknownScript_0x78101: ; 0x78101
+.LoadFight1
 	loadtrainer CAMPER, TODD2
 	startbattle
 	returnafterbattle
-	loadvar wd9fe, $2
-	clearflag $0070
+	loadvar wToddFightCount, 2
+	clearflag ENGINE_TODD
 	end
-; 0x7810e
 
-UnknownScript_0x7810e: ; 0x7810e
+.LoadFight2
 	loadtrainer CAMPER, TODD3
 	startbattle
 	returnafterbattle
-	loadvar wd9fe, $3
-	clearflag $0070
+	loadvar wToddFightCount, 3
+	clearflag ENGINE_TODD
 	end
-; 0x7811b
 
-UnknownScript_0x7811b: ; 0x7811b
+.LoadFight3
 	loadtrainer CAMPER, TODD4
 	startbattle
 	returnafterbattle
-	loadvar wd9fe, $4
-	clearflag $0070
+	loadvar wToddFightCount, 4
+	clearflag ENGINE_TODD
 	end
-; 0x78128
 
-UnknownScript_0x78128: ; 0x78128
+.LoadFight4
 	loadtrainer CAMPER, TODD5
 	startbattle
 	returnafterbattle
-	clearflag $0070
+	clearflag ENGINE_TODD
 	end
-; 0x78131
 
-UnknownScript_0x78131: ; 0x78131
+UnknownScript_0x78131:
 	writetext UnknownText_0x78532
 	closetext
 	loadmovesprites
 	end
-; 0x78137
 
-UnknownScript_0x78137: ; 0x78137
+UnknownScript_0x78137:
 	jumpstd asknumber1m
 	end
-; 0x7813b
 
-UnknownScript_0x7813b: ; 0x7813b
+UnknownScript_0x7813b:
 	jumpstd asknumber2m
 	end
-; 0x7813f
 
-UnknownScript_0x7813f: ; 0x7813f
+UnknownScript_0x7813f:
 	jumpstd registerednumberm
 	end
-; 0x78143
 
-UnknownScript_0x78143: ; 0x78143
+UnknownScript_0x78143:
 	jumpstd numberacceptedm
 	end
-; 0x78147
 
-UnknownScript_0x78147: ; 0x78147
+UnknownScript_0x78147:
 	jumpstd numberdeclinedm
 	end
-; 0x7814b
 
-UnknownScript_0x7814b: ; 0x7814b
+UnknownScript_0x7814b:
 	jumpstd phonefullm
 	end
-; 0x7814f
 
-UnknownScript_0x7814f: ; 0x7814f
+UnknownScript_0x7814f:
 	jumpstd rematchm
 	end
-; 0x78153
 
-TrainerPicnickerGina1: ; 0x78153
-	; bit/flag number
-	dw $47f
+TrainerPicnickerGina1:
+	trainer EVENT_BEAT_PICNICKER_GINA, PICNICKER, GINA1, PicnickerGina1SeenText, PicnickerGina1BeatenText, $0000, PicnickerGina1Script
 
-	; trainer group && trainer id
-	db PICNICKER, GINA1
-
-	; text when seen
-	dw PicnickerGina1SeenText
-
-	; text when trainer beaten
-	dw PicnickerGina1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PicnickerGina1Script
-; 0x7815f
-
-PicnickerGina1Script: ; 0x7815f
-	writecode $17, $15
+PicnickerGina1Script:
+	writecode VAR_CALLERID, PHONE_PICNICKER_GINA
 	talkaftercancel
 	loadfont
-	checkflag $0071
+	checkflag ENGINE_GINA
 	iftrue UnknownScript_0x7819f
-	checkflag $0080
+	checkflag ENGINE_GINA_HAS_LEAF_STONE
 	iftrue UnknownScript_0x78213
-	checkcellnum $15
+	checkcellnum PHONE_PICNICKER_GINA
 	iftrue UnknownScript_0x78234
-	checkevent $027f
+	checkevent EVENT_GINA_ASKED_FOR_PHONE_NUMBER
 	iftrue UnknownScript_0x78188
 	writetext UnknownText_0x785b8
 	keeptextopen
-	setevent $027f
+	setevent EVENT_GINA_ASKED_FOR_PHONE_NUMBER
 	scall UnknownScript_0x78228
 	jump UnknownScript_0x7818b
-; 0x78188
 
-UnknownScript_0x78188: ; 0x78188
+UnknownScript_0x78188:
 	scall UnknownScript_0x7822c
-UnknownScript_0x7818b: ; 0x7818b
-	askforphonenumber $15
+UnknownScript_0x7818b:
+	askforphonenumber PHONE_PICNICKER_GINA
 	if_equal $1, UnknownScript_0x7823c
 	if_equal $2, UnknownScript_0x78238
 	trainertotext PICNICKER, GINA1, $0
 	scall UnknownScript_0x78230
 	jump UnknownScript_0x78234
-; 0x7819f
 
-UnknownScript_0x7819f: ; 0x7819f
+UnknownScript_0x7819f:
 	scall UnknownScript_0x78240
 	winlosstext PicnickerGina1BeatenText, $0000
-	copybytetovar wd9ff
-	if_equal $4, UnknownScript_0x781be
-	if_equal $3, UnknownScript_0x781c4
-	if_equal $2, UnknownScript_0x781ca
-	if_equal $1, UnknownScript_0x781d0
-	if_equal $0, UnknownScript_0x781d6
-UnknownScript_0x781be: ; 0x781be
+	copybytetovar wGinaFightCount
+	if_equal 4, .Fight4
+	if_equal 3, .Fight3
+	if_equal 2, .Fight2
+	if_equal 1, .Fight1
+	if_equal 0, .LoadFight0
+.Fight4
 	checkevent EVENT_RESTORED_POWER_TO_KANTO
-	iftrue UnknownScript_0x7820a
-UnknownScript_0x781c4: ; 0x781c4
+	iftrue .LoadFight4
+.Fight3
 	checkevent EVENT_BEAT_ELITE_FOUR
-	iftrue UnknownScript_0x781fd
-UnknownScript_0x781ca: ; 0x781ca
+	iftrue .LoadFight3
+.Fight2
 	checkevent EVENT_CLEARED_RADIO_TOWER
-	iftrue UnknownScript_0x781f0
-UnknownScript_0x781d0: ; 0x781d0
-	checkflag $0049
-	iftrue UnknownScript_0x781e3
-UnknownScript_0x781d6: ; 0x781d6
+	iftrue .LoadFight2
+.Fight1
+	checkflag ENGINE_FLYPOINT_MAHOGANY
+	iftrue .LoadFight1
+.LoadFight0
 	loadtrainer PICNICKER, GINA1
 	startbattle
 	returnafterbattle
-	loadvar wd9ff, $1
-	clearflag $0071
+	loadvar wGinaFightCount, 1
+	clearflag ENGINE_GINA
 	end
-; 0x781e3
 
-UnknownScript_0x781e3: ; 0x781e3
+.LoadFight1
 	loadtrainer PICNICKER, GINA2
 	startbattle
 	returnafterbattle
-	loadvar wd9ff, $2
-	clearflag $0071
+	loadvar wGinaFightCount, 2
+	clearflag ENGINE_GINA
 	end
-; 0x781f0
 
-UnknownScript_0x781f0: ; 0x781f0
+.LoadFight2
 	loadtrainer PICNICKER, GINA3
 	startbattle
 	returnafterbattle
-	loadvar wd9ff, $3
-	clearflag $0071
+	loadvar wGinaFightCount, 3
+	clearflag ENGINE_GINA
 	end
-; 0x781fd
 
-UnknownScript_0x781fd: ; 0x781fd
+.LoadFight3
 	loadtrainer PICNICKER, GINA4
 	startbattle
 	returnafterbattle
-	loadvar wd9ff, $4
-	clearflag $0071
+	loadvar wGinaFightCount, 4
+	clearflag ENGINE_GINA
 	end
-; 0x7820a
 
-UnknownScript_0x7820a: ; 0x7820a
+.LoadFight4
 	loadtrainer PICNICKER, GINA5
 	startbattle
 	returnafterbattle
-	clearflag $0071
+	clearflag ENGINE_GINA
 	end
-; 0x78213
 
-UnknownScript_0x78213: ; 0x78213
+UnknownScript_0x78213:
 	scall UnknownScript_0x78244
 	verbosegiveitem LEAF_STONE, 1
 	iffalse UnknownScript_0x78225
-	clearflag $0080
-	setevent $0100
+	clearflag ENGINE_GINA_HAS_LEAF_STONE
+	setevent EVENT_GINA_GAVE_LEAF_STONE
 	jump UnknownScript_0x78234
-; 0x78225
 
-UnknownScript_0x78225: ; 0x78225
+UnknownScript_0x78225:
 	jump UnknownScript_0x78248
-; 0x78228
 
-UnknownScript_0x78228: ; 0x78228
+UnknownScript_0x78228:
 	jumpstd asknumber1f
 	end
-; 0x7822c
 
-UnknownScript_0x7822c: ; 0x7822c
+UnknownScript_0x7822c:
 	jumpstd asknumber2f
 	end
-; 0x78230
 
-UnknownScript_0x78230: ; 0x78230
+UnknownScript_0x78230:
 	jumpstd registerednumberf
 	end
-; 0x78234
 
-UnknownScript_0x78234: ; 0x78234
+UnknownScript_0x78234:
 	jumpstd numberacceptedf
 	end
-; 0x78238
 
-UnknownScript_0x78238: ; 0x78238
+UnknownScript_0x78238:
 	jumpstd numberdeclinedf
 	end
-; 0x7823c
 
-UnknownScript_0x7823c: ; 0x7823c
+UnknownScript_0x7823c:
 	jumpstd phonefullf
 	end
-; 0x78240
 
-UnknownScript_0x78240: ; 0x78240
+UnknownScript_0x78240:
 	jumpstd rematchf
 	end
-; 0x78244
 
-UnknownScript_0x78244: ; 0x78244
+UnknownScript_0x78244:
 	jumpstd giftf
 	end
-; 0x78248
 
-UnknownScript_0x78248: ; 0x78248
+UnknownScript_0x78248:
 	jumpstd packfullf
 	end
-; 0x7824c
 
-OfficerScript_0x7824c: ; 0x7824c
+OfficerScript_0x7824c:
 	faceplayer
 	loadfont
 	checknite
 	iffalse UnknownScript_0x78276
-	checkevent $0546
+	checkevent EVENT_BEAT_OFFICER_KEITH
 	iftrue UnknownScript_0x78270
 	playmusic MUSIC_OFFICER_ENCOUNTER
 	writetext UnknownText_0x785e4
@@ -431,46 +353,26 @@
 	loadtrainer OFFICER, KEITH
 	startbattle
 	returnafterbattle
-	setevent $0546
+	setevent EVENT_BEAT_OFFICER_KEITH
 	loadmovesprites
 	end
-; 0x78270
 
-UnknownScript_0x78270: ; 0x78270
+UnknownScript_0x78270:
 	writetext UnknownText_0x78624
 	closetext
 	loadmovesprites
 	end
-; 0x78276
 
-UnknownScript_0x78276: ; 0x78276
+UnknownScript_0x78276:
 	writetext UnknownText_0x7866a
 	closetext
 	loadmovesprites
 	end
-; 0x7827c
 
-TrainerYoungsterSamuel: ; 0x7827c
-	; bit/flag number
-	dw $5ad
+TrainerYoungsterSamuel:
+	trainer EVENT_BEAT_YOUNGSTER_SAMUEL, YOUNGSTER, SAMUEL, YoungsterSamuelSeenText, YoungsterSamuelBeatenText, $0000, YoungsterSamuelScript
 
-	; trainer group && trainer id
-	db YOUNGSTER, SAMUEL
-
-	; text when seen
-	dw YoungsterSamuelSeenText
-
-	; text when trainer beaten
-	dw YoungsterSamuelBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw YoungsterSamuelScript
-; 0x78288
-
-YoungsterSamuelScript: ; 0x78288
+YoungsterSamuelScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x783d8
@@ -477,29 +379,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x78290
 
-TrainerYoungsterIan: ; 0x78290
-	; bit/flag number
-	dw $5ae
+TrainerYoungsterIan:
+	trainer EVENT_BEAT_YOUNGSTER_IAN, YOUNGSTER, IAN, YoungsterIanSeenText, YoungsterIanBeatenText, $0000, YoungsterIanScript
 
-	; trainer group && trainer id
-	db YOUNGSTER, IAN
-
-	; text when seen
-	dw YoungsterIanSeenText
-
-	; text when trainer beaten
-	dw YoungsterIanBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw YoungsterIanScript
-; 0x7829c
-
-YoungsterIanScript: ; 0x7829c
+YoungsterIanScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x78469
@@ -506,29 +390,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x782a4
 
-TrainerPokefanmBrandon: ; 0x782a4
-	; bit/flag number
-	dw $4d3
+TrainerPokefanmBrandon:
+	trainer EVENT_BEAT_POKEFANM_BRANDON, POKEFANM, BRANDON, PokefanmBrandonSeenText, PokefanmBrandonBeatenText, $0000, PokefanmBrandonScript
 
-	; trainer group && trainer id
-	db POKEFANM, BRANDON
-
-	; text when seen
-	dw PokefanmBrandonSeenText
-
-	; text when trainer beaten
-	dw PokefanmBrandonBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PokefanmBrandonScript
-; 0x782b0
-
-PokefanmBrandonScript: ; 0x782b0
+PokefanmBrandonScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x786fc
@@ -535,29 +401,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x782b8
 
-TrainerCooltrainerfIrene: ; 0x782b8
-	; bit/flag number
-	dw $560
+TrainerCooltrainerfIrene:
+	trainer EVENT_BEAT_COOLTRAINERF_IRENE, COOLTRAINERF, IRENE, CooltrainerfIreneSeenText, CooltrainerfIreneBeatenText, $0000, CooltrainerfIreneScript
 
-	; trainer group && trainer id
-	db COOLTRAINERF, IRENE
-
-	; text when seen
-	dw CooltrainerfIreneSeenText
-
-	; text when trainer beaten
-	dw CooltrainerfIreneBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainerfIreneScript
-; 0x782c4
-
-CooltrainerfIreneScript: ; 0x782c4
+CooltrainerfIreneScript:
 	talkaftercancel
 	loadfont
 	checkevent EVENT_GOT_SOFT_SAND_FROM_KATE
@@ -566,36 +414,17 @@
 	closetext
 	loadmovesprites
 	end
-; 0x782d2
 
-UnknownScript_0x782d2: ; 0x782d2
+UnknownScript_0x782d2:
 	writetext UnknownText_0x787ad
 	closetext
 	loadmovesprites
 	end
-; 0x782d8
 
-TrainerCooltrainerfJenn: ; 0x782d8
-	; bit/flag number
-	dw $56b
+TrainerCooltrainerfJenn:
+	trainer EVENT_BEAT_COOLTRAINERF_JENN, COOLTRAINERF, JENN, CooltrainerfJennSeenText, CooltrainerfJennBeatenText, $0000, CooltrainerfJennScript
 
-	; trainer group && trainer id
-	db COOLTRAINERF, JENN
-
-	; text when seen
-	dw CooltrainerfJennSeenText
-
-	; text when trainer beaten
-	dw CooltrainerfJennBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainerfJennScript
-; 0x782e4
-
-CooltrainerfJennScript: ; 0x782e4
+CooltrainerfJennScript:
 	talkaftercancel
 	loadfont
 	checkevent EVENT_GOT_SOFT_SAND_FROM_KATE
@@ -604,36 +433,17 @@
 	closetext
 	loadmovesprites
 	end
-; 0x782f2
 
-UnknownScript_0x782f2: ; 0x782f2
+UnknownScript_0x782f2:
 	writetext UnknownText_0x78866
 	closetext
 	loadmovesprites
 	end
-; 0x782f8
 
-TrainerCooltrainerfKate: ; 0x782f8
-	; bit/flag number
-	dw $55f
+TrainerCooltrainerfKate:
+	trainer EVENT_BEAT_COOLTRAINERF_KATE, COOLTRAINERF, KATE, CooltrainerfKateSeenText, CooltrainerfKateBeatenText, $0000, CooltrainerfKateScript
 
-	; trainer group && trainer id
-	db COOLTRAINERF, KATE
-
-	; text when seen
-	dw CooltrainerfKateSeenText
-
-	; text when trainer beaten
-	dw CooltrainerfKateBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainerfKateScript
-; 0x78304
-
-CooltrainerfKateScript: ; 0x78304
+CooltrainerfKateScript:
 	talkaftercancel
 	loadfont
 	checkevent EVENT_GOT_SOFT_SAND_FROM_KATE
@@ -643,54 +453,43 @@
 	verbosegiveitem SOFT_SAND, 1
 	iffalse UnknownScript_0x7831d
 	setevent EVENT_GOT_SOFT_SAND_FROM_KATE
-UnknownScript_0x78319: ; 0x78319
+UnknownScript_0x78319:
 	writetext UnknownText_0x7892b
 	closetext
-UnknownScript_0x7831d: ; 0x7831d
+UnknownScript_0x7831d:
 	loadmovesprites
 	end
-; 0x7831f
 
-UnknownScript_0x7831f: ; 0x7831f
+UnknownScript_0x7831f:
 	jumptext UnknownText_0x7898a
-; 0x78322
 
-MapRoute34Signpost0Script: ; 0x78322
+MapRoute34Signpost0Script:
 	jumptext UnknownText_0x789a8
-; 0x78325
 
-MapRoute34Signpost1Script: ; 0x78325
+MapRoute34Signpost1Script:
 	jumptext UnknownText_0x789ed
-; 0x78328
 
-MapRoute34Signpost2Script: ; 0x78328
+MapRoute34Signpost2Script:
 	jumptext UnknownText_0x78a52
-; 0x7832b
 
-ItemFragment_0x7832b: ; 0x7832b
+ItemFragment_0x7832b:
 	db NUGGET, 1
-; 0x7832d
 
-MapRoute34SignpostItem3: ; 0x7832d
-	dw $00a7
-	db RARE_CANDY
+MapRoute34SignpostItem3:
+	dwb EVENT_ROUTE_34_HIDDEN_RARE_CANDY, RARE_CANDY
 	
-; 0x78330
 
-MapRoute34SignpostItem4: ; 0x78330
-	dw $00a8
-	db SUPER_POTION
+MapRoute34SignpostItem4:
+	dwb EVENT_ROUTE_34_HIDDEN_SUPER_POTION, SUPER_POTION
 	
-; 0x78333
 
-MovementData_0x78333: ; 0x78333
+MovementData_0x78333:
 	slow_step_left
 	slow_step_left
 	slow_step_up
 	step_end
-; 0x78337
 
-MovementData_0x78337: ; 0x78337
+MovementData_0x78337:
 	slow_step_down
 	slow_step_left
 	slow_step_left
@@ -697,21 +496,18 @@
 	slow_step_up
 	slow_step_up
 	step_end
-; 0x7833d
 
-YoungsterSamuelSeenText: ; 0x7833d
+YoungsterSamuelSeenText:
 	text "This is where I do"
 	line "my training!"
 	done
-; 0x7835e
 
-YoungsterSamuelBeatenText: ; 0x7835e
+YoungsterSamuelBeatenText:
 	text "Beaten by a"
 	line "passing stranger!"
 	done
-; 0x7837d
 
-UnknownText_0x7837d: ; 0x7837d
+UnknownText_0x7837d:
 	text "Have you been to"
 	line "GOLDENROD CITY?"
 
@@ -721,9 +517,8 @@
 	para "changed the"
 	line "#MON CENTER?"
 	done
-; 0x783d8
 
-UnknownText_0x783d8: ; 0x783d8
+UnknownText_0x783d8:
 	text "I'm going to train"
 	line "even harder."
 
@@ -731,28 +526,24 @@
 	line "trying to become"
 	cont "a GYM LEADER."
 	done
-; 0x78425
 
-YoungsterIanSeenText: ; 0x78425
+YoungsterIanSeenText:
 	text "I'm the best in my"
 	line "class at #MON."
 	done
-; 0x78447
 
-YoungsterIanBeatenText: ; 0x78447
+YoungsterIanBeatenText:
 	text "No! There are bet-"
 	line "ter trainers…"
 	done
-; 0x78469
 
-UnknownText_0x78469: ; 0x78469
+UnknownText_0x78469:
 	text "I'm trying hard so"
 	line "I can be the star"
 	cont "in my class."
 	done
-; 0x7849b
 
-CamperTodd1SeenText: ; 0x7849b
+CamperTodd1SeenText:
 	text "I'm confident in"
 	line "my ability to"
 	cont "raise #MON."
@@ -759,15 +550,13 @@
 
 	para "Want to see?"
 	done
-; 0x784d3
 
-CamperTodd1BeatenText: ; 0x784d3
+CamperTodd1BeatenText:
 	text "Did I screw up my"
 	line "training?"
 	done
-; 0x784f0
 
-UnknownText_0x784f0: ; 0x784f0
+UnknownText_0x784f0:
 	text "Maybe I should"
 	line "take one to a DAY-"
 
@@ -774,9 +563,8 @@
 	para "CARE. Or maybe use"
 	line "some items…"
 	done
-; 0x78532
 
-UnknownText_0x78532: ; 0x78532
+UnknownText_0x78532:
 	text "Shopping under the"
 	line "sky!"
 
@@ -783,43 +571,37 @@
 	para "It feels so nice"
 	line "up on a rooftop."
 	done
-; 0x7856d
 
-PicnickerGina1SeenText: ; 0x7856d
+PicnickerGina1SeenText:
 	text "Are you a trainer?"
 
 	para "Let's have a"
 	line "practice battle."
 	done
-; 0x7859e
 
-PicnickerGina1BeatenText: ; 0x7859e
+PicnickerGina1BeatenText:
 	text "Oh, no! I just"
 	line "can't win…"
 	done
-; 0x785b8
 
-UnknownText_0x785b8: ; 0x785b8
+UnknownText_0x785b8:
 	text "You're too strong"
 	line "to be a practice"
 	cont "partner."
 	done
-; 0x785e4
 
-UnknownText_0x785e4: ; 0x785e4
+UnknownText_0x785e4:
 	text "Who goes there?"
 	line "What are you up"
 	cont "to?"
 	done
-; 0x78609
 
-UnknownText_0x78609: ; 0x78609
+UnknownText_0x78609:
 	text "You're a tough"
 	line "little kid."
 	done
-; 0x78624
 
-UnknownText_0x78624: ; 0x78624
+UnknownText_0x78624:
 	text "Yep, I see nothing"
 	line "wrong today. You"
 
@@ -826,16 +608,14 @@
 	para "be good and stay"
 	line "out of trouble."
 	done
-; 0x7866a
 
-UnknownText_0x7866a: ; 0x7866a
+UnknownText_0x7866a:
 	text "I'm on patrol for"
 	line "suspicious indi-"
 	cont "viduals."
 	done
-; 0x78696
 
-PokefanmBrandonSeenText: ; 0x78696
+PokefanmBrandonSeenText:
 	text "I just got my"
 	line "#MON back from"
 	cont "DAY-CARE."
@@ -843,15 +623,13 @@
 	para "Let's see how much"
 	line "stronger it got!"
 	done
-; 0x786e1
 
-PokefanmBrandonBeatenText: ; 0x786e1
+PokefanmBrandonBeatenText:
 	text "Why does it end"
 	line "this way?"
 	done
-; 0x786fc
 
-UnknownText_0x786fc: ; 0x786fc
+UnknownText_0x786fc:
 	text "My #MON knew"
 	line "moves I didn't"
 	cont "know it had."
@@ -859,28 +637,24 @@
 	para "That confounded me"
 	line "to no end!"
 	done
-; 0x78743
 
-CooltrainerfIreneSeenText: ; 0x78743
+CooltrainerfIreneSeenText:
 	text "IRENE: Kyaaah!"
 	line "Someone found us!"
 	done
-; 0x78765
 
-CooltrainerfIreneBeatenText: ; 0x78765
+CooltrainerfIreneBeatenText:
 	text "IRENE: Ohhh!"
 	line "Too strong!"
 	done
-; 0x7877f
 
-UnknownText_0x7877f: ; 0x7877f
+UnknownText_0x7877f:
 	text "IRENE: My sister"
 	line "KATE will get you"
 	cont "for this!"
 	done
-; 0x787ad
 
-UnknownText_0x787ad: ; 0x787ad
+UnknownText_0x787ad:
 	text "IRENE: Isn't this"
 	line "beach great?"
 
@@ -887,49 +661,42 @@
 	para "It's our secret"
 	line "little getaway!"
 	done
-; 0x787eb
 
-CooltrainerfJennSeenText: ; 0x787eb
+CooltrainerfJennSeenText:
 	text "JENN: You can't"
 	line "beat IRENE and go"
 	cont "unpunished!"
 	done
-; 0x78819
 
-CooltrainerfJennBeatenText: ; 0x78819
+CooltrainerfJennBeatenText:
 	text "JENN: So sorry,"
 	line "IRENE! Sis!"
 	done
-; 0x78836
 
-UnknownText_0x78836: ; 0x78836
+UnknownText_0x78836:
 	text "JENN: Don't get"
 	line "cocky! My sister"
 	cont "KATE is tough!"
 	done
-; 0x78866
 
-UnknownText_0x78866: ; 0x78866
+UnknownText_0x78866:
 	text "JENN: Sunlight"
 	line "makes your body"
 	cont "stronger."
 	done
-; 0x78890
 
-CooltrainerfKateSeenText: ; 0x78890
+CooltrainerfKateSeenText:
 	text "KATE: You sure"
 	line "were mean to my"
 	cont "little sisters!"
 	done
-; 0x788c0
 
-CooltrainerfKateBeatenText: ; 0x788c0
+CooltrainerfKateBeatenText:
 	text "KATE: No! I can't"
 	line "believe I lost."
 	done
-; 0x788e2
 
-UnknownText_0x788e2: ; 0x788e2
+UnknownText_0x788e2:
 	text "KATE: You're too"
 	line "strong. I didn't"
 	cont "stand a chance."
@@ -937,9 +704,8 @@
 	para "Here. You deserve"
 	line "this."
 	done
-; 0x7892b
 
-UnknownText_0x7892b: ; 0x7892b
+UnknownText_0x7892b:
 	text "KATE: I'm sorry we"
 	line "jumped you."
 
@@ -949,15 +715,13 @@
 	para "here. You sure"
 	line "startled us."
 	done
-; 0x7898a
 
-UnknownText_0x7898a: ; 0x7898a
+UnknownText_0x7898a:
 	text "ILEX FOREST"
 	line "THROUGH THE GATE"
 	done
-; 0x789a8
 
-UnknownText_0x789a8: ; 0x789a8
+UnknownText_0x789a8:
 	text "ROUTE 34"
 
 	para "GOLDENROD CITY -"
@@ -966,9 +730,8 @@
 	para "ILEX FOREST"
 	line "SOMEWHERE BETWEEN"
 	done
-; 0x789ed
 
-UnknownText_0x789ed: ; 0x789ed
+UnknownText_0x789ed:
 	text "TRAINER TIPS"
 
 	para "BERRY trees grow"
@@ -979,52 +742,49 @@
 	line "which trees bear"
 	cont "which BERRIES."
 	done
-; 0x78a52
 
-UnknownText_0x78a52: ; 0x78a52
+UnknownText_0x78a52:
 	text "DAY-CARE"
 
 	para "LET US RAISE YOUR"
 	line "#MON FOR YOU!"
 	done
-; 0x78a7c
 
-Route34_MapEventHeader: ; 0x78a7c
+Route34_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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_DAY_CARE, MAP_DAY_CARE
-	warp_def $f, $b, 2, GROUP_DAY_CARE, MAP_DAY_CARE
-	warp_def $f, $d, 3, GROUP_DAY_CARE, MAP_DAY_CARE
+	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 5
-	signpost 6, 12, $0, MapRoute34Signpost0Script
-	signpost 33, 13, $0, MapRoute34Signpost1Script
-	signpost 13, 10, $0, MapRoute34Signpost2Script
-	signpost 32, 8, $7, MapRoute34SignpostItem3
-	signpost 19, 17, $7, MapRoute34SignpostItem4
+	signpost 6, 12, SIGNPOST_READ, MapRoute34Signpost0Script
+	signpost 33, 13, SIGNPOST_READ, MapRoute34Signpost1Script
+	signpost 13, 10, SIGNPOST_READ, MapRoute34Signpost2Script
+	signpost 32, 8, SIGNPOST_ITEM, MapRoute34SignpostItem3
+	signpost 19, 17, SIGNPOST_ITEM, MapRoute34SignpostItem4
 
-	; people-events
+.PersonEvents:
 	db 13
-	person_event SPRITE_YOUNGSTER, 11, 17, $8, $0, 255, 255, $a2, 5, TrainerCamperTodd1, $ffff
-	person_event SPRITE_YOUNGSTER, 36, 19, $6, $0, 255, 255, $92, 3, TrainerYoungsterSamuel, $ffff
-	person_event SPRITE_YOUNGSTER, 24, 15, $6, $0, 255, 255, $92, 3, TrainerYoungsterIan, $ffff
-	person_event SPRITE_LASS, 30, 14, $9, $0, 255, 255, $a2, 3, TrainerPicnickerGina1, $ffff
-	person_event SPRITE_OFFICER, 15, 13, $6, $0, 255, 255, $90, 0, OfficerScript_0x7824c, $ffff
-	person_event SPRITE_POKEFAN_M, 32, 22, $1e, $0, 255, 255, $82, 3, TrainerPokefanmBrandon, $ffff
-	person_event SPRITE_GRAMPS, 20, 19, $6, $0, 255, 255, $0, 0, GrampsScript_0x7803d, $06e6
-	person_event SPRITE_DAYCARE_MON_1, 22, 18, $16, $22, 255, 255, $0, 0, DaycareMon1Script_0x78065, $06e7
-	person_event SPRITE_DAYCARE_MON_2, 23, 21, $16, $22, 255, 255, $0, 0, DaycareMon2Script_0x7806b, $06e8
-	person_event SPRITE_COOLTRAINER_F, 52, 15, $8, $0, 255, 255, $82, 5, TrainerCooltrainerfIrene, $ffff
-	person_event SPRITE_COOLTRAINER_F, 52, 7, $9, $0, 255, 255, $82, 3, TrainerCooltrainerfJenn, $ffff
-	person_event SPRITE_COOLTRAINER_F, 55, 10, $7, $0, 255, 255, $82, 2, TrainerCooltrainerfKate, $ffff
-	person_event SPRITE_POKE_BALL, 34, 11, $1, $0, 255, 255, $1, 0, ItemFragment_0x7832b, $07bc
-; 0x78b5d
+	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
--- a/maps/Route34IlexForestGate.asm
+++ b/maps/Route34IlexForestGate.asm
@@ -1,33 +1,30 @@
-Route34IlexForestGate_MapScriptHeader: ; 0x62d28
-	; trigger count
+Route34IlexForestGate_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 2, UnknownScript_0x62d2d
-; 0x62d2d
 
-UnknownScript_0x62d2d: ; 0x62d2d
-	checkevent $00c0
+UnknownScript_0x62d2d:
+	checkevent EVENT_FOREST_IS_RESTLESS
 	iffalse UnknownScript_0x62d38
 	disappear $2
 	appear $5
 	return
-; 0x62d38
 
-UnknownScript_0x62d38: ; 0x62d38
+UnknownScript_0x62d38:
 	disappear $5
 	appear $2
 	return
-; 0x62d3d
 
-UnknownScript_0x62d3d: ; 0x62d3d
-	checkevent $00c0
+UnknownScript_0x62d3d:
+	checkevent EVENT_FOREST_IS_RESTLESS
 	iffalse UnknownScript_0x62d62
-	showemote $0, $5, 20
+	showemote EMOTE_SHOCK, $5, 20
 	spriteface $5, LEFT
 	spriteface $0, RIGHT
 	follow $0, $5
@@ -39,38 +36,35 @@
 	closetext
 	loadmovesprites
 	applymovement $5, MovementData_0x62d9a
-UnknownScript_0x62d62: ; 0x62d62
+UnknownScript_0x62d62:
 	end
-; 0x62d63
 
-TeacherScript_0x62d63: ; 0x62d63
+TeacherScript_0x62d63:
 	faceplayer
 	loadfont
-	checkevent $00c0
+	checkevent EVENT_FOREST_IS_RESTLESS
 	iftrue UnknownScript_0x62d84
 	checkevent EVENT_GOT_TM12_SWEET_SCENT
 	iftrue UnknownScript_0x62d7e
 	writetext UnknownText_0x62d9d
 	keeptextopen
-	verbosegiveitem TM_12, 1
+	verbosegiveitem TM_SWEET_SCENT, 1
 	iffalse UnknownScript_0x62d82
 	setevent EVENT_GOT_TM12_SWEET_SCENT
-UnknownScript_0x62d7e: ; 0x62d7e
+UnknownScript_0x62d7e:
 	writetext UnknownText_0x62df6
 	closetext
-UnknownScript_0x62d82: ; 0x62d82
+UnknownScript_0x62d82:
 	loadmovesprites
 	end
-; 0x62d84
 
-UnknownScript_0x62d84: ; 0x62d84
+UnknownScript_0x62d84:
 	writetext UnknownText_0x62e41
 	keeptextopen
 	loadmovesprites
 	end
-; 0x62d8a
 
-ButterfreeScript_0x62d8a: ; 0x62d8a
+ButterfreeScript_0x62d8a:
 	loadfont
 	writetext UnknownText_0x62e83
 	cry BUTTERFREE
@@ -77,25 +71,21 @@
 	closetext
 	loadmovesprites
 	end
-; 0x62d94
 
-LassScript_0x62d94: ; 0x62d94
+LassScript_0x62d94:
 	jumptextfaceplayer UnknownText_0x62e97
-; 0x62d97
 
-MovementData_0x62d97: ; 0x62d97
+MovementData_0x62d97:
 	step_up
 	step_up
 	step_end
-; 0x62d9a
 
-MovementData_0x62d9a: ; 0x62d9a
+MovementData_0x62d9a:
 	step_down
 	step_right
 	step_end
-; 0x62d9d
 
-UnknownText_0x62d9d: ; 0x62d9d
+UnknownText_0x62d9d:
 	text "Oh, honey. You're"
 	line "making a #DEX?"
 
@@ -105,9 +95,8 @@
 	para "appear. Try using"
 	line "this TM."
 	done
-; 0x62df6
 
-UnknownText_0x62df6: ; 0x62df6
+UnknownText_0x62df6:
 	text "It's SWEET SCENT."
 
 	para "Use it wherever"
@@ -116,9 +105,8 @@
 	para "#MON will be"
 	line "enticed by it."
 	done
-; 0x62e41
 
-UnknownText_0x62e41: ; 0x62e41
+UnknownText_0x62e41:
 	text "Something's wrong"
 	line "in ILEX FOREST…"
 
@@ -125,14 +113,12 @@
 	para "You should stay"
 	line "away right now."
 	done
-; 0x62e83
 
-UnknownText_0x62e83: ; 0x62e83
+UnknownText_0x62e83:
 	text "BUTTERFREE: Freeh!"
 	done
-; 0x62e97
 
-UnknownText_0x62e97: ; 0x62e97
+UnknownText_0x62e97:
 	text "Did you see the"
 	line "shrine honoring"
 	cont "the protector?"
@@ -145,13 +131,12 @@
 	line "must be a grass-"
 	cont "type #MON."
 	done
-; 0x62f20
 
-Route34IlexForestGate_MapEventHeader: ; 0x62f20
+Route34IlexForestGate_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -158,17 +143,16 @@
 	warp_def $7, $4, 1, GROUP_ILEX_FOREST, MAP_ILEX_FOREST
 	warp_def $7, $5, 1, GROUP_ILEX_FOREST, MAP_ILEX_FOREST
 
-	; xy triggers
+.XYTriggers:
 	db 1
 	xy_trigger 0, $7, $4, $0, UnknownScript_0x62d3d, $0, $0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_TEACHER, 7, 13, $8, $0, 255, 255, $90, 0, TeacherScript_0x62d63, $06ea
-	person_event SPRITE_BUTTERFREE, 8, 13, $16, $0, 255, 255, $80, 0, ButterfreeScript_0x62d8a, $ffff
-	person_event SPRITE_LASS, 8, 7, $4, $10, 255, 255, $a0, 0, LassScript_0x62d94, $06eb
-	person_event SPRITE_TEACHER, 11, 9, $7, $0, 255, 255, $90, 0, TeacherScript_0x62d63, $06ec
-; 0x62f76
+	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
--- a/maps/Route35.asm
+++ b/maps/Route35.asm
@@ -1,32 +1,14 @@
-Route35_MapScriptHeader: ; 0x19c8ad
-	; trigger count
+Route35_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x19c8af
 
-TrainerBird_keeperBryan: ; 0x19c8af
-	; bit/flag number
-	dw $3fd
+TrainerBird_keeperBryan:
+	trainer EVENT_BEAT_BIRD_KEEPER_BRYAN, BIRD_KEEPER, BRYAN, Bird_keeperBryanSeenText, Bird_keeperBryanBeatenText, $0000, Bird_keeperBryanScript
 
-	; trainer group && trainer id
-	db BIRD_KEEPER, BRYAN
-
-	; text when seen
-	dw Bird_keeperBryanSeenText
-
-	; text when trainer beaten
-	dw Bird_keeperBryanBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Bird_keeperBryanScript
-; 0x19c8bb
-
-Bird_keeperBryanScript: ; 0x19c8bb
+Bird_keeperBryanScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19cc87
@@ -33,110 +15,66 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19c8c3
 
-TrainerJugglerIrwin1: ; 0x19c8c3
-	; bit/flag number
-	dw $495
+TrainerJugglerIrwin:
+	trainer EVENT_BEAT_JUGGLER_IRWIN, JUGGLER, IRWIN1, JugglerIrwin1SeenText, JugglerIrwin1BeatenText, $0000, JugglerIrwin1Script
 
-	; trainer group && trainer id
-	db JUGGLER, IRWIN1
-
-	; text when seen
-	dw JugglerIrwin1SeenText
-
-	; text when trainer beaten
-	dw JugglerIrwin1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw JugglerIrwin1Script
-; 0x19c8cf
-
-JugglerIrwin1Script: ; 0x19c8cf
-	writecode $17, $16
+JugglerIrwin1Script:
+	writecode VAR_CALLERID, PHONE_JUGGLER_IRWIN
 	talkaftercancel
 	loadfont
-	checkcellnum $16
+	checkcellnum PHONE_JUGGLER_IRWIN
 	iftrue UnknownScript_0x19c90f
-	checkevent $0281
+	checkevent EVENT_IRWIN_ASKED_FOR_PHONE_NUMBER
 	iftrue UnknownScript_0x19c8ec
 	writetext UnknownText_0x19cd5a
 	keeptextopen
-	setevent $0281
+	setevent EVENT_IRWIN_ASKED_FOR_PHONE_NUMBER
 	scall UnknownScript_0x19c903
 	jump UnknownScript_0x19c8ef
-; 0x19c8ec
 
-UnknownScript_0x19c8ec: ; 0x19c8ec
+UnknownScript_0x19c8ec:
 	scall UnknownScript_0x19c907
-UnknownScript_0x19c8ef: ; 0x19c8ef
-	askforphonenumber $16
+UnknownScript_0x19c8ef:
+	askforphonenumber PHONE_JUGGLER_IRWIN
 	if_equal $1, UnknownScript_0x19c917
 	if_equal $2, UnknownScript_0x19c913
 	trainertotext JUGGLER, IRWIN1, $0
 	scall UnknownScript_0x19c90b
 	jump UnknownScript_0x19c90f
-; 0x19c903
 
-UnknownScript_0x19c903: ; 0x19c903
+UnknownScript_0x19c903:
 	jumpstd asknumber1m
 	end
-; 0x19c907
 
-UnknownScript_0x19c907: ; 0x19c907
+UnknownScript_0x19c907:
 	jumpstd asknumber2m
 	end
-; 0x19c90b
 
-UnknownScript_0x19c90b: ; 0x19c90b
+UnknownScript_0x19c90b:
 	jumpstd registerednumberm
 	end
-; 0x19c90f
 
-UnknownScript_0x19c90f: ; 0x19c90f
+UnknownScript_0x19c90f:
 	jumpstd numberacceptedm
 	end
-; 0x19c913
 
-UnknownScript_0x19c913: ; 0x19c913
+UnknownScript_0x19c913:
 	jumpstd numberdeclinedm
 	end
-; 0x19c917
 
-UnknownScript_0x19c917: ; 0x19c917
+UnknownScript_0x19c917:
 	jumpstd phonefullm
 	end
-; 0x19c91b
 
-UnknownScript_0x19c91b: ; 0x19c91b
+UnknownScript_0x19c91b:
 	jumpstd rematchm
 	end
-; 0x19c91f
 
-TrainerCamperIvan: ; 0x19c91f
-	; bit/flag number
-	dw $41c
+TrainerCamperIvan:
+	trainer EVENT_BEAT_CAMPER_IVAN, CAMPER, IVAN, CamperIvanSeenText, CamperIvanBeatenText, $0000, CamperIvanScript
 
-	; trainer group && trainer id
-	db CAMPER, IVAN
-
-	; text when seen
-	dw CamperIvanSeenText
-
-	; text when trainer beaten
-	dw CamperIvanBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CamperIvanScript
-; 0x19c92b
-
-CamperIvanScript: ; 0x19c92b
+CamperIvanScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19cac4
@@ -143,29 +81,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19c933
 
-TrainerCamperElliot: ; 0x19c933
-	; bit/flag number
-	dw $41d
+TrainerCamperElliot:
+	trainer EVENT_BEAT_CAMPER_ELLIOT, CAMPER, ELLIOT, CamperElliotSeenText, CamperElliotBeatenText, $0000, CamperElliotScript
 
-	; trainer group && trainer id
-	db CAMPER, ELLIOT
-
-	; text when seen
-	dw CamperElliotSeenText
-
-	; text when trainer beaten
-	dw CamperElliotBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CamperElliotScript
-; 0x19c93f
-
-CamperElliotScript: ; 0x19c93f
+CamperElliotScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19cb47
@@ -172,29 +92,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19c947
 
-TrainerPicnickerBrooke: ; 0x19c947
-	; bit/flag number
-	dw $480
+TrainerPicnickerBrooke:
+	trainer EVENT_BEAT_PICNICKER_BROOKE, PICNICKER, BROOKE, PicnickerBrookeSeenText, PicnickerBrookeBeatenText, $0000, PicnickerBrookeScript
 
-	; trainer group && trainer id
-	db PICNICKER, BROOKE
-
-	; text when seen
-	dw PicnickerBrookeSeenText
-
-	; text when trainer beaten
-	dw PicnickerBrookeBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PicnickerBrookeScript
-; 0x19c953
-
-PicnickerBrookeScript: ; 0x19c953
+PicnickerBrookeScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19cbba
@@ -201,29 +103,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19c95b
 
-TrainerPicnickerKim: ; 0x19c95b
-	; bit/flag number
-	dw $481
+TrainerPicnickerKim:
+	trainer EVENT_BEAT_PICNICKER_KIM, PICNICKER, KIM, PicnickerKimSeenText, PicnickerKimBeatenText, $0000, PicnickerKimScript
 
-	; trainer group && trainer id
-	db PICNICKER, KIM
-
-	; text when seen
-	dw PicnickerKimSeenText
-
-	; text when trainer beaten
-	dw PicnickerKimBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PicnickerKimScript
-; 0x19c967
-
-PicnickerKimScript: ; 0x19c967
+PicnickerKimScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19cc21
@@ -230,151 +114,108 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19c96f
 
-TrainerBug_catcherArnie1: ; 0x19c96f
-	; bit/flag number
-	dw $53f
+TrainerBug_catcherArnie1:
+	trainer EVENT_BEAT_BUG_CATCHER_ARNIE, BUG_CATCHER, ARNIE1, Bug_catcherArnie1SeenText, Bug_catcherArnie1BeatenText, $0000, Bug_catcherArnie1Script
 
-	; trainer group && trainer id
-	db BUG_CATCHER, ARNIE1
-
-	; text when seen
-	dw Bug_catcherArnie1SeenText
-
-	; text when trainer beaten
-	dw Bug_catcherArnie1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Bug_catcherArnie1Script
-; 0x19c97b
-
-Bug_catcherArnie1Script: ; 0x19c97b
-	writecode $17, $17
+Bug_catcherArnie1Script:
+	writecode VAR_CALLERID, PHONE_BUG_CATCHER_ARNIE
 	talkaftercancel
 	loadfont
-	checkflag $0072
+	checkflag ENGINE_ARNIE
 	iftrue UnknownScript_0x19c9bb
-	checkflag $00a1
+	checkflag ENGINE_YANMA_SWARM
 	iftrue UnknownScript_0x19ca2f
-	checkcellnum $17
+	checkcellnum PHONE_BUG_CATCHER_ARNIE
 	iftrue UnknownScript_0x19c90f
-	checkevent $0283
+	checkevent EVENT_ARNIE_ASKED_FOR_PHONE_NUMBER
 	iftrue UnknownScript_0x19c9a4
 	writetext UnknownText_0x19cdf6
 	keeptextopen
-	setevent $0283
+	setevent EVENT_ARNIE_ASKED_FOR_PHONE_NUMBER
 	scall UnknownScript_0x19c903
 	jump UnknownScript_0x19c9a7
-; 0x19c9a4
 
-UnknownScript_0x19c9a4: ; 0x19c9a4
+UnknownScript_0x19c9a4:
 	scall UnknownScript_0x19c907
-UnknownScript_0x19c9a7: ; 0x19c9a7
-	askforphonenumber $17
+UnknownScript_0x19c9a7:
+	askforphonenumber PHONE_BUG_CATCHER_ARNIE
 	if_equal $1, UnknownScript_0x19c917
 	if_equal $2, UnknownScript_0x19c913
 	trainertotext BUG_CATCHER, ARNIE1, $0
 	scall UnknownScript_0x19c90b
 	jump UnknownScript_0x19c90f
-; 0x19c9bb
 
-UnknownScript_0x19c9bb: ; 0x19c9bb
+UnknownScript_0x19c9bb:
 	scall UnknownScript_0x19c91b
 	winlosstext Bug_catcherArnie1BeatenText, $0000
-	copybytetovar wda01
-	if_equal $4, UnknownScript_0x19c9da
-	if_equal $3, UnknownScript_0x19c9e0
-	if_equal $2, UnknownScript_0x19c9e6
-	if_equal $1, UnknownScript_0x19c9ec
-	if_equal $0, UnknownScript_0x19c9f2
-UnknownScript_0x19c9da: ; 0x19c9da
+	copybytetovar wArnieFightCount
+	if_equal 4, .Fight4
+	if_equal 3, .Fight3
+	if_equal 2, .Fight2
+	if_equal 1, .Fight1
+	if_equal 0, .LoadFight0
+.Fight4
 	checkevent EVENT_RESTORED_POWER_TO_KANTO
-	iftrue UnknownScript_0x19ca26
-UnknownScript_0x19c9e0: ; 0x19c9e0
+	iftrue .LoadFight4
+.Fight3
 	checkevent EVENT_BEAT_ELITE_FOUR
-	iftrue UnknownScript_0x19ca19
-UnknownScript_0x19c9e6: ; 0x19c9e6
-	checkflag $004b
-	iftrue UnknownScript_0x19ca0c
-UnknownScript_0x19c9ec: ; 0x19c9ec
-	checkflag $004a
-	iftrue UnknownScript_0x19c9ff
-UnknownScript_0x19c9f2: ; 0x19c9f2
+	iftrue .LoadFight3
+.Fight2
+	checkflag ENGINE_FLYPOINT_BLACKTHORN
+	iftrue .LoadFight2
+.Fight1
+	checkflag ENGINE_FLYPOINT_LAKE_OF_RAGE
+	iftrue .LoadFight1
+.LoadFight0
 	loadtrainer BUG_CATCHER, ARNIE1
 	startbattle
 	returnafterbattle
-	loadvar wda01, $1
-	clearflag $0072
+	loadvar wArnieFightCount, 1
+	clearflag ENGINE_ARNIE
 	end
-; 0x19c9ff
 
-UnknownScript_0x19c9ff: ; 0x19c9ff
+.LoadFight1
 	loadtrainer BUG_CATCHER, ARNIE2
 	startbattle
 	returnafterbattle
-	loadvar wda01, $2
-	clearflag $0072
+	loadvar wArnieFightCount, 2
+	clearflag ENGINE_ARNIE
 	end
-; 0x19ca0c
 
-UnknownScript_0x19ca0c: ; 0x19ca0c
+.LoadFight2
 	loadtrainer BUG_CATCHER, ARNIE3
 	startbattle
 	returnafterbattle
-	loadvar wda01, $3
-	clearflag $0072
+	loadvar wArnieFightCount, 3
+	clearflag ENGINE_ARNIE
 	end
-; 0x19ca19
 
-UnknownScript_0x19ca19: ; 0x19ca19
+.LoadFight3
 	loadtrainer BUG_CATCHER, ARNIE4
 	startbattle
 	returnafterbattle
-	loadvar wda01, $4
-	clearflag $0072
+	loadvar wArnieFightCount, 4
+	clearflag ENGINE_ARNIE
 	end
-; 0x19ca26
 
-UnknownScript_0x19ca26: ; 0x19ca26
+.LoadFight4
 	loadtrainer BUG_CATCHER, ARNIE5
 	startbattle
 	returnafterbattle
-	clearflag $0072
+	clearflag ENGINE_ARNIE
 	end
-; 0x19ca2f
 
-UnknownScript_0x19ca2f: ; 0x19ca2f
+UnknownScript_0x19ca2f:
 	writetext UnknownText_0x19ce38
 	closetext
 	loadmovesprites
 	end
-; 0x19ca35
 
-TrainerFirebreatherWalt: ; 0x19ca35
-	; bit/flag number
-	dw $44b
+TrainerFirebreatherWalt:
+	trainer EVENT_BEAT_FIREBREATHER_WALT, FIREBREATHER, WALT, FirebreatherWaltSeenText, FirebreatherWaltBeatenText, $0000, FirebreatherWaltScript
 
-	; trainer group && trainer id
-	db FIREBREATHER, WALT
-
-	; text when seen
-	dw FirebreatherWaltSeenText
-
-	; text when trainer beaten
-	dw FirebreatherWaltBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw FirebreatherWaltScript
-; 0x19ca41
-
-FirebreatherWaltScript: ; 0x19ca41
+FirebreatherWaltScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19cebc
@@ -381,14 +222,13 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19ca49
 
-OfficerScript_0x19ca49: ; 0x19ca49
+OfficerScript_0x19ca49:
 	faceplayer
 	loadfont
 	checknite
 	iffalse UnknownScript_0x19ca73
-	checkevent $0547
+	checkevent EVENT_BEAT_OFFICER_DIRK
 	iftrue UnknownScript_0x19ca6d
 	playmusic MUSIC_OFFICER_ENCOUNTER
 	writetext UnknownText_0x19ceea
@@ -398,38 +238,32 @@
 	loadtrainer OFFICER, DIRK
 	startbattle
 	returnafterbattle
-	setevent $0547
+	setevent EVENT_BEAT_OFFICER_DIRK
 	loadmovesprites
 	end
-; 0x19ca6d
 
-UnknownScript_0x19ca6d: ; 0x19ca6d
+UnknownScript_0x19ca6d:
 	writetext UnknownText_0x19cf0f
 	closetext
 	loadmovesprites
 	end
-; 0x19ca73
 
-UnknownScript_0x19ca73: ; 0x19ca73
+UnknownScript_0x19ca73:
 	writetext UnknownText_0x19cf56
 	closetext
 	loadmovesprites
 	end
-; 0x19ca79
 
-MapRoute35Signpost1Script: ; 0x19ca79
+MapRoute35Signpost1Script:
 	jumptext UnknownText_0x19cf94
-; 0x19ca7c
 
-ItemFragment_0x19ca7c: ; 0x19ca7c
-	db TM_04, 1
-; 0x19ca7e
+ItemFragment_0x19ca7c:
+	db TM_ROLLOUT, 1
 
-FruitTreeScript_0x19ca7e: ; 0x19ca7e
+FruitTreeScript_0x19ca7e:
 	fruittree $b
-; 0x19ca80
 
-CamperIvanSeenText: ; 0x19ca80
+CamperIvanSeenText:
 	text "I've been getting"
 	line "#MON data off"
 
@@ -436,92 +270,78 @@
 	para "my radio. I think"
 	line "I'm good."
 	done
-; 0x19cabb
 
-CamperIvanBeatenText: ; 0x19cabb
+CamperIvanBeatenText:
 	text "I give!"
 	done
-; 0x19cac4
 
-UnknownText_0x19cac4: ; 0x19cac4
+UnknownText_0x19cac4:
 	text "Music on the radio"
 	line "changes the moods"
 	cont "of wild #MON."
 	done
-; 0x19caf8
 
-CamperElliotSeenText: ; 0x19caf8
+CamperElliotSeenText:
 	text "I'm gonna show my"
 	line "girlfriend I'm hot"
 	cont "stuff!"
 	done
-; 0x19cb23
 
-CamperElliotBeatenText: ; 0x19cb23
+CamperElliotBeatenText:
 	text "I wish you would"
 	line "have lost for me…"
 	done
-; 0x19cb47
 
-UnknownText_0x19cb47: ; 0x19cb47
+UnknownText_0x19cb47:
 	text "I was humiliated"
 	line "in front of my"
 	cont "girlfriend…"
 	done
-; 0x19cb74
 
-PicnickerBrookeSeenText: ; 0x19cb74
+PicnickerBrookeSeenText:
 	text "My boyfriend's"
 	line "weak, so I can't"
 	cont "rely on him."
 	done
-; 0x19cba0
 
-PicnickerBrookeBeatenText: ; 0x19cba0
+PicnickerBrookeBeatenText:
 	text "Oh, my! You're so"
 	line "strong!"
 	done
-; 0x19cbba
 
-UnknownText_0x19cbba: ; 0x19cbba
+UnknownText_0x19cbba:
 	text "I can count on my"
 	line "#MON more than"
 	cont "my boyfriend."
 	done
-; 0x19cbea
 
-PicnickerKimSeenText: ; 0x19cbea
+PicnickerKimSeenText:
 	text "Are you going to"
 	line "the GYM? Me too!"
 	done
-; 0x19cc0d
 
-PicnickerKimBeatenText: ; 0x19cc0d
+PicnickerKimBeatenText:
 	text "Oh. I couldn't"
 	line "win…"
 	done
-; 0x19cc21
 
-UnknownText_0x19cc21: ; 0x19cc21
+UnknownText_0x19cc21:
 	text "The GYM BADGES are"
 	line "pretty. I collect"
 	cont "them."
 	done
-; 0x19cc4d
 
-Bird_keeperBryanSeenText: ; 0x19cc4d
+Bird_keeperBryanSeenText:
 	text "What kinds of"
 	line "BALLS do you use?"
 	done
-; 0x19cc6e
 
-Bird_keeperBryanBeatenText: ; 0x19cc6e
+Bird_keeperBryanBeatenText:
 	text "Yikes! Not fast"
 	line "enough!"
 	done
-; 0x19cc87
 
-UnknownText_0x19cc87: ; 0x19cc87
+UnknownText_0x19cc87:
 	text "Some #MON flee"
 	line "right away."
 
@@ -536,21 +356,18 @@
 	para "He turns it into a"
 	line "custom BALL."
 	done
-; 0x19cd1e
 
-JugglerIrwin1SeenText: ; 0x19cd1e
+JugglerIrwin1SeenText:
 	text "Behold my graceful"
 	line "BALL dexterity!"
 	done
-; 0x19cd42
 
-JugglerIrwin1BeatenText: ; 0x19cd42
+JugglerIrwin1BeatenText:
 	text "Whew! That was a"
 	line "jolt!"
 	done
-; 0x19cd5a
 
-UnknownText_0x19cd5a: ; 0x19cd5a
+UnknownText_0x19cd5a:
 	text "I was going to"
 	line "dazzle you with my"
 	cont "prize #MON."
@@ -558,22 +375,19 @@
 	para "But your prowess"
 	line "electrified me!"
 	done
-; 0x19cdaa
 
-Bug_catcherArnie1SeenText: ; 0x19cdaa
+Bug_catcherArnie1SeenText:
 	text "I'll go anywhere"
 	line "if bug #MON"
 	cont "appear there."
 	done
-; 0x19cdd5
 
-Bug_catcherArnie1BeatenText: ; 0x19cdd5
+Bug_catcherArnie1BeatenText:
 	text "Huh? I shouldn't"
 	line "have lost that…"
 	done
-; 0x19cdf6
 
-UnknownText_0x19cdf6: ; 0x19cdf6
+UnknownText_0x19cdf6:
 	text "My VENONAT won me"
 	line "the Bug-Catching"
 
@@ -580,9 +394,8 @@
 	para "Contest at the"
 	line "NATIONAL PARK."
 	done
-; 0x19ce38
 
-UnknownText_0x19ce38: ; 0x19ce38
+UnknownText_0x19ce38:
 	text "Wow… Look at all"
 	line "those YANMA!"
 
@@ -589,39 +402,33 @@
 	para "I'm so blown away,"
 	line "I can't move."
 	done
-; 0x19ce76
 
-FirebreatherWaltSeenText: ; 0x19ce76
+FirebreatherWaltSeenText:
 	text "I'm practicing my"
 	line "fire breathing."
 	done
-; 0x19ce98
 
-FirebreatherWaltBeatenText: ; 0x19ce98
+FirebreatherWaltBeatenText:
 	text "Ow! I scorched the"
 	line "tip of my nose!"
 	done
-; 0x19cebc
 
-UnknownText_0x19cebc: ; 0x19cebc
+UnknownText_0x19cebc:
 	text "The #MON March"
 	line "on the radio lures"
 	cont "wild #MON."
 	done
-; 0x19ceea
 
-UnknownText_0x19ceea: ; 0x19ceea
+UnknownText_0x19ceea:
 	text "Danger lurks in"
 	line "the night!"
 	done
-; 0x19cf06
 
-UnknownText_0x19cf06: ; 0x19cf06
+UnknownText_0x19cf06:
 	text "Whoops!"
 	done
-; 0x19cf0f
 
-UnknownText_0x19cf0f: ; 0x19cf0f
+UnknownText_0x19cf0f:
 	text "You know, night-"
 	line "time is fun in its"
 	cont "own ways."
@@ -629,9 +436,8 @@
 	para "But don't overdo"
 	line "it, OK?"
 	done
-; 0x19cf56
 
-UnknownText_0x19cf56: ; 0x19cf56
+UnknownText_0x19cf56:
 	text "Your #MON look"
 	line "pretty tough."
 
@@ -638,42 +444,39 @@
 	para "You could go any-"
 	line "where safely."
 	done
-; 0x19cf94
 
-UnknownText_0x19cf94: ; 0x19cf94
+UnknownText_0x19cf94:
 	text "ROUTE 35"
 	done
-; 0x19cf9e
 
-Route35_MapEventHeader: ; 0x19cf9e
+Route35_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 7, 1, $0, MapRoute35Signpost1Script
-	signpost 31, 11, $0, MapRoute35Signpost1Script
+	signpost 7, 1, SIGNPOST_READ, MapRoute35Signpost1Script
+	signpost 31, 11, SIGNPOST_READ, MapRoute35Signpost1Script
 
-	; people-events
+.PersonEvents:
 	db 11
-	person_event SPRITE_YOUNGSTER, 23, 8, $a, $0, 255, 255, $a2, 2, TrainerCamperIvan, $ffff
-	person_event SPRITE_YOUNGSTER, 24, 12, $6, $0, 255, 255, $a2, 3, TrainerCamperElliot, $ffff
-	person_event SPRITE_LASS, 24, 11, $6, $0, 255, 255, $a2, 3, TrainerPicnickerBrooke, $ffff
-	person_event SPRITE_LASS, 30, 14, $a, $0, 255, 255, $a2, 1, TrainerPicnickerKim, $ffff
-	person_event SPRITE_YOUNGSTER, 32, 18, $6, $0, 255, 255, $92, 0, TrainerBird_keeperBryan, $ffff
-	person_event SPRITE_FISHER, 14, 6, $1e, $0, 255, 255, $82, 2, TrainerFirebreatherWalt, $ffff
-	person_event SPRITE_BUG_CATCHER, 11, 20, $6, $2, 255, 255, $b2, 3, TrainerBug_catcherArnie1, $ffff
-	person_event SPRITE_SUPER_NERD, 14, 9, $a, $0, 255, 255, $92, 2, TrainerJugglerIrwin1, $ffff
-	person_event SPRITE_OFFICER, 10, 9, $6, $0, 255, 255, $90, 0, OfficerScript_0x19ca49, $ffff
-	person_event SPRITE_FRUIT_TREE, 29, 6, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x19ca7e, $ffff
-	person_event SPRITE_POKE_BALL, 20, 17, $1, $0, 255, 255, $1, 0, ItemFragment_0x19ca7c, $06b2
-; 0x19d04c
+	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
--- a/maps/Route35Goldenrodgate.asm
+++ b/maps/Route35Goldenrodgate.asm
@@ -1,12 +1,11 @@
-Route35Goldenrodgate_MapScriptHeader: ; 0x69d35
-	; trigger count
+Route35Goldenrodgate_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x69d37
 
-OfficerScript_0x69d37: ; 0x69d37
+OfficerScript_0x69d37:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_HP_UP_FROM_RANDY
@@ -21,7 +20,7 @@
 	writetext UnknownText_0x69e48
 	keeptextopen
 	waitbutton
-	checkcode $1
+	checkcode VAR_PARTYCOUNT
 	if_equal $6, UnknownScript_0x69d79
 	writetext UnknownText_0x69eb8
 	playsound SFX_KEY_ITEM
@@ -29,52 +28,49 @@
 	givepoke SPEAROW, 10, 0, 1, GiftSpearowName, GiftSpearowOTName
 	givepokeitem GiftSpearowMail
 	setevent EVENT_GOT_KENYA
-UnknownScript_0x69d73: ; 0x69d73
+UnknownScript_0x69d73:
 	writetext UnknownText_0x69ed6
 	closetext
 	loadmovesprites
 	end
-; 0x69d79
 
-UnknownScript_0x69d79: ; 0x69d79
+UnknownScript_0x69d79:
 	writetext UnknownText_0x69f56
 	closetext
 	loadmovesprites
 	end
-; 0x69d7f
 
-UnknownScript_0x69d7f: ; 0x69d7f
+UnknownScript_0x69d7f:
 	writetext UnknownText_0x69f74
 	closetext
 	loadmovesprites
 	end
-; 0x69d85
 
-UnknownScript_0x69d85: ; 0x69d85
+UnknownScript_0x69d85:
 	writetext UnknownText_0x69f8b
 	keeptextopen
 	verbosegiveitem HP_UP, 1
 	iffalse UnknownScript_0x69d96
 	setevent EVENT_GOT_HP_UP_FROM_RANDY
-UnknownScript_0x69d92: ; 0x69d92
+UnknownScript_0x69d92:
 	writetext UnknownText_0x69fd9
 	closetext
-UnknownScript_0x69d96: ; 0x69d96
+UnknownScript_0x69d96:
 	loadmovesprites
 	end
 
-GiftSpearowMail: ; 0x69d98
+GiftSpearowMail:
 	db FLOWER_MAIL
 	db "DARK CAVE leads", $4E
 	db "to another road@"
-GiftSpearowName: ; 0x69db9
+GiftSpearowName:
 	db "KENYA@"
-GiftSpearowOTName: ; 0x69dbf
+GiftSpearowOTName:
 	db "RANDY@"
 
-	db 0 ; 0x69dc5 XXX is there a reason for this?
+	db 0
 
-PokefanFScript_0x69dc6: ; 0x69dc6
+PokefanFScript_0x69dc6:
 	faceplayer
 	loadfont
 	checkevent EVENT_FOUGHT_SUDOWOODO
@@ -83,20 +79,17 @@
 	closetext
 	loadmovesprites
 	end
-; 0x69dd4
 
-UnknownScript_0x69dd4: ; 0x69dd4
+UnknownScript_0x69dd4:
 	writetext UnknownText_0x6a09a
 	closetext
 	loadmovesprites
 	end
-; 0x69dda
 
-FisherScript_0x69dda: ; 0x69dda
+FisherScript_0x69dda:
 	jumptextfaceplayer UnknownText_0x6a0cb
-; 0x69ddd
 
-UnknownText_0x69ddd: ; 0x69ddd
+UnknownText_0x69ddd:
 	text "Excuse me, kid!"
 	line "Can you do a guy"
 	cont "a favor?"
@@ -107,9 +100,8 @@
 
 	para "He's on ROUTE 31."
 	done
-; 0x69e48
 
-UnknownText_0x69e48: ; 0x69e48
+UnknownText_0x69e48:
 	text "You will? Perfect!"
 	line "Thanks, kid!"
 
@@ -120,15 +112,13 @@
 	para "You'll recognize"
 	line "him right away!"
 	done
-; 0x69eb8
 
-UnknownText_0x69eb8: ; 0x69eb8
+UnknownText_0x69eb8:
 	text "<PLAYER> received a"
 	line "#MON with MAIL."
 	done
-; 0x69ed6
 
-UnknownText_0x69ed6: ; 0x69ed6
+UnknownText_0x69ed6:
 	text "You can read it,"
 	line "but don't lose it!"
 	cont "ROUTE 31!"
@@ -140,21 +130,18 @@
 	para "I wonder if it's"
 	line "been cleared?"
 	done
-; 0x69f56
 
-UnknownText_0x69f56: ; 0x69f56
+UnknownText_0x69f56:
 	text "You can't carry"
 	line "another #MON…"
 	done
-; 0x69f74
 
-UnknownText_0x69f74: ; 0x69f74
+UnknownText_0x69f74:
 	text "Oh… Never mind,"
 	line "then…"
 	done
-; 0x69f8b
 
-UnknownText_0x69f8b: ; 0x69f8b
+UnknownText_0x69f8b:
 	text "Thanks, kid! You"
 	line "made the delivery"
 	cont "for me!"
@@ -162,16 +149,14 @@
 	para "Here's something"
 	line "for your trouble!"
 	done
-; 0x69fd9
 
-UnknownText_0x69fd9: ; 0x69fd9
+UnknownText_0x69fd9:
 	text "My pal was snooz-"
 	line "ing, right? Heh,"
 	cont "what'd I say?"
 	done
-; 0x6a00a
 
-UnknownText_0x6a00a: ; 0x6a00a
+UnknownText_0x6a00a:
 	text "A strange tree is"
 	line "blocking the road."
 
@@ -184,16 +169,14 @@
 	para "watered it with a"
 	line "SQUIRTBOTTLE."
 	done
-; 0x6a09a
 
-UnknownText_0x6a09a: ; 0x6a09a
+UnknownText_0x6a09a:
 	text "I like the #MON"
 	line "Lullaby they play"
 	cont "on the radio."
 	done
-; 0x6a0cb
 
-UnknownText_0x6a0cb: ; 0x6a0cb
+UnknownText_0x6a0cb:
 	text "I wonder how many"
 	line "kinds of #MON"
 
@@ -206,13 +189,12 @@
 	para "there were 150"
 	line "different kinds."
 	done
-; 0x6a148
 
-Route35Goldenrodgate_MapEventHeader: ; 0x6a148
+Route35Goldenrodgate_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -219,15 +201,14 @@
 	warp_def $7, $4, 12, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
 	warp_def $7, $5, 12, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_OFFICER, 8, 4, $9, $0, 255, 255, $80, 0, OfficerScript_0x69d37, $ffff
-	person_event SPRITE_POKEFAN_F, 8, 10, $4, $10, 255, 255, $90, 0, PokefanFScript_0x69dc6, $ffff
-	person_event SPRITE_FISHER, 6, 7, $3, $0, 255, 255, $a0, 0, FisherScript_0x69dda, $ffff
-; 0x6a189
+	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
--- a/maps/Route35NationalParkgate.asm
+++ b/maps/Route35NationalParkgate.asm
@@ -1,115 +1,105 @@
-Route35NationalParkgate_MapScriptHeader: ; 0x6a189
-	; trigger count
+Route35NationalParkgate_MapScriptHeader:
+.MapTriggers:
 	db 3
 
 	; triggers
-	dw UnknownScript_0x6a19d, $0000
-	dw UnknownScript_0x6a19e, $0000
-	dw UnknownScript_0x6a19f, $0000
+	dw Route35NationalParkgate_Trigger1, $0000
+	dw Route35NationalParkgate_Trigger2, $0000
+	dw Route35NationalParkgate_Trigger3, $0000
 
-	; callback count
+.MapCallbacks:
 	db 2
 
 	; callbacks
 
-	dbw 5, UnknownScript_0x6a1a3
+	dbw 5, Route35NationalParkgate_CheckIfStillInContest
 
-	dbw 2, UnknownScript_0x6a1af
-; 0x6a19d
+	dbw 2, Route35NationalParkgate_CheckIfContestDay
 
-UnknownScript_0x6a19d: ; 0x6a19d
+Route35NationalParkgate_Trigger1:
 	end
-; 0x6a19e
 
-UnknownScript_0x6a19e: ; 0x6a19e
+Route35NationalParkgate_Trigger2:
 	end
-; 0x6a19f
 
-UnknownScript_0x6a19f: ; 0x6a19f
-	priorityjump UnknownScript_0x6a1d1
+Route35NationalParkgate_Trigger3:
+	priorityjump Route35NationalParkGate_LeavingContestEarly
 	end
-; 0x6a1a3
 
-UnknownScript_0x6a1a3: ; 0x6a1a3
-	checkflag $0011
-	iftrue UnknownScript_0x6a1ac
+Route35NationalParkgate_CheckIfStillInContest:
+	checkflag ENGINE_BUG_CONTEST_TIMER
+	iftrue Route35NationalParkgate_Yes
 	dotrigger $0
 	return
-; 0x6a1ac
 
-UnknownScript_0x6a1ac: ; 0x6a1ac
+Route35NationalParkgate_Yes:
 	dotrigger $2
 	return
-; 0x6a1af
 
-UnknownScript_0x6a1af: ; 0x6a1af
-	checkcode $b
-	if_equal TUESDAY, UnknownScript_0x6a1ca
-	if_equal THURSDAY, UnknownScript_0x6a1ca
-	if_equal SATURDAY, UnknownScript_0x6a1ca
-	checkflag $0011
-	iftrue UnknownScript_0x6a1ac
+Route35NationalParkgate_CheckIfContestDay:
+	checkcode VAR_WEEKDAY
+	if_equal TUESDAY, Route35NationalParkgate_IsContestDay
+	if_equal THURSDAY, Route35NationalParkgate_IsContestDay
+	if_equal SATURDAY, Route35NationalParkgate_IsContestDay
+	checkflag ENGINE_BUG_CONTEST_TIMER
+	iftrue Route35NationalParkgate_Yes
 	disappear $2
 	appear $3
 	appear $4
 	return
-; 0x6a1ca
 
-UnknownScript_0x6a1ca: ; 0x6a1ca
+Route35NationalParkgate_IsContestDay:
 	appear $2
 	disappear $3
 	disappear $4
 	return
-; 0x6a1d1
 
-UnknownScript_0x6a1d1: ; 0x6a1d1
+Route35NationalParkGate_LeavingContestEarly:
 	applymovement $0, MovementData_0x6a2e2
 	spriteface $2, RIGHT
 	loadfont
-	checkcode $11
+	checkcode VAR_CONTESTMINUTES
 	addvar $1
 	RAM2MEM $0
 	writetext UnknownText_0x6a79a
 	yesorno
-	iffalse UnknownScript_0x6a1ee
+	iffalse Route35NationalParkgate_GoBackIn
 	writetext UnknownText_0x6a7db
 	closetext
 	loadmovesprites
 	jumpstd bugcontestresultswarp
-; 0x6a1ee
 
-UnknownScript_0x6a1ee: ; 0x6a1ee
+Route35NationalParkgate_GoBackIn:
 	writetext UnknownText_0x6a823
 	closetext
 	loadmovesprites
-	scall UnknownScript_0x6a261
+	scall Route35NationalParkgate_EnterContest
 	playsound SFX_ENTER_DOOR
-	special Function8c084
+	special FadeBlackBGMap
 	waitbutton
 	warpfacing $1, GROUP_NATIONAL_PARK_BUG_CONTEST, MAP_NATIONAL_PARK_BUG_CONTEST, $a, $2f
 	end
-; 0x6a204
 
-OfficerScript_0x6a204: ; 0x6a204
-	checkcode $b
-	if_equal SUNDAY, UnknownScript_0x6a2c7
-	if_equal MONDAY, UnknownScript_0x6a2c7
-	if_equal WEDNESDAY, UnknownScript_0x6a2c7
-	if_equal FRIDAY, UnknownScript_0x6a2c7
+OfficerScript_0x6a204:
+	checkcode VAR_WEEKDAY
+	if_equal SUNDAY, Route35NationalParkgate_NoContestToday
+	if_equal MONDAY, Route35NationalParkgate_NoContestToday
+	if_equal WEDNESDAY, Route35NationalParkgate_NoContestToday
+	if_equal FRIDAY, Route35NationalParkgate_NoContestToday
 	faceplayer
 	loadfont
-	checkflag $0051
-	iftrue UnknownScript_0x6a2c1
-	scall UnknownScript_0x6a2de
+	checkflag ENGINE_DAILY_BUG_CONTEST
+	iftrue Route35NationalParkgate_ContestIsOver
+	scall Route35NationalParkgate_GetDayOfWeek
 	writetext UnknownText_0x6a2eb
 	yesorno
-	iffalse UnknownScript_0x6a2a3
-	checkcode $1
-	if_greater_than $1, UnknownScript_0x6a271
-	special Function13a12
-	clearevent $0308
-UnknownScript_0x6a234: ; 0x6a234
-	setflag $0011
+	iffalse Route35NationalParkgate_DeclinedToParticipate
+	checkcode VAR_PARTYCOUNT
+	if_greater_than $1, Route35NationalParkgate_LeaveTheRestBehind
+	special CheckFirstMonFainted
+	clearevent EVENT_LEFT_MONS_WITH_CONTEST_OFFICER
+Route35NationalParkgate_OkayToProceed:
+	setflag ENGINE_BUG_CONTEST_TIMER
 	special PlayMapMusic
 	writetext UnknownText_0x6a39d
 	keeptextopen
@@ -119,43 +109,40 @@
 	writetext UnknownText_0x6a3e2
 	closetext
 	loadmovesprites
-	special Function135db
-	scall UnknownScript_0x6a261
+	special Special_GiveParkBalls
+	scall Route35NationalParkgate_EnterContest
 	playsound SFX_ENTER_DOOR
-	special Function8c084
+	special FadeBlackBGMap
 	waitbutton
-	special Function139a8
+	special Special_SelectRandomBugContestContestants
 	warpfacing $1, GROUP_NATIONAL_PARK_BUG_CONTEST, MAP_NATIONAL_PARK_BUG_CONTEST, $a, $2f
 	end
-; 0x6a261
 
-UnknownScript_0x6a261: ; 0x6a261
-	checkcode $9
-	if_equal $2, UnknownScript_0x6a26c
+Route35NationalParkgate_EnterContest:
+	checkcode VAR_FACING
+	if_equal LEFT, Route35NationalParkgate_FacingLeft
 	applymovement $0, MovementData_0x6a2e5
 	end
-; 0x6a26c
 
-UnknownScript_0x6a26c: ; 0x6a26c
+Route35NationalParkgate_FacingLeft:
 	applymovement $0, MovementData_0x6a2e9
 	end
-; 0x6a271
 
-UnknownScript_0x6a271: ; 0x6a271
-	checkcode $1
-	if_less_than $6, UnknownScript_0x6a27d
-	checkcode $10
-	if_equal $0, UnknownScript_0x6a2b5
+Route35NationalParkgate_LeaveTheRestBehind:
+	checkcode VAR_PARTYCOUNT
+	if_less_than 6, Route35NationalParkgate_LessThanFullParty
+	checkcode VAR_BOXSPACE
+	if_equal 0, Route35NationalParkgate_NoRoomInBox
 
-UnknownScript_0x6a27d: ; 6a27d
+Route35NationalParkgate_LessThanFullParty: ; 6a27d
 	special Function71ac
-	if_equal $1, UnknownScript_0x6a2bb
+	if_equal $1, Route35NationalParkgate_FirstMonIsEgg
 	writetext UnknownText_0x6a4c6
 	yesorno
-	iffalse UnknownScript_0x6a2a9
-	special Function13a12
-	iftrue UnknownScript_0x6a2af
-	setevent $0308
+	iffalse Route35NationalParkgate_DeclinedToLeaveMonsBehind
+	special CheckFirstMonFainted
+	iftrue Route35NationalParkgate_FirstMonIsFainted
+	setevent EVENT_LEFT_MONS_WITH_CONTEST_OFFICER
 	writetext UnknownText_0x6a537
 	keeptextopen
 	writetext UnknownText_0x6a56b
@@ -162,98 +149,83 @@
 	playsound SFX_GOT_SAFARI_BALLS
 	waitbutton
 	keeptextopen
-	jump UnknownScript_0x6a234
-; 0x6a2a3
+	jump Route35NationalParkgate_OkayToProceed
 
-UnknownScript_0x6a2a3: ; 0x6a2a3
+Route35NationalParkgate_DeclinedToParticipate:
 	writetext UnknownText_0x6a5dc
 	closetext
 	loadmovesprites
 	end
-; 0x6a2a9
 
-UnknownScript_0x6a2a9: ; 0x6a2a9
+Route35NationalParkgate_DeclinedToLeaveMonsBehind:
 	writetext UnknownText_0x6a597
 	closetext
 	loadmovesprites
 	end
-; 0x6a2af
 
-UnknownScript_0x6a2af: ; 0x6a2af
+Route35NationalParkgate_FirstMonIsFainted:
 	writetext UnknownText_0x6a608
 	closetext
 	loadmovesprites
 	end
-; 0x6a2b5
 
-UnknownScript_0x6a2b5: ; 0x6a2b5
+Route35NationalParkgate_NoRoomInBox:
 	writetext UnknownText_0x6a67c
 	closetext
 	loadmovesprites
 	end
-; 0x6a2bb
 
-UnknownScript_0x6a2bb: ; 0x6a2bb
+Route35NationalParkgate_FirstMonIsEgg:
 	writetext UnknownText_0x6a71f
 	closetext
 	loadmovesprites
 	end
-; 0x6a2c1
 
-UnknownScript_0x6a2c1: ; 0x6a2c1
+Route35NationalParkgate_ContestIsOver:
 	writetext UnknownText_0x6a84f
 	closetext
 	loadmovesprites
 	end
-; 0x6a2c7
 
-UnknownScript_0x6a2c7: ; 0x6a2c7
+Route35NationalParkgate_NoContestToday:
 	jumptextfaceplayer UnknownText_0x6a894
-; 0x6a2ca
 
-OfficerScript_0x6a2ca: ; 0x6a2ca
+OfficerScript_0x6a2ca:
 	faceplayer
 	loadfont
-	checkflag $0051
-	iftrue UnknownScript_0x6a2c1
+	checkflag ENGINE_DAILY_BUG_CONTEST
+	iftrue Route35NationalParkgate_ContestIsOver
 	writetext UnknownText_0x6a894
 	closetext
 	loadmovesprites
 	end
-; 0x6a2d8
 
-YoungsterScript_0x6a2d8: ; 0x6a2d8
+YoungsterScript_0x6a2d8:
 	jumptextfaceplayer UnknownText_0x6a8d8
-; 0x6a2db
 
-MapRoute36NationalParkgateSignpost0Script: ; 0x6a2db
+MapRoute36NationalParkgateSignpost0Script:
 	jumptext UnknownText_0x6a90e
-; 0x6a2de
 
-UnknownScript_0x6a2de: ; 0x6a2de
+Route35NationalParkgate_GetDayOfWeek:
 	jumpstd daytotext
 	end
-; 0x6a2e2
 
-MovementData_0x6a2e2: ; 0x6a2e2
+MovementData_0x6a2e2:
 	step_down
 	turn_head_left
 	step_end
-; 0x6a2e5
 
-MovementData_0x6a2e5: ; 0x6a2e5
+MovementData_0x6a2e5:
 	step_right
 	step_up
 	step_up
 	step_end
-; 0x6a2e9
 
-MovementData_0x6a2e9: ; 0x6a2e9
+MovementData_0x6a2e9:
 	step_up
 	step_end
-; 0x6a2eb
 
-UnknownText_0x6a2eb: ; 0x6a2eb
+UnknownText_0x6a2eb:
 	text "Today's @"
 	text_from_ram StringBuffer3
 	text "."
@@ -274,22 +246,19 @@
 	para "Would you like to"
 	line "give it a try?"
 	done
-; 0x6a39d
 
-UnknownText_0x6a39d: ; 0x6a39d
+UnknownText_0x6a39d:
 	text "Here are the PARK"
 	line "BALLS for the"
 	cont "Contest."
 	done
-; 0x6a3c7
 
-UnknownText_0x6a3c7: ; 0x6a3c7
+UnknownText_0x6a3c7:
 	text "<PLAYER> received"
 	line "20 PARK BALLS."
 	done
-; 0x6a3e2
 
-UnknownText_0x6a3e2: ; 0x6a3e2
+UnknownText_0x6a3e2:
 	text "The person who"
 	line "gets the strong-"
 	cont "est bug #MON"
@@ -312,9 +281,8 @@
 	para "#MON you can"
 	line "find!"
 	done
-; 0x6a4c6
 
-UnknownText_0x6a4c6: ; 0x6a4c6
+UnknownText_0x6a4c6:
 	text "Uh-oh…"
 
 	para "You have more than"
@@ -331,23 +299,20 @@
 	para "Is that OK with"
 	line "you?"
 	done
-; 0x6a537
 
-UnknownText_0x6a537: ; 0x6a537
+UnknownText_0x6a537:
 	text "Fine, we'll hold"
 	line "your other #MON"
 	cont "while you compete."
 	done
-; 0x6a56b
 
-UnknownText_0x6a56b: ; 0x6a56b
+UnknownText_0x6a56b:
 	text "<PLAYER>'s #MON"
 	line "were left with the"
 	cont "CONTEST HELPER."
 	done
-; 0x6a597
 
-UnknownText_0x6a597: ; 0x6a597
+UnknownText_0x6a597:
 	text "Please choose the"
 	line "#MON to be used"
 
@@ -354,16 +319,14 @@
 	para "in the Contest,"
 	line "then come see me."
 	done
-; 0x6a5dc
 
-UnknownText_0x6a5dc: ; 0x6a5dc
+UnknownText_0x6a5dc:
 	text "OK. We hope you'll"
 	line "take part in the"
 	cont "future."
 	done
-; 0x6a608
 
-UnknownText_0x6a608: ; 0x6a608
+UnknownText_0x6a608:
 	text "Uh-oh…"
 	line "The first #MON"
 
@@ -376,9 +339,8 @@
 	para "you want to use,"
 	line "then come see me."
 	done
-; 0x6a67c
 
-UnknownText_0x6a67c: ; 0x6a67c
+UnknownText_0x6a67c:
 	text "Uh-oh…"
 	line "Both your party"
 
@@ -395,9 +357,8 @@
 	para "your PC BOX, then"
 	line "come see me."
 	done
-; 0x6a71f
 
-UnknownText_0x6a71f: ; 0x6a71f
+UnknownText_0x6a71f:
 	text "Uh-oh…"
 	line "You have an EGG as"
 
@@ -410,9 +371,8 @@
 	para "you want to use,"
 	line "then come see me."
 	done
-; 0x6a79a
 
-UnknownText_0x6a79a: ; 0x6a79a
+UnknownText_0x6a79a:
 	text "You still have @"
 	text_from_ram StringBuffer3
 	text ""
@@ -421,9 +381,8 @@
 	para "Do you want to"
 	line "finish now?"
 	done
-; 0x6a7db
 
-UnknownText_0x6a7db: ; 0x6a7db
+UnknownText_0x6a7db:
 	text "OK. Please wait at"
 	line "the North Gate for"
 
@@ -430,16 +389,14 @@
 	para "the announcement"
 	line "of the winners."
 	done
-; 0x6a823
 
-UnknownText_0x6a823: ; 0x6a823
+UnknownText_0x6a823:
 	text "OK. Please get"
 	line "back outside and"
 	cont "finish up."
 	done
-; 0x6a84f
 
-UnknownText_0x6a84f: ; 0x6a84f
+UnknownText_0x6a84f:
 	text "Today's Contest is"
 	line "over. We hope you"
 
@@ -446,9 +403,8 @@
 	para "will participate"
 	line "in the future."
 	done
-; 0x6a894
 
-UnknownText_0x6a894: ; 0x6a894
+UnknownText_0x6a894:
 	text "We hold Contests"
 	line "regularly in the"
 
@@ -455,16 +411,14 @@
 	para "PARK. You should"
 	line "give it a shot."
 	done
-; 0x6a8d8
 
-UnknownText_0x6a8d8: ; 0x6a8d8
+UnknownText_0x6a8d8:
 	text "When is the next"
 	line "Bug-Catching Con-"
 	cont "test going to be?"
 	done
-; 0x6a90e
 
-UnknownText_0x6a90e: ; 0x6a90e
+UnknownText_0x6a90e:
 	text "The Bug-Catching"
 	line "Contest is held on"
 
@@ -483,13 +437,12 @@
 	para "have at the end of"
 	line "the contest."
 	done
-; 0x6a9d2
 
-Route35NationalParkgate_MapEventHeader: ; 0x6a9d2
+Route35NationalParkgate_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -496,16 +449,15 @@
 	warp_def $7, $3, 3, GROUP_ROUTE_35, MAP_ROUTE_35
 	warp_def $7, $4, 3, GROUP_ROUTE_35, MAP_ROUTE_35
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 0, 5, $0, MapRoute36NationalParkgateSignpost0Script
+	signpost 0, 5, SIGNPOST_READ, MapRoute36NationalParkgateSignpost0Script
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_OFFICER, 5, 6, $6, $0, 255, 255, $a0, 0, OfficerScript_0x6a204, $0745
-	person_event SPRITE_YOUNGSTER, 9, 10, $2, $11, 255, 255, $80, 0, YoungsterScript_0x6a2d8, $0734
-	person_event SPRITE_OFFICER, 7, 4, $9, $0, 255, 255, $a0, 0, OfficerScript_0x6a2ca, $0746
-; 0x6aa18
+	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
--- a/maps/Route36.asm
+++ b/maps/Route36.asm
@@ -1,5 +1,5 @@
-Route36_MapScriptHeader: ; 0x194000
-	; trigger count
+Route36_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,7 +6,7 @@
 	dw UnknownScript_0x19400d, $0000
 	dw UnknownScript_0x19400e, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -13,16 +13,14 @@
 
 	dbw 2, ArthurCallback
 
-UnknownScript_0x19400d: ; 0x19400d
+UnknownScript_0x19400d:
 	end
-; 0x19400e
 
-UnknownScript_0x19400e: ; 0x19400e
+UnknownScript_0x19400e:
 	end
-; 0x19400f
 
 ArthurCallback:
-	checkcode $b
+	checkcode VAR_WEEKDAY
 	if_equal THURSDAY, .ArthurAppears
 	disappear $8
 	return
@@ -31,8 +29,8 @@
 	appear $8
 	return
 
-UnknownScript_0x19401b: ; 0x19401b
-	showemote $0, $0, 15
+UnknownScript_0x19401b:
+	showemote EMOTE_SHOCK, $0, 15
 	pause 15
 	playsound SFX_WARP_FROM
 	spriteface $0, UP
@@ -44,9 +42,8 @@
 	clearevent EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY
 	domaptrigger GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY, $1
 	end
-; 0x19403c
 
-WeirdTreeScript_0x19403c: ; 0x19403c
+WeirdTreeScript_0x19403c:
 	checkitem SQUIRTBOTTLE
 	iftrue UnknownScript_0x19404a
 	waitbutton
@@ -53,9 +50,8 @@
 	playsound SFX_SANDSTORM
 	applymovement $4, MovementData_0x194249
 	end
-; 0x19404a
 
-UnknownScript_0x19404a: ; 0x19404a
+UnknownScript_0x19404a:
 	loadfont
 	writetext UnknownText_0x19426b
 	yesorno
@@ -62,9 +58,8 @@
 	iffalse UnknownScript_0x194079
 	loadmovesprites
 	; fallthrough
-; 0x194053
 
-WateredWeirdTreeScript:: ; 0x194053
+WateredWeirdTreeScript::
 	loadfont
 	writetext UnknownText_0x194290
 	closetext
@@ -81,57 +76,51 @@
 	setevent EVENT_FOUGHT_SUDOWOODO
 	if_equal $2, UnknownScript_0x19407b
 	disappear $4
-	variablesprite $4, $26
+	variablesprite SPRITE_WEIRD_TREE, SPRITE_TWIN
 	returnafterbattle
 	end
-; 0x194079
 
-UnknownScript_0x194079: ; 0x194079
+UnknownScript_0x194079:
 	loadmovesprites
 	end
-; 0x19407b
 
-UnknownScript_0x19407b: ; 0x19407b
+UnknownScript_0x19407b:
 	returnafterbattle
 	applymovement $4, MovementData_0x19424b
 	disappear $4
-	variablesprite $4, $26
-	special Function14209
+	variablesprite SPRITE_WEIRD_TREE, SPRITE_TWIN
+	special RunCallback_04
 	special Function14168
 	end
-; 0x19408c
 
-LassScript_0x19408c: ; 0x19408c
+LassScript_0x19408c:
 	faceplayer
 	loadfont
-	checkevent $00ba
+	checkevent EVENT_TALKED_TO_FLORIA_AT_FLOWER_SHOP
 	iftrue UnknownScript_0x1940b3
 	setevent EVENT_MET_FLORIA
 	writetext UnknownText_0x1942f1
 	closetext
 	loadmovesprites
-	clearevent $0768
-	checkcode $9
+	clearevent EVENT_FLORIA_AT_FLOWER_SHOP
+	checkcode VAR_FACING
 	if_equal $1, UnknownScript_0x1940ac
 	applymovement $9, MovementData_0x19424e
 	disappear $9
 	end
-; 0x1940ac
 
-UnknownScript_0x1940ac: ; 0x1940ac
+UnknownScript_0x1940ac:
 	applymovement $9, MovementData_0x194258
 	disappear $9
 	end
-; 0x1940b3
 
-UnknownScript_0x1940b3: ; 0x1940b3
+UnknownScript_0x1940b3:
 	writetext UnknownText_0x1943ed
 	closetext
 	loadmovesprites
 	end
-; 0x1940b9
 
-FisherScript_0x1940b9: ; 0x1940b9
+FisherScript_0x1940b9:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_TM08_ROCK_SMASH
@@ -142,23 +131,21 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1940cd
 
-UnknownScript_0x1940cd: ; 0x1940cd
+UnknownScript_0x1940cd:
 	writetext UnknownText_0x1944d0
 	keeptextopen
-	verbosegiveitem TM_08, 1
+	verbosegiveitem TM_ROCK_SMASH, 1
 	iffalse UnknownScript_0x1940de
 	setevent EVENT_GOT_TM08_ROCK_SMASH
-UnknownScript_0x1940da: ; 0x1940da
+UnknownScript_0x1940da:
 	writetext UnknownText_0x19452c
 	closetext
-UnknownScript_0x1940de: ; 0x1940de
+UnknownScript_0x1940de:
 	loadmovesprites
 	end
-; 0x1940e0
 
-LassScript_0x1940e0: ; 0x1940e0
+LassScript_0x1940e0:
 	faceplayer
 	loadfont
 	checkevent EVENT_FOUGHT_SUDOWOODO
@@ -167,209 +154,155 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1940ee
 
-UnknownScript_0x1940ee: ; 0x1940ee
+UnknownScript_0x1940ee:
 	writetext UnknownText_0x19469e
 	closetext
 	loadmovesprites
 	end
-; 0x1940f4
 
-TrainerSchoolboyAlan1: ; 0x1940f4
-	; bit/flag number
-	dw $46e
+TrainerSchoolboyAlan1:
+	trainer EVENT_BEAT_SCHOOLBOY_ALAN, SCHOOLBOY, ALAN1, SchoolboyAlan1SeenText, SchoolboyAlan1BeatenText, $0000, SchoolboyAlan1Script
 
-	; trainer group && trainer id
-	db SCHOOLBOY, ALAN1
-
-	; text when seen
-	dw SchoolboyAlan1SeenText
-
-	; text when trainer beaten
-	dw SchoolboyAlan1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SchoolboyAlan1Script
-; 0x194100
-
-SchoolboyAlan1Script: ; 0x194100
-	writecode $17, $18
+SchoolboyAlan1Script:
+	writecode VAR_CALLERID, PHONE_SCHOOLBOY_ALAN
 	talkaftercancel
 	loadfont
-	checkflag $0073
+	checkflag ENGINE_ALAN
 	iftrue UnknownScript_0x194140
-	checkflag $0081
+	checkflag ENGINE_ALAN_HAS_FIRE_STONE
 	iftrue UnknownScript_0x1941b4
-	checkcellnum $18
+	checkcellnum PHONE_SCHOOLBOY_ALAN
 	iftrue UnknownScript_0x1941d5
-	checkevent $0285
+	checkevent EVENT_ALAN_ASKED_FOR_PHONE_NUMBER
 	iftrue UnknownScript_0x194129
 	writetext UnknownText_0x1947aa
 	keeptextopen
-	setevent $0285
+	setevent EVENT_ALAN_ASKED_FOR_PHONE_NUMBER
 	scall UnknownScript_0x1941c9
 	jump UnknownScript_0x19412c
-; 0x194129
 
-UnknownScript_0x194129: ; 0x194129
+UnknownScript_0x194129:
 	scall UnknownScript_0x1941cd
-UnknownScript_0x19412c: ; 0x19412c
-	askforphonenumber $18
+UnknownScript_0x19412c:
+	askforphonenumber PHONE_SCHOOLBOY_ALAN
 	if_equal $1, UnknownScript_0x1941dd
 	if_equal $2, UnknownScript_0x1941d9
 	trainertotext SCHOOLBOY, ALAN1, $0
 	scall UnknownScript_0x1941d1
 	jump UnknownScript_0x1941d5
-; 0x194140
 
-UnknownScript_0x194140: ; 0x194140
+UnknownScript_0x194140:
 	scall UnknownScript_0x1941e1
 	winlosstext SchoolboyAlan1BeatenText, $0000
-	copybytetovar wda02
-	if_equal $4, UnknownScript_0x19415f
-	if_equal $3, UnknownScript_0x194165
-	if_equal $2, UnknownScript_0x19416b
-	if_equal $1, UnknownScript_0x194171
-	if_equal $0, UnknownScript_0x194177
-UnknownScript_0x19415f: ; 0x19415f
+	copybytetovar wAlanFightCount
+	if_equal 4, .Fight4
+	if_equal 3, .Fight3
+	if_equal 2, .Fight2
+	if_equal 1, .Fight1
+	if_equal 0, .LoadFight0
+.Fight4
 	checkevent EVENT_RESTORED_POWER_TO_KANTO
-	iftrue UnknownScript_0x1941ab
-UnknownScript_0x194165: ; 0x194165
+	iftrue .LoadFight4
+.Fight3
 	checkevent EVENT_BEAT_ELITE_FOUR
-	iftrue UnknownScript_0x19419e
-UnknownScript_0x19416b: ; 0x19416b
-	checkflag $004b
-	iftrue UnknownScript_0x194191
-UnknownScript_0x194171: ; 0x194171
-	checkflag $0047
-	iftrue UnknownScript_0x194184
-UnknownScript_0x194177: ; 0x194177
+	iftrue .LoadFight3
+.Fight2
+	checkflag ENGINE_FLYPOINT_BLACKTHORN
+	iftrue .LoadFight2
+.Fight1
+	checkflag ENGINE_FLYPOINT_OLIVINE
+	iftrue .LoadFight1
+.LoadFight0
 	loadtrainer SCHOOLBOY, ALAN1
 	startbattle
 	returnafterbattle
-	loadvar wda02, $1
-	clearflag $0073
+	loadvar wAlanFightCount, 1
+	clearflag ENGINE_ALAN
 	end
-; 0x194184
 
-UnknownScript_0x194184: ; 0x194184
+.LoadFight1
 	loadtrainer SCHOOLBOY, ALAN2
 	startbattle
 	returnafterbattle
-	loadvar wda02, $2
-	clearflag $0073
+	loadvar wAlanFightCount, 2
+	clearflag ENGINE_ALAN
 	end
-; 0x194191
 
-UnknownScript_0x194191: ; 0x194191
+.LoadFight2
 	loadtrainer SCHOOLBOY, ALAN3
 	startbattle
 	returnafterbattle
-	loadvar wda02, $3
-	clearflag $0073
+	loadvar wAlanFightCount, 3
+	clearflag ENGINE_ALAN
 	end
-; 0x19419e
 
-UnknownScript_0x19419e: ; 0x19419e
+.LoadFight3
 	loadtrainer SCHOOLBOY, ALAN4
 	startbattle
 	returnafterbattle
-	loadvar wda02, $4
-	clearflag $0073
+	loadvar wAlanFightCount, 4
+	clearflag ENGINE_ALAN
 	end
-; 0x1941ab
 
-UnknownScript_0x1941ab: ; 0x1941ab
+.LoadFight4
 	loadtrainer SCHOOLBOY, ALAN5
 	startbattle
 	returnafterbattle
-	clearflag $0073
+	clearflag ENGINE_ALAN
 	end
-; 0x1941b4
 
-UnknownScript_0x1941b4: ; 0x1941b4
+UnknownScript_0x1941b4:
 	scall UnknownScript_0x1941e5
 	verbosegiveitem FIRE_STONE, 1
 	iffalse UnknownScript_0x1941c6
-	clearflag $0081
-	setevent $0101
+	clearflag ENGINE_ALAN_HAS_FIRE_STONE
+	setevent EVENT_ALAN_GAVE_FIRE_STONE
 	jump UnknownScript_0x1941d5
-; 0x1941c6
 
-UnknownScript_0x1941c6: ; 0x1941c6
+UnknownScript_0x1941c6:
 	jump UnknownScript_0x1941e9
-; 0x1941c9
 
-UnknownScript_0x1941c9: ; 0x1941c9
+UnknownScript_0x1941c9:
 	jumpstd asknumber1m
 	end
-; 0x1941cd
 
-UnknownScript_0x1941cd: ; 0x1941cd
+UnknownScript_0x1941cd:
 	jumpstd asknumber2m
 	end
-; 0x1941d1
 
-UnknownScript_0x1941d1: ; 0x1941d1
+UnknownScript_0x1941d1:
 	jumpstd registerednumberm
 	end
-; 0x1941d5
 
-UnknownScript_0x1941d5: ; 0x1941d5
+UnknownScript_0x1941d5:
 	jumpstd numberacceptedm
 	end
-; 0x1941d9
 
-UnknownScript_0x1941d9: ; 0x1941d9
+UnknownScript_0x1941d9:
 	jumpstd numberdeclinedm
 	end
-; 0x1941dd
 
-UnknownScript_0x1941dd: ; 0x1941dd
+UnknownScript_0x1941dd:
 	jumpstd phonefullm
 	end
-; 0x1941e1
 
-UnknownScript_0x1941e1: ; 0x1941e1
+UnknownScript_0x1941e1:
 	jumpstd rematchm
 	end
-; 0x1941e5
 
-UnknownScript_0x1941e5: ; 0x1941e5
+UnknownScript_0x1941e5:
 	jumpstd giftm
 	end
-; 0x1941e9
 
-UnknownScript_0x1941e9: ; 0x1941e9
+UnknownScript_0x1941e9:
 	jumpstd packfullm
 	end
-; 0x1941ed
 
-TrainerPsychicMark: ; 0x1941ed
-	; bit/flag number
-	dw $440
+TrainerPsychicMark:
+	trainer EVENT_BEAT_PSYCHIC_MARK, PSYCHIC_T, MARK, PsychicMarkSeenText, PsychicMarkBeatenText, $0000, PsychicMarkScript
 
-	; trainer group && trainer id
-	db PSYCHIC_T, MARK
-
-	; text when seen
-	dw PsychicMarkSeenText
-
-	; text when trainer beaten
-	dw PsychicMarkBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PsychicMarkScript
-; 0x1941f9
-
-PsychicMarkScript: ; 0x1941f9
+PsychicMarkScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19471e
@@ -376,7 +309,6 @@
 	closetext
 	loadmovesprites
 	end
-; 0x194201
 
 ArthurScript:
 	faceplayer
@@ -383,7 +315,7 @@
 	loadfont
 	checkevent EVENT_GOT_HARD_STONE_FROM_ARTHUR
 	iftrue ArthurThursdayScript
-	checkcode $b
+	checkcode VAR_WEEKDAY
 	if_not_equal THURSDAY, ArthurNotThursdayScript
 	checkevent EVENT_MET_ARTHUR_OF_THURSDAY
 	iftrue .MetArthur
@@ -414,38 +346,31 @@
 	loadmovesprites
 	end
 
-MapRoute36Signpost2Script: ; 0x19423b
+MapRoute36Signpost2Script:
 	jumptext UnknownText_0x194924
-; 0x19423e
 
-MapRoute36Signpost1Script: ; 0x19423e
+MapRoute36Signpost1Script:
 	jumptext UnknownText_0x19492e
-; 0x194241
 
-MapRoute36Signpost3Script: ; 0x194241
+MapRoute36Signpost3Script:
 	jumptext UnknownText_0x19494c
-; 0x194244
 
-MapRoute36Signpost0Script: ; 0x194244
+MapRoute36Signpost0Script:
 	jumptext UnknownText_0x1949ee
-; 0x194247
 
-FruitTreeScript_0x194247: ; 0x194247
+FruitTreeScript_0x194247:
 	fruittree $d
-; 0x194249
 
-MovementData_0x194249: ; 0x194249
+MovementData_0x194249:
 	db $56 ; movement
 	step_end
-; 0x19424b
 
-MovementData_0x19424b: ; 0x19424b
+MovementData_0x19424b:
 	fast_jump_step_up
 	fast_jump_step_up
 	step_end
-; 0x19424e
 
-MovementData_0x19424e: ; 0x19424e
+MovementData_0x19424e:
 	step_down
 	step_down
 	step_down
@@ -456,9 +381,8 @@
 	step_left
 	step_left
 	step_end
-; 0x194258
 
-MovementData_0x194258: ; 0x194258
+MovementData_0x194258:
 	step_left
 	step_down
 	step_down
@@ -469,9 +393,8 @@
 	step_left
 	step_left
 	step_end
-; 0x194262
 
-MovementData_0x194262: ; 0x194262
+MovementData_0x194262:
 	db $39 ; movement
 	fast_jump_step_down
 	fast_jump_step_down
@@ -481,21 +404,18 @@
 	fast_jump_step_right
 	db $38 ; movement
 	step_end
-; 0x19426b
 
-UnknownText_0x19426b: ; 0x19426b
+UnknownText_0x19426b:
 	text "It's a weird tree."
 	line "Use SQUIRTBOTTLE?"
 	done
-; 0x194290
 
-UnknownText_0x194290: ; 0x194290
+UnknownText_0x194290:
 	text "<PLAYER> used the"
 	line "SQUIRTBOTTLE."
 	done
-; 0x1942aa
 
-UnknownText_0x1942aa: ; 0x1942aa
+UnknownText_0x1942aa:
 	text "The weird tree"
 	line "doesn't like the"
 	cont "SQUIRTBOTTLE!"
@@ -503,9 +423,8 @@
 	para "The weird tree"
 	line "attacked!"
 	done
-; 0x1942f1
 
-UnknownText_0x1942f1: ; 0x1942f1
+UnknownText_0x1942f1:
 	text "I'm the FLOWER"
 	line "SHOP's FLORIA!"
 
@@ -530,9 +449,8 @@
 	line "my sis and borrow"
 	cont "her water bottle!"
 	done
-; 0x1943ed
 
-UnknownText_0x1943ed: ; 0x1943ed
+UnknownText_0x1943ed:
 	text "When I told my sis"
 	line "about the jiggly"
 
@@ -545,9 +463,8 @@
 	para "lend me her water"
 	line "bottle…"
 	done
-; 0x19446f
 
-UnknownText_0x19446f: ; 0x19446f
+UnknownText_0x19446f:
 	text "Wa-hey!"
 
 	para "I was going to"
@@ -559,9 +476,8 @@
 	para "But I couldn't!"
 	line "I'm a failure!"
 	done
-; 0x1944d0
 
-UnknownText_0x1944d0: ; 0x1944d0
+UnknownText_0x1944d0:
 	text "Did you clear that"
 	line "wretched tree?"
 
@@ -569,15 +485,13 @@
 	line "I want you to"
 	cont "have this."
 	done
-; 0x19451a
 
-UnknownText_0x19451a: ; 0x19451a
+UnknownText_0x19451a:
 	text "<PLAYER> received"
 	line "TM08."
 	done
-; 0x19452c
 
-UnknownText_0x19452c: ; 0x19452c
+UnknownText_0x19452c:
 	text "That happens to be"
 	line "ROCK SMASH."
 
@@ -591,9 +505,8 @@
 	line "in your way, just"
 	cont "smash 'em up!"
 	done
-; 0x1945b8
 
-UnknownText_0x1945b8: ; 0x1945b8
+UnknownText_0x1945b8:
 	text "An odd tree is"
 	line "blocking the way"
 	cont "to GOLDENROD CITY."
@@ -604,9 +517,8 @@
 	para "CENTER they just"
 	line "opened…"
 	done
-; 0x194626
 
-UnknownText_0x194626: ; 0x194626
+UnknownText_0x194626:
 	text "An odd tree is"
 	line "blocking the way"
 	cont "to GOLDENROD CITY."
@@ -617,9 +529,8 @@
 	para "Something should"
 	line "be done about it."
 	done
-; 0x19469e
 
-UnknownText_0x19469e: ; 0x19469e
+UnknownText_0x19469e:
 	text "That odd tree dis-"
 	line "appeared without a"
 	cont "trace."
@@ -627,20 +538,17 @@
 	para "Oh! That tree was"
 	line "really a #MON?"
 	done
-; 0x1946ed
 
-PsychicMarkSeenText: ; 0x1946ed
+PsychicMarkSeenText:
 	text "I'm going to read"
 	line "your thoughts!"
 	done
-; 0x19470e
 
-PsychicMarkBeatenText: ; 0x19470e
+PsychicMarkBeatenText:
 	text "I misread you!"
 	done
-; 0x19471e
 
-UnknownText_0x19471e: ; 0x19471e
+UnknownText_0x19471e:
 	text "I'd be strong if"
 	line "only I could tell"
 
@@ -647,22 +555,19 @@
 	para "what my opponent"
 	line "was thinking."
 	done
-; 0x194760
 
-SchoolboyAlan1SeenText: ; 0x194760
+SchoolboyAlan1SeenText:
 	text "Thanks to my stud-"
 	line "ies, I'm ready for"
 	cont "any #MON!"
 	done
-; 0x194790
 
-SchoolboyAlan1BeatenText: ; 0x194790
+SchoolboyAlan1BeatenText:
 	text "Oops! Computation"
 	line "error?"
 	done
-; 0x1947aa
 
-UnknownText_0x1947aa: ; 0x1947aa
+UnknownText_0x1947aa:
 	text "Darn. I study five"
 	line "hours a day too."
 
@@ -670,7 +575,6 @@
 	line "learning than just"
 	cont "reading books."
 	done
-; 0x194800
 
 MeetArthurText:
 	text "ARTHUR: Who are"
@@ -710,18 +614,16 @@
 	cont "disappointing."
 	done
 
-UnknownText_0x194924: ; 0x194924
+UnknownText_0x194924:
 	text "ROUTE 36"
 	done
-; 0x19492e
 
-UnknownText_0x19492e: ; 0x19492e
+UnknownText_0x19492e:
 	text "RUINS OF ALPH"
 	line "NORTH ENTRANCE"
 	done
-; 0x19494c
 
-UnknownText_0x19494c: ; 0x19494c
+UnknownText_0x19494c:
 	text "TRAINER TIPS"
 
 	para "#MON stats"
@@ -737,9 +639,8 @@
 	para "pronounced as the"
 	line "#MON grow."
 	done
-; 0x1949ee
 
-UnknownText_0x1949ee: ; 0x1949ee
+UnknownText_0x1949ee:
 	text "TRAINER TIPS"
 
 	para "Use DIG to return"
@@ -752,13 +653,12 @@
 	para "caves and other"
 	line "landmarks."
 	done
-; 0x194a66
 
-Route36_MapEventHeader: ; 0x194a66
+Route36_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -765,26 +665,26 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 2
 	xy_trigger 1, $7, $14, $0, UnknownScript_0x19401b, $0, $0
 	xy_trigger 1, $7, $16, $0, UnknownScript_0x19401b, $0, $0
 
-	; signposts
+.Signposts:
 	db 4
-	signpost 1, 29, $0, MapRoute36Signpost0Script
-	signpost 11, 45, $0, MapRoute36Signpost1Script
-	signpost 7, 55, $0, MapRoute36Signpost2Script
-	signpost 7, 21, $0, MapRoute36Signpost3Script
+	signpost 1, 29, SIGNPOST_READ, MapRoute36Signpost0Script
+	signpost 11, 45, SIGNPOST_READ, MapRoute36Signpost1Script
+	signpost 7, 55, SIGNPOST_READ, MapRoute36Signpost2Script
+	signpost 7, 21, SIGNPOST_READ, MapRoute36Signpost3Script
 
-	; people-events
+.PersonEvents:
 	db 9
-	person_event SPRITE_YOUNGSTER, 17, 24, $9, $0, 255, 255, $92, 3, TrainerPsychicMark, $ffff
-	person_event SPRITE_YOUNGSTER, 18, 35, $8, $0, 255, 255, $92, 5, TrainerSchoolboyAlan1, $ffff
-	person_event SPRITE_WEIRD_TREE, 13, 39, $17, $0, 255, 255, $0, 0, WeirdTreeScript_0x19403c, $06f8
-	person_event SPRITE_LASS, 12, 55, $5, $2, 255, 255, $0, 0, LassScript_0x1940e0, $ffff
-	person_event SPRITE_FISHER, 13, 48, $8, $0, 255, 255, $0, 0, FisherScript_0x1940b9, $ffff
-	person_event SPRITE_FRUIT_TREE, 8, 25, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x194247, $ffff
-	person_event SPRITE_YOUNGSTER, 10, 50, $2, $11, 255, 255, $0, 0, ArthurScript, $075a
-	person_event SPRITE_LASS, 16, 37, $6, $0, 255, 255, $90, 0, LassScript_0x19408c, EVENT_FLORIA_AT_SUDOWOODO
-	person_event SPRITE_SUICUNE, 10, 25, $1, $0, 255, 255, $90, 0, ObjectEvent, $07b0
+	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
--- a/maps/Route36NationalParkgate.asm
+++ b/maps/Route36NationalParkgate.asm
@@ -1,5 +1,5 @@
-Route36NationalParkgate_MapScriptHeader: ; 0x6aafd
-	; trigger count
+Route36NationalParkgate_MapScriptHeader:
+.MapTriggers:
 	db 3
 
 	; triggers
@@ -7,7 +7,7 @@
 	dw UnknownScript_0x6ab12, $0000
 	dw UnknownScript_0x6ab13, $0000
 
-	; callback count
+.MapCallbacks:
 	db 2
 
 	; callbacks
@@ -15,58 +15,50 @@
 	dbw 5, UnknownScript_0x6ab17
 
 	dbw 2, UnknownScript_0x6ab23
-; 0x6ab11
 
-UnknownScript_0x6ab11: ; 0x6ab11
+UnknownScript_0x6ab11:
 	end
-; 0x6ab12
 
-UnknownScript_0x6ab12: ; 0x6ab12
+UnknownScript_0x6ab12:
 	end
-; 0x6ab13
 
-UnknownScript_0x6ab13: ; 0x6ab13
+UnknownScript_0x6ab13:
 	priorityjump UnknownScript_0x6ab47
 	end
-; 0x6ab17
 
-UnknownScript_0x6ab17: ; 0x6ab17
-	checkflag $0011
+UnknownScript_0x6ab17:
+	checkflag ENGINE_BUG_CONTEST_TIMER
 	iftrue UnknownScript_0x6ab20
 	dotrigger $0
 	return
-; 0x6ab20
 
-UnknownScript_0x6ab20: ; 0x6ab20
+UnknownScript_0x6ab20:
 	dotrigger $2
 	return
-; 0x6ab23
 
-UnknownScript_0x6ab23: ; 0x6ab23
-	checkevent $02d2
+UnknownScript_0x6ab23:
+	checkevent EVENT_WARPED_FROM_ROUTE_35_NATIONAL_PARK_GATE
 	iftrue UnknownScript_0x6ab46
-	checkcode $b
+	checkcode VAR_WEEKDAY
 	if_equal TUESDAY, UnknownScript_0x6ab42
 	if_equal THURSDAY, UnknownScript_0x6ab42
 	if_equal SATURDAY, UnknownScript_0x6ab42
-	checkflag $0011
+	checkflag ENGINE_BUG_CONTEST_TIMER
 	iftrue UnknownScript_0x6ab42
 	disappear $2
 	appear $d
 	return
-; 0x6ab42
 
-UnknownScript_0x6ab42: ; 0x6ab42
+UnknownScript_0x6ab42:
 	appear $2
 	disappear $d
-UnknownScript_0x6ab46: ; 0x6ab46
+UnknownScript_0x6ab46:
 	return
-; 0x6ab47
 
-UnknownScript_0x6ab47: ; 0x6ab47
+UnknownScript_0x6ab47:
 	spriteface $0, UP
 	loadfont
-	checkcode $11
+	checkcode VAR_CONTESTMINUTES
 	addvar $1
 	RAM2MEM $0
 	writetext UnknownText_0x6b284
@@ -75,76 +67,73 @@
 	writetext UnknownText_0x6b2c5
 	closetext
 	loadmovesprites
-	special Function8c0b6
-	special Functiond91
+	special Special_FadeBlackQuickly
+	special Special_ReloadSpritesNoPalettes
 	scall UnknownScript_0x6ab8c
 	disappear $2
 	appear $d
 	applymovement $0, MovementData_0x6add1
 	pause 15
-	special Function8c0ab
+	special Special_FadeInQuickly
 	jumpstd bugcontestresults
-; 0x6ab76
 
-UnknownScript_0x6ab76: ; 0x6ab76
+UnknownScript_0x6ab76:
 	writetext UnknownText_0x6b300
 	closetext
 	loadmovesprites
 	spriteface $0, LEFT
 	playsound SFX_EXIT_BUILDING
-	special Function8c084
+	special FadeBlackBGMap
 	waitbutton
 	warpfacing $2, GROUP_NATIONAL_PARK_BUG_CONTEST, MAP_NATIONAL_PARK_BUG_CONTEST, $21, $12
 	end
-; 0x6ab8c
 
-UnknownScript_0x6ab8c: ; 0x6ab8c
-	checkevent $0716
+UnknownScript_0x6ab8c:
+	checkevent EVENT_BUG_CATCHING_CONTESTANT_1A
 	iftrue UnknownScript_0x6ab94
 	appear $3
-UnknownScript_0x6ab94: ; 0x6ab94
-	checkevent $0717
+UnknownScript_0x6ab94:
+	checkevent EVENT_BUG_CATCHING_CONTESTANT_2A
 	iftrue UnknownScript_0x6ab9c
 	appear $4
-UnknownScript_0x6ab9c: ; 0x6ab9c
-	checkevent $0718
+UnknownScript_0x6ab9c:
+	checkevent EVENT_BUG_CATCHING_CONTESTANT_3A
 	iftrue UnknownScript_0x6aba4
 	appear $5
-UnknownScript_0x6aba4: ; 0x6aba4
-	checkevent $0719
+UnknownScript_0x6aba4:
+	checkevent EVENT_BUG_CATCHING_CONTESTANT_4A
 	iftrue UnknownScript_0x6abac
 	appear $6
-UnknownScript_0x6abac: ; 0x6abac
-	checkevent $071a
+UnknownScript_0x6abac:
+	checkevent EVENT_BUG_CATCHING_CONTESTANT_5A
 	iftrue UnknownScript_0x6abb4
 	appear $7
-UnknownScript_0x6abb4: ; 0x6abb4
-	checkevent $071b
+UnknownScript_0x6abb4:
+	checkevent EVENT_BUG_CATCHING_CONTESTANT_6A
 	iftrue UnknownScript_0x6abbc
 	appear $8
-UnknownScript_0x6abbc: ; 0x6abbc
-	checkevent $071c
+UnknownScript_0x6abbc:
+	checkevent EVENT_BUG_CATCHING_CONTESTANT_7A
 	iftrue UnknownScript_0x6abc4
 	appear $9
-UnknownScript_0x6abc4: ; 0x6abc4
-	checkevent $071d
+UnknownScript_0x6abc4:
+	checkevent EVENT_BUG_CATCHING_CONTESTANT_8A
 	iftrue UnknownScript_0x6abcc
 	appear $a
-UnknownScript_0x6abcc: ; 0x6abcc
-	checkevent $071e
+UnknownScript_0x6abcc:
+	checkevent EVENT_BUG_CATCHING_CONTESTANT_9A
 	iftrue UnknownScript_0x6abd4
 	appear $b
-UnknownScript_0x6abd4: ; 0x6abd4
-	checkevent $071f
+UnknownScript_0x6abd4:
+	checkevent EVENT_BUG_CATCHING_CONTESTANT_10A
 	iftrue UnknownScript_0x6abdc
 	appear $c
-UnknownScript_0x6abdc: ; 0x6abdc
-	special Function1ad2
+UnknownScript_0x6abdc:
+	special DrawOnMap
 	end
-; 0x6abe0
 
-OfficerScript_0x6abe0: ; 0x6abe0
-	checkcode $b
+OfficerScript_0x6abe0:
+	checkcode VAR_WEEKDAY
 	if_equal SUNDAY, UnknownScript_0x6acf1
 	if_equal MONDAY, UnknownScript_0x6acf1
 	if_equal WEDNESDAY, UnknownScript_0x6acf1
@@ -151,18 +140,18 @@
 	if_equal FRIDAY, UnknownScript_0x6acf1
 	faceplayer
 	loadfont
-	checkflag $0051
+	checkflag ENGINE_DAILY_BUG_CONTEST
 	iftrue UnknownScript_0x6ac91
 	scall UnknownScript_0x6ad02
 	writetext UnknownText_0x6add5
 	yesorno
 	iffalse UnknownScript_0x6ac73
-	checkcode $1
+	checkcode VAR_PARTYCOUNT
 	if_greater_than $1, UnknownScript_0x6ac41
-	special Function13a12
-	clearevent $0308
-UnknownScript_0x6ac10: ; 0x6ac10
-	setflag $0011
+	special CheckFirstMonFainted
+	clearevent EVENT_LEFT_MONS_WITH_CONTEST_OFFICER
+UnknownScript_0x6ac10:
+	setflag ENGINE_BUG_CONTEST_TIMER
 	special PlayMapMusic
 	writetext UnknownText_0x6ae87
 	keeptextopen
@@ -173,31 +162,30 @@
 	writetext UnknownText_0x6aecc
 	closetext
 	loadmovesprites
-	setflag $0011
-	special Function135db
+	setflag ENGINE_BUG_CONTEST_TIMER
+	special Special_GiveParkBalls
 	spriteface $0, LEFT
 	playsound SFX_EXIT_BUILDING
-	special Function8c084
+	special FadeBlackBGMap
 	waitbutton
-	special Function139a8
+	special Special_SelectRandomBugContestContestants
 	warpfacing $2, GROUP_NATIONAL_PARK_BUG_CONTEST, MAP_NATIONAL_PARK_BUG_CONTEST, $21, $12
 	end
-; 0x6ac41
 
-UnknownScript_0x6ac41: ; 0x6ac41
-	checkcode $1
+UnknownScript_0x6ac41:
+	checkcode VAR_PARTYCOUNT
 	if_less_than $6, UnknownScript_0x6ac4d
-	checkcode $10
+	checkcode VAR_BOXSPACE
 	if_equal $0, UnknownScript_0x6ac85
-UnknownScript_0x6ac4d: ; 0x6ac4d
+UnknownScript_0x6ac4d:
 	special Function71ac
 	if_equal $1, UnknownScript_0x6ac8b
 	writetext UnknownText_0x6afb0
 	yesorno
 	iffalse UnknownScript_0x6ac79
-	special Function13a12
+	special CheckFirstMonFainted
 	iftrue UnknownScript_0x6ac7f
-	setevent $0308
+	setevent EVENT_LEFT_MONS_WITH_CONTEST_OFFICER
 	writetext UnknownText_0x6b021
 	keeptextopen
 	writetext UnknownText_0x6b055
@@ -205,317 +193,280 @@
 	waitbutton
 	keeptextopen
 	jump UnknownScript_0x6ac10
-; 0x6ac73
 
-UnknownScript_0x6ac73: ; 0x6ac73
+UnknownScript_0x6ac73:
 	writetext UnknownText_0x6b0c6
 	closetext
 	loadmovesprites
 	end
-; 0x6ac79
 
-UnknownScript_0x6ac79: ; 0x6ac79
+UnknownScript_0x6ac79:
 	writetext UnknownText_0x6b081
 	closetext
 	loadmovesprites
 	end
-; 0x6ac7f
 
-UnknownScript_0x6ac7f: ; 0x6ac7f
+UnknownScript_0x6ac7f:
 	writetext UnknownText_0x6b0f2
 	closetext
 	loadmovesprites
 	end
-; 0x6ac85
 
-UnknownScript_0x6ac85: ; 0x6ac85
+UnknownScript_0x6ac85:
 	writetext UnknownText_0x6b166
 	closetext
 	loadmovesprites
 	end
-; 0x6ac8b
 
-UnknownScript_0x6ac8b: ; 0x6ac8b
+UnknownScript_0x6ac8b:
 	writetext UnknownText_0x6b209
 	closetext
 	loadmovesprites
 	end
-; 0x6ac91
 
-UnknownScript_0x6ac91: ; 0x6ac91
-	checkevent $0313
+UnknownScript_0x6ac91:
+	checkevent EVENT_CONTEST_OFFICER_HAS_SUN_STONE
 	iftrue UnknownScript_0x6acaf
-	checkevent $0314
+	checkevent EVENT_CONTEST_OFFICER_HAS_EVERSTONE
 	iftrue UnknownScript_0x6acbe
-	checkevent $0315
+	checkevent EVENT_CONTEST_OFFICER_HAS_GOLD_BERRY
 	iftrue UnknownScript_0x6accd
-	checkevent $0316
+	checkevent EVENT_CONTEST_OFFICER_HAS_BERRY
 	iftrue UnknownScript_0x6acdc
 	writetext UnknownText_0x6b32b
 	closetext
 	loadmovesprites
 	end
-; 0x6acaf
 
-UnknownScript_0x6acaf: ; 0x6acaf
+UnknownScript_0x6acaf:
 	writetext UnknownText_0x6b97f
 	keeptextopen
 	verbosegiveitem SUN_STONE, 1
 	iffalse UnknownScript_0x6aceb
-	clearevent $0313
+	clearevent EVENT_CONTEST_OFFICER_HAS_SUN_STONE
 	loadmovesprites
 	end
-; 0x6acbe
 
-UnknownScript_0x6acbe: ; 0x6acbe
+UnknownScript_0x6acbe:
 	writetext UnknownText_0x6b97f
 	keeptextopen
 	verbosegiveitem EVERSTONE, 1
 	iffalse UnknownScript_0x6aceb
-	clearevent $0314
+	clearevent EVENT_CONTEST_OFFICER_HAS_EVERSTONE
 	loadmovesprites
 	end
-; 0x6accd
 
-UnknownScript_0x6accd: ; 0x6accd
+UnknownScript_0x6accd:
 	writetext UnknownText_0x6b97f
 	keeptextopen
 	verbosegiveitem GOLD_BERRY, 1
 	iffalse UnknownScript_0x6aceb
-	clearevent $0315
+	clearevent EVENT_CONTEST_OFFICER_HAS_GOLD_BERRY
 	loadmovesprites
 	end
-; 0x6acdc
 
-UnknownScript_0x6acdc: ; 0x6acdc
+UnknownScript_0x6acdc:
 	writetext UnknownText_0x6b97f
 	keeptextopen
 	verbosegiveitem BERRY, 1
 	iffalse UnknownScript_0x6aceb
-	clearevent $0316
+	clearevent EVENT_CONTEST_OFFICER_HAS_BERRY
 	loadmovesprites
 	end
-; 0x6aceb
 
-UnknownScript_0x6aceb: ; 0x6aceb
+UnknownScript_0x6aceb:
 	writetext UnknownText_0x6b910
 	closetext
 	loadmovesprites
 	end
-; 0x6acf1
 
-UnknownScript_0x6acf1: ; 0x6acf1
+UnknownScript_0x6acf1:
 	jumptextfaceplayer UnknownText_0x6b370
-; 0x6acf4
 
-OfficerScript_0x6acf4: ; 0x6acf4
+OfficerScript_0x6acf4:
 	faceplayer
 	loadfont
-	checkflag $0051
+	checkflag ENGINE_DAILY_BUG_CONTEST
 	iftrue UnknownScript_0x6ac91
 	writetext UnknownText_0x6b370
 	closetext
 	loadmovesprites
 	end
-; 0x6ad02
 
-UnknownScript_0x6ad02: ; 0x6ad02
+UnknownScript_0x6ad02:
 	jumpstd daytotext
 	end
-; 0x6ad06
 
-YoungsterScript_0x6ad06: ; 0x6ad06
+YoungsterScript_0x6ad06:
 	faceplayer
 	loadfont
-	checkevent $0000
+	checkevent EVENT_GAVE_KURT_APRICORNS
 	iffalse UnknownScript_0x6ad14
 	writetext UnknownText_0x6b399
 	closetext
 	loadmovesprites
 	end
-; 0x6ad14
 
-UnknownScript_0x6ad14: ; 0x6ad14
+UnknownScript_0x6ad14:
 	writetext UnknownText_0x6b3c4
 	closetext
 	loadmovesprites
 	end
-; 0x6ad1a
 
-YoungsterScript_0x6ad1a: ; 0x6ad1a
+YoungsterScript_0x6ad1a:
 	faceplayer
 	loadfont
-	checkevent $0000
+	checkevent EVENT_GAVE_KURT_APRICORNS
 	iffalse UnknownScript_0x6ad28
 	writetext UnknownText_0x6b40f
 	closetext
 	loadmovesprites
 	end
-; 0x6ad28
 
-UnknownScript_0x6ad28: ; 0x6ad28
+UnknownScript_0x6ad28:
 	writetext UnknownText_0x6b440
 	closetext
 	loadmovesprites
 	end
-; 0x6ad2e
 
-RockerScript_0x6ad2e: ; 0x6ad2e
+RockerScript_0x6ad2e:
 	faceplayer
 	loadfont
-	checkevent $0000
+	checkevent EVENT_GAVE_KURT_APRICORNS
 	iffalse UnknownScript_0x6ad3c
 	writetext UnknownText_0x6b462
 	closetext
 	loadmovesprites
 	end
-; 0x6ad3c
 
-UnknownScript_0x6ad3c: ; 0x6ad3c
+UnknownScript_0x6ad3c:
 	writetext UnknownText_0x6b496
 	closetext
 	loadmovesprites
 	end
-; 0x6ad42
 
-PokefanMScript_0x6ad42: ; 0x6ad42
+PokefanMScript_0x6ad42:
 	faceplayer
 	loadfont
-	checkevent $0000
+	checkevent EVENT_GAVE_KURT_APRICORNS
 	iffalse UnknownScript_0x6ad50
 	writetext UnknownText_0x6b4da
 	closetext
 	loadmovesprites
 	end
-; 0x6ad50
 
-UnknownScript_0x6ad50: ; 0x6ad50
+UnknownScript_0x6ad50:
 	writetext UnknownText_0x6b50a
 	closetext
 	loadmovesprites
 	end
-; 0x6ad56
 
-YoungsterScript_0x6ad56: ; 0x6ad56
+YoungsterScript_0x6ad56:
 	faceplayer
 	loadfont
-	checkevent $0000
+	checkevent EVENT_GAVE_KURT_APRICORNS
 	iffalse UnknownScript_0x6ad64
 	writetext UnknownText_0x6b54e
 	closetext
 	loadmovesprites
 	end
-; 0x6ad64
 
-UnknownScript_0x6ad64: ; 0x6ad64
+UnknownScript_0x6ad64:
 	writetext UnknownText_0x6b57c
 	closetext
 	loadmovesprites
 	end
-; 0x6ad6a
 
-YoungsterScript_0x6ad6a: ; 0x6ad6a
+YoungsterScript_0x6ad6a:
 	faceplayer
 	loadfont
-	checkevent $0000
+	checkevent EVENT_GAVE_KURT_APRICORNS
 	iffalse UnknownScript_0x6ad78
 	writetext UnknownText_0x6b5b0
 	closetext
 	loadmovesprites
 	end
-; 0x6ad78
 
-UnknownScript_0x6ad78: ; 0x6ad78
+UnknownScript_0x6ad78:
 	writetext UnknownText_0x6b5dd
 	closetext
 	loadmovesprites
 	end
-; 0x6ad7e
 
-LassScript_0x6ad7e: ; 0x6ad7e
+LassScript_0x6ad7e:
 	faceplayer
 	loadfont
-	checkevent $0000
+	checkevent EVENT_GAVE_KURT_APRICORNS
 	iffalse UnknownScript_0x6ad8c
 	writetext UnknownText_0x6b64b
 	closetext
 	loadmovesprites
 	end
-; 0x6ad8c
 
-UnknownScript_0x6ad8c: ; 0x6ad8c
+UnknownScript_0x6ad8c:
 	writetext UnknownText_0x6b698
 	closetext
 	loadmovesprites
 	end
-; 0x6ad92
 
-YoungsterScript_0x6ad92: ; 0x6ad92
+YoungsterScript_0x6ad92:
 	faceplayer
 	loadfont
-	checkevent $0000
+	checkevent EVENT_GAVE_KURT_APRICORNS
 	iffalse UnknownScript_0x6ada0
 	writetext UnknownText_0x6b6b8
 	closetext
 	loadmovesprites
 	end
-; 0x6ada0
 
-UnknownScript_0x6ada0: ; 0x6ada0
+UnknownScript_0x6ada0:
 	writetext UnknownText_0x6b6e9
 	closetext
 	loadmovesprites
 	end
-; 0x6ada6
 
-YoungsterScript_0x6ada6: ; 0x6ada6
+YoungsterScript_0x6ada6:
 	faceplayer
 	loadfont
-	checkevent $0000
+	checkevent EVENT_GAVE_KURT_APRICORNS
 	iffalse UnknownScript_0x6adb4
 	writetext UnknownText_0x6b71b
 	closetext
 	loadmovesprites
 	end
-; 0x6adb4
 
-UnknownScript_0x6adb4: ; 0x6adb4
+UnknownScript_0x6adb4:
 	writetext UnknownText_0x6b740
 	closetext
 	loadmovesprites
 	end
-; 0x6adba
 
-YoungsterScript_0x6adba: ; 0x6adba
+YoungsterScript_0x6adba:
 	faceplayer
 	loadfont
-	checkevent $0000
+	checkevent EVENT_GAVE_KURT_APRICORNS
 	iffalse UnknownScript_0x6adc8
 	writetext UnknownText_0x6b76f
 	closetext
 	loadmovesprites
 	end
-; 0x6adc8
 
-UnknownScript_0x6adc8: ; 0x6adc8
+UnknownScript_0x6adc8:
 	writetext UnknownText_0x6b7af
 	closetext
 	loadmovesprites
 	end
-; 0x6adce
 
-UnknownScript_0x6adce: ; 0x6adce
+UnknownScript_0x6adce:
 	jumptext UnknownText_0x6b84c
-; 0x6add1
 
-MovementData_0x6add1: ; 0x6add1
+MovementData_0x6add1:
 	big_step_down
 	big_step_right
 	turn_head_up
 	step_end
-; 0x6add5
 
-UnknownText_0x6add5: ; 0x6add5
+UnknownText_0x6add5:
 	text "Today's @"
 	text_from_ram StringBuffer3
 	text "."
@@ -536,22 +487,19 @@
 	para "Would you like to"
 	line "give it a try?"
 	done
-; 0x6ae87
 
-UnknownText_0x6ae87: ; 0x6ae87
+UnknownText_0x6ae87:
 	text "Here are the PARK"
 	line "BALLS for the"
 	cont "Contest."
 	done
-; 0x6aeb1
 
-UnknownText_0x6aeb1: ; 0x6aeb1
+UnknownText_0x6aeb1:
 	text "<PLAYER> received"
 	line "20 PARK BALLS."
 	done
-; 0x6aecc
 
-UnknownText_0x6aecc: ; 0x6aecc
+UnknownText_0x6aecc:
 	text "The person who"
 	line "gets the strong-"
 	cont "est bug #MON"
@@ -574,9 +522,8 @@
 	para "#MON you can"
 	line "find!"
 	done
-; 0x6afb0
 
-UnknownText_0x6afb0: ; 0x6afb0
+UnknownText_0x6afb0:
 	text "Uh-oh…"
 
 	para "You have more than"
@@ -593,23 +540,20 @@
 	para "Is that OK with"
 	line "you?"
 	done
-; 0x6b021
 
-UnknownText_0x6b021: ; 0x6b021
+UnknownText_0x6b021:
 	text "Fine, we'll hold"
 	line "your other #MON"
 	cont "while you compete."
 	done
-; 0x6b055
 
-UnknownText_0x6b055: ; 0x6b055
+UnknownText_0x6b055:
 	text "<PLAYER>'s #MON"
 	line "were left with the"
 	cont "CONTEST HELPER."
 	done
-; 0x6b081
 
-UnknownText_0x6b081: ; 0x6b081
+UnknownText_0x6b081:
 	text "Please choose the"
 	line "#MON to be used"
 
@@ -616,16 +560,14 @@
 	para "in the Contest,"
 	line "then come see me."
 	done
-; 0x6b0c6
 
-UnknownText_0x6b0c6: ; 0x6b0c6
+UnknownText_0x6b0c6:
 	text "OK. We hope you'll"
 	line "take part in the"
 	cont "future."
 	done
-; 0x6b0f2
 
-UnknownText_0x6b0f2: ; 0x6b0f2
+UnknownText_0x6b0f2:
 	text "Uh-oh…"
 	line "The first #MON"
 
@@ -638,9 +580,8 @@
 	para "you want to use,"
 	line "then come see me."
 	done
-; 0x6b166
 
-UnknownText_0x6b166: ; 0x6b166
+UnknownText_0x6b166:
 	text "Uh-oh…"
 	line "Both your party"
 
@@ -657,9 +598,8 @@
 	para "your PC BOX, then"
 	line "come see me."
 	done
-; 0x6b209
 
-UnknownText_0x6b209: ; 0x6b209
+UnknownText_0x6b209:
 	text "Uh-oh…"
 	line "You have an EGG as"
 
@@ -672,9 +612,8 @@
 	para "you want to use,"
 	line "then come see me."
 	done
-; 0x6b284
 
-UnknownText_0x6b284: ; 0x6b284
+UnknownText_0x6b284:
 	text "You still have @"
 	text_from_ram StringBuffer3
 	text ""
@@ -683,9 +622,8 @@
 	para "Do you want to"
 	line "finish now?"
 	done
-; 0x6b2c5
 
-UnknownText_0x6b2c5: ; 0x6b2c5
+UnknownText_0x6b2c5:
 	text "OK. Please wait"
 	line "here for the"
 
@@ -692,16 +630,14 @@
 	para "announcement of"
 	line "the winners."
 	done
-; 0x6b300
 
-UnknownText_0x6b300: ; 0x6b300
+UnknownText_0x6b300:
 	text "OK. Please go back"
 	line "outside and finish"
 	cont "up."
 	done
-; 0x6b32b
 
-UnknownText_0x6b32b: ; 0x6b32b
+UnknownText_0x6b32b:
 	text "Today's Contest is"
 	line "over. We hope you"
 
@@ -708,23 +644,20 @@
 	para "will participate"
 	line "in the future."
 	done
-; 0x6b370
 
-UnknownText_0x6b370: ; 0x6b370
+UnknownText_0x6b370:
 	text "Some #MON can"
 	line "only be seen in"
 	cont "the PARK."
 	done
-; 0x6b399
 
-UnknownText_0x6b399: ; 0x6b399
+UnknownText_0x6b399:
 	text "DON: Wow, you beat"
 	line "me. You're pretty"
 	cont "good."
 	done
-; 0x6b3c4
 
-UnknownText_0x6b3c4: ; 0x6b3c4
+UnknownText_0x6b3c4:
 	text "DON: Luck plays a"
 	line "big part in this."
 
@@ -732,29 +665,25 @@
 	line "what #MON will"
 	cont "appear."
 	done
-; 0x6b40f
 
-UnknownText_0x6b40f: ; 0x6b40f
+UnknownText_0x6b40f:
 	text "ED: I envy you."
 	line "I just couldn't"
 	cont "do it this time."
 	done
-; 0x6b440
 
-UnknownText_0x6b440: ; 0x6b440
+UnknownText_0x6b440:
 	text "ED: Maybe you win"
 	line "with big #MON?"
 	done
-; 0x6b462
 
-UnknownText_0x6b462: ; 0x6b462
+UnknownText_0x6b462:
 	text "NICK: Well done!"
 	line "I'm going to raise"
 	cont "my #MON better."
 	done
-; 0x6b496
 
-UnknownText_0x6b496: ; 0x6b496
+UnknownText_0x6b496:
 	text "NICK: Maybe you"
 	line "get a higher score"
 
@@ -761,16 +690,14 @@
 	para "for a #MON of"
 	line "an unusual color."
 	done
-; 0x6b4da
 
-UnknownText_0x6b4da: ; 0x6b4da
+UnknownText_0x6b4da:
 	text "WILLIAM: You're"
 	line "the winner? What"
 	cont "did you catch?"
 	done
-; 0x6b50a
 
-UnknownText_0x6b50a: ; 0x6b50a
+UnknownText_0x6b50a:
 	text "WILLIAM: Well, I'm"
 	line "satisfied because"
 
@@ -777,30 +704,26 @@
 	para "I caught a #MON"
 	line "that I wanted."
 	done
-; 0x6b54e
 
-UnknownText_0x6b54e: ; 0x6b54e
+UnknownText_0x6b54e:
 	text "BENNY: Congrats!"
 	line "You have earned my"
 	cont "respect!"
 	done
-; 0x6b57c
 
-UnknownText_0x6b57c: ; 0x6b57c
+UnknownText_0x6b57c:
 	text "BENNY: I caught a"
 	line "SCYTHER before,"
 	cont "but I didn't win."
 	done
-; 0x6b5b0
 
-UnknownText_0x6b5b0: ; 0x6b5b0
+UnknownText_0x6b5b0:
 	text "BARRY: That #-"
 	line "MON you caught…"
 	cont "it's awesome!"
 	done
-; 0x6b5dd
 
-UnknownText_0x6b5dd: ; 0x6b5dd
+UnknownText_0x6b5dd:
 	text "BARRY: It's easier"
 	line "to win if you get"
 
@@ -811,9 +734,8 @@
 	line "also consider some"
 	cont "other points."
 	done
-; 0x6b64b
 
-UnknownText_0x6b64b: ; 0x6b64b
+UnknownText_0x6b64b:
 	text "CINDY: You won?"
 	line "That's great!"
 
@@ -821,42 +743,36 @@
 	line "looking for bug"
 	cont "#MON with me?"
 	done
-; 0x6b698
 
-UnknownText_0x6b698: ; 0x6b698
+UnknownText_0x6b698:
 	text "CINDY: I really"
 	line "love bug #MON!"
 	done
-; 0x6b6b8
 
-UnknownText_0x6b6b8: ; 0x6b6b8
+UnknownText_0x6b6b8:
 	text "JOSH: I… I can't"
 	line "believe I lost at"
 	cont "bug-catching…"
 	done
-; 0x6b6e9
 
-UnknownText_0x6b6e9: ; 0x6b6e9
+UnknownText_0x6b6e9:
 	text "JOSH: I heard that"
 	line "somebody won with"
 	cont "a CATERPIE!"
 	done
-; 0x6b71b
 
-UnknownText_0x6b71b: ; 0x6b71b
+UnknownText_0x6b71b:
 	text "SAMUEL: Next time,"
 	line "I'm going to win."
 	done
-; 0x6b740
 
-UnknownText_0x6b740: ; 0x6b740
+UnknownText_0x6b740:
 	text "SAMUEL: Darn."
 	line "I thought I would"
 	cont "score higher…"
 	done
-; 0x6b76f
 
-UnknownText_0x6b76f: ; 0x6b76f
+UnknownText_0x6b76f:
 	text "KIPP: Could you"
 	line "give me some tips?"
 
@@ -863,9 +779,8 @@
 	para "I want to study"
 	line "your style."
 	done
-; 0x6b7af
 
-UnknownText_0x6b7af: ; 0x6b7af
+UnknownText_0x6b7af:
 	text "KIPP: I study a"
 	line "lot, but that's"
 
@@ -872,13 +787,12 @@
 	para "not good enough to"
 	line "win."
 	done
-; 0x6b7e7
 
 ; This text is unused and unreferenced in the final game.
 ; The tree Pokémon is Sudowoodo.
 ; The Silph Scope 2 was later reworked into the Squirtbottle.
 
-UnusedSudowoodoText: ; 0x6b7e7
+UnusedSudowoodoText:
 	text "I hear there's a"
 	line "#MON that looks"
 	cont "just like a tree."
@@ -888,7 +802,7 @@
 	cont "SILPHSCOPE 2."
 	done
 
-UnknownText_0x6b84c: ; 0x6b84c
+UnknownText_0x6b84c:
 	text "The Bug-Catching"
 	line "Contest is held on"
 
@@ -907,9 +821,8 @@
 	para "have at the end of"
 	line "the contest."
 	done
-; 0x6b910
 
-UnknownText_0x6b910: ; 0x6b910
+UnknownText_0x6b910:
 	text "Uh-oh… Your PACK"
 	line "is full."
 
@@ -920,9 +833,8 @@
 	para "Please make room,"
 	line "then come see me."
 	done
-; 0x6b97f
 
-UnknownText_0x6b97f: ; 0x6b97f
+UnknownText_0x6b97f:
 	text "<PLAYER>?"
 
 	para "Here's the prize"
@@ -929,13 +841,12 @@
 	line "we were holding"
 	cont "for you."
 	done
-; 0x6b9ac
 
-Route36NationalParkgate_MapEventHeader: ; 0x6b9ac
+Route36NationalParkgate_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -942,25 +853,24 @@
 	warp_def $4, $9, 1, GROUP_ROUTE_36, MAP_ROUTE_36
 	warp_def $5, $9, 2, GROUP_ROUTE_36, MAP_ROUTE_36
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 0, 6, $0, MapRoute36NationalParkgateSignpost0Script
+	signpost 0, 6, SIGNPOST_READ, MapRoute36NationalParkgateSignpost0Script
 
-	; people-events
+.PersonEvents:
 	db 12
-	person_event SPRITE_OFFICER, 7, 4, $6, $0, 255, 255, $a0, 0, OfficerScript_0x6abe0, $0747
-	person_event SPRITE_YOUNGSTER, 9, 6, $7, $0, 255, 255, $80, 0, YoungsterScript_0x6ad06, $0720
-	person_event SPRITE_YOUNGSTER, 9, 8, $7, $0, 255, 255, $a0, 0, YoungsterScript_0x6ad1a, $0721
-	person_event SPRITE_ROCKER, 10, 6, $7, $0, 255, 255, $90, 0, RockerScript_0x6ad2e, $0722
-	person_event SPRITE_POKEFAN_M, 9, 10, $7, $0, 255, 255, $b0, 0, PokefanMScript_0x6ad42, $0723
-	person_event SPRITE_YOUNGSTER, 11, 6, $7, $0, 255, 255, $80, 0, YoungsterScript_0x6ad56, $0724
-	person_event SPRITE_YOUNGSTER, 10, 9, $7, $0, 255, 255, $a0, 0, YoungsterScript_0x6ad6a, $0725
-	person_event SPRITE_LASS, 10, 7, $7, $0, 255, 255, $90, 0, LassScript_0x6ad7e, $0726
-	person_event SPRITE_YOUNGSTER, 11, 8, $7, $0, 255, 255, $80, 0, YoungsterScript_0x6ad92, $0727
-	person_event SPRITE_YOUNGSTER, 11, 10, $7, $0, 255, 255, $a0, 0, YoungsterScript_0x6ada6, $0728
-	person_event SPRITE_YOUNGSTER, 10, 10, $7, $0, 255, 255, $90, 0, YoungsterScript_0x6adba, $0729
-	person_event SPRITE_OFFICER, 6, 7, $6, $0, 255, 255, $a0, 0, OfficerScript_0x6acf4, $0748
-; 0x6ba67
+	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
--- a/maps/Route36RuinsofAlphgate.asm
+++ b/maps/Route36RuinsofAlphgate.asm
@@ -1,28 +1,24 @@
-Route36RuinsofAlphgate_MapScriptHeader: ; 0x6aa18
-	; trigger count
+Route36RuinsofAlphgate_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x6aa1a
 
-OfficerScript_0x6aa1a: ; 0x6aa1a
+OfficerScript_0x6aa1a:
 	jumptextfaceplayer UnknownText_0x6aa20
-; 0x6aa1d
 
-GrampsScript_0x6aa1d: ; 0x6aa1d
+GrampsScript_0x6aa1d:
 	jumptextfaceplayer UnknownText_0x6aa5b
-; 0x6aa20
 
-UnknownText_0x6aa20: ; 0x6aa20
+UnknownText_0x6aa20:
 	text "Don't you wonder"
 	line "who'd make some-"
 	cont "thing like this?"
 	cont "And why?"
 	done
-; 0x6aa5b
 
-UnknownText_0x6aa5b: ; 0x6aa5b
+UnknownText_0x6aa5b:
 	text "Did you see that"
 	line "strange tree in"
 	cont "the road?"
@@ -33,13 +29,12 @@
 	para "are visiting the"
 	line "RUINS OF ALPH."
 	done
-; 0x6aac9
 
-Route36RuinsofAlphgate_MapEventHeader: ; 0x6aac9
+Route36RuinsofAlphgate_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -46,14 +41,13 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_OFFICER, 8, 4, $9, $0, 255, 255, $80, 0, OfficerScript_0x6aa1a, $ffff
-	person_event SPRITE_GRAMPS, 9, 11, $2, $21, 255, 255, $b0, 0, GrampsScript_0x6aa1d, $ffff
-; 0x6aafd
+	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
--- a/maps/Route37.asm
+++ b/maps/Route37.asm
@@ -1,8 +1,8 @@
-Route37_MapScriptHeader: ; 0x1a8d72
-	; trigger count
+Route37_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -10,7 +10,7 @@
 	dbw 2, SunnyCallback
 
 SunnyCallback:
-	checkcode $b
+	checkcode VAR_WEEKDAY
 	if_equal SUNDAY, .SunnyAppears
 	disappear $6
 	return
@@ -19,27 +19,10 @@
 	appear $6
 	return
 
-TrainerTwinsAnnandanne1: ; 0x1a8d83
-	; bit/flag number
-	dw $465
+TrainerTwinsAnnandanne1:
+	trainer EVENT_BEAT_TWINS_ANN_AND_ANNE, TWINS, ANNANDANNE1, TwinsAnnandanne1SeenText, TwinsAnnandanne1BeatenText, $0000, TwinsAnnandanne1Script
 
-	; trainer group && trainer id
-	db TWINS, ANNANDANNE1
-
-	; text when seen
-	dw TwinsAnnandanne1SeenText
-
-	; text when trainer beaten
-	dw TwinsAnnandanne1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw TwinsAnnandanne1Script
-; 0x1a8d8f
-
-TwinsAnnandanne1Script: ; 0x1a8d8f
+TwinsAnnandanne1Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a8e62
@@ -46,29 +29,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a8d97
 
-TrainerTwinsAnnandanne2: ; 0x1a8d97
-	; bit/flag number
-	dw $465
+TrainerTwinsAnnandanne2:
+	trainer EVENT_BEAT_TWINS_ANN_AND_ANNE, TWINS, ANNANDANNE2, TwinsAnnandanne2SeenText, TwinsAnnandanne2BeatenText, $0000, TwinsAnnandanne2Script
 
-	; trainer group && trainer id
-	db TWINS, ANNANDANNE2
-
-	; text when seen
-	dw TwinsAnnandanne2SeenText
-
-	; text when trainer beaten
-	dw TwinsAnnandanne2BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw TwinsAnnandanne2Script
-; 0x1a8da3
-
-TwinsAnnandanne2Script: ; 0x1a8da3
+TwinsAnnandanne2Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a8eec
@@ -75,29 +40,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a8dab
 
-TrainerPsychicGreg: ; 0x1a8dab
-	; bit/flag number
-	dw $43e
+TrainerPsychicGreg:
+	trainer EVENT_BEAT_PSYCHIC_GREG, PSYCHIC_T, GREG, PsychicGregSeenText, PsychicGregBeatenText, $0000, PsychicGregScript
 
-	; trainer group && trainer id
-	db PSYCHIC_T, GREG
-
-	; text when seen
-	dw PsychicGregSeenText
-
-	; text when trainer beaten
-	dw PsychicGregBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PsychicGregScript
-; 0x1a8db7
-
-PsychicGregScript: ; 0x1a8db7
+PsychicGregScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a8f80
@@ -104,7 +51,6 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a8dbf
 
 SunnyScript:
 	faceplayer
@@ -111,7 +57,7 @@
 	loadfont
 	checkevent EVENT_GOT_MAGNET_FROM_SUNNY
 	iftrue SunnySundayScript
-	checkcode $b
+	checkcode VAR_WEEKDAY
 	if_not_equal SUNDAY, SunnyNotSundayScript
 	checkevent EVENT_MET_SUNNY_OF_SUNDAY
 	iftrue .MetSunny
@@ -119,7 +65,7 @@
 	keeptextopen
 	setevent EVENT_MET_SUNNY_OF_SUNDAY
 .MetSunny
-	checkflag $0063
+	checkflag ENGINE_PLAYER_IS_FEMALE
 	iftrue .Kris
 	writetext SunnyGivesGiftText1
 	keeptextopen
@@ -149,42 +95,34 @@
 	loadmovesprites
 	end
 
-MapRoute37Signpost0Script: ; 0x1a8e06
+MapRoute37Signpost0Script:
 	jumptext UnknownText_0x1a9197
-; 0x1a8e09
 
-FruitTreeScript_0x1a8e09: ; 0x1a8e09
+FruitTreeScript_0x1a8e09:
 	fruittree $11
-; 0x1a8e0b
 
-FruitTreeScript_0x1a8e0b: ; 0x1a8e0b
+FruitTreeScript_0x1a8e0b:
 	fruittree $12
-; 0x1a8e0d
 
-FruitTreeScript_0x1a8e0d: ; 0x1a8e0d
+FruitTreeScript_0x1a8e0d:
 	fruittree $13
-; 0x1a8e0f
 
-MapRoute37SignpostItem1: ; 0x1a8e0f
-	dw $00a9
-	db ETHER
+MapRoute37SignpostItem1:
+	dwb EVENT_ROUTE_37_HIDDEN_ETHER, ETHER
 	
-; 0x1a8e12
 
-TwinsAnnandanne1SeenText: ; 0x1a8e12
+TwinsAnnandanne1SeenText:
 	text "ANN: ANNE and I"
 	line "are in this to-"
 	cont "gether!"
 	done
-; 0x1a8e3b
 
-TwinsAnnandanne1BeatenText: ; 0x1a8e3b
+TwinsAnnandanne1BeatenText:
 	text "ANN & ANNE: Nnn… A"
 	line "little too strong."
 	done
-; 0x1a8e62
 
-UnknownText_0x1a8e62: ; 0x1a8e62
+UnknownText_0x1a8e62:
 	text "ANN: I can tell"
 	line "what my sister and"
 
@@ -191,29 +129,25 @@
 	para "my #MON are"
 	line "thinking."
 	done
-; 0x1a8e9c
 
-TwinsAnnandanne2SeenText: ; 0x1a8e9c
+TwinsAnnandanne2SeenText:
 	text "ANNE: ANN and I"
 	line "are in this to-"
 	cont "gether!"
 	done
-; 0x1a8ec5
 
-TwinsAnnandanne2BeatenText: ; 0x1a8ec5
+TwinsAnnandanne2BeatenText:
 	text "ANN & ANNE: Nnn… A"
 	line "little too strong."
 	done
-; 0x1a8eec
 
-UnknownText_0x1a8eec: ; 0x1a8eec
+UnknownText_0x1a8eec:
 	text "ANNE: We share the"
 	line "same feelings as"
 	cont "our #MON."
 	done
-; 0x1a8f1b
 
-PsychicGregSeenText: ; 0x1a8f1b
+PsychicGregSeenText:
 	text "#MON can't do a"
 	line "thing if they are"
 	cont "asleep."
@@ -221,21 +155,18 @@
 	para "I'll show you how"
 	line "scary that is!"
 	done
-; 0x1a8f65
 
-PsychicGregBeatenText: ; 0x1a8f65
+PsychicGregBeatenText:
 	text "I lost. That's"
 	line "pretty sad…"
 	done
-; 0x1a8f80
 
-UnknownText_0x1a8f80: ; 0x1a8f80
+UnknownText_0x1a8f80:
 	text "Putting #MON to"
 	line "sleep or paralyz-"
 	cont "ing them are good"
 	cont "battle techniques."
 	done
-; 0x1a8fc8
 
 MeetSunnyText:
 	text "SUNNY: Hi!"
@@ -297,32 +228,31 @@
 	cont "Um… I forgot!"
 	done
 
-UnknownText_0x1a9197: ; 0x1a9197
+UnknownText_0x1a9197:
 	text "ROUTE 37"
 	done
-; 0x1a91a1
 
-Route37_MapEventHeader: ; 0x1a91a1
+Route37_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 0
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 3, 5, $0, MapRoute37Signpost0Script
-	signpost 2, 4, $7, MapRoute37SignpostItem1
+	signpost 3, 5, SIGNPOST_READ, MapRoute37Signpost0Script
+	signpost 2, 4, SIGNPOST_ITEM, MapRoute37SignpostItem1
 
-	; people-events
+.PersonEvents:
 	db 7
-	person_event SPRITE_WEIRD_TREE, 16, 10, $6, $0, 255, 255, $82, 1, TrainerTwinsAnnandanne1, $ffff
-	person_event SPRITE_WEIRD_TREE, 16, 11, $6, $0, 255, 255, $82, 1, TrainerTwinsAnnandanne2, $ffff
-	person_event SPRITE_YOUNGSTER, 10, 10, $a, $0, 255, 255, $92, 1, TrainerPsychicGreg, $ffff
-	person_event SPRITE_FRUIT_TREE, 9, 17, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x1a8e09, $ffff
-	person_event SPRITE_BUG_CATCHER, 12, 20, $2, $11, 255, 255, $0, 0, SunnyScript, $075b
-	person_event SPRITE_FRUIT_TREE, 9, 20, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x1a8e0b, $ffff
-	person_event SPRITE_FRUIT_TREE, 11, 19, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x1a8e0d, $ffff
+	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
--- a/maps/Route38.asm
+++ b/maps/Route38.asm
@@ -1,32 +1,14 @@
-Route38_MapScriptHeader: ; 0x1a1d0c
-	; trigger count
+Route38_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1a1d0e
 
-TrainerBird_keeperToby: ; 0x1a1d0e
-	; bit/flag number
-	dw $3ff
+TrainerBird_keeperToby:
+	trainer EVENT_BEAT_BIRD_KEEPER_TOBY, BIRD_KEEPER, TOBY, Bird_keeperTobySeenText, Bird_keeperTobyBeatenText, $0000, Bird_keeperTobyScript
 
-	; trainer group && trainer id
-	db BIRD_KEEPER, TOBY
-
-	; text when seen
-	dw Bird_keeperTobySeenText
-
-	; text when trainer beaten
-	dw Bird_keeperTobyBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Bird_keeperTobyScript
-; 0x1a1d1a
-
-Bird_keeperTobyScript: ; 0x1a1d1a
+Bird_keeperTobyScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a1f86
@@ -33,29 +15,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a1d22
 
-TrainerSailorHarry: ; 0x1a1d22
-	; bit/flag number
-	dw $57e
+TrainerSailorHarry:
+	trainer EVENT_BEAT_SAILOR_HARRY, SAILOR, HARRY, SailorHarrySeenText, SailorHarryBeatenText, $0000, SailorHarryScript
 
-	; trainer group && trainer id
-	db SAILOR, HARRY
-
-	; text when seen
-	dw SailorHarrySeenText
-
-	; text when trainer beaten
-	dw SailorHarryBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SailorHarryScript
-; 0x1a1d2e
-
-SailorHarryScript: ; 0x1a1d2e
+SailorHarryScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a220c
@@ -62,350 +26,266 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a1d36
 
-TrainerLassDana1: ; 0x1a1d36
-	; bit/flag number
-	dw $51e
+TrainerLassDana1:
+	trainer EVENT_BEAT_LASS_DANA, LASS, DANA1, LassDana1SeenText, LassDana1BeatenText, $0000, LassDana1Script
 
-	; trainer group && trainer id
-	db LASS, DANA1
-
-	; text when seen
-	dw LassDana1SeenText
-
-	; text when trainer beaten
-	dw LassDana1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw LassDana1Script
-; 0x1a1d42
-
-LassDana1Script: ; 0x1a1d42
-	writecode $17, $1a
+LassDana1Script:
+	writecode VAR_CALLERID, PHONE_LASS_DANA
 	talkaftercancel
 	loadfont
-	checkflag $0074
+	checkflag ENGINE_DANA
 	iftrue UnknownScript_0x1a1d82
-	checkflag $0082
+	checkflag ENGINE_DANA_HAS_THUNDERSTONE
 	iftrue UnknownScript_0x1a1df6
-	checkcellnum $1a
+	checkcellnum PHONE_LASS_DANA
 	iftrue UnknownScript_0x1a1e17
-	checkevent $0289
+	checkevent EVENT_DANA_ASKED_FOR_PHONE_NUMBER
 	iftrue UnknownScript_0x1a1d6b
 	writetext UnknownText_0x1a20ec
 	keeptextopen
-	setevent $0289
+	setevent EVENT_DANA_ASKED_FOR_PHONE_NUMBER
 	scall UnknownScript_0x1a1e0b
 	jump UnknownScript_0x1a1d6e
-; 0x1a1d6b
 
-UnknownScript_0x1a1d6b: ; 0x1a1d6b
+UnknownScript_0x1a1d6b:
 	scall UnknownScript_0x1a1e0f
-UnknownScript_0x1a1d6e: ; 0x1a1d6e
-	askforphonenumber $1a
+UnknownScript_0x1a1d6e:
+	askforphonenumber PHONE_LASS_DANA
 	if_equal $1, UnknownScript_0x1a1e1f
 	if_equal $2, UnknownScript_0x1a1e1b
 	trainertotext LASS, DANA1, $0
 	scall UnknownScript_0x1a1e13
 	jump UnknownScript_0x1a1e17
-; 0x1a1d82
 
-UnknownScript_0x1a1d82: ; 0x1a1d82
+UnknownScript_0x1a1d82:
 	scall UnknownScript_0x1a1e23
 	winlosstext LassDana1BeatenText, $0000
-	copybytetovar wda03
-	if_equal $4, UnknownScript_0x1a1da1
-	if_equal $3, UnknownScript_0x1a1da7
-	if_equal $2, UnknownScript_0x1a1dad
-	if_equal $1, UnknownScript_0x1a1db3
-	if_equal $0, UnknownScript_0x1a1db9
-UnknownScript_0x1a1da1: ; 0x1a1da1
+	copybytetovar wDanaFightCount
+	if_equal 4, .Fight4
+	if_equal 3, .Fight3
+	if_equal 2, .Fight2
+	if_equal 1, .Fight1
+	if_equal 0, .LoadFight0
+.Fight4
 	checkevent EVENT_RESTORED_POWER_TO_KANTO
-	iftrue UnknownScript_0x1a1ded
-UnknownScript_0x1a1da7: ; 0x1a1da7
+	iftrue .LoadFight4
+.Fight3
 	checkevent EVENT_BEAT_ELITE_FOUR
-	iftrue UnknownScript_0x1a1de0
-UnknownScript_0x1a1dad: ; 0x1a1dad
+	iftrue .LoadFight3
+.Fight2
 	checkevent EVENT_CLEARED_RADIO_TOWER
-	iftrue UnknownScript_0x1a1dd3
-UnknownScript_0x1a1db3: ; 0x1a1db3
-	checkflag $0045
-	iftrue UnknownScript_0x1a1dc6
-UnknownScript_0x1a1db9: ; 0x1a1db9
+	iftrue .LoadFight2
+.Fight1
+	checkflag ENGINE_FLYPOINT_CIANWOOD
+	iftrue .LoadFight1
+.LoadFight0
 	loadtrainer LASS, DANA1
 	startbattle
 	returnafterbattle
-	loadvar wda03, $1
-	clearflag $0074
+	loadvar wDanaFightCount, 1
+	clearflag ENGINE_DANA
 	end
-; 0x1a1dc6
 
-UnknownScript_0x1a1dc6: ; 0x1a1dc6
+.LoadFight1
 	loadtrainer LASS, DANA2
 	startbattle
 	returnafterbattle
-	loadvar wda03, $2
-	clearflag $0074
+	loadvar wDanaFightCount, 2
+	clearflag ENGINE_DANA
 	end
-; 0x1a1dd3
 
-UnknownScript_0x1a1dd3: ; 0x1a1dd3
+.LoadFight2
 	loadtrainer LASS, DANA3
 	startbattle
 	returnafterbattle
-	loadvar wda03, $3
-	clearflag $0074
+	loadvar wDanaFightCount, 3
+	clearflag ENGINE_DANA
 	end
-; 0x1a1de0
 
-UnknownScript_0x1a1de0: ; 0x1a1de0
+.LoadFight3
 	loadtrainer LASS, DANA4
 	startbattle
 	returnafterbattle
-	loadvar wda03, $4
-	clearflag $0074
+	loadvar wDanaFightCount, 4
+	clearflag ENGINE_DANA
 	end
-; 0x1a1ded
 
-UnknownScript_0x1a1ded: ; 0x1a1ded
+.LoadFight4
 	loadtrainer LASS, DANA5
 	startbattle
 	returnafterbattle
-	clearflag $0074
+	clearflag ENGINE_DANA
 	end
-; 0x1a1df6
 
-UnknownScript_0x1a1df6: ; 0x1a1df6
+UnknownScript_0x1a1df6:
 	scall UnknownScript_0x1a1e27
 	verbosegiveitem THUNDERSTONE, 1
 	iffalse UnknownScript_0x1a1e08
-	clearflag $0082
-	setevent $0102
+	clearflag ENGINE_DANA_HAS_THUNDERSTONE
+	setevent EVENT_DANA_GAVE_THUNDERSTONE
 	jump UnknownScript_0x1a1e17
-; 0x1a1e08
 
-UnknownScript_0x1a1e08: ; 0x1a1e08
+UnknownScript_0x1a1e08:
 	jump UnknownScript_0x1a1e2b
-; 0x1a1e0b
 
-UnknownScript_0x1a1e0b: ; 0x1a1e0b
+UnknownScript_0x1a1e0b:
 	jumpstd asknumber1f
 	end
-; 0x1a1e0f
 
-UnknownScript_0x1a1e0f: ; 0x1a1e0f
+UnknownScript_0x1a1e0f:
 	jumpstd asknumber2f
 	end
-; 0x1a1e13
 
-UnknownScript_0x1a1e13: ; 0x1a1e13
+UnknownScript_0x1a1e13:
 	jumpstd registerednumberf
 	end
-; 0x1a1e17
 
-UnknownScript_0x1a1e17: ; 0x1a1e17
+UnknownScript_0x1a1e17:
 	jumpstd numberacceptedf
 	end
-; 0x1a1e1b
 
-UnknownScript_0x1a1e1b: ; 0x1a1e1b
+UnknownScript_0x1a1e1b:
 	jumpstd numberdeclinedf
 	end
-; 0x1a1e1f
 
-UnknownScript_0x1a1e1f: ; 0x1a1e1f
+UnknownScript_0x1a1e1f:
 	jumpstd phonefullf
 	end
-; 0x1a1e23
 
-UnknownScript_0x1a1e23: ; 0x1a1e23
+UnknownScript_0x1a1e23:
 	jumpstd rematchf
 	end
-; 0x1a1e27
 
-UnknownScript_0x1a1e27: ; 0x1a1e27
+UnknownScript_0x1a1e27:
 	jumpstd giftf
 	end
-; 0x1a1e2b
 
-UnknownScript_0x1a1e2b: ; 0x1a1e2b
+UnknownScript_0x1a1e2b:
 	jumpstd packfullf
 	end
-; 0x1a1e2f
 
-TrainerSchoolboyChad1: ; 0x1a1e2f
-	; bit/flag number
-	dw $475
+TrainerSchoolboyChad1:
+	trainer EVENT_BEAT_SCHOOLBOY_CHAD, SCHOOLBOY, CHAD1, SchoolboyChad1SeenText, SchoolboyChad1BeatenText, $0000, SchoolboyChad1Script
 
-	; trainer group && trainer id
-	db SCHOOLBOY, CHAD1
-
-	; text when seen
-	dw SchoolboyChad1SeenText
-
-	; text when trainer beaten
-	dw SchoolboyChad1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SchoolboyChad1Script
-; 0x1a1e3b
-
-SchoolboyChad1Script: ; 0x1a1e3b
-	writecode $17, $1b
+SchoolboyChad1Script:
+	writecode VAR_CALLERID, PHONE_SCHOOLBOY_CHAD
 	talkaftercancel
 	loadfont
-	checkflag $0075
+	checkflag ENGINE_CHAD
 	iftrue UnknownScript_0x1a1e75
-	checkcellnum $1b
+	checkcellnum PHONE_SCHOOLBOY_CHAD
 	iftrue UnknownScript_0x1a1ef5
-	checkevent $028b
+	checkevent EVENT_CHAD_ASKED_FOR_PHONE_NUMBER
 	iftrue UnknownScript_0x1a1e5e
 	writetext UnknownText_0x1a200e
 	keeptextopen
-	setevent $028b
+	setevent EVENT_CHAD_ASKED_FOR_PHONE_NUMBER
 	scall UnknownScript_0x1a1ee9
 	jump UnknownScript_0x1a1e61
-; 0x1a1e5e
 
-UnknownScript_0x1a1e5e: ; 0x1a1e5e
+UnknownScript_0x1a1e5e:
 	scall UnknownScript_0x1a1eed
-UnknownScript_0x1a1e61: ; 0x1a1e61
-	askforphonenumber $1b
+UnknownScript_0x1a1e61:
+	askforphonenumber PHONE_SCHOOLBOY_CHAD
 	if_equal $1, UnknownScript_0x1a1efd
 	if_equal $2, UnknownScript_0x1a1ef9
 	trainertotext SCHOOLBOY, CHAD1, $0
 	scall UnknownScript_0x1a1ef1
 	jump UnknownScript_0x1a1ef5
-; 0x1a1e75
 
-UnknownScript_0x1a1e75: ; 0x1a1e75
+UnknownScript_0x1a1e75:
 	scall UnknownScript_0x1a1f01
 	winlosstext SchoolboyChad1BeatenText, $0000
-	copybytetovar wda04
-	if_equal $4, UnknownScript_0x1a1e94
-	if_equal $3, UnknownScript_0x1a1e9a
-	if_equal $2, UnknownScript_0x1a1ea0
-	if_equal $1, UnknownScript_0x1a1ea6
-	if_equal $0, UnknownScript_0x1a1eac
-UnknownScript_0x1a1e94: ; 0x1a1e94
+	copybytetovar wChadFightCount
+	if_equal 4, .Fight4
+	if_equal 3, .Fight3
+	if_equal 2, .Fight2
+	if_equal 1, .Fight1
+	if_equal 0, .LoadFight0
+.Fight4
 	checkevent EVENT_RESTORED_POWER_TO_KANTO
-	iftrue UnknownScript_0x1a1ee0
-UnknownScript_0x1a1e9a: ; 0x1a1e9a
+	iftrue .LoadFight4
+.Fight3
 	checkevent EVENT_BEAT_ELITE_FOUR
-	iftrue UnknownScript_0x1a1ed3
-UnknownScript_0x1a1ea0: ; 0x1a1ea0
+	iftrue .LoadFight3
+.Fight2
 	checkevent EVENT_CLEARED_RADIO_TOWER
-	iftrue UnknownScript_0x1a1ec6
-UnknownScript_0x1a1ea6: ; 0x1a1ea6
-	checkflag $0049
-	iftrue UnknownScript_0x1a1eb9
-UnknownScript_0x1a1eac: ; 0x1a1eac
+	iftrue .LoadFight2
+.Fight1
+	checkflag ENGINE_FLYPOINT_MAHOGANY
+	iftrue .LoadFight1
+.LoadFight0
 	loadtrainer SCHOOLBOY, CHAD1
 	startbattle
 	returnafterbattle
-	loadvar wda04, $1
-	clearflag $0075
+	loadvar wChadFightCount, 1
+	clearflag ENGINE_CHAD
 	end
-; 0x1a1eb9
 
-UnknownScript_0x1a1eb9: ; 0x1a1eb9
+.LoadFight1
 	loadtrainer SCHOOLBOY, CHAD2
 	startbattle
 	returnafterbattle
-	loadvar wda04, $2
-	clearflag $0075
+	loadvar wChadFightCount, 2
+	clearflag ENGINE_CHAD
 	end
-; 0x1a1ec6
 
-UnknownScript_0x1a1ec6: ; 0x1a1ec6
+.LoadFight2
 	loadtrainer SCHOOLBOY, CHAD3
 	startbattle
 	returnafterbattle
-	loadvar wda04, $3
-	clearflag $0075
+	loadvar wChadFightCount, 3
+	clearflag ENGINE_CHAD
 	end
-; 0x1a1ed3
 
-UnknownScript_0x1a1ed3: ; 0x1a1ed3
+.LoadFight3
 	loadtrainer SCHOOLBOY, CHAD4
 	startbattle
 	returnafterbattle
-	loadvar wda04, $4
-	clearflag $0075
+	loadvar wChadFightCount, 4
+	clearflag ENGINE_CHAD
 	end
-; 0x1a1ee0
 
-UnknownScript_0x1a1ee0: ; 0x1a1ee0
+.LoadFight4
 	loadtrainer SCHOOLBOY, CHAD5
 	startbattle
 	returnafterbattle
-	clearflag $0075
+	clearflag ENGINE_CHAD
 	end
-; 0x1a1ee9
 
-UnknownScript_0x1a1ee9: ; 0x1a1ee9
+UnknownScript_0x1a1ee9:
 	jumpstd asknumber1m
 	end
-; 0x1a1eed
 
-UnknownScript_0x1a1eed: ; 0x1a1eed
+UnknownScript_0x1a1eed:
 	jumpstd asknumber2m
 	end
-; 0x1a1ef1
 
-UnknownScript_0x1a1ef1: ; 0x1a1ef1
+UnknownScript_0x1a1ef1:
 	jumpstd registerednumberm
 	end
-; 0x1a1ef5
 
-UnknownScript_0x1a1ef5: ; 0x1a1ef5
+UnknownScript_0x1a1ef5:
 	jumpstd numberacceptedm
 	end
-; 0x1a1ef9
 
-UnknownScript_0x1a1ef9: ; 0x1a1ef9
+UnknownScript_0x1a1ef9:
 	jumpstd numberdeclinedm
 	end
-; 0x1a1efd
 
-UnknownScript_0x1a1efd: ; 0x1a1efd
+UnknownScript_0x1a1efd:
 	jumpstd phonefullm
 	end
-; 0x1a1f01
 
-UnknownScript_0x1a1f01: ; 0x1a1f01
+UnknownScript_0x1a1f01:
 	jumpstd rematchm
 	end
-; 0x1a1f05
 
-TrainerBeautyValerie: ; 0x1a1f05
-	; bit/flag number
-	dw $4bc
+TrainerBeautyValerie:
+	trainer EVENT_BEAT_BEAUTY_VALERIE, BEAUTY, VALERIE, BeautyValerieSeenText, BeautyValerieBeatenText, $0000, BeautyValerieScript
 
-	; trainer group && trainer id
-	db BEAUTY, VALERIE
-
-	; text when seen
-	dw BeautyValerieSeenText
-
-	; text when trainer beaten
-	dw BeautyValerieBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw BeautyValerieScript
-; 0x1a1f11
-
-BeautyValerieScript: ; 0x1a1f11
+BeautyValerieScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a2185
@@ -412,29 +292,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a1f19
 
-TrainerBeautyOlivia: ; 0x1a1f19
-	; bit/flag number
-	dw $5c1
+TrainerBeautyOlivia:
+	trainer EVENT_BEAT_BEAUTY_OLIVIA, BEAUTY, OLIVIA, BeautyOliviaSeenText, BeautyOliviaBeatenText, $0000, BeautyOliviaScript
 
-	; trainer group && trainer id
-	db BEAUTY, OLIVIA
-
-	; text when seen
-	dw BeautyOliviaSeenText
-
-	; text when trainer beaten
-	dw BeautyOliviaBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw BeautyOliviaScript
-; 0x1a1f25
-
-BeautyOliviaScript: ; 0x1a1f25
+BeautyOliviaScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a229a
@@ -441,34 +303,28 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a1f2d
 
-MapRoute38Signpost0Script: ; 0x1a1f2d
+MapRoute38Signpost0Script:
 	jumptext UnknownText_0x1a22fd
-; 0x1a1f30
 
-MapRoute38Signpost1Script: ; 0x1a1f30
+MapRoute38Signpost1Script:
 	jumptext UnknownText_0x1a2324
-; 0x1a1f33
 
-FruitTreeScript_0x1a1f33: ; 0x1a1f33
+FruitTreeScript_0x1a1f33:
 	fruittree $3
-; 0x1a1f35
 
-Bird_keeperTobySeenText: ; 0x1a1f35
+Bird_keeperTobySeenText:
 	text "Fly high into the"
 	line "sky, my beloved"
 	cont "bird #MON!"
 	done
-; 0x1a1f63
 
-Bird_keeperTobyBeatenText: ; 0x1a1f63
+Bird_keeperTobyBeatenText:
 	text "I feel like just"
 	line "flying away now."
 	done
-; 0x1a1f86
 
-UnknownText_0x1a1f86: ; 0x1a1f86
+UnknownText_0x1a1f86:
 	text "I plan to train in"
 	line "CIANWOOD CITY to"
 
@@ -475,22 +331,19 @@
 	para "teach my #MON"
 	line "how to FLY."
 	done
-; 0x1a1fc5
 
-SchoolboyChad1SeenText: ; 0x1a1fc5
+SchoolboyChad1SeenText:
 	text "Let me try some-"
 	line "thing I learned"
 	cont "today."
 	done
-; 0x1a1fee
 
-SchoolboyChad1BeatenText: ; 0x1a1fee
+SchoolboyChad1BeatenText:
 	text "I didn't study"
 	line "enough, I guess."
 	done
-; 0x1a200e
 
-UnknownText_0x1a200e: ; 0x1a200e
+UnknownText_0x1a200e:
 	text "I have to take so"
 	line "many tests, I"
 
@@ -501,9 +354,8 @@
 	line "to play, I really"
 	cont "concentrate."
 	done
-; 0x1a207d
 
-LassDana1SeenText: ; 0x1a207d
+LassDana1SeenText:
 	text "You seem to be"
 	line "good at #MON."
 
@@ -511,15 +363,13 @@
 	line "about giving me"
 	cont "some advice?"
 	done
-; 0x1a20c8
 
-LassDana1BeatenText: ; 0x1a20c8
+LassDana1BeatenText:
 	text "I see. So you can"
 	line "battle that way."
 	done
-; 0x1a20ec
 
-UnknownText_0x1a20ec: ; 0x1a20ec
+UnknownText_0x1a20ec:
 	text "I know something"
 	line "good!"
 
@@ -527,9 +377,8 @@
 	line "is famous for its"
 	cont "flavor."
 	done
-; 0x1a2130
 
-BeautyValerieSeenText: ; 0x1a2130
+BeautyValerieSeenText:
 	text "Hi! Aren't you a"
 	line "cute trainer!"
 
@@ -536,22 +385,19 @@
 	para "May I see your"
 	line "#MON?"
 	done
-; 0x1a2164
 
-BeautyValerieBeatenText: ; 0x1a2164
+BeautyValerieBeatenText:
 	text "I'm glad I got to"
 	line "see your #MON!"
 	done
-; 0x1a2185
 
-UnknownText_0x1a2185: ; 0x1a2185
+UnknownText_0x1a2185:
 	text "When I see #-"
 	line "MON, it seems to"
 	cont "soothe my nerves."
 	done
-; 0x1a21b7
 
-SailorHarrySeenText: ; 0x1a21b7
+SailorHarrySeenText:
 	text "I've been over-"
 	line "seas, so I know"
 
@@ -558,15 +404,13 @@
 	para "about all sorts of"
 	line "#MON!"
 	done
-; 0x1a21f0
 
-SailorHarryBeatenText: ; 0x1a21f0
+SailorHarryBeatenText:
 	text "Your skill is"
 	line "world class!"
 	done
-; 0x1a220c
 
-UnknownText_0x1a220c: ; 0x1a220c
+UnknownText_0x1a220c:
 	text "All kinds of peo-"
 	line "ple around the"
 
@@ -573,22 +417,19 @@
 	para "world live happily"
 	line "with #MON."
 	done
-; 0x1a224c
 
-BeautyOliviaSeenText: ; 0x1a224c
+BeautyOliviaSeenText:
 	text "Don't you think my"
 	line "#MON and I are"
 	cont "beautiful?"
 	done
-; 0x1a2279
 
-BeautyOliviaBeatenText: ; 0x1a2279
+BeautyOliviaBeatenText:
 	text "We drink MOOMOO"
 	line "MILK every day."
 	done
-; 0x1a229a
 
-UnknownText_0x1a229a: ; 0x1a229a
+UnknownText_0x1a229a:
 	text "MOOMOO MILK is"
 	line "good for beauty"
 
@@ -598,17 +439,15 @@
 	para "they only sell a"
 	line "bottle at a time."
 	done
-; 0x1a22fd
 
-UnknownText_0x1a22fd: ; 0x1a22fd
+UnknownText_0x1a22fd:
 	text "ROUTE 38"
 
 	para "OLIVINE CITY -"
 	line "ECRUTEAK CITY"
 	done
-; 0x1a2324
 
-UnknownText_0x1a2324: ; 0x1a2324
+UnknownText_0x1a2324:
 	text "TRAINER TIPS"
 
 	para "If a #MON is"
@@ -623,32 +462,30 @@
 	line "#MON and stops"
 	cont "its evolution."
 	done
-; 0x1a23bb
 
-Route38_MapEventHeader: ; 0x1a23bb
+Route38_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 7, 33, $0, MapRoute38Signpost0Script
-	signpost 13, 5, $0, MapRoute38Signpost1Script
+	signpost 7, 33, SIGNPOST_READ, MapRoute38Signpost0Script
+	signpost 13, 5, SIGNPOST_READ, MapRoute38Signpost1Script
 
-	; people-events
+.PersonEvents:
 	db 7
-	person_event SPRITE_STANDING_YOUNGSTER, 5, 8, $9, $0, 255, 255, $92, 1, TrainerSchoolboyChad1, $ffff
-	person_event SPRITE_LASS, 7, 19, $a, $0, 255, 255, $92, 2, TrainerLassDana1, $ffff
-	person_event SPRITE_STANDING_YOUNGSTER, 19, 16, $a, $0, 255, 255, $92, 1, TrainerBird_keeperToby, $ffff
-	person_event SPRITE_BUENA, 13, 23, $6, $0, 255, 255, $92, 1, TrainerBeautyValerie, $ffff
-	person_event SPRITE_SAILOR, 9, 28, $1e, $0, 255, 255, $92, 2, TrainerSailorHarry, $ffff
-	person_event SPRITE_FRUIT_TREE, 14, 16, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x1a1f33, $ffff
-	person_event SPRITE_BUENA, 12, 9, $a, $0, 255, 255, $92, 1, TrainerBeautyOlivia, $ffff
-; 0x1a2430
+	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
--- a/maps/Route38EcruteakGate.asm
+++ b/maps/Route38EcruteakGate.asm
@@ -1,16 +1,14 @@
-Route38EcruteakGate_MapScriptHeader: ; 0x9cbd5
-	; trigger count
+Route38EcruteakGate_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9cbd7
 
-OfficerScript_0x9cbd7: ; 0x9cbd7
+OfficerScript_0x9cbd7:
 	jumptextfaceplayer UnknownText_0x9cbda
-; 0x9cbda
 
-UnknownText_0x9cbda: ; 0x9cbda
+UnknownText_0x9cbda:
 	text "Where did you say"
 	line "you're from?"
 
@@ -22,13 +20,12 @@
 	para "You've come a long"
 	line "way to get here."
 	done
-; 0x9cc4d
 
-Route38EcruteakGate_MapEventHeader: ; 0x9cc4d
+Route38EcruteakGate_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -35,13 +32,12 @@
 	warp_def $4, $9, 14, GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY
 	warp_def $5, $9, 15, GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_OFFICER, 6, 9, $6, $0, 255, 255, $80, 0, OfficerScript_0x9cbd7, $ffff
-; 0x9cc74
+	person_event SPRITE_OFFICER, 6, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, OfficerScript_0x9cbd7, -1
--- a/maps/Route39.asm
+++ b/maps/Route39.asm
@@ -1,12 +1,11 @@
-Route39_MapScriptHeader: ; 0x1a5af3
-	; trigger count
+Route39_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1a5af5
 
-TaurosScript_0x1a5af5: ; 0x1a5af5
+TaurosScript_0x1a5af5:
 	loadfont
 	writetext UnknownText_0x1a5bf9
 	cry MILTANK
@@ -13,138 +12,90 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a5aff
 
-TrainerPokefanmDerek1: ; 0x1a5aff
-	; bit/flag number
-	dw $4ce
+TrainerPokefanmDerek1:
+	trainer EVENT_BEAT_POKEFANM_DEREK, POKEFANM, DEREK1, PokefanmDerek1SeenText, PokefanmDerek1BeatenText, $0000, PokefanmDerek1Script
 
-	; trainer group && trainer id
-	db POKEFANM, DEREK1
-
-	; text when seen
-	dw PokefanmDerek1SeenText
-
-	; text when trainer beaten
-	dw PokefanmDerek1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PokefanmDerek1Script
-; 0x1a5b0b
-
-PokefanmDerek1Script: ; 0x1a5b0b
-	writecode $17, $1c
+PokefanmDerek1Script:
+	writecode VAR_CALLERID, PHONE_POKEFANM_DEREK
 	talkaftercancel
 	loadfont
-	checkflag $0083
+	checkflag ENGINE_DEREK_HAS_NUGGET
 	iftrue UnknownScript_0x1a5b4a
-	checkcellnum $1c
+	checkcellnum PHONE_POKEFANM_DEREK
 	iftrue UnknownScript_0x1a5b6e
 	checkpoke PIKACHU
 	iffalse UnknownScript_0x1a5b5c
-	checkevent EVENT_SHOWED_DEREK_PIKACHU
+	checkevent EVENT_DEREK_ASKED_FOR_PHONE_NUMBER
 	iftrue UnknownScript_0x1a5b33
 	writetext UnknownText_0x1a5cf8
 	keeptextopen
-	setevent EVENT_SHOWED_DEREK_PIKACHU
+	setevent EVENT_DEREK_ASKED_FOR_PHONE_NUMBER
 	scall UnknownScript_0x1a5b62
 	jump UnknownScript_0x1a5b36
-; 0x1a5b33
 
-UnknownScript_0x1a5b33: ; 0x1a5b33
+UnknownScript_0x1a5b33:
 	scall UnknownScript_0x1a5b66
-UnknownScript_0x1a5b36: ; 0x1a5b36
-	askforphonenumber $1c
+UnknownScript_0x1a5b36:
+	askforphonenumber PHONE_POKEFANM_DEREK
 	if_equal $1, UnknownScript_0x1a5b76
 	if_equal $2, UnknownScript_0x1a5b72
 	trainertotext POKEFANM, DEREK1, $0
 	scall UnknownScript_0x1a5b6a
 	jump UnknownScript_0x1a5b6e
-; 0x1a5b4a
 
-UnknownScript_0x1a5b4a: ; 0x1a5b4a
+UnknownScript_0x1a5b4a:
 	scall UnknownScript_0x1a5b7a
 	verbosegiveitem NUGGET, 1
 	iffalse UnknownScript_0x1a5b59
-	clearflag $0083
+	clearflag ENGINE_DEREK_HAS_NUGGET
 	jump UnknownScript_0x1a5b6e
-; 0x1a5b59
 
-UnknownScript_0x1a5b59: ; 0x1a5b59
+UnknownScript_0x1a5b59:
 	jump UnknownScript_0x1a5b7e
-; 0x1a5b5c
 
-UnknownScript_0x1a5b5c: ; 0x1a5b5c
+UnknownScript_0x1a5b5c:
 	writetext UnknownText_0x1a5dec
 	closetext
 	loadmovesprites
 	end
-; 0x1a5b62
 
-UnknownScript_0x1a5b62: ; 0x1a5b62
+UnknownScript_0x1a5b62:
 	jumpstd asknumber1m
 	end
-; 0x1a5b66
 
-UnknownScript_0x1a5b66: ; 0x1a5b66
+UnknownScript_0x1a5b66:
 	jumpstd asknumber2m
 	end
-; 0x1a5b6a
 
-UnknownScript_0x1a5b6a: ; 0x1a5b6a
+UnknownScript_0x1a5b6a:
 	jumpstd registerednumberm
 	end
-; 0x1a5b6e
 
-UnknownScript_0x1a5b6e: ; 0x1a5b6e
+UnknownScript_0x1a5b6e:
 	jumpstd numberacceptedm
 	end
-; 0x1a5b72
 
-UnknownScript_0x1a5b72: ; 0x1a5b72
+UnknownScript_0x1a5b72:
 	jumpstd numberdeclinedm
 	end
-; 0x1a5b76
 
-UnknownScript_0x1a5b76: ; 0x1a5b76
+UnknownScript_0x1a5b76:
 	jumpstd phonefullm
 	end
-; 0x1a5b7a
 
-UnknownScript_0x1a5b7a: ; 0x1a5b7a
+UnknownScript_0x1a5b7a:
 	jumpstd giftm
 	end
-; 0x1a5b7e
 
-UnknownScript_0x1a5b7e: ; 0x1a5b7e
+UnknownScript_0x1a5b7e:
 	jumpstd packfullm
 	end
-; 0x1a5b82
 
-TrainerPokefanfRuth: ; 0x1a5b82
-	; bit/flag number
-	dw $4da
+TrainerPokefanfRuth:
+	trainer EVENT_BEAT_POKEFANF_RUTH, POKEFANF, RUTH, PokefanfRuthSeenText, PokefanfRuthBeatenText, $0000, PokefanfRuthScript
 
-	; trainer group && trainer id
-	db POKEFANF, RUTH
-
-	; text when seen
-	dw PokefanfRuthSeenText
-
-	; text when trainer beaten
-	dw PokefanfRuthBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PokefanfRuthScript
-; 0x1a5b8e
-
-PokefanfRuthScript: ; 0x1a5b8e
+PokefanfRuthScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a5db2
@@ -151,29 +102,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a5b96
 
-TrainerSailorEugene: ; 0x1a5b96
-	; bit/flag number
-	dw $575
+TrainerSailorEugene:
+	trainer EVENT_BEAT_SAILOR_EUGENE, SAILOR, EUGENE, SailorEugeneSeenText, SailorEugeneBeatenText, $0000, SailorEugeneScript
 
-	; trainer group && trainer id
-	db SAILOR, EUGENE
-
-	; text when seen
-	dw SailorEugeneSeenText
-
-	; text when trainer beaten
-	dw SailorEugeneBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SailorEugeneScript
-; 0x1a5ba2
-
-SailorEugeneScript: ; 0x1a5ba2
+SailorEugeneScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a5c4d
@@ -180,29 +113,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a5baa
 
-TrainerPsychicNorman: ; 0x1a5baa
-	; bit/flag number
-	dw $43f
+TrainerPsychicNorman:
+	trainer EVENT_BEAT_PSYCHIC_NORMAN, PSYCHIC_T, NORMAN, PsychicNormanSeenText, PsychicNormanBeatenText, $0000, PsychicNormanScript
 
-	; trainer group && trainer id
-	db PSYCHIC_T, NORMAN
-
-	; text when seen
-	dw PsychicNormanSeenText
-
-	; text when trainer beaten
-	dw PsychicNormanBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PsychicNormanScript
-; 0x1a5bb6
-
-PsychicNormanScript: ; 0x1a5bb6
+PsychicNormanScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a5e57
@@ -209,14 +124,13 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a5bbe
 
-PokefanFScript_0x1a5bbe: ; 0x1a5bbe
+PokefanFScript_0x1a5bbe:
 	faceplayer
 	loadfont
 	checknite
 	iffalse UnknownScript_0x1a5be5
-	checkevent $05c2
+	checkevent EVENT_BEAT_POKEFANF_JAIME
 	iftrue UnknownScript_0x1a5bdf
 	writetext UnknownText_0x1a5ee8
 	closetext
@@ -225,53 +139,43 @@
 	loadtrainer POKEFANF, JAIME
 	startbattle
 	returnafterbattle
-	setevent $05c2
+	setevent EVENT_BEAT_POKEFANF_JAIME
 	loadmovesprites
 	end
-; 0x1a5bdf
 
-UnknownScript_0x1a5bdf: ; 0x1a5bdf
+UnknownScript_0x1a5bdf:
 	writetext UnknownText_0x1a5f31
 	closetext
 	loadmovesprites
 	end
-; 0x1a5be5
 
-UnknownScript_0x1a5be5: ; 0x1a5be5
+UnknownScript_0x1a5be5:
 	writetext UnknownText_0x1a5ec4
 	closetext
 	loadmovesprites
 	end
-; 0x1a5beb
 
-MapRoute39Signpost2Script: ; 0x1a5beb
+MapRoute39Signpost2Script:
 	jumptext UnknownText_0x1a5fe3
-; 0x1a5bee
 
-MapRoute39Signpost1Script: ; 0x1a5bee
+MapRoute39Signpost1Script:
 	jumptext UnknownText_0x1a600a
-; 0x1a5bf1
 
-MapRoute39Signpost0Script: ; 0x1a5bf1
+MapRoute39Signpost0Script:
 	jumptext UnknownText_0x1a6036
-; 0x1a5bf4
 
-FruitTreeScript_0x1a5bf4: ; 0x1a5bf4
+FruitTreeScript_0x1a5bf4:
 	fruittree $f
-; 0x1a5bf6
 
-MapRoute39SignpostItem3: ; 0x1a5bf6
-	dw $00aa
-	db NUGGET
+MapRoute39SignpostItem3:
+	dwb EVENT_ROUTE_39_HIDDEN_NUGGET, NUGGET
 	
-; 0x1a5bf9
 
-UnknownText_0x1a5bf9: ; 0x1a5bf9
+UnknownText_0x1a5bf9:
 	text "MILTANK: Mooo!"
 	done
-; 0x1a5c09
 
-SailorEugeneSeenText: ; 0x1a5c09
+SailorEugeneSeenText:
 	text "I just got back to"
 	line "OLIVINE."
 
@@ -278,14 +182,12 @@
 	para "So how about a"
 	line "#MON battle?"
 	done
-; 0x1a5c42
 
-SailorEugeneBeatenText: ; 0x1a5c42
+SailorEugeneBeatenText:
 	text "Awaaargh!"
 	done
-; 0x1a5c4d
 
-UnknownText_0x1a5c4d: ; 0x1a5c4d
+UnknownText_0x1a5c4d:
 	text "My #MON were"
 	line "caught and raised"
 	cont "overseas."
@@ -294,22 +196,19 @@
 	line "ions on those long"
 	cont "voyages."
 	done
-; 0x1a5ca5
 
-PokefanmDerek1SeenText: ; 0x1a5ca5
+PokefanmDerek1SeenText:
 	text "This is a good"
 	line "time to brag about"
 	cont "my PIKACHU!"
 	done
-; 0x1a5cd4
 
-PokefanmDerek1BeatenText: ; 0x1a5cd4
+PokefanmDerek1BeatenText:
 	text "I had no time to"
 	line "show off PIKACHU…"
 	done
-; 0x1a5cf8
 
-UnknownText_0x1a5cf8: ; 0x1a5cf8
+UnknownText_0x1a5cf8:
 	text "I'm not listening"
 	line "to your bragging!"
 
@@ -319,9 +218,8 @@
 	para "listening to other"
 	line "people brag!"
 	done
-; 0x1a5d5b
 
-PokefanfRuthSeenText: ; 0x1a5d5b
+PokefanfRuthSeenText:
 	text "Such darling"
 	line "#MON."
 
@@ -329,15 +227,13 @@
 	line "#MON together"
 	cont "at the same time."
 	done
-; 0x1a5d9d
 
-PokefanfRuthBeatenText: ; 0x1a5d9d
+PokefanfRuthBeatenText:
 	text "I don't mind"
 	line "losing."
 	done
-; 0x1a5db2
 
-UnknownText_0x1a5db2: ; 0x1a5db2
+UnknownText_0x1a5db2:
 	text "Do you know about"
 	line "baby #MON?"
 
@@ -344,28 +240,24 @@
 	para "I bet they're just"
 	line "adorable!"
 	done
-; 0x1a5dec
 
-UnknownText_0x1a5dec: ; 0x1a5dec
+UnknownText_0x1a5dec:
 	text "PIKACHU is it!"
 	line "Don't you agree?"
 	done
-; 0x1a5e0c
 
-PsychicNormanSeenText: ; 0x1a5e0c
+PsychicNormanSeenText:
 	text "Let me see what"
 	line "your #MON are"
 	cont "capable of."
 	done
-; 0x1a5e37
 
-PsychicNormanBeatenText: ; 0x1a5e37
+PsychicNormanBeatenText:
 	text "Ooh, your #MON"
 	line "have potential."
 	done
-; 0x1a5e57
 
-UnknownText_0x1a5e57: ; 0x1a5e57
+UnknownText_0x1a5e57:
 	text "You know how #-"
 	line "MON have different"
 	cont "abilities?"
@@ -375,29 +267,25 @@
 	cont "one has different"
 	cont "potential."
 	done
-; 0x1a5ec4
 
-UnknownText_0x1a5ec4: ; 0x1a5ec4
+UnknownText_0x1a5ec4:
 	text "Ufufufu… I hope it"
 	line "gets dark soon."
 	done
-; 0x1a5ee8
 
-UnknownText_0x1a5ee8: ; 0x1a5ee8
+UnknownText_0x1a5ee8:
 	text "You came at just"
 	line "the right time."
 
 	para "Let's battle."
 	done
-; 0x1a5f17
 
-UnknownText_0x1a5f17: ; 0x1a5f17
+UnknownText_0x1a5f17:
 	text "Oh, how disap-"
 	line "pointing…"
 	done
-; 0x1a5f31
 
-UnknownText_0x1a5f31: ; 0x1a5f31
+UnknownText_0x1a5f31:
 	text "I met my MEOWTH at"
 	line "night, right here"
 	cont "on ROUTE 39."
@@ -414,25 +302,22 @@
 	para "training here than"
 	line "anywhere else."
 	done
-; 0x1a5fe3
 
-UnknownText_0x1a5fe3: ; 0x1a5fe3
+UnknownText_0x1a5fe3:
 	text "ROUTE 39"
 
 	para "OLIVINE CITY -"
 	line "ECRUTEAK CITY"
 	done
-; 0x1a600a
 
-UnknownText_0x1a600a: ; 0x1a600a
+UnknownText_0x1a600a:
 	text "MOOMOO FARM"
 
 	para "Enjoy Our Fresh"
 	line "and Tasty Milk"
 	done
-; 0x1a6036
 
-UnknownText_0x1a6036: ; 0x1a6036
+UnknownText_0x1a6036:
 	text "TRAINER TIPS"
 
 	para "Use HEADBUTT on"
@@ -446,37 +331,35 @@
 	para "Use HEADBUTT on"
 	line "any tree you see!"
 	done
-; 0x1a60ba
 
-Route39_MapEventHeader: ; 0x1a60ba
+Route39_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 4
-	signpost 31, 5, $0, MapRoute39Signpost0Script
-	signpost 5, 9, $0, MapRoute39Signpost1Script
-	signpost 7, 15, $0, MapRoute39Signpost2Script
-	signpost 13, 5, $7, MapRoute39SignpostItem3
+	signpost 31, 5, SIGNPOST_READ, MapRoute39Signpost0Script
+	signpost 5, 9, SIGNPOST_READ, MapRoute39Signpost1Script
+	signpost 7, 15, SIGNPOST_READ, MapRoute39Signpost2Script
+	signpost 13, 5, SIGNPOST_ITEM, MapRoute39SignpostItem3
 
-	; people-events
+.PersonEvents:
 	db 10
-	person_event SPRITE_SAILOR, 33, 17, $8, $0, 255, 255, $92, 5, TrainerSailorEugene, $ffff
-	person_event SPRITE_POKEFAN_M, 26, 14, $7, $0, 255, 255, $82, 4, TrainerPokefanmDerek1, $ffff
-	person_event SPRITE_POKEFAN_F, 23, 15, $9, $0, 255, 255, $82, 4, TrainerPokefanfRuth, $ffff
-	person_event SPRITE_TAUROS, 16, 7, $16, $0, 255, 255, $0, 0, TaurosScript_0x1a5af5, $ffff
-	person_event SPRITE_TAUROS, 15, 10, $16, $0, 255, 255, $0, 0, TaurosScript_0x1a5af5, $ffff
-	person_event SPRITE_TAUROS, 19, 8, $16, $0, 255, 255, $0, 0, TaurosScript_0x1a5af5, $ffff
-	person_event SPRITE_TAUROS, 17, 12, $16, $0, 255, 255, $0, 0, TaurosScript_0x1a5af5, $ffff
-	person_event SPRITE_STANDING_YOUNGSTER, 11, 17, $a, $0, 255, 255, $92, 1, TrainerPsychicNorman, $ffff
-	person_event SPRITE_FRUIT_TREE, 7, 13, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x1a5bf4, $ffff
-	person_event SPRITE_POKEFAN_F, 26, 8, $6, $0, 255, 255, $80, 0, PokefanFScript_0x1a5bbe, $ffff
-; 0x1a6160
+	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
--- a/maps/Route39Barn.asm
+++ b/maps/Route39Barn.asm
@@ -1,12 +1,11 @@
-Route39Barn_MapScriptHeader: ; 0x9cc74
-	; trigger count
+Route39Barn_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9cc76
 
-TwinScript_0x9cc76: ; 0x9cc76
+TwinScript_0x9cc76:
 	faceplayer
 	loadfont
 	checkevent EVENT_HEALED_MOOMOO
@@ -16,17 +15,15 @@
 	loadmovesprites
 	spriteface $2, RIGHT
 	end
-; 0x9cc87
 
-UnknownScript_0x9cc87: ; 0x9cc87
+UnknownScript_0x9cc87:
 	writetext UnknownText_0x9cd5a
 	closetext
 	loadmovesprites
 	spriteface $2, RIGHT
 	end
-; 0x9cc90
 
-TwinScript_0x9cc90: ; 0x9cc90
+TwinScript_0x9cc90:
 	faceplayer
 	loadfont
 	checkevent EVENT_HEALED_MOOMOO
@@ -36,17 +33,15 @@
 	loadmovesprites
 	spriteface $3, LEFT
 	end
-; 0x9cca1
 
-UnknownScript_0x9cca1: ; 0x9cca1
+UnknownScript_0x9cca1:
 	writetext UnknownText_0x9cd5a
 	closetext
 	loadmovesprites
 	spriteface $3, LEFT
 	end
-; 0x9ccaa
 
-TaurosScript_0x9ccaa: ; 0x9ccaa
+TaurosScript_0x9ccaa:
 	loadfont
 	checkevent EVENT_HEALED_MOOMOO
 	iftrue UnknownScript_0x9cd25
@@ -60,9 +55,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x9ccc6
 
-UnknownScript_0x9ccc6: ; 0x9ccc6
+UnknownScript_0x9ccc6:
 	keeptextopen
 	writetext UnknownText_0x9cda2
 	yesorno
@@ -80,9 +74,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x9ccf0
 
-UnknownScript_0x9ccf0: ; 0x9ccf0
+UnknownScript_0x9ccf0:
 	writetext UnknownText_0x9cdbc
 	keeptextopen
 	writetext UnknownText_0x9cdd8
@@ -89,9 +82,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x9ccfa
 
-UnknownScript_0x9ccfa: ; 0x9ccfa
+UnknownScript_0x9ccfa:
 	writetext UnknownText_0x9cdbc
 	keeptextopen
 	writetext UnknownText_0x9cdfc
@@ -98,9 +90,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x9cd04
 
-UnknownScript_0x9cd04: ; 0x9cd04
+UnknownScript_0x9cd04:
 	playmusic MUSIC_HEAL
 	writetext UnknownText_0x9cdbc
 	pause 60
@@ -111,121 +102,104 @@
 	loadmovesprites
 	setevent EVENT_HEALED_MOOMOO
 	end
-; 0x9cd19
 
-UnknownScript_0x9cd19: ; 0x9cd19
+UnknownScript_0x9cd19:
 	writetext UnknownText_0x9ce3c
 	closetext
 	loadmovesprites
 	end
-; 0x9cd1f
 
-UnknownScript_0x9cd1f: ; 0x9cd1f
+UnknownScript_0x9cd1f:
 	writetext UnknownText_0x9ce4f
 	closetext
 	loadmovesprites
 	end
-; 0x9cd25
 
-UnknownScript_0x9cd25: ; 0x9cd25
+UnknownScript_0x9cd25:
 	writetext UnknownText_0x9cd92
 	cry MILTANK
 	closetext
 	loadmovesprites
 	end
-; 0x9cd2e
 
-UnknownText_0x9cd2e: ; 0x9cd2e
+UnknownText_0x9cd2e:
 	text "MOOMOO is sick…"
 
 	para "She needs lots of"
 	line "BERRIES."
 	done
-; 0x9cd5a
 
-UnknownText_0x9cd5a: ; 0x9cd5a
+UnknownText_0x9cd5a:
 	text "We're feeding"
 	line "MOOMOO!"
 	done
-; 0x9cd70
 
-UnknownText_0x9cd70: ; 0x9cd70
+UnknownText_0x9cd70:
 	text "MILTANK: …Moo…"
 	done
-; 0x9cd80
 
-UnknownText_0x9cd80: ; 0x9cd80
+UnknownText_0x9cd80:
 	text "Its cry is weak…"
 	done
-; 0x9cd92
 
-UnknownText_0x9cd92: ; 0x9cd92
+UnknownText_0x9cd92:
 	text "MILTANK: Mooo!"
 	done
-; 0x9cda2
 
-UnknownText_0x9cda2: ; 0x9cda2
+UnknownText_0x9cda2:
 	text "Give a BERRY to"
 	line "MILTANK?"
 	done
-; 0x9cdbc
 
-UnknownText_0x9cdbc: ; 0x9cdbc
+UnknownText_0x9cdbc:
 	text "<PLAYER> gave a"
 	line "BERRY to MILTANK."
 	done
-; 0x9cdd8
 
-UnknownText_0x9cdd8: ; 0x9cdd8
+UnknownText_0x9cdd8:
 	text "MILTANK became a"
 	line "little healthier!"
 	done
-; 0x9cdfc
 
-UnknownText_0x9cdfc: ; 0x9cdfc
+UnknownText_0x9cdfc:
 	text "MILTANK became"
 	line "quite healthy!"
 	done
-; 0x9ce1b
 
-UnknownText_0x9ce1b: ; 0x9ce1b
+UnknownText_0x9ce1b:
 	text "MILTANK became"
 	line "totally healthy!"
 	done
-; 0x9ce3c
 
-UnknownText_0x9ce3c: ; 0x9ce3c
+UnknownText_0x9ce3c:
 	text "<PLAYER> has no"
 	line "BERRIES…"
 	done
-; 0x9ce4f
 
-UnknownText_0x9ce4f: ; 0x9ce4f
+UnknownText_0x9ce4f:
 	text "<PLAYER> wouldn't"
 	line "give a BERRY."
 
 	para "MILTANK looks sad."
 	done
-; 0x9ce7b
 
-Route39Barn_MapEventHeader: ; 0x9ce7b
+Route39Barn_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_TWIN, 7, 6, $9, $0, 255, 255, $0, 0, TwinScript_0x9cc76, $ffff
-	person_event SPRITE_TWIN, 7, 8, $8, $0, 255, 255, $a0, 0, TwinScript_0x9cc90, $ffff
-	person_event SPRITE_TAUROS, 7, 7, $16, $0, 255, 255, $0, 0, TaurosScript_0x9ccaa, $ffff
-; 0x9ceb2
+	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
--- a/maps/Route39Farmhouse.asm
+++ b/maps/Route39Farmhouse.asm
@@ -1,12 +1,11 @@
-Route39Farmhouse_MapScriptHeader: ; 0x9ceb2
-	; trigger count
+Route39Farmhouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9ceb4
 
-PokefanMScript_0x9ceb4: ; 0x9ceb4
+PokefanMScript_0x9ceb4:
 	faceplayer
 	loadfont
 	checkevent EVENT_HEALED_MOOMOO
@@ -16,9 +15,8 @@
 	loadmovesprites
 	setevent EVENT_TALKED_TO_FARMER_ABOUT_MOOMOO
 	end
-; 0x9cec5
 
-UnknownScript_0x9cec5: ; 0x9cec5
+UnknownScript_0x9cec5:
 	checkitem MOOMOO_MILK
 	iftrue UnknownScript_0x9cf08
 	writetext UnknownText_0x9cfe1
@@ -38,37 +36,32 @@
 	itemnotify
 	loadmovesprites
 	end
-; 0x9cef6
 
-UnknownScript_0x9cef6: ; 0x9cef6
+UnknownScript_0x9cef6:
 	writetext UnknownText_0x9d07c
 	closetext
 	loadmovesprites
 	end
-; 0x9cefc
 
-UnknownScript_0x9cefc: ; 0x9cefc
+UnknownScript_0x9cefc:
 	writetext UnknownText_0x9d09d
 	closetext
 	loadmovesprites
 	end
-; 0x9cf02
 
-UnknownScript_0x9cf02: ; 0x9cf02
+UnknownScript_0x9cf02:
 	writetext UnknownText_0x9d0b7
 	closetext
 	loadmovesprites
 	end
-; 0x9cf08
 
-UnknownScript_0x9cf08: ; 0x9cf08
+UnknownScript_0x9cf08:
 	writetext UnknownText_0x9d0dc
 	closetext
 	loadmovesprites
 	end
-; 0x9cf0e
 
-PokefanFScript_0x9cf0e: ; 0x9cf0e
+PokefanFScript_0x9cf0e:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_TM13_SNORE_FROM_MOOMOO_FARM
@@ -79,27 +72,24 @@
 	closetext
 	loadmovesprites
 	end
-; 0x9cf22
 
-UnknownScript_0x9cf22: ; 0x9cf22
+UnknownScript_0x9cf22:
 	writetext UnknownText_0x9d156
 	keeptextopen
-	verbosegiveitem TM_13, 1
+	verbosegiveitem TM_SNORE, 1
 	iffalse UnknownScript_0x9cf33
 	setevent EVENT_GOT_TM13_SNORE_FROM_MOOMOO_FARM
-UnknownScript_0x9cf2f: ; 0x9cf2f
+UnknownScript_0x9cf2f:
 	writetext UnknownText_0x9d1c7
 	closetext
-UnknownScript_0x9cf33: ; 0x9cf33
+UnknownScript_0x9cf33:
 	loadmovesprites
 	end
-; 0x9cf35
 
 FarmhouseBookshelf:
 	jumpstd picturebookshelf
-; 0x9cf38
 
-UnknownText_0x9cf38: ; 0x9cf38
+UnknownText_0x9cf38:
 	text "My MILTANK ain't"
 	line "givin' me milk"
 	cont "n'more."
@@ -116,9 +106,8 @@
 	para "feed it lots o'"
 	line "BERRIES, I reckon."
 	done
-; 0x9cfe1
 
-UnknownText_0x9cfe1: ; 0x9cfe1
+UnknownText_0x9cfe1:
 	text "How'd you like my"
 	line "MOOMOO MILK?"
 
@@ -131,39 +120,33 @@
 	para "I'll give it to ya"
 	line "fer just ¥500."
 	done
-; 0x9d05d
 
-UnknownText_0x9d05d: ; 0x9d05d
+UnknownText_0x9d05d:
 	text "Here ya go!"
 	line "Drink up'n enjoy!"
 	done
-; 0x9d07c
 
-UnknownText_0x9d07c: ; 0x9d07c
+UnknownText_0x9d07c:
 	text "Sorry, there."
 	line "No cash, no sale!"
 	done
-; 0x9d09d
 
-UnknownText_0x9d09d: ; 0x9d09d
+UnknownText_0x9d09d:
 	text "I reckon yer"
 	line "PACK's full."
 	done
-; 0x9d0b7
 
-UnknownText_0x9d0b7: ; 0x9d0b7
+UnknownText_0x9d0b7:
 	text "You don't want it?"
 	line "Come again, hear?"
 	done
-; 0x9d0dc
 
-UnknownText_0x9d0dc: ; 0x9d0dc
+UnknownText_0x9d0dc:
 	text "I best go do my"
 	line "milkin'."
 	done
-; 0x9d0f6
 
-UnknownText_0x9d0f6: ; 0x9d0f6
+UnknownText_0x9d0f6:
 	text "Our milk even goes"
 	line "out to KANTO."
 
@@ -173,9 +156,8 @@
 	para "us any milk, we're"
 	line "in trouble."
 	done
-; 0x9d156
 
-UnknownText_0x9d156: ; 0x9d156
+UnknownText_0x9d156:
 	text "You fixed our"
 	line "MILTANK, hon. Now"
 
@@ -185,15 +167,13 @@
 	para "Here's somethin'"
 	line "fer your trouble."
 	done
-; 0x9d1b5
 
-UnknownText_0x9d1b5: ; 0x9d1b5
+UnknownText_0x9d1b5:
 	text "<PLAYER> received"
 	line "TM13."
 	done
-; 0x9d1c7
 
-UnknownText_0x9d1c7: ; 0x9d1c7
+UnknownText_0x9d1c7:
 	text "That there's"
 	line "SNORE."
 
@@ -207,27 +187,25 @@
 	line "you ought to use"
 	cont "it, hon."
 	done
-; 0x9d242
 
-Route39Farmhouse_MapEventHeader: ; 0x9d242
+Route39Farmhouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 0, $0, FarmhouseBookshelf
-	signpost 1, 1, $0, FarmhouseBookshelf
+	signpost 1, 0, SIGNPOST_READ, FarmhouseBookshelf
+	signpost 1, 1, SIGNPOST_READ, FarmhouseBookshelf
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_POKEFAN_M, 6, 7, $6, $0, 255, 255, $90, 0, PokefanMScript_0x9ceb4, $ffff
-	person_event SPRITE_POKEFAN_F, 8, 9, $8, $0, 255, 255, $b0, 0, PokefanFScript_0x9cf0e, $ffff
-; 0x9d276
+	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
--- a/maps/Route4.asm
+++ b/maps/Route4.asm
@@ -1,32 +1,14 @@
-Route4_MapScriptHeader: ; 0x1ae1ce
-	; trigger count
+Route4_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1ae1d0
 
-TrainerBird_keeperHank: ; 0x1ae1d0
-	; bit/flag number
-	dw $402
+TrainerBird_keeperHank:
+	trainer EVENT_BEAT_BIRD_KEEPER_HANK, BIRD_KEEPER, HANK, Bird_keeperHankSeenText, Bird_keeperHankBeatenText, $0000, Bird_keeperHankScript
 
-	; trainer group && trainer id
-	db BIRD_KEEPER, HANK
-
-	; text when seen
-	dw Bird_keeperHankSeenText
-
-	; text when trainer beaten
-	dw Bird_keeperHankBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Bird_keeperHankScript
-; 0x1ae1dc
-
-Bird_keeperHankScript: ; 0x1ae1dc
+Bird_keeperHankScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ae258
@@ -33,29 +15,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1ae1e4
 
-TrainerPicnickerHope: ; 0x1ae1e4
-	; bit/flag number
-	dw $483
+TrainerPicnickerHope:
+	trainer EVENT_BEAT_PICNICKER_HOPE, PICNICKER, HOPE, PicnickerHopeSeenText, PicnickerHopeBeatenText, $0000, PicnickerHopeScript
 
-	; trainer group && trainer id
-	db PICNICKER, HOPE
-
-	; text when seen
-	dw PicnickerHopeSeenText
-
-	; text when trainer beaten
-	dw PicnickerHopeBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PicnickerHopeScript
-; 0x1ae1f0
-
-PicnickerHopeScript: ; 0x1ae1f0
+PicnickerHopeScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ae320
@@ -62,29 +26,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1ae1f8
 
-TrainerPicnickerSharon: ; 0x1ae1f8
-	; bit/flag number
-	dw $484
+TrainerPicnickerSharon:
+	trainer EVENT_BEAT_PICNICKER_SHARON, PICNICKER, SHARON, PicnickerSharonSeenText, PicnickerSharonBeatenText, $0000, PicnickerSharonScript
 
-	; trainer group && trainer id
-	db PICNICKER, SHARON
-
-	; text when seen
-	dw PicnickerSharonSeenText
-
-	; text when trainer beaten
-	dw PicnickerSharonBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PicnickerSharonScript
-; 0x1ae204
-
-PicnickerSharonScript: ; 0x1ae204
+PicnickerSharonScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ae369
@@ -91,36 +37,29 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1ae20c
 
-MapRoute4Signpost0Script: ; 0x1ae20c
+MapRoute4Signpost0Script:
 	jumptext UnknownText_0x1ae384
-; 0x1ae20f
 
-ItemFragment_0x1ae20f: ; 0x1ae20f
+ItemFragment_0x1ae20f:
 	db HP_UP, 1
-; 0x1ae211
 
-MapRoute4SignpostItem1: ; 0x1ae211
-	dw $00f1
-	db ULTRA_BALL
+MapRoute4SignpostItem1:
+	dwb EVENT_ROUTE_4_HIDDEN_ULTRA_BALL, ULTRA_BALL
 	
-; 0x1ae214
 
-Bird_keeperHankSeenText: ; 0x1ae214
+Bird_keeperHankSeenText:
 	text "I'm raising my"
 	line "#MON. Want to"
 	cont "battle with me?"
 	done
-; 0x1ae241
 
-Bird_keeperHankBeatenText: ; 0x1ae241
+Bird_keeperHankBeatenText:
 	text "Ack! I lost that"
 	line "one…"
 	done
-; 0x1ae258
 
-UnknownText_0x1ae258: ; 0x1ae258
+UnknownText_0x1ae258:
 	text "If you have a"
 	line "specific #MON"
 
@@ -133,9 +72,8 @@
 	para "That's how to do"
 	line "it."
 	done
-; 0x1ae2ce
 
-PicnickerHopeSeenText: ; 0x1ae2ce
+PicnickerHopeSeenText:
 	text "I have a feeling"
 	line "that I can win."
 
@@ -142,15 +80,13 @@
 	para "Let's see if I'm"
 	line "right!"
 	done
-; 0x1ae306
 
-PicnickerHopeBeatenText: ; 0x1ae306
+PicnickerHopeBeatenText:
 	text "Aww, you are too"
 	line "strong."
 	done
-; 0x1ae320
 
-UnknownText_0x1ae320: ; 0x1ae320
+UnknownText_0x1ae320:
 	text "I heard CLEFAIRY"
 	line "appear at MT.MOON."
 
@@ -157,53 +93,47 @@
 	para "But where could"
 	line "they be?"
 	done
-; 0x1ae35e
 
-PicnickerSharonSeenText: ; 0x1ae35e
+PicnickerSharonSeenText:
 	text "Um…"
 	line "I…"
 	done
-; 0x1ae366
 
-PicnickerSharonBeatenText: ; 0x1ae366
+PicnickerSharonBeatenText:
 	text "…"
 	done
-; 0x1ae369
 
-UnknownText_0x1ae369: ; 0x1ae369
+UnknownText_0x1ae369:
 	text "……I'll go train"
 	line "some more…"
 	done
-; 0x1ae384
 
-UnknownText_0x1ae384: ; 0x1ae384
+UnknownText_0x1ae384:
 	text "MT.MOON SQUARE"
 
 	para "Just go up the"
 	line "stairs."
 	done
-; 0x1ae3ab
 
-Route4_MapEventHeader: ; 0x1ae3ab
+Route4_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $5, $2, 2, GROUP_MOUNT_MOON, MAP_MOUNT_MOON
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 7, 3, $0, MapRoute4Signpost0Script
-	signpost 3, 10, $7, MapRoute4SignpostItem1
+	signpost 7, 3, SIGNPOST_READ, MapRoute4Signpost0Script
+	signpost 3, 10, SIGNPOST_ITEM, MapRoute4SignpostItem1
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_YOUNGSTER, 13, 21, $6, $0, 255, 255, $92, 3, TrainerBird_keeperHank, $ffff
-	person_event SPRITE_LASS, 12, 13, $8, $0, 255, 255, $a2, 4, TrainerPicnickerHope, $ffff
-	person_event SPRITE_LASS, 10, 25, $9, $0, 255, 255, $a2, 4, TrainerPicnickerSharon, $ffff
-	person_event SPRITE_POKE_BALL, 7, 30, $1, $0, 255, 255, $1, 0, ItemFragment_0x1ae20f, $0787
-; 0x1ae3f4
+	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
--- a/maps/Route40.asm
+++ b/maps/Route40.asm
@@ -1,8 +1,8 @@
-Route40_MapScriptHeader: ; 0x1a6160
-	; trigger count
+Route40_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -10,8 +10,8 @@
 	dbw 2, MonicaCallback
 
 MonicaCallback:
-	clearevent $07cf
-	checkcode $b
+	clearevent EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
+	checkcode VAR_WEEKDAY
 	if_equal MONDAY, .MonicaAppears
 	disappear $a
 	return
@@ -20,27 +20,10 @@
 	appear $a
 	return
 
-TrainerSwimmerfElaine: ; 0x1a6174
-	; bit/flag number
-	dw $3e8
+TrainerSwimmerfElaine:
+	trainer EVENT_BEAT_SWIMMERF_ELAINE, SWIMMERF, ELAINE, SwimmerfElaineSeenText, SwimmerfElaineBeatenText, $0000, SwimmerfElaineScript
 
-	; trainer group && trainer id
-	db SWIMMERF, ELAINE
-
-	; text when seen
-	dw SwimmerfElaineSeenText
-
-	; text when trainer beaten
-	dw SwimmerfElaineBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SwimmerfElaineScript
-; 0x1a6180
-
-SwimmerfElaineScript: ; 0x1a6180
+SwimmerfElaineScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a637b
@@ -47,29 +30,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a6188
 
-TrainerSwimmerfPaula: ; 0x1a6188
-	; bit/flag number
-	dw $3e9
+TrainerSwimmerfPaula:
+	trainer EVENT_BEAT_SWIMMERF_PAULA, SWIMMERF, PAULA, SwimmerfPaulaSeenText, SwimmerfPaulaBeatenText, $0000, SwimmerfPaulaScript
 
-	; trainer group && trainer id
-	db SWIMMERF, PAULA
-
-	; text when seen
-	dw SwimmerfPaulaSeenText
-
-	; text when trainer beaten
-	dw SwimmerfPaulaBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SwimmerfPaulaScript
-; 0x1a6194
-
-SwimmerfPaulaScript: ; 0x1a6194
+SwimmerfPaulaScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a63f5
@@ -76,29 +41,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a619c
 
-TrainerSwimmermSimon: ; 0x1a619c
-	; bit/flag number
-	dw $595
+TrainerSwimmermSimon:
+	trainer EVENT_BEAT_SWIMMERM_SIMON, SWIMMERM, SIMON, SwimmermSimonSeenText, SwimmermSimonBeatenText, $0000, SwimmermSimonScript
 
-	; trainer group && trainer id
-	db SWIMMERM, SIMON
-
-	; text when seen
-	dw SwimmermSimonSeenText
-
-	; text when trainer beaten
-	dw SwimmermSimonBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SwimmermSimonScript
-; 0x1a61a8
-
-SwimmermSimonScript: ; 0x1a61a8
+SwimmermSimonScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a6282
@@ -105,29 +52,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a61b0
 
-TrainerSwimmermRandall: ; 0x1a61b0
-	; bit/flag number
-	dw $596
+TrainerSwimmermRandall:
+	trainer EVENT_BEAT_SWIMMERM_RANDALL, SWIMMERM, RANDALL, SwimmermRandallSeenText, SwimmermRandallBeatenText, $0000, SwimmermRandallScript
 
-	; trainer group && trainer id
-	db SWIMMERM, RANDALL
-
-	; text when seen
-	dw SwimmermRandallSeenText
-
-	; text when trainer beaten
-	dw SwimmermRandallBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SwimmermRandallScript
-; 0x1a61bc
-
-SwimmermRandallScript: ; 0x1a61bc
+SwimmermRandallScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a62fa
@@ -134,29 +63,23 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a61c4
 
-LassScript_0x1a61c4: ; 0x1a61c4
+LassScript_0x1a61c4:
 	jumptextfaceplayer UnknownText_0x1a6429
-; 0x1a61c7
 
-PokefanMScript_0x1a61c7: ; 0x1a61c7
+PokefanMScript_0x1a61c7:
 	special Function10630f
 	iftrue UnknownScript_0x1a61d0
 	jumptextfaceplayer UnknownText_0x1a646a
-; 0x1a61d0
 
-UnknownScript_0x1a61d0: ; 0x1a61d0
+UnknownScript_0x1a61d0:
 	jumptextfaceplayer UnknownText_0x1a649b
-; 0x1a61d3
 
-LassScript_0x1a61d3: ; 0x1a61d3
+LassScript_0x1a61d3:
 	jumptextfaceplayer UnknownText_0x1a64e6
-; 0x1a61d6
 
-StandingYoungsterScript_0x1a61d6: ; 0x1a61d6
+StandingYoungsterScript_0x1a61d6:
 	jumptextfaceplayer UnknownText_0x1a6564
-; 0x1a61d9
 
 MonicaScript:
 	faceplayer
@@ -163,7 +86,7 @@
 	loadfont
 	checkevent EVENT_GOT_SHARP_BEAK_FROM_MONICA
 	iftrue MonicaMondayScript
-	checkcode $b
+	checkcode VAR_WEEKDAY
 	if_not_equal MONDAY, MonicaNotMondayScript
 	checkevent EVENT_MET_MONICA_OF_MONDAY
 	iftrue .MetMonica
@@ -194,20 +117,16 @@
 	loadmovesprites
 	end
 
-MapRoute40Signpost0Script: ; 0x1a6213
+MapRoute40Signpost0Script:
 	jumptext UnknownText_0x1a6767
-; 0x1a6216
 
-Route40Rock: ; 0x1a6216
+Route40Rock:
 	jumpstd smashrock
-; 0x1a6219
 
-MapRoute40SignpostItem1: ; 0x1a6219
-	dw $00ab
-	db HYPER_POTION
-; 0x1a621c
+MapRoute40SignpostItem1:
+	dwb EVENT_ROUTE_40_HIDDEN_HYPER_POTION, HYPER_POTION
 
-MovementData_0x1a621c: ; 0x1a621c
+MovementData_0x1a621c:
 	step_right
 	step_up
 	step_up
@@ -216,9 +135,8 @@
 	step_up
 	step_up
 	step_end
-; 0x1a6224
 
-MovementData_0x1a6224: ; 0x1a6224
+MovementData_0x1a6224:
 	step_up
 	step_up
 	step_up
@@ -225,17 +143,15 @@
 	step_up
 	step_up
 	step_end
-; 0x1a622a
 
-MovementData_0x1a622a: ; 0x1a622a
+MovementData_0x1a622a:
 	step_up
 	step_up
 	step_up
 	step_up
 	step_end
-; 0x1a622f
 
-SwimmermSimonSeenText: ; 0x1a622f
+SwimmermSimonSeenText:
 	text "You have to warm"
 	line "up before going"
 	cont "into the water."
@@ -242,21 +158,18 @@
 
 	para "That's basic."
 	done
-; 0x1a626e
 
-SwimmermSimonBeatenText: ; 0x1a626e
+SwimmermSimonBeatenText:
 	text "OK! Uncle! I give!"
 	done
-; 0x1a6282
 
-UnknownText_0x1a6282: ; 0x1a6282
+UnknownText_0x1a6282:
 	text "CIANWOOD CITY is"
 	line "a good distance"
 	cont "away from here."
 	done
-; 0x1a62b4
 
-SwimmermRandallSeenText: ; 0x1a62b4
+SwimmermRandallSeenText:
 	text "Hey, you're young"
 	line "and fit!"
 
@@ -263,21 +176,18 @@
 	para "Don't ride your"
 	line "#MON! Swim!"
 	done
-; 0x1a62ea
 
-SwimmermRandallBeatenText: ; 0x1a62ea
+SwimmermRandallBeatenText:
 	text "Uh-oh. I lost…"
 	done
-; 0x1a62fa
 
-UnknownText_0x1a62fa: ; 0x1a62fa
+UnknownText_0x1a62fa:
 	text "Swimming exercises"
 	line "your entire body."
 	cont "It's healthy."
 	done
-; 0x1a632d
 
-SwimmerfElaineSeenText: ; 0x1a632d
+SwimmerfElaineSeenText:
 	text "Are you going to"
 	line "CIANWOOD?"
 
@@ -284,21 +194,18 @@
 	para "How about a quick"
 	line "battle first?"
 	done
-; 0x1a6369
 
-SwimmerfElaineBeatenText: ; 0x1a6369
+SwimmerfElaineBeatenText:
 	text "I lost that one!"
 	done
-; 0x1a637b
 
-UnknownText_0x1a637b: ; 0x1a637b
+UnknownText_0x1a637b:
 	text "I'd say I'm a bet-"
 	line "ter swimmer than"
 	cont "you. Yeah!"
 	done
-; 0x1a63a9
 
-SwimmerfPaulaSeenText: ; 0x1a63a9
+SwimmerfPaulaSeenText:
 	text "No inner tube for"
 	line "me."
 
@@ -305,22 +212,19 @@
 	para "I'm hanging on to"
 	line "a sea #MON!"
 	done
-; 0x1a63dd
 
-SwimmerfPaulaBeatenText: ; 0x1a63dd
+SwimmerfPaulaBeatenText:
 	text "Ooh, I'm feeling"
 	line "dizzy!"
 	done
-; 0x1a63f5
 
-UnknownText_0x1a63f5: ; 0x1a63f5
+UnknownText_0x1a63f5:
 	text "While I float like"
 	line "this, the waves"
 	cont "carry me along."
 	done
-; 0x1a6429
 
-UnknownText_0x1a6429: ; 0x1a6429
+UnknownText_0x1a6429:
 	text "Although you can't"
 	line "see it from here,"
 
@@ -327,17 +231,15 @@
 	para "CIANWOOD is across"
 	line "the sea."
 	done
-; 0x1a646a
 
-UnknownText_0x1a646a: ; 0x1a646a
+UnknownText_0x1a646a:
 	text "Hm! There's a big"
 	line "building up ahead!"
 
 	para "What is it?"
 	done
-; 0x1a649b
 
-UnknownText_0x1a649b: ; 0x1a649b
+UnknownText_0x1a649b:
 	text "Hm! Look at all"
 	line "those serious-"
 	cont "looking trainers"
@@ -345,9 +247,8 @@
 
 	para "What? What?"
 	done
-; 0x1a64e6
 
-UnknownText_0x1a64e6: ; 0x1a64e6
+UnknownText_0x1a64e6:
 	text "I came to OLIVINE"
 	line "by ship to see the"
 
@@ -358,9 +259,8 @@
 	line "feels so different"
 	cont "from a big city."
 	done
-; 0x1a6564
 
-UnknownText_0x1a6564: ; 0x1a6564
+UnknownText_0x1a6564:
 	text "Have you gone to"
 	line "the BATTLE TOWER?"
 
@@ -376,7 +276,6 @@
 	para "you shouldn't do"
 	line "badly at all."
 	done
-; 0x1a6606
 
 MeetMonicaText:
 	text "MONICA: Glad to"
@@ -420,41 +319,40 @@
 	cont "Monday. How sad…"
 	done
 
-UnknownText_0x1a6767: ; 0x1a6767
+UnknownText_0x1a6767:
 	text "ROUTE 40"
 
 	para "CIANWOOD CITY -"
 	line "OLIVINE CITY"
 	done
-; 0x1a678e
 
-Route40_MapEventHeader: ; 0x1a678e
+Route40_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $5, $9, 1, GROUP_ROUTE_40_BATTLE_TOWER_GATE, MAP_ROUTE_40_BATTLE_TOWER_GATE
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 10, 14, $0, MapRoute40Signpost0Script
-	signpost 8, 7, $7, MapRoute40SignpostItem1
+	signpost 10, 14, SIGNPOST_READ, MapRoute40Signpost0Script
+	signpost 8, 7, SIGNPOST_ITEM, MapRoute40SignpostItem1
 
-	; people-events
+.PersonEvents:
 	db 12
-	person_event SPRITE_OLIVINE_RIVAL, 19, 18, $9, $0, 255, 255, $82, 4, TrainerSwimmermSimon, $ffff
-	person_event SPRITE_OLIVINE_RIVAL, 34, 22, $8, $0, 255, 255, $82, 5, TrainerSwimmermRandall, $ffff
-	person_event SPRITE_SWIMMER_GIRL, 23, 7, $9, $0, 255, 255, $a2, 4, TrainerSwimmerfElaine, $ffff
-	person_event SPRITE_SWIMMER_GIRL, 29, 14, $1f, $0, 255, 255, $a2, 3, TrainerSwimmerfPaula, $ffff
-	person_event SPRITE_ROCK, 15, 11, $18, $0, 255, 255, $0, 0, Route40Rock, $ffff
-	person_event SPRITE_ROCK, 13, 10, $18, $0, 255, 255, $0, 0, Route40Rock, $ffff
-	person_event SPRITE_ROCK, 12, 11, $18, $0, 255, 255, $0, 0, Route40Rock, $ffff
-	person_event SPRITE_LASS, 17, 15, $6, $0, 255, 255, $0, 0, LassScript_0x1a61c4, $ffff
-	person_event SPRITE_BUENA, 14, 12, $3, $0, 255, 255, $0, 0, MonicaScript, $075e
-	person_event SPRITE_POKEFAN_M, 10, 11, $9, $0, 255, 255, $0, 0, PokefanMScript_0x1a61c7, $ffff
-	person_event SPRITE_LASS, 8, 17, $3, $0, 255, 255, $a0, 0, LassScript_0x1a61d3, $ffff
-	person_event SPRITE_STANDING_YOUNGSTER, 13, 20, $3, $0, 255, 255, $90, 0, StandingYoungsterScript_0x1a61d6, $07cf
+	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
--- a/maps/Route40BattleTowerGate.asm
+++ b/maps/Route40BattleTowerGate.asm
@@ -1,29 +1,25 @@
-Route40BattleTowerGate_MapScriptHeader: ; 0x9f660
-	; trigger count
+Route40BattleTowerGate_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 2, UnknownScript_0x9f665
-; 0x9f665
 
-UnknownScript_0x9f665: ; 0x9f665
-	clearevent $07cf
+UnknownScript_0x9f665:
+	clearevent EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
 	return
-; 0x9f669
 
-RockerScript_0x9f669: ; 0x9f669
+RockerScript_0x9f669:
 	jumptextfaceplayer UnknownText_0x9f716
-; 0x9f66c
 
-TwinScript_0x9f66c: ; 0x9f66c
+TwinScript_0x9f66c:
 	jumptextfaceplayer UnknownText_0x9f7c8
-; 0x9f66f
 
-UnknownText_0x9f66f: ; 0x9f66f
+UnknownText_0x9f66f:
 	text "Did you come to"
 	line "see the BATTLE"
 	cont "TOWER too?"
@@ -31,9 +27,8 @@
 	para "But I guess you"
 	line "can't go in yet."
 	done
-; 0x9f6ba
 
-UnknownText_0x9f6ba: ; 0x9f6ba
+UnknownText_0x9f6ba:
 	text "BATTLE TOWER has"
 	line "opened."
 
@@ -43,9 +38,8 @@
 	para "up a cool line for"
 	line "when I win."
 	done
-; 0x9f716
 
-UnknownText_0x9f716: ; 0x9f716
+UnknownText_0x9f716:
 	text "Are you going to"
 	line "the BATTLE TOWER?"
 
@@ -55,9 +49,8 @@
 	para "whole lot, you can"
 	line "win special gifts."
 	done
-; 0x9f783
 
-UnknownText_0x9f783: ; 0x9f783
+UnknownText_0x9f783:
 	text "I'm going to train"
 	line "my #MON so I'll"
 
@@ -64,9 +57,8 @@
 	para "be all ready for"
 	line "the BATTLE TOWER."
 	done
-; 0x9f7c8
 
-UnknownText_0x9f7c8: ; 0x9f7c8
+UnknownText_0x9f7c8:
 	text "The levels of the"
 	line "#MON I want to"
 
@@ -76,13 +68,12 @@
 	para "I have to go train"
 	line "them now!"
 	done
-; 0x9f81e
 
-Route40BattleTowerGate_MapEventHeader: ; 0x9f81e
+Route40BattleTowerGate_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -89,14 +80,13 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_ROCKER, 7, 7, $3, $0, 255, 255, $a0, 0, RockerScript_0x9f669, $07cf
-	person_event SPRITE_TWIN, 9, 11, $4, $10, 255, 255, $80, 0, TwinScript_0x9f66c, $ffff
-; 0x9f852
+	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
--- a/maps/Route41.asm
+++ b/maps/Route41.asm
@@ -1,32 +1,14 @@
-Route41_MapScriptHeader: ; 0x1a683f
-	; trigger count
+Route41_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1a6841
 
-TrainerSwimmerfKaylee: ; 0x1a6841
-	; bit/flag number
-	dw $3ea
+TrainerSwimmerfKaylee:
+	trainer EVENT_BEAT_SWIMMERF_KAYLEE, SWIMMERF, KAYLEE, SwimmerfKayleeSeenText, SwimmerfKayleeBeatenText, $0000, SwimmerfKayleeScript
 
-	; trainer group && trainer id
-	db SWIMMERF, KAYLEE
-
-	; text when seen
-	dw SwimmerfKayleeSeenText
-
-	; text when trainer beaten
-	dw SwimmerfKayleeBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SwimmerfKayleeScript
-; 0x1a684d
-
-SwimmerfKayleeScript: ; 0x1a684d
+SwimmerfKayleeScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a6c7f
@@ -33,29 +15,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a6855
 
-TrainerSwimmerfSusie: ; 0x1a6855
-	; bit/flag number
-	dw $3eb
+TrainerSwimmerfSusie:
+	trainer EVENT_BEAT_SWIMMERF_SUSIE, SWIMMERF, SUSIE, SwimmerfSusieSeenText, SwimmerfSusieBeatenText, $0000, SwimmerfSusieScript
 
-	; trainer group && trainer id
-	db SWIMMERF, SUSIE
-
-	; text when seen
-	dw SwimmerfSusieSeenText
-
-	; text when trainer beaten
-	dw SwimmerfSusieBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SwimmerfSusieScript
-; 0x1a6861
-
-SwimmerfSusieScript: ; 0x1a6861
+SwimmerfSusieScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a6d11
@@ -62,29 +26,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a6869
 
-TrainerSwimmerfDenise: ; 0x1a6869
-	; bit/flag number
-	dw $3ec
+TrainerSwimmerfDenise:
+	trainer EVENT_BEAT_SWIMMERF_DENISE, SWIMMERF, DENISE, SwimmerfDeniseSeenText, SwimmerfDeniseBeatenText, $0000, SwimmerfDeniseScript
 
-	; trainer group && trainer id
-	db SWIMMERF, DENISE
-
-	; text when seen
-	dw SwimmerfDeniseSeenText
-
-	; text when trainer beaten
-	dw SwimmerfDeniseBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SwimmerfDeniseScript
-; 0x1a6875
-
-SwimmerfDeniseScript: ; 0x1a6875
+SwimmerfDeniseScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a6d79
@@ -91,29 +37,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a687d
 
-TrainerSwimmerfKara: ; 0x1a687d
-	; bit/flag number
-	dw $3ed
+TrainerSwimmerfKara:
+	trainer EVENT_BEAT_SWIMMERF_KARA, SWIMMERF, KARA, SwimmerfKaraSeenText, SwimmerfKaraBeatenText, $0000, SwimmerfKaraScript
 
-	; trainer group && trainer id
-	db SWIMMERF, KARA
-
-	; text when seen
-	dw SwimmerfKaraSeenText
-
-	; text when trainer beaten
-	dw SwimmerfKaraBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SwimmerfKaraScript
-; 0x1a6889
-
-SwimmerfKaraScript: ; 0x1a6889
+SwimmerfKaraScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a6e58
@@ -120,29 +48,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a6891
 
-TrainerSwimmerfWendy: ; 0x1a6891
-	; bit/flag number
-	dw $3ee
+TrainerSwimmerfWendy:
+	trainer EVENT_BEAT_SWIMMERF_WENDY, SWIMMERF, WENDY, SwimmerfWendySeenText, SwimmerfWendyBeatenText, $0000, SwimmerfWendyScript
 
-	; trainer group && trainer id
-	db SWIMMERF, WENDY
-
-	; text when seen
-	dw SwimmerfWendySeenText
-
-	; text when trainer beaten
-	dw SwimmerfWendyBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SwimmerfWendyScript
-; 0x1a689d
-
-SwimmerfWendyScript: ; 0x1a689d
+SwimmerfWendyScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a6ec2
@@ -149,29 +59,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a68a5
 
-TrainerSwimmermCharlie: ; 0x1a68a5
-	; bit/flag number
-	dw $597
+TrainerSwimmermCharlie:
+	trainer EVENT_BEAT_SWIMMERM_CHARLIE, SWIMMERM, CHARLIE, SwimmermCharlieSeenText, SwimmermCharlieBeatenText, $0000, SwimmermCharlieScript
 
-	; trainer group && trainer id
-	db SWIMMERM, CHARLIE
-
-	; text when seen
-	dw SwimmermCharlieSeenText
-
-	; text when trainer beaten
-	dw SwimmermCharlieBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SwimmermCharlieScript
-; 0x1a68b1
-
-SwimmermCharlieScript: ; 0x1a68b1
+SwimmermCharlieScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a696e
@@ -178,29 +70,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a68b9
 
-TrainerSwimmermGeorge: ; 0x1a68b9
-	; bit/flag number
-	dw $598
+TrainerSwimmermGeorge:
+	trainer EVENT_BEAT_SWIMMERM_GEORGE, SWIMMERM, GEORGE, SwimmermGeorgeSeenText, SwimmermGeorgeBeatenText, $0000, SwimmermGeorgeScript
 
-	; trainer group && trainer id
-	db SWIMMERM, GEORGE
-
-	; text when seen
-	dw SwimmermGeorgeSeenText
-
-	; text when trainer beaten
-	dw SwimmermGeorgeBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SwimmermGeorgeScript
-; 0x1a68c5
-
-SwimmermGeorgeScript: ; 0x1a68c5
+SwimmermGeorgeScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a69d4
@@ -207,29 +81,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a68cd
 
-TrainerSwimmermBerke: ; 0x1a68cd
-	; bit/flag number
-	dw $599
+TrainerSwimmermBerke:
+	trainer EVENT_BEAT_SWIMMERM_BERKE, SWIMMERM, BERKE, SwimmermBerkeSeenText, SwimmermBerkeBeatenText, $0000, SwimmermBerkeScript
 
-	; trainer group && trainer id
-	db SWIMMERM, BERKE
-
-	; text when seen
-	dw SwimmermBerkeSeenText
-
-	; text when trainer beaten
-	dw SwimmermBerkeBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SwimmermBerkeScript
-; 0x1a68d9
-
-SwimmermBerkeScript: ; 0x1a68d9
+SwimmermBerkeScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a6aa4
@@ -236,29 +92,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a68e1
 
-TrainerSwimmermKirk: ; 0x1a68e1
-	; bit/flag number
-	dw $59a
+TrainerSwimmermKirk:
+	trainer EVENT_BEAT_SWIMMERM_KIRK, SWIMMERM, KIRK, SwimmermKirkSeenText, SwimmermKirkBeatenText, $0000, SwimmermKirkScript
 
-	; trainer group && trainer id
-	db SWIMMERM, KIRK
-
-	; text when seen
-	dw SwimmermKirkSeenText
-
-	; text when trainer beaten
-	dw SwimmermKirkBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SwimmermKirkScript
-; 0x1a68ed
-
-SwimmermKirkScript: ; 0x1a68ed
+SwimmermKirkScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a6b6c
@@ -265,29 +103,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a68f5
 
-TrainerSwimmermMathew: ; 0x1a68f5
-	; bit/flag number
-	dw $59b
+TrainerSwimmermMathew:
+	trainer EVENT_BEAT_SWIMMERM_MATHEW, SWIMMERM, MATHEW, SwimmermMathewSeenText, SwimmermMathewBeatenText, $0000, SwimmermMathewScript
 
-	; trainer group && trainer id
-	db SWIMMERM, MATHEW
-
-	; text when seen
-	dw SwimmermMathewSeenText
-
-	; text when trainer beaten
-	dw SwimmermMathewBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SwimmermMathewScript
-; 0x1a6901
-
-SwimmermMathewScript: ; 0x1a6901
+SwimmermMathewScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a6bed
@@ -294,18 +114,15 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a6909
 
 Route41Rock:
 ; unused
 	jumpstd smashrock
 
-MapRoute41SignpostItem0: ; 0x1a690c
-	dw $00ac
-	db MAX_ETHER
-; 0x1a690f
+MapRoute41SignpostItem0:
+	dwb EVENT_ROUTE_41_HIDDEN_MAX_ETHER, MAX_ETHER
 
-SwimmermCharlieSeenText: ; 0x1a690f
+SwimmermCharlieSeenText:
 	text "The water's warm"
 	line "here. I'm loose"
 	cont "and limber."
@@ -313,34 +130,29 @@
 	para "Sure, I'll take"
 	line "you on!"
 	done
-; 0x1a6952
 
-SwimmermCharlieBeatenText: ; 0x1a6952
+SwimmermCharlieBeatenText:
 	text "Yikes! I've got"
 	line "prune skin!"
 	done
-; 0x1a696e
 
-UnknownText_0x1a696e: ; 0x1a696e
+UnknownText_0x1a696e:
 	text "Isn't it relaxing"
 	line "just floating like"
 	cont "this?"
 	done
-; 0x1a6999
 
-SwimmermGeorgeSeenText: ; 0x1a6999
+SwimmermGeorgeSeenText:
 	text "I'm a bit tired."
 	line "If I win, lend me"
 	cont "your #MON."
 	done
-; 0x1a69c7
 
-SwimmermGeorgeBeatenText: ; 0x1a69c7
+SwimmermGeorgeBeatenText:
 	text "Pant, pant…"
 	done
-; 0x1a69d4
 
-UnknownText_0x1a69d4: ; 0x1a69d4
+UnknownText_0x1a69d4:
 	text "It's so far to"
 	line "CIANWOOD."
 
@@ -350,9 +162,8 @@
 
 	para "What should I do?"
 	done
-; 0x1a6a2e
 
-SwimmermBerkeSeenText: ; 0x1a6a2e
+SwimmermBerkeSeenText:
 	text "See those islands"
 	line "that are blocked"
 	cont "by whirlpools?"
@@ -360,15 +171,13 @@
 	para "There just has to"
 	line "be a secret!"
 	done
-; 0x1a6a80
 
-SwimmermBerkeBeatenText: ; 0x1a6a80
+SwimmermBerkeBeatenText:
 	text "What's the secret"
 	line "to your strength?"
 	done
-; 0x1a6aa4
 
-UnknownText_0x1a6aa4: ; 0x1a6aa4
+UnknownText_0x1a6aa4:
 	text "It was a dark and"
 	line "stormy night…"
 
@@ -380,9 +189,8 @@
 	line "feathers from its"
 	cont "silver wings."
 	done
-; 0x1a6b26
 
-SwimmermKirkSeenText: ; 0x1a6b26
+SwimmermKirkSeenText:
 	text "The waves are wild"
 	line "here."
 
@@ -389,34 +197,29 @@
 	para "They tire you out"
 	line "while you swim."
 	done
-; 0x1a6b62
 
-SwimmermKirkBeatenText: ; 0x1a6b62
+SwimmermKirkBeatenText:
 	text "I'm beat!"
 	done
-; 0x1a6b6c
 
-UnknownText_0x1a6b6c: ; 0x1a6b6c
+UnknownText_0x1a6b6c:
 	text "The currents keep"
 	line "me from reaching"
 	cont "that island."
 	done
-; 0x1a6b9d
 
-SwimmermMathewSeenText: ; 0x1a6b9d
+SwimmermMathewSeenText:
 	text "Are you seeking"
 	line "the secrets of"
 	cont "WHIRL ISLANDS?"
 	done
-; 0x1a6bcc
 
-SwimmermMathewBeatenText: ; 0x1a6bcc
+SwimmermMathewBeatenText:
 	text "Ooh, you've got"
 	line "great endurance!"
 	done
-; 0x1a6bed
 
-UnknownText_0x1a6bed: ; 0x1a6bed
+UnknownText_0x1a6bed:
 	text "A secret about"
 	line "WHIRL ISLANDS…"
 
@@ -423,9 +226,8 @@
 	para "It's pitch-black"
 	line "inside!"
 	done
-; 0x1a6c24
 
-SwimmerfKayleeSeenText: ; 0x1a6c24
+SwimmerfKayleeSeenText:
 	text "I'm on my way to"
 	line "WHIRL ISLANDS."
 
@@ -432,15 +234,13 @@
 	para "I'm going explor-"
 	line "ing with friends."
 	done
-; 0x1a6c67
 
-SwimmerfKayleeBeatenText: ; 0x1a6c67
+SwimmerfKayleeBeatenText:
 	text "Is that how you do"
 	line "it?"
 	done
-; 0x1a6c7f
 
-UnknownText_0x1a6c7f: ; 0x1a6c7f
+UnknownText_0x1a6c7f:
 	text "There's supposed"
 	line "to be a big #-"
 	cont "MON deep beneath"
@@ -449,40 +249,34 @@
 	para "I wonder what it"
 	line "could be?"
 	done
-; 0x1a6cda
 
-SwimmerfSusieSeenText: ; 0x1a6cda
+SwimmerfSusieSeenText:
 	text "You look so ele-"
 	line "gant, riding your"
 	cont "#MON."
 	done
-; 0x1a6d04
 
-SwimmerfSusieBeatenText: ; 0x1a6d04
+SwimmerfSusieBeatenText:
 	text "I'm crushed…"
 	done
-; 0x1a6d11
 
-UnknownText_0x1a6d11: ; 0x1a6d11
+UnknownText_0x1a6d11:
 	text "Wasn't there a hit"
 	line "song about a boy"
 	cont "riding a LAPRAS?"
 	done
-; 0x1a6d46
 
-SwimmerfDeniseSeenText: ; 0x1a6d46
+SwimmerfDeniseSeenText:
 	text "The weather is so"
 	line "beautiful, I'm in"
 	cont "a daze!"
 	done
-; 0x1a6d72
 
-SwimmerfDeniseBeatenText: ; 0x1a6d72
+SwimmerfDeniseBeatenText:
 	text "Ohhh!"
 	done
-; 0x1a6d79
 
-UnknownText_0x1a6d79: ; 0x1a6d79
+UnknownText_0x1a6d79:
 	text "A sunburn is the"
 	line "worst for skin."
 
@@ -492,9 +286,8 @@
 	para "I won't pollute"
 	line "the water."
 	done
-; 0x1a6dd0
 
-SwimmerfKaraSeenText: ; 0x1a6dd0
+SwimmerfKaraSeenText:
 	text "If you need to"
 	line "rest, just tread"
 	cont "water."
@@ -505,34 +298,29 @@
 	para "can keep on going"
 	line "strong."
 	done
-; 0x1a6e33
 
-SwimmerfKaraBeatenText: ; 0x1a6e33
+SwimmerfKaraBeatenText:
 	text "Oh! You have more"
 	line "energy than I do."
 	done
-; 0x1a6e58
 
-UnknownText_0x1a6e58: ; 0x1a6e58
+UnknownText_0x1a6e58:
 	text "I heard roars from"
 	line "deep inside the"
 	cont "ISLANDS."
 	done
-; 0x1a6e85
 
-SwimmerfWendySeenText: ; 0x1a6e85
+SwimmerfWendySeenText:
 	text "At night, STARYU"
 	line "gather near the"
 	cont "water's surface."
 	done
-; 0x1a6eb7
 
-SwimmerfWendyBeatenText: ; 0x1a6eb7
+SwimmerfWendyBeatenText:
 	text "Oh, dear…"
 	done
-; 0x1a6ec2
 
-UnknownText_0x1a6ec2: ; 0x1a6ec2
+UnknownText_0x1a6ec2:
 	text "The clusters of"
 	line "STARYU light up"
 	cont "at the same time."
@@ -540,13 +328,12 @@
 	para "It's so beautiful,"
 	line "it's scary."
 	done
-; 0x1a6f12
 
-Route41_MapEventHeader: ; 0x1a6f12
+Route41_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -553,23 +340,22 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 35, 9, $7, MapRoute41SignpostItem0
+	signpost 35, 9, SIGNPOST_ITEM, MapRoute41SignpostItem0
 
-	; people-events
+.PersonEvents:
 	db 10
-	person_event SPRITE_OLIVINE_RIVAL, 10, 36, $a, $0, 255, 255, $82, 3, TrainerSwimmermCharlie, $ffff
-	person_event SPRITE_OLIVINE_RIVAL, 12, 50, $a, $0, 255, 255, $82, 3, TrainerSwimmermGeorge, $ffff
-	person_event SPRITE_OLIVINE_RIVAL, 30, 24, $1e, $0, 255, 255, $82, 3, TrainerSwimmermBerke, $ffff
-	person_event SPRITE_OLIVINE_RIVAL, 34, 36, $1f, $0, 255, 255, $82, 3, TrainerSwimmermKirk, $ffff
-	person_event SPRITE_OLIVINE_RIVAL, 50, 23, $1e, $0, 255, 255, $82, 3, TrainerSwimmermMathew, $ffff
-	person_event SPRITE_SWIMMER_GIRL, 8, 21, $a, $0, 255, 255, $a2, 3, TrainerSwimmerfKaylee, $ffff
-	person_event SPRITE_SWIMMER_GIRL, 23, 27, $7, $0, 255, 255, $a2, 3, TrainerSwimmerfSusie, $ffff
-	person_event SPRITE_SWIMMER_GIRL, 38, 31, $8, $0, 255, 255, $a2, 3, TrainerSwimmerfDenise, $ffff
-	person_event SPRITE_SWIMMER_GIRL, 32, 48, $9, $0, 255, 255, $a2, 4, TrainerSwimmerfKara, $ffff
-	person_event SPRITE_SWIMMER_GIRL, 54, 13, $a, $0, 255, 255, $a2, 2, TrainerSwimmerfWendy, $ffff
-; 0x1a6fb3
+	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
--- a/maps/Route42.asm
+++ b/maps/Route42.asm
@@ -1,5 +1,5 @@
-Route42_MapScriptHeader: ; 0x1a920c
-	; trigger count
+Route42_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,20 +6,17 @@
 	dw UnknownScript_0x1a9216, $0000
 	dw UnknownScript_0x1a9217, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1a9216
 
-UnknownScript_0x1a9216: ; 0x1a9216
+UnknownScript_0x1a9216:
 	end
-; 0x1a9217
 
-UnknownScript_0x1a9217: ; 0x1a9217
+UnknownScript_0x1a9217:
 	end
-; 0x1a9218
 
-UnknownScript_0x1a9218: ; 0x1a9218
-	showemote $0, $0, 15
+UnknownScript_0x1a9218:
+	showemote EMOTE_SHOCK, $0, 15
 	pause 15
 	playsound SFX_WARP_FROM
 	applymovement $a, MovementData_0x1a9356
@@ -29,189 +26,137 @@
 	clearevent EVENT_SAW_SUICUNE_ON_ROUTE_36
 	domaptrigger GROUP_ROUTE_36, MAP_ROUTE_36, $1
 	end
-; 0x1a9233
 
-TrainerFisherTully1: ; 0x1a9233
-	; bit/flag number
-	dw $454
+TrainerFisherTully1:
+	trainer EVENT_BEAT_FISHER_TULLY, FISHER, TULLY1, FisherTully1SeenText, FisherTully1BeatenText, $0000, FisherTully1Script
 
-	; trainer group && trainer id
-	db FISHER, TULLY1
-
-	; text when seen
-	dw FisherTully1SeenText
-
-	; text when trainer beaten
-	dw FisherTully1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw FisherTully1Script
-; 0x1a923f
-
-FisherTully1Script: ; 0x1a923f
-	writecode $17, $1d
+FisherTully1Script:
+	writecode VAR_CALLERID, PHONE_FISHER_TULLY
 	talkaftercancel
 	loadfont
-	checkflag $0076
+	checkflag ENGINE_TULLY
 	iftrue UnknownScript_0x1a927f
-	checkflag $0084
+	checkflag ENGINE_TULLY_HAS_WATER_STONE
 	iftrue UnknownScript_0x1a92dc
-	checkcellnum $1d
+	checkcellnum PHONE_FISHER_TULLY
 	iftrue UnknownScript_0x1a92fd
-	checkevent $028f
+	checkevent EVENT_TULLY_ASKED_FOR_PHONE_NUMBER
 	iftrue UnknownScript_0x1a9268
 	writetext UnknownText_0x1a93ab
 	keeptextopen
-	setevent $028f
+	setevent EVENT_TULLY_ASKED_FOR_PHONE_NUMBER
 	scall UnknownScript_0x1a92f1
 	jump UnknownScript_0x1a926b
-; 0x1a9268
 
-UnknownScript_0x1a9268: ; 0x1a9268
+UnknownScript_0x1a9268:
 	scall UnknownScript_0x1a92f5
-UnknownScript_0x1a926b: ; 0x1a926b
-	askforphonenumber $1d
+UnknownScript_0x1a926b:
+	askforphonenumber PHONE_FISHER_TULLY
 	if_equal $1, UnknownScript_0x1a9305
 	if_equal $2, UnknownScript_0x1a9301
 	trainertotext FISHER, TULLY1, $0
 	scall UnknownScript_0x1a92f9
 	jump UnknownScript_0x1a92fd
-; 0x1a927f
 
-UnknownScript_0x1a927f: ; 0x1a927f
+UnknownScript_0x1a927f:
 	scall UnknownScript_0x1a9309
 	winlosstext FisherTully1BeatenText, $0000
-	copybytetovar wda06
-	if_equal $3, UnknownScript_0x1a929a
-	if_equal $2, UnknownScript_0x1a92a0
-	if_equal $1, UnknownScript_0x1a92a6
-	if_equal $0, UnknownScript_0x1a92ac
-UnknownScript_0x1a929a: ; 0x1a929a
+	copybytetovar wTullyFightCount
+	if_equal 3, .Fight3
+	if_equal 2, .Fight2
+	if_equal 1, .Fight1
+	if_equal 0, .LoadFight0
+.Fight3
 	checkevent EVENT_RESTORED_POWER_TO_KANTO
-	iftrue UnknownScript_0x1a92d3
-UnknownScript_0x1a92a0: ; 0x1a92a0
+	iftrue .LoadFight3
+.Fight2
 	checkevent EVENT_BEAT_ELITE_FOUR
-	iftrue UnknownScript_0x1a92c6
-UnknownScript_0x1a92a6: ; 0x1a92a6
+	iftrue .LoadFight2
+.Fight1
 	checkevent EVENT_CLEARED_ROCKET_HIDEOUT
-	iftrue UnknownScript_0x1a92b9
-UnknownScript_0x1a92ac: ; 0x1a92ac
+	iftrue .LoadFight1
+.LoadFight0
 	loadtrainer FISHER, TULLY1
 	startbattle
 	returnafterbattle
-	loadvar wda06, $1
-	clearflag $0076
+	loadvar wTullyFightCount, 1
+	clearflag ENGINE_TULLY
 	end
-; 0x1a92b9
 
-UnknownScript_0x1a92b9: ; 0x1a92b9
+.LoadFight1
 	loadtrainer FISHER, TULLY2
 	startbattle
 	returnafterbattle
-	loadvar wda06, $2
-	clearflag $0076
+	loadvar wTullyFightCount, 2
+	clearflag ENGINE_TULLY
 	end
-; 0x1a92c6
 
-UnknownScript_0x1a92c6: ; 0x1a92c6
+.LoadFight2
 	loadtrainer FISHER, TULLY3
 	startbattle
 	returnafterbattle
-	loadvar wda06, $3
-	clearflag $0076
+	loadvar wTullyFightCount, 3
+	clearflag ENGINE_TULLY
 	end
-; 0x1a92d3
 
-UnknownScript_0x1a92d3: ; 0x1a92d3
+.LoadFight3
 	loadtrainer FISHER, TULLY4
 	startbattle
 	returnafterbattle
-	clearflag $0076
+	clearflag ENGINE_TULLY
 	end
-; 0x1a92dc
 
-UnknownScript_0x1a92dc: ; 0x1a92dc
+UnknownScript_0x1a92dc:
 	scall UnknownScript_0x1a930d
 	verbosegiveitem WATER_STONE, 1
 	iffalse UnknownScript_0x1a92ee
-	clearflag $0084
-	setevent $0103
+	clearflag ENGINE_TULLY_HAS_WATER_STONE
+	setevent EVENT_TULLY_GAVE_WATER_STONE
 	jump UnknownScript_0x1a92fd
-; 0x1a92ee
 
-UnknownScript_0x1a92ee: ; 0x1a92ee
+UnknownScript_0x1a92ee:
 	jump UnknownScript_0x1a9311
-; 0x1a92f1
 
-UnknownScript_0x1a92f1: ; 0x1a92f1
+UnknownScript_0x1a92f1:
 	jumpstd asknumber1m
 	end
-; 0x1a92f5
 
-UnknownScript_0x1a92f5: ; 0x1a92f5
+UnknownScript_0x1a92f5:
 	jumpstd asknumber2m
 	end
-; 0x1a92f9
 
-UnknownScript_0x1a92f9: ; 0x1a92f9
+UnknownScript_0x1a92f9:
 	jumpstd registerednumberm
 	end
-; 0x1a92fd
 
-UnknownScript_0x1a92fd: ; 0x1a92fd
+UnknownScript_0x1a92fd:
 	jumpstd numberacceptedm
 	end
-; 0x1a9301
 
-UnknownScript_0x1a9301: ; 0x1a9301
+UnknownScript_0x1a9301:
 	jumpstd numberdeclinedm
 	end
-; 0x1a9305
 
-UnknownScript_0x1a9305: ; 0x1a9305
+UnknownScript_0x1a9305:
 	jumpstd phonefullm
 	end
-; 0x1a9309
 
-UnknownScript_0x1a9309: ; 0x1a9309
+UnknownScript_0x1a9309:
 	jumpstd rematchm
 	end
-; 0x1a930d
 
-UnknownScript_0x1a930d: ; 0x1a930d
+UnknownScript_0x1a930d:
 	jumpstd giftm
 	end
-; 0x1a9311
 
-UnknownScript_0x1a9311: ; 0x1a9311
+UnknownScript_0x1a9311:
 	jumpstd packfullm
 	end
-; 0x1a9315
 
-TrainerPokemaniacShane: ; 0x1a9315
-	; bit/flag number
-	dw $4e7
+TrainerPokemaniacShane:
+	trainer EVENT_BEAT_POKEMANIAC_SHANE, POKEMANIAC, SHANE, PokemaniacShaneSeenText, PokemaniacShaneBeatenText, $0000, PokemaniacShaneScript
 
-	; trainer group && trainer id
-	db POKEMANIAC, SHANE
-
-	; text when seen
-	dw PokemaniacShaneSeenText
-
-	; text when trainer beaten
-	dw PokemaniacShaneBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PokemaniacShaneScript
-; 0x1a9321
-
-PokemaniacShaneScript: ; 0x1a9321
+PokemaniacShaneScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a94d6
@@ -218,29 +163,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a9329
 
-TrainerHikerBenjamin: ; 0x1a9329
-	; bit/flag number
-	dw $529
+TrainerHikerBenjamin:
+	trainer EVENT_BEAT_HIKER_BENJAMIN, HIKER, BENJAMIN, HikerBenjaminSeenText, HikerBenjaminBeatenText, $0000, HikerBenjaminScript
 
-	; trainer group && trainer id
-	db HIKER, BENJAMIN
-
-	; text when seen
-	dw HikerBenjaminSeenText
-
-	; text when trainer beaten
-	dw HikerBenjaminBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw HikerBenjaminScript
-; 0x1a9335
-
-HikerBenjaminScript: ; 0x1a9335
+HikerBenjaminScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a943f
@@ -247,51 +174,39 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a933d
 
-MapRoute42Signpost0Script: ; 0x1a933d
+MapRoute42Signpost0Script:
 	jumptext UnknownText_0x1a9537
-; 0x1a9340
 
-MapRoute42Signpost1Script: ; 0x1a9340
+MapRoute42Signpost1Script:
 	jumptext UnknownText_0x1a955f
-; 0x1a9343
 
-MapRoute42Signpost2Script: ; 0x1a9343
+MapRoute42Signpost2Script:
 	jumptext UnknownText_0x1a9580
-; 0x1a9346
 
-MapRoute42Signpost3Script: ; 0x1a9346
+MapRoute42Signpost3Script:
 	jumptext UnknownText_0x1a95a1
-; 0x1a9349
 
-ItemFragment_0x1a9349: ; 0x1a9349
+ItemFragment_0x1a9349:
 	db ULTRA_BALL, 1
-; 0x1a934b
 
-ItemFragment_0x1a934b: ; 0x1a934b
+ItemFragment_0x1a934b:
 	db SUPER_POTION, 1
-; 0x1a934d
 
-FruitTreeScript_0x1a934d: ; 0x1a934d
+FruitTreeScript_0x1a934d:
 	fruittree $15
-; 0x1a934f
 
-FruitTreeScript_0x1a934f: ; 0x1a934f
+FruitTreeScript_0x1a934f:
 	fruittree $16
-; 0x1a9351
 
-FruitTreeScript_0x1a9351: ; 0x1a9351
+FruitTreeScript_0x1a9351:
 	fruittree $17
-; 0x1a9353
 
-MapRoute42SignpostItem4: ; 0x1a9353
-	dw $00ad
-	db MAX_POTION
+MapRoute42SignpostItem4:
+	dwb EVENT_ROUTE_42_HIDDEN_MAX_POTION, MAX_POTION
 	
-; 0x1a9356
 
-MovementData_0x1a9356: ; 0x1a9356
+MovementData_0x1a9356:
 	db $39 ; movement
 	fast_jump_step_up
 	fast_jump_step_up
@@ -301,22 +216,19 @@
 	fast_jump_step_right
 	db $38 ; movement
 	step_end
-; 0x1a935f
 
-FisherTully1SeenText: ; 0x1a935f
+FisherTully1SeenText:
 	text "Let me demonstrate"
 	line "the power of the"
 	cont "#MON I caught!"
 	done
-; 0x1a9393
 
-FisherTully1BeatenText: ; 0x1a9393
+FisherTully1BeatenText:
 	text "What? That's not"
 	line "right."
 	done
-; 0x1a93ab
 
-UnknownText_0x1a93ab: ; 0x1a93ab
+UnknownText_0x1a93ab:
 	text "I want to become"
 	line "the trainer CHAMP"
 
@@ -326,21 +238,18 @@
 	para "That's the best"
 	line "part of fishing!"
 	done
-; 0x1a9408
 
-HikerBenjaminSeenText: ; 0x1a9408
+HikerBenjaminSeenText:
 	text "Ah, it's good to"
 	line "be outside!"
 	cont "I feel so free!"
 	done
-; 0x1a9435
 
-HikerBenjaminBeatenText: ; 0x1a9435
+HikerBenjaminBeatenText:
 	text "Gahahah!"
 	done
-; 0x1a943f
 
-UnknownText_0x1a943f: ; 0x1a943f
+UnknownText_0x1a943f:
 	text "Losing feels in-"
 	line "significant if you"
 
@@ -347,9 +256,8 @@
 	para "look up at the big"
 	line "sky!"
 	done
-; 0x1a947c
 
-PokemaniacShaneSeenText: ; 0x1a947c
+PokemaniacShaneSeenText:
 	text "HEY!"
 
 	para "This is my secret"
@@ -356,15 +264,13 @@
 	line "place! Get lost,"
 	cont "you outsider!"
 	done
-; 0x1a94b3
 
-PokemaniacShaneBeatenText: ; 0x1a94b3
+PokemaniacShaneBeatenText:
 	text "I should have used"
 	line "my MOON STONE…"
 	done
-; 0x1a94d6
 
-UnknownText_0x1a94d6: ; 0x1a94d6
+UnknownText_0x1a94d6:
 	text "You're working on"
 	line "a #DEX?"
 
@@ -375,45 +281,40 @@
 	para "May I please see"
 	line "it. Please?"
 	done
-; 0x1a9537
 
-UnknownText_0x1a9537: ; 0x1a9537
+UnknownText_0x1a9537:
 	text "ROUTE 42"
 
 	para "ECRUTEAK CITY -"
 	line "MAHOGANY TOWN"
 	done
-; 0x1a955f
 
-UnknownText_0x1a955f: ; 0x1a955f
+UnknownText_0x1a955f:
 	text "MT.MORTAR"
 
 	para "WATERFALL CAVE"
 	line "INSIDE"
 	done
-; 0x1a9580
 
-UnknownText_0x1a9580: ; 0x1a9580
+UnknownText_0x1a9580:
 	text "MT.MORTAR"
 
 	para "WATERFALL CAVE"
 	line "INSIDE"
 	done
-; 0x1a95a1
 
-UnknownText_0x1a95a1: ; 0x1a95a1
+UnknownText_0x1a95a1:
 	text "ROUTE 42"
 
 	para "ECRUTEAK CITY -"
 	line "MAHOGANY TOWN"
 	done
-; 0x1a95c9
 
-Route42_MapEventHeader: ; 0x1a95c9
+Route42_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -421,27 +322,26 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 1
 	xy_trigger 1, $e, $18, $0, UnknownScript_0x1a9218, $0, $0
 
-	; signposts
+.Signposts:
 	db 5
-	signpost 10, 4, $0, MapRoute42Signpost0Script
-	signpost 5, 7, $0, MapRoute42Signpost1Script
-	signpost 9, 45, $0, MapRoute42Signpost2Script
-	signpost 8, 54, $0, MapRoute42Signpost3Script
-	signpost 11, 16, $7, MapRoute42SignpostItem4
+	signpost 10, 4, SIGNPOST_READ, MapRoute42Signpost0Script
+	signpost 5, 7, SIGNPOST_READ, MapRoute42Signpost1Script
+	signpost 9, 45, SIGNPOST_READ, MapRoute42Signpost2Script
+	signpost 8, 54, SIGNPOST_READ, MapRoute42Signpost3Script
+	signpost 11, 16, SIGNPOST_ITEM, MapRoute42SignpostItem4
 
-	; people-events
+.PersonEvents:
 	db 9
-	person_event SPRITE_FISHER, 14, 44, $8, $0, 255, 255, $a2, 1, TrainerFisherTully1, $ffff
-	person_event SPRITE_POKEFAN_M, 13, 55, $a, $0, 255, 255, $b2, 3, TrainerHikerBenjamin, $ffff
-	person_event SPRITE_SUPER_NERD, 12, 51, $6, $0, 255, 255, $92, 3, TrainerPokemaniacShane, $ffff
-	person_event SPRITE_FRUIT_TREE, 20, 31, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x1a934d, $ffff
-	person_event SPRITE_FRUIT_TREE, 20, 32, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x1a934f, $ffff
-	person_event SPRITE_FRUIT_TREE, 20, 33, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x1a9351, $ffff
-	person_event SPRITE_POKE_BALL, 8, 10, $1, $0, 255, 255, $1, 0, ItemFragment_0x1a9349, $06b3
-	person_event SPRITE_POKE_BALL, 12, 37, $1, $0, 255, 255, $1, 0, ItemFragment_0x1a934b, $06b4
-	person_event SPRITE_SUICUNE, 20, 30, $1, $0, 255, 255, $90, 0, ObjectEvent, $07af
-; 0x1a967e
+	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
--- a/maps/Route42EcruteakGate.asm
+++ b/maps/Route42EcruteakGate.asm
@@ -1,16 +1,14 @@
-Route42EcruteakGate_MapScriptHeader: ; 0x19a4b3
-	; trigger count
+Route42EcruteakGate_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x19a4b5
 
-OfficerScript_0x19a4b5: ; 0x19a4b5
+OfficerScript_0x19a4b5:
 	jumptextfaceplayer UnknownText_0x19a4b8
-; 0x19a4b8
 
-UnknownText_0x19a4b8: ; 0x19a4b8
+UnknownText_0x19a4b8:
 	text "MT.MORTAR is like"
 	line "a maze inside."
 
@@ -17,13 +15,12 @@
 	para "Be careful. Don't"
 	line "get lost in there."
 	done
-; 0x19a4fe
 
-Route42EcruteakGate_MapEventHeader: ; 0x19a4fe
+Route42EcruteakGate_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -30,13 +27,12 @@
 	warp_def $4, $9, 1, GROUP_ROUTE_42, MAP_ROUTE_42
 	warp_def $5, $9, 2, GROUP_ROUTE_42, MAP_ROUTE_42
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_OFFICER, 6, 9, $6, $0, 255, 255, $80, 0, OfficerScript_0x19a4b5, $ffff
-; 0x19a525
+	person_event SPRITE_OFFICER, 6, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, OfficerScript_0x19a4b5, -1
--- a/maps/Route43.asm
+++ b/maps/Route43.asm
@@ -1,48 +1,28 @@
-Route43_MapScriptHeader: ; 0x19d04c
-	; trigger count
+Route43_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 5, UnknownScript_0x19d051
-; 0x19d051
 
-UnknownScript_0x19d051: ; 0x19d051
+UnknownScript_0x19d051:
 	checkevent EVENT_CLEARED_ROCKET_HIDEOUT
 	iftrue UnknownScript_0x19d05c
 	domaptrigger GROUP_ROUTE_43_GATE, MAP_ROUTE_43_GATE, $0
 	return
-; 0x19d05c
 
-UnknownScript_0x19d05c: ; 0x19d05c
+UnknownScript_0x19d05c:
 	domaptrigger GROUP_ROUTE_43_GATE, MAP_ROUTE_43_GATE, $1
 	return
-; 0x19d061
 
-TrainerCamperSpencer: ; 0x19d061
-	; bit/flag number
-	dw $42c
+TrainerCamperSpencer:
+	trainer EVENT_BEAT_CAMPER_SPENCER, CAMPER, SPENCER, CamperSpencerSeenText, CamperSpencerBeatenText, $0000, CamperSpencerScript
 
-	; trainer group && trainer id
-	db CAMPER, SPENCER
-
-	; text when seen
-	dw CamperSpencerSeenText
-
-	; text when trainer beaten
-	dw CamperSpencerBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CamperSpencerScript
-; 0x19d06d
-
-CamperSpencerScript: ; 0x19d06d
+CamperSpencerScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19d57e
@@ -49,29 +29,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19d075
 
-TrainerPokemaniacBen: ; 0x19d075
-	; bit/flag number
-	dw $4e8
+TrainerPokemaniacBen:
+	trainer EVENT_BEAT_POKEMANIAC_BEN, POKEMANIAC, BEN, PokemaniacBenSeenText, PokemaniacBenBeatenText, $0000, PokemaniacBenScript
 
-	; trainer group && trainer id
-	db POKEMANIAC, BEN
-
-	; text when seen
-	dw PokemaniacBenSeenText
-
-	; text when trainer beaten
-	dw PokemaniacBenBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PokemaniacBenScript
-; 0x19d081
-
-PokemaniacBenScript: ; 0x19d081
+PokemaniacBenScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19d2d2
@@ -78,164 +40,116 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19d089
 
-TrainerPokemaniacBrent1: ; 0x19d089
-	; bit/flag number
-	dw $4e9
+TrainerPokemaniacBrent1:
+	trainer EVENT_BEAT_POKEMANIAC_BRENT, POKEMANIAC, BRENT1, PokemaniacBrent1SeenText, PokemaniacBrent1BeatenText, $0000, PokemaniacBrent1Script
 
-	; trainer group && trainer id
-	db POKEMANIAC, BRENT1
-
-	; text when seen
-	dw PokemaniacBrent1SeenText
-
-	; text when trainer beaten
-	dw PokemaniacBrent1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PokemaniacBrent1Script
-; 0x19d095
-
-PokemaniacBrent1Script: ; 0x19d095
-	writecode $17, $1e
+PokemaniacBrent1Script:
+	writecode VAR_CALLERID, PHONE_POKEMANIAC_BRENT
 	talkaftercancel
 	loadfont
-	checkflag $0077
+	checkflag ENGINE_BRENT
 	iftrue UnknownScript_0x19d0cf
-	checkcellnum $1e
+	checkcellnum PHONE_POKEMANIAC_BRENT
 	iftrue UnknownScript_0x19d138
-	checkevent $0291
+	checkevent EVENT_BRENT_ASKED_FOR_PHONE_NUMBER
 	iftrue UnknownScript_0x19d0b8
 	writetext UnknownText_0x19d359
 	keeptextopen
-	setevent $0291
+	setevent EVENT_BRENT_ASKED_FOR_PHONE_NUMBER
 	scall UnknownScript_0x19d12c
 	jump UnknownScript_0x19d0bb
-; 0x19d0b8
 
-UnknownScript_0x19d0b8: ; 0x19d0b8
+UnknownScript_0x19d0b8:
 	scall UnknownScript_0x19d130
-UnknownScript_0x19d0bb: ; 0x19d0bb
-	askforphonenumber $1e
+UnknownScript_0x19d0bb:
+	askforphonenumber PHONE_POKEMANIAC_BRENT
 	if_equal $1, UnknownScript_0x19d140
 	if_equal $2, UnknownScript_0x19d13c
 	trainertotext POKEMANIAC, BRENT1, $0
 	scall UnknownScript_0x19d134
 	jump UnknownScript_0x19d138
-; 0x19d0cf
 
-UnknownScript_0x19d0cf: ; 0x19d0cf
+UnknownScript_0x19d0cf:
 	scall UnknownScript_0x19d144
 	winlosstext PokemaniacBrent1BeatenText, $0000
-	copybytetovar wda07
-	if_equal $3, UnknownScript_0x19d0ea
-	if_equal $2, UnknownScript_0x19d0f0
-	if_equal $1, UnknownScript_0x19d0f6
-	if_equal $0, UnknownScript_0x19d0fc
-UnknownScript_0x19d0ea: ; 0x19d0ea
+	copybytetovar wBrentFightCount
+	if_equal 3, .Fight3
+	if_equal 2, .Fight2
+	if_equal 1, .Fight1
+	if_equal 0, .LoadFight0
+.Fight3
 	checkevent EVENT_RESTORED_POWER_TO_KANTO
-	iftrue UnknownScript_0x19d123
-UnknownScript_0x19d0f0: ; 0x19d0f0
+	iftrue .LoadFight3
+.Fight2
 	checkevent EVENT_BEAT_ELITE_FOUR
-	iftrue UnknownScript_0x19d116
-UnknownScript_0x19d0f6: ; 0x19d0f6
+	iftrue .LoadFight2
+.Fight1
 	checkevent EVENT_CLEARED_ROCKET_HIDEOUT
-	iftrue UnknownScript_0x19d109
-UnknownScript_0x19d0fc: ; 0x19d0fc
+	iftrue .LoadFight1
+.LoadFight0
 	loadtrainer POKEMANIAC, BRENT1
 	startbattle
 	returnafterbattle
-	loadvar wda07, $1
-	clearflag $0077
+	loadvar wBrentFightCount, 1
+	clearflag ENGINE_BRENT
 	end
-; 0x19d109
 
-UnknownScript_0x19d109: ; 0x19d109
+.LoadFight1
 	loadtrainer POKEMANIAC, BRENT2
 	startbattle
 	returnafterbattle
-	loadvar wda07, $2
-	clearflag $0077
+	loadvar wBrentFightCount, 2
+	clearflag ENGINE_BRENT
 	end
-; 0x19d116
 
-UnknownScript_0x19d116: ; 0x19d116
+.LoadFight2
 	loadtrainer POKEMANIAC, BRENT3
 	startbattle
 	returnafterbattle
-	loadvar wda07, $3
-	clearflag $0077
+	loadvar wBrentFightCount, 3
+	clearflag ENGINE_BRENT
 	end
-; 0x19d123
 
-UnknownScript_0x19d123: ; 0x19d123
+.LoadFight3
 	loadtrainer POKEMANIAC, BRENT4
 	startbattle
 	returnafterbattle
-	clearflag $0077
+	clearflag ENGINE_BRENT
 	end
-; 0x19d12c
 
-UnknownScript_0x19d12c: ; 0x19d12c
+UnknownScript_0x19d12c:
 	jumpstd asknumber1m
 	end
-; 0x19d130
 
-UnknownScript_0x19d130: ; 0x19d130
+UnknownScript_0x19d130:
 	jumpstd asknumber2m
 	end
-; 0x19d134
 
-UnknownScript_0x19d134: ; 0x19d134
+UnknownScript_0x19d134:
 	jumpstd registerednumberm
 	end
-; 0x19d138
 
-UnknownScript_0x19d138: ; 0x19d138
+UnknownScript_0x19d138:
 	jumpstd numberacceptedm
 	end
-; 0x19d13c
 
-UnknownScript_0x19d13c: ; 0x19d13c
+UnknownScript_0x19d13c:
 	jumpstd numberdeclinedm
 	end
-; 0x19d140
 
-UnknownScript_0x19d140: ; 0x19d140
+UnknownScript_0x19d140:
 	jumpstd phonefullm
 	end
-; 0x19d144
 
-UnknownScript_0x19d144: ; 0x19d144
+UnknownScript_0x19d144:
 	jumpstd rematchm
 	end
-; 0x19d148
 
-TrainerPokemaniacRon: ; 0x19d148
-	; bit/flag number
-	dw $4ea
+TrainerPokemaniacRon:
+	trainer EVENT_BEAT_POKEMANIAC_RON, POKEMANIAC, RON, PokemaniacRonSeenText, PokemaniacRonBeatenText, $0000, PokemaniacRonScript
 
-	; trainer group && trainer id
-	db POKEMANIAC, RON
-
-	; text when seen
-	dw PokemaniacRonSeenText
-
-	; text when trainer beaten
-	dw PokemaniacRonBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PokemaniacRonScript
-; 0x19d154
-
-PokemaniacRonScript: ; 0x19d154
+PokemaniacRonScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19d3f8
@@ -242,29 +156,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19d15c
 
-TrainerFisherMarvin: ; 0x19d15c
-	; bit/flag number
-	dw $453
+TrainerFisherMarvin:
+	trainer EVENT_BEAT_FISHER_MARVIN, FISHER, MARVIN, FisherMarvinSeenText, FisherMarvinBeatenText, $0000, FisherMarvinScript
 
-	; trainer group && trainer id
-	db FISHER, MARVIN
-
-	; text when seen
-	dw FisherMarvinSeenText
-
-	; text when trainer beaten
-	dw FisherMarvinBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw FisherMarvinScript
-; 0x19d168
-
-FisherMarvinScript: ; 0x19d168
+FisherMarvinScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19d4d3
@@ -271,198 +167,157 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19d170
 
-TrainerPicnickerTiffany3: ; 0x19d170
-	; bit/flag number
-	dw $491
+TrainerPicnickerTiffany3:
+	trainer EVENT_BEAT_PICNICKER_TIFFANY, PICNICKER, TIFFANY3, PicnickerTiffany3SeenText, PicnickerTiffany3BeatenText, $0000, PicnickerTiffany3Script
 
-	; trainer group && trainer id
-	db PICNICKER, TIFFANY3
-
-	; text when seen
-	dw PicnickerTiffany3SeenText
-
-	; text when trainer beaten
-	dw PicnickerTiffany3BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PicnickerTiffany3Script
-; 0x19d17c
-
-PicnickerTiffany3Script: ; 0x19d17c
-	writecode $17, $1f
+PicnickerTiffany3Script:
+	writecode VAR_CALLERID, PHONE_PICNICKER_TIFFANY
 	talkaftercancel
 	loadfont
-	checkflag $0078
+	checkflag ENGINE_TIFFANY
 	iftrue UnknownScript_0x19d1c1
-	checkflag $0085
+	checkflag ENGINE_TIFFANY_HAS_PINK_BOW
 	iftrue UnknownScript_0x19d21e
-	checkcellnum $1f
+	checkcellnum PHONE_PICNICKER_TIFFANY
 	iftrue UnknownScript_0x19d245
 	checkpoke CLEFAIRY
 	iffalse UnknownScript_0x19d233
-	checkevent EVENT_SHOWED_TIFFANY_CLEFAIRY
+	checkevent EVENT_TIFFANY_ASKED_FOR_PHONE_NUMBER
 	iftrue UnknownScript_0x19d1aa
 	writetext UnknownText_0x19d618
 	keeptextopen
-	setevent EVENT_SHOWED_TIFFANY_CLEFAIRY
+	setevent EVENT_TIFFANY_ASKED_FOR_PHONE_NUMBER
 	scall UnknownScript_0x19d239
 	jump UnknownScript_0x19d1ad
-; 0x19d1aa
 
-UnknownScript_0x19d1aa: ; 0x19d1aa
+UnknownScript_0x19d1aa:
 	scall UnknownScript_0x19d23d
-UnknownScript_0x19d1ad: ; 0x19d1ad
-	askforphonenumber $1f
+UnknownScript_0x19d1ad:
+	askforphonenumber PHONE_PICNICKER_TIFFANY
 	if_equal $1, UnknownScript_0x19d24d
 	if_equal $2, UnknownScript_0x19d249
 	trainertotext PICNICKER, TIFFANY3, $0
 	scall UnknownScript_0x19d241
 	jump UnknownScript_0x19d245
-; 0x19d1c1
 
-UnknownScript_0x19d1c1: ; 0x19d1c1
+UnknownScript_0x19d1c1:
 	scall UnknownScript_0x19d251
 	winlosstext PicnickerTiffany3BeatenText, $0000
-	copybytetovar wda08
-	if_equal $3, UnknownScript_0x19d1dc
-	if_equal $2, UnknownScript_0x19d1e2
-	if_equal $1, UnknownScript_0x19d1e8
-	if_equal $0, UnknownScript_0x19d1ee
-UnknownScript_0x19d1dc: ; 0x19d1dc
+	copybytetovar wTiffanyFightCount
+	if_equal 3, .Fight3
+	if_equal 2, .Fight2
+	if_equal 1, .Fight1
+	if_equal 0, .LoadFight0
+.Fight3
 	checkevent EVENT_RESTORED_POWER_TO_KANTO
-	iftrue UnknownScript_0x19d215
-UnknownScript_0x19d1e2: ; 0x19d1e2
+	iftrue .LoadFight3
+.Fight2
 	checkevent EVENT_BEAT_ELITE_FOUR
-	iftrue UnknownScript_0x19d208
-UnknownScript_0x19d1e8: ; 0x19d1e8
+	iftrue .LoadFight2
+.Fight1
 	checkevent EVENT_CLEARED_RADIO_TOWER
-	iftrue UnknownScript_0x19d1fb
-UnknownScript_0x19d1ee: ; 0x19d1ee
+	iftrue .LoadFight1
+.LoadFight0
 	loadtrainer PICNICKER, TIFFANY3
 	startbattle
 	returnafterbattle
-	loadvar wda08, $1
-	clearflag $0078
+	loadvar wTiffanyFightCount, 1
+	clearflag ENGINE_TIFFANY
 	end
-; 0x19d1fb
 
-UnknownScript_0x19d1fb: ; 0x19d1fb
+.LoadFight1
 	loadtrainer PICNICKER, TIFFANY1
 	startbattle
 	returnafterbattle
-	loadvar wda08, $2
-	clearflag $0078
+	loadvar wTiffanyFightCount, 2
+	clearflag ENGINE_TIFFANY
 	end
-; 0x19d208
 
-UnknownScript_0x19d208: ; 0x19d208
+.LoadFight2
 	loadtrainer PICNICKER, TIFFANY2
 	startbattle
 	returnafterbattle
-	loadvar wda08, $3
-	clearflag $0078
+	loadvar wTiffanyFightCount, 3
+	clearflag ENGINE_TIFFANY
 	end
-; 0x19d215
 
-UnknownScript_0x19d215: ; 0x19d215
+.LoadFight3
 	loadtrainer PICNICKER, TIFFANY4
 	startbattle
 	returnafterbattle
-	clearflag $0078
+	clearflag ENGINE_TIFFANY
 	end
-; 0x19d21e
 
-UnknownScript_0x19d21e: ; 0x19d21e
+UnknownScript_0x19d21e:
 	scall UnknownScript_0x19d255
 	verbosegiveitem PINK_BOW, 1
 	iffalse UnknownScript_0x19d230
-	clearflag $0085
-	setevent $0104
+	clearflag ENGINE_TIFFANY_HAS_PINK_BOW
+	setevent EVENT_TIFFANY_GAVE_PINK_BOW
 	jump UnknownScript_0x19d245
-; 0x19d230
 
-UnknownScript_0x19d230: ; 0x19d230
+UnknownScript_0x19d230:
 	jump UnknownScript_0x19d259
-; 0x19d233
 
-UnknownScript_0x19d233: ; 0x19d233
+UnknownScript_0x19d233:
 	writetext UnknownText_0x19d64b
 	closetext
 	loadmovesprites
 	end
-; 0x19d239
 
-UnknownScript_0x19d239: ; 0x19d239
+UnknownScript_0x19d239:
 	jumpstd asknumber1f
 	end
-; 0x19d23d
 
-UnknownScript_0x19d23d: ; 0x19d23d
+UnknownScript_0x19d23d:
 	jumpstd asknumber2f
 	end
-; 0x19d241
 
-UnknownScript_0x19d241: ; 0x19d241
+UnknownScript_0x19d241:
 	jumpstd registerednumberf
 	end
-; 0x19d245
 
-UnknownScript_0x19d245: ; 0x19d245
+UnknownScript_0x19d245:
 	jumpstd numberacceptedf
 	end
-; 0x19d249
 
-UnknownScript_0x19d249: ; 0x19d249
+UnknownScript_0x19d249:
 	jumpstd numberdeclinedf
 	end
-; 0x19d24d
 
-UnknownScript_0x19d24d: ; 0x19d24d
+UnknownScript_0x19d24d:
 	jumpstd phonefullf
 	end
-; 0x19d251
 
-UnknownScript_0x19d251: ; 0x19d251
+UnknownScript_0x19d251:
 	jumpstd rematchf
 	end
-; 0x19d255
 
-UnknownScript_0x19d255: ; 0x19d255
+UnknownScript_0x19d255:
 	jumpstd giftf
 	end
-; 0x19d259
 
-UnknownScript_0x19d259: ; 0x19d259
+UnknownScript_0x19d259:
 	jumpstd packfullf
 	end
-; 0x19d25d
 
-MapRoute43Signpost0Script: ; 0x19d25d
+MapRoute43Signpost0Script:
 	jumptext UnknownText_0x19d67b
-; 0x19d260
 
-MapRoute43Signpost1Script: ; 0x19d260
+MapRoute43Signpost1Script:
 	jumptext UnknownText_0x19d6a2
-; 0x19d263
 
-MapRoute43Signpost2Script: ; 0x19d263
+MapRoute43Signpost2Script:
 	jumptext UnknownText_0x19d6c9
-; 0x19d266
 
-FruitTreeScript_0x19d266: ; 0x19d266
+FruitTreeScript_0x19d266:
 	fruittree $8
-; 0x19d268
 
-ItemFragment_0x19d268: ; 0x19d268
+ItemFragment_0x19d268:
 	db MAX_ETHER, 1
-; 0x19d26a
 
-PokemaniacBenSeenText: ; 0x19d26a
+PokemaniacBenSeenText:
 	text "I love #MON!"
 
 	para "That's why I"
@@ -471,15 +326,13 @@
 	para "I'll keep on col-"
 	line "lecting #MON!"
 	done
-; 0x19d2b4
 
-PokemaniacBenBeatenText: ; 0x19d2b4
+PokemaniacBenBeatenText:
 	text "How could you do"
 	line "this to me?"
 	done
-; 0x19d2d2
 
-UnknownText_0x19d2d2: ; 0x19d2d2
+UnknownText_0x19d2d2:
 	text "What else do I"
 	line "like besides"
 	cont "#MON?"
@@ -487,28 +340,24 @@
 	para "MARY on the radio."
 	line "I bet she's cute!"
 	done
-; 0x19d319
 
-PokemaniacBrent1SeenText: ; 0x19d319
+PokemaniacBrent1SeenText:
 	text "Hey! Do you have"
 	line "any rare #MON?"
 	done
-; 0x19d33a
 
-PokemaniacBrent1BeatenText: ; 0x19d33a
+PokemaniacBrent1BeatenText:
 	text "Oh, my poor #-"
 	line "MON! Darlings!"
 	done
-; 0x19d359
 
-UnknownText_0x19d359: ; 0x19d359
+UnknownText_0x19d359:
 	text "I'd be happy just"
 	line "to own a single"
 	cont "rare #MON."
 	done
-; 0x19d386
 
-PokemaniacRonSeenText: ; 0x19d386
+PokemaniacRonSeenText:
 	text "Would you get"
 	line "this?"
 
@@ -519,15 +368,13 @@
 	para "Darn it! My #-"
 	line "MON's great!"
 	done
-; 0x19d3d6
 
-PokemaniacRonBeatenText: ; 0x19d3d6
+PokemaniacRonBeatenText:
 	text "My NIDOKING did"
 	line "pretty right on!"
 	done
-; 0x19d3f8
 
-UnknownText_0x19d3f8: ; 0x19d3f8
+UnknownText_0x19d3f8:
 	text "It's okay for"
 	line "people to like"
 
@@ -538,9 +385,8 @@
 	line "about having the"
 	cont "most powerful one."
 	done
-; 0x19d461
 
-FisherMarvinSeenText: ; 0x19d461
+FisherMarvinSeenText:
 	text "I'm in a slump."
 
 	para "Maybe it's the"
@@ -549,15 +395,13 @@
 	para "Let's battle for a"
 	line "change of pace!"
 	done
-; 0x19d4b0
 
-FisherMarvinBeatenText: ; 0x19d4b0
+FisherMarvinBeatenText:
 	text "I lost, but I feel"
 	line "better anyway."
 	done
-; 0x19d4d3
 
-UnknownText_0x19d4d3: ; 0x19d4d3
+UnknownText_0x19d4d3:
 	text "KURT's LURE BALL"
 	line "is the best for"
 
@@ -568,22 +412,19 @@
 	line "effective than a"
 	cont "ULTRA BALL."
 	done
-; 0x19d535
 
-CamperSpencerSeenText: ; 0x19d535
+CamperSpencerSeenText:
 	text "I can do so much"
 	line "with my #MON--"
 	cont "it's super-fun!"
 	done
-; 0x19d565
 
-CamperSpencerBeatenText: ; 0x19d565
+CamperSpencerBeatenText:
 	text "Losing isn't fun"
 	line "at all…"
 	done
-; 0x19d57e
 
-UnknownText_0x19d57e: ; 0x19d57e
+UnknownText_0x19d57e:
 	text "What is going on"
 	line "at LAKE OF RAGE?"
 
@@ -590,9 +431,8 @@
 	para "We were planning"
 	line "to camp there."
 	done
-; 0x19d5c1
 
-PicnickerTiffany3SeenText: ; 0x19d5c1
+PicnickerTiffany3SeenText:
 	text "Are you going to"
 	line "LAKE OF RAGE too?"
 
@@ -599,45 +439,39 @@
 	para "Let's play for a "
 	line "little while!"
 	done
-; 0x19d604
 
-PicnickerTiffany3BeatenText: ; 0x19d604
+PicnickerTiffany3BeatenText:
 	text "I played too much!"
 	done
-; 0x19d618
 
-UnknownText_0x19d618: ; 0x19d618
+UnknownText_0x19d618:
 	text "I'm having a pic-"
 	line "nic with #MON."
 
 	para "Won't you join us?"
 	done
-; 0x19d64b
 
-UnknownText_0x19d64b: ; 0x19d64b
+UnknownText_0x19d64b:
 	text "Isn't my CLEFAIRY"
 	line "just the most"
 	cont "adorable thing?"
 	done
-; 0x19d67b
 
-UnknownText_0x19d67b: ; 0x19d67b
+UnknownText_0x19d67b:
 	text "ROUTE 43"
 
 	para "LAKE OF RAGE -"
 	line "MAHOGANY TOWN"
 	done
-; 0x19d6a2
 
-UnknownText_0x19d6a2: ; 0x19d6a2
+UnknownText_0x19d6a2:
 	text "ROUTE 43"
 
 	para "LAKE OF RAGE -"
 	line "MAHOGANY TOWN"
 	done
-; 0x19d6c9
 
-UnknownText_0x19d6c9: ; 0x19d6c9
+UnknownText_0x19d6c9:
 	text "TRAINER TIPS"
 
 	para "All #MON have"
@@ -658,13 +492,12 @@
 	para "weak against your"
 	line "#MON's type."
 	done
-; 0x19d78c
 
-Route43_MapEventHeader: ; 0x19d78c
+Route43_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -672,23 +505,22 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 3
-	signpost 3, 13, $0, MapRoute43Signpost0Script
-	signpost 49, 11, $0, MapRoute43Signpost1Script
-	signpost 38, 16, $0, MapRoute43Signpost2Script
+	signpost 3, 13, SIGNPOST_READ, MapRoute43Signpost0Script
+	signpost 49, 11, SIGNPOST_READ, MapRoute43Signpost1Script
+	signpost 38, 16, SIGNPOST_READ, MapRoute43Signpost2Script
 
-	; people-events
+.PersonEvents:
 	db 8
-	person_event SPRITE_SUPER_NERD, 9, 17, $8, $0, 255, 255, $92, 2, TrainerPokemaniacBen, $ffff
-	person_event SPRITE_SUPER_NERD, 24, 17, $a, $0, 255, 255, $92, 3, TrainerPokemaniacBrent1, $ffff
-	person_event SPRITE_SUPER_NERD, 11, 18, $6, $0, 255, 255, $92, 2, TrainerPokemaniacRon, $ffff
-	person_event SPRITE_FISHER, 20, 8, $9, $0, 255, 255, $a2, 4, TrainerFisherMarvin, $ffff
-	person_event SPRITE_LASS, 29, 13, $6, $0, 255, 255, $a2, 2, TrainerPicnickerTiffany3, $ffff
-	person_event SPRITE_YOUNGSTER, 44, 17, $a, $0, 255, 255, $a2, 3, TrainerCamperSpencer, $ffff
-	person_event SPRITE_FRUIT_TREE, 30, 5, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x19d266, $ffff
-	person_event SPRITE_POKE_BALL, 36, 16, $1, $0, 255, 255, $1, 0, ItemFragment_0x19d268, $06b5
-; 0x19d822
+	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
--- a/maps/Route43Gate.asm
+++ b/maps/Route43Gate.asm
@@ -1,5 +1,5 @@
-Route43Gate_MapScriptHeader: ; 0x19abb8
-	; trigger count
+Route43Gate_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,50 +6,44 @@
 	dw UnknownScript_0x19abc5, $0000
 	dw UnknownScript_0x19abc9, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 5, UnknownScript_0x19abca
-; 0x19abc5
 
-UnknownScript_0x19abc5: ; 0x19abc5
+UnknownScript_0x19abc5:
 	priorityjump UnknownScript_0x19abda
 	end
-; 0x19abc9
 
-UnknownScript_0x19abc9: ; 0x19abc9
+UnknownScript_0x19abc9:
 	end
-; 0x19abca
 
-UnknownScript_0x19abca: ; 0x19abca
+UnknownScript_0x19abca:
 	checkevent EVENT_CLEARED_ROCKET_HIDEOUT
 	iftrue UnknownScript_0x19abd5
 	domaptrigger GROUP_ROUTE_43, MAP_ROUTE_43, $0
 	return
-; 0x19abd5
 
-UnknownScript_0x19abd5: ; 0x19abd5
+UnknownScript_0x19abd5:
 	domaptrigger GROUP_ROUTE_43, MAP_ROUTE_43, $1
 	return
-; 0x19abda
 
-UnknownScript_0x19abda: ; 0x19abda
+UnknownScript_0x19abda:
 	playmusic MUSIC_ROCKET_ENCOUNTER
-	checkcode $9
+	checkcode VAR_FACING
 	if_equal $0, UnknownScript_0x19abea
 	if_equal $1, UnknownScript_0x19ac38
 	dotrigger $1
 	end
-; 0x19abea
 
-UnknownScript_0x19abea: ; 0x19abea
+UnknownScript_0x19abea:
 	applymovement $0, MovementData_0x19aca2
-	showemote $0, $4, 15
+	showemote EMOTE_SHOCK, $4, 15
 	applymovement $4, MovementData_0x19acbb
 	spriteface $3, UP
-	showemote $0, $3, 15
+	showemote EMOTE_SHOCK, $3, 15
 	applymovement $3, MovementData_0x19aca4
 	loadfont
 	writetext UnknownText_0x19acd2
@@ -57,21 +51,18 @@
 	checkmoney $0, 999
 	if_equal $0, UnknownScript_0x19ac12
 	jump UnknownScript_0x19ac1d
-; 0x19ac12
 
-UnknownScript_0x19ac12: ; 0x19ac12
+UnknownScript_0x19ac12:
 	takemoney $0, 1000
 	writetext UnknownText_0x19ad0a
 	jump UnknownScript_0x19ac28
-; 0x19ac1d
 
-UnknownScript_0x19ac1d: ; 0x19ac1d
+UnknownScript_0x19ac1d:
 	takemoney $0, 1000
 	writetext UnknownText_0x19ad20
 	jump UnknownScript_0x19ac28
-; 0x19ac28
 
-UnknownScript_0x19ac28: ; 0x19ac28
+UnknownScript_0x19ac28:
 	keeptextopen
 	loadmovesprites
 	applymovement $3, MovementData_0x19acaa
@@ -79,13 +70,12 @@
 	dotrigger $1
 	special RestartMapMusic
 	end
-; 0x19ac38
 
-UnknownScript_0x19ac38: ; 0x19ac38
-	showemote $0, $3, 15
+UnknownScript_0x19ac38:
+	showemote EMOTE_SHOCK, $3, 15
 	applymovement $3, MovementData_0x19acaf
 	spriteface $4, DOWN
-	showemote $0, $4, 15
+	showemote EMOTE_SHOCK, $4, 15
 	applymovement $4, MovementData_0x19acc7
 	loadfont
 	writetext UnknownText_0x19acd2
@@ -93,21 +83,18 @@
 	checkmoney $0, 999
 	if_equal $0, UnknownScript_0x19ac5c
 	jump UnknownScript_0x19ac67
-; 0x19ac5c
 
-UnknownScript_0x19ac5c: ; 0x19ac5c
+UnknownScript_0x19ac5c:
 	takemoney $0, 1000
 	writetext UnknownText_0x19ad0a
 	jump UnknownScript_0x19ac72
-; 0x19ac67
 
-UnknownScript_0x19ac67: ; 0x19ac67
+UnknownScript_0x19ac67:
 	takemoney $0, 1000
 	writetext UnknownText_0x19ad20
 	jump UnknownScript_0x19ac72
-; 0x19ac72
 
-UnknownScript_0x19ac72: ; 0x19ac72
+UnknownScript_0x19ac72:
 	keeptextopen
 	loadmovesprites
 	applymovement $4, MovementData_0x19accd
@@ -115,13 +102,11 @@
 	dotrigger $1
 	special RestartMapMusic
 	end
-; 0x19ac82
 
-RocketScript_0x19ac82: ; 0x19ac82
+RocketScript_0x19ac82:
 	jumptextfaceplayer UnknownText_0x19ad41
-; 0x19ac85
 
-OfficerScript_0x19ac85: ; 0x19ac85
+OfficerScript_0x19ac85:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_TM36_SLUDGE_BOMB
@@ -128,27 +113,24 @@
 	iftrue UnknownScript_0x19ac9c
 	writetext UnknownText_0x19ad9b
 	keeptextopen
-	verbosegiveitem TM_36, 1
+	verbosegiveitem TM_SLUDGE_BOMB, 1
 	iffalse UnknownScript_0x19aca0
 	setevent EVENT_GOT_TM36_SLUDGE_BOMB
 	loadmovesprites
 	end
-; 0x19ac9c
 
-UnknownScript_0x19ac9c: ; 0x19ac9c
+UnknownScript_0x19ac9c:
 	writetext UnknownText_0x19ae2d
 	closetext
-UnknownScript_0x19aca0: ; 0x19aca0
+UnknownScript_0x19aca0:
 	loadmovesprites
 	end
-; 0x19aca2
 
-MovementData_0x19aca2: ; 0x19aca2
+MovementData_0x19aca2:
 	step_down
 	step_end
-; 0x19aca4
 
-MovementData_0x19aca4: ; 0x19aca4
+MovementData_0x19aca4:
 	big_step_up
 	big_step_up
 	big_step_right
@@ -155,17 +137,15 @@
 	big_step_right
 	turn_head_up
 	step_end
-; 0x19acaa
 
-MovementData_0x19acaa: ; 0x19acaa
+MovementData_0x19acaa:
 	big_step_left
 	big_step_left
 	big_step_down
 	big_step_down
 	step_end
-; 0x19acaf
 
-MovementData_0x19acaf: ; 0x19acaf
+MovementData_0x19acaf:
 	big_step_down
 	big_step_down
 	big_step_right
@@ -172,9 +152,8 @@
 	big_step_right
 	turn_head_down
 	step_end
-; 0x19acb5
 
-MovementData_0x19acb5: ; 0x19acb5
+MovementData_0x19acb5:
 	big_step_left
 	big_step_left
 	big_step_up
@@ -181,9 +160,8 @@
 	big_step_up
 	turn_head_down
 	step_end
-; 0x19acbb
 
-MovementData_0x19acbb: ; 0x19acbb
+MovementData_0x19acbb:
 	big_step_up
 	big_step_up
 	big_step_left
@@ -190,9 +168,8 @@
 	big_step_left
 	turn_head_up
 	step_end
-; 0x19acc1
 
-MovementData_0x19acc1: ; 0x19acc1
+MovementData_0x19acc1:
 	big_step_right
 	big_step_right
 	big_step_down
@@ -199,9 +176,8 @@
 	big_step_down
 	turn_head_up
 	step_end
-; 0x19acc7
 
-MovementData_0x19acc7: ; 0x19acc7
+MovementData_0x19acc7:
 	big_step_down
 	big_step_down
 	big_step_left
@@ -208,17 +184,15 @@
 	big_step_left
 	turn_head_down
 	step_end
-; 0x19accd
 
-MovementData_0x19accd: ; 0x19accd
+MovementData_0x19accd:
 	big_step_right
 	big_step_right
 	big_step_up
 	big_step_up
 	step_end
-; 0x19acd2
 
-UnknownText_0x19acd2: ; 0x19acd2
+UnknownText_0x19acd2:
 	text "Hold it there,"
 	line "kiddo!"
 
@@ -225,21 +199,18 @@
 	para "The toll is ¥1000"
 	line "to go through."
 	done
-; 0x19ad0a
 
-UnknownText_0x19ad0a: ; 0x19ad0a
+UnknownText_0x19ad0a:
 	text "Thank you very"
 	line "much!"
 	done
-; 0x19ad20
 
-UnknownText_0x19ad20: ; 0x19ad20
+UnknownText_0x19ad20:
 	text "Then pay what you"
 	line "have, please."
 	done
-; 0x19ad41
 
-UnknownText_0x19ad41: ; 0x19ad41
+UnknownText_0x19ad41:
 	text "He-he-he. We're"
 	line "making a bundle."
 
@@ -249,9 +220,8 @@
 	para "on up at LAKE OF"
 	line "RAGE."
 	done
-; 0x19ad9b
 
-UnknownText_0x19ad9b: ; 0x19ad9b
+UnknownText_0x19ad9b:
 	text "I got chased from"
 	line "my post by these"
 	cont "thugs in black."
@@ -263,26 +233,23 @@
 	line "fortable. Could"
 	cont "you take it away?"
 	done
-; 0x19ae1b
 
-UnknownText_0x19ae1b: ; 0x19ae1b
+UnknownText_0x19ae1b:
 	text "<PLAYER> received"
 	line "TM30."
 	done
-; 0x19ae2d
 
-UnknownText_0x19ae2d: ; 0x19ae2d
+UnknownText_0x19ae2d:
 	text "Use this gate to"
 	line "avoid walking in"
 	cont "the grass."
 	done
-; 0x19ae5b
 
-Route43Gate_MapEventHeader: ; 0x19ae5b
+Route43Gate_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -289,15 +256,14 @@
 	warp_def $7, $4, 3, GROUP_ROUTE_43, MAP_ROUTE_43
 	warp_def $7, $5, 3, GROUP_ROUTE_43, MAP_ROUTE_43
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_OFFICER, 8, 4, $9, $0, 255, 255, $80, 0, OfficerScript_0x19ac85, $0735
-	person_event SPRITE_ROCKET, 8, 6, $6, $0, 255, 255, $0, 0, RocketScript_0x19ac82, $06dc
-	person_event SPRITE_ROCKET, 8, 11, $7, $0, 255, 255, $0, 0, RocketScript_0x19ac82, $06dc
-; 0x19ae9c
+	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
--- a/maps/Route43MahoganyGate.asm
+++ b/maps/Route43MahoganyGate.asm
@@ -1,12 +1,11 @@
-Route43MahoganyGate_MapScriptHeader: ; 0x19ab09
-	; trigger count
+Route43MahoganyGate_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x19ab0b
 
-OfficerScript_0x19ab0b: ; 0x19ab0b
+OfficerScript_0x19ab0b:
 	faceplayer
 	loadfont
 	checkevent EVENT_CLEARED_ROCKET_HIDEOUT
@@ -15,16 +14,14 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19ab19
 
-UnknownScript_0x19ab19: ; 0x19ab19
+UnknownScript_0x19ab19:
 	writetext UnknownText_0x19ab65
 	closetext
 	loadmovesprites
 	end
-; 0x19ab1f
 
-UnknownText_0x19ab1f: ; 0x19ab1f
+UnknownText_0x19ab1f:
 	text "Only people headed"
 	line "up to LAKE OF RAGE"
 
@@ -31,20 +28,18 @@
 	para "have been through"
 	line "here lately."
 	done
-; 0x19ab65
 
-UnknownText_0x19ab65: ; 0x19ab65
+UnknownText_0x19ab65:
 	text "Nobody goes up to"
 	line "LAKE OF RAGE these"
 	cont "days."
 	done
-; 0x19ab91
 
-Route43MahoganyGate_MapEventHeader: ; 0x19ab91
+Route43MahoganyGate_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -51,13 +46,12 @@
 	warp_def $7, $4, 5, GROUP_MAHOGANY_TOWN, MAP_MAHOGANY_TOWN
 	warp_def $7, $5, 5, GROUP_MAHOGANY_TOWN, MAP_MAHOGANY_TOWN
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_OFFICER, 8, 4, $9, $0, 255, 255, $80, 0, OfficerScript_0x19ab0b, $ffff
-; 0x19abb8
+	person_event SPRITE_OFFICER, 8, 4, OW_LEFT | $1, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, OfficerScript_0x19ab0b, -1
--- a/maps/Route44.asm
+++ b/maps/Route44.asm
@@ -1,111 +1,87 @@
-Route44_MapScriptHeader: ; 0x19d822
-	; trigger count
+Route44_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x19d824
 
-TrainerBird_keeperVance1: ; 0x19d824
-	; bit/flag number
-	dw $401
+TrainerBird_keeperVance1:
+	trainer EVENT_BEAT_BIRD_KEEPER_VANCE, BIRD_KEEPER, VANCE1, Bird_keeperVance1SeenText, Bird_keeperVance1BeatenText, $0000, Bird_keeperVance1Script
 
-	; trainer group && trainer id
-	db BIRD_KEEPER, VANCE1
-
-	; text when seen
-	dw Bird_keeperVance1SeenText
-
-	; text when trainer beaten
-	dw Bird_keeperVance1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Bird_keeperVance1Script
-; 0x19d830
-
-Bird_keeperVance1Script: ; 0x19d830
-	writecode $17, $20
+Bird_keeperVance1Script:
+	writecode VAR_CALLERID, PHONE_BIRDKEEPER_VANCE
 	talkaftercancel
 	loadfont
-	checkflag $0079
+	checkflag ENGINE_VANCE
 	iftrue UnknownScript_0x19d86a
-	checkcellnum $20
+	checkcellnum PHONE_BIRDKEEPER_VANCE
 	iftrue UnknownScript_0x19d8eb
-	checkevent $0295
+	checkevent EVENT_VANCE_ASKED_FOR_PHONE_NUMBER
 	iftrue UnknownScript_0x19d853
 	writetext UnknownText_0x19dbf3
 	keeptextopen
-	setevent $0295
+	setevent EVENT_VANCE_ASKED_FOR_PHONE_NUMBER
 	scall UnknownScript_0x19d8df
 	jump UnknownScript_0x19d856
-; 0x19d853
 
-UnknownScript_0x19d853: ; 0x19d853
+UnknownScript_0x19d853:
 	scall UnknownScript_0x19d8e3
-UnknownScript_0x19d856: ; 0x19d856
-	askforphonenumber $20
+UnknownScript_0x19d856:
+	askforphonenumber PHONE_BIRDKEEPER_VANCE
 	if_equal $1, UnknownScript_0x19d8f3
 	if_equal $2, UnknownScript_0x19d8ef
 	trainertotext BIRD_KEEPER, VANCE1, $0
 	scall UnknownScript_0x19d8e7
 	jump UnknownScript_0x19d8eb
-; 0x19d86a
 
-UnknownScript_0x19d86a: ; 0x19d86a
+UnknownScript_0x19d86a:
 	scall UnknownScript_0x19d8f7
 	winlosstext Bird_keeperVance1BeatenText, $0000
-	copybytetovar wda09
-	if_equal $2, UnknownScript_0x19d881
-	if_equal $1, UnknownScript_0x19d887
-	if_equal $0, UnknownScript_0x19d88d
-UnknownScript_0x19d881: ; 0x19d881
+	copybytetovar wVanceFightCount
+	if_equal 2, .Fight2
+	if_equal 1, .Fight1
+	if_equal 0, .LoadFight0
+.Fight2
 	checkevent EVENT_RESTORED_POWER_TO_KANTO
-	iftrue UnknownScript_0x19d8a7
-UnknownScript_0x19d887: ; 0x19d887
+	iftrue .LoadFight2
+.Fight1
 	checkevent EVENT_BEAT_ELITE_FOUR
-	iftrue UnknownScript_0x19d89a
-UnknownScript_0x19d88d: ; 0x19d88d
+	iftrue .LoadFight1
+.LoadFight0
 	loadtrainer BIRD_KEEPER, VANCE1
 	startbattle
 	returnafterbattle
-	loadvar wda09, $1
-	clearflag $0079
+	loadvar wVanceFightCount, 1
+	clearflag ENGINE_VANCE
 	end
-; 0x19d89a
 
-UnknownScript_0x19d89a: ; 0x19d89a
+.LoadFight1
 	loadtrainer BIRD_KEEPER, VANCE2
 	startbattle
 	returnafterbattle
-	loadvar wda09, $2
-	clearflag $0079
+	loadvar wVanceFightCount, 2
+	clearflag ENGINE_VANCE
 	end
-; 0x19d8a7
 
-UnknownScript_0x19d8a7: ; 0x19d8a7
+.LoadFight2
 	loadtrainer BIRD_KEEPER, VANCE3
 	startbattle
 	returnafterbattle
-	clearflag $0079
+	clearflag ENGINE_VANCE
 	checkevent EVENT_VANCE_CARBOS
 	iftrue UnknownScript_0x19d8cb
-	checkevent $0267
+	checkevent EVENT_GOT_CARBOS_FROM_VANCE
 	iftrue UnknownScript_0x19d8ca
 	scall UnknownScript_0x19d90a
 	verbosegiveitem CARBOS, 1
 	iffalse UnknownScript_0x19d903
-	setevent $0267
+	setevent EVENT_GOT_CARBOS_FROM_VANCE
 	jump UnknownScript_0x19d8eb
-; 0x19d8ca
 
-UnknownScript_0x19d8ca: ; 0x19d8ca
+UnknownScript_0x19d8ca:
 	end
-; 0x19d8cb
 
-UnknownScript_0x19d8cb: ; 0x19d8cb
+UnknownScript_0x19d8cb:
 	loadfont
 	writetext UnknownText_0x19dc67
 	closetext
@@ -112,87 +88,58 @@
 	verbosegiveitem CARBOS, 1
 	iffalse UnknownScript_0x19d903
 	clearevent EVENT_VANCE_CARBOS
-	setevent $0267
+	setevent EVENT_GOT_CARBOS_FROM_VANCE
 	jump UnknownScript_0x19d8eb
-; 0x19d8df
 
-UnknownScript_0x19d8df: ; 0x19d8df
+UnknownScript_0x19d8df:
 	jumpstd asknumber1m
 	end
-; 0x19d8e3
 
-UnknownScript_0x19d8e3: ; 0x19d8e3
+UnknownScript_0x19d8e3:
 	jumpstd asknumber2m
 	end
-; 0x19d8e7
 
-UnknownScript_0x19d8e7: ; 0x19d8e7
+UnknownScript_0x19d8e7:
 	jumpstd registerednumberm
 	end
-; 0x19d8eb
 
-UnknownScript_0x19d8eb: ; 0x19d8eb
+UnknownScript_0x19d8eb:
 	jumpstd numberacceptedm
 	end
-; 0x19d8ef
 
-UnknownScript_0x19d8ef: ; 0x19d8ef
+UnknownScript_0x19d8ef:
 	jumpstd numberdeclinedm
 	end
-; 0x19d8f3
 
-UnknownScript_0x19d8f3: ; 0x19d8f3
+UnknownScript_0x19d8f3:
 	jumpstd phonefullm
 	end
-; 0x19d8f7
 
-UnknownScript_0x19d8f7: ; 0x19d8f7
+UnknownScript_0x19d8f7:
 	jumpstd rematchm
 	end
-; 0x19d8fb
 
-UnknownScript_0x19d8fb: ; 0x19d8fb
+UnknownScript_0x19d8fb:
 	jumpstd giftm
 	end
-; 0x19d8ff
 
-UnknownScript_0x19d8ff: ; 0x19d8ff
+UnknownScript_0x19d8ff:
 	jumpstd packfullm
 	end
-; 0x19d903
 
-UnknownScript_0x19d903: ; 0x19d903
+UnknownScript_0x19d903:
 	setevent EVENT_VANCE_CARBOS
 	jumpstd packfullm
 	end
-; 0x19d90a
 
-UnknownScript_0x19d90a: ; 0x19d90a
+UnknownScript_0x19d90a:
 	jumpstd rematchgiftm
 	end
-; 0x19d90e
 
-TrainerPsychicPhil: ; 0x19d90e
-	; bit/flag number
-	dw $441
+TrainerPsychicPhil:
+	trainer EVENT_BEAT_PSYCHIC_PHIL, PSYCHIC_T, PHIL, PsychicPhilSeenText, PsychicPhilBeatenText, $0000, PsychicPhilScript
 
-	; trainer group && trainer id
-	db PSYCHIC_T, PHIL
-
-	; text when seen
-	dw PsychicPhilSeenText
-
-	; text when trainer beaten
-	dw PsychicPhilBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PsychicPhilScript
-; 0x19d91a
-
-PsychicPhilScript: ; 0x19d91a
+PsychicPhilScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19dcfc
@@ -199,98 +146,75 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19d922
 
-TrainerFisherWilton1: ; 0x19d922
-	; bit/flag number
-	dw $457
+TrainerFisherWilton1:
+	trainer EVENT_BEAT_FISHER_WILTON, FISHER, WILTON1, FisherWilton1SeenText, FisherWilton1BeatenText, $0000, FisherWilton1Script
 
-	; trainer group && trainer id
-	db FISHER, WILTON1
-
-	; text when seen
-	dw FisherWilton1SeenText
-
-	; text when trainer beaten
-	dw FisherWilton1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw FisherWilton1Script
-; 0x19d92e
-
-FisherWilton1Script: ; 0x19d92e
-	writecode $17, $21
+FisherWilton1Script:
+	writecode VAR_CALLERID, PHONE_FISHER_WILTON
 	talkaftercancel
 	loadfont
-	checkflag $007a
+	checkflag ENGINE_WILTON
 	iftrue UnknownScript_0x19d96e
-	checkflag $0086
+	checkflag ENGINE_WILTON_HAS_ITEM
 	iftrue UnknownScript_0x19d9b4
-	checkcellnum $21
+	checkcellnum PHONE_FISHER_WILTON
 	iftrue UnknownScript_0x19d8eb
-	checkevent $0297
+	checkevent EVENT_WILTON_ASKED_FOR_PHONE_NUMBER
 	iftrue UnknownScript_0x19d957
 	writetext UnknownText_0x19daa8
 	keeptextopen
-	setevent $0297
+	setevent EVENT_WILTON_ASKED_FOR_PHONE_NUMBER
 	scall UnknownScript_0x19d8df
 	jump UnknownScript_0x19d95a
-; 0x19d957
 
-UnknownScript_0x19d957: ; 0x19d957
+UnknownScript_0x19d957:
 	scall UnknownScript_0x19d8e3
-UnknownScript_0x19d95a: ; 0x19d95a
-	askforphonenumber $21
+UnknownScript_0x19d95a:
+	askforphonenumber PHONE_FISHER_WILTON
 	if_equal $1, UnknownScript_0x19d8f3
 	if_equal $2, UnknownScript_0x19d8ef
 	trainertotext FISHER, WILTON1, $0
 	scall UnknownScript_0x19d8e7
 	jump UnknownScript_0x19d8eb
-; 0x19d96e
 
-UnknownScript_0x19d96e: ; 0x19d96e
+UnknownScript_0x19d96e:
 	scall UnknownScript_0x19d8f7
 	winlosstext FisherWilton1BeatenText, $0000
-	copybytetovar wda0a
-	if_equal $2, UnknownScript_0x19d985
-	if_equal $1, UnknownScript_0x19d98b
-	if_equal $0, UnknownScript_0x19d991
-UnknownScript_0x19d985: ; 0x19d985
+	copybytetovar wWiltonFightCount
+	if_equal 2, .Fight2
+	if_equal 1, .Fight1
+	if_equal 0, .LoadFight0
+.Fight2
 	checkevent EVENT_RESTORED_POWER_TO_KANTO
-	iftrue UnknownScript_0x19d9ab
-UnknownScript_0x19d98b: ; 0x19d98b
+	iftrue .LoadFight2
+.Fight1
 	checkevent EVENT_BEAT_ELITE_FOUR
-	iftrue UnknownScript_0x19d99e
-UnknownScript_0x19d991: ; 0x19d991
+	iftrue .LoadFight1
+.LoadFight0
 	loadtrainer FISHER, WILTON1
 	startbattle
 	returnafterbattle
-	loadvar wda0a, $1
-	clearflag $007a
+	loadvar wWiltonFightCount, 1
+	clearflag ENGINE_WILTON
 	end
-; 0x19d99e
 
-UnknownScript_0x19d99e: ; 0x19d99e
+.LoadFight1
 	loadtrainer FISHER, WILTON2
 	startbattle
 	returnafterbattle
-	loadvar wda0a, $2
-	clearflag $007a
+	loadvar wWiltonFightCount, 2
+	clearflag ENGINE_WILTON
 	end
-; 0x19d9ab
 
-UnknownScript_0x19d9ab: ; 0x19d9ab
+.LoadFight2
 	loadtrainer FISHER, WILTON3
 	startbattle
 	returnafterbattle
-	clearflag $007a
+	clearflag ENGINE_WILTON
 	end
-; 0x19d9b4
 
-UnknownScript_0x19d9b4: ; 0x19d9b4
+UnknownScript_0x19d9b4:
 	scall UnknownScript_0x19d8fb
 	checkevent EVENT_WILTON_HAS_ULTRA_BALL
 	iftrue UnknownScript_0x19d9c9
@@ -298,51 +222,30 @@
 	iftrue UnknownScript_0x19d9d2
 	checkevent EVENT_WILTON_HAS_POKE_BALL
 	iftrue UnknownScript_0x19d9db
-UnknownScript_0x19d9c9: ; 0x19d9c9
+UnknownScript_0x19d9c9:
 	verbosegiveitem ULTRA_BALL, 1
 	iffalse UnknownScript_0x19d9e7
 	jump UnknownScript_0x19d9e1
-; 0x19d9d2
 
-UnknownScript_0x19d9d2: ; 0x19d9d2
+UnknownScript_0x19d9d2:
 	verbosegiveitem GREAT_BALL, 1
 	iffalse UnknownScript_0x19d9e7
 	jump UnknownScript_0x19d9e1
-; 0x19d9db
 
-UnknownScript_0x19d9db: ; 0x19d9db
+UnknownScript_0x19d9db:
 	verbosegiveitem POKE_BALL, 1
 	iffalse UnknownScript_0x19d9e7
-UnknownScript_0x19d9e1: ; 0x19d9e1
-	clearflag $0086
+UnknownScript_0x19d9e1:
+	clearflag ENGINE_WILTON_HAS_ITEM
 	jump UnknownScript_0x19d8eb
-; 0x19d9e7
 
-UnknownScript_0x19d9e7: ; 0x19d9e7
+UnknownScript_0x19d9e7:
 	jump UnknownScript_0x19d8ff
-; 0x19d9ea
 
-TrainerFisherEdgar: ; 0x19d9ea
-	; bit/flag number
-	dw $458
+TrainerFisherEdgar:
+	trainer EVENT_BEAT_FISHER_EDGAR, FISHER, EDGAR, FisherEdgarSeenText, FisherEdgarBeatenText, $0000, FisherEdgarScript
 
-	; trainer group && trainer id
-	db FISHER, EDGAR
-
-	; text when seen
-	dw FisherEdgarSeenText
-
-	; text when trainer beaten
-	dw FisherEdgarBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw FisherEdgarScript
-; 0x19d9f6
-
-FisherEdgarScript: ; 0x19d9f6
+FisherEdgarScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19db6f
@@ -349,29 +252,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19d9fe
 
-TrainerCooltrainerfCybil: ; 0x19d9fe
-	; bit/flag number
-	dw $56a
+TrainerCooltrainerfCybil:
+	trainer EVENT_BEAT_COOLTRAINERF_CYBIL, COOLTRAINERF, CYBIL, CooltrainerfCybilSeenText, CooltrainerfCybilBeatenText, $0000, CooltrainerfCybilScript
 
-	; trainer group && trainer id
-	db COOLTRAINERF, CYBIL
-
-	; text when seen
-	dw CooltrainerfCybilSeenText
-
-	; text when trainer beaten
-	dw CooltrainerfCybilBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainerfCybilScript
-; 0x19da0a
-
-CooltrainerfCybilScript: ; 0x19da0a
+CooltrainerfCybilScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19df4d
@@ -378,29 +263,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19da12
 
-TrainerPokemaniacZach: ; 0x19da12
-	; bit/flag number
-	dw $4f0
+TrainerPokemaniacZach:
+	trainer EVENT_BEAT_POKEMANIAC_ZACH, POKEMANIAC, ZACH, PokemaniacZachSeenText, PokemaniacZachBeatenText, $0000, PokemaniacZachScript
 
-	; trainer group && trainer id
-	db POKEMANIAC, ZACH
-
-	; text when seen
-	dw PokemaniacZachSeenText
-
-	; text when trainer beaten
-	dw PokemaniacZachBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PokemaniacZachScript
-; 0x19da1e
-
-PokemaniacZachScript: ; 0x19da1e
+PokemaniacZachScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19dd7e
@@ -407,29 +274,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19da26
 
-TrainerCooltrainermAllen: ; 0x19da26
-	; bit/flag number
-	dw $55a
+TrainerCooltrainermAllen:
+	trainer EVENT_BEAT_COOLTRAINERM_ALLEN, COOLTRAINERM, ALLEN, CooltrainermAllenSeenText, CooltrainermAllenBeatenText, $0000, CooltrainermAllenScript
 
-	; trainer group && trainer id
-	db COOLTRAINERM, ALLEN
-
-	; text when seen
-	dw CooltrainermAllenSeenText
-
-	; text when trainer beaten
-	dw CooltrainermAllenBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainermAllenScript
-; 0x19da32
-
-CooltrainermAllenScript: ; 0x19da32
+CooltrainermAllenScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19de66
@@ -436,39 +285,30 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19da3a
 
-MapRoute44Signpost0Script: ; 0x19da3a
+MapRoute44Signpost0Script:
 	jumptext UnknownText_0x19dfb3
-; 0x19da3d
 
-MapRoute44Signpost1Script: ; 0x19da3d
+MapRoute44Signpost1Script:
 	jumptext UnknownText_0x19dfcc
-; 0x19da40
 
-FruitTreeScript_0x19da40: ; 0x19da40
+FruitTreeScript_0x19da40:
 	fruittree $10
-; 0x19da42
 
-ItemFragment_0x19da42: ; 0x19da42
+ItemFragment_0x19da42:
 	db MAX_REVIVE, 1
-; 0x19da44
 
-ItemFragment_0x19da44: ; 0x19da44
+ItemFragment_0x19da44:
 	db ULTRA_BALL, 1
-; 0x19da46
 
-ItemFragment_0x19da46: ; 0x19da46
+ItemFragment_0x19da46:
 	db MAX_REPEL, 1
-; 0x19da48
 
-MapRoute44SignpostItem2: ; 0x19da48
-	dw $00ae
-	db ELIXER
+MapRoute44SignpostItem2:
+	dwb EVENT_ROUTE_44_HIDDEN_ELIXER, ELIXER
 	
-; 0x19da4b
 
-FisherWilton1SeenText: ; 0x19da4b
+FisherWilton1SeenText:
 	text "Aack! You made me"
 	line "lose a POLIWAG!"
 
@@ -475,15 +315,13 @@
 	para "What are you going"
 	line "to do about it?"
 	done
-; 0x19da91
 
-FisherWilton1BeatenText: ; 0x19da91
+FisherWilton1BeatenText:
 	text "Just forget about"
 	line "it."
 	done
-; 0x19daa8
 
-UnknownText_0x19daa8: ; 0x19daa8
+UnknownText_0x19daa8:
 	text "That POLIWAG that"
 	line "got away…"
 	cont "It was huge."
@@ -491,9 +329,8 @@
 	para "I swear it must've"
 	line "been 16 feet long!"
 	done
-; 0x19daf7
 
-FisherEdgarSeenText: ; 0x19daf7
+FisherEdgarSeenText:
 	text "I fish until I"
 	line "can't anymore."
 
@@ -504,15 +341,13 @@
 	line "relationship"
 	cont "with my #MON."
 	done
-; 0x19db55
 
-FisherEdgarBeatenText: ; 0x19db55
+FisherEdgarBeatenText:
 	text "Hmmmm… "
 	line "This isn't right."
 	done
-; 0x19db6f
 
-UnknownText_0x19db6f: ; 0x19db6f
+UnknownText_0x19db6f:
 	text "That's 100 wins"
 	line "to 101 losses."
 
@@ -519,22 +354,19 @@
 	para "I won't battle"
 	line "again for a while."
 	done
-; 0x19dbaf
 
-Bird_keeperVance1SeenText: ; 0x19dbaf
+Bird_keeperVance1SeenText:
 	text "Do you know about"
 	line "the legendary bird"
 	cont "#MON?"
 	done
-; 0x19dbdb
 
-Bird_keeperVance1BeatenText: ; 0x19dbdb
+Bird_keeperVance1BeatenText:
 	text "Whew! You're hot"
 	line "stuff."
 	done
-; 0x19dbf3
 
-UnknownText_0x19dbf3: ; 0x19dbf3
+UnknownText_0x19dbf3:
 	text "ARTICUNO, ZAPDOS"
 	line "and MOLTRES are"
 
@@ -545,9 +377,8 @@
 	line "other legendary"
 	cont "birds, though."
 	done
-; 0x19dc67
 
-UnknownText_0x19dc67: ; 0x19dc67
+UnknownText_0x19dc67:
 	text "Why can't I ever"
 	line "beat you?"
 
@@ -557,41 +388,35 @@
 	para "I couldn't give"
 	line "you last time."
 	done
-; 0x19dcc4
 
-PsychicPhilSeenText: ; 0x19dcc4
+PsychicPhilSeenText:
 	text "I'm gonna win,"
 	line "for sure!"
 	done
-; 0x19dcdd
 
-PsychicPhilBeatenText: ; 0x19dcdd
+PsychicPhilBeatenText:
 	text "Arrgh… That's a"
 	line "shocking loss…"
 	done
-; 0x19dcfc
 
-UnknownText_0x19dcfc: ; 0x19dcfc
+UnknownText_0x19dcfc:
 	text "It's important to"
 	line "have conviction"
 	cont "on your side."
 	done
-; 0x19dd2c
 
-PokemaniacZachSeenText: ; 0x19dd2c
+PokemaniacZachSeenText:
 	text "I'll do anything"
 	line "to get my hands on"
 	cont "rare #MON!"
 	done
-; 0x19dd5b
 
-PokemaniacZachBeatenText: ; 0x19dd5b
+PokemaniacZachBeatenText:
 	text "Oooh, your #MON"
 	line "are so appealing."
 	done
-; 0x19dd7e
 
-UnknownText_0x19dd7e: ; 0x19dd7e
+UnknownText_0x19dd7e:
 	text "If a #MON has"
 	line "different colors"
 
@@ -601,9 +426,8 @@
 	para "What? You mean"
 	line "that's not true?"
 	done
-; 0x19dddc
 
-CooltrainermAllenSeenText: ; 0x19dddc
+CooltrainermAllenSeenText:
 	text "I can tell you're"
 	line "a good trainer by"
 	cont "looking at you."
@@ -612,15 +436,13 @@
 	line "MON, and I can see"
 	cont "that you are too."
 	done
-; 0x19de43
 
-CooltrainermAllenBeatenText: ; 0x19de43
+CooltrainermAllenBeatenText:
 	text "Tch! It's a total"
 	line "loss on my part."
 	done
-; 0x19de66
 
-UnknownText_0x19de66: ; 0x19de66
+UnknownText_0x19de66:
 	text "Wow. You have a"
 	line "lot of BADGES."
 
@@ -636,9 +458,8 @@
 	para "He really hammered"
 	line "me."
 	done
-; 0x19deed
 
-CooltrainerfCybilSeenText: ; 0x19deed
+CooltrainerfCybilSeenText:
 	text "You look strong."
 
 	para "Good trainers seek"
@@ -645,15 +466,13 @@
 	line "tough opponents"
 	cont "instinctively."
 	done
-; 0x19df31
 
-CooltrainerfCybilBeatenText: ; 0x19df31
+CooltrainerfCybilBeatenText:
 	text "Nope! This won't"
 	line "do at all."
 	done
-; 0x19df4d
 
-UnknownText_0x19df4d: ; 0x19df4d
+UnknownText_0x19df4d:
 	text "We all get better"
 	line "by experiencing"
 	cont "many battles."
@@ -662,50 +481,46 @@
 	line "become what I am"
 	cont "today--an elite."
 	done
-; 0x19dfb3
 
-UnknownText_0x19dfb3: ; 0x19dfb3
+UnknownText_0x19dfb3:
 	text "ROUTE 44"
 	line "ICE PATH AHEAD"
 	done
-; 0x19dfcc
 
-UnknownText_0x19dfcc: ; 0x19dfcc
+UnknownText_0x19dfcc:
 	text "ROUTE 44"
 
 	para "MAHOGANY TOWN -"
 	line "BLACKTHORN CITY"
 	done
-; 0x19dff6
 
-Route44_MapEventHeader: ; 0x19dff6
+Route44_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $7, $38, 1, GROUP_ICE_PATH_1F, MAP_ICE_PATH_1F
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 3
-	signpost 7, 53, $0, MapRoute44Signpost0Script
-	signpost 10, 6, $0, MapRoute44Signpost1Script
-	signpost 9, 32, $7, MapRoute44SignpostItem2
+	signpost 7, 53, SIGNPOST_READ, MapRoute44Signpost0Script
+	signpost 10, 6, SIGNPOST_READ, MapRoute44Signpost1Script
+	signpost 9, 32, SIGNPOST_ITEM, MapRoute44SignpostItem2
 
-	; people-events
+.PersonEvents:
 	db 11
-	person_event SPRITE_FISHER, 7, 39, $6, $0, 255, 255, $a2, 1, TrainerFisherWilton1, $ffff
-	person_event SPRITE_FISHER, 17, 23, $9, $0, 255, 255, $a2, 1, TrainerFisherEdgar, $ffff
-	person_event SPRITE_YOUNGSTER, 13, 14, $1f, $0, 255, 255, $92, 3, TrainerPsychicPhil, $ffff
-	person_event SPRITE_SUPER_NERD, 6, 47, $1f, $0, 255, 255, $a2, 3, TrainerPokemaniacZach, $ffff
-	person_event SPRITE_YOUNGSTER, 9, 55, $6, $0, 255, 255, $a2, 2, TrainerBird_keeperVance1, $ffff
-	person_event SPRITE_COOLTRAINER_M, 19, 45, $8, $0, 255, 255, $82, 5, TrainerCooltrainermAllen, $ffff
-	person_event SPRITE_COOLTRAINER_F, 18, 35, $8, $0, 255, 255, $82, 5, TrainerCooltrainerfCybil, $ffff
-	person_event SPRITE_FRUIT_TREE, 9, 13, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x19da40, $ffff
-	person_event SPRITE_POKE_BALL, 12, 34, $1, $0, 255, 255, $1, 0, ItemFragment_0x19da42, $06b6
-	person_event SPRITE_POKE_BALL, 8, 49, $1, $0, 255, 255, $1, 0, ItemFragment_0x19da44, $06b7
-	person_event SPRITE_POKE_BALL, 13, 18, $1, $0, 255, 255, $1, 0, ItemFragment_0x19da46, $07bd
-; 0x19e09f
+	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
--- a/maps/Route45.asm
+++ b/maps/Route45.asm
@@ -1,170 +1,118 @@
-Route45_MapScriptHeader: ; 0x19e09f
-	; trigger count
+Route45_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x19e0a1
 
-TrainerBlackbeltKenji3: ; 0x19e0a1
-	; bit/flag number
-	dw $4ab
+TrainerBlackbeltKenji:
+	trainer EVENT_BEAT_BLACKBELT_KENJI, BLACKBELT_T, KENJI3, BlackbeltKenji3SeenText, BlackbeltKenji3BeatenText, $0000, BlackbeltKenji3Script
 
-	; trainer group && trainer id
-	db BLACKBELT_T, KENJI3
-
-	; text when seen
-	dw BlackbeltKenji3SeenText
-
-	; text when trainer beaten
-	dw BlackbeltKenji3BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw BlackbeltKenji3Script
-; 0x19e0ad
-
-BlackbeltKenji3Script: ; 0x19e0ad
-	writecode $17, $22
+BlackbeltKenji3Script:
+	writecode VAR_CALLERID, PHONE_BLACKBELT_KENJI
 	talkaftercancel
 	loadfont
-	checkcellnum $22
+	checkcellnum PHONE_BLACKBELT_KENJI
 	iftrue UnknownScript_0x19e0e4
-	checkevent $0299
+	checkevent EVENT_KENJI_ASKED_FOR_PHONE_NUMBER
 	iftrue UnknownScript_0x19e0cd
 	special Function11485
 	writetext UnknownText_0x19e5e2
 	closetext
-	setevent $0299
+	setevent EVENT_KENJI_ASKED_FOR_PHONE_NUMBER
 	scall UnknownScript_0x19e11b
 	jump UnknownScript_0x19e0d0
-; 0x19e0cd
 
-UnknownScript_0x19e0cd: ; 0x19e0cd
+UnknownScript_0x19e0cd:
 	scall UnknownScript_0x19e11f
-UnknownScript_0x19e0d0: ; 0x19e0d0
-	askforphonenumber $22
+UnknownScript_0x19e0d0:
+	askforphonenumber PHONE_BLACKBELT_KENJI
 	if_equal $1, UnknownScript_0x19e12f
 	if_equal $2, UnknownScript_0x19e12b
 	trainertotext BLACKBELT_T, KENJI3, $0
 	scall UnknownScript_0x19e123
 	jump UnknownScript_0x19e127
-; 0x19e0e4
 
-UnknownScript_0x19e0e4: ; 0x19e0e4
-	checkcode $1a
+UnknownScript_0x19e0e4:
+	checkcode VAR_KENJI_BREAK
 	if_not_equal $1, UnknownScript_0x19e127
 	checkmorn
 	iftrue UnknownScript_0x19e10c
 	checknite
 	iftrue UnknownScript_0x19e112
-	checkevent $026a
+	checkevent EVENT_KENJI_ON_BREAK
 	iffalse UnknownScript_0x19e127
 	scall UnknownScript_0x19e137
 	verbosegiveitem PP_UP, 1
 	iffalse UnknownScript_0x19e118
-	clearevent $026a
+	clearevent EVENT_KENJI_ON_BREAK
 	special Function11485
 	jump UnknownScript_0x19e127
-; 0x19e10c
 
-UnknownScript_0x19e10c: ; 0x19e10c
+UnknownScript_0x19e10c:
 	writetext UnknownText_0x19e634
 	closetext
 	loadmovesprites
 	end
-; 0x19e112
 
-UnknownScript_0x19e112: ; 0x19e112
+UnknownScript_0x19e112:
 	writetext UnknownText_0x19e66c
 	closetext
 	loadmovesprites
 	end
-; 0x19e118
 
-UnknownScript_0x19e118: ; 0x19e118
+UnknownScript_0x19e118:
 	jump UnknownScript_0x19e13b
-; 0x19e11b
 
-UnknownScript_0x19e11b: ; 0x19e11b
+UnknownScript_0x19e11b:
 	jumpstd asknumber1m
 	end
-; 0x19e11f
 
-UnknownScript_0x19e11f: ; 0x19e11f
+UnknownScript_0x19e11f:
 	jumpstd asknumber2m
 	end
-; 0x19e123
 
-UnknownScript_0x19e123: ; 0x19e123
+UnknownScript_0x19e123:
 	jumpstd registerednumberm
 	end
-; 0x19e127
 
-UnknownScript_0x19e127: ; 0x19e127
+UnknownScript_0x19e127:
 	jumpstd numberacceptedm
 	end
-; 0x19e12b
 
-UnknownScript_0x19e12b: ; 0x19e12b
+UnknownScript_0x19e12b:
 	jumpstd numberdeclinedm
 	end
-; 0x19e12f
 
-UnknownScript_0x19e12f: ; 0x19e12f
+UnknownScript_0x19e12f:
 	jumpstd phonefullm
 	end
-; 0x19e133
 
-UnknownScript_0x19e133: ; 0x19e133
+UnknownScript_0x19e133:
 	jumpstd rematchm
 	end
-; 0x19e137
 
-UnknownScript_0x19e137: ; 0x19e137
+UnknownScript_0x19e137:
 	jumpstd giftm
 	end
-; 0x19e13b
 
-UnknownScript_0x19e13b: ; 0x19e13b
+UnknownScript_0x19e13b:
 	jumpstd packfullm
 	end
-; 0x19e13f
 
-UnknownScript_0x19e13f: ; 0x19e13f
+UnknownScript_0x19e13f:
 	setevent EVENT_PARRY_IRON
 	jumpstd packfullm
 	end
-; 0x19e146
 
-UnknownScript_0x19e146: ; 0x19e146
+UnknownScript_0x19e146:
 	jumpstd rematchgiftm
 	end
-; 0x19e14a
 
-TrainerHikerErik: ; 0x19e14a
-	; bit/flag number
-	dw $52a
+TrainerHikerErik:
+	trainer EVENT_BEAT_HIKER_ERIK, HIKER, ERIK, HikerErikSeenText, HikerErikBeatenText, $0000, HikerErikScript
 
-	; trainer group && trainer id
-	db HIKER, ERIK
-
-	; text when seen
-	dw HikerErikSeenText
-
-	; text when trainer beaten
-	dw HikerErikBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw HikerErikScript
-; 0x19e156
-
-HikerErikScript: ; 0x19e156
+HikerErikScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19e301
@@ -171,29 +119,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19e15e
 
-TrainerHikerMichael: ; 0x19e15e
-	; bit/flag number
-	dw $52b
+TrainerHikerMichael:
+	trainer EVENT_BEAT_HIKER_MICHAEL, HIKER, MICHAEL, HikerMichaelSeenText, HikerMichaelBeatenText, $0000, HikerMichaelScript
 
-	; trainer group && trainer id
-	db HIKER, MICHAEL
-
-	; text when seen
-	dw HikerMichaelSeenText
-
-	; text when trainer beaten
-	dw HikerMichaelBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw HikerMichaelScript
-; 0x19e16a
-
-HikerMichaelScript: ; 0x19e16a
+HikerMichaelScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19e3b1
@@ -200,108 +130,84 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19e172
 
-TrainerHikerParry3: ; 0x19e172
-	; bit/flag number
-	dw $52c
+TrainerHikerParry:
+	trainer EVENT_BEAT_HIKER_PARRY, HIKER, PARRY3, HikerParry3SeenText, HikerParry3BeatenText, $0000, HikerParry3Script
 
-	; trainer group && trainer id
-	db HIKER, PARRY3
-
-	; text when seen
-	dw HikerParry3SeenText
-
-	; text when trainer beaten
-	dw HikerParry3BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw HikerParry3Script
-; 0x19e17e
-
-HikerParry3Script: ; 0x19e17e
-	writecode $17, $23
+HikerParry3Script:
+	writecode VAR_CALLERID, PHONE_HIKER_PARRY
 	talkaftercancel
 	loadfont
-	checkflag $007b
+	checkflag ENGINE_PARRY
 	iftrue UnknownScript_0x19e1b8
-	checkcellnum $23
+	checkcellnum PHONE_HIKER_PARRY
 	iftrue UnknownScript_0x19e127
-	checkevent $029b
+	checkevent EVENT_PARRY_ASKED_FOR_PHONE_NUMBER
 	iftrue UnknownScript_0x19e1a1
 	writetext UnknownText_0x19e434
 	keeptextopen
-	setevent $029b
+	setevent EVENT_PARRY_ASKED_FOR_PHONE_NUMBER
 	scall UnknownScript_0x19e11b
 	jump UnknownScript_0x19e1a4
-; 0x19e1a1
 
-UnknownScript_0x19e1a1: ; 0x19e1a1
+UnknownScript_0x19e1a1:
 	scall UnknownScript_0x19e11f
-UnknownScript_0x19e1a4: ; 0x19e1a4
-	askforphonenumber $23
+UnknownScript_0x19e1a4:
+	askforphonenumber PHONE_HIKER_PARRY
 	if_equal $1, UnknownScript_0x19e12f
 	if_equal $2, UnknownScript_0x19e12b
 	trainertotext HIKER, PARRY1, $0
 	scall UnknownScript_0x19e123
 	jump UnknownScript_0x19e127
-; 0x19e1b8
 
-UnknownScript_0x19e1b8: ; 0x19e1b8
+UnknownScript_0x19e1b8:
 	scall UnknownScript_0x19e133
 	winlosstext HikerParry3BeatenText, $0000
-	copybytetovar wda0c
-	if_equal $2, UnknownScript_0x19e1cf
-	if_equal $1, UnknownScript_0x19e1d5
-	if_equal $0, UnknownScript_0x19e1db
-UnknownScript_0x19e1cf: ; 0x19e1c
+	copybytetovar wParryFightCount
+	if_equal 2, .Fight2
+	if_equal 1, .Fight1
+	if_equal 0, .LoadFight0
+.Fight2
 	checkevent EVENT_RESTORED_POWER_TO_KANTO
-	iftrue UnknownScript_0x19e1f5
-UnknownScript_0x19e1d5: ; 0x19e1d5
+	iftrue .LoadFight2
+.Fight1
 	checkevent EVENT_BEAT_ELITE_FOUR
-	iftrue UnknownScript_0x19e1e8
-UnknownScript_0x19e1db: ; 0x19e1db
+	iftrue .LoadFight1
+.LoadFight0
 	loadtrainer HIKER, PARRY3
 	startbattle
 	returnafterbattle
-	loadvar wda0c, $1
-	clearflag $007b
+	loadvar wParryFightCount, 1
+	clearflag ENGINE_PARRY
 	end
-; 0x19e1e8
 
-UnknownScript_0x19e1e8: ; 0x19e1e8
+.LoadFight1
 	loadtrainer HIKER, PARRY1
 	startbattle
 	returnafterbattle
-	loadvar wda0c, $2
-	clearflag $007b
+	loadvar wParryFightCount, 2
+	clearflag ENGINE_PARRY
 	end
-; 0x19e1f5
 
-UnknownScript_0x19e1f5: ; 0x19e1f5
+.LoadFight2
 	loadtrainer HIKER, PARRY2
 	startbattle
 	returnafterbattle
-	clearflag $007b
+	clearflag ENGINE_PARRY
 	checkevent EVENT_PARRY_IRON
 	iftrue UnknownScript_0x19e219
-	checkevent $0268
+	checkevent EVENT_GOT_IRON_FROM_PARRY
 	iftrue UnknownScript_0x19e218
 	scall UnknownScript_0x19e146
 	verbosegiveitem IRON, 1
 	iffalse UnknownScript_0x19e13f
-	setevent $0268
+	setevent EVENT_GOT_IRON_FROM_PARRY
 	jump UnknownScript_0x19e127
-; 0x19e218
 
-UnknownScript_0x19e218: ; 0x19e218
+UnknownScript_0x19e218:
 	end
-; 0x19e219
 
-UnknownScript_0x19e219: ; 0x19e219
+UnknownScript_0x19e219:
 	loadfont
 	writetext UnknownText_0x19e52c
 	closetext
@@ -308,31 +214,13 @@
 	verbosegiveitem IRON, 1
 	iffalse UnknownScript_0x19e13f
 	clearevent EVENT_PARRY_IRON
-	setevent $0268
+	setevent EVENT_GOT_IRON_FROM_PARRY
 	jump UnknownScript_0x19e127
-; 0x19e22d
 
-TrainerHikerTimothy: ; 0x19e22d
-	; bit/flag number
-	dw $52d
+TrainerHikerTimothy:
+	trainer EVENT_BEAT_HIKER_TIMOTHY, HIKER, TIMOTHY, HikerTimothySeenText, HikerTimothyBeatenText, $0000, HikerTimothyScript
 
-	; trainer group && trainer id
-	db HIKER, TIMOTHY
-
-	; text when seen
-	dw HikerTimothySeenText
-
-	; text when trainer beaten
-	dw HikerTimothyBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw HikerTimothyScript
-; 0x19e239
-
-HikerTimothyScript: ; 0x19e239
+HikerTimothyScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19e4f1
@@ -339,29 +227,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19e241
 
-TrainerCooltrainermRyan: ; 0x19e241
-	; bit/flag number
-	dw $54f
+TrainerCooltrainermRyan:
+	trainer EVENT_BEAT_COOLTRAINERM_RYAN, COOLTRAINERM, RYAN, CooltrainermRyanSeenText, CooltrainermRyanBeatenText, $0000, CooltrainermRyanScript
 
-	; trainer group && trainer id
-	db COOLTRAINERM, RYAN
-
-	; text when seen
-	dw CooltrainermRyanSeenText
-
-	; text when trainer beaten
-	dw CooltrainermRyanBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainermRyanScript
-; 0x19e24d
-
-CooltrainermRyanScript: ; 0x19e24d
+CooltrainermRyanScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19e70d
@@ -368,29 +238,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19e255
 
-TrainerCooltrainerfKelly: ; 0x19e255
-	; bit/flag number
-	dw $561
+TrainerCooltrainerfKelly:
+	trainer EVENT_BEAT_COOLTRAINERF_KELLY, COOLTRAINERF, KELLY, CooltrainerfKellySeenText, CooltrainerfKellyBeatenText, $0000, CooltrainerfKellyScript
 
-	; trainer group && trainer id
-	db COOLTRAINERF, KELLY
-
-	; text when seen
-	dw CooltrainerfKellySeenText
-
-	; text when trainer beaten
-	dw CooltrainerfKellyBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainerfKellyScript
-; 0x19e261
-
-CooltrainerfKellyScript: ; 0x19e261
+CooltrainerfKellyScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19e7d1
@@ -397,12 +249,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19e269
 
-YoungsterScript_0x19e269: ; 0x19e269
+YoungsterScript_0x19e269:
 	faceplayer
 	loadfont
-	checkevent $05c3
+	checkevent EVENT_BEAT_CAMPER_QUENTIN
 	iftrue UnknownScript_0x19e285
 	writetext UnknownText_0x19e87f
 	closetext
@@ -411,56 +262,45 @@
 	loadtrainer CAMPER, QUENTIN
 	startbattle
 	returnafterbattle
-	setevent $05c3
+	setevent EVENT_BEAT_CAMPER_QUENTIN
 	loadmovesprites
 	end
-; 0x19e285
 
-UnknownScript_0x19e285: ; 0x19e285
+UnknownScript_0x19e285:
 	writetext UnknownText_0x19e8bb
 	closetext
 	loadmovesprites
 	end
-; 0x19e28b
 
-UnknownScript_0x19e28b: ; 0x19e28b
+UnknownScript_0x19e28b:
 	writetext UnknownText_0x19e830
 	closetext
 	loadmovesprites
 	end
-; 0x19e291
 
-MapRoute45Signpost0Script: ; 0x19e291
+MapRoute45Signpost0Script:
 	jumptext UnknownText_0x19e8fe
-; 0x19e294
 
-FruitTreeScript_0x19e294: ; 0x19e294
+FruitTreeScript_0x19e294:
 	fruittree $c
-; 0x19e296
 
-ItemFragment_0x19e296: ; 0x19e296
+ItemFragment_0x19e296:
 	db NUGGET, 1
-; 0x19e298
 
-ItemFragment_0x19e298: ; 0x19e298
+ItemFragment_0x19e298:
 	db REVIVE, 1
-; 0x19e29a
 
-ItemFragment_0x19e29a: ; 0x19e29a
+ItemFragment_0x19e29a:
 	db ELIXER, 1
-; 0x19e29c
 
-ItemFragment_0x19e29c: ; 0x19e29c
+ItemFragment_0x19e29c:
 	db MAX_POTION, 1
-; 0x19e29e
 
-MapRoute45SignpostItem1: ; 0x19e29e
-	dw $00af
-	db PP_UP
+MapRoute45SignpostItem1:
+	dwb EVENT_ROUTE_45_HIDDEN_PP_UP, PP_UP
 	
-; 0x19e2a1
 
-HikerErikSeenText: ; 0x19e2a1
+HikerErikSeenText:
 	text "Be prepared for"
 	line "anything!"
 
@@ -468,14 +308,12 @@
 	line "#MON have been"
 	cont "raised properly!"
 	done
-; 0x19e2ef
 
-HikerErikBeatenText: ; 0x19e2ef
+HikerErikBeatenText:
 	text "Oh, I lost that!"
 	done
-; 0x19e301
 
-UnknownText_0x19e301: ; 0x19e301
+UnknownText_0x19e301:
 	text "I'll head back to"
 	line "BLACKTHORN's ICE"
 
@@ -482,9 +320,8 @@
 	para "PATH and train"
 	line "some more."
 	done
-; 0x19e33d
 
-HikerMichaelSeenText: ; 0x19e33d
+HikerMichaelSeenText:
 	text "Yo! You're spunky!"
 	line "But you know what?"
 
@@ -492,15 +329,13 @@
 	line "sheer spunkiness,"
 	cont "I'm the man!"
 	done
-; 0x19e392
 
-HikerMichaelBeatenText: ; 0x19e392
+HikerMichaelBeatenText:
 	text "My #MON weren't"
 	line "spunky enough!"
 	done
-; 0x19e3b1
 
-UnknownText_0x19e3b1: ; 0x19e3b1
+UnknownText_0x19e3b1:
 	text "Boy, do I love"
 	line "HP UP! Mmmm, yum!"
 
@@ -509,21 +344,18 @@
 
 	para "I can't help it!"
 	done
-; 0x19e3fd
 
-HikerParry3SeenText: ; 0x19e3fd
+HikerParry3SeenText:
 	text "My #MON are"
 	line "power packed!"
 	done
-; 0x19e418
 
-HikerParry3BeatenText: ; 0x19e418
+HikerParry3BeatenText:
 	text "Wahahah! I'm the"
 	line "big loser!"
 	done
-; 0x19e434
 
-UnknownText_0x19e434: ; 0x19e434
+UnknownText_0x19e434:
 	text "I'm not much good"
 	line "at thinking, see?"
 
@@ -530,9 +362,8 @@
 	para "So, I just plow"
 	line "ahead with power!"
 	done
-; 0x19e47a
 
-HikerTimothySeenText: ; 0x19e47a
+HikerTimothySeenText:
 	text "Why do I climb"
 	line "mountains?"
 
@@ -545,15 +376,13 @@
 	para "Because they're"
 	line "there!"
 	done
-; 0x19e4d6
 
-HikerTimothyBeatenText: ; 0x19e4d6
+HikerTimothyBeatenText:
 	text "Losses…"
 	line "They're there too!"
 	done
-; 0x19e4f1
 
-UnknownText_0x19e4f1: ; 0x19e4f1
+UnknownText_0x19e4f1:
 	text "The best thing to"
 	line "ever happen to me"
 
@@ -560,9 +389,8 @@
 	para "was discovering"
 	line "#MON."
 	done
-; 0x19e52c
 
-UnknownText_0x19e52c: ; 0x19e52c
+UnknownText_0x19e52c:
 	text "I just can't find"
 	line "a way to win!"
 
@@ -574,9 +402,8 @@
 	para "you couldn't take"
 	line "when we last met."
 	done
-; 0x19e59c
 
-BlackbeltKenji3SeenText: ; 0x19e59c
+BlackbeltKenji3SeenText:
 	text "I was training"
 	line "here alone."
 
@@ -583,14 +410,12 @@
 	para "Behold the fruits"
 	line "of my labor!"
 	done
-; 0x19e5d7
 
-BlackbeltKenji3BeatenText: ; 0x19e5d7
+BlackbeltKenji3BeatenText:
 	text "Waaaargh!"
 	done
-; 0x19e5e2
 
-UnknownText_0x19e5e2: ; 0x19e5e2
+UnknownText_0x19e5e2:
 	text "This calls for"
 	line "extreme measures."
 
@@ -598,16 +423,14 @@
 	line "hills and train in"
 	cont "solitude."
 	done
-; 0x19e634
 
-UnknownText_0x19e634: ; 0x19e634
+UnknownText_0x19e634:
 	text "I'm going to train"
 	line "a bit more before"
 	cont "I break for lunch."
 	done
-; 0x19e66c
 
-UnknownText_0x19e66c: ; 0x19e66c
+UnknownText_0x19e66c:
 	text "We had plenty of"
 	line "rest at lunch, so"
 
@@ -617,22 +440,19 @@
 	para "We're going to"
 	line "train again!"
 	done
-; 0x19e6cb
 
-CooltrainermRyanSeenText: ; 0x19e6cb
+CooltrainermRyanSeenText:
 	text "What are your"
 	line "thoughts on rais-"
 	cont "ing #MON?"
 	done
-; 0x19e6f6
 
-CooltrainermRyanBeatenText: ; 0x19e6f6
+CooltrainermRyanBeatenText:
 	text "You've won my"
 	line "respect."
 	done
-; 0x19e70d
 
-UnknownText_0x19e70d: ; 0x19e70d
+UnknownText_0x19e70d:
 	text "I see you're rais-"
 	line "ing your #MON"
 	cont "with care."
@@ -641,9 +461,8 @@
 	line "will save you in"
 	cont "tough situations."
 	done
-; 0x19e76f
 
-CooltrainerfKellySeenText: ; 0x19e76f
+CooltrainerfKellySeenText:
 	text "What is your"
 	line "battle strategy?"
 
@@ -651,14 +470,12 @@
 	line "use strong moves"
 	cont "indiscriminately."
 	done
-; 0x19e7c2
 
-CooltrainerfKellyBeatenText: ; 0x19e7c2
+CooltrainerfKellyBeatenText:
 	text "Fine. I lost."
 	done
-; 0x19e7d1
 
-UnknownText_0x19e7d1: ; 0x19e7d1
+UnknownText_0x19e7d1:
 	text "I'm not in favor"
 	line "of overly power-"
 	cont "ful moves."
@@ -667,9 +484,8 @@
 	line "I also don't want"
 	cont "to harm #MON."
 	done
-; 0x19e830
 
-UnknownText_0x19e830: ; 0x19e830
+UnknownText_0x19e830:
 	text "I'm really, really"
 	line "tough!"
 
@@ -677,21 +493,18 @@
 	line "I can prove how"
 	cont "tough I really am?"
 	done
-; 0x19e87f
 
-UnknownText_0x19e87f: ; 0x19e87f
+UnknownText_0x19e87f:
 	text "I'm really, really"
 	line "tough!"
 	done
-; 0x19e899
 
-UnknownText_0x19e899: ; 0x19e899
+UnknownText_0x19e899:
 	text "I was tough at the"
 	line "BATTLE TOWER…"
 	done
-; 0x19e8bb
 
-UnknownText_0x19e8bb: ; 0x19e8bb
+UnknownText_0x19e8bb:
 	text "Have you been to"
 	line "the BATTLE TOWER?"
 
@@ -698,43 +511,40 @@
 	para "I never, ever lose"
 	line "there, but…"
 	done
-; 0x19e8fe
 
-UnknownText_0x19e8fe: ; 0x19e8fe
+UnknownText_0x19e8fe:
 	text "ROUTE 45"
 	line "MOUNTAIN RD. AHEAD"
 	done
-; 0x19e91b
 
-Route45_MapEventHeader: ; 0x19e91b
+Route45_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $5, $2, 1, GROUP_DARK_CAVE_BLACKTHORN_ENTRANCE, MAP_DARK_CAVE_BLACKTHORN_ENTRANCE
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 4, 10, $0, MapRoute45Signpost0Script
-	signpost 80, 13, $7, MapRoute45SignpostItem1
+	signpost 4, 10, SIGNPOST_READ, MapRoute45Signpost0Script
+	signpost 80, 13, SIGNPOST_ITEM, MapRoute45SignpostItem1
 
-	; people-events
+.PersonEvents:
 	db 13
-	person_event SPRITE_POKEFAN_M, 20, 14, $9, $0, 255, 255, $b2, 1, TrainerHikerErik, $ffff
-	person_event SPRITE_POKEFAN_M, 69, 19, $9, $0, 255, 255, $b2, 2, TrainerHikerMichael, $ffff
-	person_event SPRITE_POKEFAN_M, 32, 9, $7, $0, 255, 255, $b2, 2, TrainerHikerParry3, $ffff
-	person_event SPRITE_POKEFAN_M, 69, 13, $8, $0, 255, 255, $b2, 1, TrainerHikerTimothy, $ffff
-	person_event SPRITE_BLACK_BELT, 54, 15, $a, $0, 255, 255, $b2, 2, TrainerBlackbeltKenji3, $ffff
-	person_event SPRITE_COOLTRAINER_M, 22, 21, $8, $0, 255, 255, $82, 1, TrainerCooltrainermRyan, $ffff
-	person_event SPRITE_COOLTRAINER_F, 40, 9, $a, $0, 255, 255, $82, 3, TrainerCooltrainerfKelly, $ffff
-	person_event SPRITE_FRUIT_TREE, 86, 20, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x19e294, $ffff
-	person_event SPRITE_POKE_BALL, 55, 10, $1, $0, 255, 255, $1, 0, ItemFragment_0x19e296, $06b8
-	person_event SPRITE_POKE_BALL, 70, 9, $1, $0, 255, 255, $1, 0, ItemFragment_0x19e298, $06b9
-	person_event SPRITE_POKE_BALL, 24, 10, $1, $0, 255, 255, $1, 0, ItemFragment_0x19e29a, $06ba
-	person_event SPRITE_POKE_BALL, 37, 11, $1, $0, 255, 255, $1, 0, ItemFragment_0x19e29c, $06bb
-	person_event SPRITE_YOUNGSTER, 74, 8, $3, $0, 255, 255, $a0, 0, YoungsterScript_0x19e269, $ffff
-; 0x19e9d9
+	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
--- a/maps/Route46.asm
+++ b/maps/Route46.asm
@@ -1,32 +1,14 @@
-Route46_MapScriptHeader: ; 0x1a967e
-	; trigger count
+Route46_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1a9680
 
-TrainerCamperTed: ; 0x1a9680
-	; bit/flag number
-	dw $424
+TrainerCamperTed:
+	trainer EVENT_BEAT_CAMPER_TED, CAMPER, TED, CamperTedSeenText, CamperTedBeatenText, $0000, CamperTedScript
 
-	; trainer group && trainer id
-	db CAMPER, TED
-
-	; text when seen
-	dw CamperTedSeenText
-
-	; text when trainer beaten
-	dw CamperTedBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CamperTedScript
-; 0x1a968c
-
-CamperTedScript: ; 0x1a968c
+CamperTedScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a9851
@@ -33,108 +15,84 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a9694
 
-TrainerPicnickerErin1: ; 0x1a9694
-	; bit/flag number
-	dw $487
+TrainerPicnickerErin1:
+	trainer EVENT_BEAT_PICNICKER_ERIN, PICNICKER, ERIN1, PicnickerErin1SeenText, PicnickerErin1BeatenText, $0000, PicnickerErin1Script
 
-	; trainer group && trainer id
-	db PICNICKER, ERIN1
-
-	; text when seen
-	dw PicnickerErin1SeenText
-
-	; text when trainer beaten
-	dw PicnickerErin1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PicnickerErin1Script
-; 0x1a96a0
-
-PicnickerErin1Script: ; 0x1a96a0
-	writecode $17, $24
+PicnickerErin1Script:
+	writecode VAR_CALLERID, PHONE_PICNICKER_ERIN
 	talkaftercancel
 	loadfont
-	checkflag $007c
+	checkflag ENGINE_ERIN
 	iftrue UnknownScript_0x1a96da
-	checkcellnum $24
+	checkcellnum PHONE_PICNICKER_ERIN
 	iftrue UnknownScript_0x1a975b
-	checkevent $029d
+	checkevent EVENT_ERIN_ASKED_FOR_PHONE_NUMBER
 	iftrue UnknownScript_0x1a96c3
 	writetext UnknownText_0x1a98c6
 	keeptextopen
-	setevent $029d
+	setevent EVENT_ERIN_ASKED_FOR_PHONE_NUMBER
 	scall UnknownScript_0x1a974f
 	jump UnknownScript_0x1a96c6
-; 0x1a96c3
 
-UnknownScript_0x1a96c3: ; 0x1a96c3
+UnknownScript_0x1a96c3:
 	scall UnknownScript_0x1a9753
-UnknownScript_0x1a96c6: ; 0x1a96c6
-	askforphonenumber $24
+UnknownScript_0x1a96c6:
+	askforphonenumber PHONE_PICNICKER_ERIN
 	if_equal $1, UnknownScript_0x1a9763
 	if_equal $2, UnknownScript_0x1a975f
 	trainertotext PICNICKER, ERIN1, $0
 	scall UnknownScript_0x1a9757
 	jump UnknownScript_0x1a975b
-; 0x1a96da
 
-UnknownScript_0x1a96da: ; 0x1a96da
+UnknownScript_0x1a96da:
 	scall UnknownScript_0x1a9767
 	winlosstext PicnickerErin1BeatenText, $0000
-	copybytetovar wda0d
-	if_equal $2, UnknownScript_0x1a96f1
-	if_equal $1, UnknownScript_0x1a96f7
-	if_equal $0, UnknownScript_0x1a96fd
-UnknownScript_0x1a96f1: ; 0x1a96f1
+	copybytetovar wErinFightCount
+	if_equal 2, .Fight2
+	if_equal 1, .Fight1
+	if_equal 0, .LoadFight0
+.Fight2
 	checkevent EVENT_RESTORED_POWER_TO_KANTO
-	iftrue UnknownScript_0x1a9717
-UnknownScript_0x1a96f7: ; 0x1a96f7
+	iftrue .LoadFight2
+.Fight1
 	checkevent EVENT_BEAT_ELITE_FOUR
-	iftrue UnknownScript_0x1a970a
-UnknownScript_0x1a96fd: ; 0x1a96fd
+	iftrue .LoadFight1
+.LoadFight0
 	loadtrainer PICNICKER, ERIN1
 	startbattle
 	returnafterbattle
-	loadvar wda0d, $1
-	clearflag $007c
+	loadvar wErinFightCount, 1
+	clearflag ENGINE_ERIN
 	end
-; 0x1a970a
 
-UnknownScript_0x1a970a: ; 0x1a970a
+.LoadFight1
 	loadtrainer PICNICKER, ERIN2
 	startbattle
 	returnafterbattle
-	loadvar wda0d, $2
-	clearflag $007c
+	loadvar wErinFightCount, 2
+	clearflag ENGINE_ERIN
 	end
-; 0x1a9717
 
-UnknownScript_0x1a9717: ; 0x1a9717
+.LoadFight2
 	loadtrainer PICNICKER, ERIN3
 	startbattle
 	returnafterbattle
-	clearflag $007c
+	clearflag ENGINE_ERIN
 	checkevent EVENT_ERIN_CALCIUM
 	iftrue UnknownScript_0x1a973b
-	checkevent $0269
+	checkevent EVENT_GOT_CALCIUM_FROM_ERIN
 	iftrue UnknownScript_0x1a973a
 	scall UnknownScript_0x1a9772
 	verbosegiveitem CALCIUM, 1
 	iffalse UnknownScript_0x1a976b
-	setevent $0269
+	setevent EVENT_GOT_CALCIUM_FROM_ERIN
 	jump UnknownScript_0x1a975b
-; 0x1a973a
 
-UnknownScript_0x1a973a: ; 0x1a973a
+UnknownScript_0x1a973a:
 	end
-; 0x1a973b
 
-UnknownScript_0x1a973b: ; 0x1a973b
+UnknownScript_0x1a973b:
 	loadfont
 	writetext UnknownText_0x1a9927
 	closetext
@@ -141,77 +99,50 @@
 	verbosegiveitem CALCIUM, 1
 	iffalse UnknownScript_0x1a976b
 	clearevent EVENT_ERIN_CALCIUM
-	setevent $0269
+	setevent EVENT_GOT_CALCIUM_FROM_ERIN
 	jump UnknownScript_0x1a975b
-; 0x1a974f
 
-UnknownScript_0x1a974f: ; 0x1a974f
+UnknownScript_0x1a974f:
 	jumpstd asknumber1f
 	end
-; 0x1a9753
 
-UnknownScript_0x1a9753: ; 0x1a9753
+UnknownScript_0x1a9753:
 	jumpstd asknumber2f
 	end
-; 0x1a9757
 
-UnknownScript_0x1a9757: ; 0x1a9757
+UnknownScript_0x1a9757:
 	jumpstd registerednumberf
 	end
-; 0x1a975b
 
-UnknownScript_0x1a975b: ; 0x1a975b
+UnknownScript_0x1a975b:
 	jumpstd numberacceptedf
 	end
-; 0x1a975f
 
-UnknownScript_0x1a975f: ; 0x1a975f
+UnknownScript_0x1a975f:
 	jumpstd numberdeclinedf
 	end
-; 0x1a9763
 
-UnknownScript_0x1a9763: ; 0x1a9763
+UnknownScript_0x1a9763:
 	jumpstd phonefullf
 	end
-; 0x1a9767
 
-UnknownScript_0x1a9767: ; 0x1a9767
+UnknownScript_0x1a9767:
 	jumpstd rematchf
 	end
-; 0x1a976b
 
-UnknownScript_0x1a976b: ; 0x1a976b
+UnknownScript_0x1a976b:
 	setevent EVENT_ERIN_CALCIUM
 	jumpstd packfullf
 	end
-; 0x1a9772
 
-UnknownScript_0x1a9772: ; 0x1a9772
+UnknownScript_0x1a9772:
 	jumpstd rematchgiftf
 	end
-; 0x1a9776
 
-TrainerHikerBailey: ; 0x1a9776
-	; bit/flag number
-	dw $52e
+TrainerHikerBailey:
+	trainer EVENT_BEAT_HIKER_BAILEY, HIKER, BAILEY, HikerBaileySeenText, HikerBaileyBeatenText, $0000, HikerBaileyScript
 
-	; trainer group && trainer id
-	db HIKER, BAILEY
-
-	; text when seen
-	dw HikerBaileySeenText
-
-	; text when trainer beaten
-	dw HikerBaileyBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw HikerBaileyScript
-; 0x1a9782
-
-HikerBaileyScript: ; 0x1a9782
+HikerBaileyScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1a97e8
@@ -218,45 +149,37 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1a978a
 
-MapRoute46Signpost0Script: ; 0x1a978a
+MapRoute46Signpost0Script:
 	jumptext UnknownText_0x1a99be
-; 0x1a978d
 
-ItemFragment_0x1a978d: ; 0x1a978d
+ItemFragment_0x1a978d:
 	db X_SPEED, 1
-; 0x1a978f
 
-FruitTreeScript_0x1a978f: ; 0x1a978f
+FruitTreeScript_0x1a978f:
 	fruittree $4
-; 0x1a9791
 
-FruitTreeScript_0x1a9791: ; 0x1a9791
+FruitTreeScript_0x1a9791:
 	fruittree $a
-; 0x1a9793
 
-HikerBaileySeenText: ; 0x1a9793
+HikerBaileySeenText:
 	text "Awright! I'll show"
 	line "you the power of"
 	cont "mountain #MON!"
 	done
-; 0x1a97c6
 
-HikerBaileyBeatenText: ; 0x1a97c6
+HikerBaileyBeatenText:
 	text "Mercy! You showed"
 	line "me your power!"
 	done
-; 0x1a97e8
 
-UnknownText_0x1a97e8: ; 0x1a97e8
+UnknownText_0x1a97e8:
 	text "It's over. I don't"
 	line "mind. We HIKERS"
 	cont "are like that."
 	done
-; 0x1a9819
 
-CamperTedSeenText: ; 0x1a9819
+CamperTedSeenText:
 	text "I'm raising #-"
 	line "MON too!"
 
@@ -263,14 +186,12 @@
 	para "Will you battle"
 	line "with me?"
 	done
-; 0x1a984a
 
-CamperTedBeatenText: ; 0x1a984a
+CamperTedBeatenText:
 	text "Wha…?"
 	done
-; 0x1a9851
 
-UnknownText_0x1a9851: ; 0x1a9851
+UnknownText_0x1a9851:
 	text "I did my best but"
 	line "came up short."
 
@@ -277,9 +198,8 @@
 	para "No excuses--I"
 	line "admit I lost."
 	done
-; 0x1a988f
 
-PicnickerErin1SeenText: ; 0x1a988f
+PicnickerErin1SeenText:
 	text "I raise #MON"
 	line "too!"
 
@@ -286,14 +206,12 @@
 	para "Will you battle"
 	line "with me?"
 	done
-; 0x1a98bb
 
-PicnickerErin1BeatenText: ; 0x1a98bb
+PicnickerErin1BeatenText:
 	text "Oh, rats!"
 	done
-; 0x1a98c6
 
-UnknownText_0x1a98c6: ; 0x1a98c6
+UnknownText_0x1a98c6:
 	text "I've been to many"
 	line "GYMS, but the GYM"
 
@@ -303,9 +221,8 @@
 	para "It's filled with"
 	line "pretty flowers!"
 	done
-; 0x1a9927
 
-UnknownText_0x1a9927: ; 0x1a9927
+UnknownText_0x1a9927:
 	text "Aww… I keep losing"
 	line "all the time!"
 
@@ -319,37 +236,34 @@
 	line "that present from"
 	cont "the other time."
 	done
-; 0x1a99be
 
-UnknownText_0x1a99be: ; 0x1a99be
+UnknownText_0x1a99be:
 	text "ROUTE 46"
 	line "MOUNTAIN RD. AHEAD"
 	done
-; 0x1a99db
 
-Route46_MapEventHeader: ; 0x1a99db
+Route46_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 27, 9, $0, MapRoute46Signpost0Script
+	signpost 27, 9, SIGNPOST_READ, MapRoute46Signpost0Script
 
-	; people-events
+.PersonEvents:
 	db 6
-	person_event SPRITE_POKEFAN_M, 23, 16, $8, $0, 255, 255, $b2, 2, TrainerHikerBailey, $ffff
-	person_event SPRITE_YOUNGSTER, 18, 8, $7, $0, 255, 255, $a2, 2, TrainerCamperTed, $ffff
-	person_event SPRITE_LASS, 17, 6, $6, $0, 255, 255, $a2, 2, TrainerPicnickerErin1, $ffff
-	person_event SPRITE_FRUIT_TREE, 9, 11, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x1a978f, $ffff
-	person_event SPRITE_FRUIT_TREE, 10, 12, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x1a9791, $ffff
-	person_event SPRITE_POKE_BALL, 19, 5, $1, $0, 255, 255, $1, 0, ItemFragment_0x1a978d, $06bc
-; 0x1a9a43
+	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
--- a/maps/Route5.asm
+++ b/maps/Route5.asm
@@ -1,24 +1,20 @@
-Route5_MapScriptHeader: ; 0x1adb17
-	; trigger count
+Route5_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1adb19
 
-PokefanMScript_0x1adb19: ; 0x1adb19
+PokefanMScript_0x1adb19:
 	jumptextfaceplayer UnknownText_0x1adb22
-; 0x1adb1c
 
-MapRoute5Signpost0Script: ; 0x1adb1c
+MapRoute5Signpost0Script:
 	jumptext UnknownText_0x1adb66
-; 0x1adb1f
 
-MapRoute5Signpost1Script: ; 0x1adb1f
+MapRoute5Signpost1Script:
 	jumptext UnknownText_0x1adb97
-; 0x1adb22
 
-UnknownText_0x1adb22: ; 0x1adb22
+UnknownText_0x1adb22:
 	text "The road is closed"
 	line "until the problem"
 
@@ -25,29 +21,26 @@
 	para "at the POWER PLANT"
 	line "is solved."
 	done
-; 0x1adb66
 
-UnknownText_0x1adb66: ; 0x1adb66
+UnknownText_0x1adb66:
 	text "UNDERGROUND PATH"
 
 	para "CERULEAN CITY -"
 	line "VERMILION CITY"
 	done
-; 0x1adb97
 
-UnknownText_0x1adb97: ; 0x1adb97
+UnknownText_0x1adb97:
 	text "What's this?"
 
 	para "House for Sale…"
 	line "Nobody lives here."
 	done
-; 0x1adbc7
 
-Route5_MapEventHeader: ; 0x1adbc7
+Route5_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -54,15 +47,14 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 17, 17, $0, MapRoute5Signpost0Script
-	signpost 11, 10, $0, MapRoute5Signpost1Script
+	signpost 17, 17, SIGNPOST_READ, MapRoute5Signpost0Script
+	signpost 11, 10, SIGNPOST_READ, MapRoute5Signpost1Script
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_POKEFAN_M, 20, 21, $6, $0, 255, 255, $80, 0, PokefanMScript_0x1adb19, $0771
-; 0x1adbf8
+	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
--- a/maps/Route5CleanseTagSpeechHouse.asm
+++ b/maps/Route5CleanseTagSpeechHouse.asm
@@ -1,12 +1,11 @@
-Route5CleanseTagSpeechHouse_MapScriptHeader: ; 0x18b632
-	; trigger count
+Route5CleanseTagSpeechHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18b634
 
-GrannyScript_0x18b634: ; 0x18b634
+GrannyScript_0x18b634:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_CLEANSE_TAG
@@ -16,22 +15,20 @@
 	verbosegiveitem CLEANSE_TAG, 1
 	iffalse UnknownScript_0x18b64d
 	setevent EVENT_GOT_CLEANSE_TAG
-UnknownScript_0x18b649: ; 0x18b649
+UnknownScript_0x18b649:
 	writetext UnknownText_0x18b6a7
 	closetext
-UnknownScript_0x18b64d: ; 0x18b64d
+UnknownScript_0x18b64d:
 	loadmovesprites
 	end
-; 0x18b64f
 
-TeacherScript_0x18b64f: ; 0x18b64f
+TeacherScript_0x18b64f:
 	jumptextfaceplayer UnknownText_0x18b6de
-; 0x18b652
 
 HouseForSaleBookshelf:
 	jumpstd difficultbookshelf
 
-UnknownText_0x18b655: ; 0x18b655
+UnknownText_0x18b655:
 	text "Eeyaaaah!"
 
 	para "I sense a sinister"
@@ -41,16 +38,14 @@
 	para "Take this to ward"
 	line "it off!"
 	done
-; 0x18b6a7
 
-UnknownText_0x18b6a7: ; 0x18b6a7
+UnknownText_0x18b6a7:
 	text "You were in mortal"
 	line "danger, but you"
 	cont "are protected now."
 	done
-; 0x18b6de
 
-UnknownText_0x18b6de: ; 0x18b6de
+UnknownText_0x18b6de:
 	text "My grandma is into"
 	line "warding off what"
 
@@ -60,26 +55,25 @@
 	para "I'm sorry that she"
 	line "startled you."
 	done
-; 0x18b744
 
-Route5CleanseTagSpeechHouse_MapEventHeader: ; 0x18b744
+Route5CleanseTagSpeechHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 0, $0, HouseForSaleBookshelf
-	signpost 1, 1, $0, HouseForSaleBookshelf
+	signpost 1, 0, SIGNPOST_READ, HouseForSaleBookshelf
+	signpost 1, 1, SIGNPOST_READ, HouseForSaleBookshelf
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_GRANNY, 9, 6, $1f, $0, 255, 255, $b0, 0, GrannyScript_0x18b634, $ffff
-	person_event SPRITE_TEACHER, 7, 9, $8, $0, 255, 255, $80, 0, TeacherScript_0x18b64f, $ffff
+	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
--- a/maps/Route5SaffronCityGate.asm
+++ b/maps/Route5SaffronCityGate.asm
@@ -1,16 +1,14 @@
-Route5SaffronCityGate_MapScriptHeader: ; 0x18b5b7
-	; trigger count
+Route5SaffronCityGate_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18b5b9
 
-OfficerScript_0x18b5b9: ; 0x18b5b9
+OfficerScript_0x18b5b9:
 	jumptextfaceplayer UnknownText_0x18b5bc
-; 0x18b5bc
 
-UnknownText_0x18b5bc: ; 0x18b5bc
+UnknownText_0x18b5bc:
 	text "You're from JOHTO,"
 	line "aren't you?"
 
@@ -18,13 +16,12 @@
 	line "KANTO? It's nice,"
 	cont "don't you agree?"
 	done
-; 0x18b60b
 
-Route5SaffronCityGate_MapEventHeader: ; 0x18b60b
+Route5SaffronCityGate_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -31,13 +28,12 @@
 	warp_def $7, $4, 9, GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY
 	warp_def $7, $5, 9, GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_OFFICER, 8, 4, $9, $0, 255, 255, $90, 0, OfficerScript_0x18b5b9, $ffff
-; 0x18b632
+	person_event SPRITE_OFFICER, 8, 4, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, OfficerScript_0x18b5b9, -1
--- a/maps/Route5UndergroundEntrance.asm
+++ b/maps/Route5UndergroundEntrance.asm
@@ -1,16 +1,14 @@
-Route5UndergroundEntrance_MapScriptHeader: ; 0x18b553
-	; trigger count
+Route5UndergroundEntrance_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18b555
 
-TeacherScript_0x18b555: ; 0x18b555
+TeacherScript_0x18b555:
 	jumptextfaceplayer UnknownText_0x18b558
-; 0x18b558
 
-UnknownText_0x18b558: ; 0x18b558
+UnknownText_0x18b558:
 	text "Many cities in"
 	line "JOHTO have long"
 
@@ -17,25 +15,23 @@
 	para "histories. I'd"
 	line "love to visit!"
 	done
-; 0x18b595
 
-Route5UndergroundEntrance_MapEventHeader: ; 0x18b595
+Route5UndergroundEntrance_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_TEACHER, 6, 6, $2, $11, 255, 255, $a0, 0, TeacherScript_0x18b555, $ffff
-; 0x18b5b7
+	person_event SPRITE_TEACHER, 6, 6, OW_DOWN | $2, $11, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, TeacherScript_0x18b555, -1
--- a/maps/Route6.asm
+++ b/maps/Route6.asm
@@ -1,32 +1,14 @@
-Route6_MapScriptHeader: ; 0x1ad927
-	; trigger count
+Route6_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1ad929
 
-TrainerPokefanmRex: ; 0x1ad929
-	; bit/flag number
-	dw $5c7
+TrainerPokefanmRex:
+	trainer EVENT_BEAT_POKEFANM_REX, POKEFANM, REX, PokefanmRexSeenText, PokefanmRexBeatenText, $0000, PokefanmRexScript
 
-	; trainer group && trainer id
-	db POKEFANM, REX
-
-	; text when seen
-	dw PokefanmRexSeenText
-
-	; text when trainer beaten
-	dw PokefanmRexBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PokefanmRexScript
-; 0x1ad935
-
-PokefanmRexScript: ; 0x1ad935
+PokefanmRexScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ad9ff
@@ -33,29 +15,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1ad93d
 
-TrainerPokefanmAllan: ; 0x1ad93d
-	; bit/flag number
-	dw $5c8
+TrainerPokefanmAllan:
+	trainer EVENT_BEAT_POKEFANM_ALLAN, POKEFANM, ALLAN, PokefanmAllanSeenText, PokefanmAllanBeatenText, $0000, PokefanmAllanScript
 
-	; trainer group && trainer id
-	db POKEFANM, ALLAN
-
-	; text when seen
-	dw PokefanmAllanSeenText
-
-	; text when trainer beaten
-	dw PokefanmAllanBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PokefanmAllanScript
-; 0x1ad949
-
-PokefanmAllanScript: ; 0x1ad949
+PokefanmAllanScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ada88
@@ -62,17 +26,14 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1ad951
 
-PokefanMScript_0x1ad951: ; 0x1ad951
+PokefanMScript_0x1ad951:
 	jumptextfaceplayer UnknownText_0x1ad957
-; 0x1ad954
 
-MapRoute6Signpost0Script: ; 0x1ad954
+MapRoute6Signpost0Script:
 	jumptext UnknownText_0x1ad99b
-; 0x1ad957
 
-UnknownText_0x1ad957: ; 0x1ad957
+UnknownText_0x1ad957:
 	text "The road is closed"
 	line "until the problem"
 
@@ -79,29 +40,25 @@
 	para "at the POWER PLANT"
 	line "is solved."
 	done
-; 0x1ad99b
 
-UnknownText_0x1ad99b: ; 0x1ad99b
+UnknownText_0x1ad99b:
 	text "UNDERGROUND PATH"
 
 	para "CERULEAN CITY -"
 	line "VERMILION CITY"
 	done
-; 0x1ad9cc
 
-PokefanmRexSeenText: ; 0x1ad9cc
+PokefanmRexSeenText:
 	text "My PHANPY is the"
 	line "cutest in the"
 	cont "world."
 	done
-; 0x1ad9f3
 
-PokefanmRexBeatenText: ; 0x1ad9f3
+PokefanmRexBeatenText:
 	text "My PHANPY!"
 	done
-; 0x1ad9ff
 
-UnknownText_0x1ad9ff: ; 0x1ad9ff
+UnknownText_0x1ad9ff:
 	text "Look how adorable"
 	line "my PHANPY acts!"
 
@@ -109,21 +66,18 @@
 	line "enough to make"
 	cont "your heart melt?"
 	done
-; 0x1ada4f
 
-PokefanmAllanSeenText: ; 0x1ada4f
+PokefanmAllanSeenText:
 	text "My TEDDIURSA is"
 	line "the cutest in the"
 	cont "world."
 	done
-; 0x1ada79
 
-PokefanmAllanBeatenText: ; 0x1ada79
+PokefanmAllanBeatenText:
 	text "My TEDDIURSA!"
 	done
-; 0x1ada88
 
-UnknownText_0x1ada88: ; 0x1ada88
+UnknownText_0x1ada88:
 	text "Look how adorable"
 	line "my TEDDIURSA acts!"
 
@@ -131,27 +85,25 @@
 	line "enough to make"
 	cont "your heart melt?"
 	done
-; 0x1adadb
 
-Route6_MapEventHeader: ; 0x1adadb
+Route6_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 5, 19, $0, MapRoute6Signpost0Script
+	signpost 5, 19, SIGNPOST_READ, MapRoute6Signpost0Script
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_POKEFAN_M, 8, 21, $6, $0, 255, 255, $b0, 2, PokefanMScript_0x1ad951, $0771
-	person_event SPRITE_POKEFAN_M, 16, 13, $9, $0, 255, 255, $82, 0, TrainerPokefanmRex, $ffff
-	person_event SPRITE_POKEFAN_M, 16, 14, $8, $0, 255, 255, $82, 0, TrainerPokefanmAllan, $ffff
-; 0x1adb17
+	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
--- a/maps/Route6SaffronGate.asm
+++ b/maps/Route6SaffronGate.asm
@@ -1,19 +1,17 @@
-Route6SaffronGate_MapScriptHeader: ; 0x1926e3
-	; trigger count
+Route6SaffronGate_MapScriptHeader:
+.MapTriggers:
 	db 1
 
 	; triggers
 	dw UnknownScript_0x1926e9, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1926e9
 
-UnknownScript_0x1926e9: ; 0x1926e9
+UnknownScript_0x1926e9:
 	end
-; 0x1926ea
 
-OfficerScript_0x1926ea: ; 0x1926ea
+OfficerScript_0x1926ea:
 	faceplayer
 	loadfont
 	checkevent EVENT_RETURNED_MACHINE_PART
@@ -22,16 +20,14 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1926f8
 
-UnknownScript_0x1926f8: ; 0x1926f8
+UnknownScript_0x1926f8:
 	writetext UnknownText_0x1927cb
 	closetext
 	loadmovesprites
 	end
-; 0x1926fe
 
-UnknownText_0x1926fe: ; 0x1926fe
+UnknownText_0x1926fe:
 	text "Welcome to SAFFRON"
 	line "CITY, home of the"
 	cont "MAGNET TRAIN!"
@@ -51,9 +47,8 @@
 	para "with the POWER"
 	line "PLANT."
 	done
-; 0x1927cb
 
-UnknownText_0x1927cb: ; 0x1927cb
+UnknownText_0x1927cb:
 	text "The MAGNET TRAIN"
 	line "is the most famous"
 
@@ -60,13 +55,12 @@
 	para "thing about SAF-"
 	line "FRON."
 	done
-; 0x192807
 
-Route6SaffronGate_MapEventHeader: ; 0x192807
+Route6SaffronGate_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -73,13 +67,12 @@
 	warp_def $7, $4, 2, GROUP_ROUTE_6, MAP_ROUTE_6
 	warp_def $7, $5, 2, GROUP_ROUTE_6, MAP_ROUTE_6
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_OFFICER, 8, 4, $9, $0, 255, 255, $90, 0, OfficerScript_0x1926ea, $ffff
-; 0x19282e
+	person_event SPRITE_OFFICER, 8, 4, OW_LEFT | $1, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, OfficerScript_0x1926ea, -1
--- a/maps/Route6UndergroundEntrance.asm
+++ b/maps/Route6UndergroundEntrance.asm
@@ -1,27 +1,25 @@
-Route6UndergroundEntrance_MapScriptHeader: ; 0x19282e
-	; trigger count
+Route6UndergroundEntrance_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x192830
 
-Route6UndergroundEntrance_MapEventHeader: ; 0x192830
+Route6UndergroundEntrance_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x192845
--- a/maps/Route7.asm
+++ b/maps/Route7.asm
@@ -1,20 +1,17 @@
-Route7_MapScriptHeader: ; 0x1ad380
-	; trigger count
+Route7_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1ad382
 
-MapRoute7Signpost0Script: ; 0x1ad382
+MapRoute7Signpost0Script:
 	jumptext UnknownText_0x1ad388
-; 0x1ad385
 
-MapRoute7Signpost1Script: ; 0x1ad385
+MapRoute7Signpost1Script:
 	jumptext UnknownText_0x1ad456
-; 0x1ad388
 
-UnknownText_0x1ad388: ; 0x1ad388
+UnknownText_0x1ad388:
 	text "What's this flyer?"
 
 	para "… Uncouth trainers"
@@ -32,30 +29,27 @@
 
 	para "CELADON POLICE"
 	done
-; 0x1ad456
 
-UnknownText_0x1ad456: ; 0x1ad456
+UnknownText_0x1ad456:
 	text "It's locked…"
 	done
-; 0x1ad463
 
-Route7_MapEventHeader: ; 0x1ad463
+Route7_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 11, 5, $0, MapRoute7Signpost0Script
-	signpost 9, 6, $0, MapRoute7Signpost1Script
+	signpost 11, 5, SIGNPOST_READ, MapRoute7Signpost0Script
+	signpost 9, 6, SIGNPOST_READ, MapRoute7Signpost1Script
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x1ad47d
--- a/maps/Route7SaffronGate.asm
+++ b/maps/Route7SaffronGate.asm
@@ -1,12 +1,11 @@
-Route7SaffronGate_MapScriptHeader: ; 0x73516
-	; trigger count
+Route7SaffronGate_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x73518
 
-OfficerScript_0x73518: ; 0x73518
+OfficerScript_0x73518:
 	faceplayer
 	loadfont
 	checkevent EVENT_RETURNED_MACHINE_PART
@@ -15,16 +14,14 @@
 	closetext
 	loadmovesprites
 	end
-; 0x73526
 
-UnknownScript_0x73526: ; 0x73526
+UnknownScript_0x73526:
 	writetext UnknownText_0x73592
 	closetext
 	loadmovesprites
 	end
-; 0x7352c
 
-UnknownText_0x7352c: ; 0x7352c
+UnknownText_0x7352c:
 	text "Did you hear about"
 	line "the accident at"
 	cont "the POWER PLANT?"
@@ -33,9 +30,8 @@
 	line "the East, close to"
 	cont "LAVENDER TOWN."
 	done
-; 0x73592
 
-UnknownText_0x73592: ; 0x73592
+UnknownText_0x73592:
 	text "I take my GUARD"
 	line "job seriously."
 
@@ -45,13 +41,12 @@
 	para "OK. You can go"
 	line "through."
 	done
-; 0x735e0
 
-Route7SaffronGate_MapEventHeader: ; 0x735e0
+Route7SaffronGate_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -58,13 +53,12 @@
 	warp_def $4, $9, 10, GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY
 	warp_def $5, $9, 11, GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_OFFICER, 6, 9, $6, $0, 255, 255, $90, 0, OfficerScript_0x73518, $ffff
-; 0x73607
+	person_event SPRITE_OFFICER, 6, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, OfficerScript_0x73518, -1
--- a/maps/Route8.asm
+++ b/maps/Route8.asm
@@ -1,32 +1,14 @@
-Route8_MapScriptHeader: ; 0x6c000
-	; trigger count
+Route8_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x6c002
 
-TrainerBikerDwayne: ; 0x6c002
-	; bit/flag number
-	dw $433
+TrainerBikerDwayne:
+	trainer EVENT_BEAT_BIKER_DWAYNE, BIKER, DWAYNE, BikerDwayneSeenText, BikerDwayneBeatenText, $0000, BikerDwayneScript
 
-	; trainer group && trainer id
-	db BIKER, DWAYNE
-
-	; text when seen
-	dw BikerDwayneSeenText
-
-	; text when trainer beaten
-	dw BikerDwayneBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw BikerDwayneScript
-; 0x6c00e
-
-BikerDwayneScript: ; 0x6c00e
+BikerDwayneScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x6c0c8
@@ -33,29 +15,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x6c016
 
-TrainerBikerHarris: ; 0x6c016
-	; bit/flag number
-	dw $434
+TrainerBikerHarris:
+	trainer EVENT_BEAT_BIKER_HARRIS, BIKER, HARRIS, BikerHarrisSeenText, BikerHarrisBeatenText, $0000, BikerHarrisScript
 
-	; trainer group && trainer id
-	db BIKER, HARRIS
-
-	; text when seen
-	dw BikerHarrisSeenText
-
-	; text when trainer beaten
-	dw BikerHarrisBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw BikerHarrisScript
-; 0x6c022
-
-BikerHarrisScript: ; 0x6c022
+BikerHarrisScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x6c143
@@ -62,29 +26,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x6c02a
 
-TrainerBikerZeke: ; 0x6c02a
-	; bit/flag number
-	dw $435
+TrainerBikerZeke:
+	trainer EVENT_BEAT_BIKER_ZEKE, BIKER, ZEKE, BikerZekeSeenText, BikerZekeBeatenText, $0000, BikerZekeScript
 
-	; trainer group && trainer id
-	db BIKER, ZEKE
-
-	; text when seen
-	dw BikerZekeSeenText
-
-	; text when trainer beaten
-	dw BikerZekeBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw BikerZekeScript
-; 0x6c036
-
-BikerZekeScript: ; 0x6c036
+BikerZekeScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x6c1a3
@@ -91,29 +37,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x6c03e
 
-TrainerSupernerdSam: ; 0x6c03e
-	; bit/flag number
-	dw $586
+TrainerSupernerdSam:
+	trainer EVENT_BEAT_SUPER_NERD_SAM, SUPER_NERD, SAM, SupernerdSamSeenText, SupernerdSamBeatenText, $0000, SupernerdSamScript
 
-	; trainer group && trainer id
-	db SUPER_NERD, SAM
-
-	; text when seen
-	dw SupernerdSamSeenText
-
-	; text when trainer beaten
-	dw SupernerdSamBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SupernerdSamScript
-; 0x6c04a
-
-SupernerdSamScript: ; 0x6c04a
+SupernerdSamScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x6c219
@@ -120,29 +48,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x6c052
 
-TrainerSupernerdTom: ; 0x6c052
-	; bit/flag number
-	dw $587
+TrainerSupernerdTom:
+	trainer EVENT_BEAT_SUPER_NERD_TOM, SUPER_NERD, TOM, SupernerdTomSeenText, SupernerdTomBeatenText, $0000, SupernerdTomScript
 
-	; trainer group && trainer id
-	db SUPER_NERD, TOM
-
-	; text when seen
-	dw SupernerdTomSeenText
-
-	; text when trainer beaten
-	dw SupernerdTomBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SupernerdTomScript
-; 0x6c05e
-
-SupernerdTomScript: ; 0x6c05e
+SupernerdTomScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x6c27e
@@ -149,21 +59,17 @@
 	closetext
 	loadmovesprites
 	end
-; 0x6c066
 
-MapRoute8Signpost1Script: ; 0x6c066
+MapRoute8Signpost1Script:
 	jumptext UnknownText_0x6c2aa
-; 0x6c069
 
-MapRoute8Signpost0Script: ; 0x6c069
+MapRoute8Signpost0Script:
 	jumptext UnknownText_0x6c2b7
-; 0x6c06c
 
-FruitTreeScript_0x6c06c: ; 0x6c06c
+FruitTreeScript_0x6c06c:
 	fruittree $1b
-; 0x6c06e
 
-BikerDwayneSeenText: ; 0x6c06e
+BikerDwayneSeenText:
 	text "We're the KANTO"
 	line "#MON FEDERATION"
 	cont "trainer group."
@@ -171,21 +77,18 @@
 	para "We'll drive you"
 	line "under our wheels!"
 	done
-; 0x6c0be
 
-BikerDwayneBeatenText: ; 0x6c0be
+BikerDwayneBeatenText:
 	text "S-sorry!"
 	done
-; 0x6c0c8
 
-UnknownText_0x6c0c8: ; 0x6c0c8
+UnknownText_0x6c0c8:
 	text "The KANTO #MON"
 	line "FEDERATION will"
 	cont "never fall!"
 	done
-; 0x6c0f4
 
-BikerHarrisSeenText: ; 0x6c0f4
+BikerHarrisSeenText:
 	text "The cops shut down"
 	line "our UNDERGROUND"
 
@@ -192,112 +95,97 @@
 	para "PATH! That really"
 	line "fries me!"
 	done
-; 0x6c134
 
-BikerHarrisBeatenText: ; 0x6c134
+BikerHarrisBeatenText:
 	text "F-forgive me!"
 	done
-; 0x6c143
 
-UnknownText_0x6c143: ; 0x6c143
+UnknownText_0x6c143:
 	text "Wiped out by some"
 	line "punk from JOHTO…"
 	done
-; 0x6c167
 
-BikerZekeSeenText: ; 0x6c167
+BikerZekeSeenText:
 	text "We're the KANTO"
 	line "#MON FEDERA-"
 	cont "TION!"
 	cont "Right on!"
 	done
-; 0x6c194
 
-BikerZekeBeatenText: ; 0x6c194
+BikerZekeBeatenText:
 	text "Yikes! Sorry!"
 	done
-; 0x6c1a3
 
-UnknownText_0x6c1a3: ; 0x6c1a3
+UnknownText_0x6c1a3:
 	text "We'll try not to"
 	line "disturb anyone"
 	cont "from now on…"
 	done
-; 0x6c1d0
 
-SupernerdSamSeenText: ; 0x6c1d0
+SupernerdSamSeenText:
 	text "How does the MAG-"
 	line "NET TRAIN work?"
 	done
-; 0x6c1f3
 
-SupernerdSamBeatenText: ; 0x6c1f3
+SupernerdSamBeatenText:
 	text "I just want to see"
 	line "the MAGNET TRAIN…"
 	done
-; 0x6c219
 
-UnknownText_0x6c219: ; 0x6c219
+UnknownText_0x6c219:
 	text "The power of mag-"
 	line "nets is awesome!"
 	done
-; 0x6c23d
 
-SupernerdTomSeenText: ; 0x6c23d
+SupernerdTomSeenText:
 	text "Hm… You've got"
 	line "many GYM BADGES."
 	done
-; 0x6c25d
 
-SupernerdTomBeatenText: ; 0x6c25d
+SupernerdTomBeatenText:
 	text "Just as I thought…"
 	line "You're tough!"
 	done
-; 0x6c27e
 
-UnknownText_0x6c27e: ; 0x6c27e
+UnknownText_0x6c27e:
 	text "GYM BADGES give"
 	line "you advantages in"
 	cont "battles."
 	done
-; 0x6c2aa
 
-UnknownText_0x6c2aa: ; 0x6c2aa
+UnknownText_0x6c2aa:
 	text "It's locked…"
 	done
-; 0x6c2b7
 
-UnknownText_0x6c2b7: ; 0x6c2b7
+UnknownText_0x6c2b7:
 	text "The flyer's torn."
 
 	para "It's impossible to"
 	line "read…"
 	done
-; 0x6c2e1
 
-Route8_MapEventHeader: ; 0x6c2e1
+Route8_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 7, 11, $0, MapRoute8Signpost0Script
-	signpost 5, 10, $0, MapRoute8Signpost1Script
+	signpost 7, 11, SIGNPOST_READ, MapRoute8Signpost0Script
+	signpost 5, 10, SIGNPOST_READ, MapRoute8Signpost1Script
 
-	; people-events
+.PersonEvents:
 	db 6
-	person_event SPRITE_BIKER, 12, 14, $8, $0, 255, 255, $82, 5, TrainerBikerDwayne, $ffff
-	person_event SPRITE_BIKER, 13, 14, $8, $0, 255, 255, $a2, 5, TrainerBikerHarris, $ffff
-	person_event SPRITE_BIKER, 14, 14, $8, $0, 255, 255, $92, 5, TrainerBikerZeke, $ffff
-	person_event SPRITE_SUPER_NERD, 6, 27, $6, $0, 255, 255, $b2, 3, TrainerSupernerdSam, $ffff
-	person_event SPRITE_SUPER_NERD, 16, 35, $a, $0, 255, 255, $b2, 4, TrainerSupernerdTom, $ffff
-	person_event SPRITE_FRUIT_TREE, 9, 37, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x6c06c, $ffff
-; 0x6c349
+	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
--- a/maps/Route8SaffronGate.asm
+++ b/maps/Route8SaffronGate.asm
@@ -1,16 +1,14 @@
-Route8SaffronGate_MapScriptHeader: ; 0x7f414
-	; trigger count
+Route8SaffronGate_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x7f416
 
-OfficerScript_0x7f416: ; 0x7f416
+OfficerScript_0x7f416:
 	jumptextfaceplayer UnknownText_0x7f419
-; 0x7f419
 
-UnknownText_0x7f419: ; 0x7f419
+UnknownText_0x7f419:
 	text "Have you been to"
 	line "LAVENDER TOWN?"
 
@@ -17,13 +15,12 @@
 	para "There's a tall"
 	line "RADIO TOWER there."
 	done
-; 0x7f45b
 
-Route8SaffronGate_MapEventHeader: ; 0x7f45b
+Route8SaffronGate_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -30,13 +27,12 @@
 	warp_def $4, $9, 1, GROUP_ROUTE_8, MAP_ROUTE_8
 	warp_def $5, $9, 2, GROUP_ROUTE_8, MAP_ROUTE_8
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_OFFICER, 6, 9, $6, $0, 255, 255, $90, 0, OfficerScript_0x7f416, $ffff
-; 0x7f482
+	person_event SPRITE_OFFICER, 6, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, OfficerScript_0x7f416, -1
--- a/maps/Route9.asm
+++ b/maps/Route9.asm
@@ -1,32 +1,14 @@
-Route9_MapScriptHeader: ; 0x1aaf25
-	; trigger count
+Route9_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1aaf27
 
-TrainerCamperDean: ; 0x1aaf27
-	; bit/flag number
-	dw $420
+TrainerCamperDean:
+	trainer EVENT_BEAT_CAMPER_DEAN, CAMPER, DEAN, CamperDeanSeenText, CamperDeanBeatenText, $0000, CamperDeanScript
 
-	; trainer group && trainer id
-	db CAMPER, DEAN
-
-	; text when seen
-	dw CamperDeanSeenText
-
-	; text when trainer beaten
-	dw CamperDeanBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CamperDeanScript
-; 0x1aaf33
-
-CamperDeanScript: ; 0x1aaf33
+CamperDeanScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1aafd9
@@ -33,29 +15,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1aaf3b
 
-TrainerPicnickerHeidi: ; 0x1aaf3b
-	; bit/flag number
-	dw $48a
+TrainerPicnickerHeidi:
+	trainer EVENT_BEAT_PICNICKER_HEIDI, PICNICKER, HEIDI, PicnickerHeidiSeenText, PicnickerHeidiBeatenText, $0000, PicnickerHeidiScript
 
-	; trainer group && trainer id
-	db PICNICKER, HEIDI
-
-	; text when seen
-	dw PicnickerHeidiSeenText
-
-	; text when trainer beaten
-	dw PicnickerHeidiBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PicnickerHeidiScript
-; 0x1aaf47
-
-PicnickerHeidiScript: ; 0x1aaf47
+PicnickerHeidiScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ab07c
@@ -62,29 +26,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1aaf4f
 
-TrainerCamperSid: ; 0x1aaf4f
-	; bit/flag number
-	dw $421
+TrainerCamperSid:
+	trainer EVENT_BEAT_CAMPER_SID, CAMPER, SID, CamperSidSeenText, CamperSidBeatenText, $0000, CamperSidScript
 
-	; trainer group && trainer id
-	db CAMPER, SID
-
-	; text when seen
-	dw CamperSidSeenText
-
-	; text when trainer beaten
-	dw CamperSidBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CamperSidScript
-; 0x1aaf5b
-
-CamperSidScript: ; 0x1aaf5b
+CamperSidScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ab0f6
@@ -91,29 +37,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1aaf63
 
-TrainerPicnickerEdna: ; 0x1aaf63
-	; bit/flag number
-	dw $48b
+TrainerPicnickerEdna:
+	trainer EVENT_BEAT_PICNICKER_EDNA, PICNICKER, EDNA, PicnickerEdnaSeenText, PicnickerEdnaBeatenText, $0000, PicnickerEdnaScript
 
-	; trainer group && trainer id
-	db PICNICKER, EDNA
-
-	; text when seen
-	dw PicnickerEdnaSeenText
-
-	; text when trainer beaten
-	dw PicnickerEdnaBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PicnickerEdnaScript
-; 0x1aaf6f
-
-PicnickerEdnaScript: ; 0x1aaf6f
+PicnickerEdnaScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ab15f
@@ -120,29 +48,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1aaf77
 
-TrainerHikerTim: ; 0x1aaf77
-	; bit/flag number
-	dw $530
+TrainerHikerTim:
+	trainer EVENT_BEAT_HIKER_TIM, HIKER, TIM, HikerTimSeenText, HikerTimBeatenText, $0000, HikerTimScript
 
-	; trainer group && trainer id
-	db HIKER, TIM
-
-	; text when seen
-	dw HikerTimSeenText
-
-	; text when trainer beaten
-	dw HikerTimBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw HikerTimScript
-; 0x1aaf83
-
-HikerTimScript: ; 0x1aaf83
+HikerTimScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ab210
@@ -149,29 +59,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1aaf8b
 
-TrainerHikerSidney: ; 0x1aaf8b
-	; bit/flag number
-	dw $532
+TrainerHikerSidney:
+	trainer EVENT_BEAT_HIKER_SIDNEY, HIKER, SIDNEY, HikerSidneySeenText, HikerSidneyBeatenText, $0000, HikerSidneyScript
 
-	; trainer group && trainer id
-	db HIKER, SIDNEY
-
-	; text when seen
-	dw HikerSidneySeenText
-
-	; text when trainer beaten
-	dw HikerSidneyBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw HikerSidneyScript
-; 0x1aaf97
-
-HikerSidneyScript: ; 0x1aaf97
+HikerSidneyScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1ab278
@@ -178,30 +70,24 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1aaf9f
 
-MapRoute9Signpost0Script: ; 0x1aaf9f
+MapRoute9Signpost0Script:
 	jumptext UnknownText_0x1ab2a2
-; 0x1aafa2
 
-MapRoute9SignpostItem1: ; 0x1aafa2
-	dw $00f2
-	db ETHER
+MapRoute9SignpostItem1:
+	dwb EVENT_ROUTE_9_HIDDEN_ETHER, ETHER
 	
-; 0x1aafa5
 
-CamperDeanSeenText: ; 0x1aafa5
+CamperDeanSeenText:
 	text "I came to explore"
 	line "ROCK TUNNEL."
 	done
-; 0x1aafc5
 
-CamperDeanBeatenText: ; 0x1aafc5
+CamperDeanBeatenText:
 	text "Whoa! Danger, man."
 	done
-; 0x1aafd9
 
-UnknownText_0x1aafd9: ; 0x1aafd9
+UnknownText_0x1aafd9:
 	text "My #MON were"
 	line "hurt before even"
 
@@ -212,9 +98,8 @@
 	line "them to a #MON"
 	cont "CENTER right away."
 	done
-; 0x1ab03f
 
-PicnickerHeidiSeenText: ; 0x1ab03f
+PicnickerHeidiSeenText:
 	text "Have you ever been"
 	line "to a picnic?"
 
@@ -221,14 +106,12 @@
 	para "They're so much"
 	line "fun!"
 	done
-; 0x1ab074
 
-PicnickerHeidiBeatenText: ; 0x1ab074
+PicnickerHeidiBeatenText:
 	text "Ohhhh!"
 	done
-; 0x1ab07c
 
-UnknownText_0x1ab07c: ; 0x1ab07c
+UnknownText_0x1ab07c:
 	text "We bake lots of"
 	line "goodies and share"
 
@@ -235,40 +118,34 @@
 	para "them all around."
 	line "They're delicious!"
 	done
-; 0x1ab0c2
 
-CamperSidSeenText: ; 0x1ab0c2
+CamperSidSeenText:
 	text "Hey, you!"
 	line "Don't litter!"
 	done
-; 0x1ab0da
 
-CamperSidBeatenText: ; 0x1ab0da
+CamperSidBeatenText:
 	text "I was just point-"
 	line "ing out…"
 	done
-; 0x1ab0f6
 
-UnknownText_0x1ab0f6: ; 0x1ab0f6
+UnknownText_0x1ab0f6:
 	text "Sorry. You weren't"
 	line "littering. It was"
 	cont "my mistake."
 	done
-; 0x1ab127
 
-PicnickerEdnaSeenText: ; 0x1ab127
+PicnickerEdnaSeenText:
 	text "People shouldn't"
 	line "leave any litter"
 	cont "behind."
 	done
-; 0x1ab151
 
-PicnickerEdnaBeatenText: ; 0x1ab151
+PicnickerEdnaBeatenText:
 	text "Ohh… I lost…"
 	done
-; 0x1ab15f
 
-UnknownText_0x1ab15f: ; 0x1ab15f
+UnknownText_0x1ab15f:
 	text "Conserving energy"
 	line "is important, but"
 
@@ -275,9 +152,8 @@
 	para "the environment is"
 	line "even more vital."
 	done
-; 0x1ab1a8
 
-HikerTimSeenText: ; 0x1ab1a8
+HikerTimSeenText:
 	text "She'll be coming"
 	line "'round MT.SILVER"
 	cont "when she comes…"
@@ -285,21 +161,18 @@
 	para "MT.SILVER is in"
 	line "JOHTO, right?"
 	done
-; 0x1ab1f7
 
-HikerTimBeatenText: ; 0x1ab1f7
+HikerTimBeatenText:
 	text "I was too busy"
 	line "singing…"
 	done
-; 0x1ab210
 
-UnknownText_0x1ab210: ; 0x1ab210
+UnknownText_0x1ab210:
 	text "Battles are about"
 	line "concentration."
 	done
-; 0x1ab232
 
-HikerSidneySeenText: ; 0x1ab232
+HikerSidneySeenText:
 	text "I'll tell you a"
 	line "secret."
 
@@ -306,51 +179,46 @@
 	para "But first, we"
 	line "battle!"
 	done
-; 0x1ab260
 
-HikerSidneyBeatenText: ; 0x1ab260
+HikerSidneyBeatenText:
 	text "Oh, dang!"
 	line "I lost that…"
 	done
-; 0x1ab278
 
-UnknownText_0x1ab278: ; 0x1ab278
+UnknownText_0x1ab278:
 	text "The POWER PLANT is"
 	line "across a small"
 	cont "river."
 	done
-; 0x1ab2a2
 
-UnknownText_0x1ab2a2: ; 0x1ab2a2
+UnknownText_0x1ab2a2:
 	text "ROUTE 9"
 
 	para "CERULEAN CITY -"
 	line "ROCK TUNNEL"
 	done
-; 0x1ab2c7
 
-Route9_MapEventHeader: ; 0x1ab2c7
+Route9_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $f, $30, 1, GROUP_ROCK_TUNNEL_1F, MAP_ROCK_TUNNEL_1F
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 7, 15, $0, MapRoute9Signpost0Script
-	signpost 15, 41, $7, MapRoute9SignpostItem1
+	signpost 7, 15, SIGNPOST_READ, MapRoute9Signpost0Script
+	signpost 15, 41, SIGNPOST_ITEM, MapRoute9SignpostItem1
 
-	; people-events
+.PersonEvents:
 	db 6
-	person_event SPRITE_YOUNGSTER, 15, 27, $8, $0, 255, 255, $a2, 3, TrainerCamperDean, $ffff
-	person_event SPRITE_LASS, 12, 43, $a, $0, 255, 255, $a2, 3, TrainerPicnickerHeidi, $ffff
-	person_event SPRITE_YOUNGSTER, 8, 15, $a, $0, 255, 255, $a2, 5, TrainerCamperSid, $ffff
-	person_event SPRITE_LASS, 19, 16, $7, $0, 255, 255, $a2, 1, TrainerPicnickerEdna, $ffff
-	person_event SPRITE_POKEFAN_M, 7, 32, $9, $0, 255, 255, $b2, 2, TrainerHikerTim, $ffff
-	person_event SPRITE_POKEFAN_M, 19, 40, $9, $0, 255, 255, $b2, 4, TrainerHikerSidney, $ffff
-; 0x1ab32a
+	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
--- a/maps/RuinsofAlphAerodactylChamber.asm
+++ b/maps/RuinsofAlphAerodactylChamber.asm
@@ -1,5 +1,5 @@
-RuinsofAlphAerodactylChamber_MapScriptHeader: ; 0x58da0
-	; trigger count
+RuinsofAlphAerodactylChamber_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,49 +6,43 @@
 	dw UnknownScript_0x58dad, $0000
 	dw UnknownScript_0x58db8, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 1, UnknownScript_0x58db9
-; 0x58dad
 
-UnknownScript_0x58dad: ; 0x58dad
+UnknownScript_0x58dad:
 	checkevent EVENT_WALL_OPENED_IN_AERODACTYL_CHAMBER
 	iftrue UnknownScript_0x58db4
 	end
-; 0x58db4
 
-UnknownScript_0x58db4: ; 0x58db4
+UnknownScript_0x58db4:
 	priorityjump UnknownScript_0x58dd3
 	end
-; 0x58db8
 
-UnknownScript_0x58db8: ; 0x58db8
+UnknownScript_0x58db8:
 	end
-; 0x58db9
 
-UnknownScript_0x58db9: ; 0x58db9
+UnknownScript_0x58db9:
 	checkevent EVENT_WALL_OPENED_IN_AERODACTYL_CHAMBER
 	iftrue UnknownScript_0x58dc3
 	changeblock $4, $0, $2e
-UnknownScript_0x58dc3: ; 0x58dc3
-	checkevent $02a3
+UnknownScript_0x58dc3:
+	checkevent EVENT_SOLVED_AERODACTYL_PUZZLE
 	iffalse UnknownScript_0x58dca
 	return
-; 0x58dca
 
-UnknownScript_0x58dca: ; 0x58dca
+UnknownScript_0x58dca:
 	changeblock $2, $2, $1
 	changeblock $4, $2, $2
 	return
-; 0x58dd3
 
-UnknownScript_0x58dd3: ; 0x58dd3
+UnknownScript_0x58dd3:
 	pause 30
 	earthquake 30
-	showemote $0, $0, 20
+	showemote EMOTE_SHOCK, $0, 20
 	pause 30
 	playsound SFX_STRENGTH
 	changeblock $4, $0, $30
@@ -57,24 +51,22 @@
 	dotrigger $1
 	loadmovesprites
 	end
-; 0x58deb
 
-MapRuinsofAlphAerodactylChamberSignpost2Script: ; 0x58deb
+MapRuinsofAlphAerodactylChamberSignpost2Script:
 	refreshscreen $0
 	writebyte $2
-	special Functionc360
+	special Special_UnownPuzzle
 	loadmovesprites
 	iftrue UnknownScript_0x58df7
 	end
-; 0x58df7
 
-UnknownScript_0x58df7: ; 0x58df7
-	setevent $0705
-	setevent $02a3
-	setflag $002d
+UnknownScript_0x58df7:
+	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
 	earthquake 30
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	changeblock $2, $2, $18
 	changeblock $4, $2, $19
 	reloadmappart
@@ -86,81 +78,69 @@
 	pause 20
 	warpcheck
 	end
-; 0x58e24
 
-MapRuinsofAlphAerodactylChamberSignpost1Script: ; 0x58e24
+MapRuinsofAlphAerodactylChamberSignpost1Script:
 	jumptext UnknownText_0x58ec2
-; 0x58e27
 
-MapRuinsofAlphAerodactylChamberSignpost3Script: ; 0x58e27
+MapRuinsofAlphAerodactylChamberSignpost3Script:
 	jumptext UnknownText_0x58ee7
-; 0x58e2a
 
-MapRuinsofAlphAerodactylChamberSignpost4Script: ; 0x58e2a
+MapRuinsofAlphAerodactylChamberSignpost4Script:
 	loadfont
 	writetext UnknownText_0x58e4f
 	writebyte $1
-	special Function8ae68
+	special Special_DisplayUnownWords
 	loadmovesprites
 	end
-; 0x58e35
 
-MapRuinsofAlphAerodactylChamberSignpost5Script: ; 0x58e35
+MapRuinsofAlphAerodactylChamberSignpost5Script:
 	checkevent EVENT_WALL_OPENED_IN_AERODACTYL_CHAMBER
 	iftrue UnknownScript_0x58e46
 	loadfont
 	writetext UnknownText_0x58e81
 	writebyte $1
-	special Function8ae68
+	special Special_DisplayUnownWords
 	loadmovesprites
 	end
-; 0x58e46
 
-UnknownScript_0x58e46: ; 0x58e46
+UnknownScript_0x58e46:
 	loadfont
 	writetext UnknownText_0x58ea2
 	closetext
 	loadmovesprites
 	end
-; 0x58e4d
 
-MovementData_0x58e4d: ; 0x58e4d
+MovementData_0x58e4d:
 	db $59 ; movement
 	step_end
-; 0x58e4f
 
-UnknownText_0x58e4f: ; 0x58e4f
+UnknownText_0x58e4f:
 	text "Patterns appeared"
 	line "on the walls…"
 	done
-; 0x58e70
 
 ; possibly unused.. again?
-UnknownText_0x58e70: ; 0x58e70
+UnknownText_0x58e70:
 	text "It's UNOWN text!"
 	done
-; 0x58e81
 
-UnknownText_0x58e81: ; 0x58e81
+UnknownText_0x58e81:
 	text "Patterns appeared"
 	line "on the walls…"
 	done
-; 0x58ea2
 
-UnknownText_0x58ea2: ; 0x58ea2
+UnknownText_0x58ea2:
 	text "There's a big hole"
 	line "in the wall!"
 	done
-; 0x58ec2
 
-UnknownText_0x58ec2: ; 0x58ec2
+UnknownText_0x58ec2:
 	text "It's a replica of"
 	line "an ancient #-"
 	cont "MON."
 	done
-; 0x58ee7
 
-UnknownText_0x58ee7: ; 0x58ee7
+UnknownText_0x58ee7:
 	text "This flying #-"
 	line "MON attacked its"
 
@@ -167,13 +147,12 @@
 	para "prey with saw-like"
 	line "fangs."
 	done
-; 0x58f22
 
-RuinsofAlphAerodactylChamber_MapEventHeader: ; 0x58f22
+RuinsofAlphAerodactylChamber_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -181,18 +160,17 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 6
-	signpost 3, 2, $0, MapRuinsofAlphAerodactylChamberSignpost1Script
-	signpost 3, 5, $0, MapRuinsofAlphAerodactylChamberSignpost1Script
-	signpost 2, 3, $1, MapRuinsofAlphAerodactylChamberSignpost2Script
-	signpost 2, 4, $1, MapRuinsofAlphAerodactylChamberSignpost3Script
-	signpost 0, 3, $1, MapRuinsofAlphAerodactylChamberSignpost4Script
-	signpost 0, 4, $1, MapRuinsofAlphAerodactylChamberSignpost5Script
+	signpost 3, 2, SIGNPOST_READ, MapRuinsofAlphAerodactylChamberSignpost1Script
+	signpost 3, 5, SIGNPOST_READ, MapRuinsofAlphAerodactylChamberSignpost1Script
+	signpost 2, 3, SIGNPOST_UP, MapRuinsofAlphAerodactylChamberSignpost2Script
+	signpost 2, 4, SIGNPOST_UP, MapRuinsofAlphAerodactylChamberSignpost3Script
+	signpost 0, 3, SIGNPOST_UP, MapRuinsofAlphAerodactylChamberSignpost4Script
+	signpost 0, 4, SIGNPOST_UP, MapRuinsofAlphAerodactylChamberSignpost5Script
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x58f5f
--- a/maps/RuinsofAlphAerodactylItemRoom.asm
+++ b/maps/RuinsofAlphAerodactylItemRoom.asm
@@ -1,43 +1,36 @@
-RuinsofAlphAerodactylItemRoom_MapScriptHeader: ; 0x59ab4
-	; trigger count
+RuinsofAlphAerodactylItemRoom_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x59ab6
 
-ItemFragment_0x59ab6: ; 0x59ab6
+ItemFragment_0x59ab6:
 	db GOLD_BERRY, 1
-; 0x59ab8
 
-ItemFragment_0x59ab8: ; 0x59ab8
+ItemFragment_0x59ab8:
 	db MOON_STONE, 1
-; 0x59aba
 
-ItemFragment_0x59aba: ; 0x59aba
+ItemFragment_0x59aba:
 	db HEAL_POWDER, 1
-; 0x59abc
 
-ItemFragment_0x59abc: ; 0x59abc
+ItemFragment_0x59abc:
 	db ENERGY_ROOT, 1
-; 0x59abe
 
-MapRuinsofAlphAerodactylItemRoomSignpost1Script: ; 0x59abe
+MapRuinsofAlphAerodactylItemRoomSignpost1Script:
 	jumptext UnknownText_0x59ac1
-; 0x59ac1
 
-UnknownText_0x59ac1: ; 0x59ac1
+UnknownText_0x59ac1:
 	text "It's a replica of"
 	line "an ancient #-"
 	cont "MON."
 	done
-; 0x59ae6
 
-RuinsofAlphAerodactylItemRoom_MapEventHeader: ; 0x59ae6
+RuinsofAlphAerodactylItemRoom_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -44,18 +37,17 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 2, $0, MapRuinsofAlphAerodactylItemRoomSignpost1Script
-	signpost 1, 5, $0, MapRuinsofAlphAerodactylItemRoomSignpost1Script
+	signpost 1, 2, SIGNPOST_READ, MapRuinsofAlphAerodactylItemRoomSignpost1Script
+	signpost 1, 5, SIGNPOST_READ, MapRuinsofAlphAerodactylItemRoomSignpost1Script
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_POKE_BALL, 10, 6, $1, $0, 255, 255, $1, 0, ItemFragment_0x59ab6, $07a0
-	person_event SPRITE_POKE_BALL, 10, 9, $1, $0, 255, 255, $1, 0, ItemFragment_0x59ab8, $07a1
-	person_event SPRITE_POKE_BALL, 8, 6, $1, $0, 255, 255, $1, 0, ItemFragment_0x59aba, $07a2
-	person_event SPRITE_POKE_BALL, 8, 9, $1, $0, 255, 255, $1, 0, ItemFragment_0x59abc, $07a3
-; 0x59b3e
+	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
--- a/maps/RuinsofAlphAerodactylWordRoom.asm
+++ b/maps/RuinsofAlphAerodactylWordRoom.asm
@@ -1,27 +1,25 @@
-RuinsofAlphAerodactylWordRoom_MapScriptHeader: ; 0x59b83
-	; trigger count
+RuinsofAlphAerodactylWordRoom_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x59b85
 
-RuinsofAlphAerodactylWordRoom_MapEventHeader: ; 0x59b85
+RuinsofAlphAerodactylWordRoom_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x59b9a
--- a/maps/RuinsofAlphHoOhChamber.asm
+++ b/maps/RuinsofAlphHoOhChamber.asm
@@ -1,5 +1,5 @@
-RuinsofAlphHoOhChamber_MapScriptHeader: ; 0x58560
-	; trigger count
+RuinsofAlphHoOhChamber_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,50 +6,44 @@
 	dw UnknownScript_0x5856d, $0000
 	dw UnknownScript_0x5857b, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 1, UnknownScript_0x5857c
-; 0x5856d
 
-UnknownScript_0x5856d: ; 0x5856d
+UnknownScript_0x5856d:
 	special SpecialHoOhChamber
 	checkevent EVENT_WALL_OPENED_IN_HO_OH_CHAMBER
 	iftrue UnknownScript_0x58577
 	end
-; 0x58577
 
-UnknownScript_0x58577: ; 0x58577
+UnknownScript_0x58577:
 	priorityjump UnknownScript_0x58596
 	end
-; 0x5857b
 
-UnknownScript_0x5857b: ; 0x5857b
+UnknownScript_0x5857b:
 	end
-; 0x5857c
 
-UnknownScript_0x5857c: ; 0x5857c
+UnknownScript_0x5857c:
 	checkevent EVENT_WALL_OPENED_IN_HO_OH_CHAMBER
 	iftrue UnknownScript_0x58586
 	changeblock $4, $0, $2e
-UnknownScript_0x58586: ; 0x58586
-	checkevent $02a0
+UnknownScript_0x58586:
+	checkevent EVENT_SOLVED_HO_OH_PUZZLE
 	iffalse UnknownScript_0x5858d
 	return
-; 0x5858d
 
-UnknownScript_0x5858d: ; 0x5858d
+UnknownScript_0x5858d:
 	changeblock $2, $2, $1
 	changeblock $4, $2, $2
 	return
-; 0x58596
 
-UnknownScript_0x58596: ; 0x58596
+UnknownScript_0x58596:
 	pause 30
 	earthquake 30
-	showemote $0, $0, 20
+	showemote EMOTE_SHOCK, $0, 20
 	pause 30
 	playsound SFX_STRENGTH
 	changeblock $4, $0, $30
@@ -58,24 +52,22 @@
 	dotrigger $1
 	loadmovesprites
 	end
-; 0x585ae
 
-MapRuinsofAlphHoOhChamberSignpost2Script: ; 0x585ae
+MapRuinsofAlphHoOhChamberSignpost2Script:
 	refreshscreen $0
 	writebyte $3
-	special Functionc360
+	special Special_UnownPuzzle
 	loadmovesprites
 	iftrue UnknownScript_0x585ba
 	end
-; 0x585ba
 
-UnknownScript_0x585ba: ; 0x585ba
-	setevent $0705
-	setevent $02a0
-	setflag $002e
+UnknownScript_0x585ba:
+	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
 	earthquake 30
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	changeblock $2, $2, $18
 	changeblock $4, $2, $19
 	reloadmappart
@@ -87,81 +79,69 @@
 	pause 20
 	warpcheck
 	end
-; 0x585e7
 
-MapRuinsofAlphHoOhChamberSignpost1Script: ; 0x585e7
+MapRuinsofAlphHoOhChamberSignpost1Script:
 	jumptext UnknownText_0x58685
-; 0x585ea
 
-MapRuinsofAlphHoOhChamberSignpost3Script: ; 0x585ea
+MapRuinsofAlphHoOhChamberSignpost3Script:
 	jumptext UnknownText_0x586aa
-; 0x585ed
 
-MapRuinsofAlphHoOhChamberSignpost4Script: ; 0x585ed
+MapRuinsofAlphHoOhChamberSignpost4Script:
 	loadfont
 	writetext UnknownText_0x58612
 	writebyte $3
-	special Function8ae68
+	special Special_DisplayUnownWords
 	loadmovesprites
 	end
-; 0x585f8
 
-MapRuinsofAlphHoOhChamberSignpost5Script: ; 0x585f8
+MapRuinsofAlphHoOhChamberSignpost5Script:
 	checkevent EVENT_WALL_OPENED_IN_HO_OH_CHAMBER
 	iftrue UnknownScript_0x58609
 	loadfont
 	writetext UnknownText_0x58644
 	writebyte $3
-	special Function8ae68
+	special Special_DisplayUnownWords
 	loadmovesprites
 	end
-; 0x58609
 
-UnknownScript_0x58609: ; 0x58609
+UnknownScript_0x58609:
 	loadfont
 	writetext UnknownText_0x58665
 	closetext
 	loadmovesprites
 	end
-; 0x58610
 
-MovementData_0x58610: ; 0x58610
+MovementData_0x58610:
 	db $59 ; movement
 	step_end
-; 0x58612
 
-UnknownText_0x58612: ; 0x58612
+UnknownText_0x58612:
 	text "Patterns appeared"
 	line "on the walls…"
 	done
-; 0x58633
 
 ; possibly unused
-UnknownText_0x58633: ; 0x58633
+UnknownText_0x58633:
 	text "It's UNOWN text!"
 	done
-; 0x58644
 
-UnknownText_0x58644: ; 0x58644
+UnknownText_0x58644:
 	text "Patterns appeared"
 	line "on the walls…"
 	done
-; 0x58665
 
-UnknownText_0x58665: ; 0x58665
+UnknownText_0x58665:
 	text "There's a big hole"
 	line "in the wall!"
 	done
-; 0x58685
 
-UnknownText_0x58685: ; 0x58685
+UnknownText_0x58685:
 	text "It's a replica of"
 	line "an ancient #-"
 	cont "MON."
 	done
-; 0x586aa
 
-UnknownText_0x586aa: ; 0x586aa
+UnknownText_0x586aa:
 	text "A #MON that"
 	line "flew gracefully on"
 
@@ -168,13 +148,12 @@
 	para "rainbow-colored"
 	line "wings."
 	done
-; 0x586e1
 
-RuinsofAlphHoOhChamber_MapEventHeader: ; 0x586e1
+RuinsofAlphHoOhChamber_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -182,18 +161,17 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 6
-	signpost 3, 2, $0, MapRuinsofAlphHoOhChamberSignpost1Script
-	signpost 3, 5, $0, MapRuinsofAlphHoOhChamberSignpost1Script
-	signpost 2, 3, $1, MapRuinsofAlphHoOhChamberSignpost2Script
-	signpost 2, 4, $1, MapRuinsofAlphHoOhChamberSignpost3Script
-	signpost 0, 3, $1, MapRuinsofAlphHoOhChamberSignpost4Script
-	signpost 0, 4, $1, MapRuinsofAlphHoOhChamberSignpost5Script
+	signpost 3, 2, SIGNPOST_READ, MapRuinsofAlphHoOhChamberSignpost1Script
+	signpost 3, 5, SIGNPOST_READ, MapRuinsofAlphHoOhChamberSignpost1Script
+	signpost 2, 3, SIGNPOST_UP, MapRuinsofAlphHoOhChamberSignpost2Script
+	signpost 2, 4, SIGNPOST_UP, MapRuinsofAlphHoOhChamberSignpost3Script
+	signpost 0, 3, SIGNPOST_UP, MapRuinsofAlphHoOhChamberSignpost4Script
+	signpost 0, 4, SIGNPOST_UP, MapRuinsofAlphHoOhChamberSignpost5Script
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x5871e
--- a/maps/RuinsofAlphHoOhItemRoom.asm
+++ b/maps/RuinsofAlphHoOhItemRoom.asm
@@ -1,43 +1,36 @@
-RuinsofAlphHoOhItemRoom_MapScriptHeader: ; 0x59916
-	; trigger count
+RuinsofAlphHoOhItemRoom_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x59918
 
-ItemFragment_0x59918: ; 0x59918
+ItemFragment_0x59918:
 	db GOLD_BERRY, 1
-; 0x5991a
 
-ItemFragment_0x5991a: ; 0x5991a
+ItemFragment_0x5991a:
 	db MYSTERYBERRY, 1
-; 0x5991c
 
-ItemFragment_0x5991c: ; 0x5991c
+ItemFragment_0x5991c:
 	db REVIVAL_HERB, 1
-; 0x5991e
 
-ItemFragment_0x5991e: ; 0x5991e
+ItemFragment_0x5991e:
 	db CHARCOAL, 1
-; 0x59920
 
-MapRuinsofAlphHoOhItemRoomSignpost1Script: ; 0x59920
+MapRuinsofAlphHoOhItemRoomSignpost1Script:
 	jumptext UnknownText_0x59923
-; 0x59923
 
-UnknownText_0x59923: ; 0x59923
+UnknownText_0x59923:
 	text "It's a replica of"
 	line "an ancient #-"
 	cont "MON."
 	done
-; 0x59948
 
-RuinsofAlphHoOhItemRoom_MapEventHeader: ; 0x59948
+RuinsofAlphHoOhItemRoom_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -44,18 +37,17 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 2, $0, MapRuinsofAlphHoOhItemRoomSignpost1Script
-	signpost 1, 5, $0, MapRuinsofAlphHoOhItemRoomSignpost1Script
+	signpost 1, 2, SIGNPOST_READ, MapRuinsofAlphHoOhItemRoomSignpost1Script
+	signpost 1, 5, SIGNPOST_READ, MapRuinsofAlphHoOhItemRoomSignpost1Script
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_POKE_BALL, 10, 6, $1, $0, 255, 255, $1, 0, ItemFragment_0x59918, $0794
-	person_event SPRITE_POKE_BALL, 10, 9, $1, $0, 255, 255, $1, 0, ItemFragment_0x5991a, $0795
-	person_event SPRITE_POKE_BALL, 8, 6, $1, $0, 255, 255, $1, 0, ItemFragment_0x5991c, $0796
-	person_event SPRITE_POKE_BALL, 8, 9, $1, $0, 255, 255, $1, 0, ItemFragment_0x5991e, $0797
-; 0x599a0
+	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
--- a/maps/RuinsofAlphHoOhWordRoom.asm
+++ b/maps/RuinsofAlphHoOhWordRoom.asm
@@ -1,27 +1,25 @@
-RuinsofAlphHoOhWordRoom_MapScriptHeader: ; 0x59b3e
-	; trigger count
+RuinsofAlphHoOhWordRoom_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x59b40
 
-RuinsofAlphHoOhWordRoom_MapEventHeader: ; 0x59b40
+RuinsofAlphHoOhWordRoom_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x59b55
--- a/maps/RuinsofAlphInnerChamber.asm
+++ b/maps/RuinsofAlphInnerChamber.asm
@@ -1,5 +1,5 @@
-RuinsofAlphInnerChamber_MapScriptHeader: ; 0x58f5f
-	; trigger count
+RuinsofAlphInnerChamber_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,23 +6,19 @@
 	dw UnknownScript_0x58f69, $0000
 	dw UnknownScript_0x58f6a, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x58f69
 
-UnknownScript_0x58f69: ; 0x58f69
+UnknownScript_0x58f69:
 	end
-; 0x58f6a
 
-UnknownScript_0x58f6a: ; 0x58f6a
+UnknownScript_0x58f6a:
 	priorityjump UnknownScript_0x58f6e
-; 0x58f6d
 
-UnknownScript_0x58f6d: ; 0x58f6d
+UnknownScript_0x58f6d:
 	end
-; 0x58f6e
 
-UnknownScript_0x58f6e: ; 0x58f6e
+UnknownScript_0x58f6e:
 	loadfont
 	writetext UnknownText_0x58f89
 	closetext
@@ -29,40 +25,33 @@
 	loadmovesprites
 	dotrigger $0
 	setevent EVENT_MADE_UNOWN_APPEAR_IN_RUINS
-	clearevent $078e
+	clearevent EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_FISHER
 	end
-; 0x58f7d
 
-FisherScript_0x58f7d: ; 0x58f7d
+FisherScript_0x58f7d:
 	jumptextfaceplayer UnknownText_0x58fac
-; 0x58f80
 
-TeacherScript_0x58f80: ; 0x58f80
+TeacherScript_0x58f80:
 	jumptextfaceplayer UnknownText_0x58fda
-; 0x58f83
 
-GrampsScript_0x58f83: ; 0x58f83
+GrampsScript_0x58f83:
 	jumptextfaceplayer UnknownText_0x59024
-; 0x58f86
 
-MapRuinsofAlphInnerChamberSignpost25Script: ; 0x58f86
+MapRuinsofAlphInnerChamberSignpost25Script:
 	jumptext UnknownText_0x59072
-; 0x58f89
 
-UnknownText_0x58f89: ; 0x58f89
+UnknownText_0x58f89:
 	text "There is a strange"
 	line "presence here…"
 	done
-; 0x58fac
 
-UnknownText_0x58fac: ; 0x58fac
+UnknownText_0x58fac:
 	text "This is a big"
 	line "room, but there's"
 	cont "nothing here."
 	done
-; 0x58fda
 
-UnknownText_0x58fda: ; 0x58fda
+UnknownText_0x58fda:
 	text "This place has a"
 	line "mystical quality"
 	cont "to it."
@@ -70,9 +59,8 @@
 	para "It feels sort of"
 	line "ethereal even."
 	done
-; 0x59024
 
-UnknownText_0x59024: ; 0x59024
+UnknownText_0x59024:
 	text "Ancient buildings"
 	line "are often tombs of"
 	cont "kings."
@@ -80,20 +68,18 @@
 	para "Like the pyramids,"
 	line "for instance."
 	done
-; 0x59072
 
-UnknownText_0x59072: ; 0x59072
+UnknownText_0x59072:
 	text "It's a replica of"
 	line "an ancient #-"
 	cont "MON."
 	done
-; 0x59097
 
-RuinsofAlphInnerChamber_MapEventHeader: ; 0x59097
+RuinsofAlphInnerChamber_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -105,41 +91,40 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 26
-	signpost 3, 2, $0, MapRuinsofAlphInnerChamberSignpost25Script
-	signpost 3, 5, $0, MapRuinsofAlphInnerChamberSignpost25Script
-	signpost 3, 8, $0, MapRuinsofAlphInnerChamberSignpost25Script
-	signpost 3, 11, $0, MapRuinsofAlphInnerChamberSignpost25Script
-	signpost 3, 14, $0, MapRuinsofAlphInnerChamberSignpost25Script
-	signpost 3, 17, $0, MapRuinsofAlphInnerChamberSignpost25Script
-	signpost 8, 2, $0, MapRuinsofAlphInnerChamberSignpost25Script
-	signpost 8, 5, $0, MapRuinsofAlphInnerChamberSignpost25Script
-	signpost 8, 8, $0, MapRuinsofAlphInnerChamberSignpost25Script
-	signpost 8, 11, $0, MapRuinsofAlphInnerChamberSignpost25Script
-	signpost 8, 14, $0, MapRuinsofAlphInnerChamberSignpost25Script
-	signpost 8, 17, $0, MapRuinsofAlphInnerChamberSignpost25Script
-	signpost 13, 2, $0, MapRuinsofAlphInnerChamberSignpost25Script
-	signpost 13, 17, $0, MapRuinsofAlphInnerChamberSignpost25Script
-	signpost 18, 2, $0, MapRuinsofAlphInnerChamberSignpost25Script
-	signpost 18, 5, $0, MapRuinsofAlphInnerChamberSignpost25Script
-	signpost 18, 8, $0, MapRuinsofAlphInnerChamberSignpost25Script
-	signpost 18, 11, $0, MapRuinsofAlphInnerChamberSignpost25Script
-	signpost 18, 14, $0, MapRuinsofAlphInnerChamberSignpost25Script
-	signpost 18, 17, $0, MapRuinsofAlphInnerChamberSignpost25Script
-	signpost 24, 2, $0, MapRuinsofAlphInnerChamberSignpost25Script
-	signpost 24, 5, $0, MapRuinsofAlphInnerChamberSignpost25Script
-	signpost 24, 8, $0, MapRuinsofAlphInnerChamberSignpost25Script
-	signpost 24, 11, $0, MapRuinsofAlphInnerChamberSignpost25Script
-	signpost 24, 14, $0, MapRuinsofAlphInnerChamberSignpost25Script
-	signpost 24, 17, $0, MapRuinsofAlphInnerChamberSignpost25Script
+	signpost 3, 2, SIGNPOST_READ, MapRuinsofAlphInnerChamberSignpost25Script
+	signpost 3, 5, SIGNPOST_READ, MapRuinsofAlphInnerChamberSignpost25Script
+	signpost 3, 8, SIGNPOST_READ, MapRuinsofAlphInnerChamberSignpost25Script
+	signpost 3, 11, SIGNPOST_READ, MapRuinsofAlphInnerChamberSignpost25Script
+	signpost 3, 14, SIGNPOST_READ, MapRuinsofAlphInnerChamberSignpost25Script
+	signpost 3, 17, SIGNPOST_READ, MapRuinsofAlphInnerChamberSignpost25Script
+	signpost 8, 2, SIGNPOST_READ, MapRuinsofAlphInnerChamberSignpost25Script
+	signpost 8, 5, SIGNPOST_READ, MapRuinsofAlphInnerChamberSignpost25Script
+	signpost 8, 8, SIGNPOST_READ, MapRuinsofAlphInnerChamberSignpost25Script
+	signpost 8, 11, SIGNPOST_READ, MapRuinsofAlphInnerChamberSignpost25Script
+	signpost 8, 14, SIGNPOST_READ, MapRuinsofAlphInnerChamberSignpost25Script
+	signpost 8, 17, SIGNPOST_READ, MapRuinsofAlphInnerChamberSignpost25Script
+	signpost 13, 2, SIGNPOST_READ, MapRuinsofAlphInnerChamberSignpost25Script
+	signpost 13, 17, SIGNPOST_READ, MapRuinsofAlphInnerChamberSignpost25Script
+	signpost 18, 2, SIGNPOST_READ, MapRuinsofAlphInnerChamberSignpost25Script
+	signpost 18, 5, SIGNPOST_READ, MapRuinsofAlphInnerChamberSignpost25Script
+	signpost 18, 8, SIGNPOST_READ, MapRuinsofAlphInnerChamberSignpost25Script
+	signpost 18, 11, SIGNPOST_READ, MapRuinsofAlphInnerChamberSignpost25Script
+	signpost 18, 14, SIGNPOST_READ, MapRuinsofAlphInnerChamberSignpost25Script
+	signpost 18, 17, SIGNPOST_READ, MapRuinsofAlphInnerChamberSignpost25Script
+	signpost 24, 2, SIGNPOST_READ, MapRuinsofAlphInnerChamberSignpost25Script
+	signpost 24, 5, SIGNPOST_READ, MapRuinsofAlphInnerChamberSignpost25Script
+	signpost 24, 8, SIGNPOST_READ, MapRuinsofAlphInnerChamberSignpost25Script
+	signpost 24, 11, SIGNPOST_READ, MapRuinsofAlphInnerChamberSignpost25Script
+	signpost 24, 14, SIGNPOST_READ, MapRuinsofAlphInnerChamberSignpost25Script
+	signpost 24, 17, SIGNPOST_READ, MapRuinsofAlphInnerChamberSignpost25Script
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_FISHER, 11, 7, $3, $0, 255, 255, $a0, 0, FisherScript_0x58f7d, $0705
-	person_event SPRITE_TEACHER, 17, 18, $2, $11, 255, 255, $0, 0, TeacherScript_0x58f80, $0705
-	person_event SPRITE_GRAMPS, 23, 15, $7, $0, 255, 255, $b0, 0, GrampsScript_0x58f83, $0705
-; 0x59173
+	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
--- a/maps/RuinsofAlphKabutoChamber.asm
+++ b/maps/RuinsofAlphKabutoChamber.asm
@@ -1,5 +1,5 @@
-RuinsofAlphKabutoChamber_MapScriptHeader: ; 0x5871e
-	; trigger count
+RuinsofAlphKabutoChamber_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,52 +6,45 @@
 	dw UnknownScript_0x5872b, $0000
 	dw UnknownScript_0x58736, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 1, UnknownScript_0x58737
-; 0x5872b
 
-UnknownScript_0x5872b: ; 0x5872b
+UnknownScript_0x5872b:
 	checkevent EVENT_WALL_OPENED_IN_KABUTO_CHAMBER
 	iftrue UnknownScript_0x58732
 	end
-; 0x58732
 
-UnknownScript_0x58732: ; 0x58732
+UnknownScript_0x58732:
 	priorityjump UnknownScript_0x58751
-; 0x58735
 
-UnknownScript_0x58735: ; 0x58735
+UnknownScript_0x58735:
 	end
-; 0x58736
 
-UnknownScript_0x58736: ; 0x58736
+UnknownScript_0x58736:
 	end
-; 0x58737
 
-UnknownScript_0x58737: ; 0x58737
+UnknownScript_0x58737:
 	checkevent EVENT_WALL_OPENED_IN_KABUTO_CHAMBER
 	iftrue UnknownScript_0x58741
 	changeblock $4, $0, $2e
-UnknownScript_0x58741: ; 0x58741
-	checkevent $02a1
+UnknownScript_0x58741:
+	checkevent EVENT_SOLVED_KABUTO_PUZZLE
 	iffalse UnknownScript_0x58748
 	return
-; 0x58748
 
-UnknownScript_0x58748: ; 0x58748
+UnknownScript_0x58748:
 	changeblock $2, $2, $1
 	changeblock $4, $2, $2
 	return
-; 0x58751
 
-UnknownScript_0x58751: ; 0x58751
+UnknownScript_0x58751:
 	pause 30
 	earthquake 30
-	showemote $0, $0, 20
+	showemote EMOTE_SHOCK, $0, 20
 	pause 30
 	playsound SFX_STRENGTH
 	changeblock $4, $0, $30
@@ -60,29 +53,26 @@
 	dotrigger $1
 	loadmovesprites
 	end
-; 0x58769
 
-ReceptionistScript_0x58769: ; 0x58769
+ReceptionistScript_0x58769:
 	jumptextfaceplayer UnknownText_0x58800
-; 0x5876c
 
-MapRuinsofAlphKabutoChamberSignpost2Script: ; 0x5876c
+MapRuinsofAlphKabutoChamberSignpost2Script:
 	refreshscreen $0
 	writebyte $0
-	special Functionc360
+	special Special_UnownPuzzle
 	loadmovesprites
 	iftrue UnknownScript_0x58778
 	end
-; 0x58778
 
-UnknownScript_0x58778: ; 0x58778
-	setevent $0705
-	setevent $02a1
-	setflag $002b
-	setevent $074e
+UnknownScript_0x58778:
+	setevent EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS
+	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
 	earthquake 30
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	changeblock $2, $2, $18
 	changeblock $4, $2, $19
 	reloadmappart
@@ -94,83 +84,73 @@
 	pause 20
 	warpcheck
 	end
-; 0x587a8
 
-ScientistScript_0x587a8: ; 0x587a8
+ScientistScript_0x587a8:
 	faceplayer
 	loadfont
-	checkcode $e
+	checkcode VAR_UNOWNCOUNT
 	if_equal 26, UnknownScript_0x587cf
 	checkevent EVENT_WALL_OPENED_IN_KABUTO_CHAMBER
 	iftrue UnknownScript_0x587c9
-	checkevent $02a1
+	checkevent EVENT_SOLVED_KABUTO_PUZZLE
 	iffalse UnknownScript_0x587c0
 	writetext UnknownText_0x589b8
 	keeptextopen
-UnknownScript_0x587c0: ; 0x587c0
+UnknownScript_0x587c0:
 	writetext UnknownText_0x588f5
 	closetext
 	loadmovesprites
 	spriteface $3, UP
 	end
-; 0x587c9
 
-UnknownScript_0x587c9: ; 0x587c9
+UnknownScript_0x587c9:
 	writetext UnknownText_0x5897c
 	closetext
 	loadmovesprites
 	end
-; 0x587cf
 
-UnknownScript_0x587cf: ; 0x587cf
+UnknownScript_0x587cf:
 	writetext UnknownText_0x594cb
 	closetext
 	loadmovesprites
 	end
-; 0x587d5
 
-MapRuinsofAlphKabutoChamberSignpost1Script: ; 0x587d5
+MapRuinsofAlphKabutoChamberSignpost1Script:
 	jumptext UnknownText_0x58b1a
-; 0x587d8
 
-MapRuinsofAlphKabutoChamberSignpost3Script: ; 0x587d8
+MapRuinsofAlphKabutoChamberSignpost3Script:
 	jumptext UnknownText_0x58b3f
-; 0x587db
 
-MapRuinsofAlphKabutoChamberSignpost4Script: ; 0x587db
+MapRuinsofAlphKabutoChamberSignpost4Script:
 	loadfont
 	writetext UnknownText_0x58aa7
 	writebyte $0
-	special Function8ae68
+	special Special_DisplayUnownWords
 	loadmovesprites
 	end
-; 0x587e6
 
-MapRuinsofAlphKabutoChamberSignpost5Script: ; 0x587e6
+MapRuinsofAlphKabutoChamberSignpost5Script:
 	checkevent EVENT_WALL_OPENED_IN_KABUTO_CHAMBER
 	iftrue UnknownScript_0x587f7
 	loadfont
 	writetext UnknownText_0x58ad9
 	writebyte $0
-	special Function8ae68
+	special Special_DisplayUnownWords
 	loadmovesprites
 	end
-; 0x587f7
 
-UnknownScript_0x587f7: ; 0x587f7
+UnknownScript_0x587f7:
 	loadfont
 	writetext UnknownText_0x58afa
 	closetext
 	loadmovesprites
 	end
-; 0x587fe
 
-MovementData_0x587fe: ; 0x587fe
+MovementData_0x587fe:
 	db $59 ; movement
 	step_end
-; 0x58800
 
-UnknownText_0x58800: ; 0x58800
+UnknownText_0x58800:
 	text "Welcome to this"
 	line "chamber."
 
@@ -194,9 +174,8 @@
 	para "some newly found"
 	line "patterns."
 	done
-; 0x588f5
 
-UnknownText_0x588f5: ; 0x588f5
+UnknownText_0x588f5:
 	text "Recently, strange,"
 	line "cryptic patterns"
 	cont "have appeared."
@@ -208,9 +187,8 @@
 	para "You should take a"
 	line "look at the walls."
 	done
-; 0x5897c
 
-UnknownText_0x5897c: ; 0x5897c
+UnknownText_0x5897c:
 	text "Ah! Here's another"
 	line "huge hole!"
 
@@ -217,9 +195,8 @@
 	para "It's big enough to"
 	line "go through!"
 	done
-; 0x589b8
 
-UnknownText_0x589b8: ; 0x589b8
+UnknownText_0x589b8:
 	text "That tremor was"
 	line "pretty scary!"
 
@@ -227,10 +204,9 @@
 	line "concerned about"
 	cont "this wall here…"
 	done
-; 0x58a03
 
 ; possibly unused
-UnknownText_0x58a03: ; 0x58a03
+UnknownText_0x58a03:
 	text "The patterns on"
 	line "the wall appear to"
 	cont "be words!"
@@ -247,40 +223,34 @@
 	para "but it's not clear"
 	line "yet…"
 	done
-; 0x58aa7
 
-UnknownText_0x58aa7: ; 0x58aa7
+UnknownText_0x58aa7:
 	text "Patterns appeared"
 	line "on the walls…"
 	done
-; 0x58ac8
 
 ; possibly unused
-UnknownText_0x58ac8: ; 0x58ac8
+UnknownText_0x58ac8:
 	text "It's UNOWN text!"
 	done
-; 0x58ad9
 
-UnknownText_0x58ad9: ; 0x58ad9
+UnknownText_0x58ad9:
 	text "Patterns appeared"
 	line "on the walls…"
 	done
-; 0x58afa
 
-UnknownText_0x58afa: ; 0x58afa
+UnknownText_0x58afa:
 	text "There's a big hole"
 	line "in the wall!"
 	done
-; 0x58b1a
 
-UnknownText_0x58b1a: ; 0x58b1a
+UnknownText_0x58b1a:
 	text "It's a replica of"
 	line "an ancient #-"
 	cont "MON."
 	done
-; 0x58b3f
 
-UnknownText_0x58b3f: ; 0x58b3f
+UnknownText_0x58b3f:
 	text "A #MON that hid"
 	line "on the sea floor."
 
@@ -287,13 +257,12 @@
 	para "Eyes on its back"
 	line "scanned the area."
 	done
-; 0x58b85
 
-RuinsofAlphKabutoChamber_MapEventHeader: ; 0x58b85
+RuinsofAlphKabutoChamber_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -301,20 +270,19 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 6
-	signpost 3, 2, $0, MapRuinsofAlphKabutoChamberSignpost1Script
-	signpost 3, 5, $0, MapRuinsofAlphKabutoChamberSignpost1Script
-	signpost 2, 3, $1, MapRuinsofAlphKabutoChamberSignpost2Script
-	signpost 2, 4, $1, MapRuinsofAlphKabutoChamberSignpost3Script
-	signpost 0, 3, $1, MapRuinsofAlphKabutoChamberSignpost4Script
-	signpost 0, 4, $1, MapRuinsofAlphKabutoChamberSignpost5Script
+	signpost 3, 2, SIGNPOST_READ, MapRuinsofAlphKabutoChamberSignpost1Script
+	signpost 3, 5, SIGNPOST_READ, MapRuinsofAlphKabutoChamberSignpost1Script
+	signpost 2, 3, SIGNPOST_UP, MapRuinsofAlphKabutoChamberSignpost2Script
+	signpost 2, 4, SIGNPOST_UP, MapRuinsofAlphKabutoChamberSignpost3Script
+	signpost 0, 3, SIGNPOST_UP, MapRuinsofAlphKabutoChamberSignpost4Script
+	signpost 0, 4, SIGNPOST_UP, MapRuinsofAlphKabutoChamberSignpost5Script
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_RECEPTIONIST, 9, 9, $6, $0, 255, 255, $0, 0, ReceptionistScript_0x58769, $074e
-	person_event SPRITE_SCIENTIST, 5, 7, $7, $0, 255, 255, $90, 0, ScientistScript_0x587a8, $ffff
-; 0x58bdc
+	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
--- a/maps/RuinsofAlphKabutoItemRoom.asm
+++ b/maps/RuinsofAlphKabutoItemRoom.asm
@@ -1,43 +1,36 @@
-RuinsofAlphKabutoItemRoom_MapScriptHeader: ; 0x599a0
-	; trigger count
+RuinsofAlphKabutoItemRoom_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x599a2
 
-ItemFragment_0x599a2: ; 0x599a2
+ItemFragment_0x599a2:
 	db BERRY, 1
-; 0x599a4
 
-ItemFragment_0x599a4: ; 0x599a4
+ItemFragment_0x599a4:
 	db PSNCUREBERRY, 1
-; 0x599a6
 
-ItemFragment_0x599a6: ; 0x599a6
+ItemFragment_0x599a6:
 	db HEAL_POWDER, 1
-; 0x599a8
 
-ItemFragment_0x599a8: ; 0x599a8
+ItemFragment_0x599a8:
 	db ENERGYPOWDER, 1
-; 0x599aa
 
-MapRuinsofAlphKabutoItemRoomSignpost1Script: ; 0x599aa
+MapRuinsofAlphKabutoItemRoomSignpost1Script:
 	jumptext UnknownText_0x599ad
-; 0x599ad
 
-UnknownText_0x599ad: ; 0x599ad
+UnknownText_0x599ad:
 	text "It's a replica of"
 	line "an ancient #-"
 	cont "MON."
 	done
-; 0x599d2
 
-RuinsofAlphKabutoItemRoom_MapEventHeader: ; 0x599d2
+RuinsofAlphKabutoItemRoom_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -44,18 +37,17 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 2, $0, MapRuinsofAlphKabutoItemRoomSignpost1Script
-	signpost 1, 5, $0, MapRuinsofAlphKabutoItemRoomSignpost1Script
+	signpost 1, 2, SIGNPOST_READ, MapRuinsofAlphKabutoItemRoomSignpost1Script
+	signpost 1, 5, SIGNPOST_READ, MapRuinsofAlphKabutoItemRoomSignpost1Script
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_POKE_BALL, 10, 6, $1, $0, 255, 255, $1, 0, ItemFragment_0x599a2, $0798
-	person_event SPRITE_POKE_BALL, 10, 9, $1, $0, 255, 255, $1, 0, ItemFragment_0x599a4, $0799
-	person_event SPRITE_POKE_BALL, 8, 6, $1, $0, 255, 255, $1, 0, ItemFragment_0x599a6, $079a
-	person_event SPRITE_POKE_BALL, 8, 9, $1, $0, 255, 255, $1, 0, ItemFragment_0x599a8, $079b
-; 0x59a2a
+	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
--- a/maps/RuinsofAlphKabutoWordRoom.asm
+++ b/maps/RuinsofAlphKabutoWordRoom.asm
@@ -1,27 +1,25 @@
-RuinsofAlphKabutoWordRoom_MapScriptHeader: ; 0x59b55
-	; trigger count
+RuinsofAlphKabutoWordRoom_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x59b57
 
-RuinsofAlphKabutoWordRoom_MapEventHeader: ; 0x59b57
+RuinsofAlphKabutoWordRoom_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x59b6c
--- a/maps/RuinsofAlphOmanyteChamber.asm
+++ b/maps/RuinsofAlphOmanyteChamber.asm
@@ -1,5 +1,5 @@
-RuinsofAlphOmanyteChamber_MapScriptHeader: ; 0x58bdc
-	; trigger count
+RuinsofAlphOmanyteChamber_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,50 +6,44 @@
 	dw UnknownScript_0x58be9, $0000
 	dw UnknownScript_0x58bf7, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 1, UnknownScript_0x58bf8
-; 0x58be9
 
-UnknownScript_0x58be9: ; 0x58be9
-	special Function8adef
+UnknownScript_0x58be9:
+	special SpecialOmanyteChamber
 	checkevent EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER
 	iftrue UnknownScript_0x58bf3
 	end
-; 0x58bf3
 
-UnknownScript_0x58bf3: ; 0x58bf3
+UnknownScript_0x58bf3:
 	priorityjump UnknownScript_0x58c12
 	end
-; 0x58bf7
 
-UnknownScript_0x58bf7: ; 0x58bf7
+UnknownScript_0x58bf7:
 	end
-; 0x58bf8
 
-UnknownScript_0x58bf8: ; 0x58bf8
+UnknownScript_0x58bf8:
 	checkevent EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER
 	iftrue UnknownScript_0x58c02
 	changeblock $4, $0, $2e
-UnknownScript_0x58c02: ; 0x58c02
-	checkevent $02a2
+UnknownScript_0x58c02:
+	checkevent EVENT_SOLVED_OMANYTE_PUZZLE
 	iffalse UnknownScript_0x58c09
 	return
-; 0x58c09
 
-UnknownScript_0x58c09: ; 0x58c09
+UnknownScript_0x58c09:
 	changeblock $2, $2, $1
 	changeblock $4, $2, $2
 	return
-; 0x58c12
 
-UnknownScript_0x58c12: ; 0x58c12
+UnknownScript_0x58c12:
 	pause 30
 	earthquake 30
-	showemote $0, $0, 20
+	showemote EMOTE_SHOCK, $0, 20
 	pause 30
 	playsound SFX_STRENGTH
 	changeblock $4, $0, $30
@@ -58,24 +52,22 @@
 	dotrigger $1
 	loadmovesprites
 	end
-; 0x58c2a
 
-MapRuinsofAlphOmanyteChamberSignpost2Script: ; 0x58c2a
+MapRuinsofAlphOmanyteChamberSignpost2Script:
 	refreshscreen $0
 	writebyte $1
-	special Functionc360
+	special Special_UnownPuzzle
 	loadmovesprites
 	iftrue UnknownScript_0x58c36
 	end
-; 0x58c36
 
-UnknownScript_0x58c36: ; 0x58c36
-	setevent $0705
-	setevent $02a2
-	setflag $002c
+UnknownScript_0x58c36:
+	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
 	earthquake 30
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	changeblock $2, $2, $18
 	changeblock $4, $2, $19
 	reloadmappart
@@ -87,81 +79,69 @@
 	pause 20
 	warpcheck
 	end
-; 0x58c63
 
-MapRuinsofAlphOmanyteChamberSignpost1Script: ; 0x58c63
+MapRuinsofAlphOmanyteChamberSignpost1Script:
 	jumptext UnknownText_0x58d01
-; 0x58c66
 
-MapRuinsofAlphOmanyteChamberSignpost3Script: ; 0x58c66
+MapRuinsofAlphOmanyteChamberSignpost3Script:
 	jumptext UnknownText_0x58d26
-; 0x58c69
 
-MapRuinsofAlphOmanyteChamberSignpost4Script: ; 0x58c69
+MapRuinsofAlphOmanyteChamberSignpost4Script:
 	loadfont
 	writetext UnknownText_0x58c8e
 	writebyte $2
-	special Function8ae68
+	special Special_DisplayUnownWords
 	loadmovesprites
 	end
-; 0x58c74
 
-MapRuinsofAlphOmanyteChamberSignpost5Script: ; 0x58c74
+MapRuinsofAlphOmanyteChamberSignpost5Script:
 	checkevent EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER
 	iftrue UnknownScript_0x58c85
 	loadfont
 	writetext UnknownText_0x58cc0
 	writebyte $2
-	special Function8ae68
+	special Special_DisplayUnownWords
 	loadmovesprites
 	end
-; 0x58c85
 
-UnknownScript_0x58c85: ; 0x58c85
+UnknownScript_0x58c85:
 	loadfont
 	writetext UnknownText_0x58ce1
 	closetext
 	loadmovesprites
 	end
-; 0x58c8c
 
-MovementData_0x58c8c: ; 0x58c8c
+MovementData_0x58c8c:
 	db $59 ; movement
 	step_end
-; 0x58c8e
 
-UnknownText_0x58c8e: ; 0x58c8e
+UnknownText_0x58c8e:
 	text "Patterns appeared"
 	line "on the walls…"
 	done
-; 0x58caf
 
 ; possibly unused.. this again?
-UnknownText_0x58caf: ; 0x58caf
+UnknownText_0x58caf:
 	text "It's UNOWN text!"
 	done
-; 0x58cc0
 
-UnknownText_0x58cc0: ; 0x58cc0
+UnknownText_0x58cc0:
 	text "Patterns appeared"
 	line "on the walls…"
 	done
-; 0x58ce1
 
-UnknownText_0x58ce1: ; 0x58ce1
+UnknownText_0x58ce1:
 	text "There's a big hole"
 	line "in the wall!"
 	done
-; 0x58d01
 
-UnknownText_0x58d01: ; 0x58d01
+UnknownText_0x58d01:
 	text "It's a replica of"
 	line "an ancient #-"
 	cont "MON."
 	done
-; 0x58d26
 
-UnknownText_0x58d26: ; 0x58d26
+UnknownText_0x58d26:
 	text "This #MON"
 	line "drifted in the"
 
@@ -168,13 +148,12 @@
 	para "sea by twisting"
 	line "its ten tentacles."
 	done
-; 0x58d63
 
-RuinsofAlphOmanyteChamber_MapEventHeader: ; 0x58d63
+RuinsofAlphOmanyteChamber_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -182,18 +161,17 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 6
-	signpost 3, 2, $0, MapRuinsofAlphOmanyteChamberSignpost1Script
-	signpost 3, 5, $0, MapRuinsofAlphOmanyteChamberSignpost1Script
-	signpost 2, 3, $1, MapRuinsofAlphOmanyteChamberSignpost2Script
-	signpost 2, 4, $1, MapRuinsofAlphOmanyteChamberSignpost3Script
-	signpost 0, 3, $1, MapRuinsofAlphOmanyteChamberSignpost4Script
-	signpost 0, 4, $1, MapRuinsofAlphOmanyteChamberSignpost5Script
+	signpost 3, 2, SIGNPOST_READ, MapRuinsofAlphOmanyteChamberSignpost1Script
+	signpost 3, 5, SIGNPOST_READ, MapRuinsofAlphOmanyteChamberSignpost1Script
+	signpost 2, 3, SIGNPOST_UP, MapRuinsofAlphOmanyteChamberSignpost2Script
+	signpost 2, 4, SIGNPOST_UP, MapRuinsofAlphOmanyteChamberSignpost3Script
+	signpost 0, 3, SIGNPOST_UP, MapRuinsofAlphOmanyteChamberSignpost4Script
+	signpost 0, 4, SIGNPOST_UP, MapRuinsofAlphOmanyteChamberSignpost5Script
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x58da0
--- a/maps/RuinsofAlphOmanyteItemRoom.asm
+++ b/maps/RuinsofAlphOmanyteItemRoom.asm
@@ -1,43 +1,36 @@
-RuinsofAlphOmanyteItemRoom_MapScriptHeader: ; 0x59a2a
-	; trigger count
+RuinsofAlphOmanyteItemRoom_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x59a2c
 
-ItemFragment_0x59a2c: ; 0x59a2c
+ItemFragment_0x59a2c:
 	db MYSTERYBERRY, 1
-; 0x59a2e
 
-ItemFragment_0x59a2e: ; 0x59a2e
+ItemFragment_0x59a2e:
 	db MYSTIC_WATER, 1
-; 0x59a30
 
-ItemFragment_0x59a30: ; 0x59a30
+ItemFragment_0x59a30:
 	db STARDUST, 1
-; 0x59a32
 
-ItemFragment_0x59a32: ; 0x59a32
+ItemFragment_0x59a32:
 	db STAR_PIECE, 1
-; 0x59a34
 
-MapRuinsofAlphOmanyteItemRoomSignpost1Script: ; 0x59a34
+MapRuinsofAlphOmanyteItemRoomSignpost1Script:
 	jumptext UnknownText_0x59a37
-; 0x59a37
 
-UnknownText_0x59a37: ; 0x59a37
+UnknownText_0x59a37:
 	text "It's a replica of"
 	line "an ancient #-"
 	cont "MON."
 	done
-; 0x59a5c
 
-RuinsofAlphOmanyteItemRoom_MapEventHeader: ; 0x59a5c
+RuinsofAlphOmanyteItemRoom_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -44,18 +37,17 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 2, $0, MapRuinsofAlphOmanyteItemRoomSignpost1Script
-	signpost 1, 5, $0, MapRuinsofAlphOmanyteItemRoomSignpost1Script
+	signpost 1, 2, SIGNPOST_READ, MapRuinsofAlphOmanyteItemRoomSignpost1Script
+	signpost 1, 5, SIGNPOST_READ, MapRuinsofAlphOmanyteItemRoomSignpost1Script
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_POKE_BALL, 10, 6, $1, $0, 255, 255, $1, 0, ItemFragment_0x59a2c, $079c
-	person_event SPRITE_POKE_BALL, 10, 9, $1, $0, 255, 255, $1, 0, ItemFragment_0x59a2e, $079d
-	person_event SPRITE_POKE_BALL, 8, 6, $1, $0, 255, 255, $1, 0, ItemFragment_0x59a30, $079e
-	person_event SPRITE_POKE_BALL, 8, 9, $1, $0, 255, 255, $1, 0, ItemFragment_0x59a32, $079f
-; 0x59ab4
+	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
--- a/maps/RuinsofAlphOmanyteWordRoom.asm
+++ b/maps/RuinsofAlphOmanyteWordRoom.asm
@@ -1,27 +1,25 @@
-RuinsofAlphOmanyteWordRoom_MapScriptHeader: ; 0x59b6c
-	; trigger count
+RuinsofAlphOmanyteWordRoom_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x59b6e
 
-RuinsofAlphOmanyteWordRoom_MapEventHeader: ; 0x59b6e
+RuinsofAlphOmanyteWordRoom_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x59b83
--- a/maps/RuinsofAlphOutside.asm
+++ b/maps/RuinsofAlphOutside.asm
@@ -1,5 +1,5 @@
-RuinsofAlphOutside_MapScriptHeader: ; 0x58000
-	; trigger count
+RuinsofAlphOutside_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,63 +6,54 @@
 	dw UnknownScript_0x5800d, $0000
 	dw UnknownScript_0x5800e, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 2, UnknownScript_0x5800f
-; 0x5800d
 
-UnknownScript_0x5800d: ; 0x5800d
+UnknownScript_0x5800d:
 	end
-; 0x5800e
 
-UnknownScript_0x5800e: ; 0x5800e
+UnknownScript_0x5800e:
 	end
-; 0x5800f
 
-UnknownScript_0x5800f: ; 0x5800f
-	checkflag $000c
+UnknownScript_0x5800f:
+	checkflag ENGINE_UNOWN_DEX
 	iftrue UnknownScript_0x5802c
 	checkevent EVENT_MADE_UNOWN_APPEAR_IN_RUINS
 	iftrue UnknownScript_0x5801e
 	jump UnknownScript_0x5802c
-; 0x5801e
 
-UnknownScript_0x5801e: ; 0x5801e
-	checkcode $e
+UnknownScript_0x5801e:
+	checkcode VAR_UNOWNCOUNT
 	if_greater_than $2, UnknownScript_0x58027
 	jump UnknownScript_0x5802c
-; 0x58027
 
-UnknownScript_0x58027: ; 0x58027
+UnknownScript_0x58027:
 	appear $3
 	dotrigger $1
 	return
-; 0x5802c
 
-UnknownScript_0x5802c: ; 0x5802c
+UnknownScript_0x5802c:
 	disappear $3
 	dotrigger $0
 	return
-; 0x58031
 
-UnknownScript_0x58031: ; 0x58031
+UnknownScript_0x58031:
 	spriteface $3, UP
 	spriteface $0, DOWN
 	jump UnknownScript_0x58044
-; 0x5803a
 
-UnknownScript_0x5803a: ; 0x5803a
+UnknownScript_0x5803a:
 	spriteface $3, LEFT
 	spriteface $0, RIGHT
 	jump UnknownScript_0x58044
-; 0x58043
 
-ScientistScript_0x58043: ; 0x58043
+ScientistScript_0x58043:
 	faceplayer
-UnknownScript_0x58044: ; 0x58044
+UnknownScript_0x58044:
 	loadfont
 	writetext UnknownText_0x580c7
 	closetext
@@ -76,24 +67,22 @@
 	domaptrigger GROUP_RUINS_OF_ALPH_RESEARCH_CENTER, MAP_RUINS_OF_ALPH_RESEARCH_CENTER, $1
 	warpcheck
 	end
-; 0x58061
 
-FisherScript_0x58061: ; 0x58061
+FisherScript_0x58061:
 	faceplayer
 	loadfont
-	checkevent $00bc
-	iftrue UnknownScript_0x58070
-	setevent $00bc
+	checkevent EVENT_TALKED_TO_RUINS_COWARD
+	iftrue .Next
+	setevent EVENT_TALKED_TO_RUINS_COWARD
 	writetext UnknownText_0x583a4
 	keeptextopen
-UnknownScript_0x58070: ;0x58070
+.Next
 	writetext UnknownText_0x58420
 	closetext
 	loadmovesprites
 	end
-; 0x58076
 
-YoungsterScript_0x58076: ; 0x58076
+YoungsterScript_0x58076:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x58449
@@ -100,9 +89,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5807e
 
-YoungsterScript_0x5807e: ; 0x5807e
+YoungsterScript_0x5807e:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x5848e
@@ -110,29 +98,11 @@
 	loadmovesprites
 	spriteface $6, UP
 	end
-; 0x58089
 
-TrainerPsychicNathan: ; 0x58089
-	; bit/flag number
-	dw $43a
+TrainerPsychicNathan:
+	trainer EVENT_BEAT_PSYCHIC_NATHAN, PSYCHIC_T, NATHAN, PsychicNathanSeenText, PsychicNathanBeatenText, $0000, PsychicNathanScript
 
-	; trainer group && trainer id
-	db PSYCHIC_T, NATHAN
-
-	; text when seen
-	dw PsychicNathanSeenText
-
-	; text when trainer beaten
-	dw PsychicNathanBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PsychicNathanScript
-; 0x58095
-
-PsychicNathanScript: ; 0x58095
+PsychicNathanScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5830e
@@ -139,30 +109,12 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5809d
 
 
-TrainerSuperNerdStan: ; 0x5809d
-	; bit/flag number
-	dw $581
+TrainerSuperNerdStan:
+	trainer EVENT_BEAT_SUPER_NERD_STAN, SUPER_NERD, STAN, UnknownText_0x581e5, UnknownText_0x58217, $0000, UnknownScript_0x580a9
 
-	; trainer group && trainer id
-	db SUPER_NERD, STAN
-
-	; text when seen
-	dw UnknownText_0x581e5
-
-	; text when trainer beaten
-	dw UnknownText_0x58217
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw UnknownScript_0x580a9
-; 0x580a9
-
-UnknownScript_0x580a9: ; 0x580a9
+UnknownScript_0x580a9:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x58250
@@ -169,22 +121,18 @@
 	closetext
 	loadmovesprites
 	end
-; 0x580b1
 
 
-MapRuinsofAlphOutsideSignpost0Script: ; 0x580b1
+MapRuinsofAlphOutsideSignpost0Script:
 	jumptext UnknownText_0x58325
-; 0x580b4
 
-MapRuinsofAlphOutsideSignpost1Script: ; 0x580b4
+MapRuinsofAlphOutsideSignpost1Script:
 	jumptext UnknownText_0x58342
-; 0x580b7
 
-MapRuinsofAlphOutsideSignpost2Script: ; 0x580b7
+MapRuinsofAlphOutsideSignpost2Script:
 	jumptext UnknownText_0x58362
-; 0x580ba
 
-MovementData_0x580ba: ; 0x580ba
+MovementData_0x580ba:
 	step_right
 	step_right
 	step_right
@@ -196,14 +144,12 @@
 	step_up
 	step_up
 	step_end
-; 0x580c5
 
-MovementData_0x580c5: ; 0x580c5
+MovementData_0x580c5:
 	step_up
 	step_end
-; 0x580c7
 
-UnknownText_0x580c7: ; 0x580c7
+UnknownText_0x580c7:
 	text "Hm? That's a #-"
 	line "DEX, isn't it?"
 	cont "May I see it?"
@@ -231,16 +177,14 @@
 	line "grade your #-"
 	cont "DEX. Follow me."
 	done
-; 0x581e5
 
-UnknownText_0x581e5: ; 0x581e5
+UnknownText_0x581e5:
 	text "What do you want?"
 	line "I'm studying--"
 	cont "don't disturb me!"
 	done
-; 0x58217
 
-UnknownText_0x58217: ; 0x58217
+UnknownText_0x58217:
 	text "Sorry…"
 	line "I'm frustrated by"
 
@@ -247,9 +191,8 @@
 	para "our lack of real"
 	line "understanding…"
 	done
-; 0x58250
 
-UnknownText_0x58250: ; 0x58250
+UnknownText_0x58250:
 	text "The RUINS are from"
 	line "about 1500 years"
 	cont "ago."
@@ -265,38 +208,32 @@
 	para "It's all one big"
 	line "mystery…"
 	done
-; 0x582eb
 
-PsychicNathanSeenText: ; 0x582eb
+PsychicNathanSeenText:
 	text "Hmmm… This is a"
 	line "strange place."
 	done
-; 0x5830b
 
-PsychicNathanBeatenText: ; 0x5830b
+PsychicNathanBeatenText:
 	text "…"
 	done
-; 0x5830e
 
-UnknownText_0x5830e: ; 0x5830e
+UnknownText_0x5830e:
 	text "I like thinking"
 	line "here."
 	done
-; 0x58325
 
-UnknownText_0x58325: ; 0x58325
+UnknownText_0x58325:
 	text "MYSTERY STONE"
 	line "PANEL CHAMBER"
 	done
-; 0x58342
 
-UnknownText_0x58342: ; 0x58342
+UnknownText_0x58342:
 	text "RUINS OF ALPH"
 	line "VISITORS WELCOME"
 	done
-; 0x58362
 
-UnknownText_0x58362: ; 0x58362
+UnknownText_0x58362:
 	text "RUINS OF ALPH"
 	line "RESEARCH CENTER"
 
@@ -303,9 +240,8 @@
 	para "THE AUTHORITY ON"
 	line "THE RUINS OF ALPH"
 	done
-; 0x583a4
 
-UnknownText_0x583a4: ; 0x583a4
+UnknownText_0x583a4:
 	text "While exploring"
 	line "the RUINS, we"
 
@@ -318,17 +254,15 @@
 	para "You should be"
 	line "careful too."
 	done
-; 0x58420
 
-UnknownText_0x58420: ; 0x58420
+UnknownText_0x58420:
 	text "The RUINS hide a"
 	line "huge secret!"
 
 	para "…I think…"
 	done
-; 0x58449
 
-UnknownText_0x58449: ; 0x58449
+UnknownText_0x58449:
 	text "There are many"
 	line "kinds of UNOWN, so"
 
@@ -335,9 +269,8 @@
 	para "we use them for"
 	line "our secret codes."
 	done
-; 0x5848e
 
-UnknownText_0x5848e: ; 0x5848e
+UnknownText_0x5848e:
 	text "A… H… E… A… D…"
 	line "Hmm…"
 
@@ -346,13 +279,12 @@
 	para "I'm decoding this"
 	line "message!"
 	done
-; 0x584c3
 
-RuinsofAlphOutside_MapEventHeader: ; 0x584c3
+RuinsofAlphOutside_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -366,22 +298,21 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 2
 	xy_trigger 1, $e, $b, $0, UnknownScript_0x58031, $0, $0
 	xy_trigger 1, $f, $a, $0, UnknownScript_0x5803a, $0, $0
 
-	; signposts
+.Signposts:
 	db 3
-	signpost 8, 16, $0, MapRuinsofAlphOutsideSignpost0Script
-	signpost 16, 12, $0, MapRuinsofAlphOutsideSignpost1Script
-	signpost 12, 18, $0, MapRuinsofAlphOutsideSignpost2Script
+	signpost 8, 16, SIGNPOST_READ, MapRuinsofAlphOutsideSignpost0Script
+	signpost 16, 12, SIGNPOST_READ, MapRuinsofAlphOutsideSignpost1Script
+	signpost 12, 18, SIGNPOST_READ, MapRuinsofAlphOutsideSignpost2Script
 
-	; people-events
+.PersonEvents:
 	db 5
-	person_event SPRITE_YOUNGSTER, 24, 8, $6, $0, 255, 255, $2, 1, TrainerPsychicNathan, $ffff
-	person_event SPRITE_SCIENTIST, 19, 15, $7, $0, 255, 255, $0, 0, ScientistScript_0x58043, $0703
-	person_event SPRITE_FISHER, 21, 17, $3, $0, 255, 255, $a0, 0, FisherScript_0x58061, $078e
-	person_event SPRITE_YOUNGSTER, 15, 18, $2, $11, 255, 255, $b0, 0, YoungsterScript_0x58076, $078f
-	person_event SPRITE_YOUNGSTER, 12, 16, $7, $0, 255, 255, $80, 0, YoungsterScript_0x5807e, $078f
-; 0x58560
+	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
--- a/maps/RuinsofAlphResearchCenter.asm
+++ b/maps/RuinsofAlphResearchCenter.asm
@@ -1,5 +1,5 @@
-RuinsofAlphResearchCenter_MapScriptHeader: ; 0x59173
-	; trigger count
+RuinsofAlphResearchCenter_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,36 +6,31 @@
 	dw UnknownScript_0x59180, $0000
 	dw UnknownScript_0x59181, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 2, UnknownScript_0x59185
-; 0x59180
 
-UnknownScript_0x59180: ; 0x59180
+UnknownScript_0x59180:
 	end
-; 0x59181
 
-UnknownScript_0x59181: ; 0x59181
+UnknownScript_0x59181:
 	priorityjump UnknownScript_0x59192
 	end
-; 0x59185
 
-UnknownScript_0x59185: ; 0x59185
+UnknownScript_0x59185:
 	checktriggers
 	if_equal $1, UnknownScript_0x5918b
 	return
-; 0x5918b
 
-UnknownScript_0x5918b: ; 0x5918b
+UnknownScript_0x5918b:
 	moveperson $4, $3, $7
 	appear $4
 	return
-; 0x59192
 
-UnknownScript_0x59192: ; 0x59192
+UnknownScript_0x59192:
 	applymovement $4, MovementData_0x5926f
 	playsound SFX_BOOT_PC
 	pause 60
@@ -55,7 +50,7 @@
 	writetext UnknownText_0x592fa
 	playsound SFX_ITEM
 	waitbutton
-	setflag $000c
+	setflag ENGINE_UNOWN_DEX
 	writetext UnknownText_0x59311
 	closetext
 	loadmovesprites
@@ -63,32 +58,29 @@
 	dotrigger $0
 	special RestartMapMusic
 	end
-; 0x591d1
 
-ScientistScript_0x591d1: ; 0x591d1
+ScientistScript_0x591d1:
 	faceplayer
 	loadfont
-	checkcode $e
+	checkcode VAR_UNOWNCOUNT
 	if_equal 26, UnknownScript_0x591df
 	writetext UnknownText_0x59311
 	closetext
 	loadmovesprites
 	end
-; 0x591df
 
-UnknownScript_0x591df: ; 0x591df
+UnknownScript_0x591df:
 	writetext UnknownText_0x5935f
 	closetext
 	loadmovesprites
 	end
-; 0x591e5
 
-ScientistScript_0x591e5: ; 0x591e5
+ScientistScript_0x591e5:
 	faceplayer
 	loadfont
-	checkcode $e
+	checkcode VAR_UNOWNCOUNT
 	if_equal 26, UnknownScript_0x5920b
-	checkflag $000c
+	checkflag ENGINE_UNOWN_DEX
 	iftrue UnknownScript_0x59205
 	checkevent EVENT_MADE_UNOWN_APPEAR_IN_RUINS
 	iftrue UnknownScript_0x591ff
@@ -96,34 +88,30 @@
 	closetext
 	loadmovesprites
 	end
-; 0x591ff
 
-UnknownScript_0x591ff: ; 0x591ff
+UnknownScript_0x591ff:
 	writetext UnknownText_0x59478
 	closetext
 	loadmovesprites
 	end
-; 0x59205
 
-UnknownScript_0x59205: ; 0x59205
+UnknownScript_0x59205:
 	writetext UnknownText_0x59445
 	closetext
 	loadmovesprites
 	end
-; 0x5920b
 
-UnknownScript_0x5920b: ; 0x5920b
+UnknownScript_0x5920b:
 	writetext UnknownText_0x594cb
 	closetext
 	loadmovesprites
-	clearevent $078f
+	clearevent EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_YOUNGSTERS
 	end
-; 0x59214
 
-ScientistScript_0x59214: ; 0x59214
+ScientistScript_0x59214:
 	faceplayer
 	loadfont
-	checkcode $e
+	checkcode VAR_UNOWNCOUNT
 	if_equal 26, UnknownScript_0x5922e
 	checkevent EVENT_MADE_UNOWN_APPEAR_IN_RUINS
 	iftrue UnknownScript_0x59228
@@ -131,90 +119,78 @@
 	closetext
 	loadmovesprites
 	end
-; 0x59228
 
-UnknownScript_0x59228: ; 0x59228
+UnknownScript_0x59228:
 	writetext UnknownText_0x595cb
 	closetext
 	loadmovesprites
 	end
-; 0x5922e
 
-UnknownScript_0x5922e: ; 0x5922e
+UnknownScript_0x5922e:
 	writetext UnknownText_0x59769
 	closetext
 	loadmovesprites
 	end
-; 0x59234
 
-MapRuinsofAlphResearchCenterSignpost1Script: ; 0x59234
+MapRuinsofAlphResearchCenterSignpost1Script:
 	loadfont
-	checkevent $0704
+	checkevent EVENT_RUINS_OF_ALPH_RESEARCH_CENTER_SCIENTIST
 	iftrue UnknownScript_0x59241
-	checkcode $e
+	checkcode VAR_UNOWNCOUNT
 	if_equal 26, UnknownScript_0x59247
-UnknownScript_0x59241: ; 0x59241
+UnknownScript_0x59241:
 	writetext UnknownText_0x597b6
 	closetext
 	loadmovesprites
 	end
-; 0x59247
 
-UnknownScript_0x59247: ; 0x59247
+UnknownScript_0x59247:
 	writetext UnknownText_0x597d9
 	closetext
 	loadmovesprites
 	end
-; 0x5924d
 
-MapRuinsofAlphResearchCenterSignpost2Script: ; 0x5924d
+MapRuinsofAlphResearchCenterSignpost2Script:
 	loadfont
-	checkevent $0704
+	checkevent EVENT_RUINS_OF_ALPH_RESEARCH_CENTER_SCIENTIST
 	iftrue UnknownScript_0x5925a
-	checkcode $e
+	checkcode VAR_UNOWNCOUNT
 	if_equal 26, UnknownScript_0x59260
-UnknownScript_0x5925a: ; 0x5925a
+UnknownScript_0x5925a:
 	writetext UnknownText_0x5980e
 	closetext
 	loadmovesprites
 	end
-; 0x59260
 
-UnknownScript_0x59260: ; 0x59260
+UnknownScript_0x59260:
 	writetext UnknownText_0x5982d
 	closetext
-	special Functionc2cd
+	special Special_UnownPrinter
 	loadmovesprites
 	end
-; 0x59269
 
-UnknownScript_0x59269: ; 0x59269
+UnknownScript_0x59269:
 	jumptext UnknownText_0x59848
-; 0x5926c
 
-MapRuinsofAlphResearchCenterSignpost0Script: ; 0x5926c
+MapRuinsofAlphResearchCenterSignpost0Script:
 	jumptext UnknownText_0x59886
-; 0x5926f
 
-MovementData_0x5926f: ; 0x5926f
+MovementData_0x5926f:
 	step_up
 	step_up
 	step_left
 	turn_head_up
 	step_end
-; 0x59274
 
-MovementData_0x59274: ; 0x59274
+MovementData_0x59274:
 	step_down
 	step_end
-; 0x59276
 
-MovementData_0x59276: ; 0x59276
+MovementData_0x59276:
 	step_up
 	step_end
-; 0x59278
 
-UnknownText_0x59278: ; 0x59278
+UnknownText_0x59278:
 	text "Done!"
 
 	para "I modified your"
@@ -230,15 +206,13 @@
 	line "the sequence that"
 	cont "they were caught."
 	done
-; 0x592fa
 
-UnknownText_0x592fa: ; 0x592fa
+UnknownText_0x592fa:
 	text "<PLAYER>'s #DEX"
 	line "was upgraded."
 	done
-; 0x59311
 
-UnknownText_0x59311: ; 0x59311
+UnknownText_0x59311:
 	text "The UNOWN you"
 	line "catch will all be"
 	cont "recorded."
@@ -246,9 +220,8 @@
 	para "Check to see how"
 	line "many kinds exist."
 	done
-; 0x5935f
 
-UnknownText_0x5935f: ; 0x5935f
+UnknownText_0x5935f:
 	text "You caught all the"
 	line "UNOWN variations?"
 
@@ -262,9 +235,8 @@
 	para "Feel free to use"
 	line "it anytime."
 	done
-; 0x593ed
 
-UnknownText_0x593ed: ; 0x593ed
+UnknownText_0x593ed:
 	text "The RUINS are"
 	line "about 1500 years"
 	cont "old."
@@ -273,16 +245,14 @@
 	line "why they were"
 	cont "built--or by whom."
 	done
-; 0x59445
 
-UnknownText_0x59445: ; 0x59445
+UnknownText_0x59445:
 	text "I wonder how many"
 	line "kinds of #MON"
 	cont "are in the RUINS?"
 	done
-; 0x59478
 
-UnknownText_0x59478: ; 0x59478
+UnknownText_0x59478:
 	text "#MON appeared"
 	line "in the RUINS?"
 
@@ -292,9 +262,8 @@
 	para "We'll need to"
 	line "investigate this."
 	done
-; 0x594cb
 
-UnknownText_0x594cb: ; 0x594cb
+UnknownText_0x594cb:
 	text "Our investigation,"
 	line "with your help, is"
 
@@ -307,9 +276,8 @@
 	para "as a habitat for"
 	line "#MON."
 	done
-; 0x5954f
 
-UnknownText_0x5954f: ; 0x5954f
+UnknownText_0x5954f:
 	text "There are odd pat-"
 	line "terns drawn on the"
 
@@ -321,9 +289,8 @@
 	cont "ing the mystery"
 	cont "of the RUINS."
 	done
-; 0x595cb
 
-UnknownText_0x595cb: ; 0x595cb
+UnknownText_0x595cb:
 	text "The strange #-"
 	line "MON you saw in the"
 	cont "RUINS?"
@@ -340,10 +307,9 @@
 	line "there are many"
 	cont "kinds of them…"
 	done
-; 0x59669
 
 ; possibly unused
-UnknownText_0x59669: ; 0x59669
+UnknownText_0x59669:
 	text "We think something"
 	line "caused the cryptic"
 
@@ -353,10 +319,9 @@
 	para "We've focused our"
 	line "studies on that."
 	done
-; 0x596d3
 
 ; possibly unused
-UnknownText_0x596d3: ; 0x596d3
+UnknownText_0x596d3:
 	text "According to my"
 	line "research…"
 
@@ -372,9 +337,8 @@
 	para "some sort of a"
 	line "link…"
 	done
-; 0x59769
 
-UnknownText_0x59769: ; 0x59769
+UnknownText_0x59769:
 	text "Why did those"
 	line "ancient patterns"
 
@@ -384,17 +348,15 @@
 	para "The mystery"
 	line "deepens…"
 	done
-; 0x597b6
 
-UnknownText_0x597b6: ; 0x597b6
+UnknownText_0x597b6:
 	text "RUINS OF ALPH"
 
 	para "Exploration"
 	line "Year 10"
 	done
-; 0x597d9
 
-UnknownText_0x597d9: ; 0x597d9
+UnknownText_0x597d9:
 	text "Mystery #MON"
 	line "Name: UNOWN"
 
@@ -401,22 +363,19 @@
 	para "A total of 26"
 	line "kinds found."
 	done
-; 0x5980e
 
-UnknownText_0x5980e: ; 0x5980e
+UnknownText_0x5980e:
 	text "This doesn't seem"
 	line "to work yet."
 	done
-; 0x5982d
 
-UnknownText_0x5982d: ; 0x5982d
+UnknownText_0x5982d:
 	text "UNOWN may be"
 	line "printed out."
 	done
-; 0x59848
 
 ; possibly unused
-UnknownText_0x59848: ; 0x59848
+UnknownText_0x59848:
 	text "It's a photo of"
 	line "the RESEARCH"
 
@@ -423,9 +382,8 @@
 	para "CENTER'S founder,"
 	line "PROF.SILKTREE."
 	done
-; 0x59886
 
-UnknownText_0x59886: ; 0x59886
+UnknownText_0x59886:
 	text "There are many"
 	line "academic books."
 
@@ -433,29 +391,27 @@
 	line "Mysteries of the"
 	cont "Ancients…"
 	done
-; 0x598d0
 
-RuinsofAlphResearchCenter_MapEventHeader: ; 0x598d0
+RuinsofAlphResearchCenter_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 3
-	signpost 5, 6, $0, MapRuinsofAlphResearchCenterSignpost0Script
-	signpost 4, 3, $0, MapRuinsofAlphResearchCenterSignpost1Script
-	signpost 1, 7, $0, MapRuinsofAlphResearchCenterSignpost2Script
+	signpost 5, 6, SIGNPOST_READ, MapRuinsofAlphResearchCenterSignpost0Script
+	signpost 4, 3, SIGNPOST_READ, MapRuinsofAlphResearchCenterSignpost1Script
+	signpost 1, 7, SIGNPOST_READ, MapRuinsofAlphResearchCenterSignpost2Script
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_SCIENTIST, 9, 8, $7, $0, 255, 255, $90, 0, ScientistScript_0x591e5, $ffff
-	person_event SPRITE_SCIENTIST, 6, 9, $2, $12, 255, 255, $90, 0, ScientistScript_0x59214, $ffff
-	person_event SPRITE_SCIENTIST, 9, 6, $7, $0, 255, 255, $90, 0, ScientistScript_0x591d1, $0704
-; 0x59916
+	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
--- a/maps/SafariZoneBeta.asm
+++ b/maps/SafariZoneBeta.asm
@@ -1,26 +1,24 @@
-SafariZoneBeta_MapScriptHeader: ; 0x74474
-	; trigger count
+SafariZoneBeta_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x74476
 
-SafariZoneBeta_MapEventHeader: ; 0x74476
+SafariZoneBeta_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x74486
--- a/maps/SafariZoneFuchsiaGateBeta.asm
+++ b/maps/SafariZoneFuchsiaGateBeta.asm
@@ -1,16 +1,15 @@
-SafariZoneFuchsiaGateBeta_MapScriptHeader: ; 0x74458
-	; trigger count
+SafariZoneFuchsiaGateBeta_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x7445a
 
-SafariZoneFuchsiaGateBeta_MapEventHeader: ; 0x7445a
+SafariZoneFuchsiaGateBeta_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -17,12 +16,11 @@
 	warp_def $7, $4, 7, GROUP_FUCHSIA_CITY, MAP_FUCHSIA_CITY
 	warp_def $7, $5, 7, GROUP_FUCHSIA_CITY, MAP_FUCHSIA_CITY
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x74474
--- a/maps/SafariZoneMainOffice.asm
+++ b/maps/SafariZoneMainOffice.asm
@@ -1,26 +1,24 @@
-SafariZoneMainOffice_MapScriptHeader: ; 0x195da5
-	; trigger count
+SafariZoneMainOffice_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x195da7
 
-SafariZoneMainOffice_MapEventHeader: ; 0x195da7
+SafariZoneMainOffice_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x195db7
--- a/maps/SafariZoneWardensHome.asm
+++ b/maps/SafariZoneWardensHome.asm
@@ -1,8 +1,8 @@
 SafariZoneWardensHome_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 WardensGranddaughter:
@@ -77,21 +77,21 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 4
-	signpost 1, 0, $0, WardensHomeBookshelf
-	signpost 1, 1, $0, WardensHomeBookshelf
-	signpost 0, 7, $0, WardenPhoto
-	signpost 0, 9, $0, SafariZonePhoto
+	signpost 1, 0, SIGNPOST_READ, WardensHomeBookshelf
+	signpost 1, 1, SIGNPOST_READ, WardensHomeBookshelf
+	signpost 0, 7, SIGNPOST_READ, WardenPhoto
+	signpost 0, 9, SIGNPOST_READ, SafariZonePhoto
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_LASS, 8, 6, $9, $0, 255, 255, $a0, 0, WardensGranddaughter, $ffff
+	person_event SPRITE_LASS, 8, 6, OW_LEFT | $1, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, WardensGranddaughter, -1
--- a/maps/SaffronCity.asm
+++ b/maps/SaffronCity.asm
@@ -1,8 +1,8 @@
 SaffronCity_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -261,7 +261,7 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -279,27 +279,27 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 8
-	signpost 5, 21, $0, SaffronCitySign
-	signpost 5, 33, $0, SaffronGymSign
-	signpost 5, 25, $0, FightingDojoSign
-	signpost 21, 15, $0, SilphCoSign
-	signpost 29, 25, $0, MrPsychicsHouseSign
-	signpost 5, 11, $0, SaffronCityMagnetTrainStationSign
-	signpost 29, 10, $0, SaffronCityPokeCenterSign
-	signpost 11, 26, $0, SaffronCityMartSign
+	signpost 5, 21, SIGNPOST_READ, SaffronCitySign
+	signpost 5, 33, SIGNPOST_READ, SaffronGymSign
+	signpost 5, 25, SIGNPOST_READ, FightingDojoSign
+	signpost 21, 15, SIGNPOST_READ, SilphCoSign
+	signpost 29, 25, SIGNPOST_READ, MrPsychicsHouseSign
+	signpost 5, 11, SIGNPOST_READ, SaffronCityMagnetTrainStationSign
+	signpost 29, 10, SIGNPOST_READ, SaffronCityPokeCenterSign
+	signpost 11, 26, SIGNPOST_READ, SaffronCityMartSign
 
-	; people-events
+.PersonEvents:
 	db 8
-	person_event SPRITE_LASS, 18, 11, $5, $2, 255, 255, $80, 0, LassScript_0x19932a, $ffff
-	person_event SPRITE_POKEFAN_M, 34, 23, $5, $2, 255, 255, $b0, 0, PokefanMScript_0x19933e, $ffff
-	person_event SPRITE_COOLTRAINER_M, 11, 36, $5, $1, 255, 255, $a0, 0, CooltrainerMScript_0x199352, $ffff
-	person_event SPRITE_COOLTRAINER_F, 28, 24, $5, $2, 255, 255, $80, 0, CooltrainerFScript_0x199355, $ffff
-	person_event SPRITE_FISHER, 16, 31, $6, $0, 255, 255, $a0, 0, FisherScript_0x199358, $ffff
-	person_event SPRITE_YOUNGSTER, 23, 19, $4, $10, 255, 255, $90, 0, YoungsterScript_0x19936c, $ffff
-	person_event SPRITE_YOUNGSTER, 26, 39, $2, $11, 255, 255, $80, 0, YoungsterScript_0x19936f, $ffff
-	person_event SPRITE_LASS, 12, 23, $3, $0, 255, 255, $a0, 0, LassScript_0x199372, $ffff
+	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
--- a/maps/SaffronGym.asm
+++ b/maps/SaffronGym.asm
@@ -1,16 +1,15 @@
-SaffronGym_MapScriptHeader: ; 0x189c2c
-	; trigger count
+SaffronGym_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x189c2e
 
-SabrinaScript_0x189c2e: ; 0x189c2e
+SabrinaScript_0x189c2e:
 	faceplayer
 	loadfont
-	checkflag $0028
-	iftrue UnknownScript_0x189c65
+	checkflag ENGINE_MARSHBADGE
+	iftrue .FightDone
 	writetext UnknownText_0x189cdf
 	closetext
 	loadmovesprites
@@ -27,41 +26,22 @@
 	writetext UnknownText_0x189e95
 	playsound SFX_GET_BADGE
 	waitbutton
-	setflag $0028
+	setflag ENGINE_MARSHBADGE
 	writetext UnknownText_0x189ead
 	closetext
 	loadmovesprites
 	end
-; 0x189c65
 
-UnknownScript_0x189c65: ; 0x189c65
+.FightDone
 	writetext UnknownText_0x189f6c
 	closetext
 	loadmovesprites
 	end
-; 0x189c6b
 
-TrainerMediumRebecca: ; 0x189c6b
-	; bit/flag number
-	dw $590
+TrainerMediumRebecca:
+	trainer EVENT_BEAT_MEDIUM_REBECCA, MEDIUM, REBECCA, MediumRebeccaSeenText, MediumRebeccaBeatenText, $0000, MediumRebeccaScript
 
-	; trainer group && trainer id
-	db MEDIUM, REBECCA
-
-	; text when seen
-	dw MediumRebeccaSeenText
-
-	; text when trainer beaten
-	dw MediumRebeccaBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw MediumRebeccaScript
-; 0x189c77
-
-MediumRebeccaScript: ; 0x189c77
+MediumRebeccaScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x18a034
@@ -68,29 +48,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x189c7f
 
-TrainerPsychicFranklin: ; 0x189c7f
-	; bit/flag number
-	dw $43b
+TrainerPsychicFranklin:
+	trainer EVENT_BEAT_PSYCHIC_FRANKLIN, PSYCHIC_T, FRANKLIN, PsychicFranklinSeenText, PsychicFranklinBeatenText, $0000, PsychicFranklinScript
 
-	; trainer group && trainer id
-	db PSYCHIC_T, FRANKLIN
-
-	; text when seen
-	dw PsychicFranklinSeenText
-
-	; text when trainer beaten
-	dw PsychicFranklinBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PsychicFranklinScript
-; 0x189c8b
-
-PsychicFranklinScript: ; 0x189c8b
+PsychicFranklinScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x18a0a6
@@ -97,29 +59,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x189c93
 
-TrainerMediumDoris: ; 0x189c93
-	; bit/flag number
-	dw $591
+TrainerMediumDoris:
+	trainer EVENT_BEAT_MEDIUM_DORIS, MEDIUM, DORIS, MediumDorisSeenText, MediumDorisBeatenText, $0000, MediumDorisScript
 
-	; trainer group && trainer id
-	db MEDIUM, DORIS
-
-	; text when seen
-	dw MediumDorisSeenText
-
-	; text when trainer beaten
-	dw MediumDorisBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw MediumDorisScript
-; 0x189c9f
-
-MediumDorisScript: ; 0x189c9f
+MediumDorisScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x18a136
@@ -126,29 +70,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x189ca7
 
-TrainerPsychicJared: ; 0x189ca7
-	; bit/flag number
-	dw $444
+TrainerPsychicJared:
+	trainer EVENT_BEAT_PSYCHIC_JARED, PSYCHIC_T, JARED, PsychicJaredSeenText, PsychicJaredBeatenText, $0000, PsychicJaredScript
 
-	; trainer group && trainer id
-	db PSYCHIC_T, JARED
-
-	; text when seen
-	dw PsychicJaredSeenText
-
-	; text when trainer beaten
-	dw PsychicJaredBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PsychicJaredScript
-; 0x189cb3
-
-PsychicJaredScript: ; 0x189cb3
+PsychicJaredScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x18a1b3
@@ -155,9 +81,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x189cbb
 
-SaffronGymGuyScript: ; 0x189cbb
+SaffronGymGuyScript:
 	faceplayer
 	loadfont
 	checkevent EVENT_BEAT_SABRINA
@@ -172,7 +97,6 @@
 	closetext
 	loadmovesprites
 	end
-; 0x189ccf
 
 SaffronGymStatue:
 	checkflag ENGINE_MARSHBADGE
@@ -182,7 +106,7 @@
 	trainertotext SABRINA, 1, $1
 	jumpstd gymstatue2
 
-UnknownText_0x189cdf: ; 0x189cdf
+UnknownText_0x189cdf:
 	text "SABRINA: I knew"
 	line "you were coming…"
 
@@ -207,9 +131,8 @@
 	line "I will show you my"
 	cont "psychic powers!"
 	done
-; 0x189df4
 
-UnknownText_0x189df4: ; 0x189df4
+UnknownText_0x189df4:
 	text "SABRINA: Your"
 	line "power…"
 
@@ -226,15 +149,13 @@
 	line "earned yourself"
 	cont "MARSHBADGE."
 	done
-; 0x189e95
 
-UnknownText_0x189e95: ; 0x189e95
+UnknownText_0x189e95:
 	text "<PLAYER> received"
 	line "MARSHBADGE."
 	done
-; 0x189ead
 
-UnknownText_0x189ead: ; 0x189ead
+UnknownText_0x189ead:
 	text "SABRINA: MARSH-"
 	line "BADGE draws out"
 
@@ -251,9 +172,8 @@
 	line "celebrated and"
 	cont "beloved CHAMPION!"
 	done
-; 0x189f6c
 
-UnknownText_0x189f6c: ; 0x189f6c
+UnknownText_0x189f6c:
 	text "SABRINA: Your love"
 	line "for your #MON"
 
@@ -266,48 +186,41 @@
 	para "kind of psychic"
 	line "power…"
 	done
-; 0x189fe9
 
-MediumRebeccaSeenText: ; 0x189fe9
+MediumRebeccaSeenText:
 	text "The power of all"
 	line "those you defeated"
 	cont "comes to me!"
 	done
-; 0x18a01b
 
-MediumRebeccaBeatenText: ; 0x18a01b
+MediumRebeccaBeatenText:
 	text "Strong…"
 	line "Far too strong…"
 	done
-; 0x18a034
 
-UnknownText_0x18a034: ; 0x18a034
+UnknownText_0x18a034:
 	text "What is the source"
 	line "of your power?"
 	done
-; 0x18a057
 
-PsychicFranklinSeenText: ; 0x18a057
+PsychicFranklinSeenText:
 	text "Psychic power is"
 	line "the power of your"
 	cont "soul."
 	done
-; 0x18a081
 
-PsychicFranklinBeatenText: ; 0x18a081
+PsychicFranklinBeatenText:
 	text "Your soul has more"
 	line "power than mine!"
 	done
-; 0x18a0a6
 
-UnknownText_0x18a0a6: ; 0x18a0a6
+UnknownText_0x18a0a6:
 	text "You made your soul"
 	line "stronger, not just"
 	cont "your abilities."
 	done
-; 0x18a0dd
 
-MediumDorisSeenText: ; 0x18a0dd
+MediumDorisSeenText:
 	text "Fufufufu…"
 	line "I see it clearly."
 
@@ -314,34 +227,29 @@
 	para "I can see into"
 	line "your soul!"
 	done
-; 0x18a114
 
-MediumDorisBeatenText: ; 0x18a114
+MediumDorisBeatenText:
 	text "Though I read you,"
 	line "I still lost…"
 	done
-; 0x18a136
 
-UnknownText_0x18a136: ; 0x18a136
+UnknownText_0x18a136:
 	text "Darn! I forgot"
 	line "that I predicted I"
 	cont "would lose to you."
 	done
-; 0x18a16c
 
-PsychicJaredSeenText: ; 0x18a16c
+PsychicJaredSeenText:
 	text "The FIGHTING DOJO"
 	line "next door was once"
 	cont "this city's GYM."
 	done
-; 0x18a1a2
 
-PsychicJaredBeatenText: ; 0x18a1a2
+PsychicJaredBeatenText:
 	text "I was no match…"
 	done
-; 0x18a1b3
 
-UnknownText_0x18a1b3: ; 0x18a1b3
+UnknownText_0x18a1b3:
 	text "KARATE KING, the"
 	line "master of the"
 
@@ -349,9 +257,8 @@
 	line "just destroyed by"
 	cont "SABRINA."
 	done
-; 0x18a201
 
-SaffronGymGuyText: ; 0x18a201
+SaffronGymGuyText:
 	text "Yo, CHAMP in"
 	line "making!"
 
@@ -369,19 +276,17 @@
 
 	para "Good luck!"
 	done
-; 0x18a2a0
 
-SaffronGymGuyWinText: ; 0x18a2a0
+SaffronGymGuyWinText:
 	text "That was another"
 	line "fantastic battle!"
 	done
-; 0x18a2c4
 
-SaffronGym_MapEventHeader: ; 0x18a2c4
+SaffronGym_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -416,19 +321,18 @@
 	warp_def $3, $1, 16, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
 	warp_def $9, $b, 17, GROUP_SAFFRON_GYM, MAP_SAFFRON_GYM
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 15, 8, $0, SaffronGymStatue
+	signpost 15, 8, SIGNPOST_READ, SaffronGymStatue
 
-	; people-events
+.PersonEvents:
 	db 6
-	person_event SPRITE_SABRINA, 12, 13, $6, $0, 255, 255, $80, 0, SabrinaScript_0x189c2e, $ffff
-	person_event SPRITE_GRANNY, 20, 21, $a, $0, 255, 255, $b2, 3, TrainerMediumRebecca, $ffff
-	person_event SPRITE_YOUNGSTER, 20, 7, $a, $0, 255, 255, $92, 3, TrainerPsychicFranklin, $ffff
-	person_event SPRITE_GRANNY, 8, 7, $a, $0, 255, 255, $b2, 2, TrainerMediumDoris, $ffff
-	person_event SPRITE_YOUNGSTER, 8, 21, $a, $0, 255, 255, $92, 2, TrainerPsychicJared, $ffff
-	person_event SPRITE_GYM_GUY, 18, 13, $6, $0, 255, 255, $90, 0, SaffronGymGuyScript, $ffff
-; 0x18a3bd
+	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
--- a/maps/SaffronMart.asm
+++ b/maps/SaffronMart.asm
@@ -1,34 +1,29 @@
-SaffronMart_MapScriptHeader: ; 0x18a3bd
-	; trigger count
+SaffronMart_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18a3bf
 
-ClerkScript_0x18a3bf: ; 0x18a3bf
+ClerkScript_0x18a3bf:
 	loadfont
 	pokemart $0, $001e
 	loadmovesprites
 	end
-; 0x18a3c6
 
-CooltrainerMScript_0x18a3c6: ; 0x18a3c6
+CooltrainerMScript_0x18a3c6:
 	jumptextfaceplayer UnknownText_0x18a3cc
-; 0x18a3c9
 
-CooltrainerFScript_0x18a3c9: ; 0x18a3c9
+CooltrainerFScript_0x18a3c9:
 	jumptextfaceplayer UnknownText_0x18a3f3
-; 0x18a3cc
 
-UnknownText_0x18a3cc: ; 0x18a3cc
+UnknownText_0x18a3cc:
 	text "There's a big"
 	line "RADIO TOWER in"
 	cont "LAVENDER."
 	done
-; 0x18a3f3
 
-UnknownText_0x18a3f3: ; 0x18a3f3
+UnknownText_0x18a3f3:
 	text "I want to become"
 	line "stronger, but I'm"
 	cont "not good yet…"
@@ -36,26 +31,24 @@
 	para "Could you show me"
 	line "how sometime?"
 	done
-; 0x18a444
 
-SaffronMart_MapEventHeader: ; 0x18a444
+SaffronMart_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 7, 5, $9, $0, 255, 255, $0, 0, ClerkScript_0x18a3bf, $ffff
-	person_event SPRITE_COOLTRAINER_M, 6, 11, $3, $0, 255, 255, $b0, 0, CooltrainerMScript_0x18a3c6, $ffff
-	person_event SPRITE_COOLTRAINER_F, 10, 11, $5, $1, 255, 255, $a0, 0, CooltrainerFScript_0x18a3c9, $ffff
-; 0x18a47b
+	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
--- a/maps/SaffronPokeCenter1F.asm
+++ b/maps/SaffronPokeCenter1F.asm
@@ -1,26 +1,22 @@
-SaffronPokeCenter1F_MapScriptHeader: ; 0x18a47b
-	; trigger count
+SaffronPokeCenter1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18a47d
 
-NurseScript_0x18a47d: ; 0x18a47d
+NurseScript_0x18a47d:
 	jumpstd pokecenternurse
-; 0x18a480
 
-TeacherScript_0x18a480: ; 0x18a480
+TeacherScript_0x18a480:
 	special Function10630f
 	iftrue UnknownScript_0x18a489
 	jumptextfaceplayer UnknownText_0x18a4a3
-; 0x18a489
 
-UnknownScript_0x18a489: ; 0x18a489
+UnknownScript_0x18a489:
 	jumptextfaceplayer UnknownText_0x18a532
-; 0x18a48c
 
-FisherScript_0x18a48c: ; 0x18a48c
+FisherScript_0x18a48c:
 	faceplayer
 	loadfont
 	checkevent EVENT_RETURNED_MACHINE_PART
@@ -29,20 +25,17 @@
 	closetext
 	loadmovesprites
 	end
-; 0x18a49a
 
-UnknownScript_0x18a49a: ; 0x18a49a
+UnknownScript_0x18a49a:
 	writetext UnknownText_0x18a62e
 	closetext
 	loadmovesprites
 	end
-; 0x18a4a0
 
-YoungsterScript_0x18a4a0: ; 0x18a4a0
+YoungsterScript_0x18a4a0:
 	jumptextfaceplayer UnknownText_0x18a6c5
-; 0x18a4a3
 
-UnknownText_0x18a4a3: ; 0x18a4a3
+UnknownText_0x18a4a3:
 	text "What are JOHTO's"
 	line "#MON CENTERS"
 	cont "like?"
@@ -57,9 +50,8 @@
 	line "without worrying,"
 	cont "then!"
 	done
-; 0x18a532
 
-UnknownText_0x18a532: ; 0x18a532
+UnknownText_0x18a532:
 	text "What are JOHTO's"
 	line "#MON CENTERS"
 	cont "like?"
@@ -76,9 +68,8 @@
 	para "catch a MARILL and"
 	line "trade it to me!"
 	done
-; 0x18a5d3
 
-UnknownText_0x18a5d3: ; 0x18a5d3
+UnknownText_0x18a5d3:
 	text "I just happened to"
 	line "come through ROCK"
 
@@ -86,9 +77,8 @@
 	line "some commotion at"
 	cont "the POWER PLANT."
 	done
-; 0x18a62e
 
-UnknownText_0x18a62e: ; 0x18a62e
+UnknownText_0x18a62e:
 	text "Caves collapse"
 	line "easily."
 
@@ -103,9 +93,8 @@
 	line "that's common"
 	cont "knowledge."
 	done
-; 0x18a6c5
 
-UnknownText_0x18a6c5: ; 0x18a6c5
+UnknownText_0x18a6c5:
 	text "SILPH CO.'s HEAD"
 	line "OFFICE and the"
 
@@ -115,28 +104,26 @@
 	para "places to see in"
 	line "SAFFRON."
 	done
-; 0x18a722
 
-SaffronPokeCenter1F_MapEventHeader: ; 0x18a722
+SaffronPokeCenter1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_NURSE, 5, 7, $6, $0, 255, 255, $0, 0, NurseScript_0x18a47d, $ffff
-	person_event SPRITE_TEACHER, 6, 11, $2, $11, 255, 255, $a0, 0, TeacherScript_0x18a480, $ffff
-	person_event SPRITE_FISHER, 10, 12, $8, $0, 255, 255, $80, 0, FisherScript_0x18a48c, $ffff
-	person_event SPRITE_YOUNGSTER, 8, 5, $3, $0, 255, 255, $90, 0, YoungsterScript_0x18a4a0, $ffff
-; 0x18a76b
+	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
--- a/maps/SaffronPokeCenter2FBeta.asm
+++ b/maps/SaffronPokeCenter2FBeta.asm
@@ -1,25 +1,23 @@
-SaffronPokeCenter2FBeta_MapScriptHeader: ; 0x18a76b
-	; trigger count
+SaffronPokeCenter2FBeta_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18a76d
 
-SaffronPokeCenter2FBeta_MapEventHeader: ; 0x18a76d
+SaffronPokeCenter2FBeta_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $7, $0, 3, GROUP_SAFFRON_POKECENTER_1F, MAP_SAFFRON_POKECENTER_1F
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x18a778
--- a/maps/SaffronTrainStation.asm
+++ b/maps/SaffronTrainStation.asm
@@ -1,19 +1,17 @@
-SaffronTrainStation_MapScriptHeader: ; 0x18a817
-	; trigger count
+SaffronTrainStation_MapScriptHeader:
+.MapTriggers:
 	db 1
 
 	; triggers
 	dw UnknownScript_0x18a81d, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18a81d
 
-UnknownScript_0x18a81d: ; 0x18a81d
+UnknownScript_0x18a81d:
 	end
-; 0x18a81e
 
-OfficerScript_0x18a81e: ; 0x18a81e
+OfficerScript_0x18a81e:
 	faceplayer
 	loadfont
 	checkevent EVENT_RESTORED_POWER_TO_KANTO
@@ -22,9 +20,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x18a82c
 
-UnknownScript_0x18a82c: ; 0x18a82c
+UnknownScript_0x18a82c:
 	writetext UnknownText_0x18a8dd
 	yesorno
 	iffalse UnknownScript_0x18a85c
@@ -36,34 +33,30 @@
 	applymovement $2, MovementData_0x18a88f
 	applymovement $0, MovementData_0x18a898
 	writebyte $1
-	special Function8cc04
+	special Special_MagnetTrain
 	warpcheck
 	newloadmap $f9
 	applymovement $0, MovementData_0x18a854
 	wait $14
 	end
-; 0x18a854
 
-MovementData_0x18a854: ; 0x18a854
+MovementData_0x18a854:
 	turn_head_down
 	step_end
-; 0x18a856
 
-UnknownScript_0x18a856: ; 0x18a856
+UnknownScript_0x18a856:
 	writetext UnknownText_0x18a956
 	closetext
 	loadmovesprites
 	end
-; 0x18a85c
 
-UnknownScript_0x18a85c: ; 0x18a85c
+UnknownScript_0x18a85c:
 	writetext UnknownText_0x18a978
 	closetext
 	loadmovesprites
 	end
-; 0x18a862
 
-UnknownScript_0x18a862: ; 0x18a862
+UnknownScript_0x18a862:
 	applymovement $2, MovementData_0x18a88f
 	applymovement $0, MovementData_0x18a8a1
 	applymovement $2, MovementData_0x18a894
@@ -72,9 +65,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x18a875
 
-GymGuyScript_0x18a875: ; 0x18a875
+GymGuyScript_0x18a875:
 	faceplayer
 	loadfont
 	checkevent EVENT_RETURNED_MACHINE_PART
@@ -83,39 +75,33 @@
 	closetext
 	loadmovesprites
 	end
-; 0x18a883
 
-UnknownScript_0x18a883: ; 0x18a883
+UnknownScript_0x18a883:
 	writetext UnknownText_0x18aa61
 	closetext
 	loadmovesprites
 	end
-; 0x18a889
 
-TeacherScript_0x18a889: ; 0x18a889
+TeacherScript_0x18a889:
 	jumptextfaceplayer UnknownText_0x18aaab
-; 0x18a88c
 
-LassScript_0x18a88c: ; 0x18a88c
+LassScript_0x18a88c:
 	jumptextfaceplayer UnknownText_0x18ab20
-; 0x18a88f
 
-MovementData_0x18a88f: ; 0x18a88f
+MovementData_0x18a88f:
 	step_up
 	step_up
 	step_right
 	turn_head_left
 	step_end
-; 0x18a894
 
-MovementData_0x18a894: ; 0x18a894
+MovementData_0x18a894:
 	step_left
 	step_down
 	step_down
 	step_end
-; 0x18a898
 
-MovementData_0x18a898: ; 0x18a898
+MovementData_0x18a898:
 	step_up
 	step_up
 	step_up
@@ -125,9 +111,8 @@
 	step_up
 	step_up
 	step_end
-; 0x18a8a1
 
-MovementData_0x18a8a1: ; 0x18a8a1
+MovementData_0x18a8a1:
 	step_left
 	step_left
 	step_down
@@ -136,16 +121,14 @@
 	step_down
 	turn_head_up
 	step_end
-; 0x18a8a9
 
-UnknownText_0x18a8a9: ; 0x18a8a9
+UnknownText_0x18a8a9:
 	text "I'm sorry, but the"
 	line "MAGNET TRAIN isn't"
 	cont "operating now."
 	done
-; 0x18a8dd
 
-UnknownText_0x18a8dd: ; 0x18a8dd
+UnknownText_0x18a8dd:
 	text "We'll soon depart"
 	line "for GOLDENROD."
 
@@ -152,9 +135,8 @@
 	para "Are you coming on"
 	line "board?"
 	done
-; 0x18a917
 
-UnknownText_0x18a917: ; 0x18a917
+UnknownText_0x18a917:
 	text "May I see your"
 	line "rail PASS, please?"
 
@@ -161,21 +143,18 @@
 	para "OK. Right this"
 	line "way, please."
 	done
-; 0x18a956
 
-UnknownText_0x18a956: ; 0x18a956
+UnknownText_0x18a956:
 	text "Sorry, but you"
 	line "don't have a PASS."
 	done
-; 0x18a978
 
-UnknownText_0x18a978: ; 0x18a978
+UnknownText_0x18a978:
 	text "We hope to see you"
 	line "again."
 	done
-; 0x18a993
 
-UnknownText_0x18a993: ; 0x18a993
+UnknownText_0x18a993:
 	text "We have arrived in"
 	line "SAFFRON."
 
@@ -182,9 +161,8 @@
 	para "We hope to see you"
 	line "again."
 	done
-; 0x18a9ca
 
-UnknownText_0x18a9ca: ; 0x18a9ca
+UnknownText_0x18a9ca:
 	text "The MAGNET TRAIN"
 	line "is a super-modern"
 
@@ -199,9 +177,8 @@
 	line "isn't any elec-"
 	cont "tricity…"
 	done
-; 0x18aa61
 
-UnknownText_0x18aa61: ; 0x18aa61
+UnknownText_0x18aa61:
 	text "Whew…"
 
 	para "How many times"
@@ -210,9 +187,8 @@
 	para "and forth between"
 	line "KANTO and JOHTO?"
 	done
-; 0x18aaab
 
-UnknownText_0x18aaab: ; 0x18aaab
+UnknownText_0x18aaab:
 	text "Before the MAGNET"
 	line "TRAIN STATION was"
 
@@ -223,9 +199,8 @@
 	line "named COPYCAT used"
 	cont "to live there."
 	done
-; 0x18ab20
 
-UnknownText_0x18ab20: ; 0x18ab20
+UnknownText_0x18ab20:
 	text "Hi. Do you have a"
 	line "rail PASS? I have"
 
@@ -235,13 +210,12 @@
 	para "ride the MAGNET"
 	line "TRAIN have PASSES."
 	done
-; 0x18ab8d
 
-SaffronTrainStation_MapEventHeader: ; 0x18ab8d
+SaffronTrainStation_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -248,17 +222,16 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 1
 	xy_trigger 0, $6, $b, $0, UnknownScript_0x18a862, $0, $0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_OFFICER, 13, 13, $6, $0, 255, 255, $0, 0, OfficerScript_0x18a81e, $ffff
-	person_event SPRITE_GYM_GUY, 18, 14, $2, $11, 255, 255, $0, 0, GymGuyScript_0x18a875, $ffff
-	person_event SPRITE_TEACHER, 15, 10, $9, $0, 255, 255, $0, 0, TeacherScript_0x18a889, $0772
-	person_event SPRITE_LASS, 14, 10, $7, $0, 255, 255, $a0, 0, LassScript_0x18a88c, $0772
-; 0x18abe3
+	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
--- a/maps/SeafoamGym.asm
+++ b/maps/SeafoamGym.asm
@@ -1,23 +1,21 @@
-SeafoamGym_MapScriptHeader: ; 0x1ab4f4
-	; trigger count
+SeafoamGym_MapScriptHeader:
+.MapTriggers:
 	db 1
 
 	; triggers
 	dw UnknownScript_0x1ab4fa, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1ab4fa
 
-UnknownScript_0x1ab4fa: ; 0x1ab4fa
+UnknownScript_0x1ab4fa:
 	end
-; 0x1ab4fb
 
-BlaineScript_0x1ab4fb: ; 0x1ab4fb
+BlaineScript_0x1ab4fb:
 	faceplayer
 	loadfont
-	checkflag $0029
-	iftrue UnknownScript_0x1ab52b
+	checkflag ENGINE_VOLCANOBADGE
+	iftrue .FightDone
 	writetext UnknownText_0x1ab548
 	closetext
 	loadmovesprites
@@ -24,30 +22,28 @@
 	winlosstext UnknownText_0x1ab646, $0000
 	loadtrainer BLAINE, 1
 	startbattle
-	iftrue UnknownScript_0x1ab516
+	iftrue .ReturnAfterBattle
 	appear $3
-UnknownScript_0x1ab516: ; 0x1ab516
+.ReturnAfterBattle
 	returnafterbattle
-	setevent $04cb
+	setevent EVENT_BEAT_BLAINE
 	loadfont
 	writetext UnknownText_0x1ab683
 	playsound SFX_GET_BADGE
 	waitbutton
-	setflag $0029
+	setflag ENGINE_VOLCANOBADGE
 	writetext UnknownText_0x1ab69d
 	closetext
 	loadmovesprites
 	end
-; 0x1ab52b
 
-UnknownScript_0x1ab52b: ; 0x1ab52b
+.FightDone
 	writetext UnknownText_0x1ab71c
 	closetext
 	loadmovesprites
 	end
-; 0x1ab531
 
-SeafoamGymGuyScript: ; 0x1ab531
+SeafoamGymGuyScript:
 	faceplayer
 	loadfont
 	checkevent EVENT_TALKED_TO_SEAFOAM_GYM_GUY_ONCE
@@ -63,9 +59,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1ab548
 
-UnknownText_0x1ab548: ; 0x1ab548
+UnknownText_0x1ab548:
 	text "BLAINE: Waaah!"
 
 	para "My GYM in CINNABAR"
@@ -92,9 +87,8 @@
 	para "Ha! You'd better"
 	line "have BURN HEAL!"
 	done
-; 0x1ab646
 
-UnknownText_0x1ab646: ; 0x1ab646
+UnknownText_0x1ab646:
 	text "BLAINE: Awesome."
 	line "I've burned out…"
 
@@ -101,15 +95,13 @@
 	para "You've earned"
 	line "VOLCANOBADGE!"
 	done
-; 0x1ab683
 
-UnknownText_0x1ab683: ; 0x1ab683
+UnknownText_0x1ab683:
 	text "<PLAYER> received"
 	line "VOLCANOBADGE."
 	done
-; 0x1ab69d
 
-UnknownText_0x1ab69d: ; 0x1ab69d
+UnknownText_0x1ab69d:
 	text "BLAINE: I did lose"
 	line "this time, but I'm"
 
@@ -122,9 +114,8 @@
 	para "we'll have to have"
 	line "a rematch."
 	done
-; 0x1ab71c
 
-UnknownText_0x1ab71c: ; 0x1ab71c
+UnknownText_0x1ab71c:
 	text "BLAINE: My fire"
 	line "#MON will be"
 
@@ -131,9 +122,8 @@
 	para "even stronger."
 	line "Just you watch!"
 	done
-; 0x1ab759
 
-SeafoamGymGuyWinText: ; 0x1ab759
+SeafoamGymGuyWinText:
 	text "Yo!"
 
 	para "… Huh? It's over"
@@ -153,9 +143,8 @@
 	para "without my advice."
 	line "I knew you'd win!"
 	done
-; 0x1ab806
 
-SeafoamGymGuyWinText2: ; 0x1ab806
+SeafoamGymGuyWinText2:
 	text "A #MON GYM can"
 	line "be anywhere as"
 
@@ -165,24 +154,22 @@
 	para "There's no need"
 	line "for a building."
 	done
-; 0x1ab865
 
-SeafoamGym_MapEventHeader: ; 0x1ab865
+SeafoamGym_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $5, $5, 1, GROUP_ROUTE_20, MAP_ROUTE_20
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_BLAINE, 6, 9, $6, $0, 255, 255, $b0, 0, BlaineScript_0x1ab4fb, $ffff
-	person_event SPRITE_GYM_GUY, 9, 10, $7, $0, 255, 255, $90, 0, SeafoamGymGuyScript, $0777
-; 0x1ab88a
+	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
--- a/maps/SilphCo1F.asm
+++ b/maps/SilphCo1F.asm
@@ -1,16 +1,14 @@
-SilphCo1F_MapScriptHeader: ; 0x18abe3
-	; trigger count
+SilphCo1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18abe5
 
-ReceptionistScript_0x18abe5: ; 0x18abe5
+ReceptionistScript_0x18abe5:
 	jumptextfaceplayer UnknownText_0x18ac03
-; 0x18abe8
 
-OfficerScript_0x18abe8: ; 0x18abe8
+OfficerScript_0x18abe8:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_UP_GRADE
@@ -20,22 +18,20 @@
 	verbosegiveitem UP_GRADE, 1
 	iffalse UnknownScript_0x18ac01
 	setevent EVENT_GOT_UP_GRADE
-UnknownScript_0x18abfd: ; 0x18abfd
+UnknownScript_0x18abfd:
 	writetext UnknownText_0x18aca8
 	closetext
-UnknownScript_0x18ac01: ; 0x18ac01
+UnknownScript_0x18ac01:
 	loadmovesprites
 	end
-; 0x18ac03
 
-UnknownText_0x18ac03: ; 0x18ac03
+UnknownText_0x18ac03:
 	text "Welcome. This is"
 	line "SILPH CO.'s HEAD"
 	cont "OFFICE BUILDING."
 	done
-; 0x18ac36
 
-UnknownText_0x18ac36: ; 0x18ac36
+UnknownText_0x18ac36:
 	text "Only employees are"
 	line "permitted to go"
 	cont "upstairs."
@@ -46,9 +42,8 @@
 	para "have this neat"
 	line "little souvenir."
 	done
-; 0x18aca8
 
-UnknownText_0x18aca8: ; 0x18aca8
+UnknownText_0x18aca8:
 	text "It's SILPH CO.'s"
 	line "latest product."
 
@@ -55,25 +50,23 @@
 	para "It's not for sale"
 	line "anywhere yet."
 	done
-; 0x18ace7
 
-SilphCo1F_MapEventHeader: ; 0x18ace7
+SilphCo1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_RECEPTIONIST, 6, 8, $6, $0, 255, 255, $90, 0, ReceptionistScript_0x18abe5, $ffff
-	person_event SPRITE_OFFICER, 5, 17, $6, $0, 255, 255, $90, 0, OfficerScript_0x18abe8, $ffff
-; 0x18ad11
+	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
--- a/maps/SilverCaveItemRooms.asm
+++ b/maps/SilverCaveItemRooms.asm
@@ -1,36 +1,32 @@
-SilverCaveItemRooms_MapScriptHeader: ; 0x18c65c
-	; trigger count
+SilverCaveItemRooms_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18c65e
 
-ItemFragment_0x18c65e: ; 0x18c65e
+ItemFragment_0x18c65e:
 	db MAX_REVIVE, 1
-; 0x18c660
 
-ItemFragment_0x18c660: ; 0x18c660
+ItemFragment_0x18c660:
 	db FULL_RESTORE, 1
-; 0x18c662
 
-SilverCaveItemRooms_MapEventHeader: ; 0x18c662
+SilverCaveItemRooms_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_POKE_BALL, 7, 10, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c65e, $069c
-	person_event SPRITE_POKE_BALL, 15, 19, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c660, $069d
-; 0x18c68c
+	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
--- a/maps/SilverCaveOutside.asm
+++ b/maps/SilverCaveOutside.asm
@@ -1,8 +1,8 @@
 SilverCaveOutside_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -19,8 +19,7 @@
 	jumptext MtSilverSignText
 
 MapSilverCaveOutsideSignpostItem2:
-	dw $00b8
-	db FULL_RESTORE
+	dwb EVENT_SILVER_CAVE_OUTSIDE_HIDDEN_FULL_RESTORE, FULL_RESTORE
 
 MtSilverSignText:
 	text "MT.SILVER"
@@ -30,19 +29,19 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 3
-	signpost 19, 24, $0, MtSilverPokeCenterSign
-	signpost 13, 17, $0, MtSilverSign
-	signpost 25, 9, $7, MapSilverCaveOutsideSignpostItem2
+	signpost 19, 24, SIGNPOST_READ, MtSilverPokeCenterSign
+	signpost 13, 17, SIGNPOST_READ, MtSilverSign
+	signpost 25, 9, SIGNPOST_ITEM, MapSilverCaveOutsideSignpostItem2
 
-	; people-events
+.PersonEvents:
 	db 0
--- a/maps/SilverCavePokeCenter1F.asm
+++ b/maps/SilverCavePokeCenter1F.asm
@@ -1,20 +1,17 @@
-SilverCavePokeCenter1F_MapScriptHeader: ; 0x1ae598
-	; trigger count
+SilverCavePokeCenter1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1ae59a
 
-NurseScript_0x1ae59a: ; 0x1ae59a
+NurseScript_0x1ae59a:
 	jumpstd pokecenternurse
-; 0x1ae59d
 
-GrannyScript_0x1ae59d: ; 0x1ae59d
+GrannyScript_0x1ae59d:
 	jumptextfaceplayer UnknownText_0x1ae5a0
-; 0x1ae5a0
 
-UnknownText_0x1ae5a0: ; 0x1ae5a0
+UnknownText_0x1ae5a0:
 	text "Trainers who seek"
 	line "power climb MT."
 
@@ -27,26 +24,24 @@
 	para "feel they can go"
 	line "anywhere…"
 	done
-; 0x1ae622
 
-SilverCavePokeCenter1F_MapEventHeader: ; 0x1ae622
+SilverCavePokeCenter1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_NURSE, 5, 7, $6, $0, 255, 255, $0, 0, NurseScript_0x1ae59a, $ffff
-	person_event SPRITE_GRANNY, 9, 5, $8, $12, 255, 255, $0, 0, GrannyScript_0x1ae59d, $ffff
-; 0x1ae651
+	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
--- a/maps/SilverCaveRoom1.asm
+++ b/maps/SilverCaveRoom1.asm
@@ -1,60 +1,50 @@
-SilverCaveRoom1_MapScriptHeader: ; 0x18c552
-	; trigger count
+SilverCaveRoom1_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18c554
 
-ItemFragment_0x18c554: ; 0x18c554
+ItemFragment_0x18c554:
 	db MAX_ELIXER, 1
-; 0x18c556
 
-ItemFragment_0x18c556: ; 0x18c556
+ItemFragment_0x18c556:
 	db PROTEIN, 1
-; 0x18c558
 
-ItemFragment_0x18c558: ; 0x18c558
+ItemFragment_0x18c558:
 	db ESCAPE_ROPE, 1
-; 0x18c55a
 
-ItemFragment_0x18c55a: ; 0x18c55a
+ItemFragment_0x18c55a:
 	db ULTRA_BALL, 1
-; 0x18c55c
 
-MapSilverCaveRoom1SignpostItem0: ; 0x18c55c
-	dw $009a
-	db DIRE_HIT
+MapSilverCaveRoom1SignpostItem0:
+	dwb EVENT_SILVER_CAVE_ROOM_1_HIDDEN_DIRE_HIT, DIRE_HIT
 	
-; 0x18c55f
 
-MapSilverCaveRoom1SignpostItem1: ; 0x18c55f
-	dw $009b
-	db ULTRA_BALL
+MapSilverCaveRoom1SignpostItem1:
+	dwb EVENT_SILVER_CAVE_ROOM_1_HIDDEN_ULTRA_BALL, ULTRA_BALL
 	
-; 0x18c562
 
-SilverCaveRoom1_MapEventHeader: ; 0x18c562
+SilverCaveRoom1_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 23, 16, $7, MapSilverCaveRoom1SignpostItem0
-	signpost 12, 17, $7, MapSilverCaveRoom1SignpostItem1
+	signpost 23, 16, SIGNPOST_ITEM, MapSilverCaveRoom1SignpostItem0
+	signpost 12, 17, SIGNPOST_ITEM, MapSilverCaveRoom1SignpostItem1
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_POKE_BALL, 13, 8, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c554, $0699
-	person_event SPRITE_POKE_BALL, 33, 19, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c556, $069a
-	person_event SPRITE_POKE_BALL, 34, 9, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c558, $069b
-	person_event SPRITE_POKE_BALL, 22, 11, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c55a, $07c1
-; 0x18c5b0
+	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
--- a/maps/SilverCaveRoom2.asm
+++ b/maps/SilverCaveRoom2.asm
@@ -1,34 +1,28 @@
-SilverCaveRoom2_MapScriptHeader: ; 0x18c5b0
-	; trigger count
+SilverCaveRoom2_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18c5b2
 
-ItemFragment_0x18c5b2: ; 0x18c5b2
+ItemFragment_0x18c5b2:
 	db CALCIUM, 1
-; 0x18c5b4
 
-ItemFragment_0x18c5b4: ; 0x18c5b4
+ItemFragment_0x18c5b4:
 	db ULTRA_BALL, 1
-; 0x18c5b6
 
-ItemFragment_0x18c5b6: ; 0x18c5b6
+ItemFragment_0x18c5b6:
 	db PP_UP, 1
-; 0x18c5b8
 
-MapSilverCaveRoom2SignpostItem0: ; 0x18c5b8
-	dw $009c
-	db MAX_POTION
+MapSilverCaveRoom2SignpostItem0:
+	dwb EVENT_SILVER_CAVE_ROOM_2_HIDDEN_MAX_POTION, MAX_POTION
 	
-; 0x18c5bb
 
-SilverCaveRoom2_MapEventHeader: ; 0x18c5bb
+SilverCaveRoom2_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -35,16 +29,15 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 31, 14, $7, MapSilverCaveRoom2SignpostItem0
+	signpost 31, 14, SIGNPOST_ITEM, MapSilverCaveRoom2SignpostItem0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_POKE_BALL, 14, 28, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c5b2, $07c2
-	person_event SPRITE_POKE_BALL, 28, 26, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c5b4, $07c3
-	person_event SPRITE_POKE_BALL, 24, 8, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c5b6, $07c4
-; 0x18c601
+	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
--- a/maps/SilverCaveRoom3.asm
+++ b/maps/SilverCaveRoom3.asm
@@ -1,12 +1,11 @@
-SilverCaveRoom3_MapScriptHeader: ; 0x18c601
-	; trigger count
+SilverCaveRoom3_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18c603
 
-RedScript_0x18c603: ; 0x18c603
+RedScript_0x18c603:
 	special Functionc48f
 	faceplayer
 	loadfont
@@ -23,50 +22,45 @@
 	writetext UnknownText_0x18c63f
 	closetext
 	loadmovesprites
-	special Function8c0b6
-	special Functiond91
+	special Special_FadeBlackQuickly
+	special Special_ReloadSpritesNoPalettes
 	disappear $2
 	pause 15
-	special Function8c0ab
+	special Special_FadeInQuickly
 	pause 30
 	special HealParty
 	refreshscreen $0
 	credits
 	end
-; 0x18c637
 
-UnknownText_0x18c637: ; 0x18c637
+UnknownText_0x18c637:
 	text $56
 	line $56
 	done
-; 0x18c63c
 
-UnknownText_0x18c63c: ; 0x18c63c
+UnknownText_0x18c63c:
 	text "…"
 	done
-; 0x18c63f
 
-UnknownText_0x18c63f: ; 0x18c63f
+UnknownText_0x18c63f:
 	text $56
 	line $56
 	done
-; 0x18c644
 
-SilverCaveRoom3_MapEventHeader: ; 0x18c644
+SilverCaveRoom3_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $21, $9, 2, GROUP_SILVER_CAVE_ROOM_2, MAP_SILVER_CAVE_ROOM_2
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_RED, 14, 13, $7, $0, 255, 255, $80, 0, RedScript_0x18c603, EVENT_RED_IN_MT_SILVER
-; 0x18c65c
+	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
--- a/maps/SlowpokeWellB1F.asm
+++ b/maps/SlowpokeWellB1F.asm
@@ -1,36 +1,17 @@
-SlowpokeWellB1F_MapScriptHeader: ; 0x5a5d3
-	; trigger count
+SlowpokeWellB1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x5a5d5
 
-KurtScript_0x5a5d5: ; 0x5a5d5
+KurtScript_0x5a5d5:
 	jumptextfaceplayer UnknownText_0x5a6b5
-; 0x5a5d8
 
-TrainerGruntM29: ; 0x5a5d8
-	; bit/flag number
-	dw $50d
+TrainerGruntM29:
+	trainer EVENT_BEAT_ROCKET_GRUNTM_29, GRUNTM, 29, GruntM29SeenText, GruntM29BeatenText, $0000, GruntM29Script
 
-	; trainer group && trainer id
-	db GRUNTM, 29
-
-	; text when seen
-	dw GruntM29SeenText
-
-	; text when trainer beaten
-	dw GruntM29BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GruntM29Script
-; 0x5a5e4
-
-GruntM29Script: ; 0x5a5e4
+GruntM29Script:
 	talkaftercancel
 	loadfont
 	writetext TrainerGruntM29SlowpokeProfitText
@@ -37,41 +18,23 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5a5ec
 
-TrainerGruntM1: ; 0x5a5ec
-	; bit/flag number
-	dw $4f1
+TrainerGruntM1:
+	trainer EVENT_BEAT_ROCKET_GRUNTM_1, GRUNTM, 1, GruntM1SeenText, GruntM1BeatenText, $0000, GruntM1Script
 
-	; trainer group && trainer id
-	db GRUNTM, 1
-
-	; text when seen
-	dw GruntM1SeenText
-
-	; text when trainer beaten
-	dw GruntM1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GruntM1Script
-; 0x5a5f8
-
-GruntM1Script: ; 0x5a5f8
+GruntM1Script:
 	loadfont
 	writetext TrainerGruntM1WhenTalkText
 	closetext
 	loadmovesprites
-	special Function8c0b6
-	special Functiond91
+	special Special_FadeBlackQuickly
+	special Special_ReloadSpritesNoPalettes
 	disappear $2
 	disappear $3
 	disappear $4
 	disappear $5
 	pause 15
-	special Function8c0ab
+	special Special_FadeInQuickly
 	disappear $8
 	moveperson $8, $b, $6
 	appear $8
@@ -82,45 +45,27 @@
 	closetext
 	loadmovesprites
 	setevent EVENT_CLEARED_SLOWPOKE_WELL
-	variablesprite $6, $4
+	variablesprite SPRITE_AZALEA_ROCKET, SPRITE_SILVER
 	domaptrigger GROUP_AZALEA_TOWN, MAP_AZALEA_TOWN, $1
-	clearevent $06f3
-	clearevent $06e9
-	setevent $06f5
-	setevent $06f6
-	setevent $06fb
-	setevent $0740
-	clearevent $06f9
-	clearevent $06fd
-	clearevent $073e
-	special Function8c084
+	clearevent EVENT_ILEX_FOREST_APPRENTICE
+	clearevent EVENT_ILEX_FOREST_FARFETCHD
+	setevent EVENT_CHARCOAL_KILN_FARFETCH_D
+	setevent EVENT_CHARCOAL_KILN_APPRENTICE
+	setevent EVENT_SLOWPOKE_WELL_SLOWPOKES
+	setevent EVENT_SLOWPOKE_WELL_KURT
+	clearevent EVENT_AZALEA_TOWN_SLOWPOKES
+	clearevent EVENT_KURTS_HOUSE_SLOWPOKE
+	clearevent EVENT_KURTS_HOUSE_KURT_1
+	special FadeBlackBGMap
 	special HealParty
 	pause 15
 	warp GROUP_KURTS_HOUSE, MAP_KURTS_HOUSE, $3, $3
 	end
-; 0x5a659
 
-TrainerGruntM2: ; 0x5a659
-	; bit/flag number
-	dw $4f2
+TrainerGruntM2:
+	trainer EVENT_BEAT_ROCKET_GRUNTM_2, GRUNTM, 2, GruntM2SeenText, GruntM2BeatenText, $0000, GruntM2Script
 
-	; trainer group && trainer id
-	db GRUNTM, 2
-
-	; text when seen
-	dw GruntM2SeenText
-
-	; text when trainer beaten
-	dw GruntM2BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GruntM2Script
-; 0x5a665
-
-GruntM2Script: ; 0x5a665
+GruntM2Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5aaf2
@@ -127,29 +72,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5a66d
 
-TrainerGruntF1: ; 0x5a66d
-	; bit/flag number
-	dw $510
+TrainerGruntF1:
+	trainer EVENT_BEAT_ROCKET_GRUNTF_1, GRUNTF, 1, GruntF1SeenText, GruntF1BeatenText, $0000, GruntF1Script
 
-	; trainer group && trainer id
-	db GRUNTF, 1
-
-	; text when seen
-	dw GruntF1SeenText
-
-	; text when trainer beaten
-	dw GruntF1BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GruntF1Script
-; 0x5a679
-
-GruntF1Script: ; 0x5a679
+GruntF1Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5ab8d
@@ -156,9 +83,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5a681
 
-SlowpokeScript_0x5a681: ; 0x5a681
+SlowpokeScript_0x5a681:
 	faceplayer
 	loadfont
 	cry SLOWPOKE
@@ -167,16 +93,14 @@
 	iftrue UnknownScript_0x5a68f
 	loadmovesprites
 	end
-; 0x5a68f
 
-UnknownScript_0x5a68f: ; 0x5a68f
+UnknownScript_0x5a68f:
 	writetext UnknownText_0x5ac09
 	closetext
 	loadmovesprites
 	end
-; 0x5a695
 
-SlowpokeScript_0x5a695: ; 0x5a695
+SlowpokeScript_0x5a695:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x5ac61
@@ -184,16 +108,14 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5a6a0
 
 SlowpokeWellB1FBoulder:
 	jumpstd strengthboulder
 
-ItemFragment_0x5a6a3: ; 0x5a6a3
+ItemFragment_0x5a6a3:
 	db SUPER_POTION, 1
-; 0x5a6a5
 
-KurtSlowpokeWellVictoryMovementData: ; 0x5a6a5
+KurtSlowpokeWellVictoryMovementData:
 	step_left
 	step_left
 	step_left
@@ -210,9 +132,8 @@
 	accelerate_last
 	turn_head_left
 	step_end
-; 0x5a6b5
 
-UnknownText_0x5a6b5: ; 0x5a6b5
+UnknownText_0x5a6b5:
 	text "KURT: Hey there,"
 	line "<PLAYER>!"
 
@@ -241,9 +162,8 @@
 	line "how gutsy you are"
 	cont "in my place!"
 	done
-; 0x5a7ca
 
-KurtLeaveSlowpokeWellText: ; 0x5a7ca
+KurtLeaveSlowpokeWellText:
 	text "KURT: Way to go,"
 	line "<PLAYER>!"
 
@@ -254,9 +174,8 @@
 	line "too. Let's get out"
 	cont "of here."
 	done
-; 0x5a825
 
-GruntM29SeenText: ; 0x5a825
+GruntM29SeenText:
 	text "Darn! I was stand-"
 	line "ing guard up top"
 
@@ -271,15 +190,13 @@
 	line "my anger by taking"
 	cont "it out on you!"
 	done
-; 0x5a8cc
 
-GruntM29BeatenText: ; 0x5a8cc
+GruntM29BeatenText:
 	text "Arrgh! This is NOT"
 	line "my day!"
 	done
-; 0x5a8e8
 
-TrainerGruntM29SlowpokeProfitText: ; 0x5a8e8
+TrainerGruntM29SlowpokeProfitText:
 	text "Sure, we've been"
 	line "hacking the tails"
 
@@ -295,9 +212,8 @@
 	para "and we'll do any-"
 	line "thing for money!"
 	done
-; 0x5a98b
 
-GruntM1SeenText: ; 0x5a98b
+GruntM1SeenText:
 	text "What do you want?"
 
 	para "If you interrupt"
@@ -304,16 +220,14 @@
 	line "our work, don't"
 	cont "expect any mercy!"
 	done
-; 0x5a9d0
 
-GruntM1BeatenText: ; 0x5a9d0
+GruntM1BeatenText:
 	text "You did OK today,"
 	line "but wait till next"
 	cont "time!"
 	done
-; 0x5a9fc
 
-TrainerGruntM1WhenTalkText: ; 0x5a9fc
+TrainerGruntM1WhenTalkText:
 	text "Yeah, TEAM ROCKET"
 	line "was broken up"
 	cont "three years ago."
@@ -326,9 +240,8 @@
 	line "fun watching us"
 	cont "stir up trouble!"
 	done
-; 0x5aa8d
 
-GruntM2SeenText: ; 0x5aa8d
+GruntM2SeenText:
 	text "Quit taking SLOW-"
 	line "POKETAILS?"
 
@@ -336,15 +249,13 @@
 	line "TEAM ROCKET's rep"
 	cont "would be ruined!"
 	done
-; 0x5aadf
 
-GruntM2BeatenText: ; 0x5aadf
+GruntM2BeatenText:
 	text "Just…"
 	line "Too strong…"
 	done
-; 0x5aaf2
 
-UnknownText_0x5aaf2: ; 0x5aaf2
+UnknownText_0x5aaf2:
 	text "We need the money,"
 	line "but selling SLOW-"
 	cont "POKETAILS?"
@@ -352,22 +263,19 @@
 	para "It's tough being a"
 	line "ROCKET GRUNT!"
 	done
-; 0x5ab43
 
-GruntF1SeenText: ; 0x5ab43
+GruntF1SeenText:
 	text "Stop taking TAILS?"
 
 	para "Yeah, just try to"
 	line "defeat all of us!"
 	done
-; 0x5ab7b
 
-GruntF1BeatenText: ; 0x5ab7b
+GruntF1BeatenText:
 	text "You rotten brat!"
 	done
-; 0x5ab8d
 
-UnknownText_0x5ab8d: ; 0x5ab8d
+UnknownText_0x5ab8d:
 	text "SLOWPOKETAILS"
 	line "grow back fast!"
 
@@ -374,9 +282,8 @@
 	para "What's wrong with"
 	line "selling them?"
 	done
-; 0x5abcb
 
-UnknownText_0x5abcb: ; 0x5abcb
+UnknownText_0x5abcb:
 	text "A SLOWPOKE with"
 	line "its TAIL cut off…"
 
@@ -383,9 +290,8 @@
 	para "Huh? It has MAIL."
 	line "Read it?"
 	done
-; 0x5ac09
 
-UnknownText_0x5ac09: ; 0x5ac09
+UnknownText_0x5ac09:
 	text "<PLAYER> read the"
 	line "MAIL."
 
@@ -397,38 +303,35 @@
 
 	para "Love, Dad"
 	done
-; 0x5ac61
 
-UnknownText_0x5ac61: ; 0x5ac61
+UnknownText_0x5ac61:
 	text "A SLOWPOKE with"
 	line "its TAIL cut off…"
 	done
-; 0x5ac84
 
-SlowpokeWellB1F_MapEventHeader: ; 0x5ac84
+SlowpokeWellB1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 9
-	person_event SPRITE_ROCKET, 11, 19, $6, $0, 255, 255, $2, 3, TrainerGruntM29, $06fc
-	person_event SPRITE_ROCKET, 6, 9, $6, $0, 255, 255, $2, 1, TrainerGruntM1, $06fc
-	person_event SPRITE_ROCKET, 10, 9, $9, $0, 255, 255, $2, 2, TrainerGruntM2, $06fc
-	person_event SPRITE_ROCKET_GIRL, 8, 14, $9, $0, 255, 255, $82, 4, TrainerGruntF1, $06fc
-	person_event SPRITE_SLOWPOKE, 8, 11, $1, $0, 255, 255, $80, 0, SlowpokeScript_0x5a681, $06fb
-	person_event SPRITE_SLOWPOKE, 6, 10, $1, $0, 255, 255, $80, 0, SlowpokeScript_0x5a695, $06fb
-	person_event SPRITE_KURT, 18, 20, $7, $0, 255, 255, $0, 0, KurtScript_0x5a5d5, $0740
-	person_event SPRITE_BOULDER, 6, 7, $19, $0, 255, 255, $0, 0, SlowpokeWellB1FBoulder, $ffff
-	person_event SPRITE_POKE_BALL, 7, 14, $1, $0, 255, 255, $1, 0, ItemFragment_0x5a6a3, $0662
-; 0x5ad09
+	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
--- a/maps/SlowpokeWellB2F.asm
+++ b/maps/SlowpokeWellB2F.asm
@@ -1,12 +1,11 @@
-SlowpokeWellB2F_MapScriptHeader: ; 0x5ad09
-	; trigger count
+SlowpokeWellB2F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x5ad0b
 
-GymGuyScript_0x5ad0b: ; 0x5ad0b
+GymGuyScript_0x5ad0b:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_KINGS_ROCK_IN_SLOWPOKE_WELL
@@ -16,23 +15,20 @@
 	verbosegiveitem KINGS_ROCK, 1
 	iffalse UnknownScript_0x5ad20
 	setevent EVENT_GOT_KINGS_ROCK_IN_SLOWPOKE_WELL
-UnknownScript_0x5ad20: ; 0x5ad20
+UnknownScript_0x5ad20:
 	loadmovesprites
 	end
-; 0x5ad22
 
-UnknownScript_0x5ad22: ; 0x5ad22
+UnknownScript_0x5ad22:
 	writetext UnknownText_0x5adf2
 	closetext
 	loadmovesprites
 	end
-; 0x5ad28
 
-ItemFragment_0x5ad28: ; 0x5ad28
-	db TM_18, 1
-; 0x5ad2a
+ItemFragment_0x5ad28:
+	db TM_RAIN_DANCE, 1
 
-UnknownText_0x5ad2a: ; 0x5ad2a
+UnknownText_0x5ad2a:
 	text "I'm waiting to see"
 	line "SLOWPOKE's moment"
 	cont "of evolution."
@@ -51,9 +47,8 @@
 	line "KING'S ROCK with"
 	cont "you."
 	done
-; 0x5adf2
 
-UnknownText_0x5adf2: ; 0x5adf2
+UnknownText_0x5adf2:
 	text "I'm going to be"
 	line "like SLOWPOKE."
 
@@ -61,24 +56,22 @@
 	line "ly, so I can see"
 	cont "one evolve."
 	done
-; 0x5ae40
 
-SlowpokeWellB2F_MapEventHeader: ; 0x5ae40
+SlowpokeWellB2F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $b, $9, 2, GROUP_SLOWPOKE_WELL_B1F, MAP_SLOWPOKE_WELL_B1F
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_GYM_GUY, 8, 9, $2, $21, 255, 255, $0, 1, GymGuyScript_0x5ad0b, $ffff
-	person_event SPRITE_POKE_BALL, 9, 19, $1, $0, 255, 255, $1, 0, ItemFragment_0x5ad28, $0663
-; 0x5ae65
+	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
--- a/maps/SoulHouse.asm
+++ b/maps/SoulHouse.asm
@@ -1,28 +1,23 @@
-SoulHouse_MapScriptHeader: ; 0x7ec45
-	; trigger count
+SoulHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x7ec47
 
-GrampsScript_0x7ec47: ; 0x7ec47
+GrampsScript_0x7ec47:
 	jumptextfaceplayer UnknownText_0x7ec53
-; 0x7ec4a
 
-TeacherScript_0x7ec4a: ; 0x7ec4a
+TeacherScript_0x7ec4a:
 	jumptextfaceplayer UnknownText_0x7ed4d
-; 0x7ec4d
 
-LassScript_0x7ec4d: ; 0x7ec4d
+LassScript_0x7ec4d:
 	jumptextfaceplayer UnknownText_0x7edb1
-; 0x7ec50
 
-GrannyScript_0x7ec50: ; 0x7ec50
+GrannyScript_0x7ec50:
 	jumptextfaceplayer UnknownText_0x7eddb
-; 0x7ec53
 
-UnknownText_0x7ec53: ; 0x7ec53
+UnknownText_0x7ec53:
 	text "MR.FUJI: Welcome."
 
 	para "Hmm… You appear to"
@@ -46,9 +41,8 @@
 	para "I'm sure that will"
 	line "make them happy."
 	done
-; 0x7ed4d
 
-UnknownText_0x7ed4d: ; 0x7ed4d
+UnknownText_0x7ed4d:
 	text "There are other"
 	line "graves of #MON"
 	cont "here, I think."
@@ -57,16 +51,14 @@
 	line "chambers that only"
 	cont "MR.FUJI may enter."
 	done
-; 0x7edb1
 
-UnknownText_0x7edb1: ; 0x7edb1
+UnknownText_0x7edb1:
 	text "I came with my mom"
 	line "to visit #MON"
 	cont "graves…"
 	done
-; 0x7eddb
 
-UnknownText_0x7eddb: ; 0x7eddb
+UnknownText_0x7eddb:
 	text "The #MON that"
 	line "lived with me…"
 
@@ -73,27 +65,25 @@
 	para "I loved them like"
 	line "my grandchildren…"
 	done
-; 0x7ee1d
 
-SoulHouse_MapEventHeader: ; 0x7ee1d
+SoulHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_GRAMPS, 6, 8, $6, $0, 255, 255, $90, 0, GrampsScript_0x7ec47, $ffff
-	person_event SPRITE_TEACHER, 7, 11, $5, $1, 255, 255, $90, 0, TeacherScript_0x7ec4a, $ffff
-	person_event SPRITE_LASS, 9, 6, $7, $0, 255, 255, $90, 0, LassScript_0x7ec4d, $ffff
-	person_event SPRITE_GRANNY, 7, 5, $7, $0, 255, 255, $90, 0, GrannyScript_0x7ec50, $ffff
-; 0x7ee61
+	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
--- a/maps/SproutTower1F.asm
+++ b/maps/SproutTower1F.asm
@@ -1,48 +1,26 @@
-SproutTower1F_MapScriptHeader: ; 0x1844fc
-	; trigger count
+SproutTower1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1844fe
 
-SageScript_0x1844fe: ; 0x1844fe
+SageScript_0x1844fe:
 	jumptextfaceplayer UnknownText_0x1845d8
-; 0x184501
 
-SageScript_0x184501: ; 0x184501
+SageScript_0x184501:
 	jumptextfaceplayer UnknownText_0x18460a
-; 0x184504
 
-GrannyScript_0x184504: ; 0x184504
+GrannyScript_0x184504:
 	jumptextfaceplayer UnknownText_0x184649
-; 0x184507
 
-TeacherScript_0x184507: ; 0x184507
+TeacherScript_0x184507:
 	jumptextfaceplayer UnknownText_0x18469d
-; 0x18450a
 
-TrainerSageChow: ; 0x18450a
-	; bit/flag number
-	dw $411
+TrainerSageChow:
+	trainer EVENT_BEAT_SAGE_CHOW, SAGE, CHOW, SageChowSeenText, SageChowBeatenText, $0000, SageChowScript
 
-	; trainer group && trainer id
-	db SAGE, CHOW
-
-	; text when seen
-	dw SageChowSeenText
-
-	; text when trainer beaten
-	dw SageChowBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SageChowScript
-; 0x184516
-
-SageChowScript: ; 0x184516
+SageChowScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x184583
@@ -49,17 +27,14 @@
 	closetext
 	loadmovesprites
 	end
-; 0x18451e
 
-ItemFragment_0x18451e: ; 0x18451e
+ItemFragment_0x18451e:
 	db PARLYZ_HEAL, 1
-; 0x184520
 
-MapSproutTower1FSignpost1Script: ; 0x184520
+MapSproutTower1FSignpost1Script:
 	jumptext UnknownText_0x1846d6
-; 0x184523
 
-SageChowSeenText: ; 0x184523
+SageChowSeenText:
 	text "We stand guard in"
 	line "this tower."
 
@@ -67,14 +42,12 @@
 	line "our gratitude to"
 	cont "honor all #MON."
 	done
-; 0x184574
 
-SageChowBeatenText: ; 0x184574
+SageChowBeatenText:
 	text "Th-Thank you!"
 	done
-; 0x184583
 
-UnknownText_0x184583: ; 0x184583
+UnknownText_0x184583:
 	text "All living beings"
 	line "coexist through"
 	cont "cooperation."
@@ -82,16 +55,14 @@
 	para "We must always be"
 	line "thankful for this."
 	done
-; 0x1845d8
 
-UnknownText_0x1845d8: ; 0x1845d8
+UnknownText_0x1845d8:
 	text "Only if you reach"
 	line "the top will you"
 	cont "obtain an HM."
 	done
-; 0x18460a
 
-UnknownText_0x18460a: ; 0x18460a
+UnknownText_0x18460a:
 	text "SPROUT TOWER was"
 	line "built long ago"
 
@@ -98,9 +69,8 @@
 	para "as a place for"
 	line "#MON training."
 	done
-; 0x184649
 
-UnknownText_0x184649: ; 0x184649
+UnknownText_0x184649:
 	text "A BELLSPROUT over"
 	line "100 feet tall…"
 
@@ -108,9 +78,8 @@
 	line "became the center"
 	cont "pillar here."
 	done
-; 0x18469d
 
-UnknownText_0x18469d: ; 0x18469d
+UnknownText_0x18469d:
 	text "See the pillar"
 	line "shaking?"
 
@@ -117,21 +86,19 @@
 	para "People are train-"
 	line "ing upstairs."
 	done
-; 0x1846d6
 
-UnknownText_0x1846d6: ; 0x1846d6
+UnknownText_0x1846d6:
 	text "A #MON statue…"
 
 	para "It looks very"
 	line "distinguished."
 	done
-; 0x184703
 
-SproutTower1F_MapEventHeader: ; 0x184703
+SproutTower1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -139,20 +106,19 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 15, 7, $0, MapSproutTower1FSignpost1Script
-	signpost 15, 12, $0, MapSproutTower1FSignpost1Script
+	signpost 15, 7, SIGNPOST_READ, MapSproutTower1FSignpost1Script
+	signpost 15, 12, SIGNPOST_READ, MapSproutTower1FSignpost1Script
 
-	; people-events
+.PersonEvents:
 	db 6
-	person_event SPRITE_SAGE, 8, 11, $6, $0, 255, 255, $90, 0, SageScript_0x1844fe, $ffff
-	person_event SPRITE_SAGE, 11, 10, $2, $11, 255, 255, $90, 0, SageScript_0x184501, $ffff
-	person_event SPRITE_GRANNY, 16, 15, $8, $0, 255, 255, $0, 0, GrannyScript_0x184504, $ffff
-	person_event SPRITE_TEACHER, 13, 13, $7, $0, 255, 255, $0, 0, TeacherScript_0x184507, $ffff
-	person_event SPRITE_SAGE, 9, 7, $7, $0, 255, 255, $92, 4, TrainerSageChow, $ffff
-	person_event SPRITE_POKE_BALL, 11, 20, $1, $0, 255, 255, $1, 0, ItemFragment_0x18451e, $0647
-; 0x18477a
+	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
--- a/maps/SproutTower2F.asm
+++ b/maps/SproutTower2F.asm
@@ -1,32 +1,14 @@
-SproutTower2F_MapScriptHeader: ; 0x18477a
-	; trigger count
+SproutTower2F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18477c
 
-TrainerSageNico: ; 0x18477c
-	; bit/flag number
-	dw $412
+TrainerSageNico:
+	trainer EVENT_BEAT_SAGE_NICO, SAGE, NICO, SageNicoSeenText, SageNicoBeatenText, $0000, SageNicoScript
 
-	; trainer group && trainer id
-	db SAGE, NICO
-
-	; text when seen
-	dw SageNicoSeenText
-
-	; text when trainer beaten
-	dw SageNicoBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SageNicoScript
-; 0x184788
-
-SageNicoScript: ; 0x184788
+SageNicoScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1847ff
@@ -33,29 +15,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x184790
 
-TrainerSageEdmond: ; 0x184790
-	; bit/flag number
-	dw $417
+TrainerSageEdmond:
+	trainer EVENT_BEAT_SAGE_EDMOND, SAGE, EDMOND, SageEdmondSeenText, SageEdmondBeatenText, $0000, SageEdmondScript
 
-	; trainer group && trainer id
-	db SAGE, EDMOND
-
-	; text when seen
-	dw SageEdmondSeenText
-
-	; text when trainer beaten
-	dw SageEdmondBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SageEdmondScript
-; 0x18479c
-
-SageEdmondScript: ; 0x18479c
+SageEdmondScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x18486f
@@ -62,30 +26,25 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1847a4
 
-MapSproutTower2FSignpost0Script: ; 0x1847a4
+MapSproutTower2FSignpost0Script:
 	jumptext UnknownText_0x1848c8
-; 0x1847a7
 
-ItemFragment_0x1847a7: ; 0x1847a7
+ItemFragment_0x1847a7:
 	db X_ACCURACY, 1
-; 0x1847a9
 
-SageNicoSeenText: ; 0x1847a9
+SageNicoSeenText:
 	text "However hard we"
 	line "battle, the TOWER"
 	cont "will stand strong."
 	done
-; 0x1847df
 
-SageNicoBeatenText: ; 0x1847df
+SageNicoBeatenText:
 	text "I fought hard but"
 	line "I'm too weak."
 	done
-; 0x1847ff
 
-UnknownText_0x1847ff: ; 0x1847ff
+UnknownText_0x1847ff:
 	text "The flexible pil-"
 	line "lar protects the"
 
@@ -92,20 +51,17 @@
 	para "TOWER, even from"
 	line "earthquakes."
 	done
-; 0x184841
 
-SageEdmondSeenText: ; 0x184841
+SageEdmondSeenText:
 	text "…Sway like leaves"
 	line "in the wind…"
 	done
-; 0x184861
 
-SageEdmondBeatenText: ; 0x184861
+SageEdmondBeatenText:
 	text "Oh, I'm weak!"
 	done
-; 0x18486f
 
-UnknownText_0x18486f: ; 0x18486f
+UnknownText_0x18486f:
 	text "I tried to copy"
 	line "BELLSPROUT's"
 
@@ -115,21 +71,19 @@
 	para "But I didn't train"
 	line "well enough."
 	done
-; 0x1848c8
 
-UnknownText_0x1848c8: ; 0x1848c8
+UnknownText_0x1848c8:
 	text "A #MON statue…"
 
 	para "It looks very"
 	line "distinguished."
 	done
-; 0x1848f5
 
-SproutTower2F_MapEventHeader: ; 0x1848f5
+SproutTower2F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -136,16 +90,15 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 15, 12, $0, MapSproutTower2FSignpost0Script
+	signpost 15, 12, SIGNPOST_READ, MapSproutTower2FSignpost0Script
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_SAGE, 7, 16, $a, $0, 255, 255, $92, 4, TrainerSageNico, $ffff
-	person_event SPRITE_SAGE, 18, 13, $8, $0, 255, 255, $92, 5, TrainerSageEdmond, $ffff
-	person_event SPRITE_POKE_BALL, 5, 7, $1, $0, 255, 255, $1, 0, ItemFragment_0x1847a7, $0648
-; 0x18493b
+	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
--- a/maps/SproutTower3F.asm
+++ b/maps/SproutTower3F.asm
@@ -1,5 +1,5 @@
-SproutTower3F_MapScriptHeader: ; 0x18493b
-	; trigger count
+SproutTower3F_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,21 +6,18 @@
 	dw UnknownScript_0x184945, $0000
 	dw UnknownScript_0x184946, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x184945
 
-UnknownScript_0x184945: ; 0x184945
+UnknownScript_0x184945:
 	end
-; 0x184946
 
-UnknownScript_0x184946: ; 0x184946
+UnknownScript_0x184946:
 	end
-; 0x184947
 
-UnknownScript_0x184947: ; 0x184947
+UnknownScript_0x184947:
 	spriteface $0, UP
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	special Functionc48f
 	playsound SFX_TACKLE
 	playsound SFX_ELEVATOR
@@ -35,7 +32,7 @@
 	writetext UnknownText_0x184a27
 	closetext
 	loadmovesprites
-	showemote $0, $8, 15
+	showemote EMOTE_SHOCK, $8, 15
 	spriteface $8, DOWN
 	pause 15
 	applymovement $8, MovementData_0x184a24
@@ -50,17 +47,16 @@
 	pause 15
 	loadmovesprites
 	playsound SFX_WARP_TO
-	special Function8c0b6
-	special Functiond91
+	special Special_FadeBlackQuickly
+	special Special_ReloadSpritesNoPalettes
 	disappear $8
 	waitbutton
-	special Function8c0ab
+	special Special_FadeInQuickly
 	dotrigger $1
 	special RestartMapMusic
 	end
-; 0x1849a6
 
-SageLiScript: ; 0x1849a6
+SageLiScript:
 	faceplayer
 	loadfont
 	checkevent EVENT_GOT_HM05_FLASH
@@ -75,7 +71,7 @@
 	loadfont
 	writetext UnknownText_0x184cc2
 	keeptextopen
-	verbosegiveitem HM_05, 1
+	verbosegiveitem HM_FLASH, 1
 	setevent EVENT_GOT_HM05_FLASH
 	setevent EVENT_BEAT_SAGE_LI
 	writetext UnknownText_0x184d13
@@ -82,36 +78,17 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1849d1
 
-UnknownScript_0x1849d1: ; 0x1849d1
+UnknownScript_0x1849d1:
 	writetext UnknownText_0x184d88
 	closetext
 	loadmovesprites
 	end
-; 0x1849d7
 
-TrainerSageJin: ; 0x1849d7
-	; bit/flag number
-	dw $413
+TrainerSageJin:
+	trainer EVENT_BEAT_SAGE_JIN, SAGE, JIN, SageJinSeenText, SageJinBeatenText, $0000, SageJinScript
 
-	; trainer group && trainer id
-	db SAGE, JIN
-
-	; text when seen
-	dw SageJinSeenText
-
-	; text when trainer beaten
-	dw SageJinBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SageJinScript
-; 0x1849e3
-
-SageJinScript: ; 0x1849e3
+SageJinScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x184dfa
@@ -118,29 +95,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1849eb
 
-TrainerSageTroy: ; 0x1849eb
-	; bit/flag number
-	dw $414
+TrainerSageTroy:
+	trainer EVENT_BEAT_SAGE_TROY, SAGE, TROY, SageTroySeenText, SageTroyBeatenText, $0000, SageTroyScript
 
-	; trainer group && trainer id
-	db SAGE, TROY
-
-	; text when seen
-	dw SageTroySeenText
-
-	; text when trainer beaten
-	dw SageTroyBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SageTroyScript
-; 0x1849f7
-
-SageTroyScript: ; 0x1849f7
+SageTroyScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x184ea4
@@ -147,29 +106,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1849ff
 
-TrainerSageNeal: ; 0x1849ff
-	; bit/flag number
-	dw $418
+TrainerSageNeal:
+	trainer EVENT_BEAT_SAGE_NEAL, SAGE, NEAL, SageNealSeenText, SageNealBeatenText, $0000, SageNealScript
 
-	; trainer group && trainer id
-	db SAGE, NEAL
-
-	; text when seen
-	dw SageNealSeenText
-
-	; text when trainer beaten
-	dw SageNealBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SageNealScript
-; 0x184a0b
-
-SageNealScript: ; 0x184a0b
+SageNealScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x184f12
@@ -176,44 +117,36 @@
 	closetext
 	loadmovesprites
 	end
-; 0x184a13
 
-MapSproutTower3FSignpost3Script: ; 0x184a13
+MapSproutTower3FSignpost3Script:
 	jumptext UnknownText_0x184f37
-; 0x184a16
 
-MapSproutTower3FSignpost5Script: ; 0x184a16
+MapSproutTower3FSignpost5Script:
 	jumptext UnknownText_0x184f61
-; 0x184a19
 
-ItemFragment_0x184a19: ; 0x184a19
+ItemFragment_0x184a19:
 	db POTION, 1
-; 0x184a1b
 
-ItemFragment_0x184a1b: ; 0x184a1b
+ItemFragment_0x184a1b:
 	db ESCAPE_ROPE, 1
-; 0x184a1d
 
-MovementData_0x184a1d: ; 0x184a1d
+MovementData_0x184a1d:
 	step_up
 	step_up
 	step_up
 	step_up
 	step_end
-; 0x184a22
 
-MovementData_0x184a22: ; 0x184a22
+MovementData_0x184a22:
 	step_up
 	step_end
-; 0x184a24
 
-MovementData_0x184a24: ; 0x184a24
+MovementData_0x184a24:
 	step_right
 	step_down
 	step_end
-; 0x184a27
 
-UnknownText_0x184a27: ; 0x184a27
+UnknownText_0x184a27:
 	text "ELDER: You are in-"
 	line "deed skilled as a"
 	cont "trainer."
@@ -233,9 +166,8 @@
 	para "#MON are not"
 	line "tools of war…"
 	done
-; 0x184aec
 
-UnknownText_0x184aec: ; 0x184aec
+UnknownText_0x184aec:
 	text "…"
 	line "…Humph!"
 
@@ -260,15 +192,13 @@
 	line "care less about"
 	cont "weak #MON."
 	done
-; 0x184bc8
 
-UnknownText_0x184bc8: ; 0x184bc8
+UnknownText_0x184bc8:
 	text "<RIVAL> used an"
 	line "ESCAPE ROPE!"
 	done
-; 0x184be0
 
-SageLiSeenText: ; 0x184be0
+SageLiSeenText:
 	text "So good of you to"
 	line "come here!"
 
@@ -290,14 +220,12 @@
 	para "your #MON and"
 	line "you!"
 	done
-; 0x184cb2
 
-SageLiBeatenText: ; 0x184cb2
+SageLiBeatenText:
 	text "Ah, excellent!"
 	done
-; 0x184cc2
 
-UnknownText_0x184cc2: ; 0x184cc2
+UnknownText_0x184cc2:
 	text "You and your #-"
 	line "MON should have"
 
@@ -307,9 +235,8 @@
 	para "Take this FLASH"
 	line "HM."
 	done
-; 0x184d13
 
-UnknownText_0x184d13: ; 0x184d13
+UnknownText_0x184d13:
 	text "FLASH illuminates"
 	line "even the darkest"
 	cont "of all places."
@@ -320,29 +247,25 @@
 	para "need the BADGE"
 	line "from VIOLET's GYM."
 	done
-; 0x184d88
 
-UnknownText_0x184d88: ; 0x184d88
+UnknownText_0x184d88:
 	text "I hope you learn"
 	line "and grow from your"
 	cont "journey."
 	done
-; 0x184db6
 
-SageJinSeenText: ; 0x184db6
+SageJinSeenText:
 	text "I train to find"
 	line "enlightenment in"
 	cont "#MON!"
 	done
-; 0x184dde
 
-SageJinBeatenText: ; 0x184dde
+SageJinBeatenText:
 	text "My training is"
 	line "incomplete…"
 	done
-; 0x184dfa
 
-UnknownText_0x184dfa: ; 0x184dfa
+UnknownText_0x184dfa:
 	text "As #MON grow"
 	line "stronger, so does"
 	cont "the trainer."
@@ -353,89 +276,79 @@
 	para "stronger, so do"
 	line "the #MON."
 	done
-; 0x184e60
 
-SageTroySeenText: ; 0x184e60
+SageTroySeenText:
 	text "Let me see how"
 	line "much you trust"
 	cont "your #MON."
 	done
-; 0x184e8a
 
-SageTroyBeatenText: ; 0x184e8a
+SageTroyBeatenText:
 	text "Yes, your trust is"
 	line "real!"
 	done
-; 0x184ea4
 
-UnknownText_0x184ea4: ; 0x184ea4
+UnknownText_0x184ea4:
 	text "It is not far to"
 	line "the ELDER."
 	done
-; 0x184ec1
 
-SageNealSeenText: ; 0x184ec1
+SageNealSeenText:
 	text "The ELDER's HM"
 	line "lights even pitch-"
 	cont "black darkness."
 	done
-; 0x184ef3
 
-SageNealBeatenText: ; 0x184ef3
+SageNealBeatenText:
 	text "It is my head that"
 	line "is bright!"
 	done
-; 0x184f12
 
-UnknownText_0x184f12: ; 0x184f12
+UnknownText_0x184f12:
 	text "Let there be light"
 	line "on your journey."
 	done
-; 0x184f37
 
-UnknownText_0x184f37: ; 0x184f37
+UnknownText_0x184f37:
 	text "It's a powerful"
 	line "painting of a"
 	cont "BELLSPROUT."
 	done
-; 0x184f61
 
-UnknownText_0x184f61: ; 0x184f61
+UnknownText_0x184f61:
 	text "A #MON statue…"
 
 	para "It looks very"
 	line "distinguished."
 	done
-; 0x184f8e
 
-SproutTower3F_MapEventHeader: ; 0x184f8e
+SproutTower3F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $e, $a, 4, GROUP_SPROUT_TOWER_2F, MAP_SPROUT_TOWER_2F
 
-	; xy triggers
+.XYTriggers:
 	db 1
 	xy_trigger 0, $9, $b, $0, UnknownScript_0x184947, $0, $0
 
-	; signposts
+.Signposts:
 	db 6
-	signpost 1, 8, $0, MapSproutTower3FSignpost5Script
-	signpost 1, 11, $0, MapSproutTower3FSignpost5Script
-	signpost 0, 9, $0, MapSproutTower3FSignpost3Script
-	signpost 0, 10, $0, MapSproutTower3FSignpost3Script
-	signpost 15, 5, $0, MapSproutTower3FSignpost5Script
-	signpost 15, 14, $0, MapSproutTower3FSignpost5Script
+	signpost 1, 8, SIGNPOST_READ, MapSproutTower3FSignpost5Script
+	signpost 1, 11, SIGNPOST_READ, MapSproutTower3FSignpost5Script
+	signpost 0, 9, SIGNPOST_READ, MapSproutTower3FSignpost3Script
+	signpost 0, 10, SIGNPOST_READ, MapSproutTower3FSignpost3Script
+	signpost 15, 5, SIGNPOST_READ, MapSproutTower3FSignpost5Script
+	signpost 15, 14, SIGNPOST_READ, MapSproutTower3FSignpost5Script
 
-	; people-events
+.PersonEvents:
 	db 7
-	person_event SPRITE_SAGE, 17, 12, $9, $0, 255, 255, $92, 3, TrainerSageJin, $ffff
-	person_event SPRITE_SAGE, 12, 12, $6, $0, 255, 255, $92, 2, TrainerSageTroy, $ffff
-	person_event SPRITE_SAGE, 6, 14, $6, $0, 255, 255, $90, 0, SageLiScript, $ffff
-	person_event SPRITE_SAGE, 15, 15, $8, $0, 255, 255, $92, 3, TrainerSageNeal, $ffff
-	person_event SPRITE_POKE_BALL, 18, 10, $1, $0, 255, 255, $1, 0, ItemFragment_0x184a19, $0649
-	person_event SPRITE_POKE_BALL, 5, 18, $1, $0, 255, 255, $1, 0, ItemFragment_0x184a1b, $064a
-	person_event SPRITE_SILVER, 8, 14, $7, $0, 255, 255, $0, 0, ObjectEvent, EVENT_RIVAL_SPROUT_TOWER
-; 0x18501a
+	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
--- a/maps/TeamRocketBaseB1F.asm
+++ b/maps/TeamRocketBaseB1F.asm
@@ -1,34 +1,31 @@
-TeamRocketBaseB1F_MapScriptHeader: ; 0x6c651
-	; trigger count
+TeamRocketBaseB1F_MapScriptHeader:
+.MapTriggers:
 	db 1
 
 	; triggers
 	dw UnknownScript_0x6c65a, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 2, UnknownScript_0x6c65b
-; 0x6c65a
 
-UnknownScript_0x6c65a: ; 0x6c65a
+UnknownScript_0x6c65a:
 	end
-; 0x6c65b
 
-UnknownScript_0x6c65b: ; 0x6c65b
+UnknownScript_0x6c65b:
 	disappear $2
 	return
-; 0x6c65e
 
-SecurityCamera1a: ; 0x6c65e
+SecurityCamera1a:
 	checkevent EVENT_SECURITY_CAMERA_1
 	iftrue NoSecurityCamera
 	scall PlaySecurityCameraSounds
-	checkevent $06da
+	checkevent EVENT_TEAM_ROCKET_BASE_POPULATION
 	iftrue NoSecurityCamera
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	playmusic MUSIC_ROCKET_ENCOUNTER
 	moveperson $2, $13, $2
 	appear $2
@@ -37,7 +34,7 @@
 	scall TrainerCameraGrunt1
 	if_equal $1, NoSecurityCamera
 	scall PlaySecurityCameraSounds
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	playmusic MUSIC_ROCKET_ENCOUNTER
 	moveperson $2, $13, $2
 	appear $2
@@ -46,15 +43,14 @@
 	if_equal $1, NoSecurityCamera
 	setevent EVENT_SECURITY_CAMERA_1
 	end
-; 0x6c6a7
 
-SecurityCamera1b: ; 0x6c6a7
+SecurityCamera1b:
 	checkevent EVENT_SECURITY_CAMERA_1
 	iftrue NoSecurityCamera
 	scall PlaySecurityCameraSounds
-	checkevent $06da
+	checkevent EVENT_TEAM_ROCKET_BASE_POPULATION
 	iftrue NoSecurityCamera
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	playmusic MUSIC_ROCKET_ENCOUNTER
 	moveperson $2, $13, $3
 	appear $2
@@ -63,7 +59,7 @@
 	scall TrainerCameraGrunt1
 	if_equal $1, NoSecurityCamera
 	scall PlaySecurityCameraSounds
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	playmusic MUSIC_ROCKET_ENCOUNTER
 	moveperson $2, $13, $3
 	appear $2
@@ -72,15 +68,14 @@
 	if_equal $1, NoSecurityCamera
 	setevent EVENT_SECURITY_CAMERA_1
 	end
-; 0x6c6f0
 
-SecurityCamera2a: ; 0x6c6f0
+SecurityCamera2a:
 	checkevent EVENT_SECURITY_CAMERA_2
 	iftrue NoSecurityCamera
 	scall PlaySecurityCameraSounds
-	checkevent $06da
+	checkevent EVENT_TEAM_ROCKET_BASE_POPULATION
 	iftrue NoSecurityCamera
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	playmusic MUSIC_ROCKET_ENCOUNTER
 	moveperson $2, $4, $7
 	appear $2
@@ -89,7 +84,7 @@
 	scall TrainerCameraGrunt1
 	if_equal $1, NoSecurityCamera
 	scall PlaySecurityCameraSounds
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	playmusic MUSIC_ROCKET_ENCOUNTER
 	spriteface $0, RIGHT
 	moveperson $2, $c, $5
@@ -99,15 +94,14 @@
 	if_equal $1, NoSecurityCamera
 	setevent EVENT_SECURITY_CAMERA_2
 	end
-; 0x6c73c
 
-SecurityCamera2b: ; 0x6c73c
+SecurityCamera2b:
 	checkevent EVENT_SECURITY_CAMERA_2
 	iftrue NoSecurityCamera
 	scall PlaySecurityCameraSounds
-	checkevent $06da
+	checkevent EVENT_TEAM_ROCKET_BASE_POPULATION
 	iftrue NoSecurityCamera
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	playmusic MUSIC_ROCKET_ENCOUNTER
 	moveperson $2, $4, $8
 	appear $2
@@ -116,7 +110,7 @@
 	scall TrainerCameraGrunt1
 	if_equal $1, NoSecurityCamera
 	scall PlaySecurityCameraSounds
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	playmusic MUSIC_ROCKET_ENCOUNTER
 	spriteface $0, RIGHT
 	moveperson $2, $c, $5
@@ -126,15 +120,14 @@
 	if_equal $1, NoSecurityCamera
 	setevent EVENT_SECURITY_CAMERA_2
 	end
-; 0x6c788
 
-SecurityCamera3a: ; 0x6c788
+SecurityCamera3a:
 	checkevent EVENT_SECURITY_CAMERA_3
 	iftrue NoSecurityCamera
 	scall PlaySecurityCameraSounds
-	checkevent $06da
+	checkevent EVENT_TEAM_ROCKET_BASE_POPULATION
 	iftrue NoSecurityCamera
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	playmusic MUSIC_ROCKET_ENCOUNTER
 	moveperson $2, $13, $6
 	appear $2
@@ -143,7 +136,7 @@
 	scall TrainerCameraGrunt1
 	if_equal $1, NoSecurityCamera
 	scall PlaySecurityCameraSounds
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	playmusic MUSIC_ROCKET_ENCOUNTER
 	spriteface $0, RIGHT
 	moveperson $2, $19, $b
@@ -153,15 +146,14 @@
 	if_equal $1, NoSecurityCamera
 	setevent EVENT_SECURITY_CAMERA_3
 	end
-; 0x6c7d4
 
-SecurityCamera3b: ; 0x6c7d4
+SecurityCamera3b:
 	checkevent EVENT_SECURITY_CAMERA_3
 	iftrue NoSecurityCamera
 	scall PlaySecurityCameraSounds
-	checkevent $06da
+	checkevent EVENT_TEAM_ROCKET_BASE_POPULATION
 	iftrue NoSecurityCamera
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	playmusic MUSIC_ROCKET_ENCOUNTER
 	moveperson $2, $13, $7
 	appear $2
@@ -170,7 +162,7 @@
 	scall TrainerCameraGrunt1
 	if_equal $1, NoSecurityCamera
 	scall PlaySecurityCameraSounds
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	playmusic MUSIC_ROCKET_ENCOUNTER
 	spriteface $0, RIGHT
 	moveperson $2, $19, $c
@@ -180,15 +172,14 @@
 	if_equal $1, NoSecurityCamera
 	setevent EVENT_SECURITY_CAMERA_3
 	end
-; 0x6c820
 
-SecurityCamera4: ; 0x6c820
+SecurityCamera4:
 	checkevent EVENT_SECURITY_CAMERA_4
 	iftrue NoSecurityCamera
 	scall PlaySecurityCameraSounds
-	checkevent $06da
+	checkevent EVENT_TEAM_ROCKET_BASE_POPULATION
 	iftrue NoSecurityCamera
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	playmusic MUSIC_ROCKET_ENCOUNTER
 	moveperson $2, $11, $10
 	appear $2
@@ -197,7 +188,7 @@
 	scall TrainerCameraGrunt1
 	if_equal $1, NoSecurityCamera
 	scall PlaySecurityCameraSounds
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	playmusic MUSIC_ROCKET_ENCOUNTER
 	spriteface $0, RIGHT
 	moveperson $2, $19, $b
@@ -207,15 +198,14 @@
 	if_equal $1, NoSecurityCamera
 	setevent EVENT_SECURITY_CAMERA_4
 	end
-; 0x6c86c
 
-SecurityCamera5: ; 0x6c86c
+SecurityCamera5:
 	checkevent EVENT_SECURITY_CAMERA_5
 	iftrue NoSecurityCamera
 	scall PlaySecurityCameraSounds
-	checkevent $06da
+	checkevent EVENT_TEAM_ROCKET_BASE_POPULATION
 	iftrue NoSecurityCamera
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	playmusic MUSIC_ROCKET_ENCOUNTER
 	moveperson $2, $3, $10
 	appear $2
@@ -224,7 +214,7 @@
 	scall TrainerCameraGrunt1
 	if_equal $1, NoSecurityCamera
 	scall PlaySecurityCameraSounds
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	playmusic MUSIC_ROCKET_ENCOUNTER
 	spriteface $0, RIGHT
 	moveperson $2, $e, $10
@@ -234,13 +224,11 @@
 	if_equal $1, NoSecurityCamera
 	setevent EVENT_SECURITY_CAMERA_5
 	end
-; 0x6c8b8
 
-NoSecurityCamera: ; 0x6c8b8
+NoSecurityCamera:
 	end
-; 0x6c8b9
 
-TrainerCameraGrunt1: ; 0x6c8b9
+TrainerCameraGrunt1:
 	loadfont
 	writetext CameraGrunt1SeenText
 	closetext
@@ -252,9 +240,8 @@
 	disappear $2
 	returnafterbattle
 	end
-; 0x6c8ce
 
-TrainerCameraGrunt2: ; 0x6c8ce
+TrainerCameraGrunt2:
 	loadfont
 	writetext CameraGrunt2SeenText
 	closetext
@@ -266,9 +253,8 @@
 	disappear $2
 	returnafterbattle
 	end
-; 0x6c8e3
 
-PlaySecurityCameraSounds: ; 0x6c8e3
+PlaySecurityCameraSounds:
 	playsound SFX_LICK
 	pause 10
 	playsound SFX_LICK
@@ -281,9 +267,8 @@
 	pause 10
 	playsound SFX_LICK
 	end
-; 0x6c900
 
-ExplodingTrap1: ; 0x6c900
+ExplodingTrap1:
 	checkevent EVENT_EXPLODING_TRAP_1
 	iftrue NoExplodingTrap
 	scall KoffingExplodingTrap
@@ -291,7 +276,7 @@
 	setevent EVENT_EXPLODING_TRAP_1
 	end
 
-ExplodingTrap2: ; 0x6c90e
+ExplodingTrap2:
 	checkevent EVENT_EXPLODING_TRAP_2
 	iftrue NoExplodingTrap
 	scall VoltorbExplodingTrap
@@ -299,7 +284,7 @@
 	setevent EVENT_EXPLODING_TRAP_2
 	end
 
-ExplodingTrap3: ; 0x6c91c
+ExplodingTrap3:
 	checkevent EVENT_EXPLODING_TRAP_3
 	iftrue NoExplodingTrap
 	scall GeodudeExplodingTrap
@@ -307,7 +292,7 @@
 	setevent EVENT_EXPLODING_TRAP_3
 	end
 
-ExplodingTrap4: ; 0x6c92a
+ExplodingTrap4:
 	checkevent EVENT_EXPLODING_TRAP_4
 	iftrue NoExplodingTrap
 	scall VoltorbExplodingTrap
@@ -315,7 +300,7 @@
 	setevent EVENT_EXPLODING_TRAP_4
 	end
 
-ExplodingTrap5: ; 0x6c938
+ExplodingTrap5:
 	checkevent EVENT_EXPLODING_TRAP_5
 	iftrue NoExplodingTrap
 	scall GeodudeExplodingTrap
@@ -323,7 +308,7 @@
 	setevent EVENT_EXPLODING_TRAP_5
 	end
 
-ExplodingTrap6: ; 0x6c946
+ExplodingTrap6:
 	checkevent EVENT_EXPLODING_TRAP_6
 	iftrue NoExplodingTrap
 	scall KoffingExplodingTrap
@@ -331,7 +316,7 @@
 	setevent EVENT_EXPLODING_TRAP_6
 	end
 
-ExplodingTrap7: ; 0x6c954
+ExplodingTrap7:
 	checkevent EVENT_EXPLODING_TRAP_7
 	iftrue NoExplodingTrap
 	scall VoltorbExplodingTrap
@@ -339,7 +324,7 @@
 	setevent EVENT_EXPLODING_TRAP_7
 	end
 
-ExplodingTrap8: ; 0x6c962
+ExplodingTrap8:
 	checkevent EVENT_EXPLODING_TRAP_8
 	iftrue NoExplodingTrap
 	scall KoffingExplodingTrap
@@ -347,7 +332,7 @@
 	setevent EVENT_EXPLODING_TRAP_8
 	end
 
-ExplodingTrap9: ; 0x6c970
+ExplodingTrap9:
 	checkevent EVENT_EXPLODING_TRAP_9
 	iftrue NoExplodingTrap
 	scall KoffingExplodingTrap
@@ -355,7 +340,7 @@
 	setevent EVENT_EXPLODING_TRAP_9
 	end
 
-ExplodingTrap10: ; 0x6c97e
+ExplodingTrap10:
 	checkevent EVENT_EXPLODING_TRAP_10
 	iftrue NoExplodingTrap
 	scall VoltorbExplodingTrap
@@ -363,7 +348,7 @@
 	setevent EVENT_EXPLODING_TRAP_10
 	end
 
-ExplodingTrap11: ; 0x6c98c
+ExplodingTrap11:
 	checkevent EVENT_EXPLODING_TRAP_11
 	iftrue NoExplodingTrap
 	scall GeodudeExplodingTrap
@@ -371,7 +356,7 @@
 	setevent EVENT_EXPLODING_TRAP_11
 	end
 
-ExplodingTrap12: ; 0x6c99a
+ExplodingTrap12:
 	checkevent EVENT_EXPLODING_TRAP_12
 	iftrue NoExplodingTrap
 	scall GeodudeExplodingTrap
@@ -379,7 +364,7 @@
 	setevent EVENT_EXPLODING_TRAP_12
 	end
 
-ExplodingTrap13: ; 0x6c9a8
+ExplodingTrap13:
 	checkevent EVENT_EXPLODING_TRAP_13
 	iftrue NoExplodingTrap
 	scall GeodudeExplodingTrap
@@ -387,7 +372,7 @@
 	setevent EVENT_EXPLODING_TRAP_13
 	end
 
-ExplodingTrap14: ; 0x6c9b6
+ExplodingTrap14:
 	checkevent EVENT_EXPLODING_TRAP_14
 	iftrue NoExplodingTrap
 	scall KoffingExplodingTrap
@@ -395,7 +380,7 @@
 	setevent EVENT_EXPLODING_TRAP_14
 	end
 
-ExplodingTrap15: ; 0x6c9c4
+ExplodingTrap15:
 	checkevent EVENT_EXPLODING_TRAP_15
 	iftrue NoExplodingTrap
 	scall VoltorbExplodingTrap
@@ -403,7 +388,7 @@
 	setevent EVENT_EXPLODING_TRAP_15
 	end
 
-ExplodingTrap16: ; 0x6c9d2
+ExplodingTrap16:
 	checkevent EVENT_EXPLODING_TRAP_16
 	iftrue NoExplodingTrap
 	scall KoffingExplodingTrap
@@ -411,7 +396,7 @@
 	setevent EVENT_EXPLODING_TRAP_16
 	end
 
-ExplodingTrap17: ; 0x6c9e0
+ExplodingTrap17:
 	checkevent EVENT_EXPLODING_TRAP_17
 	iftrue NoExplodingTrap
 	scall VoltorbExplodingTrap
@@ -419,7 +404,7 @@
 	setevent EVENT_EXPLODING_TRAP_17
 	end
 
-ExplodingTrap18: ; 0x6c9ee
+ExplodingTrap18:
 	checkevent EVENT_EXPLODING_TRAP_18
 	iftrue NoExplodingTrap
 	scall GeodudeExplodingTrap
@@ -427,7 +412,7 @@
 	setevent EVENT_EXPLODING_TRAP_18
 	end
 
-ExplodingTrap19: ; 0x6c9fc
+ExplodingTrap19:
 	checkevent EVENT_EXPLODING_TRAP_19
 	iftrue NoExplodingTrap
 	scall GeodudeExplodingTrap
@@ -435,7 +420,7 @@
 	setevent EVENT_EXPLODING_TRAP_19
 	end
 
-ExplodingTrap20: ; 0x6ca0a
+ExplodingTrap20:
 	checkevent EVENT_EXPLODING_TRAP_20
 	iftrue NoExplodingTrap
 	scall VoltorbExplodingTrap
@@ -443,7 +428,7 @@
 	setevent EVENT_EXPLODING_TRAP_20
 	end
 
-ExplodingTrap21: ; 0x6ca18
+ExplodingTrap21:
 	checkevent EVENT_EXPLODING_TRAP_21
 	iftrue NoExplodingTrap
 	scall KoffingExplodingTrap
@@ -451,7 +436,7 @@
 	setevent EVENT_EXPLODING_TRAP_21
 	end
 
-ExplodingTrap22: ; 0x6ca26
+ExplodingTrap22:
 	checkevent EVENT_EXPLODING_TRAP_22
 	iftrue NoExplodingTrap
 	scall VoltorbExplodingTrap
@@ -459,61 +444,43 @@
 	setevent EVENT_EXPLODING_TRAP_22
 	end
 
-VoltorbExplodingTrap: ; 0x6ca34
-	special Function8c084
+VoltorbExplodingTrap:
+	special FadeBlackBGMap
 	cry VOLTORB
-	special Function8c079
+	special FadeInBGMap
 	setlasttalked $ff
-	writecode $3, BATTLETYPE_TRAP
+	writecode VAR_BATTLETYPE, BATTLETYPE_TRAP
 	loadpokedata VOLTORB, 23
 	startbattle
 	end
 
-GeodudeExplodingTrap: ; 0x6ca47
-	special Function8c084
+GeodudeExplodingTrap:
+	special FadeBlackBGMap
 	cry GEODUDE
-	special Function8c079
+	special FadeInBGMap
 	setlasttalked $ff
-	writecode $3, BATTLETYPE_TRAP
+	writecode VAR_BATTLETYPE, BATTLETYPE_TRAP
 	loadpokedata GEODUDE, 21
 	startbattle
 	end
 
-KoffingExplodingTrap: ; 0x6ca5a
-	special Function8c084
+KoffingExplodingTrap:
+	special FadeBlackBGMap
 	cry KOFFING
-	special Function8c079
+	special FadeInBGMap
 	setlasttalked $ff
-	writecode $3, BATTLETYPE_TRAP
+	writecode VAR_BATTLETYPE, BATTLETYPE_TRAP
 	loadpokedata KOFFING, 21
 	startbattle
 	end
 
-NoExplodingTrap: ; 0x6ca6d
+NoExplodingTrap:
 	end
-; 0x6ca6e
 
-TrainerScientistJed: ; 0x6ca6e
-	; bit/flag number
-	dw $4a1
+TrainerScientistJed:
+	trainer EVENT_BEAT_SCIENTIST_JED, SCIENTIST, JED, ScientistJedSeenText, ScientistJedBeatenText, $0000, ScientistJedScript
 
-	; trainer group && trainer id
-	db SCIENTIST, JED
-
-	; text when seen
-	dw ScientistJedSeenText
-
-	; text when trainer beaten
-	dw ScientistJedBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw ScientistJedScript
-; 0x6ca7a
-
-ScientistJedScript: ; 0x6ca7a
+ScientistJedScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x6cc16
@@ -520,29 +487,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x6ca82
 
-TrainerGruntM16: ; 0x6ca82
-	; bit/flag number
-	dw $500
+TrainerGruntM16:
+	trainer EVENT_BEAT_ROCKET_GRUNTM_16, GRUNTM, 16, GruntM16SeenText, GruntM16BeatenText, $0000, GruntM16Script
 
-	; trainer group && trainer id
-	db GRUNTM, 16
-
-	; text when seen
-	dw GruntM16SeenText
-
-	; text when trainer beaten
-	dw GruntM16BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GruntM16Script
-; 0x6ca8e
-
-GruntM16Script: ; 0x6ca8e
+GruntM16Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x6cd1b
@@ -549,17 +498,14 @@
 	closetext
 	loadmovesprites
 	end
-; 0x6ca96
 
-MapTeamRocketBaseB1FSignpost5Script: ; 0x6ca96
+MapTeamRocketBaseB1FSignpost5Script:
 	jumptext SecurityCameraText
-; 0x6ca99
 
-MapTeamRocketBaseB1FSignpost7Script: ; 0x6ca99
+MapTeamRocketBaseB1FSignpost7Script:
 	jumpstd teamrocketoath
-; 0x6ca9c
 
-MapTeamRocketBaseB1FSignpost0Script: ; 0x6ca9c
+MapTeamRocketBaseB1FSignpost0Script:
 	loadfont
 	checkevent EVENT_TURNED_OFF_SECURITY_CAMERAS
 	iftrue UnknownScript_0x6cabe
@@ -574,42 +520,34 @@
 	setevent EVENT_SECURITY_CAMERA_4
 	setevent EVENT_SECURITY_CAMERA_5
 	end
-; 0x6cabe
 
-UnknownScript_0x6cabe: ; 0x6cabe
+UnknownScript_0x6cabe:
 	writetext UnknownText_0x6cdd0
 	closetext
 	loadmovesprites
 	end
-; 0x6cac4
 
-ItemFragment_0x6cac4: ; 0x6cac4
+ItemFragment_0x6cac4:
 	db HYPER_POTION, 1
-; 0x6cac6
 
-ItemFragment_0x6cac6: ; 0x6cac6
+ItemFragment_0x6cac6:
 	db NUGGET, 1
-; 0x6cac8
 
-ItemFragment_0x6cac8: ; 0x6cac8
+ItemFragment_0x6cac8:
 	db GUARD_SPEC, 1
-; 0x6caca
 
-MapTeamRocketBaseB1FSignpostItem8: ; 0x6caca
-	dw $0086
-	db REVIVE
+MapTeamRocketBaseB1FSignpostItem8:
+	dwb EVENT_TEAM_ROCKET_BASE_B1F_HIDDEN_REVIVE, REVIVE
 	
-; 0x6cacd
 
-SecurityCameraMovement1: ; 0x6cacd
+SecurityCameraMovement1:
 	big_step_right
 	big_step_right
 	big_step_right
 	big_step_right
 	step_end
-; 0x6cad2
 
-SecurityCameraMovement2: ; 0x6cad2
+SecurityCameraMovement2:
 	big_step_up
 	big_step_right
 	big_step_up
@@ -618,9 +556,8 @@
 	big_step_up
 	turn_head_right
 	step_end
-; 0x6cada
 
-SecurityCameraMovement3: ; 0x6cada
+SecurityCameraMovement3:
 	big_step_left
 	big_step_left
 	big_step_left
@@ -630,9 +567,8 @@
 	big_step_left
 	big_step_left
 	step_end
-; 0x6cae3
 
-SecurityCameraMovement4: ; 0x6cae3
+SecurityCameraMovement4:
 ; he jumps over a trap
 	jump_step_up
 	big_step_right
@@ -641,9 +577,8 @@
 	big_step_up
 	turn_head_right
 	step_end
-; 0x6caea
 
-SecurityCameraMovement5: ; 0x6caea
+SecurityCameraMovement5:
 	big_step_left
 	big_step_left
 	big_step_left
@@ -652,9 +587,8 @@
 	big_step_left
 	big_step_left
 	step_end
-; 0x6caf2
 
-SecurityCameraMovement6: ; 0x6caf2
+SecurityCameraMovement6:
 	big_step_up
 	big_step_up
 	big_step_right
@@ -663,9 +597,8 @@
 	big_step_up
 	big_step_left
 	step_end
-; 0x6cafa
 
-SecurityCameraMovement7: ; 0x6cafa
+SecurityCameraMovement7:
 	big_step_up
 	big_step_up
 	big_step_up
@@ -674,9 +607,8 @@
 	big_step_up
 	big_step_left
 	step_end
-; 0x6cb02
 
-SecurityCameraMovement8: ; 0x6cb02
+SecurityCameraMovement8:
 	big_step_down
 	big_step_down
 	big_step_right
@@ -687,9 +619,8 @@
 	big_step_left
 	big_step_left
 	step_end
-; 0x6cb0c
 
-SecurityCameraMovement9: ; 0x6cb0c
+SecurityCameraMovement9:
 	big_step_left
 	big_step_left
 	big_step_left
@@ -696,26 +627,22 @@
 	big_step_left
 	big_step_left
 	step_end
-; 0x6cb12
 
-CameraGrunt1SeenText: ; 0x6cb12
+CameraGrunt1SeenText:
 	text "Hey!"
 	line "Intruder alert!"
 	done
-; 0x6cb28
 
-CameraGrunt1BeatenText: ; 0x6cb28
+CameraGrunt1BeatenText:
 	text "Dang… I failed…"
 	done
-; 0x6cb39
 
-CameraGrunt2SeenText: ; 0x6cb39
+CameraGrunt2SeenText:
 	text "It's my turn!"
 	line "There's no escape!"
 	done
-; 0x6cb59
 
-CameraGrunt2BeatenText: ; 0x6cb59
+CameraGrunt2BeatenText:
 	text "Surveillance cams"
 	line "are in the #MON"
 	cont "statues."
@@ -724,9 +651,8 @@
 	line "ing until you trip"
 	cont "a secret switch."
 	done
-; 0x6cbbb
 
-ScientistJedSeenText: ; 0x6cbbb
+ScientistJedSeenText:
 	text "This was once a"
 	line "ninja hideout."
 
@@ -734,14 +660,12 @@
 	line "confound intruders"
 	cont "like you."
 	done
-; 0x6cc0b
 
-ScientistJedBeatenText: ; 0x6cc0b
+ScientistJedBeatenText:
 	text "I get it…"
 	done
-; 0x6cc16
 
-UnknownText_0x6cc16: ; 0x6cc16
+UnknownText_0x6cc16:
 	text "All right. I'll"
 	line "divulge a secret"
 	cont "about our hideout."
@@ -756,9 +680,8 @@
 	para "back to the en-"
 	line "trance."
 	done
-; 0x6ccb7
 
-GruntM16SeenText: ; 0x6ccb7
+GruntM16SeenText:
 	text "Heheh. Feeling"
 	line "lucky, punk?"
 
@@ -768,14 +691,12 @@
 	para "We've got traps"
 	line "set in the floor!"
 	done
-; 0x6cd12
 
-GruntM16BeatenText: ; 0x6cd12
+GruntM16BeatenText:
 	text "Kaboom!"
 	done
-; 0x6cd1b
 
-UnknownText_0x6cd1b: ; 0x6cd1b
+UnknownText_0x6cd1b:
 	text "I don't even know"
 	line "where the traps"
 	cont "are planted."
@@ -784,9 +705,8 @@
 	line "to collect your"
 	cont "courage and walk."
 	done
-; 0x6cd7c
 
-SecurityCameraText: ; 0x6cd7c
+SecurityCameraText:
 	text "It's a PERSIAN"
 	line "statue…"
 
@@ -793,25 +713,22 @@
 	para "Its eyes are oddly"
 	line "shiny."
 	done
-; 0x6cdad
 
-UnknownText_0x6cdad: ; 0x6cdad
+UnknownText_0x6cdad:
 	text "A secret switch!"
 	line "Better press it."
 	done
-; 0x6cdd0
 
-UnknownText_0x6cdd0: ; 0x6cdd0
+UnknownText_0x6cdd0:
 	text "The switch is"
 	line "turned off."
 	done
-; 0x6cdeb
 
-TeamRocketBaseB1F_MapEventHeader: ; 0x6cdeb
+TeamRocketBaseB1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -818,7 +735,7 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 30
 	; There are five security cameras in the base.
 	; Walking in front of one triggers two Rocket Grunts.
@@ -855,24 +772,23 @@
 	xy_trigger 0, $d, $4, $0, ExplodingTrap21, $0, $0
 	xy_trigger 0, $d, $5, $0, ExplodingTrap22, $0, $0
 
-	; signposts
+.Signposts:
 	db 9
-	signpost 11, 19, $0, MapTeamRocketBaseB1FSignpost0Script
-	signpost 1, 24, $1, MapTeamRocketBaseB1FSignpost5Script
-	signpost 1, 6, $1, MapTeamRocketBaseB1FSignpost5Script
-	signpost 15, 8, $1, MapTeamRocketBaseB1FSignpost5Script
-	signpost 15, 22, $1, MapTeamRocketBaseB1FSignpost5Script
-	signpost 5, 24, $1, MapTeamRocketBaseB1FSignpost5Script
-	signpost 11, 20, $0, MapTeamRocketBaseB1FSignpost7Script
-	signpost 11, 21, $0, MapTeamRocketBaseB1FSignpost7Script
-	signpost 11, 3, $7, MapTeamRocketBaseB1FSignpostItem8
+	signpost 11, 19, SIGNPOST_READ, MapTeamRocketBaseB1FSignpost0Script
+	signpost 1, 24, SIGNPOST_UP, MapTeamRocketBaseB1FSignpost5Script
+	signpost 1, 6, SIGNPOST_UP, MapTeamRocketBaseB1FSignpost5Script
+	signpost 15, 8, SIGNPOST_UP, MapTeamRocketBaseB1FSignpost5Script
+	signpost 15, 22, SIGNPOST_UP, MapTeamRocketBaseB1FSignpost5Script
+	signpost 5, 24, SIGNPOST_UP, MapTeamRocketBaseB1FSignpost5Script
+	signpost 11, 20, SIGNPOST_READ, MapTeamRocketBaseB1FSignpost7Script
+	signpost 11, 21, SIGNPOST_READ, MapTeamRocketBaseB1FSignpost7Script
+	signpost 11, 3, SIGNPOST_ITEM, MapTeamRocketBaseB1FSignpostItem8
 
-	; people-events
+.PersonEvents:
 	db 6
-	person_event SPRITE_ROCKET, 4, 4, $6, $0, 255, 255, $0, 0, ObjectEvent, $06d9
-	person_event SPRITE_ROCKET, 8, 6, $9, $0, 255, 255, $2, 3, TrainerGruntM16, $06da
-	person_event SPRITE_SCIENTIST, 16, 22, $8, $0, 255, 255, $92, 3, TrainerScientistJed, $06da
-	person_event SPRITE_POKE_BALL, 10, 31, $1, $0, 255, 255, $1, 0, ItemFragment_0x6cac4, $0669
-	person_event SPRITE_POKE_BALL, 19, 18, $1, $0, 255, 255, $1, 0, ItemFragment_0x6cac6, $066a
-	person_event SPRITE_POKE_BALL, 16, 25, $1, $0, 255, 255, $1, 0, ItemFragment_0x6cac8, $066b
-; 0x6cf70
+	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
--- a/maps/TeamRocketBaseB2F.asm
+++ b/maps/TeamRocketBaseB2F.asm
@@ -1,5 +1,5 @@
-TeamRocketBaseB2F_MapScriptHeader: ; 0x6cf70
-	; trigger count
+TeamRocketBaseB2F_MapScriptHeader:
+.MapTriggers:
 	db 4
 
 	; triggers
@@ -8,52 +8,44 @@
 	dw UnknownScript_0x6cf87, $0000
 	dw UnknownScript_0x6cf88, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 1, UnknownScript_0x6cf89
-; 0x6cf85
 
-UnknownScript_0x6cf85: ; 0x6cf85
+UnknownScript_0x6cf85:
 	end
-; 0x6cf86
 
-UnknownScript_0x6cf86: ; 0x6cf86
+UnknownScript_0x6cf86:
 	end
-; 0x6cf87
 
-UnknownScript_0x6cf87: ; 0x6cf87
+UnknownScript_0x6cf87:
 	end
-; 0x6cf88
 
-UnknownScript_0x6cf88: ; 0x6cf88
+UnknownScript_0x6cf88:
 	end
-; 0x6cf89
 
-UnknownScript_0x6cf89: ; 0x6cf89
+UnknownScript_0x6cf89:
 	checkevent EVENT_OPENED_DOOR_TO_ROCKET_HIDEOUT_TRANSMITTER
 	iftrue UnknownScript_0x6cf90
 	return
-; 0x6cf90
 
-UnknownScript_0x6cf90: ; 0x6cf90
+UnknownScript_0x6cf90:
 	changeblock $e, $c, $7
 	return
-; 0x6cf95
 
-UnknownScript_0x6cf95: ; 0x6cf95
+UnknownScript_0x6cf95:
 	moveperson $4, $9, $d
 	jump UnknownScript_0x6cfac
-; 0x6cf9c
 
-UnknownScript_0x6cf9c: ; 0x6cf9c
+UnknownScript_0x6cf9c:
 	moveperson $3, $15, $10
 	moveperson $2, $15, $10
 	moveperson $5, $a, $d
 	moveperson $4, $a, $d
-UnknownScript_0x6cfac: ; 0x6cfac
+UnknownScript_0x6cfac:
 	appear $3
 	appear $2
 	loadfont
@@ -61,7 +53,7 @@
 	closetext
 	loadmovesprites
 	spriteface $0, DOWN
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	applymovement $0, MovementData_0x6d21f
 	playmusic MUSIC_ROCKET_ENCOUNTER
 	applymovement $3, MovementData_0x6d224
@@ -97,17 +89,17 @@
 	loadtrainer EXECUTIVEF, 2
 	startbattle
 	disappear $5
-	setevent $06dd
-	setevent $06de
-	setevent $06d6
+	setevent EVENT_TEAM_ROCKET_BASE_B2F_EXECUTIVE
+	setevent EVENT_TEAM_ROCKET_BASE_B2F_GRUNT_WITH_EXECUTIVE
+	setevent EVENT_TEAM_ROCKET_BASE_B2F_LANCE
 	returnafterbattle
-	setevent $0570
+	setevent EVENT_BEAT_ROCKET_EXECUTIVEF_2
 	loadfont
 	writetext UnknownText_0x6d4c6
 	closetext
 	loadmovesprites
-	special Function8c0b6
-	special Functiond91
+	special Special_FadeBlackQuickly
+	special Special_ReloadSpritesNoPalettes
 	disappear $2
 	disappear $3
 	disappear $c
@@ -114,9 +106,9 @@
 	disappear $d
 	disappear $e
 	pause 15
-	special Function8c0ab
+	special Special_FadeInQuickly
 	dotrigger $2
-	clearevent $06d6
+	clearevent EVENT_TEAM_ROCKET_BASE_B2F_LANCE
 	spriteface $4, DOWN
 	loadfont
 	writetext UnknownText_0x6d5d8
@@ -138,14 +130,12 @@
 	loadmovesprites
 	applymovement $4, MovementData_0x6d267
 	disappear $4
-; 0x6d075
 
-UnknownScript_0x6d075: ; 0x6d075
+UnknownScript_0x6d075:
 	applymovement $0, MovementData_0x6d271
 	end
-; 0x6d07a
 
-UnknownScript_0x6d07a: ; 0x6d07a
+UnknownScript_0x6d07a:
 	loadfont
 	writetext UnknownText_0x6d7ea
 	closetext
@@ -152,66 +142,45 @@
 	loadmovesprites
 	applymovement $0, MovementData_0x6d278
 	end
-; 0x6d085
 
-UnknownScript_0x6d085: ; 0x6d085
+UnknownScript_0x6d085:
 	spriteface $0, UP
 	jump UnknownScript_0x6d091
-; 0x6d08b
 
-UnknownScript_0x6d08b: ; 0x6d08b
+UnknownScript_0x6d08b:
 	spriteface $0, RIGHT
 	spriteface $4, LEFT
-UnknownScript_0x6d091: ; 0x6d091
+UnknownScript_0x6d091:
 	loadfont
 	writetext UnknownText_0x6da97
 	closetext
 	loadmovesprites
-	special Function8c084
-	special Function1060a2
+	special FadeBlackBGMap
+	special Mobile_HealParty
 	playsound SFX_FULL_HEAL
 	special HealParty
-	special Function8c079
+	special FadeInBGMap
 	loadfont
 	writetext UnknownText_0x6daf7
 	closetext
 	loadmovesprites
 	dotrigger $1
-	setevent $004c
-	checkcode $9
-	if_equal $3, UnknownScript_0x6d0be
+	setevent EVENT_LANCE_HEALED_YOU_IN_TEAM_ROCKET_BASE
+	checkcode VAR_FACING
+	if_equal RIGHT, UnknownScript_0x6d0be
 	applymovement $4, MovementData_0x6d212
 	disappear $4
 	end
-; 0x6d0be
 
-UnknownScript_0x6d0be: ; 0x6d0be
+UnknownScript_0x6d0be:
 	applymovement $4, MovementData_0x6d219
 	disappear $4
 	end
-; 0x6d0c5
 
-TrainerGruntM17: ; 0x6d0c5
-	; bit/flag number
-	dw $501
+TrainerGruntM17:
+	trainer EVENT_BEAT_ROCKET_GRUNTM_17, GRUNTM, 17, GruntM17SeenText, GruntM17BeatenText, $0000, GruntM17Script
 
-	; trainer group && trainer id
-	db GRUNTM, 17
-
-	; text when seen
-	dw GruntM17SeenText
-
-	; text when trainer beaten
-	dw GruntM17BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GruntM17Script
-; 0x6d0d1
-
-GruntM17Script: ; 0x6d0d1
+GruntM17Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x6db88
@@ -218,29 +187,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x6d0d9
 
-TrainerGruntM18: ; 0x6d0d9
-	; bit/flag number
-	dw $502
+TrainerGruntM18:
+	trainer EVENT_BEAT_ROCKET_GRUNTM_18, GRUNTM, 18, GruntM18SeenText, GruntM18BeatenText, $0000, GruntM18Script
 
-	; trainer group && trainer id
-	db GRUNTM, 18
-
-	; text when seen
-	dw GruntM18SeenText
-
-	; text when trainer beaten
-	dw GruntM18BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GruntM18Script
-; 0x6d0e5
-
-GruntM18Script: ; 0x6d0e5
+GruntM18Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x6dc1a
@@ -247,29 +198,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x6d0ed
 
-TrainerGruntM19: ; 0x6d0ed
-	; bit/flag number
-	dw $503
+TrainerGruntM19:
+	trainer EVENT_BEAT_ROCKET_GRUNTM_19, GRUNTM, 19, GruntM19SeenText, GruntM19BeatenText, $0000, GruntM19Script
 
-	; trainer group && trainer id
-	db GRUNTM, 19
-
-	; text when seen
-	dw GruntM19SeenText
-
-	; text when trainer beaten
-	dw GruntM19BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GruntM19Script
-; 0x6d0f9
-
-GruntM19Script: ; 0x6d0f9
+GruntM19Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x6dcd1
@@ -276,9 +209,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x6d101
 
-VoltorbScript_0x6d101: ; 0x6d101
+VoltorbScript_0x6d101:
 	cry ELECTRODE
 	loadpokedata ELECTRODE, 23
 	startbattle
@@ -285,19 +217,18 @@
 	iftrue UnknownScript_0x6d182
 	disappear $6
 	disappear $9
-	checkevent $06e0
+	checkevent EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_1
 	iffalse UnknownScript_0x6d182
-	checkevent $06e1
+	checkevent EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_2
 	iffalse UnknownScript_0x6d182
-	checkevent $06e2
+	checkevent EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_3
 	iffalse UnknownScript_0x6d182
 	returnafterbattle
 	special PlayMapMusic
 	applymovement $0, MovementData_0x6d28c
 	jump UnknownScript_0x6d184
-; 0x6d12c
 
-VoltorbScript_0x6d12c: ; 0x6d12c
+VoltorbScript_0x6d12c:
 	cry ELECTRODE
 	loadpokedata ELECTRODE, 23
 	startbattle
@@ -304,19 +235,18 @@
 	iftrue UnknownScript_0x6d182
 	disappear $7
 	disappear $a
-	checkevent $06e0
+	checkevent EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_1
 	iffalse UnknownScript_0x6d182
-	checkevent $06e1
+	checkevent EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_2
 	iffalse UnknownScript_0x6d182
-	checkevent $06e2
+	checkevent EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_3
 	iffalse UnknownScript_0x6d182
 	returnafterbattle
 	special PlayMapMusic
 	applymovement $0, MovementData_0x6d299
 	jump UnknownScript_0x6d184
-; 0x6d157
 
-VoltorbScript_0x6d157: ; 0x6d157
+VoltorbScript_0x6d157:
 	cry ELECTRODE
 	loadpokedata ELECTRODE, 23
 	startbattle
@@ -323,24 +253,22 @@
 	iftrue UnknownScript_0x6d182
 	disappear $8
 	disappear $b
-	checkevent $06e0
+	checkevent EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_1
 	iffalse UnknownScript_0x6d182
-	checkevent $06e1
+	checkevent EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_2
 	iffalse UnknownScript_0x6d182
-	checkevent $06e2
+	checkevent EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_3
 	iffalse UnknownScript_0x6d182
 	returnafterbattle
 	special PlayMapMusic
 	applymovement $0, MovementData_0x6d2a4
 	jump UnknownScript_0x6d184
-; 0x6d182
 
-UnknownScript_0x6d182: ; 0x6d182
+UnknownScript_0x6d182:
 	returnafterbattle
 	end
-; 0x6d184
 
-UnknownScript_0x6d184: ; 0x6d184
+UnknownScript_0x6d184:
 	moveperson $4, $12, $6
 	appear $4
 	applymovement $4, MovementData_0x6d27a
@@ -348,7 +276,7 @@
 	loadfont
 	writetext UnknownText_0x6d809
 	keeptextopen
-	verbosegiveitem HM_06, 1
+	verbosegiveitem HM_WHIRLPOOL, 1
 	setevent EVENT_GOT_HM06_WHIRLPOOL
 	writetext UnknownText_0x6d8f8
 	closetext
@@ -362,11 +290,11 @@
 	applymovement $4, MovementData_0x6d283
 	disappear $4
 	setevent EVENT_CLEARED_ROCKET_HIDEOUT
-	clearflag $000e
-	setevent $06dc
-	setevent $0757
+	clearflag ENGINE_ROCKET_SIGNAL_ON_CH20
+	setevent EVENT_ROUTE_43_GATE_ROCKETS
+	setevent EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_GYM
 	dotrigger $3
-	clearevent $0735
+	clearevent EVENT_LAKE_OF_RAGE_CIVILIANS
 	setevent EVENT_TURNED_OFF_SECURITY_CAMERAS
 	setevent EVENT_SECURITY_CAMERA_1
 	setevent EVENT_SECURITY_CAMERA_2
@@ -374,15 +302,13 @@
 	setevent EVENT_SECURITY_CAMERA_4
 	setevent EVENT_SECURITY_CAMERA_5
 	end
-; 0x6d1d7
 
-MapTeamRocketBaseB2FSignpostPtr1: ; 0x6d1d7
-	dw $0300
+MapTeamRocketBaseB2FSignpostPtr1:
+	dw EVENT_OPENED_DOOR_TO_ROCKET_HIDEOUT_TRANSMITTER
 	dw MapTeamRocketBaseB2FSignpost1Script
 	
-; 0x6d1db
 
-MapTeamRocketBaseB2FSignpost1Script: ; 0x6d1db
+MapTeamRocketBaseB2FSignpost1Script:
 	loadfont
 	checkevent EVENT_LEARNED_HAIL_GIOVANNI
 	iftrue UnknownScript_0x6d1e8
@@ -390,9 +316,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x6d1e8
 
-UnknownScript_0x6d1e8: ; 0x6d1e8
+UnknownScript_0x6d1e8:
 	writetext UnknownText_0x6dd6b
 	closetext
 	playsound SFX_ENTER_DOOR
@@ -402,9 +327,8 @@
 	setevent EVENT_OPENED_DOOR_TO_ROCKET_HIDEOUT_TRANSMITTER
 	waitbutton
 	end
-; 0x6d1fa
 
-MapTeamRocketBaseB2FSignpost21Script: ; 0x6d1fa
+MapTeamRocketBaseB2FSignpost21Script:
 	loadfont
 	checkevent EVENT_CLEARED_ROCKET_HIDEOUT
 	iftrue UnknownScript_0x6d207
@@ -412,26 +336,21 @@
 	closetext
 	loadmovesprites
 	end
-; 0x6d207
 
-UnknownScript_0x6d207: ; 0x6d207
+UnknownScript_0x6d207:
 	writetext UnknownText_0x6de03
 	closetext
 	loadmovesprites
 	end
-; 0x6d20d
 
-ItemFragment_0x6d20d: ; 0x6d20d
-	db TM_46, 1
-; 0x6d20f
+ItemFragment_0x6d20d:
+	db TM_THIEF, 1
 
-MapTeamRocketBaseB2FSignpostItem22: ; 0x6d20f
-	dw $0087
-	db FULL_HEAL
+MapTeamRocketBaseB2FSignpostItem22:
+	dwb EVENT_TEAM_ROCKET_BASE_B2F_HIDDEN_FULL_HEAL, FULL_HEAL
 	
-; 0x6d212
 
-MovementData_0x6d212: ; 0x6d212
+MovementData_0x6d212:
 	step_right
 	step_right
 	step_right
@@ -439,9 +358,8 @@
 	step_right
 	step_right
 	step_end
-; 0x6d219
 
-MovementData_0x6d219: ; 0x6d219
+MovementData_0x6d219:
 	step_right
 	step_right
 	step_right
@@ -448,17 +366,15 @@
 	step_right
 	step_right
 	step_end
-; 0x6d21f
 
-MovementData_0x6d21f: ; 0x6d21f
+MovementData_0x6d21f:
 	step_down
 	step_down
 	step_down
 	turn_head_right
 	step_end
-; 0x6d224
 
-MovementData_0x6d224: ; 0x6d224
+MovementData_0x6d224:
 	big_step_left
 	big_step_left
 	big_step_up
@@ -470,9 +386,8 @@
 	big_step_left
 	turn_head_down
 	step_end
-; 0x6d22f
 
-MovementData_0x6d22f: ; 0x6d22f
+MovementData_0x6d22f:
 	big_step_left
 	big_step_left
 	big_step_up
@@ -480,17 +395,15 @@
 	big_step_left
 	big_step_left
 	step_end
-; 0x6d236
 
-MovementData_0x6d236: ; 0x6d236
+MovementData_0x6d236:
 	big_step_right
 	big_step_right
 	big_step_right
 	big_step_right
 	step_end
-; 0x6d23b
 
-MovementData_0x6d23b: ; 0x6d23b
+MovementData_0x6d23b:
 	fix_facing
 	db $39 ; movement
 	jump_step_right
@@ -497,53 +410,45 @@
 	db $38 ; movement
 	remove_fixed_facing
 	step_end
-; 0x6d241
 
-MovementData_0x6d241: ; 0x6d241
+MovementData_0x6d241:
 	slow_step_down
 	turn_head_left
 	step_end
-; 0x6d244
 
-MovementData_0x6d244: ; 0x6d244
+MovementData_0x6d244:
 	step_right
 	step_right
 	step_right
 	step_end
-; 0x6d248
 
-MovementData_0x6d248: ; 0x6d248
+MovementData_0x6d248:
 	big_step_left
 	step_end
-; 0x6d24a
 
-MovementData_0x6d24a: ; 0x6d24a
+MovementData_0x6d24a:
 	big_step_left
 	step_end
-; 0x6d24c
 
-MovementData_0x6d24c: ; 0x6d24c
+MovementData_0x6d24c:
 	big_step_left
 	big_step_up
 	turn_head_left
 	step_end
-; 0x6d250
 
-MovementData_0x6d250: ; 0x6d250
+MovementData_0x6d250:
 	step_right
 	step_right
 	turn_head_down
 	step_end
-; 0x6d254
 
-MovementData_0x6d254: ; 0x6d254
+MovementData_0x6d254:
 	step_up
 	step_up
 	step_up
 	step_end
-; 0x6d258
 
-MovementData_0x6d258: ; 0x6d258
+MovementData_0x6d258:
 	accelerate_last
 	step_left
 	step_left
@@ -559,9 +464,8 @@
 	step_left
 	turn_head_down
 	step_end
-; 0x6d267
 
-MovementData_0x6d267: ; 0x6d267
+MovementData_0x6d267:
 	step_right
 	step_right
 	step_right
@@ -572,9 +476,8 @@
 	step_up
 	step_up
 	step_end
-; 0x6d271
 
-MovementData_0x6d271: ; 0x6d271
+MovementData_0x6d271:
 	step_up
 	step_left
 	step_left
@@ -582,14 +485,12 @@
 	step_left
 	turn_head_up
 	step_end
-; 0x6d278
 
-MovementData_0x6d278: ; 0x6d278
+MovementData_0x6d278:
 	step_left
 	step_end
-; 0x6d27a
 
-MovementData_0x6d27a: ; 0x6d27a
+MovementData_0x6d27a:
 	step_down
 	step_down
 	step_down
@@ -599,9 +500,8 @@
 	step_left
 	step_left
 	step_end
-; 0x6d283
 
-MovementData_0x6d283: ; 0x6d283
+MovementData_0x6d283:
 	step_down
 	step_down
 	step_left
@@ -611,9 +511,8 @@
 	step_left
 	step_left
 	step_end
-; 0x6d28c
 
-MovementData_0x6d28c: ; 0x6d28c
+MovementData_0x6d28c:
 	step_right
 	step_right
 	step_down
@@ -627,9 +526,8 @@
 	step_right
 	step_right
 	step_end
-; 0x6d299
 
-MovementData_0x6d299: ; 0x6d299
+MovementData_0x6d299:
 	step_right
 	step_right
 	step_down
@@ -641,9 +539,8 @@
 	step_right
 	step_right
 	step_end
-; 0x6d2a4
 
-MovementData_0x6d2a4: ; 0x6d2a4
+MovementData_0x6d2a4:
 	step_right
 	step_right
 	step_down
@@ -653,15 +550,13 @@
 	step_right
 	step_right
 	step_end
-; 0x6d2ad
 
-UnknownText_0x6d2ad: ; 0x6d2ad
+UnknownText_0x6d2ad:
 	text "Hold it right"
 	line "there!"
 	done
-; 0x6d2c3
 
-UnknownText_0x6d2c3: ; 0x6d2c3
+UnknownText_0x6d2c3:
 	text "We can't have a"
 	line "brat like you on"
 	cont "the loose."
@@ -680,16 +575,14 @@
 	line "get ready to be"
 	cont "thrashed."
 	done
-; 0x6d38c
 
-UnknownText_0x6d38c: ; 0x6d38c
+UnknownText_0x6d38c:
 	text "Hey! Don't be so"
 	line "selfish. Spread"
 	cont "the fun around."
 	done
-; 0x6d3bd
 
-UnknownText_0x6d3bd: ; 0x6d3bd
+UnknownText_0x6d3bd:
 	text "What? You had an"
 	line "accomplice?"
 
@@ -705,9 +598,8 @@
 	para "it is to meddle"
 	line "with TEAM ROCKET!"
 	done
-; 0x6d45c
 
-UnknownText_0x6d45c: ; 0x6d45c
+UnknownText_0x6d45c:
 	text "Tch, you really"
 	line "are strong."
 
@@ -719,9 +611,8 @@
 	para "you could become"
 	line "an EXECUTIVE."
 	done
-; 0x6d4c6
 
-UnknownText_0x6d4c6: ; 0x6d4c6
+UnknownText_0x6d4c6:
 	text "…This hideout is"
 	line "done for…"
 
@@ -748,9 +639,8 @@
 
 	para "Fufufufu…"
 	done
-; 0x6d5d8
 
-UnknownText_0x6d5d8: ; 0x6d5d8
+UnknownText_0x6d5d8:
 	text "LANCE: That did"
 	line "it. We defeated"
 
@@ -763,9 +653,8 @@
 	para "guy I battled in"
 	line "the process…"
 	done
-; 0x6d64e
 
-UnknownText_0x6d64e: ; 0x6d64e
+UnknownText_0x6d64e:
 	text "Sorry, <PLAY_G>."
 	line "I saw how well you"
 
@@ -778,9 +667,8 @@
 	para "turn off that odd"
 	line "radio signal."
 	done
-; 0x6d6cf
 
-UnknownText_0x6d6cf: ; 0x6d6cf
+UnknownText_0x6d6cf:
 	text "It's this machine"
 	line "that's causing all"
 	cont "the problems."
@@ -809,15 +697,13 @@
 	para "<PLAY_G>, let's"
 	line "split the job."
 	done
-; 0x6d7ea
 
-UnknownText_0x6d7ea: ; 0x6d7ea
+UnknownText_0x6d7ea:
 	text "LANCE: Leave this"
 	line "side to me."
 	done
-; 0x6d809
 
-UnknownText_0x6d809: ; 0x6d809
+UnknownText_0x6d809:
 	text "LANCE: That odd"
 	line "signal has finally"
 	cont "stopped."
@@ -838,15 +724,13 @@
 	line "but I don't have"
 	cont "any need for it."
 	done
-; 0x6d8e6
 
-UnknownText_0x6d8e6: ; 0x6d8e6
+UnknownText_0x6d8e6:
 	text "<PLAYER> received"
 	line "HM06."
 	done
-; 0x6d8f8
 
-UnknownText_0x6d8f8: ; 0x6d8f8
+UnknownText_0x6d8f8:
 	text "That's WHIRLPOOL."
 	line "Teach it to a"
 
@@ -862,9 +746,8 @@
 	para "with the BADGE"
 	line "from MAHOGANY GYM."
 	done
-; 0x6d994
 
-UnknownText_0x6d994: ; 0x6d994
+UnknownText_0x6d994:
 	text "<PLAY_G>…"
 
 	para "The journey to be-"
@@ -893,9 +776,8 @@
 	para "I look forward to"
 	line "seeing you again!"
 	done
-; 0x6da97
 
-UnknownText_0x6da97: ; 0x6da97
+UnknownText_0x6da97:
 	text "LANCE: Are you all"
 	line "right?"
 
@@ -906,16 +788,14 @@
 	line "some of my medi-"
 	cont "cine."
 	done
-; 0x6daf7
 
-UnknownText_0x6daf7: ; 0x6daf7
+UnknownText_0x6daf7:
 	text "LANCE: <PLAY_G>,"
 	line "let's give it our"
 	cont "best for #MON."
 	done
-; 0x6db22
 
-GruntM17SeenText: ; 0x6db22
+GruntM17SeenText:
 	text "The door won't"
 	line "open?"
 
@@ -925,14 +805,12 @@
 	para "password that only"
 	line "TEAM ROCKET knows."
 	done
-; 0x6db79
 
-GruntM17BeatenText: ; 0x6db79
+GruntM17BeatenText:
 	text "What? I lost?"
 	done
-; 0x6db88
 
-UnknownText_0x6db88: ; 0x6db88
+UnknownText_0x6db88:
 	text "Heh, I'm just a"
 	line "GRUNT."
 
@@ -940,9 +818,8 @@
 	line "password. Too bad"
 	cont "for you."
 	done
-; 0x6dbca
 
-GruntM18SeenText: ; 0x6dbca
+GruntM18SeenText:
 	text "Oh, a kid? I don't"
 	line "really like this,"
 
@@ -949,14 +826,12 @@
 	para "but eliminate you"
 	line "I must."
 	done
-; 0x6dc09
 
-GruntM18BeatenText: ; 0x6dc09
+GruntM18BeatenText:
 	text "I knew I'd lose…"
 	done
-; 0x6dc1a
 
-UnknownText_0x6dc1a: ; 0x6dc1a
+UnknownText_0x6dc1a:
 	text "I got wiped out on"
 	line "the last mission"
 	cont "by a kid too."
@@ -970,20 +845,17 @@
 	para "looking eyes just"
 	line "creamed me…"
 	done
-; 0x6dcb0
 
-GruntM19SeenText: ; 0x6dcb0
+GruntM19SeenText:
 	text "You rotten little"
 	line "pest!"
 	done
-; 0x6dcc9
 
-GruntM19BeatenText: ; 0x6dcc9
+GruntM19BeatenText:
 	text "Grrrr…"
 	done
-; 0x6dcd1
 
-UnknownText_0x6dcd1: ; 0x6dcd1
+UnknownText_0x6dcd1:
 	text "Heh, only the boss"
 	line "knows the password"
 	cont "for that door."
@@ -992,17 +864,15 @@
 	line "Who knows? Go look"
 	cont "for yourself."
 	done
-; 0x6dd39
 
-UnknownText_0x6dd39: ; 0x6dd39
+UnknownText_0x6dd39:
 	text "The door's closed…"
 
 	para "It needs a pass-"
 	line "word to open."
 	done
-; 0x6dd6b
 
-UnknownText_0x6dd6b: ; 0x6dd6b
+UnknownText_0x6dd6b:
 	text "The door's closed…"
 
 	para "<PLAYER> entered"
@@ -1010,9 +880,8 @@
 
 	para "The door opened!"
 	done
-; 0x6dda7
 
-UnknownText_0x6dda7: ; 0x6dda7
+UnknownText_0x6dda7:
 	text "It's the radio"
 	line "transmitter that's"
 
@@ -1022,9 +891,8 @@
 	para "It's working at"
 	line "full capacity."
 	done
-; 0x6de03
 
-UnknownText_0x6de03: ; 0x6de03
+UnknownText_0x6de03:
 	text "The radio trans-"
 	line "mitter has finally"
 
@@ -1031,13 +899,12 @@
 	para "stopped its evil"
 	line "broadcast."
 	done
-; 0x6de44
 
-TeamRocketBaseB2F_MapEventHeader: ; 0x6de44
+TeamRocketBaseB2F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -1045,7 +912,7 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 9
 	xy_trigger 0, $e, $5, $0, UnknownScript_0x6d085, $0, $0
 	xy_trigger 0, $d, $4, $0, UnknownScript_0x6d08b, $0, $0
@@ -1057,46 +924,45 @@
 	xy_trigger 2, $a, $c, $0, UnknownScript_0x6d07a, $0, $0
 	xy_trigger 2, $b, $c, $0, UnknownScript_0x6d07a, $0, $0
 
-	; signposts
+.Signposts:
 	db 23
-	signpost 12, 14, $6, MapTeamRocketBaseB2FSignpostPtr1
-	signpost 12, 15, $6, MapTeamRocketBaseB2FSignpostPtr1
-	signpost 9, 17, $0, MapTeamRocketBaseB2FSignpost21Script
-	signpost 9, 16, $0, MapTeamRocketBaseB2FSignpost21Script
-	signpost 9, 15, $0, MapTeamRocketBaseB2FSignpost21Script
-	signpost 9, 14, $0, MapTeamRocketBaseB2FSignpost21Script
-	signpost 9, 13, $0, MapTeamRocketBaseB2FSignpost21Script
-	signpost 9, 12, $0, MapTeamRocketBaseB2FSignpost21Script
-	signpost 8, 12, $0, MapTeamRocketBaseB2FSignpost21Script
-	signpost 7, 12, $0, MapTeamRocketBaseB2FSignpost21Script
-	signpost 6, 12, $0, MapTeamRocketBaseB2FSignpost21Script
-	signpost 5, 12, $0, MapTeamRocketBaseB2FSignpost21Script
-	signpost 4, 12, $0, MapTeamRocketBaseB2FSignpost21Script
-	signpost 4, 13, $0, MapTeamRocketBaseB2FSignpost21Script
-	signpost 4, 14, $0, MapTeamRocketBaseB2FSignpost21Script
-	signpost 4, 15, $0, MapTeamRocketBaseB2FSignpost21Script
-	signpost 4, 16, $0, MapTeamRocketBaseB2FSignpost21Script
-	signpost 4, 17, $0, MapTeamRocketBaseB2FSignpost21Script
-	signpost 5, 17, $0, MapTeamRocketBaseB2FSignpost21Script
-	signpost 6, 17, $0, MapTeamRocketBaseB2FSignpost21Script
-	signpost 7, 17, $0, MapTeamRocketBaseB2FSignpost21Script
-	signpost 8, 17, $0, MapTeamRocketBaseB2FSignpost21Script
-	signpost 7, 26, $7, MapTeamRocketBaseB2FSignpostItem22
+	signpost 12, 14, SIGNPOST_IFNOTSET, MapTeamRocketBaseB2FSignpostPtr1
+	signpost 12, 15, SIGNPOST_IFNOTSET, MapTeamRocketBaseB2FSignpostPtr1
+	signpost 9, 17, SIGNPOST_READ, MapTeamRocketBaseB2FSignpost21Script
+	signpost 9, 16, SIGNPOST_READ, MapTeamRocketBaseB2FSignpost21Script
+	signpost 9, 15, SIGNPOST_READ, MapTeamRocketBaseB2FSignpost21Script
+	signpost 9, 14, SIGNPOST_READ, MapTeamRocketBaseB2FSignpost21Script
+	signpost 9, 13, SIGNPOST_READ, MapTeamRocketBaseB2FSignpost21Script
+	signpost 9, 12, SIGNPOST_READ, MapTeamRocketBaseB2FSignpost21Script
+	signpost 8, 12, SIGNPOST_READ, MapTeamRocketBaseB2FSignpost21Script
+	signpost 7, 12, SIGNPOST_READ, MapTeamRocketBaseB2FSignpost21Script
+	signpost 6, 12, SIGNPOST_READ, MapTeamRocketBaseB2FSignpost21Script
+	signpost 5, 12, SIGNPOST_READ, MapTeamRocketBaseB2FSignpost21Script
+	signpost 4, 12, SIGNPOST_READ, MapTeamRocketBaseB2FSignpost21Script
+	signpost 4, 13, SIGNPOST_READ, MapTeamRocketBaseB2FSignpost21Script
+	signpost 4, 14, SIGNPOST_READ, MapTeamRocketBaseB2FSignpost21Script
+	signpost 4, 15, SIGNPOST_READ, MapTeamRocketBaseB2FSignpost21Script
+	signpost 4, 16, SIGNPOST_READ, MapTeamRocketBaseB2FSignpost21Script
+	signpost 4, 17, SIGNPOST_READ, MapTeamRocketBaseB2FSignpost21Script
+	signpost 5, 17, SIGNPOST_READ, MapTeamRocketBaseB2FSignpost21Script
+	signpost 6, 17, SIGNPOST_READ, MapTeamRocketBaseB2FSignpost21Script
+	signpost 7, 17, SIGNPOST_READ, MapTeamRocketBaseB2FSignpost21Script
+	signpost 8, 17, SIGNPOST_READ, MapTeamRocketBaseB2FSignpost21Script
+	signpost 7, 26, SIGNPOST_ITEM, MapTeamRocketBaseB2FSignpostItem22
 
-	; people-events
+.PersonEvents:
 	db 14
-	person_event SPRITE_ROCKET, 20, 24, $7, $0, 255, 255, $0, 0, ObjectEvent, $06de
-	person_event SPRITE_ROCKET_GIRL, 20, 24, $7, $0, 255, 255, $80, 0, ObjectEvent, $06dd
-	person_event SPRITE_LANCE, 17, 9, $6, $0, 255, 255, $0, 0, ObjectEvent, $06d6
-	person_event SPRITE_DRAGON, 17, 13, $9, $0, 255, 255, $0, 0, ObjectEvent, $06df
-	person_event SPRITE_VOLTORB, 9, 11, $16, $0, 255, 255, $0, 0, VoltorbScript_0x6d101, $06e0
-	person_event SPRITE_VOLTORB, 11, 11, $16, $0, 255, 255, $0, 0, VoltorbScript_0x6d12c, $06e1
-	person_event SPRITE_VOLTORB, 13, 11, $16, $0, 255, 255, $0, 0, VoltorbScript_0x6d157, $06e2
-	person_event SPRITE_VOLTORB, 9, 26, $16, $0, 255, 255, $0, 0, ObjectEvent, $06e0
-	person_event SPRITE_VOLTORB, 11, 26, $16, $0, 255, 255, $0, 0, ObjectEvent, $06e1
-	person_event SPRITE_VOLTORB, 13, 26, $16, $0, 255, 255, $0, 0, ObjectEvent, $06e2
-	person_event SPRITE_ROCKET, 17, 29, $6, $0, 255, 255, $2, 3, TrainerGruntM17, $06da
-	person_event SPRITE_ROCKET, 5, 8, $a, $0, 255, 255, $2, 1, TrainerGruntM18, $06da
-	person_event SPRITE_ROCKET, 18, 25, $8, $0, 255, 255, $2, 4, TrainerGruntM19, $06da
-	person_event SPRITE_POKE_BALL, 14, 7, $1, $0, 255, 255, $1, 0, ItemFragment_0x6d20d, $066c
-; 0x6dfd4
+	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
--- a/maps/TeamRocketBaseB3F.asm
+++ b/maps/TeamRocketBaseB3F.asm
@@ -1,50 +1,43 @@
-TeamRocketBaseB3F_MapScriptHeader: ; 0x6dfd4
-	; trigger count
+TeamRocketBaseB3F_MapScriptHeader:
+.MapTriggers:
 	db 4
 
 	; triggers
-	dw UnknownScript_0x6dfe9, $0000
-	dw UnknownScript_0x6dfed, $0000
-	dw UnknownScript_0x6dfee, $0000
-	dw UnknownScript_0x6dfef, $0000
+	dw .Trigger1, $0000
+	dw .Trigger2, $0000
+	dw .Trigger3, $0000
+	dw .Trigger4, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
-	dbw 1, UnknownScript_0x6dff0
-; 0x6dfe9
+	dbw 1, .CheckGiovanniDoor
 
-UnknownScript_0x6dfe9: ; 0x6dfe9
+.Trigger1:
 	priorityjump LanceScript_0x6dffc
 	end
-; 0x6dfed
 
-UnknownScript_0x6dfed: ; 0x6dfed
+.Trigger2:
 	end
-; 0x6dfee
 
-UnknownScript_0x6dfee: ; 0x6dfee
+.Trigger3:
 	end
-; 0x6dfef
 
-UnknownScript_0x6dfef: ; 0x6dfef
+.Trigger4:
 	end
-; 0x6dff0
 
-UnknownScript_0x6dff0: ; 0x6dff0
-	checkevent $0303
-	iftrue UnknownScript_0x6dff7
+.CheckGiovanniDoor:
+	checkevent EVENT_OPENED_DOOR_TO_GIOVANNIS_OFFICE
+	iftrue .OpenSesame
 	return
-; 0x6dff7
 
-UnknownScript_0x6dff7: ; 0x6dff7
+.OpenSesame:
 	changeblock $a, $8, $7
 	return
-; 0x6dffc
 
-LanceScript_0x6dffc: ; 0x6dffc
+LanceScript_0x6dffc:
 	spriteface $0, LEFT
 	pause 5
 	spriteface $4, RIGHT
@@ -58,11 +51,10 @@
 	disappear $2
 	dotrigger $1
 	end
-; 0x6e019
 
-UnknownScript_0x6e019: ; 0x6e019
+UnknownScript_0x6e019:
 	spriteface $0, LEFT
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	special Functionc48f
 	appear $a
 	applymovement $a, MovementData_0x6e164
@@ -79,22 +71,19 @@
 	dotrigger $2
 	special RestartMapMusic
 	end
-; 0x6e048
 
-RocketScript_0x6e048: ; 0x6e048
+RocketScript_0x6e048:
 	jumptextfaceplayer UnknownText_0x6e235
-; 0x6e04b
 
-UnknownScript_0x6e04b: ; 0x6e04b
+UnknownScript_0x6e04b:
 	applymovement $0, MovementData_0x6e133
 	jump UnknownScript_0x6e056
-; 0x6e052
 
-UnknownScript_0x6e052: ; 0x6e052
+UnknownScript_0x6e052:
 	applymovement $0, MovementData_0x6e13a
-UnknownScript_0x6e056: ; 0x6e056
+UnknownScript_0x6e056:
 	pause 30
-	showemote $0, $3, 15
+	showemote EMOTE_SHOCK, $3, 15
 	playmusic MUSIC_ROCKET_ENCOUNTER
 	spriteface $3, DOWN
 	loadfont
@@ -107,7 +96,7 @@
 	loadtrainer EXECUTIVEM, 4
 	startbattle
 	returnafterbattle
-	setevent $0574
+	setevent EVENT_BEAT_ROCKET_EXECUTIVEM_4
 	loadfont
 	writetext UnknownText_0x6e548
 	closetext
@@ -118,9 +107,8 @@
 	disappear $3
 	dotrigger $3
 	end
-; 0x6e091
 
-MoltresScript_0x6e091: ; 0x6e091
+MoltresScript_0x6e091:
 	loadfont
 	writetext UnknownText_0x6e585
 	closetext
@@ -127,89 +115,35 @@
 	loadmovesprites
 	setevent EVENT_LEARNED_HAIL_GIOVANNI
 	end
-; 0x6e09b
 
-TrainerGruntF5: ; 0x6e09b
-	; bit/flag number
-	dw $514
+TrainerGruntF5:
+	trainer EVENT_BEAT_ROCKET_GRUNTF_5, GRUNTF, 5, GruntF5SeenText, GruntF5BeatenText, $0000, GruntF5Script
 
-	; trainer group && trainer id
-	db GRUNTF, 5
-
-	; text when seen
-	dw GruntF5SeenText
-
-	; text when trainer beaten
-	dw GruntF5BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GruntF5Script
-; 0x6e0a7
-
-GruntF5Script: ; 0x6e0a7
+GruntF5Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x6e611
 	closetext
 	loadmovesprites
-	setevent $0301
+	setevent EVENT_LEARNED_SLOWPOKETAIL
 	end
-; 0x6e0b2
 
-TrainerGruntM28: ; 0x6e0b2
-	; bit/flag number
-	dw $50c
+TrainerGruntM28:
+	trainer EVENT_BEAT_ROCKET_GRUNTM_28, GRUNTM, 28, GruntM28SeenText, GruntM28BeatenText, $0000, GruntM28Script
 
-	; trainer group && trainer id
-	db GRUNTM, 28
-
-	; text when seen
-	dw GruntM28SeenText
-
-	; text when trainer beaten
-	dw GruntM28BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GruntM28Script
-; 0x6e0be
-
-GruntM28Script: ; 0x6e0be
+GruntM28Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x6e737
 	closetext
 	loadmovesprites
-	setevent $0302
+	setevent EVENT_LEARNED_RATICATE_TAIL
 	end
-; 0x6e0c9
 
-TrainerScientistRoss: ; 0x6e0c9
-	; bit/flag number
-	dw $49f
+TrainerScientistRoss:
+	trainer EVENT_BEAT_SCIENTIST_ROSS, SCIENTIST, ROSS, ScientistRossSeenText, ScientistRossBeatenText, $0000, ScientistRossScript
 
-	; trainer group && trainer id
-	db SCIENTIST, ROSS
-
-	; text when seen
-	dw ScientistRossSeenText
-
-	; text when trainer beaten
-	dw ScientistRossBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw ScientistRossScript
-; 0x6e0d5
-
-ScientistRossScript: ; 0x6e0d5
+ScientistRossScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x6e822
@@ -216,29 +150,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x6e0dd
 
-TrainerScientistMitch: ; 0x6e0dd
-	; bit/flag number
-	dw $4a0
+TrainerScientistMitch:
+	trainer EVENT_BEAT_SCIENTIST_MITCH, SCIENTIST, MITCH, ScientistMitchSeenText, ScientistMitchBeatenText, $0000, ScientistMitchScript
 
-	; trainer group && trainer id
-	db SCIENTIST, MITCH
-
-	; text when seen
-	dw ScientistMitchSeenText
-
-	; text when trainer beaten
-	dw ScientistMitchBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw ScientistMitchScript
-; 0x6e0e9
-
-ScientistMitchScript: ; 0x6e0e9
+ScientistMitchScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x6e90a
@@ -245,31 +161,26 @@
 	closetext
 	loadmovesprites
 	end
-; 0x6e0f1
 
-MapTeamRocketBaseB3FSignpostPtr1: ; 0x6e0f1
-	dw $0303
-	dw MapTeamRocketBaseB3FSignpost1Script
+BossDoor:
+	dw EVENT_OPENED_DOOR_TO_GIOVANNIS_OFFICE
+	dw .Script
 	
-; 0x6e0f5
-
-MapTeamRocketBaseB3FSignpost1Script: ; 0x6e0f5
+.Script
 	loadfont
-	checkevent $0301
-	iffalse UnknownScript_0x6e105
-	checkevent $0302
-	iffalse UnknownScript_0x6e105
-	jump UnknownScript_0x6e10b
-; 0x6e105
+	checkevent EVENT_LEARNED_SLOWPOKETAIL
+	iffalse .NeedsPassword
+	checkevent EVENT_LEARNED_RATICATE_TAIL
+	iffalse .NeedsPassword
+	jump .OpenSesame
 
-UnknownScript_0x6e105: ; 0x6e105
+.NeedsPassword
 	writetext UnknownText_0x6e970
 	closetext
 	loadmovesprites
 	end
-; 0x6e10b
 
-UnknownScript_0x6e10b: ; 0x6e10b
+.OpenSesame
 	writetext UnknownText_0x6e9a3
 	closetext
 	playsound SFX_ENTER_DOOR
@@ -276,41 +187,33 @@
 	changeblock $a, $8, $7
 	reloadmappart
 	loadmovesprites
-	setevent $0303
+	setevent EVENT_OPENED_DOOR_TO_GIOVANNIS_OFFICE
 	waitbutton
 	end
-; 0x6e11d
 
-MapTeamRocketBaseB3FSignpost9Script: ; 0x6e11d
+MapTeamRocketBaseB3FSignpost9Script:
 	jumpstd teamrocketoath
-; 0x6e120
 
-ItemFragment_0x6e120: ; 0x6e120
+ItemFragment_0x6e120:
 	db PROTEIN, 1
-; 0x6e122
 
-ItemFragment_0x6e122: ; 0x6e122
+ItemFragment_0x6e122:
 	db X_SPECIAL, 1
-; 0x6e124
 
-ItemFragment_0x6e124: ; 0x6e124
+ItemFragment_0x6e124:
 	db FULL_HEAL, 1
-; 0x6e126
 
-ItemFragment_0x6e126: ; 0x6e126
+ItemFragment_0x6e126:
 	db ICE_HEAL, 1
-; 0x6e128
 
-ItemFragment_0x6e128: ; 0x6e128
+ItemFragment_0x6e128:
 	db ULTRA_BALL, 1
-; 0x6e12a
 
-MovementData_0x6e12a: ; 0x6e12a
+MovementData_0x6e12a:
 	step_right
 	step_end
-; 0x6e12c
 
-MovementData_0x6e12c: ; 0x6e12c
+MovementData_0x6e12c:
 	step_down
 	step_left
 	step_left
@@ -318,9 +221,8 @@
 	step_left
 	step_left
 	step_end
-; 0x6e133
 
-MovementData_0x6e133: ; 0x6e133
+MovementData_0x6e133:
 	step_up
 	step_up
 	step_up
@@ -328,9 +230,8 @@
 	step_left
 	turn_head_up
 	step_end
-; 0x6e13a
 
-MovementData_0x6e13a: ; 0x6e13a
+MovementData_0x6e13a:
 	step_up
 	step_up
 	step_left
@@ -339,20 +240,17 @@
 	step_left
 	turn_head_up
 	step_end
-; 0x6e142
 
-MovementData_0x6e142: ; 0x6e142
+MovementData_0x6e142:
 	step_down
 	step_end
-; 0x6e144
 
-MovementData_0x6e144: ; 0x6e144
+MovementData_0x6e144:
 	big_step_right
 	big_step_right
 	step_end
-; 0x6e147
 
-MovementData_0x6e147: ; 0x6e147
+MovementData_0x6e147:
 	fix_facing
 	fast_jump_step_left
 	remove_fixed_facing
@@ -382,9 +280,8 @@
 	big_step_left
 	big_step_left
 	step_end
-; 0x6e164
 
-MovementData_0x6e164: ; 0x6e164
+MovementData_0x6e164:
 	step_down
 	step_down
 	step_down
@@ -394,9 +291,8 @@
 	step_right
 	step_right
 	step_end
-; 0x6e16d
 
-MovementData_0x6e16d: ; 0x6e16d
+MovementData_0x6e16d:
 	step_left
 	step_left
 	step_up
@@ -405,16 +301,14 @@
 	step_up
 	step_up
 	step_end
-; 0x6e175
 
-MovementData_0x6e175: ; 0x6e175
+MovementData_0x6e175:
 	fix_facing
 	big_step_right
 	remove_fixed_facing
 	step_end
-; 0x6e179
 
-UnknownText_0x6e179: ; 0x6e179
+UnknownText_0x6e179:
 	text "LANCE: It takes"
 	line "two passwords to"
 
@@ -432,16 +326,14 @@
 	para "<PLAY_G>, let's go"
 	line "get the passwords."
 	done
-; 0x6e235
 
-UnknownText_0x6e235: ; 0x6e235
+UnknownText_0x6e235:
 	text "Urrggh… The guy"
 	line "in the cape is"
 	cont "incredibly tough…"
 	done
-; 0x6e267
 
-UnknownText_0x6e267: ; 0x6e267
+UnknownText_0x6e267:
 	text "…"
 
 	para "Didn't I tell you"
@@ -482,9 +374,8 @@
 	line "have the time for"
 	cont "the likes of you!"
 	done
-; 0x6e400
 
-UnknownText_0x6e400: ; 0x6e400
+UnknownText_0x6e400:
 	text "What? Who are you?"
 	line "This is the office"
 
@@ -510,9 +401,8 @@
 	line "one disturb this"
 	cont "place!"
 	done
-; 0x6e511
 
-UnknownText_0x6e511: ; 0x6e511
+UnknownText_0x6e511:
 	text "I… I couldn't do a"
 	line "thing…"
 
@@ -519,9 +409,8 @@
 	para "GIOVANNI, please"
 	line "forgive me…"
 	done
-; 0x6e548
 
-UnknownText_0x6e548: ; 0x6e548
+UnknownText_0x6e548:
 	text "No, I can't let"
 	line "this affect me."
 
@@ -528,17 +417,15 @@
 	para "I have to inform"
 	line "the others…"
 	done
-; 0x6e585
 
-UnknownText_0x6e585: ; 0x6e585
+UnknownText_0x6e585:
 	text "MURKROW: The"
 	line "password is…"
 
 	para "HAIL GIOVANNI."
 	done
-; 0x6e5af
 
-GruntF5SeenText: ; 0x6e5af
+GruntF5SeenText:
 	text "Do I know the"
 	line "password?"
 
@@ -547,15 +434,13 @@
 	para "But no weakling's"
 	line "going to get it!"
 	done
-; 0x6e5f1
 
-GruntF5BeatenText: ; 0x6e5f1
+GruntF5BeatenText:
 	text "All right. Stop."
 	line "I'll tell you."
 	done
-; 0x6e611
 
-UnknownText_0x6e611: ; 0x6e611
+UnknownText_0x6e611:
 	text "The password to"
 	line "the boss's room is"
 
@@ -565,9 +450,8 @@
 	line "unless you have"
 	cont "two passwords."
 	done
-; 0x6e671
 
-GruntM28SeenText: ; 0x6e671
+GruntM28SeenText:
 	text "Hyuck-hyuck-hyuck!"
 
 	para "You're challenging"
@@ -584,15 +468,13 @@
 	para "a password to the"
 	line "boss's room!"
 	done
-; 0x6e717
 
-GruntM28BeatenText: ; 0x6e717
+GruntM28BeatenText:
 	text "Hyuck-hyuck-hyuck!"
 	line "You're good!"
 	done
-; 0x6e737
 
-UnknownText_0x6e737: ; 0x6e737
+UnknownText_0x6e737:
 	text "Hyuck-hyuck-hyuck!"
 
 	para "The password to"
@@ -601,9 +483,8 @@
 	para "Uh…, I think it is"
 	line "RATICATE TAIL."
 	done
-; 0x6e78d
 
-ScientistRossSeenText: ; 0x6e78d
+ScientistRossSeenText:
 	text "I used to work for"
 	line "SILPH, but now I"
 
@@ -614,15 +495,13 @@
 	line "like you needs to"
 	cont "be punished."
 	done
-; 0x6e802
 
-ScientistRossBeatenText: ; 0x6e802
+ScientistRossBeatenText:
 	text "A mere tactical"
 	line "error cost me…"
 	done
-; 0x6e822
 
-UnknownText_0x6e822: ; 0x6e822
+UnknownText_0x6e822:
 	text "A radio signal"
 	line "that drives #-"
 	cont "MON mad…"
@@ -636,23 +515,20 @@
 	para "means absolutely"
 	line "nothing."
 	done
-; 0x6e8ac
 
-ScientistMitchSeenText: ; 0x6e8ac
+ScientistMitchSeenText:
 	text "I don't care that"
 	line "#MON are hurt"
 	cont "by our experiment."
 	done
-; 0x6e8df
 
-ScientistMitchBeatenText: ; 0x6e8df
+ScientistMitchBeatenText:
 	text "Thinking is my"
 	line "strong suit, not"
 	cont "battling."
 	done
-; 0x6e90a
 
-UnknownText_0x6e90a: ; 0x6e90a
+UnknownText_0x6e90a:
 	text "If we turn up the"
 	line "power of our radio"
 
@@ -662,17 +538,15 @@
 	para "The very thought"
 	line "excites me!"
 	done
-; 0x6e970
 
-UnknownText_0x6e970: ; 0x6e970
+UnknownText_0x6e970:
 	text "The door's closed…"
 
 	para "It needs two"
 	line "passwords to open."
 	done
-; 0x6e9a3
 
-UnknownText_0x6e9a3: ; 0x6e9a3
+UnknownText_0x6e9a3:
 	text "The door's closed…"
 
 	para "<PLAYER> entered"
@@ -680,13 +554,12 @@
 
 	para "The door opened!"
 	done
-; 0x6e9e4
 
-TeamRocketBaseB3F_MapEventHeader: ; 0x6e9e4
+TeamRocketBaseB3F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -693,39 +566,38 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 3
 	xy_trigger 2, $8, $a, $0, UnknownScript_0x6e04b, $0, $0
 	xy_trigger 2, $8, $b, $0, UnknownScript_0x6e052, $0, $0
 	xy_trigger 1, $a, $8, $0, UnknownScript_0x6e019, $0, $0
 
-	; signposts
+.Signposts:
 	db 10
-	signpost 9, 10, $6, MapTeamRocketBaseB3FSignpostPtr1
-	signpost 9, 11, $6, MapTeamRocketBaseB3FSignpostPtr1
-	signpost 1, 10, $0, MapTeamRocketBaseB3FSignpost9Script
-	signpost 1, 11, $0, MapTeamRocketBaseB3FSignpost9Script
-	signpost 1, 12, $0, MapTeamRocketBaseB3FSignpost9Script
-	signpost 1, 13, $0, MapTeamRocketBaseB3FSignpost9Script
-	signpost 13, 4, $0, MapTeamRocketBaseB3FSignpost9Script
-	signpost 13, 5, $0, MapTeamRocketBaseB3FSignpost9Script
-	signpost 13, 6, $0, MapTeamRocketBaseB3FSignpost9Script
-	signpost 13, 7, $0, MapTeamRocketBaseB3FSignpost9Script
+	signpost 9, 10, SIGNPOST_IFNOTSET, BossDoor
+	signpost 9, 11, SIGNPOST_IFNOTSET, BossDoor
+	signpost 1, 10, SIGNPOST_READ, MapTeamRocketBaseB3FSignpost9Script
+	signpost 1, 11, SIGNPOST_READ, MapTeamRocketBaseB3FSignpost9Script
+	signpost 1, 12, SIGNPOST_READ, MapTeamRocketBaseB3FSignpost9Script
+	signpost 1, 13, SIGNPOST_READ, MapTeamRocketBaseB3FSignpost9Script
+	signpost 13, 4, SIGNPOST_READ, MapTeamRocketBaseB3FSignpost9Script
+	signpost 13, 5, SIGNPOST_READ, MapTeamRocketBaseB3FSignpost9Script
+	signpost 13, 6, SIGNPOST_READ, MapTeamRocketBaseB3FSignpost9Script
+	signpost 13, 7, SIGNPOST_READ, MapTeamRocketBaseB3FSignpost9Script
 
-	; people-events
+.PersonEvents:
 	db 14
-	person_event SPRITE_LANCE, 18, 29, $6, $0, 255, 255, $0, 0, LanceScript_0x6dffc, $06d7
-	person_event SPRITE_ROCKET, 7, 12, $7, $0, 255, 255, $0, 0, ObjectEvent, $06db
-	person_event SPRITE_MOLTRES, 6, 11, $16, $0, 255, 255, $90, 0, MoltresScript_0x6e091, $06da
-	person_event SPRITE_ROCKET_GIRL, 11, 25, $7, $0, 255, 255, $82, 0, TrainerGruntF5, $06da
-	person_event SPRITE_ROCKET, 18, 9, $a, $0, 255, 255, $2, 3, TrainerGruntM28, $06da
-	person_event SPRITE_SCIENTIST, 15, 27, $7, $0, 255, 255, $92, 0, TrainerScientistRoss, $06da
-	person_event SPRITE_SCIENTIST, 19, 15, $9, $0, 255, 255, $92, 3, TrainerScientistMitch, $06da
-	person_event SPRITE_ROCKET, 18, 28, $6, $0, 255, 255, $0, 0, RocketScript_0x6e048, $06da
-	person_event SPRITE_SILVER, 9, 8, $6, $0, 255, 255, $0, 0, ObjectEvent, $06c0
-	person_event SPRITE_POKE_BALL, 16, 5, $1, $0, 255, 255, $1, 0, ItemFragment_0x6e120, $066d
-	person_event SPRITE_POKE_BALL, 16, 7, $1, $0, 255, 255, $1, 0, ItemFragment_0x6e122, $066e
-	person_event SPRITE_POKE_BALL, 13, 32, $1, $0, 255, 255, $1, 0, ItemFragment_0x6e124, $066f
-	person_event SPRITE_POKE_BALL, 6, 21, $1, $0, 255, 255, $1, 0, ItemFragment_0x6e126, $0670
-	person_event SPRITE_POKE_BALL, 14, 18, $1, $0, 255, 255, $1, 0, ItemFragment_0x6e128, $0654
-; 0x6eafe
+	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
--- a/maps/TimeCapsule.asm
+++ b/maps/TimeCapsule.asm
@@ -1,87 +1,77 @@
-TimeCapsule_MapScriptHeader: ; 0x1934eb
-	; trigger count
+TimeCapsule_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
-	dw UnknownScript_0x1934f8, $0000
-	dw UnknownScript_0x1934fc, $0000
+	dw .Trigger1, $0000
+	dw .Trigger2, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
-	dbw 2, UnknownScript_0x1934fd
-; 0x1934f8
+	dbw 2, TimeCapsule_SetWhichChris
 
-UnknownScript_0x1934f8: ; 0x1934f8
-	priorityjump UnknownScript_0x19350d
+.Trigger1:
+	priorityjump TimeCapsule_Initialize
 	end
-; 0x1934fc
 
-UnknownScript_0x1934fc: ; 0x1934fc
+.Trigger2:
 	end
-; 0x1934fd
 
-UnknownScript_0x1934fd: ; 0x1934fd
-	special Function29f47
-	iffalse UnknownScript_0x193508
+TimeCapsule_SetWhichChris:
+	special Special_CableClubCheckWhichChris
+	iffalse .Chris2
 	disappear $3
 	appear $2
 	return
-; 0x193508
 
-UnknownScript_0x193508: ; 0x193508
+.Chris2:
 	disappear $2
 	appear $3
 	return
-; 0x19350d
 
-UnknownScript_0x19350d: ; 0x19350d
+TimeCapsule_Initialize:
 	dotrigger $1
 	domaptrigger GROUP_POKECENTER_2F, MAP_POKECENTER_2F, $3
 	end
-; 0x193514
 
-MapTimeCapsuleSignpost1Script: ; 0x193514
-	special Function29eaf
+MapTimeCapsuleSignpost1Script:
+	special Special_TimeCapsule
 	newloadmap $f8
 	end
-; 0x19351a
 
-ChrisScript_0x19351a: ; 0x19351a
+ChrisScript_0x19351a:
 	loadfont
 	writetext UnknownText_0x193521
 	closetext
 	loadmovesprites
 	end
-; 0x193521
 
-UnknownText_0x193521: ; 0x193521
+UnknownText_0x193521:
 	text "Your friend is"
 	line "ready."
 	done
-; 0x193538
 
-TimeCapsule_MapEventHeader: ; 0x193538
+TimeCapsule_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 4, 4, $3, MapTimeCapsuleSignpost1Script
-	signpost 4, 5, $4, MapTimeCapsuleSignpost1Script
+	signpost 4, 4, SIGNPOST_RIGHT, MapTimeCapsuleSignpost1Script
+	signpost 4, 5, SIGNPOST_LEFT, MapTimeCapsuleSignpost1Script
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_CHRIS, 8, 7, $9, $0, 255, 255, $0, 0, ChrisScript_0x19351a, $0000
-	person_event SPRITE_CHRIS, 8, 10, $8, $0, 255, 255, $0, 0, ChrisScript_0x19351a, $0001
-; 0x19356c
+	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
--- a/maps/TinTower1F.asm
+++ b/maps/TinTower1F.asm
@@ -1,5 +1,5 @@
-TinTower1F_MapScriptHeader: ; 0x18501a
-	; trigger count
+TinTower1F_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,7 +6,7 @@
 	dw UnknownScript_0x18502a, $0000
 	dw UnknownScript_0x18502e, $0000
 
-	; callback count
+.MapCallbacks:
 	db 2
 
 	; callbacks
@@ -14,18 +14,15 @@
 	dbw 2, UnknownScript_0x18502f
 
 	dbw 1, UnknownScript_0x185084
-; 0x18502a
 
-UnknownScript_0x18502a: ; 0x18502a
+UnknownScript_0x18502a:
 	priorityjump UnknownScript_0x18508f
 	end
-; 0x18502e
 
-UnknownScript_0x18502e: ; 0x18502e
+UnknownScript_0x18502e:
 	end
-; 0x18502f
 
-UnknownScript_0x18502f: ; 0x18502f
+UnknownScript_0x18502f:
 	checkevent EVENT_GOT_RAINBOW_WING
 	iftrue UnknownScript_0x185047
 	checkevent EVENT_BEAT_ELITE_FOUR
@@ -32,17 +29,16 @@
 	iffalse UnknownScript_0x185050
 	special SpecialBeastsCheck
 	iffalse UnknownScript_0x185050
-	clearevent $07c5
-	setevent $07b6
-UnknownScript_0x185047: ; 0x185047
+	clearevent EVENT_TIN_TOWER_1F_WISE_TRIO_2
+	setevent EVENT_TIN_TOWER_1F_WISE_TRIO_1
+UnknownScript_0x185047:
 	checkevent EVENT_FOUGHT_HO_OH
 	iffalse UnknownScript_0x18504f
 	appear $5
-UnknownScript_0x18504f: ; 0x18504f
+UnknownScript_0x18504f:
 	return
-; 0x185050
 
-UnknownScript_0x185050: ; 0x185050
+UnknownScript_0x185050:
 	checkevent EVENT_FOUGHT_SUICUNE
 	iftrue UnknownScript_0x185077
 	appear $2
@@ -51,42 +47,37 @@
 	iftrue UnknownScript_0x185065
 	appear $3
 	jump UnknownScript_0x185067
-; 0x185065
 
-UnknownScript_0x185065: ; 0x185065
+UnknownScript_0x185065:
 	disappear $3
-UnknownScript_0x185067: ; 0x185067
+UnknownScript_0x185067:
 	writebyte ENTEI
 	special SpecialMonCheck
 	iftrue UnknownScript_0x185074
 	appear $4
 	jump UnknownScript_0x185076
-; 0x185074
 
-UnknownScript_0x185074: ; 0x185074
+UnknownScript_0x185074:
 	disappear $4
-UnknownScript_0x185076: ; 0x185076
+UnknownScript_0x185076:
 	return
-; 0x185077
 
-UnknownScript_0x185077: ; 0x185077
+UnknownScript_0x185077:
 	disappear $2
 	disappear $3
 	disappear $4
-	clearevent $07b6
-	setevent $07c5
+	clearevent EVENT_TIN_TOWER_1F_WISE_TRIO_1
+	setevent EVENT_TIN_TOWER_1F_WISE_TRIO_2
 	return
-; 0x185084
 
-UnknownScript_0x185084: ; 0x185084
+UnknownScript_0x185084:
 	checkevent EVENT_GOT_RAINBOW_WING
 	iftrue UnknownScript_0x18508e
 	changeblock $a, $2, $9
-UnknownScript_0x18508e: ; 0x18508e
+UnknownScript_0x18508e:
 	return
-; 0x18508f
 
-UnknownScript_0x18508f: ; 0x18508f
+UnknownScript_0x18508f:
 	applymovement $0, MovementData_0x1851cb
 	pause 15
 	writebyte RAIKOU
@@ -101,7 +92,7 @@
 	disappear $3
 	playsound SFX_EXIT_BUILDING
 	waitbutton
-UnknownScript_0x1850b6: ; 0x1850b6
+UnknownScript_0x1850b6:
 	writebyte ENTEI
 	special SpecialMonCheck
 	iftrue UnknownScript_0x1850d7
@@ -114,7 +105,7 @@
 	disappear $4
 	playsound SFX_EXIT_BUILDING
 	waitbutton
-UnknownScript_0x1850d7: ; 0x1850d7
+UnknownScript_0x1850d7:
 	spriteface $0, UP
 	pause 10
 	applymovement $0, MovementData_0x1851e8
@@ -122,7 +113,7 @@
 	cry SUICUNE
 	pause 20
 	loadpokedata SUICUNE, 40
-	writecode $3, BATTLETYPE_SUICUNE
+	writecode VAR_BATTLETYPE, BATTLETYPE_SUICUNE
 	startbattle
 	reloadmapmusic
 	disappear $2
@@ -171,31 +162,25 @@
 	pause 20
 	playmapmusic
 	end
-; 0x185173
 
-SageScript_0x185173: ; 0x185173
+SageScript_0x185173:
 	jumptextfaceplayer UnknownText_0x185386
-; 0x185176
 
-SageScript_0x185176: ; 0x185176
+SageScript_0x185176:
 	jumptextfaceplayer UnknownText_0x185433
-; 0x185179
 
-SageScript_0x185179: ; 0x185179
+SageScript_0x185179:
 	jumptextfaceplayer UnknownText_0x185544
-; 0x18517c
 
-SageScript_0x18517c: ; 0x18517c
+SageScript_0x18517c:
 	checkevent EVENT_FOUGHT_HO_OH
 	iftrue UnknownScript_0x185185
 	jumptextfaceplayer UnknownText_0x1855ee
-; 0x185185
 
-UnknownScript_0x185185: ; 0x185185
+UnknownScript_0x185185:
 	jumptextfaceplayer UnknownText_0x185765
-; 0x185188
 
-SageScript_0x185188: ; 0x185188
+SageScript_0x185188:
 	faceplayer
 	loadfont
 	checkevent EVENT_FOUGHT_HO_OH
@@ -215,50 +200,43 @@
 	setevent EVENT_GOT_RAINBOW_WING
 	loadmovesprites
 	loadfont
-UnknownScript_0x1851b0: ; 0x1851b0
+UnknownScript_0x1851b0:
 	writetext UnknownText_0x18564a
 	closetext
 	loadmovesprites
 	end
-; 0x1851b6
 
-UnknownScript_0x1851b6: ; 0x1851b6
+UnknownScript_0x1851b6:
 	writetext UnknownText_0x185803
 	closetext
 	loadmovesprites
 	end
-; 0x1851bc
 
-SageScript_0x1851bc: ; 0x1851bc
+SageScript_0x1851bc:
 	checkevent EVENT_FOUGHT_HO_OH
 	iftrue UnknownScript_0x1851c5
 	jumptextfaceplayer UnknownText_0x185654
-; 0x1851c5
 
-UnknownScript_0x1851c5: ; 0x1851c5
+UnknownScript_0x1851c5:
 	jumptextfaceplayer UnknownText_0x1858d0
-; 0x1851c8
 
-SuperNerdScript_0x1851c8: ; 0x1851c8
+SuperNerdScript_0x1851c8:
 	jumptextfaceplayer UnknownText_0x1856a3
-; 0x1851cb
 
-MovementData_0x1851cb: ; 0x1851cb
+MovementData_0x1851cb:
 	slow_step_up
 	slow_step_up
 	slow_step_up
 	slow_step_up
 	step_end
-; 0x1851d0
 
-MovementData_0x1851d0: ; 0x1851d0
+MovementData_0x1851d0:
 	db $39 ; movement
 	fast_jump_step_down
 	db $38 ; movement
 	step_end
-; 0x1851d4
 
-MovementData_0x1851d4: ; 0x1851d4
+MovementData_0x1851d4:
 	db $39 ; movement
 	fast_jump_step_down
 	fast_jump_step_right
@@ -265,16 +243,14 @@
 	fast_jump_step_down
 	db $38 ; movement
 	step_end
-; 0x1851da
 
-MovementData_0x1851da: ; 0x1851da
+MovementData_0x1851da:
 	db $39 ; movement
 	fast_jump_step_down
 	db $38 ; movement
 	step_end
-; 0x1851de
 
-MovementData_0x1851de: ; 0x1851de
+MovementData_0x1851de:
 	db $39 ; movement
 	fast_jump_step_down
 	fast_jump_step_left
@@ -281,38 +257,33 @@
 	fast_jump_step_down
 	db $38 ; movement
 	step_end
-; 0x1851e4
 
-MovementData_0x1851e4: ; 0x1851e4
+MovementData_0x1851e4:
 	db $39 ; movement
 	fast_jump_step_down
 	db $38 ; movement
 	step_end
-; 0x1851e8
 
-MovementData_0x1851e8: ; 0x1851e8
+MovementData_0x1851e8:
 	fix_facing
 	big_step_down
 	remove_fixed_facing
 	step_end
-; 0x1851ec
 
-MovementData_0x1851ec: ; 0x1851ec
+MovementData_0x1851ec:
 	step_up
 	step_up
 	step_up
 	turn_head_left
 	step_end
-; 0x1851f1
 
-MovementData_0x1851f1: ; 0x1851f1
+MovementData_0x1851f1:
 	step_down
 	step_down
 	step_down
 	step_end
-; 0x1851f5
 
-MovementData_0x1851f5: ; 0x1851f5
+MovementData_0x1851f5:
 	step_up
 	step_up
 	step_left
@@ -319,23 +290,20 @@
 	step_left
 	turn_head_up
 	step_end
-; 0x1851fb
 
-MovementData_0x1851fb: ; 0x1851fb
+MovementData_0x1851fb:
 	step_up
 	step_up
 	step_end
-; 0x1851fe
 
-MovementData_0x1851fe: ; 0x1851fe
+MovementData_0x1851fe:
 	step_up
 	step_right
 	step_right
 	step_up
 	step_end
-; 0x185203
 
-UnknownText_0x185203: ; 0x185203
+UnknownText_0x185203:
 	text "EUSINE: Awesome!"
 	line "Too awesome, even!"
 
@@ -372,9 +340,8 @@
 
 	para "Later, <PLAYER>!"
 	done
-; 0x185386
 
-UnknownText_0x185386: ; 0x185386
+UnknownText_0x185386:
 	text "According to"
 	line "legend…"
 
@@ -393,9 +360,8 @@
 	para "are testing us"
 	line "humans?"
 	done
-; 0x185433
 
-UnknownText_0x185433: ; 0x185433
+UnknownText_0x185433:
 	text "When the BRASS"
 	line "TOWER burned down,"
 
@@ -426,9 +392,8 @@
 	para "That is what they"
 	line "say."
 	done
-; 0x185544
 
-UnknownText_0x185544: ; 0x185544
+UnknownText_0x185544:
 	text "The two TOWERS are"
 	line "said to have been"
 
@@ -444,9 +409,8 @@
 	para "still remains"
 	line "important today."
 	done
-; 0x1855ee
 
-UnknownText_0x1855ee: ; 0x1855ee
+UnknownText_0x1855ee:
 	text "HO-OH appears to"
 	line "have descended"
 
@@ -453,20 +417,17 @@
 	para "upon this, the TIN"
 	line "TOWER!"
 	done
-; 0x185629
 
-UnknownText_0x185629: ; 0x185629
+UnknownText_0x185629:
 	text "This will protect"
 	line "you. Take it."
 	done
-; 0x18564a
 
-UnknownText_0x18564a: ; 0x18564a
+UnknownText_0x18564a:
 	text "Now, go."
 	done
-; 0x185654
 
-UnknownText_0x185654: ; 0x185654
+UnknownText_0x185654:
 	text "I believe you are"
 	line "being tested."
 
@@ -474,9 +435,8 @@
 	line "from uncertainty,"
 	cont "and advance."
 	done
-; 0x1856a3
 
-UnknownText_0x1856a3: ; 0x1856a3
+UnknownText_0x1856a3:
 	text "I knew it."
 
 	para "I knew you'd get"
@@ -497,9 +457,8 @@
 	para "to become a famous"
 	line "#MANIAC!"
 	done
-; 0x185765
 
-UnknownText_0x185765: ; 0x185765
+UnknownText_0x185765:
 	text "The legendary"
 	line "#MON are said"
 
@@ -515,9 +474,8 @@
 	para "And the rain that"
 	line "put out the fire…"
 	done
-; 0x185803
 
-UnknownText_0x185803: ; 0x185803
+UnknownText_0x185803:
 	text "When the legendary"
 	line "#MON appeared…"
 
@@ -537,9 +495,8 @@
 	line "fled, ignoring the"
 	cont "frightened people."
 	done
-; 0x1858d0
 
-UnknownText_0x1858d0: ; 0x1858d0
+UnknownText_0x1858d0:
 	text "Of the legendary"
 	line "#MON, SUICUNE"
 
@@ -558,34 +515,32 @@
 	para "cooperative bond"
 	line "with SUICUNE."
 	done
-; 0x18598c
 
-TinTower1F_MapEventHeader: ; 0x18598c
+TinTower1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 10
-	person_event SPRITE_SUICUNE, 13, 13, $1, $0, 255, 255, $90, 0, ObjectEvent, $07b2
-	person_event SPRITE_RAIKOU, 13, 11, $1, $0, 255, 255, $b0, 0, ObjectEvent, $07b4
-	person_event SPRITE_ENTEI, 13, 16, $1, $0, 255, 255, $80, 0, ObjectEvent, $07b3
-	person_event SPRITE_SUPER_NERD, 7, 12, $3, $0, 255, 255, $90, 0, SuperNerdScript_0x1851c8, $07b5
-	person_event SPRITE_SAGE, 13, 9, $3, $0, 255, 255, $0, 0, SageScript_0x185173, $07b6
-	person_event SPRITE_SAGE, 15, 15, $3, $0, 255, 255, $0, 0, SageScript_0x185176, $07b6
-	person_event SPRITE_SAGE, 10, 18, $3, $0, 255, 255, $0, 0, SageScript_0x185179, $07b6
-	person_event SPRITE_SAGE, 6, 8, $4, $10, 255, 255, $0, 0, SageScript_0x18517c, $07c5
-	person_event SPRITE_SAGE, 5, 13, $6, $0, 255, 255, $0, 0, SageScript_0x185188, $07c5
-	person_event SPRITE_SAGE, 6, 18, $5, $1, 255, 255, $0, 0, SageScript_0x1851bc, $07c5
-; 0x185a23
+	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
--- a/maps/TinTower2F.asm
+++ b/maps/TinTower2F.asm
@@ -1,26 +1,24 @@
-TinTower2F_MapScriptHeader: ; 0x185a23
-	; trigger count
+TinTower2F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x185a25
 
-TinTower2F_MapEventHeader: ; 0x185a25
+TinTower2F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x185a35
--- a/maps/TinTower3F.asm
+++ b/maps/TinTower3F.asm
@@ -1,31 +1,28 @@
-TinTower3F_MapScriptHeader: ; 0x185a35
-	; trigger count
+TinTower3F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x185a37
 
-ItemFragment_0x185a37: ; 0x185a37
+ItemFragment_0x185a37:
 	db FULL_HEAL, 1
-; 0x185a39
 
-TinTower3F_MapEventHeader: ; 0x185a39
+TinTower3F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_POKE_BALL, 18, 7, $1, $0, 255, 255, $1, 0, ItemFragment_0x185a37, $064b
-; 0x185a56
+	person_event SPRITE_POKE_BALL, 18, 7, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x185a37, EVENT_TIN_TOWER_3F_FULL_HEAL
--- a/maps/TinTower4F.asm
+++ b/maps/TinTower4F.asm
@@ -1,34 +1,28 @@
-TinTower4F_MapScriptHeader: ; 0x185a56
-	; trigger count
+TinTower4F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x185a58
 
-ItemFragment_0x185a58: ; 0x185a58
+ItemFragment_0x185a58:
 	db ULTRA_BALL, 1
-; 0x185a5a
 
-ItemFragment_0x185a5a: ; 0x185a5a
+ItemFragment_0x185a5a:
 	db PP_UP, 1
-; 0x185a5c
 
-ItemFragment_0x185a5c: ; 0x185a5c
+ItemFragment_0x185a5c:
 	db ESCAPE_ROPE, 1
-; 0x185a5e
 
-MapTinTower4FSignpostItem0: ; 0x185a5e
-	dw $007d
-	db MAX_POTION
+MapTinTower4FSignpostItem0:
+	dwb EVENT_TIN_TOWER_4F_HIDDEN_MAX_POTION, MAX_POTION
 	
-; 0x185a61
 
-TinTower4F_MapEventHeader: ; 0x185a61
+TinTower4F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -35,16 +29,15 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 6, 11, $7, MapTinTower4FSignpostItem0
+	signpost 6, 11, SIGNPOST_ITEM, MapTinTower4FSignpostItem0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_POKE_BALL, 14, 18, $1, $0, 255, 255, $1, 0, ItemFragment_0x185a58, $064c
-	person_event SPRITE_POKE_BALL, 18, 21, $1, $0, 255, 255, $1, 0, ItemFragment_0x185a5a, $064d
-	person_event SPRITE_POKE_BALL, 16, 6, $1, $0, 255, 255, $1, 0, ItemFragment_0x185a5c, $064e
-; 0x185aa7
+	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
--- a/maps/TinTower5F.asm
+++ b/maps/TinTower5F.asm
@@ -1,32 +1,26 @@
-TinTower5F_MapScriptHeader: ; 0x185aa7
-	; trigger count
+TinTower5F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x185aa9
 
-ItemFragment_0x185aa9: ; 0x185aa9
+ItemFragment_0x185aa9:
 	db RARE_CANDY, 1
-; 0x185aab
 
-MapTinTower5FSignpostItem0: ; 0x185aab
-	dw $007e
-	db FULL_RESTORE
+MapTinTower5FSignpostItem0:
+	dwb EVENT_TIN_TOWER_5F_HIDDEN_FULL_RESTORE, FULL_RESTORE
 	
-; 0x185aae
 
-MapTinTower5FSignpostItem1: ; 0x185aae
-	dw $007f
-	db CARBOS
+MapTinTower5FSignpostItem1:
+	dwb EVENT_TIN_TOWER_5F_HIDDEN_CARBOS, CARBOS
 	
-; 0x185ab1
 
-TinTower5F_MapEventHeader: ; 0x185ab1
+TinTower5F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -33,15 +27,14 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 14, 16, $7, MapTinTower5FSignpostItem0
-	signpost 15, 3, $7, MapTinTower5FSignpostItem1
+	signpost 14, 16, SIGNPOST_ITEM, MapTinTower5FSignpostItem0
+	signpost 15, 3, SIGNPOST_ITEM, MapTinTower5FSignpostItem1
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_POKE_BALL, 13, 13, $1, $0, 255, 255, $1, 0, ItemFragment_0x185aa9, $064f
-; 0x185ae2
+	person_event SPRITE_POKE_BALL, 13, 13, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x185aa9, EVENT_TIN_TOWER_5F_RARE_CANDY
--- a/maps/TinTower6F.asm
+++ b/maps/TinTower6F.asm
@@ -1,31 +1,28 @@
-TinTower6F_MapScriptHeader: ; 0x185ae2
-	; trigger count
+TinTower6F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x185ae4
 
-ItemFragment_0x185ae4: ; 0x185ae4
+ItemFragment_0x185ae4:
 	db MAX_POTION, 1
-; 0x185ae6
 
-TinTower6F_MapEventHeader: ; 0x185ae6
+TinTower6F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_POKE_BALL, 12, 12, $1, $0, 255, 255, $1, 0, ItemFragment_0x185ae4, $07c6
-; 0x185b03
+	person_event SPRITE_POKE_BALL, 12, 12, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x185ae4, EVENT_TIN_TOWER_6F_MAX_POTION
--- a/maps/TinTower7F.asm
+++ b/maps/TinTower7F.asm
@@ -1,20 +1,18 @@
-TinTower7F_MapScriptHeader: ; 0x185b03
-	; trigger count
+TinTower7F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x185b05
 
-ItemFragment_0x185b05: ; 0x185b05
+ItemFragment_0x185b05:
 	db MAX_REVIVE, 1
-; 0x185b07
 
-TinTower7F_MapEventHeader: ; 0x185b07
+TinTower7F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -22,13 +20,12 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_POKE_BALL, 5, 20, $1, $0, 255, 255, $1, 0, ItemFragment_0x185b05, $0650
-; 0x185b33
+	person_event SPRITE_POKE_BALL, 5, 20, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x185b05, EVENT_TIN_TOWER_7F_MAX_REVIVE
--- a/maps/TinTower8F.asm
+++ b/maps/TinTower8F.asm
@@ -1,28 +1,24 @@
-TinTower8F_MapScriptHeader: ; 0x185b33
-	; trigger count
+TinTower8F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x185b35
 
-ItemFragment_0x185b35: ; 0x185b35
+ItemFragment_0x185b35:
 	db NUGGET, 1
-; 0x185b37
 
-ItemFragment_0x185b37: ; 0x185b37
+ItemFragment_0x185b37:
 	db MAX_ELIXER, 1
-; 0x185b39
 
-ItemFragment_0x185b39: ; 0x185b39
+ItemFragment_0x185b39:
 	db FULL_RESTORE, 1
-; 0x185b3b
 
-TinTower8F_MapEventHeader: ; 0x185b3b
+TinTower8F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -31,15 +27,14 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_POKE_BALL, 17, 11, $1, $0, 255, 255, $1, 0, ItemFragment_0x185b35, $0651
-	person_event SPRITE_POKE_BALL, 10, 15, $1, $0, 255, 255, $1, 0, ItemFragment_0x185b37, $0652
-	person_event SPRITE_POKE_BALL, 5, 7, $1, $0, 255, 255, $1, 0, ItemFragment_0x185b39, $0653
-; 0x185b86
+	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
--- a/maps/TinTower9F.asm
+++ b/maps/TinTower9F.asm
@@ -1,30 +1,26 @@
-TinTower9F_MapScriptHeader: ; 0x185b86
-	; trigger count
+TinTower9F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x185b88
 
-ItemFragment_0x185b88: ; 0x185b88
+ItemFragment_0x185b88:
 	db HP_UP, 1
-; 0x185b8a
 
-UnknownText_0x185b8a: ; 0x185b8a
+UnknownText_0x185b8a:
 	text "HO-OH: Shaoooh!"
 	done
-; 0x185b9b
 
-UnknownText_0x185b9b: ; 0x185b9b
+UnknownText_0x185b9b:
 	text "LUGIA: Gyaaan!"
 	done
-; 0x185bab
 
-TinTower9F_MapEventHeader: ; 0x185bab
+TinTower9F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -34,13 +30,12 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_POKE_BALL, 5, 13, $1, $0, 255, 255, $1, 0, ItemFragment_0x185b88, $07c7
-; 0x185be1
+	person_event SPRITE_POKE_BALL, 5, 13, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x185b88, EVENT_TIN_TOWER_9F_HP_UP
--- a/maps/TinTowerRoof.asm
+++ b/maps/TinTowerRoof.asm
@@ -1,34 +1,30 @@
-TinTowerRoof_MapScriptHeader: ; 0x7722b
-	; trigger count
+TinTowerRoof_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 2, UnknownScript_0x77230
-; 0x77230
 
-UnknownScript_0x77230: ; 0x77230
+UnknownScript_0x77230:
 	checkevent EVENT_FOUGHT_HO_OH
 	iftrue UnknownScript_0x77241
 	checkitem RAINBOW_WING
 	iftrue UnknownScript_0x7723e
 	jump UnknownScript_0x77241
-; 0x7723e
 
-UnknownScript_0x7723e: ; 0x7723e
+UnknownScript_0x7723e:
 	appear $2
 	return
-; 0x77241
 
-UnknownScript_0x77241: ; 0x77241
+UnknownScript_0x77241:
 	disappear $2
 	return
-; 0x77244
 
-HoOhScript_0x77244: ; 0x77244
+HoOhScript_0x77244:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x77260
@@ -36,7 +32,7 @@
 	pause 15
 	loadmovesprites
 	setevent EVENT_FOUGHT_HO_OH
-	writecode $3, BATTLETYPE_FORCEITEM
+	writecode VAR_BATTLETYPE, BATTLETYPE_FORCEITEM
 	loadpokedata HO_OH, 60
 	startbattle
 	disappear $2
@@ -43,28 +39,25 @@
 	returnafterbattle
 	setevent EVENT_SET_WHEN_FOUGHT_HO_OH
 	end
-; 0x77260
 
-UnknownText_0x77260: ; 0x77260
+UnknownText_0x77260:
 	text "Shaoooh!"
 	done
-; 0x7726a
 
-TinTowerRoof_MapEventHeader: ; 0x7726a
+TinTowerRoof_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $d, $9, 4, GROUP_TIN_TOWER_9F, MAP_TIN_TOWER_9F
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_HO_OH, 9, 13, $16, $0, 255, 255, $80, 0, HoOhScript_0x77244, $073c
-; 0x77282
+	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
--- a/maps/TohjoFalls.asm
+++ b/maps/TohjoFalls.asm
@@ -1,31 +1,28 @@
-TohjoFalls_MapScriptHeader: ; 0x18db00
-	; trigger count
+TohjoFalls_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18db02
 
-ItemFragment_0x18db02: ; 0x18db02
+ItemFragment_0x18db02:
 	db MOON_STONE, 1
-; 0x18db04
 
-TohjoFalls_MapEventHeader: ; 0x18db04
+TohjoFalls_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_POKE_BALL, 10, 6, $1, $0, 255, 255, $1, 0, ItemFragment_0x18db02, $06a9
-; 0x18db21
+	person_event SPRITE_POKE_BALL, 10, 6, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18db02, EVENT_TOHJO_FALLS_MOON_STONE
--- a/maps/TradeCenter.asm
+++ b/maps/TradeCenter.asm
@@ -1,87 +1,77 @@
-TradeCenter_MapScriptHeader: ; 0x1933dc
-	; trigger count
+TradeCenter_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
-	dw UnknownScript_0x1933e9, $0000
-	dw UnknownScript_0x1933ed, $0000
+	dw .Trigger1, $0000
+	dw .Trigger2, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
-	dbw 2, UnknownScript_0x1933ee
-; 0x1933e9
+	dbw 2, TradeCenter_SetWhichChris
 
-UnknownScript_0x1933e9: ; 0x1933e9
-	priorityjump UnknownScript_0x1933fe
+.Trigger1:
+	priorityjump TradeCenter_Initialize
 	end
-; 0x1933ed
 
-UnknownScript_0x1933ed: ; 0x1933ed
+.Trigger2:
 	end
-; 0x1933ee
 
-UnknownScript_0x1933ee: ; 0x1933ee
-	special Function29f47
-	iffalse UnknownScript_0x1933f9
+TradeCenter_SetWhichChris:
+	special Special_CableClubCheckWhichChris
+	iffalse .Chris2
 	disappear $3
 	appear $2
 	return
-; 0x1933f9
 
-UnknownScript_0x1933f9: ; 0x1933f9
+.Chris2:
 	disappear $2
 	appear $3
 	return
-; 0x1933fe
 
-UnknownScript_0x1933fe: ; 0x1933fe
+TradeCenter_Initialize:
 	dotrigger $1
 	domaptrigger GROUP_POKECENTER_2F, MAP_POKECENTER_2F, $1
 	end
-; 0x193405
 
-MapTradeCenterSignpost1Script: ; 0x193405
-	special Function29ec4
+MapTradeCenterSignpost1Script:
+	special Special_TradeCenter
 	newloadmap $f8
 	end
-; 0x19340b
 
-UnknownScript_0x19340b: ; 0x19340b
+ChrisScript_0x19340b:
 	loadfont
-	writetext UnknownText_0x193412
+	writetext .FriendReadyText
 	closetext
 	loadmovesprites
 	end
-; 0x193412
 
-UnknownText_0x193412: ; 0x193412
+.FriendReadyText:
 	text "Your friend is"
 	line "ready."
 	done
-; 0x193429
 
-TradeCenter_MapEventHeader: ; 0x193429
+TradeCenter_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 4, 4, $3, MapTradeCenterSignpost1Script
-	signpost 4, 5, $4, MapTradeCenterSignpost1Script
+	signpost 4, 4, SIGNPOST_RIGHT, MapTradeCenterSignpost1Script
+	signpost 4, 5, SIGNPOST_LEFT, MapTradeCenterSignpost1Script
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_CHRIS, 8, 7, $9, $0, 255, 255, $0, 0, ChrisScript_0x193499, $0000
-	person_event SPRITE_CHRIS, 8, 10, $8, $0, 255, 255, $0, 0, ChrisScript_0x193499, $0001
-; 0x19345d
+	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
--- a/maps/TrainerHouse1F.asm
+++ b/maps/TrainerHouse1F.asm
@@ -1,44 +1,35 @@
-TrainerHouse1F_MapScriptHeader: ; 0x9af65
-	; trigger count
+TrainerHouse1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9af67
 
-ReceptionistScript_0x9af67: ; 0x9af67
+ReceptionistScript_0x9af67:
 	jumptextfaceplayer UnknownText_0x9af7f
-; 0x9af6a
 
-CooltrainerMScript_0x9af6a: ; 0x9af6a
+CooltrainerMScript_0x9af6a:
 	jumptextfaceplayer UnknownText_0x9b025
-; 0x9af6d
 
-CooltrainerFScript_0x9af6d: ; 0x9af6d
+CooltrainerFScript_0x9af6d:
 	jumptextfaceplayer UnknownText_0x9b0b5
-; 0x9af70
 
-YoungsterScript_0x9af70: ; 0x9af70
+YoungsterScript_0x9af70:
 	jumptextfaceplayer UnknownText_0x9b11d
-; 0x9af73
 
-GentlemanScript_0x9af73: ; 0x9af73
+GentlemanScript_0x9af73:
 	jumptextfaceplayer UnknownText_0x9b1c9
-; 0x9af76
 
-MapTrainerHouse1FSignpost0Script: ; 0x9af76
+MapTrainerHouse1FSignpost0Script:
 	jumptext UnknownText_0x9b1f4
-; 0x9af79
 
-MapTrainerHouse1FSignpost1Script: ; 0x9af79
+MapTrainerHouse1FSignpost1Script:
 	jumptext UnknownText_0x9b25d
-; 0x9af7c
 
-MapTrainerHouse1FSignpost2Script: ; 0x9af7c
+MapTrainerHouse1FSignpost2Script:
 	jumptext UnknownText_0x9b2c1
-; 0x9af7f
 
-UnknownText_0x9af7f: ; 0x9af7f
+UnknownText_0x9af7f:
 	text "Welcome to TRAINER"
 	line "HOUSE, the newest"
 
@@ -54,9 +45,8 @@
 	para "of the best right"
 	line "downstairs."
 	done
-; 0x9b025
 
-UnknownText_0x9b025: ; 0x9b025
+UnknownText_0x9b025:
 	text "VIRIDIAN is the"
 	line "town closest to"
 	cont "INDIGO PLATEAU."
@@ -70,9 +60,8 @@
 	para "way up to INDIGO"
 	line "PLATEAU."
 	done
-; 0x9b0b5
 
-UnknownText_0x9b0b5: ; 0x9b0b5
+UnknownText_0x9b0b5:
 	text "They hold practice"
 	line "battles downstairs"
 	cont "here."
@@ -83,9 +72,8 @@
 	para "trainer from JOHTO"
 	line "battles."
 	done
-; 0x9b11d
 
-UnknownText_0x9b11d: ; 0x9b11d
+UnknownText_0x9b11d:
 	text "I guess you can't"
 	line "become the CHAMP"
 
@@ -101,16 +89,14 @@
 	para "all the cities and"
 	line "towns in KANTO."
 	done
-; 0x9b1c9
 
-UnknownText_0x9b1c9: ; 0x9b1c9
+UnknownText_0x9b1c9:
 	text "Whew… I'm taking a"
 	line "rest from #MON"
 	cont "battles."
 	done
-; 0x9b1f4
 
-UnknownText_0x9b1f4: ; 0x9b1f4
+UnknownText_0x9b1f4:
 	text "Practice battles"
 	line "are held in the"
 
@@ -121,9 +107,8 @@
 	line "are invited to"
 	cont "participate."
 	done
-; 0x9b25d
 
-UnknownText_0x9b25d: ; 0x9b25d
+UnknownText_0x9b25d:
 	text "There are no rules"
 	line "or regulations for"
 
@@ -133,9 +118,8 @@
 	para "battles, anything"
 	line "goes!"
 	done
-; 0x9b2c1
 
-UnknownText_0x9b2c1: ; 0x9b2c1
+UnknownText_0x9b2c1:
 	text "…What's this?"
 	line "A strategy memo?"
 
@@ -145,32 +129,30 @@
 	para "It's completely"
 	line "illegible…"
 	done
-; 0x9b31f
 
-TrainerHouse1F_MapEventHeader: ; 0x9b31f
+TrainerHouse1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 3
-	signpost 0, 5, $0, MapTrainerHouse1FSignpost0Script
-	signpost 0, 7, $0, MapTrainerHouse1FSignpost1Script
-	signpost 10, 7, $0, MapTrainerHouse1FSignpost2Script
+	signpost 0, 5, SIGNPOST_READ, MapTrainerHouse1FSignpost0Script
+	signpost 0, 7, SIGNPOST_READ, MapTrainerHouse1FSignpost1Script
+	signpost 10, 7, SIGNPOST_READ, MapTrainerHouse1FSignpost2Script
 
-	; people-events
+.PersonEvents:
 	db 5
-	person_event SPRITE_RECEPTIONIST, 15, 4, $9, $0, 255, 255, $a0, 0, ReceptionistScript_0x9af67, $ffff
-	person_event SPRITE_COOLTRAINER_M, 15, 11, $7, $0, 255, 255, $0, 0, CooltrainerMScript_0x9af6a, $ffff
-	person_event SPRITE_COOLTRAINER_F, 6, 10, $6, $2, 255, 255, $80, 0, CooltrainerFScript_0x9af6d, $ffff
-	person_event SPRITE_YOUNGSTER, 12, 8, $5, $2, 255, 255, $80, 0, YoungsterScript_0x9af70, $ffff
-	person_event SPRITE_GENTLEMAN, 8, 6, $9, $0, 255, 255, $0, 0, GentlemanScript_0x9af73, $ffff
-; 0x9b384
+	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
--- a/maps/TrainerHouseB1F.asm
+++ b/maps/TrainerHouseB1F.asm
@@ -1,22 +1,20 @@
-TrainerHouseB1F_MapScriptHeader: ; 0x9b384
-	; trigger count
+TrainerHouseB1F_MapScriptHeader:
+.MapTriggers:
 	db 1
 
 	; triggers
 	dw UnknownScript_0x9b38a, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9b38a
 
-UnknownScript_0x9b38a: ; 0x9b38a
+UnknownScript_0x9b38a:
 	end
-; 0x9b38b
 
-UnknownScript_0x9b38b: ; 0x9b38b
+UnknownScript_0x9b38b:
 	spriteface $0, UP
 	loadfont
-	checkflag $0057
+	checkflag ENGINE_FOUGHT_IN_TRAINER_HALL_TODAY
 	iftrue UnknownScript_0x9b3f7
 	writetext UnknownText_0x9b420
 	keeptextopen
@@ -24,17 +22,16 @@
 	iffalse UnknownScript_0x9b3a6
 	trainertotext CAL, CAL2, $0
 	jump UnknownScript_0x9b3aa
-; 0x9b3a6
 
-UnknownScript_0x9b3a6: ; 0x9b3a6
+UnknownScript_0x9b3a6:
 	trainertotext CAL, CAL3, $0
-UnknownScript_0x9b3aa: ; 0x9b3aa
+UnknownScript_0x9b3aa:
 	writetext UnknownText_0x9b46a
 	keeptextopen
 	writetext UnknownText_0x9b487
 	yesorno
 	iffalse UnknownScript_0x9b3ed
-	setflag $0057
+	setflag ENGINE_FOUGHT_IN_TRAINER_HALL_TODAY
 	writetext UnknownText_0x9b4a2
 	closetext
 	loadmovesprites
@@ -51,34 +48,31 @@
 	startbattle
 	returnafterbattle
 	iffalse UnknownScript_0x9b3e8
-UnknownScript_0x9b3dc: ; 0x9b3dc
+UnknownScript_0x9b3dc:
 	winlosstext UnknownText_0x9b578, $0000
 	setlasttalked $3
 	loadtrainer CAL, CAL3
 	startbattle
 	returnafterbattle
-UnknownScript_0x9b3e8: ; 0x9b3e8
+UnknownScript_0x9b3e8:
 	applymovement $0, MovementData_0x9b40f
 	end
-; 0x9b3ed
 
-UnknownScript_0x9b3ed: ; 0x9b3ed
+UnknownScript_0x9b3ed:
 	writetext UnknownText_0x9b4d6
 	closetext
 	loadmovesprites
 	applymovement $0, MovementData_0x9b41d
 	end
-; 0x9b3f7
 
-UnknownScript_0x9b3f7: ; 0x9b3f7
+UnknownScript_0x9b3f7:
 	writetext UnknownText_0x9b51d
 	closetext
 	loadmovesprites
 	applymovement $0, MovementData_0x9b41d
 	end
-; 0x9b401
 
-MovementData_0x9b401: ; 0x9b401
+MovementData_0x9b401:
 	step_left
 	step_left
 	step_left
@@ -93,9 +87,8 @@
 	step_left
 	turn_head_right
 	step_end
-; 0x9b40f
 
-MovementData_0x9b40f: ; 0x9b40f
+MovementData_0x9b40f:
 	step_up
 	step_up
 	step_up
@@ -110,15 +103,13 @@
 	step_right
 	step_right
 	step_end
-; 0x9b41d
 
-MovementData_0x9b41d: ; 0x9b41d
+MovementData_0x9b41d:
 	step_right
 	turn_head_left
 	step_end
-; 0x9b420
 
-UnknownText_0x9b420: ; 0x9b420
+UnknownText_0x9b420:
 	text "Hi. Welcome to our"
 	line "TRAINING HALL."
 
@@ -126,22 +117,19 @@
 	line "trainer once per"
 	cont "day."
 	done
-; 0x9b46a
 
-UnknownText_0x9b46a: ; 0x9b46a
+UnknownText_0x9b46a:
 	text_from_ram StringBuffer3
 	text " is your"
 	line "opponent today."
 	done
-; 0x9b487
 
-UnknownText_0x9b487: ; 0x9b487
+UnknownText_0x9b487:
 	text "Would you like to"
 	line "battle?"
 	done
-; 0x9b4a2
 
-UnknownText_0x9b4a2: ; 0x9b4a2
+UnknownText_0x9b4a2:
 	text "Please go right"
 	line "through."
 
@@ -148,9 +136,8 @@
 	para "You may begin"
 	line "right away."
 	done
-; 0x9b4d6
 
-UnknownText_0x9b4d6: ; 0x9b4d6
+UnknownText_0x9b4d6:
 	text "Sorry. Only those"
 	line "trainers who will"
 
@@ -157,9 +144,8 @@
 	para "be battling are"
 	line "allowed to go in."
 	done
-; 0x9b51d
 
-UnknownText_0x9b51d: ; 0x9b51d
+UnknownText_0x9b51d:
 	text "I'm sorry."
 	line "This would be your"
 
@@ -169,38 +155,34 @@
 	para "to enter just once"
 	line "a day."
 	done
-; 0x9b578
 
-UnknownText_0x9b578: ; 0x9b578
+UnknownText_0x9b578:
 	text "I lost…"
 	line "Darn…"
 	done
-; 0x9b587
 
-UnknownText_0x9b587: ; 0x9b587
+UnknownText_0x9b587:
 	text "I traveled out"
 	line "here just so I"
 	cont "could battle you."
 	done
-; 0x9b5b8
 
-TrainerHouseB1F_MapEventHeader: ; 0x9b5b8
+TrainerHouseB1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $4, $9, 3, GROUP_TRAINER_HOUSE_1F, MAP_TRAINER_HOUSE_1F
 
-	; xy triggers
+.XYTriggers:
 	db 1
 	xy_trigger 0, $3, $7, $0, UnknownScript_0x9b38b, $0, $0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_RECEPTIONIST, 5, 11, $6, $0, 255, 255, $a0, 0, ObjectEvent, $ffff
-	person_event SPRITE_CHRIS, 15, 10, $8, $0, 255, 255, $80, 0, ObjectEvent, $ffff
-; 0x9b5e5
+	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
--- a/maps/Underground.asm
+++ b/maps/Underground.asm
@@ -1,40 +1,34 @@
-Underground_MapScriptHeader: ; 0x74391
-	; trigger count
+Underground_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x74393
 
-MapUndergroundSignpostItem0: ; 0x74393
-	dw $00e5
-	db FULL_RESTORE
+MapUndergroundSignpostItem0:
+	dwb EVENT_UNDERGROUND_HIDDEN_FULL_RESTORE, FULL_RESTORE
 	
-; 0x74396
 
-MapUndergroundSignpostItem1: ; 0x74396
-	dw $00e6
-	db X_SPECIAL
+MapUndergroundSignpostItem1:
+	dwb EVENT_UNDERGROUND_HIDDEN_X_SPECIAL, X_SPECIAL
 	
-; 0x74399
 
-Underground_MapEventHeader: ; 0x74399
+Underground_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 9, 3, $7, MapUndergroundSignpostItem0
-	signpost 19, 1, $7, MapUndergroundSignpostItem1
+	signpost 9, 3, SIGNPOST_ITEM, MapUndergroundSignpostItem0
+	signpost 19, 1, SIGNPOST_ITEM, MapUndergroundSignpostItem1
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x743b3
--- a/maps/UndergroundPathSwitchRoomEntrances.asm
+++ b/maps/UndergroundPathSwitchRoomEntrances.asm
@@ -1,5 +1,5 @@
-UndergroundPathSwitchRoomEntrances_MapScriptHeader: ; 0x7c9e8
-	; trigger count
+UndergroundPathSwitchRoomEntrances_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,86 +6,80 @@
 	dw UnknownScript_0x7c9f5, $0000
 	dw UnknownScript_0x7c9f6, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 1, UnknownScript_0x7c9f7
-; 0x7c9f5
 
-UnknownScript_0x7c9f5: ; 0x7c9f5
+UnknownScript_0x7c9f5:
 	end
-; 0x7c9f6
 
-UnknownScript_0x7c9f6: ; 0x7c9f6
+UnknownScript_0x7c9f6:
 	end
-; 0x7c9f7
 
-UnknownScript_0x7c9f7: ; 0x7c9f7
+UnknownScript_0x7c9f7:
 	checkevent EVENT_SWITCH_4
 	iffalse UnknownScript_0x7ca01
 	changeblock $10, $6, $2d
-UnknownScript_0x7ca01: ; 0x7ca01
+UnknownScript_0x7ca01:
 	checkevent EVENT_SWITCH_5
 	iffalse UnknownScript_0x7ca0b
 	changeblock $a, $6, $2d
-UnknownScript_0x7ca0b: ; 0x7ca0b
+UnknownScript_0x7ca0b:
 	checkevent EVENT_SWITCH_6
 	iffalse UnknownScript_0x7ca15
 	changeblock $2, $6, $2d
-UnknownScript_0x7ca15: ; 0x7ca15
+UnknownScript_0x7ca15:
 	checkevent EVENT_SWITCH_7
 	iffalse UnknownScript_0x7ca1f
 	changeblock $2, $a, $2d
-UnknownScript_0x7ca1f: ; 0x7ca15
+UnknownScript_0x7ca1f:
 	checkevent EVENT_SWITCH_8
 	iffalse UnknownScript_0x7ca29
 	changeblock $a, $a, $2d
-UnknownScript_0x7ca29: ; 0x7ca29
+UnknownScript_0x7ca29:
 	checkevent EVENT_SWITCH_9
 	iffalse UnknownScript_0x7ca33
 	changeblock $10, $a, $2d
-UnknownScript_0x7ca33: ; 0x7ca33
+UnknownScript_0x7ca33:
 	checkevent EVENT_SWITCH_10
 	iffalse UnknownScript_0x7ca41
 	changeblock $c, $6, $2a
 	changeblock $c, $8, $2d
-UnknownScript_0x7ca41: ; 0x7ca41
+UnknownScript_0x7ca41:
 	checkevent EVENT_SWITCH_11
 	iffalse UnknownScript_0x7ca4f
 	changeblock $6, $6, $2a
 	changeblock $6, $8, $2d
-UnknownScript_0x7ca4f: ; 0x7ca4f
+UnknownScript_0x7ca4f:
 	checkevent EVENT_SWITCH_12
 	iffalse UnknownScript_0x7ca5d
 	changeblock $c, $a, $2a
 	changeblock $c, $c, $2d
-UnknownScript_0x7ca5d: ; 0x7ca5d
+UnknownScript_0x7ca5d:
 	checkevent EVENT_SWITCH_13
 	iffalse UnknownScript_0x7ca6b
 	changeblock $6, $a, $2a
 	changeblock $6, $c, $2d
-UnknownScript_0x7ca6b: ; 0x7ca6b
+UnknownScript_0x7ca6b:
 	checkevent EVENT_SWITCH_14
 	iffalse UnknownScript_0x7ca79
 	changeblock $12, $a, $2a
 	changeblock $12, $c, $2d
-UnknownScript_0x7ca79: ; 0x7ca79
+UnknownScript_0x7ca79:
 	return
-; 0x7ca7a
 
-SuperNerdScript_0x7ca7a: ; 0x7ca7a
+SuperNerdScript_0x7ca7a:
 	jumptextfaceplayer UnknownText_0x7d176
-; 0x7ca7d
 
-TeacherScript_0x7ca7d: ; 0x7ca7d
+TeacherScript_0x7ca7d:
 	jumptextfaceplayer UnknownText_0x7d1d0
-; 0x7ca80
 
-UnknownScript_0x7ca80: ; 0x7ca80
+UnknownScript_0x7ca80:
 	spriteface $0, RIGHT
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	special Functionc48f
 	pause 15
 	playsound SFX_EXIT_BUILDING
@@ -101,11 +95,10 @@
 	waitbutton
 	playmapmusic
 	end
-; 0x7caaa
 
-UnknownScript_0x7caaa: ; 0x7caaa
+UnknownScript_0x7caaa:
 	spriteface $0, RIGHT
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	special Functionc48f
 	pause 15
 	playsound SFX_EXIT_BUILDING
@@ -121,20 +114,19 @@
 	waitbutton
 	playmapmusic
 	end
-; 0x7cad4
 
-UnknownScript_0x7cad4: ; 0x7cad4
-	checkevent $06c5
+UnknownScript_0x7cad4:
+	checkevent EVENT_RIVAL_BURNED_TOWER
 	iftrue UnknownScript_0x7cae1
-	setevent $06c5
+	setevent EVENT_RIVAL_BURNED_TOWER
 	domaptrigger GROUP_BURNED_TOWER_1F, MAP_BURNED_TOWER_1F, $1
-UnknownScript_0x7cae1: ; 0x7cae1
+UnknownScript_0x7cae1:
 	playmusic MUSIC_RIVAL_ENCOUNTER
 	loadfont
 	writetext UnknownText_0x7ce9d
 	closetext
 	loadmovesprites
-	setevent $06c1
+	setevent EVENT_RIVAL_UNDERGROUND_PATH
 	checkevent EVENT_GOT_TOTODILE_FROM_ELM
 	iftrue UnknownScript_0x7cb09
 	checkevent EVENT_GOT_CHIKORITA_FROM_ELM
@@ -146,9 +138,8 @@
 	reloadmapmusic
 	returnafterbattle
 	jump UnknownScript_0x7cb29
-; 0x7cb09
 
-UnknownScript_0x7cb09: ; 0x7cb09
+UnknownScript_0x7cb09:
 	winlosstext UnknownText_0x7cf5d, UnknownText_0x7d102
 	setlasttalked $c
 	loadtrainer RIVAL1, RIVAL1_10
@@ -156,9 +147,8 @@
 	reloadmapmusic
 	returnafterbattle
 	jump UnknownScript_0x7cb29
-; 0x7cb19
 
-UnknownScript_0x7cb19: ; 0x7cb19
+UnknownScript_0x7cb19:
 	winlosstext UnknownText_0x7cf5d, UnknownText_0x7d102
 	setlasttalked $c
 	loadtrainer RIVAL1, RIVAL1_11
@@ -166,9 +156,8 @@
 	reloadmapmusic
 	returnafterbattle
 	jump UnknownScript_0x7cb29
-; 0x7cb29
 
-UnknownScript_0x7cb29: ; 0x7cb29
+UnknownScript_0x7cb29:
 	playmusic MUSIC_RIVAL_AFTER
 	loadfont
 	writetext UnknownText_0x7cfc2
@@ -175,29 +164,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x7cb33
 
-TrainerGruntM11: ; 0x7cb33
-	; bit/flag number
-	dw $4fb
+TrainerGruntM11:
+	trainer EVENT_BEAT_ROCKET_GRUNTM_11, GRUNTM, 11, GruntM11SeenText, GruntM11BeatenText, $0000, GruntM11Script
 
-	; trainer group && trainer id
-	db GRUNTM, 11
-
-	; text when seen
-	dw GruntM11SeenText
-
-	; text when trainer beaten
-	dw GruntM11BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GruntM11Script
-; 0x7cb3f
-
-GruntM11Script: ; 0x7cb3f
+GruntM11Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x7d290
@@ -204,29 +175,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x7cb47
 
-TrainerGruntM25: ; 0x7cb47
-	; bit/flag number
-	dw $509
+TrainerGruntM25:
+	trainer EVENT_BEAT_ROCKET_GRUNTM_25, GRUNTM, 25, GruntM25SeenText, GruntM25BeatenText, $0000, GruntM25Script
 
-	; trainer group && trainer id
-	db GRUNTM, 25
-
-	; text when seen
-	dw GruntM25SeenText
-
-	; text when trainer beaten
-	dw GruntM25BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GruntM25Script
-; 0x7cb53
-
-GruntM25Script: ; 0x7cb53
+GruntM25Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x7d347
@@ -233,29 +186,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x7cb5b
 
-TrainerBurglarDuncan: ; 0x7cb5b
-	; bit/flag number
-	dw $42d
+TrainerBurglarDuncan:
+	trainer EVENT_BEAT_BURGLAR_DUNCAN, BURGLAR, DUNCAN, BurglarDuncanSeenText, BurglarDuncanBeatenText, $0000, BurglarDuncanScript
 
-	; trainer group && trainer id
-	db BURGLAR, DUNCAN
-
-	; text when seen
-	dw BurglarDuncanSeenText
-
-	; text when trainer beaten
-	dw BurglarDuncanBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw BurglarDuncanScript
-; 0x7cb67
-
-BurglarDuncanScript: ; 0x7cb67
+BurglarDuncanScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x7d3cf
@@ -262,29 +197,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x7cb6f
 
-TrainerBurglarEddie: ; 0x7cb6f
-	; bit/flag number
-	dw $42e
+TrainerBurglarEddie:
+	trainer EVENT_BEAT_BURGLAR_EDDIE, BURGLAR, EDDIE, BurglarEddieSeenText, BurglarEddieBeatenText, $0000, BurglarEddieScript
 
-	; trainer group && trainer id
-	db BURGLAR, EDDIE
-
-	; text when seen
-	dw BurglarEddieSeenText
-
-	; text when trainer beaten
-	dw BurglarEddieBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw BurglarEddieScript
-; 0x7cb7b
-
-BurglarEddieScript: ; 0x7cb7b
+BurglarEddieScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x7d45b
@@ -291,29 +208,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x7cb83
 
-TrainerGruntM13: ; 0x7cb83
-	; bit/flag number
-	dw $4fd
+TrainerGruntM13:
+	trainer EVENT_BEAT_ROCKET_GRUNTM_13, GRUNTM, 13, GruntM13SeenText, GruntM13BeatenText, $0000, GruntM13Script
 
-	; trainer group && trainer id
-	db GRUNTM, 13
-
-	; text when seen
-	dw GruntM13SeenText
-
-	; text when trainer beaten
-	dw GruntM13BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GruntM13Script
-; 0x7cb8f
-
-GruntM13Script: ; 0x7cb8f
+GruntM13Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x7d51f
@@ -320,29 +219,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x7cb97
 
-TrainerGruntF3: ; 0x7cb97
-	; bit/flag number
-	dw $512
+TrainerGruntF3:
+	trainer EVENT_BEAT_ROCKET_GRUNTF_3, GRUNTF, 3, GruntF3SeenText, GruntF3BeatenText, $0000, GruntF3Script
 
-	; trainer group && trainer id
-	db GRUNTF, 3
-
-	; text when seen
-	dw GruntF3SeenText
-
-	; text when trainer beaten
-	dw GruntF3BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GruntF3Script
-; 0x7cba3
-
-GruntF3Script: ; 0x7cba3
+GruntF3Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x7d5e6
@@ -349,9 +230,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x7cbab
 
-MapUndergroundPathSwitchRoomEntrancesSignpost0Script: ; 0x7cbab
+MapUndergroundPathSwitchRoomEntrancesSignpost0Script:
 	loadfont
 	writetext UnknownText_0x7d554
 	keeptextopen
@@ -365,9 +245,8 @@
 	copyvartobyte UndergroundSwitchPositions
 	setevent EVENT_SWITCH_1
 	jump UnknownScript_0x7cc8d
-; 0x7cbcb
 
-UnknownScript_0x7cbcb: ; 0x7cbcb
+UnknownScript_0x7cbcb:
 	writetext UnknownText_0x7d62d
 	yesorno
 	iffalse UnknownScript_0x7cc8b
@@ -376,9 +255,8 @@
 	copyvartobyte UndergroundSwitchPositions
 	clearevent EVENT_SWITCH_1
 	jump UnknownScript_0x7cc8d
-; 0x7cbe0
 
-MapUndergroundPathSwitchRoomEntrancesSignpost1Script: ; 0x7cbe0
+MapUndergroundPathSwitchRoomEntrancesSignpost1Script:
 	loadfont
 	writetext UnknownText_0x7d643
 	keeptextopen
@@ -392,9 +270,8 @@
 	copyvartobyte UndergroundSwitchPositions
 	setevent EVENT_SWITCH_2
 	jump UnknownScript_0x7cc8d
-; 0x7cc00
 
-UnknownScript_0x7cc00: ; 0x7cc00
+UnknownScript_0x7cc00:
 	writetext UnknownText_0x7d62d
 	yesorno
 	iffalse UnknownScript_0x7cc8b
@@ -403,9 +280,8 @@
 	copyvartobyte UndergroundSwitchPositions
 	clearevent EVENT_SWITCH_2
 	jump UnknownScript_0x7cc8d
-; 0x7cc15
 
-MapUndergroundPathSwitchRoomEntrancesSignpost2Script: ; 0x7cc15
+MapUndergroundPathSwitchRoomEntrancesSignpost2Script:
 	loadfont
 	writetext UnknownText_0x7d65a
 	keeptextopen
@@ -419,9 +295,8 @@
 	copyvartobyte UndergroundSwitchPositions
 	setevent EVENT_SWITCH_3
 	jump UnknownScript_0x7cc8d
-; 0x7cc35
 
-UnknownScript_0x7cc35: ; 0x7cc35
+UnknownScript_0x7cc35:
 	writetext UnknownText_0x7d62d
 	yesorno
 	iffalse UnknownScript_0x7cc8b
@@ -430,9 +305,8 @@
 	copyvartobyte UndergroundSwitchPositions
 	clearevent EVENT_SWITCH_3
 	jump UnknownScript_0x7cc8d
-; 0x7cc4a
 
-MapUndergroundPathSwitchRoomEntrancesSignpost3Script: ; 0x7cc4a
+MapUndergroundPathSwitchRoomEntrancesSignpost3Script:
 	loadfont
 	writetext UnknownText_0x7d671
 	keeptextopen
@@ -448,9 +322,8 @@
 	setevent EVENT_SWITCH_2
 	setevent EVENT_SWITCH_3
 	jump UnknownScript_0x7cc8d
-; 0x7cc70
 
-UnknownScript_0x7cc70: ; 0x7cc70
+UnknownScript_0x7cc70:
 	writetext UnknownText_0x7d62d
 	yesorno
 	iffalse UnknownScript_0x7cc8b
@@ -461,14 +334,12 @@
 	clearevent EVENT_SWITCH_2
 	clearevent EVENT_SWITCH_3
 	jump UnknownScript_0x7cc8d
-; 0x7cc8b
 
-UnknownScript_0x7cc8b: ; 0x7cc8b
+UnknownScript_0x7cc8b:
 	loadmovesprites
 	end
-; 0x7cc8d
 
-UnknownScript_0x7cc8d: ; 0x7cc8d
+UnknownScript_0x7cc8d:
 	copybytetovar UndergroundSwitchPositions
 	if_equal $0, UnknownScript_0x7ccb0
 	if_equal $1, UnknownScript_0x7ccd7
@@ -478,7 +349,7 @@
 	if_equal $5, UnknownScript_0x7cd43
 	if_equal $6, UnknownScript_0x7cd5e
 	if_equal $7, UnknownScript_0x7cd79
-UnknownScript_0x7ccb0: ; 0x7ccb0
+UnknownScript_0x7ccb0:
 	playsound SFX_ENTER_DOOR
 	scall UnknownScript_0x7ce11
 	scall UnknownScript_0x7ce19
@@ -494,9 +365,8 @@
 	reloadmappart
 	loadmovesprites
 	end
-; 0x7ccd7
 
-UnknownScript_0x7ccd7: ; 0x7ccd7
+UnknownScript_0x7ccd7:
 	playsound SFX_ENTER_DOOR
 	scall UnknownScript_0x7cda5
 	scall UnknownScript_0x7cdd5
@@ -508,9 +378,8 @@
 	reloadmappart
 	loadmovesprites
 	end
-; 0x7ccf2
 
-UnknownScript_0x7ccf2: ; 0x7ccf2
+UnknownScript_0x7ccf2:
 	playsound SFX_ENTER_DOOR
 	scall UnknownScript_0x7cdad
 	scall UnknownScript_0x7cde1
@@ -522,9 +391,8 @@
 	reloadmappart
 	loadmovesprites
 	end
-; 0x7cd0d
 
-UnknownScript_0x7cd0d: ; 0x7cd0d
+UnknownScript_0x7cd0d:
 	playsound SFX_ENTER_DOOR
 	scall UnknownScript_0x7cdb5
 	scall UnknownScript_0x7cdd5
@@ -536,9 +404,8 @@
 	reloadmappart
 	loadmovesprites
 	end
-; 0x7cd28
 
-UnknownScript_0x7cd28: ; 0x7cd28
+UnknownScript_0x7cd28:
 	playsound SFX_ENTER_DOOR
 	scall UnknownScript_0x7cdbd
 	scall UnknownScript_0x7cde1
@@ -550,9 +417,8 @@
 	reloadmappart
 	loadmovesprites
 	end
-; 0x7cd43
 
-UnknownScript_0x7cd43: ; 0x7cd43
+UnknownScript_0x7cd43:
 	playsound SFX_ENTER_DOOR
 	scall UnknownScript_0x7cdc5
 	scall UnknownScript_0x7cdd5
@@ -564,9 +430,8 @@
 	reloadmappart
 	loadmovesprites
 	end
-; 0x7cd5e
 
-UnknownScript_0x7cd5e: ; 0x7cd5e
+UnknownScript_0x7cd5e:
 	playsound SFX_ENTER_DOOR
 	scall UnknownScript_0x7cdcd
 	scall UnknownScript_0x7cde1
@@ -578,9 +443,8 @@
 	reloadmappart
 	loadmovesprites
 	end
-; 0x7cd79
 
-UnknownScript_0x7cd79: ; 0x7cd79
+UnknownScript_0x7cd79:
 	playsound SFX_ENTER_DOOR
 	scall UnknownScript_0x7ce11
 	scall UnknownScript_0x7ce19
@@ -598,179 +462,149 @@
 	writebyte $6
 	copyvartobyte UndergroundSwitchPositions
 	end
-; 0x7cda5
 
-UnknownScript_0x7cda5: ; 0x7cda5
+UnknownScript_0x7cda5:
 	changeblock $10, $6, $2d
 	setevent EVENT_SWITCH_4
 	end
-; 0x7cdad
 
-UnknownScript_0x7cdad: ; 0x7cdad
+UnknownScript_0x7cdad:
 	changeblock $a, $6, $2d
 	setevent EVENT_SWITCH_5
 	end
-; 0x7cdb5
 
-UnknownScript_0x7cdb5: ; 0x7cdb5
+UnknownScript_0x7cdb5:
 	changeblock $2, $6, $2d
 	setevent EVENT_SWITCH_6
 	end
-; 0x7cdbd
 
-UnknownScript_0x7cdbd: ; 0x7cdbd
+UnknownScript_0x7cdbd:
 	changeblock $2, $a, $2d
 	setevent EVENT_SWITCH_7
 	end
-; 0x7cdc5
 
-UnknownScript_0x7cdc5: ; 0x7cdc5
+UnknownScript_0x7cdc5:
 	changeblock $a, $a, $2d
 	setevent EVENT_SWITCH_8
 	end
-; 0x7cdcd
 
-UnknownScript_0x7cdcd: ; 0x7cdcd
+UnknownScript_0x7cdcd:
 	changeblock $10, $a, $2d
 	setevent EVENT_SWITCH_9
 	end
-; 0x7cdd5
 
-UnknownScript_0x7cdd5: ; 0x7cdd5
+UnknownScript_0x7cdd5:
 	changeblock $c, $6, $2a
 	changeblock $c, $8, $2d
 	setevent EVENT_SWITCH_10
 	end
-; 0x7cde1
 
-UnknownScript_0x7cde1: ; 0x7cde1
+UnknownScript_0x7cde1:
 	changeblock $6, $6, $2a
 	changeblock $6, $8, $2d
 	setevent EVENT_SWITCH_11
 	end
-; 0x7cded
 
-UnknownScript_0x7cded: ; 0x7cded
+UnknownScript_0x7cded:
 	changeblock $c, $a, $2a
 	changeblock $c, $c, $2d
 	setevent EVENT_SWITCH_12
 	end
-; 0x7cdf9
 
-UnknownScript_0x7cdf9: ; 0x7cdf9
+UnknownScript_0x7cdf9:
 	changeblock $6, $a, $2a
 	changeblock $6, $c, $2d
 	setevent EVENT_SWITCH_13
 	end
-; 0x7ce05
 
-UnknownScript_0x7ce05: ; 0x7ce05
+UnknownScript_0x7ce05:
 	changeblock $12, $a, $2a
 	changeblock $12, $c, $2d
 	setevent EVENT_SWITCH_14
 	end
-; 0x7ce11
 
-UnknownScript_0x7ce11: ; 0x7ce11
+UnknownScript_0x7ce11:
 	changeblock $10, $6, $3e
 	clearevent EVENT_SWITCH_4
 	end
-; 0x7ce19
 
-UnknownScript_0x7ce19: ; 0x7ce19
+UnknownScript_0x7ce19:
 	changeblock $a, $6, $3e
 	clearevent EVENT_SWITCH_5
 	end
-; 0x7ce21
 
-UnknownScript_0x7ce21: ; 0x7ce21
+UnknownScript_0x7ce21:
 	changeblock $2, $6, $3e
 	clearevent EVENT_SWITCH_6
 	end
-; 0x7ce29
 
-UnknownScript_0x7ce29: ; 0x7ce29
+UnknownScript_0x7ce29:
 	changeblock $2, $a, $3e
 	clearevent EVENT_SWITCH_7
 	end
-; 0x7ce31
 
-UnknownScript_0x7ce31: ; 0x7ce31
+UnknownScript_0x7ce31:
 	changeblock $a, $a, $3e
 	clearevent EVENT_SWITCH_8
 	end
-; 0x7ce39
 
-UnknownScript_0x7ce39: ; 0x7ce39
+UnknownScript_0x7ce39:
 	changeblock $10, $a, $3e
 	clearevent EVENT_SWITCH_9
 	end
-; 0x7ce41
 
-UnknownScript_0x7ce41: ; 0x7ce41
+UnknownScript_0x7ce41:
 	changeblock $c, $6, $3f
 	changeblock $c, $8, $3d
 	clearevent EVENT_SWITCH_10
 	end
-; 0x7ce4d
 
-UnknownScript_0x7ce4d: ; 0x7ce4d
+UnknownScript_0x7ce4d:
 	changeblock $6, $6, $3f
 	changeblock $6, $8, $3d
 	clearevent EVENT_SWITCH_11
 	end
-; 0x7ce59
 
-UnknownScript_0x7ce59: ; 0x7ce59
+UnknownScript_0x7ce59:
 	changeblock $c, $a, $3f
 	changeblock $c, $c, $3d
 	clearevent EVENT_SWITCH_12
 	end
-; 0x7ce65
 
-UnknownScript_0x7ce65: ; 0x7ce65
+UnknownScript_0x7ce65:
 	changeblock $6, $a, $3f
 	changeblock $6, $c, $3d
 	clearevent EVENT_SWITCH_13
 	end
-; 0x7ce71
 
-UnknownScript_0x7ce71: ; 0x7ce71
+UnknownScript_0x7ce71:
 	changeblock $12, $a, $3f
 	changeblock $12, $c, $3d
 	clearevent EVENT_SWITCH_14
 	end
-; 0x7ce7d
 
-ItemFragment_0x7ce7d: ; 0x7ce7d
+ItemFragment_0x7ce7d:
 	db SMOKE_BALL, 1
-; 0x7ce7f
 
-ItemFragment_0x7ce7f: ; 0x7ce7f
+ItemFragment_0x7ce7f:
 	db FULL_HEAL, 1
-; 0x7ce81
 
-MapUndergroundPathSwitchRoomEntrancesSignpostItem4: ; 0x7ce81
-	dw $008e
-	db MAX_POTION
+MapUndergroundPathSwitchRoomEntrancesSignpostItem4:
+	dwb EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_HIDDEN_MAX_POTION, MAX_POTION
 	
-; 0x7ce84
 
-MapUndergroundPathSwitchRoomEntrancesSignpostItem5: ; 0x7ce84
-	dw $008f
-	db REVIVE
+MapUndergroundPathSwitchRoomEntrancesSignpostItem5:
+	dwb EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_HIDDEN_REVIVE, REVIVE
 	
-; 0x7ce87
 
-MovementData_0x7ce87: ; 0x7ce87
+MovementData_0x7ce87:
 	step_down
 	step_left
 	step_left
 	step_left
 	step_end
-; 0x7ce8c
 
-MovementData_0x7ce8c: ; 0x7ce8c
+MovementData_0x7ce8c:
 	step_down
 	step_down
 	step_left
@@ -777,17 +611,15 @@
 	step_left
 	step_left
 	step_end
-; 0x7ce92
 
-MovementData_0x7ce92: ; 0x7ce92
+MovementData_0x7ce92:
 	step_right
 	step_right
 	step_right
 	step_up
 	step_end
-; 0x7ce97
 
-MovementData_0x7ce97: ; 0x7ce97
+MovementData_0x7ce97:
 	step_right
 	step_right
 	step_right
@@ -794,9 +626,8 @@
 	step_up
 	step_up
 	step_end
-; 0x7ce9d
 
-UnknownText_0x7ce9d: ; 0x7ce9d
+UnknownText_0x7ce9d:
 	text "Hold it!"
 
 	para "I saw you, so I"
@@ -818,9 +649,8 @@
 	para "But I repay my"
 	line "debts!"
 	done
-; 0x7cf5d
 
-UnknownText_0x7cf5d: ; 0x7cf5d
+UnknownText_0x7cf5d:
 	text "…Why…"
 	line "Why do I lose?"
 
@@ -832,9 +662,8 @@
 
 	para "So why do I lose?"
 	done
-; 0x7cfc2
 
-UnknownText_0x7cfc2: ; 0x7cfc2
+UnknownText_0x7cfc2:
 	text "…I don't under-"
 	line "stand…"
 
@@ -869,9 +698,8 @@
 	para "the world's best"
 	line "#MON trainer!"
 	done
-; 0x7d102
 
-UnknownText_0x7d102: ; 0x7d102
+UnknownText_0x7d102:
 	text "Humph. This is my"
 	line "real power, wimp."
 
@@ -882,9 +710,8 @@
 	line "grind that LANCE"
 	cont "under my heels."
 	done
-; 0x7d176
 
-UnknownText_0x7d176: ; 0x7d176
+UnknownText_0x7d176:
 	text "I was challenged"
 	line "to a battle down-"
 	cont "stairs."
@@ -893,9 +720,8 @@
 	line "there. You'd"
 	cont "better be careful."
 	done
-; 0x7d1d0
 
-UnknownText_0x7d1d0: ; 0x7d1d0
+UnknownText_0x7d1d0:
 	text "There are some"
 	line "shops downstairs…"
 
@@ -905,9 +731,8 @@
 	para "I'm scared to go"
 	line "down there."
 	done
-; 0x7d22b
 
-GruntM11SeenText: ; 0x7d22b
+GruntM11SeenText:
 	text "Open one shutter,"
 	line "another closes."
 
@@ -914,15 +739,13 @@
 	para "Bet you can't get"
 	line "where you want!"
 	done
-; 0x7d26f
 
-GruntM11BeatenText: ; 0x7d26f
+GruntM11BeatenText:
 	text "Drat! I was sunk"
 	line "by indecision!"
 	done
-; 0x7d290
 
-UnknownText_0x7d290: ; 0x7d290
+UnknownText_0x7d290:
 	text "I'm confused too…"
 	line "The switch on the"
 
@@ -929,9 +752,8 @@
 	para "end is the one to"
 	line "press first, but…"
 	done
-; 0x7d2d8
 
-GruntM25SeenText: ; 0x7d2d8
+GruntM25SeenText:
 	text "Kwahaha!"
 
 	para "Confounded by the"
@@ -941,15 +763,13 @@
 	line "a secret if you"
 	cont "can beat me!"
 	done
-; 0x7d335
 
-GruntM25BeatenText: ; 0x7d335
+GruntM25BeatenText:
 	text "Uwww…"
 	line "I blew it."
 	done
-; 0x7d347
 
-UnknownText_0x7d347: ; 0x7d347
+UnknownText_0x7d347:
 	text "All right. A hint!"
 
 	para "Change the order"
@@ -959,27 +779,23 @@
 	line "ways the shutters"
 	cont "open and close."
 	done
-; 0x7d3ae
 
-BurglarDuncanSeenText: ; 0x7d3ae
+BurglarDuncanSeenText:
 	text "Fork over your"
 	line "goodies!"
 	done
-; 0x7d3c7
 
-BurglarDuncanBeatenText: ; 0x7d3c7
+BurglarDuncanBeatenText:
 	text "Mercy!"
 	done
-; 0x7d3cf
 
-UnknownText_0x7d3cf: ; 0x7d3cf
+UnknownText_0x7d3cf:
 	text "Steal and sell!"
 	line "That's basic in"
 	cont "crime, kid!"
 	done
-; 0x7d3fb
 
-BurglarEddieSeenText: ; 0x7d3fb
+BurglarEddieSeenText:
 	text "They ditched this"
 	line "project before"
 	cont "they finished."
@@ -987,14 +803,12 @@
 	para "I'm searching for"
 	line "leftover loot."
 	done
-; 0x7d44c
 
-BurglarEddieBeatenText: ; 0x7d44c
+BurglarEddieBeatenText:
 	text "Over the top!"
 	done
-; 0x7d45b
 
-UnknownText_0x7d45b: ; 0x7d45b
+UnknownText_0x7d45b:
 	text "UNDERGROUND WARE-"
 	line "HOUSE?"
 
@@ -1004,9 +818,8 @@
 	para "There's nothing"
 	line "down there."
 	done
-; 0x7d4b2
 
-GruntM13SeenText: ; 0x7d4b2
+GruntM13SeenText:
 	text "I don't care if"
 	line "you're lost."
 
@@ -1014,28 +827,24 @@
 	line "you're nothing but"
 	cont "a victim!"
 	done
-; 0x7d4fc
 
-GruntM13BeatenText: ; 0x7d4fc
+GruntM13BeatenText:
 	text "Urk! Yeah, think"
 	line "you're cool, huh?"
 	done
-; 0x7d51f
 
-UnknownText_0x7d51f: ; 0x7d51f
+UnknownText_0x7d51f:
 	text "You must have ice"
 	line "in your veins to"
 	cont "dis TEAM ROCKET."
 	done
-; 0x7d554
 
-UnknownText_0x7d554: ; 0x7d554
+UnknownText_0x7d554:
 	text "It's labeled"
 	line "SWITCH 1."
 	done
-; 0x7d56b
 
-GruntF3SeenText: ; 0x7d56b
+GruntF3SeenText:
 	text "Are you lost? No,"
 	line "you can't be."
 
@@ -1046,55 +855,47 @@
 	line "something to be"
 	cont "scared about!"
 	done
-; 0x7d5d6
 
-GruntF3BeatenText: ; 0x7d5d6
+GruntF3BeatenText:
 	text "How could you?"
 	done
-; 0x7d5e6
 
-UnknownText_0x7d5e6: ; 0x7d5e6
+UnknownText_0x7d5e6:
 	text "Go wherever you'd"
 	line "like! Get lost!"
 	cont "See if I care!"
 	done
-; 0x7d617
 
-UnknownText_0x7d617: ; 0x7d617
+UnknownText_0x7d617:
 	text "It's OFF."
 	line "Turn it ON?"
 	done
-; 0x7d62d
 
-UnknownText_0x7d62d: ; 0x7d62d
+UnknownText_0x7d62d:
 	text "It's ON."
 	line "Turn it OFF?"
 	done
-; 0x7d643
 
-UnknownText_0x7d643: ; 0x7d643
+UnknownText_0x7d643:
 	text "It's labeled"
 	line "SWITCH 2."
 	done
-; 0x7d65a
 
-UnknownText_0x7d65a: ; 0x7d65a
+UnknownText_0x7d65a:
 	text "It's labeled"
 	line "SWITCH 3."
 	done
-; 0x7d671
 
-UnknownText_0x7d671: ; 0x7d671
+UnknownText_0x7d671:
 	text "It's labeled"
 	line "EMERGENCY."
 	done
-; 0x7d689
 
-UndergroundPathSwitchRoomEntrances_MapEventHeader: ; 0x7d689
+UndergroundPathSwitchRoomEntrances_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -1106,31 +907,30 @@
 	warp_def $1d, $14, 13, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
 	warp_def $1d, $15, 13, GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY
 
-	; xy triggers
+.XYTriggers:
 	db 2
 	xy_trigger 0, $4, $13, $0, UnknownScript_0x7ca80, $0, $0
 	xy_trigger 0, $5, $13, $0, UnknownScript_0x7caaa, $0, $0
 
-	; signposts
+.Signposts:
 	db 6
-	signpost 1, 16, $0, MapUndergroundPathSwitchRoomEntrancesSignpost0Script
-	signpost 1, 10, $0, MapUndergroundPathSwitchRoomEntrancesSignpost1Script
-	signpost 1, 2, $0, MapUndergroundPathSwitchRoomEntrancesSignpost2Script
-	signpost 11, 20, $0, MapUndergroundPathSwitchRoomEntrancesSignpost3Script
-	signpost 9, 8, $7, MapUndergroundPathSwitchRoomEntrancesSignpostItem4
-	signpost 8, 1, $7, MapUndergroundPathSwitchRoomEntrancesSignpostItem5
+	signpost 1, 16, SIGNPOST_READ, MapUndergroundPathSwitchRoomEntrancesSignpost0Script
+	signpost 1, 10, SIGNPOST_READ, MapUndergroundPathSwitchRoomEntrancesSignpost1Script
+	signpost 1, 2, SIGNPOST_READ, MapUndergroundPathSwitchRoomEntrancesSignpost2Script
+	signpost 11, 20, SIGNPOST_READ, MapUndergroundPathSwitchRoomEntrancesSignpost3Script
+	signpost 9, 8, SIGNPOST_ITEM, MapUndergroundPathSwitchRoomEntrancesSignpostItem4
+	signpost 8, 1, SIGNPOST_ITEM, MapUndergroundPathSwitchRoomEntrancesSignpostItem5
 
-	; people-events
+.PersonEvents:
 	db 11
-	person_event SPRITE_PHARMACIST, 16, 13, $9, $0, 255, 255, $a2, 2, TrainerBurglarDuncan, $06ce
-	person_event SPRITE_PHARMACIST, 12, 8, $8, $0, 255, 255, $a2, 2, TrainerBurglarEddie, $06ce
-	person_event SPRITE_ROCKET, 6, 21, $6, $0, 255, 255, $2, 3, TrainerGruntM13, $06ce
-	person_event SPRITE_ROCKET, 6, 15, $6, $0, 255, 255, $2, 3, TrainerGruntM11, $06ce
-	person_event SPRITE_ROCKET, 6, 7, $6, $0, 255, 255, $2, 3, TrainerGruntM25, $06ce
-	person_event SPRITE_ROCKET_GIRL, 16, 23, $6, $0, 255, 255, $82, 1, TrainerGruntF3, $06ce
-	person_event SPRITE_TEACHER, 31, 7, $6, $0, 255, 255, $0, 0, TeacherScript_0x7ca7d, $ffff
-	person_event SPRITE_SUPER_NERD, 31, 23, $6, $0, 255, 255, $0, 0, SuperNerdScript_0x7ca7a, $ffff
-	person_event SPRITE_POKE_BALL, 16, 5, $1, $0, 255, 255, $1, 0, ItemFragment_0x7ce7d, $0673
-	person_event SPRITE_POKE_BALL, 13, 18, $1, $0, 255, 255, $1, 0, ItemFragment_0x7ce7f, $0674
-	person_event SPRITE_SILVER, 7, 27, $6, $0, 255, 255, $0, 0, ObjectEvent, $06c1
-; 0x7d779
+	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
--- a/maps/UndergroundWarehouse.asm
+++ b/maps/UndergroundWarehouse.asm
@@ -1,16 +1,15 @@
-UndergroundWarehouse_MapScriptHeader: ; 0x7d94b
-	; trigger count
+UndergroundWarehouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 5, UnknownScript_0x7d950
-; 0x7d950
 
-UnknownScript_0x7d950: ; 0x7d950
+UnknownScript_0x7d950:
 	clearevent EVENT_SWITCH_1
 	clearevent EVENT_SWITCH_2
 	clearevent EVENT_SWITCH_3
@@ -29,29 +28,11 @@
 	writebyte $0
 	copyvartobyte UndergroundSwitchPositions
 	return
-; 0x7d983
 
-TrainerGruntM24: ; 0x7d983
-	; bit/flag number
-	dw $508
+TrainerGruntM24:
+	trainer EVENT_BEAT_ROCKET_GRUNTM_24, GRUNTM, 24, GruntM24SeenText, GruntM24BeatenText, $0000, GruntM24Script
 
-	; trainer group && trainer id
-	db GRUNTM, 24
-
-	; text when seen
-	dw GruntM24SeenText
-
-	; text when trainer beaten
-	dw GruntM24BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GruntM24Script
-; 0x7d98f
-
-GruntM24Script: ; 0x7d98f
+GruntM24Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x7da48
@@ -58,29 +39,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x7d997
 
-TrainerGruntM14: ; 0x7d997
-	; bit/flag number
-	dw $4fe
+TrainerGruntM14:
+	trainer EVENT_BEAT_ROCKET_GRUNTM_14, GRUNTM, 14, GruntM14SeenText, GruntM14BeatenText, $0000, GruntM14Script
 
-	; trainer group && trainer id
-	db GRUNTM, 14
-
-	; text when seen
-	dw GruntM14SeenText
-
-	; text when trainer beaten
-	dw GruntM14BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GruntM14Script
-; 0x7d9a3
-
-GruntM14Script: ; 0x7d9a3
+GruntM14Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x7db01
@@ -87,29 +50,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x7d9ab
 
-TrainerGruntM15: ; 0x7d9ab
-	; bit/flag number
-	dw $4ff
+TrainerGruntM15:
+	trainer EVENT_BEAT_ROCKET_GRUNTM_15, GRUNTM, 15, GruntM15SeenText, GruntM15BeatenText, $0000, GruntM15Script
 
-	; trainer group && trainer id
-	db GRUNTM, 15
-
-	; text when seen
-	dw GruntM15SeenText
-
-	; text when trainer beaten
-	dw GruntM15BeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GruntM15Script
-; 0x7d9b7
-
-GruntM15Script: ; 0x7d9b7
+GruntM15Script:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x7db8e
@@ -116,42 +61,37 @@
 	closetext
 	loadmovesprites
 	end
-; 0x7d9bf
 
-GentlemanScript_0x7d9bf: ; 0x7d9bf
+GentlemanScript_0x7d9bf:
 	faceplayer
 	loadfont
-	checkevent $004a
+	checkevent EVENT_RECEIVED_CARD_KEY
 	iftrue UnknownScript_0x7d9de
 	writetext UnknownText_0x7dbc6
 	keeptextopen
 	verbosegiveitem CARD_KEY, 1
-	setevent $004a
-	setevent $0304
-	clearevent $0305
-	clearevent $0306
+	setevent EVENT_RECEIVED_CARD_KEY
+	setevent EVENT_WAREHOUSE_LAYOUT_1
+	clearevent EVENT_WAREHOUSE_LAYOUT_2
+	clearevent EVENT_WAREHOUSE_LAYOUT_3
 	writetext UnknownText_0x7dc5b
 	keeptextopen
-UnknownScript_0x7d9de: ; 0x7d9de
+UnknownScript_0x7d9de:
 	writetext UnknownText_0x7dc8d
 	closetext
 	loadmovesprites
 	end
-; 0x7d9e4
 
-ItemFragment_0x7d9e4: ; 0x7d9e4
+ItemFragment_0x7d9e4:
 	db MAX_ETHER, 1
-; 0x7d9e6
 
-ItemFragment_0x7d9e6: ; 0x7d9e6
-	db TM_35, 1
-; 0x7d9e8
+ItemFragment_0x7d9e6:
+	db TM_SLEEP_TALK, 1
 
-ItemFragment_0x7d9e8: ; 0x7d9e8
+ItemFragment_0x7d9e8:
 	db ULTRA_BALL, 1
-; 0x7d9ea
 
-GruntM24SeenText: ; 0x7d9ea
+GruntM24SeenText:
 	text "How did you get"
 	line "this far?"
 
@@ -159,14 +99,12 @@
 	line "be helped. I'll"
 	cont "dispose of you."
 	done
-; 0x7da34
 
-GruntM24BeatenText: ; 0x7da34
+GruntM24BeatenText:
 	text "I got disposed of…"
 	done
-; 0x7da48
 
-UnknownText_0x7da48: ; 0x7da48
+UnknownText_0x7da48:
 	text "TEAM ROCKET will"
 	line "keep going, wait-"
 	cont "ing for the return"
@@ -175,9 +113,8 @@
 	para "We'll do whatever"
 	line "it takes."
 	done
-; 0x7daa7
 
-GruntM14SeenText: ; 0x7daa7
+GruntM14SeenText:
 	text "You're not going"
 	line "any farther!"
 
@@ -185,22 +122,19 @@
 	line "to my enemies, not"
 	cont "even brats!"
 	done
-; 0x7daf6
 
-GruntM14BeatenText: ; 0x7daf6
+GruntM14BeatenText:
 	text "Blast it!"
 	done
-; 0x7db01
 
-UnknownText_0x7db01: ; 0x7db01
+UnknownText_0x7db01:
 	text "I lost…"
 
 	para "Please forgive me,"
 	line "GIOVANNI!"
 	done
-; 0x7db27
 
-GruntM15SeenText: ; 0x7db27
+GruntM15SeenText:
 	text "Hyuck-hyuck-hyuck!"
 	line "I remember you!"
 
@@ -207,22 +141,19 @@
 	para "You got me good"
 	line "at our hideout!"
 	done
-; 0x7db6b
 
-GruntM15BeatenText: ; 0x7db6b
+GruntM15BeatenText:
 	text "Hyuck-hyuck-hyuck!"
 	line "So, that's how?"
 	done
-; 0x7db8e
 
-UnknownText_0x7db8e: ; 0x7db8e
+UnknownText_0x7db8e:
 	text "Hyuck-hyuck-hyuck!"
 	line "That was a blast!"
 	cont "I'll remember you!"
 	done
-; 0x7dbc6
 
-UnknownText_0x7dbc6: ; 0x7dbc6
+UnknownText_0x7dbc6:
 	text "DIRECTOR: Who?"
 	line "What? You came to"
 	cont "rescue me?"
@@ -240,16 +171,14 @@
 	para "Here. Take this"
 	line "CARD KEY."
 	done
-; 0x7dc5b
 
-UnknownText_0x7dc5b: ; 0x7dc5b
+UnknownText_0x7dc5b:
 	text "DIRECTOR: Use that"
 	line "to open the shut-"
 	cont "ters on 3F."
 	done
-; 0x7dc8d
 
-UnknownText_0x7dc8d: ; 0x7dc8d
+UnknownText_0x7dc8d:
 	text "I'm begging you to"
 	line "help."
 
@@ -274,31 +203,29 @@
 	para "And all the #-"
 	line "MON nationwide!"
 	done
-; 0x7dd84
 
-UndergroundWarehouse_MapEventHeader: ; 0x7dd84
+UndergroundWarehouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 7
-	person_event SPRITE_ROCKET, 12, 13, $7, $0, 255, 255, $2, 3, TrainerGruntM24, $06ce
-	person_event SPRITE_ROCKET, 19, 12, $7, $0, 255, 255, $2, 3, TrainerGruntM14, $06ce
-	person_event SPRITE_ROCKET, 7, 18, $9, $0, 255, 255, $2, 4, TrainerGruntM15, $06ce
-	person_event SPRITE_GENTLEMAN, 12, 16, $3, $0, 255, 255, $0, 0, GentlemanScript_0x7d9bf, $06ce
-	person_event SPRITE_POKE_BALL, 19, 22, $1, $0, 255, 255, $1, 0, ItemFragment_0x7d9e4, $0679
-	person_event SPRITE_POKE_BALL, 13, 17, $1, $0, 255, 255, $1, 0, ItemFragment_0x7d9e6, $067a
-	person_event SPRITE_POKE_BALL, 5, 6, $1, $0, 255, 255, $1, 0, ItemFragment_0x7d9e8, $0655
-; 0x7ddf4
+	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
--- a/maps/UnionCave1F.asm
+++ b/maps/UnionCave1F.asm
@@ -1,32 +1,14 @@
-UnionCave1F_MapScriptHeader: ; 0x59b9a
-	; trigger count
+UnionCave1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x59b9c
 
-TrainerPokemaniacLarry: ; 0x59b9c
-	; bit/flag number
-	dw $4e4
+TrainerPokemaniacLarry:
+	trainer EVENT_BEAT_POKEMANIAC_LARRY, POKEMANIAC, LARRY, PokemaniacLarrySeenText, PokemaniacLarryBeatenText, $0000, PokemaniacLarryScript
 
-	; trainer group && trainer id
-	db POKEMANIAC, LARRY
-
-	; text when seen
-	dw PokemaniacLarrySeenText
-
-	; text when trainer beaten
-	dw PokemaniacLarryBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PokemaniacLarryScript
-; 0x59ba8
-
-PokemaniacLarryScript: ; 0x59ba8
+PokemaniacLarryScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x59d31
@@ -33,29 +15,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x59bb0
 
-TrainerHikerRussell: ; 0x59bb0
-	; bit/flag number
-	dw $525
+TrainerHikerRussell:
+	trainer EVENT_BEAT_HIKER_RUSSELL, HIKER, RUSSELL, HikerRussellSeenText, HikerRussellBeatenText, $0000, HikerRussellScript
 
-	; trainer group && trainer id
-	db HIKER, RUSSELL
-
-	; text when seen
-	dw HikerRussellSeenText
-
-	; text when trainer beaten
-	dw HikerRussellBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw HikerRussellScript
-; 0x59bbc
-
-HikerRussellScript: ; 0x59bbc
+HikerRussellScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x59c6c
@@ -62,29 +26,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x59bc4
 
-TrainerHikerDaniel: ; 0x59bc4
-	; bit/flag number
-	dw $535
+TrainerHikerDaniel:
+	trainer EVENT_BEAT_HIKER_DANIEL, HIKER, DANIEL, HikerDanielSeenText, HikerDanielBeatenText, $0000, HikerDanielScript
 
-	; trainer group && trainer id
-	db HIKER, DANIEL
-
-	; text when seen
-	dw HikerDanielSeenText
-
-	; text when trainer beaten
-	dw HikerDanielBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw HikerDanielScript
-; 0x59bd0
-
-HikerDanielScript: ; 0x59bd0
+HikerDanielScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x59dc9
@@ -91,29 +37,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x59bd8
 
-TrainerFirebreatherBill: ; 0x59bd8
-	; bit/flag number
-	dw $44a
+TrainerFirebreatherBill:
+	trainer EVENT_BEAT_FIREBREATHER_BILL, FIREBREATHER, BILL, FirebreatherBillSeenText, FirebreatherBillBeatenText, $0000, FirebreatherBillScript
 
-	; trainer group && trainer id
-	db FIREBREATHER, BILL
-
-	; text when seen
-	dw FirebreatherBillSeenText
-
-	; text when trainer beaten
-	dw FirebreatherBillBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw FirebreatherBillScript
-; 0x59be4
-
-FirebreatherBillScript: ; 0x59be4
+FirebreatherBillScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x59e6f
@@ -120,29 +48,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x59bec
 
-TrainerFirebreatherRay: ; 0x59bec
-	; bit/flag number
-	dw $44c
+TrainerFirebreatherRay:
+	trainer EVENT_BEAT_FIREBREATHER_RAY, FIREBREATHER, RAY, FirebreatherRaySeenText, FirebreatherRayBeatenText, $0000, FirebreatherRayScript
 
-	; trainer group && trainer id
-	db FIREBREATHER, RAY
-
-	; text when seen
-	dw FirebreatherRaySeenText
-
-	; text when trainer beaten
-	dw FirebreatherRayBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw FirebreatherRayScript
-; 0x59bf8
-
-FirebreatherRayScript: ; 0x59bf8
+FirebreatherRayScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x59efc
@@ -149,29 +59,23 @@
 	closetext
 	loadmovesprites
 	end
-; 0x59c00
 
-ItemFragment_0x59c00: ; 0x59c00
+ItemFragment_0x59c00:
 	db GREAT_BALL, 1
-; 0x59c02
 
-ItemFragment_0x59c02: ; 0x59c02
+ItemFragment_0x59c02:
 	db X_ATTACK, 1
-; 0x59c04
 
-ItemFragment_0x59c04: ; 0x59c04
+ItemFragment_0x59c04:
 	db POTION, 1
-; 0x59c06
 
-ItemFragment_0x59c06: ; 0x59c06
+ItemFragment_0x59c06:
 	db AWAKENING, 1
-; 0x59c08
 
-UnknownScript_0x59c08: ; 0x59c08
+UnknownScript_0x59c08:
 	jumptext UnknownText_0x59f29
-; 0x59c0b
 
-HikerRussellSeenText: ; 0x59c0b
+HikerRussellSeenText:
 	text "You're headed to"
 	line "AZALEA, are you?"
 
@@ -179,14 +83,12 @@
 	line "if you are good"
 	cont "enough to battle."
 	done
-; 0x59c5f
 
-HikerRussellBeatenText: ; 0x59c5f
+HikerRussellBeatenText:
 	text "Oh, oh, oh!"
 	done
-; 0x59c6c
 
-UnknownText_0x59c6c: ; 0x59c6c
+UnknownText_0x59c6c:
 	text "All right, then!"
 	line "I've decided."
 
@@ -194,9 +96,8 @@
 	line "until my #MON"
 	cont "get tougher!"
 	done
-; 0x59cb5
 
-PokemaniacLarrySeenText: ; 0x59cb5
+PokemaniacLarrySeenText:
 	text "I roam far and"
 	line "wide in search of"
 	cont "#MON."
@@ -207,15 +108,13 @@
 	para "Then you're my"
 	line "collecting rival!"
 	done
-; 0x59d1b
 
-PokemaniacLarryBeatenText: ; 0x59d1b
+PokemaniacLarryBeatenText:
 	text "Ugh. My poor #-"
 	line "MON…"
 	done
-; 0x59d31
 
-UnknownText_0x59d31: ; 0x59d31
+UnknownText_0x59d31:
 	text "Every Friday, you"
 	line "can hear #MON"
 
@@ -222,9 +121,8 @@
 	para "roars from deep"
 	line "inside the cave."
 	done
-; 0x59d73
 
-HikerDanielSeenText: ; 0x59d73
+HikerDanielSeenText:
 	text "Whoa! What a"
 	line "surprise!"
 
@@ -231,15 +129,13 @@
 	para "I didn't expect to"
 	line "see anyone here!"
 	done
-; 0x59dae
 
-HikerDanielBeatenText: ; 0x59dae
+HikerDanielBeatenText:
 	text "Whoa! I'm beaten"
 	line "big time!"
 	done
-; 0x59dc9
 
-UnknownText_0x59dc9: ; 0x59dc9
+UnknownText_0x59dc9:
 	text "I was conned into"
 	line "buying a SLOWPOKE-"
 	cont "TAIL."
@@ -247,9 +143,8 @@
 	para "I feel sorry for"
 	line "the poor #MON."
 	done
-; 0x59e15
 
-FirebreatherBillSeenText: ; 0x59e15
+FirebreatherBillSeenText:
 	text "ZUBAT's SUPERSONIC"
 	line "keeps confusing"
 	cont "my #MON."
@@ -257,14 +152,12 @@
 	para "I'm seriously"
 	line "upset about that!"
 	done
-; 0x59e60
 
-FirebreatherBillBeatenText: ; 0x59e60
+FirebreatherBillBeatenText:
 	text "I flamed out!"
 	done
-; 0x59e6f
 
-UnknownText_0x59e6f: ; 0x59e6f
+UnknownText_0x59e6f:
 	text "On weekends, you"
 	line "can hear strange"
 
@@ -271,9 +164,8 @@
 	para "roars from deep in"
 	line "the cave."
 	done
-; 0x59eaf
 
-FirebreatherRaySeenText: ; 0x59eaf
+FirebreatherRaySeenText:
 	text "If it's light, a"
 	line "cave isn't scary."
 
@@ -281,30 +173,26 @@
 	line "#MON aren't"
 	cont "scary."
 	done
-; 0x59ef4
 
-FirebreatherRayBeatenText: ; 0x59ef4
+FirebreatherRayBeatenText:
 	text "FLASH!"
 	done
-; 0x59efc
 
-UnknownText_0x59efc: ; 0x59efc
+UnknownText_0x59efc:
 	text "It's my #MON's"
 	line "fire that lights"
 	cont "up this cave."
 	done
-; 0x59f29
 
-UnknownText_0x59f29: ; 0x59f29
+UnknownText_0x59f29:
 	text "UNION CAVE"
 	done
-; 0x59f35
 
-UnionCave1F_MapEventHeader: ; 0x59f35
+UnionCave1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -311,21 +199,20 @@
 	warp_def $1f, $11, 1, GROUP_ROUTE_33, MAP_ROUTE_33
 	warp_def $3, $11, 4, GROUP_ROUTE_32, MAP_ROUTE_32
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 9
-	person_event SPRITE_POKEFAN_M, 10, 7, $9, $0, 255, 255, $b2, 2, TrainerHikerDaniel, $ffff
-	person_event SPRITE_SUPER_NERD, 25, 8, $a, $0, 255, 255, $92, 3, TrainerPokemaniacLarry, $ffff
-	person_event SPRITE_POKEFAN_M, 12, 15, $a, $0, 255, 255, $b2, 1, TrainerHikerRussell, $ffff
-	person_event SPRITE_FISHER, 31, 19, $8, $0, 255, 255, $82, 4, TrainerFirebreatherRay, $ffff
-	person_event SPRITE_FISHER, 23, 18, $7, $0, 255, 255, $82, 4, TrainerFirebreatherBill, $ffff
-	person_event SPRITE_POKE_BALL, 25, 21, $1, $0, 255, 255, $1, 0, ItemFragment_0x59c00, $065a
-	person_event SPRITE_POKE_BALL, 6, 8, $1, $0, 255, 255, $1, 0, ItemFragment_0x59c02, $065b
-	person_event SPRITE_POKE_BALL, 21, 8, $1, $0, 255, 255, $1, 0, ItemFragment_0x59c04, $065c
-	person_event SPRITE_POKE_BALL, 37, 16, $1, $0, 255, 255, $1, 0, ItemFragment_0x59c06, $065d
-; 0x59fc4
+	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
--- a/maps/UnionCaveB1F.asm
+++ b/maps/UnionCaveB1F.asm
@@ -1,32 +1,14 @@
-UnionCaveB1F_MapScriptHeader: ; 0x59fc4
-	; trigger count
+UnionCaveB1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x59fc6
 
-TrainerPokemaniacAndrew: ; 0x59fc6
-	; bit/flag number
-	dw $4e5
+TrainerPokemaniacAndrew:
+	trainer EVENT_BEAT_POKEMANIAC_ANDREW, POKEMANIAC, ANDREW, PokemaniacAndrewSeenText, PokemaniacAndrewBeatenText, $0000, PokemaniacAndrewScript
 
-	; trainer group && trainer id
-	db POKEMANIAC, ANDREW
-
-	; text when seen
-	dw PokemaniacAndrewSeenText
-
-	; text when trainer beaten
-	dw PokemaniacAndrewBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PokemaniacAndrewScript
-; 0x59fd2
-
-PokemaniacAndrewScript: ; 0x59fd2
+PokemaniacAndrewScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5a181
@@ -33,29 +15,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x59fda
 
-TrainerPokemaniacCalvin: ; 0x59fda
-	; bit/flag number
-	dw $4e6
+TrainerPokemaniacCalvin:
+	trainer EVENT_BEAT_POKEMANIAC_CALVIN, POKEMANIAC, CALVIN, PokemaniacCalvinSeenText, PokemaniacCalvinBeatenText, $0000, PokemaniacCalvinScript
 
-	; trainer group && trainer id
-	db POKEMANIAC, CALVIN
-
-	; text when seen
-	dw PokemaniacCalvinSeenText
-
-	; text when trainer beaten
-	dw PokemaniacCalvinBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PokemaniacCalvinScript
-; 0x59fe6
-
-PokemaniacCalvinScript: ; 0x59fe6
+PokemaniacCalvinScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5a230
@@ -62,29 +26,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x59fee
 
-TrainerHikerPhillip: ; 0x59fee
-	; bit/flag number
-	dw $526
+TrainerHikerPhillip:
+	trainer EVENT_BEAT_HIKER_PHILLIP, HIKER, PHILLIP, HikerPhillipSeenText, HikerPhillipBeatenText, $0000, HikerPhillipScript
 
-	; trainer group && trainer id
-	db HIKER, PHILLIP
-
-	; text when seen
-	dw HikerPhillipSeenText
-
-	; text when trainer beaten
-	dw HikerPhillipBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw HikerPhillipScript
-; 0x59ffa
-
-HikerPhillipScript: ; 0x59ffa
+HikerPhillipScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5a073
@@ -91,29 +37,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5a002
 
-TrainerHikerLeonard: ; 0x5a002
-	; bit/flag number
-	dw $527
+TrainerHikerLeonard:
+	trainer EVENT_BEAT_HIKER_LEONARD, HIKER, LEONARD, HikerLeonardSeenText, HikerLeonardBeatenText, $0000, HikerLeonardScript
 
-	; trainer group && trainer id
-	db HIKER, LEONARD
-
-	; text when seen
-	dw HikerLeonardSeenText
-
-	; text when trainer beaten
-	dw HikerLeonardBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw HikerLeonardScript
-; 0x5a00e
-
-HikerLeonardScript: ; 0x5a00e
+HikerLeonardScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5a0fb
@@ -120,20 +48,17 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5a016
 
-ItemFragment_0x5a016: ; 0x5a016
-	db TM_39, 1
-; 0x5a018
+ItemFragment_0x5a016:
+	db TM_SWIFT, 1
 
-ItemFragment_0x5a018: ; 0x5a018
+ItemFragment_0x5a018:
 	db X_DEFEND, 1
-; 0x5a01a
 
 UnionCaveB1FBoulder:
 	jumpstd strengthboulder
 
-HikerPhillipSeenText: ; 0x5a01d
+HikerPhillipSeenText:
 	text "It's been a while"
 	line "since I last saw"
 	cont "another person."
@@ -141,14 +66,12 @@
 	para "Don't be shy."
 	line "Let's battle!"
 	done
-; 0x5a06a
 
-HikerPhillipBeatenText: ; 0x5a06a
+HikerPhillipBeatenText:
 	text "Uurggh…"
 	done
-; 0x5a073
 
-UnknownText_0x5a073: ; 0x5a073
+UnknownText_0x5a073:
 	text "I've been lost for"
 	line "a long time…"
 
@@ -156,21 +79,18 @@
 	line "here, but I am"
 	cont "soooo hungry!"
 	done
-; 0x5a0bf
 
-HikerLeonardSeenText: ; 0x5a0bf
+HikerLeonardSeenText:
 	text "What do you know!"
 	line "A visitor!"
 	done
-; 0x5a0dd
 
-HikerLeonardBeatenText: ; 0x5a0dd
+HikerLeonardBeatenText:
 	text "Wahahah! You're a"
 	line "feisty one!"
 	done
-; 0x5a0fb
 
-UnknownText_0x5a0fb: ; 0x5a0fb
+UnknownText_0x5a0fb:
 	text "I live down here."
 
 	para "You can, too, if"
@@ -179,30 +99,26 @@
 	para "There's plenty of"
 	line "room, you see."
 	done
-; 0x5a14a
 
-PokemaniacAndrewSeenText: ; 0x5a14a
+PokemaniacAndrewSeenText:
 	text "Who's there?"
 
 	para "Leave me and my"
 	line "#MON alone!"
 	done
-; 0x5a173
 
-PokemaniacAndrewBeatenText: ; 0x5a173
+PokemaniacAndrewBeatenText:
 	text "Go…"
 	line "Go away!"
 	done
-; 0x5a181
 
-UnknownText_0x5a181: ; 0x5a181
+UnknownText_0x5a181:
 	text "Just me and my"
 	line "#MON. I'm de-"
 	cont "lirious with joy."
 	done
-; 0x5a1b0
 
-PokemaniacCalvinSeenText: ; 0x5a1b0
+PokemaniacCalvinSeenText:
 	text "I came all the way"
 	line "here to conduct my"
 	cont "#MON research."
@@ -211,15 +127,13 @@
 	line "my findings in a"
 	cont "real battle!"
 	done
-; 0x5a217
 
-PokemaniacCalvinBeatenText: ; 0x5a217
+PokemaniacCalvinBeatenText:
 	text "You demonstrated"
 	line "on me!"
 	done
-; 0x5a230
 
-UnknownText_0x5a230: ; 0x5a230
+UnknownText_0x5a230:
 	text "I should compile"
 	line "and announce my"
 	cont "study findings."
@@ -228,13 +142,12 @@
 	line "come famous like"
 	cont "PROF.ELM."
 	done
-; 0x5a28e
 
-UnionCaveB1F_MapEventHeader: ; 0x5a28e
+UnionCaveB1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -242,19 +155,18 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 7
-	person_event SPRITE_POKEFAN_M, 8, 13, $a, $0, 255, 255, $b2, 3, TrainerHikerPhillip, $ffff
-	person_event SPRITE_POKEFAN_M, 11, 20, $6, $0, 255, 255, $b2, 3, TrainerHikerLeonard, $ffff
-	person_event SPRITE_SUPER_NERD, 36, 9, $8, $0, 255, 255, $92, 3, TrainerPokemaniacAndrew, $ffff
-	person_event SPRITE_SUPER_NERD, 34, 21, $8, $0, 255, 255, $92, 3, TrainerPokemaniacCalvin, $ffff
-	person_event SPRITE_POKE_BALL, 20, 6, $1, $0, 255, 255, $1, 0, ItemFragment_0x5a016, $065e
-	person_event SPRITE_BOULDER, 14, 11, $19, $0, 255, 255, $0, 0, UnionCaveB1FBoulder, $ffff
-	person_event SPRITE_POKE_BALL, 27, 21, $1, $0, 255, 255, $1, 0, ItemFragment_0x5a018, $065f
-; 0x5a308
+	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
--- a/maps/UnionCaveB2F.asm
+++ b/maps/UnionCaveB2F.asm
@@ -1,62 +1,41 @@
-UnionCaveB2F_MapScriptHeader: ; 0x5a308
-	; trigger count
+UnionCaveB2F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 2, UnknownScript_0x5a30d
-; 0x5a30d
 
-UnknownScript_0x5a30d: ; 0x5a30d
-	checkflag $0059
+UnknownScript_0x5a30d:
+	checkflag ENGINE_UNION_CAVE_LAPRAS
 	iftrue UnknownScript_0x5a319
-	checkcode $b
+	checkcode VAR_WEEKDAY
 	if_equal FRIDAY, UnknownScript_0x5a31c
-UnknownScript_0x5a319: ; 0x5a319
+UnknownScript_0x5a319:
 	disappear $7
 	return
-; 0x5a31c
 
-UnknownScript_0x5a31c: ; 0x5a31c
+UnknownScript_0x5a31c:
 	appear $7
 	return
-; 0x5a31f
 
-SurfScript_0x5a31f: ; 0x5a31f
+SurfScript_0x5a31f:
 	faceplayer
 	cry LAPRAS
 	loadpokedata LAPRAS, 20
 	startbattle
 	disappear $7
-	setflag $0059
+	setflag ENGINE_UNION_CAVE_LAPRAS
 	returnafterbattle
 	end
-; 0x5a32e
 
-TrainerCooltrainermNick: ; 0x5a32e
-	; bit/flag number
-	dw $548
+TrainerCooltrainermNick:
+	trainer EVENT_BEAT_COOLTRAINERM_NICK, COOLTRAINERM, NICK, CooltrainermNickSeenText, CooltrainermNickBeatenText, $0000, CooltrainermNickScript
 
-	; trainer group && trainer id
-	db COOLTRAINERM, NICK
-
-	; text when seen
-	dw CooltrainermNickSeenText
-
-	; text when trainer beaten
-	dw CooltrainermNickBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainermNickScript
-; 0x5a33a
-
-CooltrainermNickScript: ; 0x5a33a
+CooltrainermNickScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5a3f0
@@ -63,29 +42,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5a342
 
-TrainerCooltrainerfGwen: ; 0x5a342
-	; bit/flag number
-	dw $55b
+TrainerCooltrainerfGwen:
+	trainer EVENT_BEAT_COOLTRAINERF_GWEN, COOLTRAINERF, GWEN, CooltrainerfGwenSeenText, CooltrainerfGwenBeatenText, $0000, CooltrainerfGwenScript
 
-	; trainer group && trainer id
-	db COOLTRAINERF, GWEN
-
-	; text when seen
-	dw CooltrainerfGwenSeenText
-
-	; text when trainer beaten
-	dw CooltrainerfGwenBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainerfGwenScript
-; 0x5a34e
-
-CooltrainerfGwenScript: ; 0x5a34e
+CooltrainerfGwenScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5a488
@@ -92,29 +53,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5a356
 
-TrainerCooltrainerfEmma: ; 0x5a356
-	; bit/flag number
-	dw $569
+TrainerCooltrainerfEmma:
+	trainer EVENT_BEAT_COOLTRAINERF_EMMA, COOLTRAINERF, EMMA, CooltrainerfEmmaSeenText, CooltrainerfEmmaBeatenText, $0000, CooltrainerfEmmaScript
 
-	; trainer group && trainer id
-	db COOLTRAINERF, EMMA
-
-	; text when seen
-	dw CooltrainerfEmmaSeenText
-
-	; text when trainer beaten
-	dw CooltrainerfEmmaBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw CooltrainerfEmmaScript
-; 0x5a362
-
-CooltrainerfEmmaScript: ; 0x5a362
+CooltrainerfEmmaScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x5a52b
@@ -121,17 +64,14 @@
 	closetext
 	loadmovesprites
 	end
-; 0x5a36a
 
-ItemFragment_0x5a36a: ; 0x5a36a
+ItemFragment_0x5a36a:
 	db ELIXER, 1
-; 0x5a36c
 
-ItemFragment_0x5a36c: ; 0x5a36c
+ItemFragment_0x5a36c:
 	db HYPER_POTION, 1
-; 0x5a36e
 
-CooltrainermNickSeenText: ; 0x5a36e
+CooltrainermNickSeenText:
 	text "There are two"
 	line "kinds of people."
 
@@ -142,15 +82,13 @@
 	para "What kind of"
 	line "person are you?"
 	done
-; 0x5a3d5
 
-CooltrainermNickBeatenText: ; 0x5a3d5
+CooltrainermNickBeatenText:
 	text "You've got"
 	line "dazzling style!"
 	done
-; 0x5a3f0
 
-UnknownText_0x5a3f0: ; 0x5a3f0
+UnknownText_0x5a3f0:
 	text "Your #MON style"
 	line "is stunning and"
 	cont "colorful, I admit."
@@ -158,28 +96,24 @@
 	para "You'll just keep"
 	line "getting better!"
 	done
-; 0x5a444
 
-CooltrainerfGwenSeenText: ; 0x5a444
+CooltrainerfGwenSeenText:
 	text "I'm in training."
 	line "Care for a round?"
 	done
-; 0x5a467
 
-CooltrainerfGwenBeatenText: ; 0x5a467
+CooltrainerfGwenBeatenText:
 	text "Aww, no! You're"
 	line "too good for me."
 	done
-; 0x5a488
 
-UnknownText_0x5a488: ; 0x5a488
+UnknownText_0x5a488:
 	text "I'm going to train"
 	line "by myself until I"
 	cont "improve."
 	done
-; 0x5a4b6
 
-CooltrainerfEmmaSeenText: ; 0x5a4b6
+CooltrainerfEmmaSeenText:
 	text "If the #MON I"
 	line "liked were there,"
 	cont "I'd go anywhere."
@@ -187,15 +121,13 @@
 	para "That's what a real"
 	line "trainer does."
 	done
-; 0x5a507
 
-CooltrainerfEmmaBeatenText: ; 0x5a507
+CooltrainerfEmmaBeatenText:
 	text "I'd rather pet my"
 	line "babies than this!"
 	done
-; 0x5a52b
 
-UnknownText_0x5a52b: ; 0x5a52b
+UnknownText_0x5a52b:
 	text "Just once a week,"
 	line "a #MON comes to"
 	cont "the water's edge."
@@ -203,28 +135,26 @@
 	para "I wanted to see"
 	line "that #MON…"
 	done
-; 0x5a57a
 
-UnionCaveB2F_MapEventHeader: ; 0x5a57a
+UnionCaveB2F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $3, $5, 5, GROUP_UNION_CAVE_B1F, MAP_UNION_CAVE_B1F
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 6
-	person_event SPRITE_ROCKER, 23, 19, $6, $0, 255, 255, $82, 3, TrainerCooltrainermNick, $ffff
-	person_event SPRITE_COOLTRAINER_F, 17, 9, $a, $0, 255, 255, $82, 1, TrainerCooltrainerfGwen, $ffff
-	person_event SPRITE_COOLTRAINER_F, 34, 7, $7, $0, 255, 255, $82, 3, TrainerCooltrainerfEmma, $ffff
-	person_event SPRITE_POKE_BALL, 6, 20, $1, $0, 255, 255, $1, 0, ItemFragment_0x5a36a, $0660
-	person_event SPRITE_POKE_BALL, 23, 16, $1, $0, 255, 255, $1, 0, ItemFragment_0x5a36c, $0661
-	person_event SPRITE_SURF, 35, 15, $24, $11, 255, 255, $90, 0, SurfScript_0x5a31f, $0760
-; 0x5a5d3
+	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
--- a/maps/VermilionCity.asm
+++ b/maps/VermilionCity.asm
@@ -1,8 +1,8 @@
 VermilionCity_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -48,7 +48,7 @@
 	pause 15
 	cry SNORLAX
 	loadmovesprites
-	writecode $3, BATTLETYPE_FORCEITEM
+	writecode VAR_BATTLETYPE, BATTLETYPE_FORCEITEM
 	loadpokedata SNORLAX, 50
 	startbattle
 	disappear $6
@@ -61,7 +61,7 @@
 	loadfont
 	checkevent EVENT_GOT_HP_UP_FROM_VERMILION_GUY
 	iftrue .AlreadyGotItem
-	checkcode $7
+	checkcode VAR_BADGES
 	if_equal 16, .AllBadges
 	if_greater_than 13, .MostBadges
 	if_greater_than 9, .SomeBadges
@@ -117,8 +117,7 @@
 	jumpstd martsign
 
 MapVermilionCitySignpostItem7:
-	dw $00fc
-	db FULL_HEAL
+	dwb EVENT_VERMILION_CITY_HIDDEN_FULL_HEAL, FULL_HEAL
 
 UnknownText_0x1aaa15:
 	text "VERMILION PORT is"
@@ -266,7 +265,7 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -279,25 +278,25 @@
 	warp_def $1f, $14, 2, GROUP_VERMILION_PORT_PASSAGE, MAP_VERMILION_PORT_PASSAGE
 	warp_def $7, $22, 1, GROUP_DIGLETTS_CAVE, MAP_DIGLETTS_CAVE
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 8
-	signpost 3, 25, $0, VermilionCitySign
-	signpost 19, 5, $0, VermilionGymSign
-	signpost 13, 5, $0, PokemonFanClubSign
-	signpost 9, 33, $0, VermilionCityDiglettsCaveSign
-	signpost 15, 27, $0, VermilionCityPortSign
-	signpost 5, 10, $0, VermilionCityPokeCenterSign
-	signpost 13, 22, $0, VermilionCityMartSign
-	signpost 19, 12, $7, MapVermilionCitySignpostItem7
+	signpost 3, 25, SIGNPOST_READ, VermilionCitySign
+	signpost 19, 5, SIGNPOST_READ, VermilionGymSign
+	signpost 13, 5, SIGNPOST_READ, PokemonFanClubSign
+	signpost 9, 33, SIGNPOST_READ, VermilionCityDiglettsCaveSign
+	signpost 15, 27, SIGNPOST_READ, VermilionCityPortSign
+	signpost 5, 10, SIGNPOST_READ, VermilionCityPokeCenterSign
+	signpost 13, 22, SIGNPOST_READ, VermilionCityMartSign
+	signpost 19, 12, SIGNPOST_ITEM, MapVermilionCitySignpostItem7
 
-	; people-events
+.PersonEvents:
 	db 6
-	person_event SPRITE_TEACHER, 13, 22, $2, $11, 255, 255, $0, 0, TeacherScript_0x1aa983, $ffff
-	person_event SPRITE_GRAMPS, 10, 27, $9, $0, 255, 255, $0, 0, GrampsScript_0x1aa986, $ffff
-	person_event SPRITE_MACHOP, 11, 30, $16, $0, 255, 255, $90, 0, VermilionMachop, $ffff
-	person_event SPRITE_SUPER_NERD, 20, 18, $2, $11, 255, 255, $a0, 0, SuperNerdScript_0x1aa99b, $ffff
-	person_event SPRITE_BIG_SNORLAX, 12, 38, $15, $0, 255, 255, $0, 0, VermilionSnorlax, $0770
-	person_event SPRITE_POKEFAN_M, 16, 35, $6, $0, 255, 255, $80, 0, VermilionGymBadgeGuy, $ffff
+	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
--- a/maps/VermilionGym.asm
+++ b/maps/VermilionGym.asm
@@ -1,16 +1,15 @@
-VermilionGym_MapScriptHeader: ; 0x1920a3
-	; trigger count
+VermilionGym_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1920a5
 
-SurgeScript_0x1920a5: ; 0x1920a5
+SurgeScript_0x1920a5:
 	faceplayer
 	loadfont
-	checkflag $0025
-	iftrue UnknownScript_0x1920d9
+	checkflag ENGINE_THUNDERBADGE
+	iftrue .FightDone
 	writetext UnknownText_0x192142
 	closetext
 	loadmovesprites
@@ -26,41 +25,22 @@
 	writetext UnknownText_0x192277
 	playsound SFX_GET_BADGE
 	waitbutton
-	setflag $0025
+	setflag ENGINE_THUNDERBADGE
 	writetext UnknownText_0x192291
 	closetext
 	loadmovesprites
 	end
-; 0x1920d9
 
-UnknownScript_0x1920d9: ; 0x1920d9
+.FightDone
 	writetext UnknownText_0x192303
 	closetext
 	loadmovesprites
 	end
-; 0x1920df
 
-TrainerGentlemanGregory: ; 0x1920df
-	; bit/flag number
-	dw $49c
+TrainerGentlemanGregory:
+	trainer EVENT_BEAT_GENTLEMAN_GREGORY, GENTLEMAN, GREGORY, GentlemanGregorySeenText, GentlemanGregoryBeatenText, $0000, GentlemanGregoryScript
 
-	; trainer group && trainer id
-	db GENTLEMAN, GREGORY
-
-	; text when seen
-	dw GentlemanGregorySeenText
-
-	; text when trainer beaten
-	dw GentlemanGregoryBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GentlemanGregoryScript
-; 0x1920eb
-
-GentlemanGregoryScript: ; 0x1920eb
+GentlemanGregoryScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1923b0
@@ -67,29 +47,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x1920f3
 
-TrainerGuitaristVincent: ; 0x1920f3
-	; bit/flag number
-	dw $494
+TrainerGuitaristVincent:
+	trainer EVENT_BEAT_GUITARIST_VINCENT, GUITARIST, VINCENT, GuitaristVincentSeenText, GuitaristVincentBeatenText, $0000, GuitaristVincentScript
 
-	; trainer group && trainer id
-	db GUITARIST, VINCENT
-
-	; text when seen
-	dw GuitaristVincentSeenText
-
-	; text when trainer beaten
-	dw GuitaristVincentBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw GuitaristVincentScript
-; 0x1920ff
-
-GuitaristVincentScript: ; 0x1920ff
+GuitaristVincentScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x19244b
@@ -96,29 +58,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x192107
 
-TrainerJugglerHorton: ; 0x192107
-	; bit/flag number
-	dw $497
+TrainerJugglerHorton:
+	trainer EVENT_BEAT_JUGGLER_HORTON, JUGGLER, HORTON, JugglerHortonSeenText, JugglerHortonBeatenText, $0000, JugglerHortonScript
 
-	; trainer group && trainer id
-	db JUGGLER, HORTON
-
-	; text when seen
-	dw JugglerHortonSeenText
-
-	; text when trainer beaten
-	dw JugglerHortonBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw JugglerHortonScript
-; 0x192113
-
-JugglerHortonScript: ; 0x192113
+JugglerHortonScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x1924d6
@@ -125,9 +69,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19211b
 
-VermilionGymGuyScript: ; 0x19211b
+VermilionGymGuyScript:
 	faceplayer
 	loadfont
 	checkevent EVENT_BEAT_LTSURGE
@@ -142,11 +85,9 @@
 	closetext
 	loadmovesprites
 	end
-; 0x19212f
 
-MapVermilionGymSignpost14Script: ; 0x19212f
+MapVermilionGymSignpost14Script:
 	jumptext UnknownText_0x19261e
-; 0x192132
 
 VermilionGymStatue:
 	checkflag ENGINE_THUNDERBADGE
@@ -156,7 +97,7 @@
 	trainertotext LT_SURGE, 1, $1
 	jumpstd gymstatue2
 
-UnknownText_0x192142: ; 0x192142
+UnknownText_0x192142:
 	text "SURGE: Hey, you"
 	line "little tyke!"
 
@@ -178,9 +119,8 @@
 	line "like I did my"
 	cont "enemies in war!"
 	done
-; 0x192238
 
-UnknownText_0x192238: ; 0x192238
+UnknownText_0x192238:
 	text "SURGE: Arrrgh!"
 	line "You are strong!"
 
@@ -187,15 +127,13 @@
 	para "OK, kid. You get"
 	line "THUNDERBADGE!"
 	done
-; 0x192277
 
-UnknownText_0x192277: ; 0x192277
+UnknownText_0x192277:
 	text "<PLAYER> received"
 	line "THUNDERBADGE."
 	done
-; 0x192291
 
-UnknownText_0x192291: ; 0x192291
+UnknownText_0x192291:
 	text "SURGE: THUNDER-"
 	line "BADGE increases"
 	cont "#MON's speed. "
@@ -206,9 +144,8 @@
 	para "me. You wear it"
 	line "proudly, hear?"
 	done
-; 0x192303
 
-UnknownText_0x192303: ; 0x192303
+UnknownText_0x192303:
 	text "SURGE: Hey, kid!"
 	line "Still slugging and"
 	cont "chugging away?"
@@ -216,9 +153,8 @@
 	para "My #MON and I"
 	line "are still at it!"
 	done
-; 0x192356
 
-GentlemanGregorySeenText: ; 0x192356
+GentlemanGregorySeenText:
 	text "You're here to"
 	line "defeat LT.SURGE?"
 
@@ -225,16 +161,14 @@
 	para "Not if I can help"
 	line "it!"
 	done
-; 0x19238c
 
-GentlemanGregoryBeatenText: ; 0x19238c
+GentlemanGregoryBeatenText:
 	text "Sorry I failed"
 	line "you, LT.SURGE,"
 	cont "sir!"
 	done
-; 0x1923b0
 
-UnknownText_0x1923b0: ; 0x1923b0
+UnknownText_0x1923b0:
 	text "When I was still"
 	line "in the army, LT."
 
@@ -241,9 +175,8 @@
 	para "SURGE saved my"
 	line "life."
 	done
-; 0x1923e8
 
-GuitaristVincentSeenText: ; 0x1923e8
+GuitaristVincentSeenText:
 	text "LT.SURGE recog-"
 	line "nized my potential"
 
@@ -253,14 +186,12 @@
 	para "Think you can beat"
 	line "me?"
 	done
-; 0x192437
 
-GuitaristVincentBeatenText: ; 0x192437
+GuitaristVincentBeatenText:
 	text "Ooh, how shocking!"
 	done
-; 0x19244b
 
-UnknownText_0x19244b: ; 0x19244b
+UnknownText_0x19244b:
 	text "If the GYM's traps"
 	line "were working, you"
 
@@ -267,22 +198,19 @@
 	para "would have been"
 	line "toast…"
 	done
-; 0x192487
 
-JugglerHortonSeenText: ; 0x192487
+JugglerHortonSeenText:
 	text "I'm going to take"
 	line "you down! Prepare"
 	cont "to be shocked!"
 	done
-; 0x1924ba
 
-JugglerHortonBeatenText: ; 0x1924ba
+JugglerHortonBeatenText:
 	text "Gwaaah!"
 	line "I was overpowered…"
 	done
-; 0x1924d6
 
-UnknownText_0x1924d6: ; 0x1924d6
+UnknownText_0x1924d6:
 	text "Don't get too com-"
 	line "fortable about"
 
@@ -289,9 +217,8 @@
 	para "beating me…"
 	line "LT.SURGE is tough."
 	done
-; 0x192517
 
-VermilionGymGuyText: ; 0x192517
+VermilionGymGuyText:
 	text "Yo! CHAMP in"
 	line "making!"
 
@@ -312,9 +239,8 @@
 	line "problem getting to"
 	cont "LT.SURGE."
 	done
-; 0x1925df
 
-VermilionGymGuyWinText: ; 0x1925df
+VermilionGymGuyWinText:
 	text "Whew! That was an"
 	line "electrifying bout!"
 
@@ -321,51 +247,48 @@
 	para "It sure made me"
 	line "nervous."
 	done
-; 0x19261e
 
-UnknownText_0x19261e: ; 0x19261e
+UnknownText_0x19261e:
 	text "Nope! Nothing here"
 	line "but trash."
 	done
-; 0x19263d
 
-VermilionGym_MapEventHeader: ; 0x19263d
+VermilionGym_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 17
-	signpost 7, 1, $0, MapVermilionGymSignpost14Script
-	signpost 7, 3, $0, MapVermilionGymSignpost14Script
-	signpost 7, 5, $0, MapVermilionGymSignpost14Script
-	signpost 7, 7, $0, MapVermilionGymSignpost14Script
-	signpost 7, 9, $0, MapVermilionGymSignpost14Script
-	signpost 9, 1, $0, MapVermilionGymSignpost14Script
-	signpost 9, 3, $0, MapVermilionGymSignpost14Script
-	signpost 9, 5, $0, MapVermilionGymSignpost14Script
-	signpost 9, 7, $0, MapVermilionGymSignpost14Script
-	signpost 9, 9, $0, MapVermilionGymSignpost14Script
-	signpost 11, 1, $0, MapVermilionGymSignpost14Script
-	signpost 11, 3, $0, MapVermilionGymSignpost14Script
-	signpost 11, 5, $0, MapVermilionGymSignpost14Script
-	signpost 11, 7, $0, MapVermilionGymSignpost14Script
-	signpost 11, 9, $0, MapVermilionGymSignpost14Script
-	signpost 15, 3, $0, VermilionGymStatue
-	signpost 15, 6, $0, VermilionGymStatue
+	signpost 7, 1, SIGNPOST_READ, MapVermilionGymSignpost14Script
+	signpost 7, 3, SIGNPOST_READ, MapVermilionGymSignpost14Script
+	signpost 7, 5, SIGNPOST_READ, MapVermilionGymSignpost14Script
+	signpost 7, 7, SIGNPOST_READ, MapVermilionGymSignpost14Script
+	signpost 7, 9, SIGNPOST_READ, MapVermilionGymSignpost14Script
+	signpost 9, 1, SIGNPOST_READ, MapVermilionGymSignpost14Script
+	signpost 9, 3, SIGNPOST_READ, MapVermilionGymSignpost14Script
+	signpost 9, 5, SIGNPOST_READ, MapVermilionGymSignpost14Script
+	signpost 9, 7, SIGNPOST_READ, MapVermilionGymSignpost14Script
+	signpost 9, 9, SIGNPOST_READ, MapVermilionGymSignpost14Script
+	signpost 11, 1, SIGNPOST_READ, MapVermilionGymSignpost14Script
+	signpost 11, 3, SIGNPOST_READ, MapVermilionGymSignpost14Script
+	signpost 11, 5, SIGNPOST_READ, MapVermilionGymSignpost14Script
+	signpost 11, 7, SIGNPOST_READ, MapVermilionGymSignpost14Script
+	signpost 11, 9, SIGNPOST_READ, MapVermilionGymSignpost14Script
+	signpost 15, 3, SIGNPOST_READ, VermilionGymStatue
+	signpost 15, 6, SIGNPOST_READ, VermilionGymStatue
 
-	; people-events
+.PersonEvents:
 	db 5
-	person_event SPRITE_SURGE, 6, 9, $6, $0, 255, 255, $b0, 0, SurgeScript_0x1920a5, $ffff
-	person_event SPRITE_GENTLEMAN, 12, 12, $8, $0, 255, 255, $92, 4, TrainerGentlemanGregory, $ffff
-	person_event SPRITE_ROCKER, 11, 8, $6, $3, 255, 255, $82, 3, TrainerGuitaristVincent, $ffff
-	person_event SPRITE_SUPER_NERD, 14, 4, $9, $0, 255, 255, $92, 4, TrainerJugglerHorton, $ffff
-	person_event SPRITE_GYM_GUY, 19, 11, $6, $0, 255, 255, $90, 1, VermilionGymGuyScript, $ffff
-; 0x1926e3
+	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
--- a/maps/VermilionHouseDiglettsCaveSpeechHouse.asm
+++ b/maps/VermilionHouseDiglettsCaveSpeechHouse.asm
@@ -1,16 +1,14 @@
-VermilionHouseDiglettsCaveSpeechHouse_MapScriptHeader: ; 0x19202f
-	; trigger count
+VermilionHouseDiglettsCaveSpeechHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x192031
 
-GentlemanScript_0x192031: ; 0x192031
+GentlemanScript_0x192031:
 	jumptextfaceplayer UnknownText_0x192034
-; 0x192034
 
-UnknownText_0x192034: ; 0x192034
+UnknownText_0x192034:
 	text "Over many years,"
 	line "DIGLETT dug a"
 	cont "large tunnel."
@@ -18,24 +16,22 @@
 	para "That tunnel goes"
 	line "to a distant town."
 	done
-; 0x192086
 
-VermilionHouseDiglettsCaveSpeechHouse_MapEventHeader: ; 0x192086
+VermilionHouseDiglettsCaveSpeechHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_GENTLEMAN, 7, 5, $4, $10, 255, 255, $80, 0, GentlemanScript_0x192031, $ffff
-; 0x1920a3
+	person_event SPRITE_GENTLEMAN, 7, 5, OW_UP | $0, $10, -1, -1, (PAL_OW_RED << 4) | $80, 0, GentlemanScript_0x192031, -1
--- a/maps/VermilionHouseFishingSpeechHouse.asm
+++ b/maps/VermilionHouseFishingSpeechHouse.asm
@@ -1,8 +1,8 @@
 VermilionHouseFishingSpeechHouse_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
 
 FishingDude:
@@ -51,18 +51,18 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 0, 3, $0, FishingDudesHousePhoto
+	signpost 0, 3, SIGNPOST_READ, FishingDudesHousePhoto
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_FISHING_GURU, 8, 6, $6, $0, 255, 255, $a0, 0, FishingDude, $ffff
+	person_event SPRITE_FISHING_GURU, 8, 6, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, FishingDude, -1
--- a/maps/VermilionMagnetTrainSpeechHouse.asm
+++ b/maps/VermilionMagnetTrainSpeechHouse.asm
@@ -1,23 +1,20 @@
-VermilionMagnetTrainSpeechHouse_MapScriptHeader: ; 0x191eb5
-	; trigger count
+VermilionMagnetTrainSpeechHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x191eb7
 
-PokefanFScript_0x191eb7: ; 0x191eb7
+PokefanFScript_0x191eb7:
 	jumptextfaceplayer UnknownText_0x191ec0
-; 0x191eba
 
-YoungsterScript_0x191eba: ; 0x191eba
+YoungsterScript_0x191eba:
 	jumptextfaceplayer UnknownText_0x191f16
-; 0x191ebd
 
 VermilionMagnetTrainSpeechHouseBookshelf:
 	jumpstd picturebookshelf
 
-UnknownText_0x191ec0: ; 0x191ec0
+UnknownText_0x191ec0:
 	text "Do you know about"
 	line "the MAGNET TRAIN?"
 
@@ -25,34 +22,31 @@
 	line "that goes to GOL-"
 	cont "DENROD in JOHTO."
 	done
-; 0x191f16
 
-UnknownText_0x191f16: ; 0x191f16
+UnknownText_0x191f16:
 	text "I want to go to"
 	line "SAFFRON to see"
 	cont "the MAGNET TRAIN."
 	done
-; 0x191f48
 
-VermilionMagnetTrainSpeechHouse_MapEventHeader: ; 0x191f48
+VermilionMagnetTrainSpeechHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 1, 0, $0, VermilionMagnetTrainSpeechHouseBookshelf
-	signpost 1, 1, $0, VermilionMagnetTrainSpeechHouseBookshelf
+	signpost 1, 0, SIGNPOST_READ, VermilionMagnetTrainSpeechHouseBookshelf
+	signpost 1, 1, SIGNPOST_READ, VermilionMagnetTrainSpeechHouseBookshelf
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_POKEFAN_F, 7, 6, $8, $0, 255, 255, $0, 0, PokefanFScript_0x191eb7, $ffff
-	person_event SPRITE_YOUNGSTER, 7, 4, $a, $0, 255, 255, $a0, 0, YoungsterScript_0x191eba, $ffff
-; 0x191f7c
+	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
--- a/maps/VermilionMart.asm
+++ b/maps/VermilionMart.asm
@@ -1,27 +1,23 @@
-VermilionMart_MapScriptHeader: ; 0x191f7c
-	; trigger count
+VermilionMart_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x191f7e
 
-ClerkScript_0x191f7e: ; 0x191f7e
+ClerkScript_0x191f7e:
 	loadfont
 	pokemart $0, $0016
 	loadmovesprites
 	end
-; 0x191f85
 
-SuperNerdScript_0x191f85: ; 0x191f85
+SuperNerdScript_0x191f85:
 	jumptextfaceplayer UnknownText_0x191f8b
-; 0x191f88
 
-BuenaScript_0x191f88: ; 0x191f88
+BuenaScript_0x191f88:
 	jumptextfaceplayer UnknownText_0x191fca
-; 0x191f8b
 
-UnknownText_0x191f8b: ; 0x191f8b
+UnknownText_0x191f8b:
 	text "TEAM ROCKET is no"
 	line "longer in KANTO."
 
@@ -28,33 +24,30 @@
 	para "That alone makes"
 	line "me happy."
 	done
-; 0x191fca
 
-UnknownText_0x191fca: ; 0x191fca
+UnknownText_0x191fca:
 	text "I'm thinking about"
 	line "going shopping in"
 	cont "SAFFRON."
 	done
-; 0x191ff8
 
-VermilionMart_MapEventHeader: ; 0x191ff8
+VermilionMart_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 7, 5, $9, $0, 255, 255, $0, 0, ClerkScript_0x191f7e, $ffff
-	person_event SPRITE_SUPER_NERD, 6, 9, $6, $0, 255, 255, $80, 0, SuperNerdScript_0x191f85, $ffff
-	person_event SPRITE_BUENA, 10, 12, $5, $1, 255, 255, $a0, 0, BuenaScript_0x191f88, $ffff
-; 0x19202f
+	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
--- a/maps/VermilionPokeCenter1F.asm
+++ b/maps/VermilionPokeCenter1F.asm
@@ -1,16 +1,14 @@
-VermilionPokeCenter1F_MapScriptHeader: ; 0x191601
-	; trigger count
+VermilionPokeCenter1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x191603
 
-NurseScript_0x191603: ; 0x191603
+NurseScript_0x191603:
 	jumpstd pokecenternurse
-; 0x191606
 
-FishingGuruScript_0x191606: ; 0x191606
+FishingGuruScript_0x191606:
 	faceplayer
 	loadfont
 	checkevent EVENT_FOUGHT_SNORLAX
@@ -19,24 +17,20 @@
 	closetext
 	loadmovesprites
 	end
-; 0x191614
 
-UnknownScript_0x191614: ; 0x191614
+UnknownScript_0x191614:
 	writetext UnknownText_0x191698
 	closetext
 	loadmovesprites
 	end
-; 0x19161a
 
-SailorScript_0x19161a: ; 0x19161a
+SailorScript_0x19161a:
 	jumptextfaceplayer UnknownText_0x1916fe
-; 0x19161d
 
-BugCatcherScript_0x19161d: ; 0x19161d
+BugCatcherScript_0x19161d:
 	jumptextfaceplayer UnknownText_0x19173b
-; 0x191620
 
-UnknownText_0x191620: ; 0x191620
+UnknownText_0x191620:
 	text "A sleeping #MON"
 	line "is lying in front"
 	cont "of DIGLETT'S CAVE."
@@ -47,9 +41,8 @@
 	para "it, but how do you"
 	line "wake it up?"
 	done
-; 0x191698
 
-UnknownText_0x191698: ; 0x191698
+UnknownText_0x191698:
 	text "There used to be a"
 	line "sleeping #MON"
 
@@ -59,9 +52,8 @@
 	para "But it seems to"
 	line "have disappeared."
 	done
-; 0x1916fe
 
-UnknownText_0x1916fe: ; 0x1916fe
+UnknownText_0x1916fe:
 	text "The FAST SHIP is a"
 	line "great place to"
 
@@ -68,9 +60,8 @@
 	para "meet and battle"
 	line "trainers."
 	done
-; 0x19173b
 
-UnknownText_0x19173b: ; 0x19173b
+UnknownText_0x19173b:
 	text "Oh? You have some"
 	line "BADGES I've never"
 	cont "seen before."
@@ -78,28 +69,26 @@
 	para "Oh, I get it. You"
 	line "got them in JOHTO."
 	done
-; 0x191791
 
-VermilionPokeCenter1F_MapEventHeader: ; 0x191791
+VermilionPokeCenter1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_NURSE, 5, 7, $6, $0, 255, 255, $0, 0, NurseScript_0x191603, $ffff
-	person_event SPRITE_FISHING_GURU, 6, 11, $6, $0, 255, 255, $80, 0, FishingGuruScript_0x191606, $ffff
-	person_event SPRITE_SAILOR, 9, 10, $4, $10, 255, 255, $90, 0, SailorScript_0x19161a, $ffff
-	person_event SPRITE_BUG_CATCHER, 9, 5, $3, $0, 255, 255, $a0, 0, BugCatcherScript_0x19161d, $ffff
-; 0x1917da
+	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
--- a/maps/VermilionPokeCenter2FBeta.asm
+++ b/maps/VermilionPokeCenter2FBeta.asm
@@ -1,25 +1,23 @@
-VermilionPokeCenter2FBeta_MapScriptHeader: ; 0x1917da
-	; trigger count
+VermilionPokeCenter2FBeta_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x1917dc
 
-VermilionPokeCenter2FBeta_MapEventHeader: ; 0x1917dc
+VermilionPokeCenter2FBeta_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $7, $0, 3, GROUP_VERMILION_POKECENTER_1F, MAP_VERMILION_POKECENTER_1F
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x1917e7
--- a/maps/VermilionPort.asm
+++ b/maps/VermilionPort.asm
@@ -1,5 +1,5 @@
 VermilionPort_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,7 +6,7 @@
 	dw .Trigger1, $0000
 	dw .Trigger2, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -27,12 +27,12 @@
 	applymovement $0, MovementData_0x74ef3
 	appear $2
 	dotrigger $0
-	setevent $0731
-	setevent $0730
-	setevent $0739
-	clearevent $0733
-	setevent $0030
-	setevent $0000
+	setevent EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_1
+	setevent EVENT_FAST_SHIP_CABINS_SE_SSE_GENTLEMAN
+	setevent EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
+	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
 	end
 
@@ -39,7 +39,7 @@
 SailorScript_0x74dc4:
 	faceplayer
 	loadfont
-	checkevent $0000
+	checkevent EVENT_GAVE_KURT_APRICORNS
 	iftrue UnknownScript_0x74e1a
 	writetext UnknownText_0x74f06
 	closetext
@@ -51,10 +51,10 @@
 	waitbutton
 	applymovement $0, MovementData_0x74ef1
 	playsound SFX_EXIT_BUILDING
-	special Function8c084
+	special FadeBlackBGMap
 	waitbutton
-	setevent $073a
-	clearevent $073b
+	setevent EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
+	clearevent EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
 	clearevent EVENT_BEAT_POKEMANIAC_ETHAN
 	clearevent EVENT_BEAT_BURGLAR_COREY
 	clearevent EVENT_BEAT_BUG_CATCHER_KEN
@@ -65,7 +65,7 @@
 	clearevent EVENT_BEAT_TEACHER_SHIRLEY
 	clearevent EVENT_BEAT_SCHOOLBOY_NATE
 	clearevent EVENT_BEAT_SCHOOLBOY_RICKY
-	setevent $002f
+	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
@@ -79,13 +79,13 @@
 
 UnknownScript_0x74e20:
 	spriteface $3, RIGHT
-	checkevent $0000
+	checkevent EVENT_GAVE_KURT_APRICORNS
 	iftrue UnknownScript_0x74e86
-	checkevent $0001
+	checkevent EVENT_RECEIVED_BALLS_FROM_KURT
 	iftrue UnknownScript_0x74e86
 	spriteface $0, LEFT
 	loadfont
-	checkcode $b
+	checkcode VAR_WEEKDAY
 	if_equal MONDAY, UnknownScript_0x74e72
 	if_equal TUESDAY, UnknownScript_0x74e72
 	if_equal THURSDAY, UnknownScript_0x74e7c
@@ -101,7 +101,7 @@
 	writetext UnknownText_0x74fc2
 	closetext
 	loadmovesprites
-	setevent $0001
+	setevent EVENT_RECEIVED_BALLS_FROM_KURT
 	applymovement $0, MovementData_0x74ef8
 	jump SailorScript_0x74dc4
 
@@ -145,9 +145,9 @@
 SailorScript_0x74e97:
 	faceplayer
 	loadfont
-	checkevent $0000
+	checkevent EVENT_GAVE_KURT_APRICORNS
 	iftrue UnknownScript_0x74e1a
-	checkcode $b
+	checkcode VAR_WEEKDAY
 	if_equal MONDAY, UnknownScript_0x74eda
 	if_equal TUESDAY, UnknownScript_0x74eda
 	if_equal THURSDAY, UnknownScript_0x74ee0
@@ -163,7 +163,7 @@
 	writetext UnknownText_0x74fc2
 	closetext
 	loadmovesprites
-	setevent $0001
+	setevent EVENT_RECEIVED_BALLS_FROM_KURT
 	applymovement $0, MovementData_0x74efe
 	jump SailorScript_0x74dc4
 
@@ -194,8 +194,7 @@
 	end
 
 MapVermilionPortSignpostItem0:
-	dw $00eb
-	db IRON
+	dwb EVENT_VERMILION_PORT_HIDDEN_IRON, IRON
 	
 
 MovementData_0x74ef1:
@@ -303,21 +302,21 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 1
 	xy_trigger 0, $b, $7, $0, UnknownScript_0x74e20, $0, $0
 
-	; signposts
+.Signposts:
 	db 1
-	signpost 13, 16, $7, MapVermilionPortSignpostItem0
+	signpost 13, 16, SIGNPOST_ITEM, MapVermilionPortSignpostItem0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_SAILOR, 21, 11, $7, $0, 255, 255, $0, 0, SailorScript_0x74dc4, $072b
-	person_event SPRITE_SAILOR, 15, 10, $9, $0, 255, 255, $0, 0, SailorScript_0x74e97, $ffff
-	person_event SPRITE_SUPER_NERD, 15, 15, $5, $2, 255, 255, $0, 0, SuperNerdScript_0x74ee6, $ffff
+	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
--- a/maps/VermilionPortPassage.asm
+++ b/maps/VermilionPortPassage.asm
@@ -1,28 +1,25 @@
-VermilionPortPassage_MapScriptHeader: ; 0x77018
-	; trigger count
+VermilionPortPassage_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x7701a
 
-TeacherScript_0x7701a: ; 0x7701a
+TeacherScript_0x7701a:
 	jumptextfaceplayer UnknownText_0x7701d
-; 0x7701d
 
-UnknownText_0x7701d: ; 0x7701d
+UnknownText_0x7701d:
 	text "The FAST SHIP"
 	line "sails on Wednes-"
 	cont "days and Sundays"
 	cont "every week."
 	done
-; 0x7705a
 
-VermilionPortPassage_MapEventHeader: ; 0x7705a
+VermilionPortPassage_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -30,13 +27,12 @@
 	warp_def $2, $3, 3, GROUP_VERMILION_PORT_PASSAGE, MAP_VERMILION_PORT_PASSAGE
 	warp_def $e, $3, 1, GROUP_VERMILION_PORT, MAP_VERMILION_PORT
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_TEACHER, 5, 21, $8, $0, 255, 255, $0, 0, TeacherScript_0x7701a, $ffff
-; 0x77086
+	person_event SPRITE_TEACHER, 5, 21, OW_LEFT | $0, $0, -1, -1, $0, 0, TeacherScript_0x7701a, -1
--- a/maps/VictoryRoad.asm
+++ b/maps/VictoryRoad.asm
@@ -1,5 +1,5 @@
-VictoryRoad_MapScriptHeader: ; 0x74486
-	; trigger count
+VictoryRoad_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,22 +6,19 @@
 	dw UnknownScript_0x74490, $0000
 	dw UnknownScript_0x74491, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x74490
 
-UnknownScript_0x74490: ; 0x74490
+UnknownScript_0x74490:
 	end
-; 0x74491
 
-UnknownScript_0x74491: ; 0x74491
+UnknownScript_0x74491:
 	end
-; 0x74492
 
-UnknownScript_0x74492: ; 0x74492
+UnknownScript_0x74492:
 	moveperson $2, $12, $b
 	spriteface $0, DOWN
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	special Functionc48f
 	pause 15
 	appear $2
@@ -32,11 +29,10 @@
 	dotrigger $1
 	playmapmusic
 	end
-; 0x744b5
 
-UnknownScript_0x744b5: ; 0x744b5
+UnknownScript_0x744b5:
 	spriteface $0, DOWN
-	showemote $0, $0, 15
+	showemote EMOTE_SHOCK, $0, 15
 	special Functionc48f
 	pause 15
 	appear $2
@@ -47,9 +43,8 @@
 	dotrigger $1
 	playmapmusic
 	end
-; 0x744d4
 
-UnknownScript_0x744d4: ; 0x744d4
+UnknownScript_0x744d4:
 	spriteface $0, DOWN
 	playmusic MUSIC_RIVAL_ENCOUNTER
 	loadfont
@@ -56,7 +51,7 @@
 	writetext UnknownText_0x7455f
 	closetext
 	loadmovesprites
-	setevent $06c2
+	setevent EVENT_RIVAL_VICTORY_ROAD
 	checkevent EVENT_GOT_TOTODILE_FROM_ELM
 	iftrue UnknownScript_0x744ff
 	checkevent EVENT_GOT_CHIKORITA_FROM_ELM
@@ -68,9 +63,8 @@
 	reloadmapmusic
 	returnafterbattle
 	jump UnknownScript_0x7451f
-; 0x744ff
 
-UnknownScript_0x744ff: ; 0x744ff
+UnknownScript_0x744ff:
 	winlosstext UnknownText_0x7463d, UnknownText_0x747aa
 	setlasttalked $2
 	loadtrainer RIVAL1, RIVAL1_13
@@ -78,9 +72,8 @@
 	reloadmapmusic
 	returnafterbattle
 	jump UnknownScript_0x7451f
-; 0x7450f
 
-UnknownScript_0x7450f: ; 0x7450f
+UnknownScript_0x7450f:
 	winlosstext UnknownText_0x7463d, UnknownText_0x747aa
 	setlasttalked $2
 	loadtrainer RIVAL1, RIVAL1_14
@@ -88,9 +81,8 @@
 	reloadmapmusic
 	returnafterbattle
 	jump UnknownScript_0x7451f
-; 0x7451f
 
-UnknownScript_0x7451f: ; 0x7451f
+UnknownScript_0x7451f:
 	playmusic MUSIC_RIVAL_AFTER
 	loadfont
 	writetext UnknownText_0x746ce
@@ -97,41 +89,31 @@
 	closetext
 	loadmovesprites
 	end
-; 0x74529
 
-ItemFragment_0x74529: ; 0x74529
-	db TM_26, 1
-; 0x7452b
+ItemFragment_0x74529:
+	db TM_EARTHQUAKE, 1
 
-ItemFragment_0x7452b: ; 0x7452b
+ItemFragment_0x7452b:
 	db MAX_REVIVE, 1
-; 0x7452d
 
-ItemFragment_0x7452d: ; 0x7452d
+ItemFragment_0x7452d:
 	db FULL_RESTORE, 1
-; 0x7452f
 
-ItemFragment_0x7452f: ; 0x7452f
+ItemFragment_0x7452f:
 	db FULL_HEAL, 1
-; 0x74531
 
-ItemFragment_0x74531: ; 0x74531
+ItemFragment_0x74531:
 	db HP_UP, 1
-; 0x74533
 
-MapVictoryRoadSignpostItem0: ; 0x74533
-	dw $009e
-	db MAX_POTION
+MapVictoryRoadSignpostItem0:
+	dwb EVENT_VICTORY_ROAD_HIDDEN_MAX_POTION, MAX_POTION
 	
-; 0x74536
 
-MapVictoryRoadSignpostItem1: ; 0x74536
-	dw $009f
-	db FULL_HEAL
+MapVictoryRoadSignpostItem1:
+	dwb EVENT_VICTORY_ROAD_HIDDEN_FULL_HEAL, FULL_HEAL
 	
-; 0x74539
 
-MovementData_0x74539: ; 0x74539
+MovementData_0x74539:
 	step_left
 	step_left
 	step_left
@@ -141,9 +123,8 @@
 	step_up
 	step_up
 	step_end
-; 0x74542
 
-MovementData_0x74542: ; 0x74542
+MovementData_0x74542:
 	step_up
 	step_up
 	step_left
@@ -154,9 +135,8 @@
 	step_up
 	step_up
 	step_end
-; 0x7454c
 
-MovementData_0x7454c: ; 0x7454c
+MovementData_0x7454c:
 	step_down
 	step_down
 	step_right
@@ -166,9 +146,8 @@
 	step_right
 	step_right
 	step_end
-; 0x74555
 
-MovementData_0x74555: ; 0x74555
+MovementData_0x74555:
 	step_down
 	step_down
 	step_right
@@ -179,9 +158,8 @@
 	step_down
 	step_down
 	step_end
-; 0x7455f
 
-UnknownText_0x7455f: ; 0x7455f
+UnknownText_0x7455f:
 	text "Hold it."
 
 	para "…Are you going to"
@@ -206,9 +184,8 @@
 	para "<PLAYER>!"
 	line "I challenge you!"
 	done
-; 0x7463d
 
-UnknownText_0x7463d: ; 0x7463d
+UnknownText_0x7463d:
 	text "…I couldn't win…"
 
 	para "I gave it every-"
@@ -223,9 +200,8 @@
 	para "that dragon master"
 	line "said to me…"
 	done
-; 0x746ce
 
-UnknownText_0x746ce: ; 0x746ce
+UnknownText_0x746ce:
 	text "…I haven't given up"
 	line "on becoming the"
 	cont "greatest trainer…"
@@ -246,9 +222,8 @@
 	para "…Humph! You keep"
 	line "at it until then."
 	done
-; 0x747aa
 
-UnknownText_0x747aa: ; 0x747aa
+UnknownText_0x747aa:
 	text "…Humph!"
 
 	para "When it comes down"
@@ -258,13 +233,12 @@
 	para "I don't need any-"
 	line "thing else."
 	done
-; 0x74802
 
-VictoryRoad_MapEventHeader: ; 0x74802
+VictoryRoad_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -277,22 +251,21 @@
 	warp_def $1b, $0, 8, GROUP_VICTORY_ROAD, MAP_VICTORY_ROAD
 	warp_def $5, $d, 3, GROUP_ROUTE_23, MAP_ROUTE_23
 
-	; xy triggers
+.XYTriggers:
 	db 2
 	xy_trigger 0, $8, $c, $0, UnknownScript_0x74492, $0, $0
 	xy_trigger 0, $8, $d, $0, UnknownScript_0x744b5, $0, $0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 29, 3, $7, MapVictoryRoadSignpostItem0
-	signpost 65, 3, $7, MapVictoryRoadSignpostItem1
+	signpost 29, 3, SIGNPOST_ITEM, MapVictoryRoadSignpostItem0
+	signpost 65, 3, SIGNPOST_ITEM, MapVictoryRoadSignpostItem1
 
-	; people-events
+.PersonEvents:
 	db 6
-	person_event SPRITE_SILVER, 17, 22, $7, $0, 255, 255, $0, 0, ObjectEvent, $06c2
-	person_event SPRITE_POKE_BALL, 32, 7, $1, $0, 255, 255, $1, 0, ItemFragment_0x74529, $06a3
-	person_event SPRITE_POKE_BALL, 52, 16, $1, $0, 255, 255, $1, 0, ItemFragment_0x7452b, $06a4
-	person_event SPRITE_POKE_BALL, 33, 22, $1, $0, 255, 255, $1, 0, ItemFragment_0x7452d, $06a5
-	person_event SPRITE_POKE_BALL, 52, 19, $1, $0, 255, 255, $1, 0, ItemFragment_0x7452f, $06a6
-	person_event SPRITE_POKE_BALL, 42, 11, $1, $0, 255, 255, $1, 0, ItemFragment_0x74531, $06a7
-; 0x748a2
+	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
--- a/maps/VictoryRoadGate.asm
+++ b/maps/VictoryRoadGate.asm
@@ -1,5 +1,5 @@
-VictoryRoadGate_MapScriptHeader: ; 0x9b9f1
-	; trigger count
+VictoryRoadGate_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,30 +6,26 @@
 	dw UnknownScript_0x9b9fb, $0000
 	dw UnknownScript_0x9b9fc, $0000
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9b9fb
 
-UnknownScript_0x9b9fb: ; 0x9b9fb
+UnknownScript_0x9b9fb:
 	end
-; 0x9b9fc
 
-UnknownScript_0x9b9fc: ; 0x9b9fc
+UnknownScript_0x9b9fc:
 	end
-; 0x9b9fd
 
-UnknownScript_0x9b9fd: ; 0x9b9fd
+UnknownScript_0x9b9fd:
 	spriteface $0, LEFT
 	jump UnknownScript_0x9ba04
-; 0x9ba03
 
-OfficerScript_0x9ba03: ; 0x9ba03
+OfficerScript_0x9ba03:
 	faceplayer
-UnknownScript_0x9ba04: ; 0x9ba04
+UnknownScript_0x9ba04:
 	loadfont
 	writetext UnknownText_0x9ba29
 	keeptextopen
-	checkcode $7
+	checkcode VAR_BADGES
 	if_greater_than 7, UnknownScript_0x9ba19
 	writetext UnknownText_0x9ba5f
 	closetext
@@ -36,37 +32,31 @@
 	loadmovesprites
 	applymovement $0, MovementData_0x9ba27
 	end
-; 0x9ba19
 
-UnknownScript_0x9ba19: ; 0x9ba19
+UnknownScript_0x9ba19:
 	writetext UnknownText_0x9bab4
 	closetext
 	loadmovesprites
 	dotrigger $1
 	end
-; 0x9ba21
 
-BlackBeltScript_0x9ba21: ; 0x9ba21
+BlackBeltScript_0x9ba21:
 	jumptextfaceplayer UnknownText_0x9baf1
-; 0x9ba24
 
-BlackBeltScript_0x9ba24: ; 0x9ba24
+BlackBeltScript_0x9ba24:
 	jumptextfaceplayer UnknownText_0x9bb37
-; 0x9ba27
 
-MovementData_0x9ba27: ; 0x9ba27
+MovementData_0x9ba27:
 	step_down
 	step_end
-; 0x9ba29
 
-UnknownText_0x9ba29: ; 0x9ba29
+UnknownText_0x9ba29:
 	text "Only trainers who"
 	line "have proven them-"
 	cont "selves may pass."
 	done
-; 0x9ba5f
 
-UnknownText_0x9ba5f: ; 0x9ba5f
+UnknownText_0x9ba5f:
 	text "You don't have all"
 	line "the GYM BADGES of"
 	cont "JOHTO."
@@ -75,9 +65,8 @@
 	line "can't let you go"
 	cont "through."
 	done
-; 0x9bab4
 
-UnknownText_0x9bab4: ; 0x9bab4
+UnknownText_0x9bab4:
 	text "Oh! The eight"
 	line "BADGES of JOHTO!"
 
@@ -84,9 +73,8 @@
 	para "Please, go right"
 	line "on through!"
 	done
-; 0x9baf1
 
-UnknownText_0x9baf1: ; 0x9baf1
+UnknownText_0x9baf1:
 	text "This way leads to"
 	line "MT.SILVER."
 
@@ -94,9 +82,8 @@
 	line "strong #MON out"
 	cont "there."
 	done
-; 0x9bb37
 
-UnknownText_0x9bb37: ; 0x9bb37
+UnknownText_0x9bb37:
 	text "Off to the #MON"
 	line "LEAGUE, are you?"
 
@@ -106,13 +93,12 @@
 	para "scary, and they're"
 	line "ready for you!"
 	done
-; 0x9bb9b
 
-VictoryRoadGate_MapEventHeader: ; 0x9bb9b
+VictoryRoadGate_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -123,16 +109,15 @@
 	warp_def $7, $1, 2, GROUP_ROUTE_28, MAP_ROUTE_28
 	warp_def $7, $2, 2, GROUP_ROUTE_28, MAP_ROUTE_28
 
-	; xy triggers
+.XYTriggers:
 	db 1
 	xy_trigger 0, $b, $a, $0, UnknownScript_0x9b9fd, $0, $0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_OFFICER, 15, 12, $9, $0, 255, 255, $0, 0, OfficerScript_0x9ba03, $ffff
-	person_event SPRITE_BLACK_BELT, 9, 11, $9, $0, 255, 255, $0, 0, BlackBeltScript_0x9ba21, EVENT_OPENED_MT_SILVER
-	person_event SPRITE_BLACK_BELT, 9, 16, $8, $0, 255, 255, $0, 0, BlackBeltScript_0x9ba24, $0750
-; 0x9bbf8
+	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
--- a/maps/VioletCity.asm
+++ b/maps/VioletCity.asm
@@ -1,8 +1,8 @@
 VioletCity_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -46,7 +46,7 @@
 	applymovement $2, MovementData_0x1a8463
 	playsound SFX_ENTER_DOOR
 	disappear $2
-	clearevent $06cb
+	clearevent EVENT_EARLS_ACADEMY_EARL
 	waitbutton
 	end
 
@@ -90,8 +90,7 @@
 	fruittree $9
 
 MapVioletCitySignpostItem6:
-	dw $00b0
-	db HYPER_POTION
+	dwb EVENT_VIOLET_CITY_HIDDEN_HYPER_POTION, HYPER_POTION
 
 MovementData_0x1a842a:
 	big_step_down
@@ -275,7 +274,7 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -287,26 +286,26 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 7
-	signpost 20, 24, $0, VioletCitySign
-	signpost 17, 15, $0, VioletGymSign
-	signpost 8, 24, $0, SproutTowerSign
-	signpost 17, 27, $0, EarlsPokemonAcademySign
-	signpost 25, 32, $0, VioletCityPokeCenterSign
-	signpost 17, 10, $0, VioletCityMartSign
-	signpost 14, 37, $7, MapVioletCitySignpostItem6
+	signpost 20, 24, SIGNPOST_READ, VioletCitySign
+	signpost 17, 15, SIGNPOST_READ, VioletGymSign
+	signpost 8, 24, SIGNPOST_READ, SproutTowerSign
+	signpost 17, 27, SIGNPOST_READ, EarlsPokemonAcademySign
+	signpost 25, 32, SIGNPOST_READ, VioletCityPokeCenterSign
+	signpost 17, 10, SIGNPOST_READ, VioletCityMartSign
+	signpost 14, 37, SIGNPOST_ITEM, MapVioletCitySignpostItem6
 
-	; people-events
+.PersonEvents:
 	db 8
-	person_event SPRITE_FISHER, 20, 17, $3, $0, 255, 255, $a0, 0, FisherScript_0x1a83bb, $06ca
-	person_event SPRITE_LASS, 32, 32, $2, $22, 255, 255, $a0, 0, LassScript_0x1a8403, $ffff
-	person_event SPRITE_SUPER_NERD, 18, 28, $2, $21, 255, 255, $80, 0, SuperNerdScript_0x1a8406, $ffff
-	person_event SPRITE_GRAMPS, 24, 21, $5, $1, 255, 255, $0, 0, GrampsScript_0x1a8409, $ffff
-	person_event SPRITE_YOUNGSTER, 22, 9, $3, $0, 255, 255, $a0, 0, YoungsterScript_0x1a840c, $ffff
-	person_event SPRITE_FRUIT_TREE, 33, 18, $1, $0, 255, 255, $0, 0, FruitTreeScript_0x1a8425, $ffff
-	person_event SPRITE_POKE_BALL, 5, 8, $1, $0, 255, 255, $1, 0, ItemFragment_0x1a8421, $0643
-	person_event SPRITE_POKE_BALL, 9, 39, $1, $0, 255, 255, $1, 0, ItemFragment_0x1a8423, $0644
+	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
--- a/maps/VioletGym.asm
+++ b/maps/VioletGym.asm
@@ -1,16 +1,15 @@
-VioletGym_MapScriptHeader: ; 0x683c0
-	; trigger count
+VioletGym_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x683c2
 
-FalknerScript_0x683c2: ; 0x683c2
+FalknerScript_0x683c2:
 	faceplayer
 	loadfont
 	checkevent EVENT_BEAT_FALKNER
-	iftrue UnknownScript_0x683ec
+	iftrue .FightDone
 	writetext UnknownText_0x68473
 	closetext
 	loadmovesprites
@@ -23,70 +22,48 @@
 	writetext UnknownText_0x685af
 	playsound SFX_GET_BADGE
 	waitbutton
-	setflag $001b
-	checkcode $7
-	scall UnknownScript_0x68418
-UnknownScript_0x683ec: ; 0x683ec
+	setflag ENGINE_ZEPHYRBADGE
+	checkcode VAR_BADGES
+	scall VioletGymTriggerRockets
+.FightDone
 	checkevent EVENT_GOT_TM31_MUD_SLAP
-	iftrue UnknownScript_0x68412
+	iftrue .SpeechAfterTM
 	setevent EVENT_BEAT_BIRD_KEEPER_ROD
 	setevent EVENT_BEAT_BIRD_KEEPER_ABE
 	domaptrigger GROUP_ELMS_LAB, MAP_ELMS_LAB, $2
-	specialphonecall $3
+	specialphonecall ELMCALL_ASSISTANT
 	writetext UnknownText_0x685c8
 	keeptextopen
-	verbosegiveitem TM_31, 1
-	iffalse UnknownScript_0x68416
+	verbosegiveitem TM_MUD_SLAP, 1
+	iffalse .NoRoomForMudSlap
 	setevent EVENT_GOT_TM31_MUD_SLAP
 	writetext UnknownText_0x68648
 	closetext
 	loadmovesprites
 	end
-; 0x68412
 
-UnknownScript_0x68412: ; 0x68412
+.SpeechAfterTM:
 	writetext UnknownText_0x68735
 	closetext
-UnknownScript_0x68416: ; 0x68416
+.NoRoomForMudSlap:
 	loadmovesprites
 	end
-; 0x68418
 
-UnknownScript_0x68418: ; 0x68418
-	if_equal $7, UnknownScript_0x68424
-	if_equal $6, UnknownScript_0x68421
+VioletGymTriggerRockets:
+	if_equal 7, .RadioTowerRockets
+	if_equal 6, .GoldenrodRockets
 	end
-; 0x68421
 
-UnknownScript_0x68421: ; 0x68421
+.GoldenrodRockets
 	jumpstd goldenrodrockets
-; 0x68424
 
-UnknownScript_0x68424: ; 0x68424
+.RadioTowerRockets
 	jumpstd radiotowerrockets
-; 0x68427
 
-TrainerBird_keeperRod: ; 0x68427
-	; bit/flag number
-	dw $3fb
+TrainerBird_keeperRod:
+	trainer EVENT_BEAT_BIRD_KEEPER_ROD, BIRD_KEEPER, ROD, Bird_keeperRodSeenText, Bird_keeperRodBeatenText, $0000, Bird_keeperRodScript
 
-	; trainer group && trainer id
-	db BIRD_KEEPER, ROD
-
-	; text when seen
-	dw Bird_keeperRodSeenText
-
-	; text when trainer beaten
-	dw Bird_keeperRodBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Bird_keeperRodScript
-; 0x68433
-
-Bird_keeperRodScript: ; 0x68433
+Bird_keeperRodScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x68837
@@ -93,29 +70,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x6843b
 
-TrainerBird_keeperAbe: ; 0x6843b
-	; bit/flag number
-	dw $3fc
+TrainerBird_keeperAbe:
+	trainer EVENT_BEAT_BIRD_KEEPER_ABE, BIRD_KEEPER, ABE, Bird_keeperAbeSeenText, Bird_keeperAbeBeatenText, $0000, Bird_keeperAbeScript
 
-	; trainer group && trainer id
-	db BIRD_KEEPER, ABE
-
-	; text when seen
-	dw Bird_keeperAbeSeenText
-
-	; text when trainer beaten
-	dw Bird_keeperAbeBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw Bird_keeperAbeScript
-; 0x68447
-
-Bird_keeperAbeScript: ; 0x68447
+Bird_keeperAbeScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x688c7
@@ -122,9 +81,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x6844f
 
-VioletGymGuyScript: ; 0x6844f
+VioletGymGuyScript:
 	faceplayer
 	loadfont
 	checkevent EVENT_BEAT_FALKNER
@@ -139,7 +97,6 @@
 	closetext
 	loadmovesprites
 	end
-; 0x68463
 
 VioletGymStatue:
 	checkflag ENGINE_ZEPHYRBADGE
@@ -149,7 +106,7 @@
 	trainertotext FALKNER, 1, $1
 	jumpstd gymstatue2
 
-UnknownText_0x68473: ; 0x68473
+UnknownText_0x68473:
 	text "I'm FALKNER, the"
 	line "VIOLET #MON GYM"
 	cont "leader!"
@@ -171,9 +128,8 @@
 	para "magnificent bird"
 	line "#MON!"
 	done
-; 0x6854a
 
-UnknownText_0x6854a: ; 0x6854a
+UnknownText_0x6854a:
 	text "…Darn! My dad's"
 	line "cherished bird"
 	cont "#MON…"
@@ -185,15 +141,13 @@
 	line "#MON LEAGUE"
 	cont "ZEPHYRBADGE."
 	done
-; 0x685af
 
-UnknownText_0x685af: ; 0x685af
+UnknownText_0x685af:
 	text "<PLAYER> received"
 	line "ZEPHYRBADGE."
 	done
-; 0x685c8
 
-UnknownText_0x685c8: ; 0x685c8
+UnknownText_0x685c8:
 	text "ZEPHYRBADGE"
 	line "raises the attack"
 	cont "power of #MON."
@@ -207,9 +161,8 @@
 	para "Here--take this"
 	line "too."
 	done
-; 0x68648
 
-UnknownText_0x68648: ; 0x68648
+UnknownText_0x68648:
 	text "By using a TM, a"
 	line "#MON will"
 
@@ -233,9 +186,8 @@
 	line "is both defensive"
 	cont "and offensive."
 	done
-; 0x68735
 
-UnknownText_0x68735: ; 0x68735
+UnknownText_0x68735:
 	text "There are #MON"
 	line "GYMS in cities and"
 	cont "towns ahead."
@@ -250,9 +202,8 @@
 	para "the greatest bird"
 	line "master!"
 	done
-; 0x687cd
 
-Bird_keeperRodSeenText: ; 0x687cd
+Bird_keeperRodSeenText:
 	text "The keyword is"
 	line "guts!"
 
@@ -264,14 +215,12 @@
 
 	para "Come on!"
 	done
-; 0x6882f
 
-Bird_keeperRodBeatenText: ; 0x6882f
+Bird_keeperRodBeatenText:
 	text "Gaaah!"
 	done
-; 0x68837
 
-UnknownText_0x68837: ; 0x68837
+UnknownText_0x68837:
 	text "FALKNER's skills"
 	line "are for real!"
 
@@ -279,29 +228,25 @@
 	line "just because you"
 	cont "beat me!"
 	done
-; 0x6887f
 
-Bird_keeperAbeSeenText: ; 0x6887f
+Bird_keeperAbeSeenText:
 	text "Let me see if you"
 	line "are good enough to"
 	cont "face FALKNER!"
 	done
-; 0x688b3
 
-Bird_keeperAbeBeatenText: ; 0x688b3
+Bird_keeperAbeBeatenText:
 	text "This can't be"
 	line "true!"
 	done
-; 0x688c7
 
-UnknownText_0x688c7: ; 0x688c7
+UnknownText_0x688c7:
 	text "This is pathetic,"
 	line "losing to some"
 	cont "rookie trainer…"
 	done
-; 0x688f9
 
-VioletGymGuyText: ; 0x688f9
+VioletGymGuyText:
 	text "Hey! I'm no train-"
 	line "er but I can give"
 	cont "some advice!"
@@ -321,9 +266,8 @@
 	para "flying-type. Keep"
 	line "this in mind."
 	done
-; 0x689c8
 
-VioletGymGuyWinText: ; 0x689c8
+VioletGymGuyWinText:
 	text "Nice battle! Keep"
 	line "it up, and you'll"
 
@@ -330,29 +274,27 @@
 	para "be the CHAMP in no"
 	line "time at all!"
 	done
-; 0x68a0c
 
-VioletGym_MapEventHeader: ; 0x68a0c
+VioletGym_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 13, 3, $0, VioletGymStatue
-	signpost 13, 6, $0, VioletGymStatue
+	signpost 13, 3, SIGNPOST_READ, VioletGymStatue
+	signpost 13, 6, SIGNPOST_READ, VioletGymStatue
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_FALKNER, 5, 9, $6, $0, 255, 255, $90, 0, FalknerScript_0x683c2, $ffff
-	person_event SPRITE_YOUNGSTER, 10, 11, $8, $2, 255, 255, $92, 3, TrainerBird_keeperRod, $ffff
-	person_event SPRITE_YOUNGSTER, 14, 6, $9, $2, 255, 255, $92, 3, TrainerBird_keeperAbe, $ffff
-	person_event SPRITE_GYM_GUY, 17, 11, $6, $0, 255, 255, $80, 0, VioletGymGuyScript, $ffff
-; 0x68a5a
+	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
--- a/maps/VioletMart.asm
+++ b/maps/VioletMart.asm
@@ -1,27 +1,23 @@
-VioletMart_MapScriptHeader: ; 0x68293
-	; trigger count
+VioletMart_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x68295
 
-ClerkScript_0x68295: ; 0x68295
+ClerkScript_0x68295:
 	loadfont
 	pokemart $0, $0002
 	loadmovesprites
 	end
-; 0x6829c
 
-GrannyScript_0x6829c: ; 0x6829c
+GrannyScript_0x6829c:
 	jumptextfaceplayer UnknownText_0x682a2
-; 0x6829f
 
-CooltrainerMScript_0x6829f: ; 0x6829f
+CooltrainerMScript_0x6829f:
 	jumptextfaceplayer UnknownText_0x68323
-; 0x682a2
 
-UnknownText_0x682a2: ; 0x682a2
+UnknownText_0x682a2:
 	text "When you first"
 	line "catch a #MON,"
 	cont "it may be weak."
@@ -34,9 +30,8 @@
 	line "treat #MON with"
 	cont "love."
 	done
-; 0x68323
 
-UnknownText_0x68323: ; 0x68323
+UnknownText_0x68323:
 	text "#MON can hold"
 	line "items like POTION"
 	cont "and ANTIDOTE."
@@ -47,26 +42,24 @@
 	para "to use manmade"
 	line "items."
 	done
-; 0x68389
 
-VioletMart_MapEventHeader: ; 0x68389
+VioletMart_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 7, 5, $9, $0, 255, 255, $0, 0, ClerkScript_0x68295, $ffff
-	person_event SPRITE_GRANNY, 10, 11, $5, $1, 255, 255, $0, 0, GrannyScript_0x6829c, $ffff
-	person_event SPRITE_COOLTRAINER_M, 6, 9, $3, $0, 255, 255, $80, 0, CooltrainerMScript_0x6829f, $ffff
-; 0x683c0
+	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
--- a/maps/VioletNicknameSpeechHouse.asm
+++ b/maps/VioletNicknameSpeechHouse.asm
@@ -1,20 +1,17 @@
-VioletNicknameSpeechHouse_MapScriptHeader: ; 0x693e7
-	; trigger count
+VioletNicknameSpeechHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x693e9
 
-TeacherScript_0x693e9: ; 0x693e9
+TeacherScript_0x693e9:
 	jumptextfaceplayer UnknownText_0x693fa
-; 0x693ec
 
-LassScript_0x693ec: ; 0x693ec
+LassScript_0x693ec:
 	jumptextfaceplayer UnknownText_0x6945e
-; 0x693ef
 
-BirdScript_0x693ef: ; 0x693ef
+BirdScript_0x693ef:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x6947c
@@ -22,9 +19,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x693fa
 
-UnknownText_0x693fa: ; 0x693fa
+UnknownText_0x693fa:
 	text "She uses the names"
 	line "of her favorite"
 	cont "things to eat."
@@ -33,37 +29,33 @@
 	line "she gives to her"
 	cont "#MON, I mean."
 	done
-; 0x6945e
 
-UnknownText_0x6945e: ; 0x6945e
+UnknownText_0x6945e:
 	text "I call my PIDGEY"
 	line "STRAWBERRY!"
 	done
-; 0x6947c
 
-UnknownText_0x6947c: ; 0x6947c
+UnknownText_0x6947c:
 	text "STRAWBERRY: Pijji!"
 	done
-; 0x69490
 
-VioletNicknameSpeechHouse_MapEventHeader: ; 0x69490
+VioletNicknameSpeechHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_TEACHER, 7, 6, $9, $0, 255, 255, $0, 0, TeacherScript_0x693e9, $ffff
-	person_event SPRITE_LASS, 8, 10, $7, $0, 255, 255, $a0, 0, LassScript_0x693ec, $ffff
-	person_event SPRITE_BIRD, 6, 9, $5, $1, 255, 255, $b0, 0, BirdScript_0x693ef, $ffff
-; 0x694c7
+	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
--- a/maps/VioletOnixTradeHouse.asm
+++ b/maps/VioletOnixTradeHouse.asm
@@ -1,16 +1,14 @@
-VioletOnixTradeHouse_MapScriptHeader: ; 0x6998b
-	; trigger count
+VioletOnixTradeHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x6998d
 
-PokefanMScript_0x6998d: ; 0x6998d
+PokefanMScript_0x6998d:
 	jumptextfaceplayer UnknownText_0x69997
-; 0x69990
 
-YoungsterScript_0x69990: ; 0x69990
+YoungsterScript_0x69990:
 	faceplayer
 	loadfont
 	trade $1
@@ -17,9 +15,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x69997
 
-UnknownText_0x69997: ; 0x69997
+UnknownText_0x69997:
 	text "A #MON you get"
 	line "in a trade grows"
 	cont "quickly."
@@ -30,25 +27,23 @@
 	para "BADGE, they may"
 	line "disobey you."
 	done
-; 0x69a01
 
-VioletOnixTradeHouse_MapEventHeader: ; 0x69a01
+VioletOnixTradeHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_POKEFAN_M, 7, 6, $3, $0, 255, 255, $0, 0, PokefanMScript_0x6998d, $ffff
-	person_event SPRITE_YOUNGSTER, 9, 10, $4, $20, 255, 255, $80, 0, YoungsterScript_0x69990, $ffff
-; 0x69a2b
+	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
--- a/maps/VioletPokeCenter1F.asm
+++ b/maps/VioletPokeCenter1F.asm
@@ -1,25 +1,23 @@
-VioletPokeCenter1F_MapScriptHeader: ; 0x694c7
-	; trigger count
+VioletPokeCenter1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x694c9
 
-NurseScript_0x694c9: ; 0x694c9
+NurseScript_0x694c9:
 	jumpstd pokecenternurse
-; 0x694cc
 
-ScientistScript_0x694cc: ; 0x694cc
+ScientistScript_0x694cc:
 	faceplayer
 	loadfont
 	checkevent EVENT_REFUSED_TO_TAKE_EGG_FROM_ELMS_AIDE
 	iftrue UnknownScript_0x6953a
 	writetext UnknownText_0x69555
-UnknownScript_0x694d7: ; 0x694d7
+UnknownScript_0x694d7:
 	yesorno
 	iffalse UnknownScript_0x69531
-	checkcode $1
+	checkcode VAR_PARTYCOUNT
 	if_equal $6, UnknownScript_0x6952b
 	giveegg TOGEPI, 5
 	stringtotext .eggname, $1
@@ -31,7 +29,7 @@
 	writetext UnknownText_0x695c5
 	closetext
 	loadmovesprites
-	checkcode $9
+	checkcode VAR_FACING
 	if_equal $1, .UnknownScript_0x69511
 	spriteface $0, DOWN
 	applymovement $6, MovementData_0x69549
@@ -40,7 +38,7 @@
 	waitbutton
 	end
 
-.UnknownScript_0x69511 ; 0x69511
+.UnknownScript_0x69511
 	applymovement $6, MovementData_0x6954e
 	spriteface $0, DOWN
 	applymovement $6, MovementData_0x69551
@@ -48,71 +46,59 @@
 	disappear $6
 	waitbutton
 	end
-; 0x69523
 
-.eggname ; 0x69523
+.eggname
 	db "EGG@"
-; 0x69527
 
-UnknownScript_0x69527: ; 0x69527
-	jumpstd $0030
+UnknownScript_0x69527:
+	jumpstd receivetogepiegg
 	end
-; 0x6952b
 
-UnknownScript_0x6952b: ; 0x6952b
+UnknownScript_0x6952b:
 	writetext UnknownText_0x69693
 	closetext
 	loadmovesprites
 	end
-; 0x69531
 
-UnknownScript_0x69531: ; 0x69531
+UnknownScript_0x69531:
 	writetext UnknownText_0x696f2
 	closetext
 	loadmovesprites
 	setevent EVENT_REFUSED_TO_TAKE_EGG_FROM_ELMS_AIDE
 	end
-; 0x6953a
 
-UnknownScript_0x6953a: ; 0x6953a
+UnknownScript_0x6953a:
 	writetext UnknownText_0x69712
 	jump UnknownScript_0x694d7
-; 0x69540
 
-GameboyKidScript_0x69540: ; 0x69540
+GameboyKidScript_0x69540:
 	jumptextfaceplayer UnknownText_0x69809
-; 0x69543
 
-GentlemanScript_0x69543: ; 0x69543
+GentlemanScript_0x69543:
 	jumptextfaceplayer UnknownText_0x6983c
-; 0x69546
 
-YoungsterScript_0x69546: ; 0x69546
+YoungsterScript_0x69546:
 	jumptextfaceplayer UnknownText_0x698b8
-; 0x69549
 
-MovementData_0x69549: ; 0x69549
+MovementData_0x69549:
 	step_down
 	step_down
 	step_down
 	step_down
 	step_end
-; 0x6954e
 
-MovementData_0x6954e: ; 0x6954e
+MovementData_0x6954e:
 	step_left
 	step_down
 	step_end
-; 0x69551
 
-MovementData_0x69551: ; 0x69551
+MovementData_0x69551:
 	step_down
 	step_down
 	step_down
 	step_end
-; 0x69555
 
-UnknownText_0x69555: ; 0x69555
+UnknownText_0x69555:
 	text "<PLAY_G>, long"
 	line "time, no see."
 
@@ -125,9 +111,8 @@
 	para "Would you take the"
 	line "#MON EGG?"
 	done
-; 0x695c5
 
-UnknownText_0x695c5: ; 0x695c5
+UnknownText_0x695c5:
 	text "We discovered that"
 	line "a #MON will not"
 
@@ -146,9 +131,8 @@
 	line "ELM when that EGG"
 	cont "hatches!"
 	done
-; 0x69693
 
-UnknownText_0x69693: ; 0x69693
+UnknownText_0x69693:
 	text "Oh, no. You can't"
 	line "carry any more"
 	cont "#MON with you."
@@ -157,21 +141,18 @@
 	line "while you make"
 	cont "room for the EGG."
 	done
-; 0x696f2
 
-UnknownText_0x696f2: ; 0x696f2
+UnknownText_0x696f2:
 	text "B-but… PROF.ELM"
 	line "asked for you…"
 	done
-; 0x69712
 
-UnknownText_0x69712: ; 0x69712
+UnknownText_0x69712:
 	text "<PLAY_G>, will you"
 	line "take the EGG?"
 	done
-; 0x6972d
 
-UnknownText_0x6972d: ; 0x6972d
+UnknownText_0x6972d:
 	text "I've been thinking"
 	line "it'd be great to"
 
@@ -181,9 +162,8 @@
 	para "friends who live"
 	line "far away."
 	done
-; 0x69791
 
-UnknownText_0x69791: ; 0x69791
+UnknownText_0x69791:
 	text "I just battled a"
 	line "friend in CIANWOOD"
 	cont "over a link."
@@ -194,16 +174,14 @@
 	para "you can link with"
 	line "a friend far away."
 	done
-; 0x69809
 
-UnknownText_0x69809: ; 0x69809
+UnknownText_0x69809:
 	text "A guy named BILL"
 	line "made the #MON"
 	cont "PC storage system."
 	done
-; 0x6983c
 
-UnknownText_0x6983c: ; 0x6983c
+UnknownText_0x6983c:
 	text "It was around"
 	line "three years ago."
 
@@ -215,9 +193,8 @@
 	line "vailed--a young"
 	cont "kid broke 'em up."
 	done
-; 0x698b8
 
-UnknownText_0x698b8: ; 0x698b8
+UnknownText_0x698b8:
 	text "#MON are smart."
 	line "They won't obey a"
 
@@ -230,29 +207,27 @@
 	para "will just do as"
 	line "they please."
 	done
-; 0x69935
 
-VioletPokeCenter1F_MapEventHeader: ; 0x69935
+VioletPokeCenter1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 5
-	person_event SPRITE_NURSE, 5, 7, $6, $0, 255, 255, $0, 0, NurseScript_0x694c9, $ffff
-	person_event SPRITE_GAMEBOY_KID, 10, 11, $6, $0, 255, 255, $a0, 0, GameboyKidScript_0x69540, $ffff
-	person_event SPRITE_GENTLEMAN, 8, 5, $3, $0, 255, 255, $0, 0, GentlemanScript_0x69543, $ffff
-	person_event SPRITE_YOUNGSTER, 5, 12, $6, $0, 255, 255, $80, 0, YoungsterScript_0x69546, $ffff
-	person_event SPRITE_SCIENTIST, 7, 8, $6, $0, 255, 255, $90, 0, ScientistScript_0x694cc, $0700
-; 0x6998b
+	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
--- a/maps/ViridianCity.asm
+++ b/maps/ViridianCity.asm
@@ -1,8 +1,8 @@
 ViridianCity_MapScriptHeader:
-	; trigger count
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
@@ -32,14 +32,14 @@
 GrampsScript_0x1a9a61:
 	faceplayer
 	loadfont
-	checkevent $0775
-	iftrue UnknownScript_0x1a9a6f
+	checkevent EVENT_BLUE_IN_CINNABAR
+	iftrue .BlueReturned
 	writetext UnknownText_0x1a9c11
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x1a9a6f:
+.BlueReturned
 	writetext UnknownText_0x1a9c7e
 	closetext
 	loadmovesprites
@@ -52,7 +52,7 @@
 	iftrue UnknownScript_0x1a9a8a
 	writetext UnknownText_0x1a9cc4
 	keeptextopen
-	verbosegiveitem TM_42, 1
+	verbosegiveitem TM_DREAM_EATER, 1
 	iffalse UnknownScript_0x1a9a8e
 	setevent EVENT_GOT_TM42_DREAM_EATER
 UnknownScript_0x1a9a8a:
@@ -215,7 +215,7 @@
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -223,21 +223,21 @@
 	warp_def $13, $1d, 2, GROUP_VIRIDIAN_MART, MAP_VIRIDIAN_MART
 	warp_def $19, $17, 1, GROUP_VIRIDIAN_POKECENTER_1F, MAP_VIRIDIAN_POKECENTER_1F
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 6
-	signpost 17, 17, $0, ViridianCitySign
-	signpost 7, 27, $0, ViridianGymSign
-	signpost 1, 19, $0, ViridianCityWelcomeSign
-	signpost 15, 21, $0, TrainerHouseSign
-	signpost 25, 24, $0, ViridianCityPokeCenterSign
-	signpost 19, 30, $0, ViridianCityMartSign
+	signpost 17, 17, SIGNPOST_READ, ViridianCitySign
+	signpost 7, 27, SIGNPOST_READ, ViridianGymSign
+	signpost 1, 19, SIGNPOST_READ, ViridianCityWelcomeSign
+	signpost 15, 21, SIGNPOST_READ, TrainerHouseSign
+	signpost 25, 24, SIGNPOST_READ, ViridianCityPokeCenterSign
+	signpost 19, 30, SIGNPOST_READ, ViridianCityMartSign
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_GRAMPS, 9, 22, $2, $22, 255, 255, $0, 0, GrampsScript_0x1a9a4c, $ffff
-	person_event SPRITE_GRAMPS, 12, 34, $6, $0, 255, 255, $90, 0, GrampsScript_0x1a9a61, $ffff
-	person_event SPRITE_FISHER, 27, 10, $6, $0, 255, 255, $80, 0, FisherScript_0x1a9a75, $ffff
-	person_event SPRITE_YOUNGSTER, 25, 21, $2, $33, 255, 255, $a0, 0, YoungsterScript_0x1a9a90, $ffff
+	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
--- a/maps/ViridianGym.asm
+++ b/maps/ViridianGym.asm
@@ -1,16 +1,15 @@
-ViridianGym_MapScriptHeader: ; 0x9aa24
-	; trigger count
+ViridianGym_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9aa26
 
-BlueScript_0x9aa26: ; 0x9aa26
+BlueScript_0x9aa26:
 	faceplayer
 	loadfont
-	checkflag $002a
-	iftrue UnknownScript_0x9aa51
+	checkflag ENGINE_EARTHBADGE
+	iftrue .FightDone
 	writetext UnknownText_0x9aa7b
 	closetext
 	loadmovesprites
@@ -23,21 +22,19 @@
 	writetext UnknownText_0x9ac0f
 	playsound SFX_GET_BADGE
 	waitbutton
-	setflag $002a
+	setflag ENGINE_EARTHBADGE
 	writetext UnknownText_0x9ac27
 	closetext
 	loadmovesprites
 	end
-; 0x9aa51
 
-UnknownScript_0x9aa51: ; 0x9aa51
+.FightDone
 	writetext UnknownText_0x9acab
 	closetext
 	loadmovesprites
 	end
-; 0x9aa57
 
-ViridianGymGuyScript: ; 0x9aa57
+ViridianGymGuyScript:
 	faceplayer
 	loadfont
 	checkevent EVENT_BEAT_BLUE
@@ -52,7 +49,6 @@
 	closetext
 	loadmovesprites
 	end
-; 0x9aa6b
 
 ViridianGymStatue:
 	checkflag ENGINE_EARTHBADGE
@@ -62,7 +58,7 @@
 	trainertotext BLUE, 1, $1
 	jumpstd gymstatue2
 
-UnknownText_0x9aa7b: ; 0x9aa7b
+UnknownText_0x9aa7b:
 	text "BLUE: Yo! Finally"
 	line "got here, huh?"
 
@@ -94,9 +90,8 @@
 	para "Ready, JOHTO"
 	line "CHAMP?"
 	done
-; 0x9abae
 
-UnknownText_0x9abae: ; 0x9abae
+UnknownText_0x9abae:
 	text "BLUE: What?"
 
 	para "How the heck did I"
@@ -108,15 +103,13 @@
 	line "Here, take this--"
 	cont "it's EARTHBADGE."
 	done
-; 0x9ac0f
 
-UnknownText_0x9ac0f: ; 0x9ac0f
+UnknownText_0x9ac0f:
 	text "<PLAYER> received"
 	line "EARTHBADGE."
 	done
-; 0x9ac27
 
-UnknownText_0x9ac27: ; 0x9ac27
+UnknownText_0x9ac27:
 	text "BLUE: …"
 
 	para "All right, I was"
@@ -131,9 +124,8 @@
 	para "Don't you forget"
 	line "it!"
 	done
-; 0x9acab
 
-UnknownText_0x9acab: ; 0x9acab
+UnknownText_0x9acab:
 	text "BLUE: Listen, you."
 
 	para "You'd better not"
@@ -140,9 +132,8 @@
 	line "lose until I beat"
 	cont "you. Got it?"
 	done
-; 0x9acee
 
-ViridianGymGuyText: ; 0x9acee
+ViridianGymGuyText:
 	text "Yo, CHAMP in"
 	line "making!"
 
@@ -161,9 +152,8 @@
 	para "Give it everything"
 	line "you've got!"
 	done
-; 0x9ada0
 
-ViridianGymGuyWinText: ; 0x9ada0
+ViridianGymGuyWinText:
 	text "Man, you are truly"
 	line "tough…"
 
@@ -173,27 +163,25 @@
 	para "battle. It brought"
 	line "tears to my eyes."
 	done
-; 0x9ae04
 
-ViridianGym_MapEventHeader: ; 0x9ae04
+ViridianGym_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 2
-	signpost 13, 3, $0, ViridianGymStatue
-	signpost 13, 6, $0, ViridianGymStatue
+	signpost 13, 3, SIGNPOST_READ, ViridianGymStatue
+	signpost 13, 6, SIGNPOST_READ, ViridianGymStatue
 
-	; people-events
+.PersonEvents:
 	db 2
-	person_event SPRITE_BLUE, 7, 9, $6, $0, 255, 255, $0, 0, BlueScript_0x9aa26, $0776
-	person_event SPRITE_GYM_GUY, 17, 11, $6, $0, 255, 255, $90, 0, ViridianGymGuyScript, $0776
-; 0x9ae38
+	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
--- a/maps/ViridianMart.asm
+++ b/maps/ViridianMart.asm
@@ -1,34 +1,29 @@
-ViridianMart_MapScriptHeader: ; 0x9b5e5
-	; trigger count
+ViridianMart_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9b5e7
 
-ClerkScript_0x9b5e7: ; 0x9b5e7
+ClerkScript_0x9b5e7:
 	loadfont
 	pokemart $0, $0012
 	loadmovesprites
 	end
-; 0x9b5ee
 
-LassScript_0x9b5ee: ; 0x9b5ee
+LassScript_0x9b5ee:
 	jumptextfaceplayer UnknownText_0x9b5f4
-; 0x9b5f1
 
-CooltrainerMScript_0x9b5f1: ; 0x9b5f1
+CooltrainerMScript_0x9b5f1:
 	jumptextfaceplayer UnknownText_0x9b61a
-; 0x9b5f4
 
-UnknownText_0x9b5f4: ; 0x9b5f4
+UnknownText_0x9b5f4:
 	text "The GYM LEADER"
 	line "here is totally"
 	cont "cool."
 	done
-; 0x9b61a
 
-UnknownText_0x9b61a: ; 0x9b61a
+UnknownText_0x9b61a:
 	text "Have you been to"
 	line "CINNABAR?"
 
@@ -35,26 +30,24 @@
 	para "It's an island way"
 	line "south of here."
 	done
-; 0x9b657
 
-ViridianMart_MapEventHeader: ; 0x9b657
+ViridianMart_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_CLERK, 7, 5, $9, $0, 255, 255, $0, 0, ClerkScript_0x9b5e7, $ffff
-	person_event SPRITE_LASS, 6, 11, $5, $2, 255, 255, $0, 0, LassScript_0x9b5ee, $ffff
-	person_event SPRITE_COOLTRAINER_M, 10, 5, $7, $0, 255, 255, $0, 0, CooltrainerMScript_0x9b5f1, $ffff
-; 0x9b68e
+	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
--- a/maps/ViridianNicknameSpeechHouse.asm
+++ b/maps/ViridianNicknameSpeechHouse.asm
@@ -1,20 +1,17 @@
-ViridianNicknameSpeechHouse_MapScriptHeader: ; 0x9ae38
-	; trigger count
+ViridianNicknameSpeechHouse_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9ae3a
 
-PokefanMScript_0x9ae3a: ; 0x9ae3a
+PokefanMScript_0x9ae3a:
 	jumptextfaceplayer UnknownText_0x9ae54
-; 0x9ae3d
 
-LassScript_0x9ae3d: ; 0x9ae3d
+LassScript_0x9ae3d:
 	jumptextfaceplayer UnknownText_0x9aecb
-; 0x9ae40
 
-MoltresScript_0x9ae40: ; 0x9ae40
+MoltresScript_0x9ae40:
 	loadfont
 	writetext UnknownText_0x9aefe
 	cry SPEAROW
@@ -21,9 +18,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x9ae4a
 
-GrowlitheScript_0x9ae4a: ; 0x9ae4a
+GrowlitheScript_0x9ae4a:
 	loadfont
 	writetext UnknownText_0x9af10
 	cry RATTATA
@@ -30,9 +26,8 @@
 	closetext
 	loadmovesprites
 	end
-; 0x9ae54
 
-UnknownText_0x9ae54: ; 0x9ae54
+UnknownText_0x9ae54:
 	text "Do you put a lot"
 	line "of thought into"
 
@@ -45,44 +40,39 @@
 	para "the fun of trading"
 	line "with others."
 	done
-; 0x9aecb
 
-UnknownText_0x9aecb: ; 0x9aecb
+UnknownText_0x9aecb:
 	text "They're SPEARY--"
 	line "a SPEAROW--and"
 	cont "RATTEY--a RATTATA."
 	done
-; 0x9aefe
 
-UnknownText_0x9aefe: ; 0x9aefe
+UnknownText_0x9aefe:
 	text "SPEARY: Ch-chun!"
 	done
-; 0x9af10
 
-UnknownText_0x9af10: ; 0x9af10
+UnknownText_0x9af10:
 	text "RATTEY: Kikiii!"
 	done
-; 0x9af21
 
-ViridianNicknameSpeechHouse_MapEventHeader: ; 0x9af21
+ViridianNicknameSpeechHouse_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_POKEFAN_M, 8, 6, $9, $0, 255, 255, $80, 0, PokefanMScript_0x9ae3a, $ffff
-	person_event SPRITE_LASS, 8, 9, $7, $0, 255, 255, $a0, 0, LassScript_0x9ae3d, $ffff
-	person_event SPRITE_MOLTRES, 6, 9, $16, $2, 255, 255, $b0, 0, MoltresScript_0x9ae40, $ffff
-	person_event SPRITE_GROWLITHE, 7, 10, $16, $2, 255, 255, $90, 0, GrowlitheScript_0x9ae4a, $ffff
-; 0x9af65
+	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
--- a/maps/ViridianPokeCenter1F.asm
+++ b/maps/ViridianPokeCenter1F.asm
@@ -1,42 +1,36 @@
-ViridianPokeCenter1F_MapScriptHeader: ; 0x9b68e
-	; trigger count
+ViridianPokeCenter1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9b690
 
-NurseScript_0x9b690: ; 0x9b690
+NurseScript_0x9b690:
 	jumpstd pokecenternurse
-; 0x9b693
 
-CooltrainerMScript_0x9b693: ; 0x9b693
+CooltrainerMScript_0x9b693:
 	faceplayer
 	loadfont
-	checkevent $0775
-	iftrue UnknownScript_0x9b6a1
+	checkevent EVENT_BLUE_IN_CINNABAR
+	iftrue .BlueReturned
 	writetext UnknownText_0x9b6ad
 	closetext
 	loadmovesprites
 	end
-; 0x9b6a1
 
-UnknownScript_0x9b6a1: ; 0x9b6a1
+.BlueReturned
 	writetext UnknownText_0x9b6f5
 	closetext
 	loadmovesprites
 	end
-; 0x9b6a7
 
-CooltrainerFScript_0x9b6a7: ; 0x9b6a7
+CooltrainerFScript_0x9b6a7:
 	jumptextfaceplayer UnknownText_0x9b76b
-; 0x9b6aa
 
-BugCatcherScript_0x9b6aa: ; 0x9b6aa
+BugCatcherScript_0x9b6aa:
 	jumptextfaceplayer UnknownText_0x9b7c8
-; 0x9b6ad
 
-UnknownText_0x9b6ad: ; 0x9b6ad
+UnknownText_0x9b6ad:
 	text "Where in the world"
 	line "is VIRIDIAN's GYM"
 
@@ -43,9 +37,8 @@
 	para "LEADER? I wanted"
 	line "to challenge him."
 	done
-; 0x9b6f5
 
-UnknownText_0x9b6f5: ; 0x9b6f5
+UnknownText_0x9b6f5:
 	text "There are no GYM"
 	line "TRAINERS at the"
 	cont "VIRIDIAN GYM."
@@ -56,9 +49,8 @@
 	para "win without having"
 	line "any underlings."
 	done
-; 0x9b76b
 
-UnknownText_0x9b76b: ; 0x9b76b
+UnknownText_0x9b76b:
 	text "I heard that the"
 	line "GYM in CINNABAR is"
 	cont "gone."
@@ -67,34 +59,31 @@
 	line "came of BLAINE,"
 	cont "the GYM LEADER."
 	done
-; 0x9b7c8
 
-UnknownText_0x9b7c8: ; 0x9b7c8
+UnknownText_0x9b7c8:
 	text "My dream is to be-"
 	line "come a GYM LEADER."
 	done
-; 0x9b7ef
 
-ViridianPokeCenter1F_MapEventHeader: ; 0x9b7ef
+ViridianPokeCenter1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 4
-	person_event SPRITE_NURSE, 5, 7, $6, $0, 255, 255, $0, 0, NurseScript_0x9b690, $ffff
-	person_event SPRITE_COOLTRAINER_M, 8, 12, $5, $1, 255, 255, $80, 0, CooltrainerMScript_0x9b693, $ffff
-	person_event SPRITE_COOLTRAINER_F, 7, 9, $7, $0, 255, 255, $90, 0, CooltrainerFScript_0x9b6a7, $ffff
-	person_event SPRITE_BUG_CATCHER, 10, 5, $9, $0, 255, 255, $a0, 0, BugCatcherScript_0x9b6aa, $ffff
-; 0x9b838
+	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
--- a/maps/ViridianPokeCenter2FBeta.asm
+++ b/maps/ViridianPokeCenter2FBeta.asm
@@ -1,25 +1,23 @@
-ViridianPokeCenter2FBeta_MapScriptHeader: ; 0x9b838
-	; trigger count
+ViridianPokeCenter2FBeta_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x9b83a
 
-ViridianPokeCenter2FBeta_MapEventHeader: ; 0x9b83a
+ViridianPokeCenter2FBeta_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $7, $0, 3, GROUP_VIRIDIAN_POKECENTER_1F, MAP_VIRIDIAN_POKECENTER_1F
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x9b845
--- a/maps/WarehouseEntrance.asm
+++ b/maps/WarehouseEntrance.asm
@@ -1,20 +1,19 @@
-WarehouseEntrance_MapScriptHeader: ; 0x7c038
-	; trigger count
+WarehouseEntrance_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 3
 
 	; callbacks
 
-	dbw 5, UnknownScript_0x7c043
+	dbw 5, .ResetSwitches
 
-	dbw 1, UnknownScript_0x7c076
+	dbw 1, .CheckBasementKey
 
-	dbw 2, UnknownScript_0x7c082
-; 0x7c043
+	dbw 2, .CheckDayOfWeek
 
-UnknownScript_0x7c043: ; 0x7c043
+.ResetSwitches:
 	clearevent EVENT_SWITCH_1
 	clearevent EVENT_SWITCH_2
 	clearevent EVENT_SWITCH_3
@@ -33,107 +32,82 @@
 	writebyte $0
 	copyvartobyte UndergroundSwitchPositions
 	return
-; 0x7c076
 
-UnknownScript_0x7c076: ; 0x7c076
+.CheckBasementKey:
 	checkevent EVENT_USED_BASEMENT_KEY
-	iffalse UnknownScript_0x7c07d
+	iffalse .LockBasementDoor
 	return
-; 0x7c07d
 
-UnknownScript_0x7c07d: ; 0x7c07d
+.LockBasementDoor:
 	changeblock $12, $6, $3d
 	return
-; 0x7c082
 
-UnknownScript_0x7c082: ; 0x7c082
-	checkcode $b
-	if_equal MONDAY, UnknownScript_0x7c0a5
-	if_equal TUESDAY, UnknownScript_0x7c0b5
-	if_equal WEDNESDAY, UnknownScript_0x7c0be
-	if_equal THURSDAY, UnknownScript_0x7c0c7
-	if_equal FRIDAY, UnknownScript_0x7c0d0
-	if_equal SATURDAY, UnknownScript_0x7c0d9
+.CheckDayOfWeek:
+	checkcode VAR_WEEKDAY
+	if_equal MONDAY, .Monday
+	if_equal TUESDAY, .Tuesday
+	if_equal WEDNESDAY, .Wednesday
+	if_equal THURSDAY, .Thursday
+	if_equal FRIDAY, .Friday
+	if_equal SATURDAY, .Saturday
+
+.Sunday:
 	disappear $7
 	disappear $8
 	appear $9
 	appear $a
 	return
-; 0x7c0a5
 
-UnknownScript_0x7c0a5: ; 0x7c0a5
+.Monday:
 	disappear $7
 	checkmorn
-	iffalse UnknownScript_0x7c0ae
+	iffalse .NotMondayMorning
 	appear $7
-UnknownScript_0x7c0ae: ; 0x7c0ae
+.NotMondayMorning:
 	disappear $8
 	disappear $9
 	disappear $a
 	return
-; 0x7c0b5
 
-UnknownScript_0x7c0b5: ; 0x7c0b5
+.Tuesday:
 	disappear $7
 	appear $8
 	disappear $9
 	disappear $a
 	return
-; 0x7c0be
 
-UnknownScript_0x7c0be: ; 0x7c0be
+.Wednesday:
 	disappear $7
 	disappear $8
 	appear $9
 	disappear $a
 	return
-; 0x7c0c7
 
-UnknownScript_0x7c0c7: ; 0x7c0c7
+.Thursday:
 	disappear $7
 	appear $8
 	disappear $9
 	disappear $a
 	return
-; 0x7c0d0
 
-UnknownScript_0x7c0d0: ; 0x7c0d0
+.Friday:
 	disappear $7
 	disappear $8
 	appear $9
 	disappear $a
 	return
-; 0x7c0d9
 
-UnknownScript_0x7c0d9: ; 0x7c0d9
+.Saturday:
 	disappear $7
 	appear $8
 	disappear $9
 	appear $a
 	return
-; 0x7c0e2
 
-TrainerSupernerdEric: ; 0x7c0e2
-	; bit/flag number
-	dw $582
+TrainerSupernerdEric:
+	trainer EVENT_BEAT_SUPER_NERD_ERIC, SUPER_NERD, ERIC, SupernerdEricSeenText, SupernerdEricBeatenText, $0000, SupernerdEricScript
 
-	; trainer group && trainer id
-	db SUPER_NERD, ERIC
-
-	; text when seen
-	dw SupernerdEricSeenText
-
-	; text when trainer beaten
-	dw SupernerdEricBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SupernerdEricScript
-; 0x7c0ee
-
-SupernerdEricScript: ; 0x7c0ee
+SupernerdEricScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x7c36c
@@ -140,29 +114,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x7c0f6
 
-TrainerSupernerdTeru: ; 0x7c0f6
-	; bit/flag number
-	dw $58a
+TrainerSupernerdTeru:
+	trainer EVENT_BEAT_SUPER_NERD_TERU, SUPER_NERD, TERU, SupernerdTeruSeenText, SupernerdTeruBeatenText, $0000, SupernerdTeruScript
 
-	; trainer group && trainer id
-	db SUPER_NERD, TERU
-
-	; text when seen
-	dw SupernerdTeruSeenText
-
-	; text when trainer beaten
-	dw SupernerdTeruBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SupernerdTeruScript
-; 0x7c102
-
-SupernerdTeruScript: ; 0x7c102
+SupernerdTeruScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x7c410
@@ -169,29 +125,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x7c10a
 
-TrainerPokemaniacIssac: ; 0x7c10a
-	; bit/flag number
-	dw $4ee
+TrainerPokemaniacIssac:
+	trainer EVENT_BEAT_POKEMANIAC_ISSAC, POKEMANIAC, ISSAC, PokemaniacIssacSeenText, PokemaniacIssacBeatenText, $0000, PokemaniacIssacScript
 
-	; trainer group && trainer id
-	db POKEMANIAC, ISSAC
-
-	; text when seen
-	dw PokemaniacIssacSeenText
-
-	; text when trainer beaten
-	dw PokemaniacIssacBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PokemaniacIssacScript
-; 0x7c116
-
-PokemaniacIssacScript: ; 0x7c116
+PokemaniacIssacScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x7c498
@@ -198,29 +136,11 @@
 	closetext
 	loadmovesprites
 	end
-; 0x7c11e
 
-TrainerPokemaniacDonald: ; 0x7c11e
-	; bit/flag number
-	dw $4ef
+TrainerPokemaniacDonald:
+	trainer EVENT_BEAT_POKEMANIAC_DONALD, POKEMANIAC, DONALD, PokemaniacDonaldSeenText, PokemaniacDonaldBeatenText, $0000, PokemaniacDonaldScript
 
-	; trainer group && trainer id
-	db POKEMANIAC, DONALD
-
-	; text when seen
-	dw PokemaniacDonaldSeenText
-
-	; text when trainer beaten
-	dw PokemaniacDonaldBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw PokemaniacDonaldScript
-; 0x7c12a
-
-PokemaniacDonaldScript: ; 0x7c12a
+PokemaniacDonaldScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x7c52f
@@ -227,260 +147,233 @@
 	closetext
 	loadmovesprites
 	end
-; 0x7c132
 
-GrannyScript_0x7c132: ; 0x7c132
+GrannyScript_0x7c132:
 	loadfont
-	checkcode $b
-	if_equal SUNDAY, UnknownScript_0x7c140
-	if_equal SATURDAY, UnknownScript_0x7c140
-	jump UnknownScript_0x7c300
-; 0x7c140
+	checkcode VAR_WEEKDAY
+	if_equal SUNDAY, .Open
+	if_equal SATURDAY, .Open
+	jump WarehouseEntranceScript_ShopClosed
 
-UnknownScript_0x7c140: ; 0x7c140
+.Open:
 	pokemart $1, $0021
 	loadmovesprites
 	end
-; 0x7c146
 
-GrampsScript_0x7c146: ; 0x7c146
+GrampsScript_0x7c146:
 	loadfont
-	checkflag $0056
-	iftrue UnknownScript_0x7c300
-	checkcode $b
-	if_equal MONDAY, UnknownScript_0x7c156
-	jump UnknownScript_0x7c300
-; 0x7c156
+	checkflag ENGINE_GOLDENROD_UNDERGROUND_MERCHANT_CLOSED
+	iftrue WarehouseEntranceScript_ShopClosed
+	checkcode VAR_WEEKDAY
+	if_equal MONDAY, .CheckMorn
+	jump WarehouseEntranceScript_ShopClosed
 
-UnknownScript_0x7c156: ; 0x7c156
+.CheckMorn:
 	checkmorn
-	iffalse UnknownScript_0x7c300
+	iffalse WarehouseEntranceScript_ShopClosed
 	pokemart $2, $0000
 	loadmovesprites
 	end
-; 0x7c161
 
-SuperNerdScript_0x7c161: ; 0x7c161
+OlderHaircutBrotherScript:
 	loadfont
-	checkcode $b
-	if_equal TUESDAY, UnknownScript_0x7c173
-	if_equal THURSDAY, UnknownScript_0x7c173
-	if_equal SATURDAY, UnknownScript_0x7c173
-	jump UnknownScript_0x7c300
-; 0x7c173
+	checkcode VAR_WEEKDAY
+	if_equal TUESDAY, .DoHaircut
+	if_equal THURSDAY, .DoHaircut
+	if_equal SATURDAY, .DoHaircut
+	jump WarehouseEntranceScript_ShopClosed
 
-UnknownScript_0x7c173: ; 0x7c173
-	checkflag $005a
-	iftrue UnknownScript_0x7c208
+.DoHaircut:
+	checkflag ENGINE_GOLDENROD_UNDERGROUND_GOT_HAIRCUT
+	iftrue .AlreadyGotHaircut
 	special Function24ae8
 	writetext UnknownText_0x7c5f9
 	yesorno
-	iffalse UnknownScript_0x7c1fc
+	iffalse .Refused
 	checkmoney $0, 500
-	if_equal $2, UnknownScript_0x7c202
+	if_equal $2, .NotEnoughMoney
 	writetext UnknownText_0x7c69a
 	keeptextopen
 	special Function7413
-	if_equal $0, UnknownScript_0x7c1fc
-	if_equal $1, UnknownScript_0x7c1fc
-	setflag $005a
-	if_equal $2, UnknownScript_0x7c1a9
-	if_equal $3, UnknownScript_0x7c1b5
-	jump UnknownScript_0x7c1c1
-; 0x7c1a9
+	if_equal $0, .Refused
+	if_equal $1, .Refused
+	setflag ENGINE_GOLDENROD_UNDERGROUND_GOT_HAIRCUT
+	if_equal $2, .two
+	if_equal $3, .three
+	jump .else
 
-UnknownScript_0x7c1a9: ; 0x7c1a9
-	setevent $0000
-	clearevent $0001
-	clearevent $0002
-	jump UnknownScript_0x7c1cd
-; 0x7c1b5
+.two:
+	setevent EVENT_GAVE_KURT_APRICORNS
+	clearevent EVENT_RECEIVED_BALLS_FROM_KURT
+	clearevent EVENT_DRAGON_SHRINE_QUESTION_2
+	jump .then
 
-UnknownScript_0x7c1b5: ; 0x7c1b5
-	clearevent $0000
-	setevent $0001
-	clearevent $0002
-	jump UnknownScript_0x7c1cd
-; 0x7c1c1
+.three:
+	clearevent EVENT_GAVE_KURT_APRICORNS
+	setevent EVENT_RECEIVED_BALLS_FROM_KURT
+	clearevent EVENT_DRAGON_SHRINE_QUESTION_2
+	jump .then
 
-UnknownScript_0x7c1c1: ; 0x7c1c1
-	clearevent $0000
-	clearevent $0001
-	setevent $0002
-	jump UnknownScript_0x7c1cd
-; 0x7c1cd
+.else:
+	clearevent EVENT_GAVE_KURT_APRICORNS
+	clearevent EVENT_RECEIVED_BALLS_FROM_KURT
+	setevent EVENT_DRAGON_SHRINE_QUESTION_2
+	jump .then
 
-UnknownScript_0x7c1cd: ; 0x7c1cd
+.then:
 	takemoney $0, 500
 	special Function24ae8
 	writetext UnknownText_0x7c6b8
 	closetext
 	loadmovesprites
-	special Function8c084
+	special FadeBlackBGMap
 	playmusic MUSIC_HEAL
 	pause 60
-	special Function8c079
+	special FadeInBGMap
 	special RestartMapMusic
 	loadfont
 	writetext UnknownText_0x7c6d8
 	closetext
-	checkevent $0000
+	checkevent EVENT_GAVE_KURT_APRICORNS
 	iftrue UnknownScript_0x7c2bb
-	checkevent $0001
+	checkevent EVENT_RECEIVED_BALLS_FROM_KURT
 	iftrue UnknownScript_0x7c2c4
 	jump UnknownScript_0x7c2cd
-; 0x7c1fc
 
-UnknownScript_0x7c1fc: ; 0x7c1fc
+.Refused:
 	writetext UnknownText_0x7c6ea
 	closetext
 	loadmovesprites
 	end
-; 0x7c202
 
-UnknownScript_0x7c202: ; 0x7c202
+.NotEnoughMoney:
 	writetext UnknownText_0x7c709
 	closetext
 	loadmovesprites
 	end
-; 0x7c208
 
-UnknownScript_0x7c208: ; 0x7c208
+.AlreadyGotHaircut:
 	writetext UnknownText_0x7c72b
 	closetext
 	loadmovesprites
 	end
-; 0x7c20e
 
-SuperNerdScript_0x7c20e: ; 0x7c20e
+YoungerHaircutBrotherScript:
 	loadfont
-	checkcode $b
-	if_equal SUNDAY, UnknownScript_0x7c220
-	if_equal WEDNESDAY, UnknownScript_0x7c220
-	if_equal FRIDAY, UnknownScript_0x7c220
-	jump UnknownScript_0x7c300
-; 0x7c220
+	checkcode VAR_WEEKDAY
+	if_equal SUNDAY, .DoHaircut
+	if_equal WEDNESDAY, .DoHaircut
+	if_equal FRIDAY, .DoHaircut
+	jump WarehouseEntranceScript_ShopClosed
 
-UnknownScript_0x7c220: ; 0x7c220
-	checkflag $005a
-	iftrue UnknownScript_0x7c2b5
+.DoHaircut:
+	checkflag ENGINE_GOLDENROD_UNDERGROUND_GOT_HAIRCUT
+	iftrue .AlreadyGotHaircut
 	special Function24ae8
 	writetext UnknownText_0x7c75c
 	yesorno
-	iffalse UnknownScript_0x7c2a9
+	iffalse .Refused
 	checkmoney $0, 300
-	if_equal $2, UnknownScript_0x7c2af
+	if_equal $2, .NotEnoughMoney
 	writetext UnknownText_0x7c7f1
 	keeptextopen
 	special Function7418
-	if_equal $0, UnknownScript_0x7c2a9
-	if_equal $1, UnknownScript_0x7c2a9
-	setflag $005a
-	if_equal $2, UnknownScript_0x7c256
-	if_equal $3, UnknownScript_0x7c262
-	jump UnknownScript_0x7c26e
-; 0x7c256
+	if_equal $0, .Refused
+	if_equal $1, .Refused
+	setflag ENGINE_GOLDENROD_UNDERGROUND_GOT_HAIRCUT
+	if_equal $2, .two
+	if_equal $3, .three
+	jump .else
 
-UnknownScript_0x7c256: ; 0x7c256
-	setevent $0000
-	clearevent $0001
-	clearevent $0002
-	jump UnknownScript_0x7c27a
-; 0x7c262
+.two:
+	setevent EVENT_GAVE_KURT_APRICORNS
+	clearevent EVENT_RECEIVED_BALLS_FROM_KURT
+	clearevent EVENT_DRAGON_SHRINE_QUESTION_2
+	jump .then
 
-UnknownScript_0x7c262: ; 0x7c262
-	clearevent $0000
-	setevent $0001
-	clearevent $0002
-	jump UnknownScript_0x7c27a
-; 0x7c26e
+.three:
+	clearevent EVENT_GAVE_KURT_APRICORNS
+	setevent EVENT_RECEIVED_BALLS_FROM_KURT
+	clearevent EVENT_DRAGON_SHRINE_QUESTION_2
+	jump .then
 
-UnknownScript_0x7c26e: ; 0x7c26e
-	clearevent $0000
-	clearevent $0001
-	setevent $0002
-	jump UnknownScript_0x7c27a
-; 0x7c27a
+.else:
+	clearevent EVENT_GAVE_KURT_APRICORNS
+	clearevent EVENT_RECEIVED_BALLS_FROM_KURT
+	setevent EVENT_DRAGON_SHRINE_QUESTION_2
+	jump .then
 
-UnknownScript_0x7c27a: ; 0x7c27a
+.then:
 	takemoney $0, 300
 	special Function24ae8
 	writetext UnknownText_0x7c80e
 	closetext
 	loadmovesprites
-	special Function8c084
+	special FadeBlackBGMap
 	playmusic MUSIC_HEAL
 	pause 60
-	special Function8c079
+	special FadeInBGMap
 	special RestartMapMusic
 	loadfont
 	writetext UnknownText_0x7c82a
 	closetext
-	checkevent $0000
+	checkevent EVENT_GAVE_KURT_APRICORNS
 	iftrue UnknownScript_0x7c2bb
-	checkevent $0001
+	checkevent EVENT_RECEIVED_BALLS_FROM_KURT
 	iftrue UnknownScript_0x7c2c4
 	jump UnknownScript_0x7c2cd
-; 0x7c2a9
 
-UnknownScript_0x7c2a9: ; 0x7c2a9
+.Refused:
 	writetext UnknownText_0x7c842
 	closetext
 	loadmovesprites
 	end
-; 0x7c2af
 
-UnknownScript_0x7c2af: ; 0x7c2af
+.NotEnoughMoney:
 	writetext UnknownText_0x7c85b
 	closetext
 	loadmovesprites
 	end
-; 0x7c2b5
 
-UnknownScript_0x7c2b5: ; 0x7c2b5
+.AlreadyGotHaircut:
 	writetext UnknownText_0x7c87b
 	closetext
 	loadmovesprites
 	end
-; 0x7c2bb
 
-UnknownScript_0x7c2bb: ; 0x7c2bb
+UnknownScript_0x7c2bb:
 	writetext UnknownText_0x7c8bf
 	special Functionc472
 	closetext
 	loadmovesprites
 	end
-; 0x7c2c4
 
-UnknownScript_0x7c2c4: ; 0x7c2c4
+UnknownScript_0x7c2c4:
 	writetext UnknownText_0x7c8dc
 	special Functionc472
 	closetext
 	loadmovesprites
 	end
-; 0x7c2cd
 
-UnknownScript_0x7c2cd: ; 0x7c2cd
+UnknownScript_0x7c2cd:
 	writetext UnknownText_0x7c8ee
 	special Functionc472
 	closetext
 	loadmovesprites
 	end
-; 0x7c2d6
 
-MapWarehouseEntranceSignpost0Script:: ; 0x7c2d6
+BasementDoorScript::
 	loadfont
 	checkevent EVENT_USED_BASEMENT_KEY
-	iftrue UnknownScript_0x7c2fa
+	iftrue .Open
 	checkitem BASEMENT_KEY
-	iftrue UnknownScript_0x7c2e8
+	iftrue .Unlock
 	writetext UnknownText_0x7c5b0
 	closetext
 	loadmovesprites
 	end
-; 0x7c2e8
 
-UnknownScript_0x7c2e8: ; 0x7c2e8
+.Unlock:
 	playsound SFX_TRANSACTION
 	writetext UnknownText_0x7c5d6
 	closetext
@@ -490,49 +383,38 @@
 	loadmovesprites
 	setevent EVENT_USED_BASEMENT_KEY
 	end
-; 0x7c2fa
 
-UnknownScript_0x7c2fa: ; 0x7c2fa
+.Open:
 	writetext UnknownText_0x7c5c3
 	closetext
 	loadmovesprites
 	end
-; 0x7c300
 
-UnknownScript_0x7c300: ; 0x7c300
+WarehouseEntranceScript_ShopClosed:
 	writetext UnknownText_0x7c904
 	closetext
 	loadmovesprites
 	end
-; 0x7c306
 
-ItemFragment_0x7c306: ; 0x7c306
+ItemFragment_0x7c306:
 	db COIN_CASE, 1
-; 0x7c308
 
-MapWarehouseEntranceSignpost1Script: ; 0x7c308
+MapWarehouseEntranceSignpost1Script:
 	jumptext UnknownText_0x7c91a
-; 0x7c30b
 
-MapWarehouseEntranceSignpostItem2: ; 0x7c30b
-	dw $008b
-	db PARLYZ_HEAL
+MapWarehouseEntranceSignpostItem2:
+	dwb EVENT_WAREHOUSE_ENTRANCE_HIDDEN_PARLYZ_HEAL, PARLYZ_HEAL
 	
-; 0x7c30e
 
-MapWarehouseEntranceSignpostItem3: ; 0x7c30e
-	dw $008c
-	db SUPER_POTION
+MapWarehouseEntranceSignpostItem3:
+	dwb EVENT_WAREHOUSE_ENTRANCE_HIDDEN_SUPER_POTION, SUPER_POTION
 	
-; 0x7c311
 
-MapWarehouseEntranceSignpostItem4: ; 0x7c311
-	dw $008d
-	db ANTIDOTE
+MapWarehouseEntranceSignpostItem4:
+	dwb EVENT_WAREHOUSE_ENTRANCE_HIDDEN_ANTIDOTE, ANTIDOTE
 	
-; 0x7c314
 
-SupernerdEricSeenText: ; 0x7c314
+SupernerdEricSeenText:
 	text "I got booted out"
 	line "of the GAME COR-"
 	cont "NER."
@@ -541,21 +423,18 @@
 	line "cheat using my"
 	cont "#MON…"
 	done
-; 0x7c361
 
-SupernerdEricBeatenText: ; 0x7c361
+SupernerdEricBeatenText:
 	text "…Grumble…"
 	done
-; 0x7c36c
 
-UnknownText_0x7c36c: ; 0x7c36c
+UnknownText_0x7c36c:
 	text "I guess I have to"
 	line "do things fair and"
 	cont "square…"
 	done
-; 0x7c39a
 
-SupernerdTeruSeenText: ; 0x7c39a
+SupernerdTeruSeenText:
 	text "Do you consider"
 	line "type alignments in"
 	cont "battle?"
@@ -566,14 +445,12 @@
 	para "you'll do better"
 	line "in battle."
 	done
-; 0x7c403
 
-SupernerdTeruBeatenText: ; 0x7c403
+SupernerdTeruBeatenText:
 	text "Ow, ow, ow!"
 	done
-; 0x7c410
 
-UnknownText_0x7c410: ; 0x7c410
+UnknownText_0x7c410:
 	text "I know my #MON"
 	line "type alignments."
 
@@ -580,9 +457,8 @@
 	para "But I only use one"
 	line "type of #MON."
 	done
-; 0x7c452
 
-PokemaniacIssacSeenText: ; 0x7c452
+PokemaniacIssacSeenText:
 	text "My #MON just"
 	line "got a haircut!"
 
@@ -589,14 +465,12 @@
 	para "I'll show you how"
 	line "strong it is!"
 	done
-; 0x7c48e
 
-PokemaniacIssacBeatenText: ; 0x7c48e
+PokemaniacIssacBeatenText:
 	text "Aiyeeee!"
 	done
-; 0x7c498
 
-UnknownText_0x7c498: ; 0x7c498
+UnknownText_0x7c498:
 	text "Your #MON will"
 	line "like you more if"
 
@@ -603,9 +477,8 @@
 	para "you give them"
 	line "haircuts."
 	done
-; 0x7c4d1
 
-PokemaniacDonaldSeenText: ; 0x7c4d1
+PokemaniacDonaldSeenText:
 	text "I think you have"
 	line "some rare #MON"
 	cont "with you."
@@ -612,15 +485,13 @@
 
 	para "Let me see them!"
 	done
-; 0x7c50d
 
-PokemaniacDonaldBeatenText: ; 0x7c50d
+PokemaniacDonaldBeatenText:
 	text "Gaah! I lost!"
 	line "That makes me mad!"
 	done
-; 0x7c52f
 
-UnknownText_0x7c52f: ; 0x7c52f
+UnknownText_0x7c52f:
 	text "Are you making a"
 	line "#DEX? Here's a"
 	cont "hot tip."
@@ -633,25 +504,21 @@
 	line "he sees any rare"
 	cont "#MON."
 	done
-; 0x7c5b0
 
-UnknownText_0x7c5b0: ; 0x7c5b0
+UnknownText_0x7c5b0:
 	text "The door's locked…"
 	done
-; 0x7c5c3
 
-UnknownText_0x7c5c3: ; 0x7c5c3
+UnknownText_0x7c5c3:
 	text "The door is open."
 	done
-; 0x7c5d6
 
-UnknownText_0x7c5d6: ; 0x7c5d6
+UnknownText_0x7c5d6:
 	text "The BASEMENT KEY"
 	line "opened the door."
 	done
-; 0x7c5f9
 
-UnknownText_0x7c5f9: ; 0x7c5f9
+UnknownText_0x7c5f9:
 	text "Welcome!"
 
 	para "I run the #MON"
@@ -668,45 +535,38 @@
 	para "Would you like me"
 	line "to do that?"
 	done
-; 0x7c69a
 
-UnknownText_0x7c69a: ; 0x7c69a
+UnknownText_0x7c69a:
 	text "Which #MON"
 	line "should I work on?"
 	done
-; 0x7c6b8
 
-UnknownText_0x7c6b8: ; 0x7c6b8
+UnknownText_0x7c6b8:
 	text "OK! Watch it"
 	line "become beautiful!"
 	done
-; 0x7c6d8
 
-UnknownText_0x7c6d8: ; 0x7c6d8
+UnknownText_0x7c6d8:
 	text "There! All done!"
 	done
-; 0x7c6ea
 
-UnknownText_0x7c6ea: ; 0x7c6ea
+UnknownText_0x7c6ea:
 	text "Is that right?"
 	line "That's a shame!"
 	done
-; 0x7c709
 
-UnknownText_0x7c709: ; 0x7c709
+UnknownText_0x7c709:
 	text "You'll need more"
 	line "money than that."
 	done
-; 0x7c72b
 
-UnknownText_0x7c72b: ; 0x7c72b
+UnknownText_0x7c72b:
 	text "I do only one"
 	line "haircut a day. I'm"
 	cont "done for today."
 	done
-; 0x7c75c
 
-UnknownText_0x7c75c: ; 0x7c75c
+UnknownText_0x7c75c:
 	text "Welcome to the"
 	line "#MON SALON!"
 
@@ -721,39 +581,33 @@
 
 	para "So? How about it?"
 	done
-; 0x7c7f1
 
-UnknownText_0x7c7f1: ; 0x7c7f1
+UnknownText_0x7c7f1:
 	text "OK, which #MON"
 	line "should I do?"
 	done
-; 0x7c80e
 
-UnknownText_0x7c80e: ; 0x7c80e
+UnknownText_0x7c80e:
 	text "OK! I'll make it"
 	line "look cool!"
 	done
-; 0x7c82a
 
-UnknownText_0x7c82a: ; 0x7c82a
+UnknownText_0x7c82a:
 	text "There we go!"
 	line "All done!"
 	done
-; 0x7c842
 
-UnknownText_0x7c842: ; 0x7c842
+UnknownText_0x7c842:
 	text "No? "
 	line "How disappointing!"
 	done
-; 0x7c85b
 
-UnknownText_0x7c85b: ; 0x7c85b
+UnknownText_0x7c85b:
 	text "You're a little"
 	line "short on funds."
 	done
-; 0x7c87b
 
-UnknownText_0x7c87b: ; 0x7c87b
+UnknownText_0x7c87b:
 	text "I can do only one"
 	line "haircut a day."
 
@@ -760,46 +614,40 @@
 	para "Sorry, but I'm all"
 	line "done for today."
 	done
-; 0x7c8bf
 
-UnknownText_0x7c8bf: ; 0x7c8bf
+UnknownText_0x7c8bf:
 	text_from_ram StringBuffer3
 	text " looks a"
 	line "little happier."
 	done
-; 0x7c8dc
 
-UnknownText_0x7c8dc: ; 0x7c8dc
+UnknownText_0x7c8dc:
 	text_from_ram StringBuffer3
 	text " looks"
 	line "happy."
 	done
-; 0x7c8ee
 
-UnknownText_0x7c8ee: ; 0x7c8ee
+UnknownText_0x7c8ee:
 	text_from_ram StringBuffer3
 	text " looks"
 	line "delighted!"
 	done
-; 0x7c904
 
-UnknownText_0x7c904: ; 0x7c904
+UnknownText_0x7c904:
 	text "We're not open"
 	line "today."
 	done
-; 0x7c91a
 
-UnknownText_0x7c91a: ; 0x7c91a
+UnknownText_0x7c91a:
 	text "NO ENTRY BEYOND"
 	line "THIS POINT"
 	done
-; 0x7c936
 
-WarehouseEntrance_MapEventHeader: ; 0x7c936
+WarehouseEntrance_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -808,26 +656,25 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 5
-	signpost 6, 18, $0, MapWarehouseEntranceSignpost0Script
-	signpost 6, 19, $0, MapWarehouseEntranceSignpost1Script
-	signpost 13, 6, $7, MapWarehouseEntranceSignpostItem2
-	signpost 18, 4, $7, MapWarehouseEntranceSignpostItem3
-	signpost 8, 17, $7, MapWarehouseEntranceSignpostItem4
+	signpost 6, 18, SIGNPOST_READ, BasementDoorScript
+	signpost 6, 19, SIGNPOST_READ, MapWarehouseEntranceSignpost1Script
+	signpost 13, 6, SIGNPOST_ITEM, MapWarehouseEntranceSignpostItem2
+	signpost 18, 4, SIGNPOST_ITEM, MapWarehouseEntranceSignpostItem3
+	signpost 8, 17, SIGNPOST_ITEM, MapWarehouseEntranceSignpostItem4
 
-	; people-events
+.PersonEvents:
 	db 9
-	person_event SPRITE_SUPER_NERD, 35, 9, $8, $0, 255, 255, $b2, 3, TrainerSupernerdEric, $ffff
-	person_event SPRITE_SUPER_NERD, 13, 10, $7, $0, 255, 255, $b2, 2, TrainerSupernerdTeru, $ffff
-	person_event SPRITE_SUPER_NERD, 31, 7, $a, $0, 255, 255, $92, 2, TrainerPokemaniacIssac, $ffff
-	person_event SPRITE_SUPER_NERD, 10, 6, $9, $0, 255, 255, $92, 3, TrainerPokemaniacDonald, $ffff
-	person_event SPRITE_POKE_BALL, 29, 11, $1, $0, 255, 255, $1, 0, ItemFragment_0x7c306, $0672
-	person_event SPRITE_GRAMPS, 15, 11, $8, $0, 255, 255, $b0, 0, GrampsScript_0x7c146, $0753
-	person_event SPRITE_SUPER_NERD, 18, 11, $8, $0, 255, 255, $90, 0, SuperNerdScript_0x7c161, $0754
-	person_event SPRITE_SUPER_NERD, 19, 11, $8, $0, 255, 255, $a0, 0, SuperNerdScript_0x7c20e, $0755
-	person_event SPRITE_GRANNY, 25, 11, $8, $0, 255, 255, $b0, 0, GrannyScript_0x7c132, $0752
-; 0x7c9e8
+	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
--- a/maps/WhirlIslandB1F.asm
+++ b/maps/WhirlIslandB1F.asm
@@ -1,57 +1,45 @@
-WhirlIslandB1F_MapScriptHeader: ; 0x18c40e
-	; trigger count
+WhirlIslandB1F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18c410
 
-ItemFragment_0x18c410: ; 0x18c410
+ItemFragment_0x18c410:
 	db FULL_RESTORE, 1
-; 0x18c412
 
-ItemFragment_0x18c412: ; 0x18c412
+ItemFragment_0x18c412:
 	db CARBOS, 1
-; 0x18c414
 
-ItemFragment_0x18c414: ; 0x18c414
+ItemFragment_0x18c414:
 	db CALCIUM, 1
-; 0x18c416
 
-ItemFragment_0x18c416: ; 0x18c416
+ItemFragment_0x18c416:
 	db NUGGET, 1
-; 0x18c418
 
-ItemFragment_0x18c418: ; 0x18c418
+ItemFragment_0x18c418:
 	db ESCAPE_ROPE, 1
-; 0x18c41a
 
 WhirlIslandB1FBoulder:
 	jumpstd strengthboulder
 
-MapWhirlIslandB1FSignpostItem0: ; 0x18c41d
-	dw $0097
-	db RARE_CANDY
+MapWhirlIslandB1FSignpostItem0:
+	dwb EVENT_WHIRL_ISLAND_B1F_HIDDEN_RARE_CANDY, RARE_CANDY
 	
-; 0x18c420
 
-MapWhirlIslandB1FSignpostItem1: ; 0x18c420
-	dw $0098
-	db ULTRA_BALL
+MapWhirlIslandB1FSignpostItem1:
+	dwb EVENT_WHIRL_ISLAND_B1F_HIDDEN_ULTRA_BALL, ULTRA_BALL
 	
-; 0x18c423
 
-MapWhirlIslandB1FSignpostItem2: ; 0x18c423
-	dw $0099
-	db FULL_RESTORE
+MapWhirlIslandB1FSignpostItem2:
+	dwb EVENT_WHIRL_ISLAND_B1F_HIDDEN_FULL_RESTORE, FULL_RESTORE
 	
-; 0x18c426
 
-WhirlIslandB1F_MapEventHeader: ; 0x18c426
+WhirlIslandB1F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -63,21 +51,20 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 3
-	signpost 4, 30, $7, MapWhirlIslandB1FSignpostItem0
-	signpost 18, 36, $7, MapWhirlIslandB1FSignpostItem1
-	signpost 23, 2, $7, MapWhirlIslandB1FSignpostItem2
+	signpost 4, 30, SIGNPOST_ITEM, MapWhirlIslandB1FSignpostItem0
+	signpost 18, 36, SIGNPOST_ITEM, MapWhirlIslandB1FSignpostItem1
+	signpost 23, 2, SIGNPOST_ITEM, MapWhirlIslandB1FSignpostItem2
 
-	; people-events
+.PersonEvents:
 	db 6
-	person_event SPRITE_POKE_BALL, 17, 11, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c410, $0691
-	person_event SPRITE_POKE_BALL, 22, 6, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c412, $0692
-	person_event SPRITE_POKE_BALL, 27, 37, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c414, $0693
-	person_event SPRITE_POKE_BALL, 12, 21, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c416, $0694
-	person_event SPRITE_POKE_BALL, 30, 23, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c418, $0695
-	person_event SPRITE_BOULDER, 30, 27, $19, $0, 255, 255, $0, 0, WhirlIslandB1FBoulder, $ffff
-; 0x18c4b6
+	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
--- a/maps/WhirlIslandB2F.asm
+++ b/maps/WhirlIslandB2F.asm
@@ -1,28 +1,24 @@
-WhirlIslandB2F_MapScriptHeader: ; 0x18c4b6
-	; trigger count
+WhirlIslandB2F_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18c4b8
 
-ItemFragment_0x18c4b8: ; 0x18c4b8
+ItemFragment_0x18c4b8:
 	db FULL_RESTORE, 1
-; 0x18c4ba
 
-ItemFragment_0x18c4ba: ; 0x18c4ba
+ItemFragment_0x18c4ba:
 	db MAX_REVIVE, 1
-; 0x18c4bc
 
-ItemFragment_0x18c4bc: ; 0x18c4bc
+ItemFragment_0x18c4bc:
 	db MAX_ELIXER, 1
-; 0x18c4be
 
-WhirlIslandB2F_MapEventHeader: ; 0x18c4be
+WhirlIslandB2F_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -29,15 +25,14 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 3
-	person_event SPRITE_POKE_BALL, 15, 14, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c4b8, $0696
-	person_event SPRITE_POKE_BALL, 8, 10, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c4ba, $0697
-	person_event SPRITE_POKE_BALL, 16, 9, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c4bc, $0698
-; 0x18c4ff
+	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
--- a/maps/WhirlIslandCave.asm
+++ b/maps/WhirlIslandCave.asm
@@ -1,26 +1,24 @@
-WhirlIslandCave_MapScriptHeader: ; 0x18c3ea
-	; trigger count
+WhirlIslandCave_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18c3ec
 
-WhirlIslandCave_MapEventHeader: ; 0x18c3ec
+WhirlIslandCave_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x18c3fc
--- a/maps/WhirlIslandLugiaChamber.asm
+++ b/maps/WhirlIslandLugiaChamber.asm
@@ -1,34 +1,30 @@
-WhirlIslandLugiaChamber_MapScriptHeader: ; 0x18c4ff
-	; trigger count
+WhirlIslandLugiaChamber_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 2, UnknownScript_0x18c504
-; 0x18c504
 
-UnknownScript_0x18c504: ; 0x18c504
+UnknownScript_0x18c504:
 	checkevent EVENT_FOUGHT_LUGIA
 	iftrue UnknownScript_0x18c515
 	checkitem SILVER_WING
 	iftrue UnknownScript_0x18c512
 	jump UnknownScript_0x18c515
-; 0x18c512
 
-UnknownScript_0x18c512: ; 0x18c512
+UnknownScript_0x18c512:
 	appear $2
 	return
-; 0x18c515
 
-UnknownScript_0x18c515: ; 0x18c515
+UnknownScript_0x18c515:
 	disappear $2
 	return
-; 0x18c518
 
-LugiaScript_0x18c518: ; 0x18c518
+LugiaScript_0x18c518:
 	faceplayer
 	loadfont
 	writetext UnknownText_0x18c531
@@ -36,34 +32,31 @@
 	pause 15
 	loadmovesprites
 	setevent EVENT_FOUGHT_LUGIA
-	writecode $3, BATTLETYPE_FORCEITEM
+	writecode VAR_BATTLETYPE, BATTLETYPE_FORCEITEM
 	loadpokedata LUGIA, 60
 	startbattle
 	disappear $2
 	returnafterbattle
 	end
-; 0x18c531
 
-UnknownText_0x18c531: ; 0x18c531
+UnknownText_0x18c531:
 	text "Gyaaas!"
 	done
-; 0x18c53a
 
-WhirlIslandLugiaChamber_MapEventHeader: ; 0x18c53a
+WhirlIslandLugiaChamber_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.Warps:
 	db 1
 	warp_def $d, $9, 3, GROUP_WHIRL_ISLAND_B2F, MAP_WHIRL_ISLAND_B2F
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_LUGIA, 9, 13, $16, $0, 255, 255, $90, 0, LugiaScript_0x18c518, $073d
-; 0x18c552
+	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
--- a/maps/WhirlIslandNE.asm
+++ b/maps/WhirlIslandNE.asm
@@ -1,32 +1,29 @@
-WhirlIslandNE_MapScriptHeader: ; 0x18c394
-	; trigger count
+WhirlIslandNE_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18c396
 
-ItemFragment_0x18c396: ; 0x18c396
+ItemFragment_0x18c396:
 	db ULTRA_BALL, 1
-; 0x18c398
 
-WhirlIslandNE_MapEventHeader: ; 0x18c398
+WhirlIslandNE_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_POKE_BALL, 15, 15, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c396, $068f
-; 0x18c3ba
+	person_event SPRITE_POKE_BALL, 15, 15, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c396, EVENT_WHIRL_ISLAND_NE_ULTRA_BALL
--- a/maps/WhirlIslandNW.asm
+++ b/maps/WhirlIslandNW.asm
@@ -1,16 +1,15 @@
-WhirlIslandNW_MapScriptHeader: ; 0x18c378
-	; trigger count
+WhirlIslandNW_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18c37a
 
-WhirlIslandNW_MapEventHeader: ; 0x18c37a
+WhirlIslandNW_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -17,12 +16,11 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x18c394
--- a/maps/WhirlIslandSE.asm
+++ b/maps/WhirlIslandSE.asm
@@ -1,26 +1,24 @@
-WhirlIslandSE_MapScriptHeader: ; 0x18c3fc
-	; trigger count
+WhirlIslandSE_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18c3fe
 
-WhirlIslandSE_MapEventHeader: ; 0x18c3fe
+WhirlIslandSE_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 0
-; 0x18c40e
--- a/maps/WhirlIslandSW.asm
+++ b/maps/WhirlIslandSW.asm
@@ -1,20 +1,18 @@
-WhirlIslandSW_MapScriptHeader: ; 0x18c3ba
-	; trigger count
+WhirlIslandSW_MapScriptHeader:
+.MapTriggers:
 	db 0
 
-	; callback count
+.MapCallbacks:
 	db 0
-; 0x18c3bc
 
-ItemFragment_0x18c3bc: ; 0x18c3bc
+ItemFragment_0x18c3bc:
 	db ULTRA_BALL, 1
-; 0x18c3be
 
-WhirlIslandSW_MapEventHeader: ; 0x18c3be
+WhirlIslandSW_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
@@ -22,13 +20,12 @@
 	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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_POKE_BALL, 6, 19, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c3bc, $0690
-; 0x18c3ea
+	person_event SPRITE_POKE_BALL, 6, 19, OW_DOWN | $1, $0, -1, -1, $1, 0, ItemFragment_0x18c3bc, EVENT_WHIRL_ISLAND_SW_ULTRA_BALL
--- a/maps/WillsRoom.asm
+++ b/maps/WillsRoom.asm
@@ -1,5 +1,5 @@
-WillsRoom_MapScriptHeader: ; 0x1804b9
-	; trigger count
+WillsRoom_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,36 +6,32 @@
 	dw UnknownScript_0x1804c6, $0000
 	dw UnknownScript_0x1804ca, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 1, UnknownScript_0x1804cb
-; 0x1804c6
 
-UnknownScript_0x1804c6: ; 0x1804c6
+UnknownScript_0x1804c6:
 	priorityjump UnknownScript_0x1804e0
 	end
-; 0x1804ca
 
-UnknownScript_0x1804ca: ; 0x1804ca
+UnknownScript_0x1804ca:
 	end
-; 0x1804cb
 
-UnknownScript_0x1804cb: ; 0x1804cb
-	checkevent $0309
+UnknownScript_0x1804cb:
+	checkevent EVENT_WILLS_ROOM_ENTRANCE_CLOSED
 	iffalse UnknownScript_0x1804d5
 	changeblock $4, $e, $2a
-UnknownScript_0x1804d5: ; 0x1804d5
+UnknownScript_0x1804d5:
 	checkevent EVENT_WILLS_ROOM_EXIT_OPEN
 	iffalse UnknownScript_0x1804df
 	changeblock $4, $2, $16
-UnknownScript_0x1804df: ; 0x1804df
+UnknownScript_0x1804df:
 	return
-; 0x1804e0
 
-UnknownScript_0x1804e0: ; 0x1804e0
+UnknownScript_0x1804e0:
 	applymovement $0, MovementData_0x18052c
 	refreshscreen $86
 	playsound SFX_STRENGTH
@@ -44,15 +40,14 @@
 	reloadmappart
 	loadmovesprites
 	dotrigger $1
-	setevent $0309
+	setevent EVENT_WILLS_ROOM_ENTRANCE_CLOSED
 	waitbutton
 	end
-; 0x1804f8
 
-WillScript_0x1804f8: ; 0x1804f8
+WillScript_0x1804f8:
 	faceplayer
 	loadfont
-	checkevent $05b8
+	checkevent EVENT_BEAT_ELITE_4_WILL
 	iftrue UnknownScript_0x180526
 	writetext UnknownText_0x180531
 	closetext
@@ -61,7 +56,7 @@
 	loadtrainer WILL, 1
 	startbattle
 	returnafterbattle
-	setevent $05b8
+	setevent EVENT_BEAT_ELITE_4_WILL
 	loadfont
 	writetext UnknownText_0x180644
 	closetext
@@ -73,24 +68,21 @@
 	setevent EVENT_WILLS_ROOM_EXIT_OPEN
 	waitbutton
 	end
-; 0x180526
 
-UnknownScript_0x180526: ; 0x180526
+UnknownScript_0x180526:
 	writetext UnknownText_0x180644
 	closetext
 	loadmovesprites
 	end
-; 0x18052c
 
-MovementData_0x18052c: ; 0x18052c
+MovementData_0x18052c:
 	step_up
 	step_up
 	step_up
 	step_up
 	step_end
-; 0x180531
 
-UnknownText_0x180531: ; 0x180531
+UnknownText_0x180531:
 	text "Welcome to #MON"
 	line "LEAGUE, <PLAYER>."
 
@@ -114,15 +106,13 @@
 	para "Losing is not an"
 	line "option!"
 	done
-; 0x18062c
 
-UnknownText_0x18062c: ; 0x18062c
+UnknownText_0x18062c:
 	text "I… I can't…"
 	line "believe it…"
 	done
-; 0x180644
 
-UnknownText_0x180644: ; 0x180644
+UnknownText_0x180644:
 	text "Even though I was"
 	line "defeated, I won't"
 	cont "change my course."
@@ -139,25 +129,23 @@
 	para "the true ferocity"
 	line "of the ELITE FOUR."
 	done
-; 0x1806f9
 
-WillsRoom_MapEventHeader: ; 0x1806f9
+WillsRoom_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 1
-	person_event SPRITE_WILL, 11, 9, $6, $0, 255, 255, $80, 0, WillScript_0x1804f8, $ffff
-; 0x18071b
+	person_event SPRITE_WILL, 11, 9, OW_UP | $2, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, WillScript_0x1804f8, -1
--- a/maps/WiseTriosRoom.asm
+++ b/maps/WiseTriosRoom.asm
@@ -1,5 +1,5 @@
-WiseTriosRoom_MapScriptHeader: ; 0x98565
-	; trigger count
+WiseTriosRoom_MapScriptHeader:
+.MapTriggers:
 	db 2
 
 	; triggers
@@ -6,23 +6,20 @@
 	dw UnknownScript_0x98572, $0000
 	dw UnknownScript_0x98573, $0000
 
-	; callback count
+.MapCallbacks:
 	db 1
 
 	; callbacks
 
 	dbw 2, UnknownScript_0x98574
-; 0x98572
 
-UnknownScript_0x98572: ; 0x98572
+UnknownScript_0x98572:
 	end
-; 0x98573
 
-UnknownScript_0x98573: ; 0x98573
+UnknownScript_0x98573:
 	end
-; 0x98574
 
-UnknownScript_0x98574: ; 0x98574
+UnknownScript_0x98574:
 	checkevent EVENT_FOUGHT_SUICUNE
 	iftrue UnknownScript_0x98593
 	checkevent EVENT_KOJI_ALLOWS_YOU_PASSAGE_TO_TIN_TOWER
@@ -29,39 +26,33 @@
 	iftrue UnknownScript_0x9858c
 	checkitem CLEAR_BELL
 	iftrue UnknownScript_0x9858c
-	clearevent $07ab
-	setevent $07ac
+	clearevent EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
+	setevent EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2
 	return
-; 0x9858c
 
-UnknownScript_0x9858c: ; 0x9858c
-	setevent $07ab
-	clearevent $07ac
+UnknownScript_0x9858c:
+	setevent EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
+	clearevent EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2
 	return
-; 0x98593
 
-UnknownScript_0x98593: ; 0x98593
-	setevent $07ab
-	setevent $07ac
+UnknownScript_0x98593:
+	setevent EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
+	setevent EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2
 	return
-; 0x9859a
 
-SageScript_0x9859a: ; 0x9859a
+SageScript_0x9859a:
 	jumptextfaceplayer UnknownText_0x9862b
-; 0x9859d
 
-SageScript_0x9859d: ; 0x9859d
+SageScript_0x9859d:
 	jumptextfaceplayer UnknownText_0x9868b
-; 0x985a0
 
-SageScript_0x985a0: ; 0x985a0
+SageScript_0x985a0:
 	jumptextfaceplayer UnknownText_0x987af
-; 0x985a3
 
-UnknownScript_0x985a3: ; 0x985a3
+UnknownScript_0x985a3:
 	spriteface $4, UP
 	spriteface $0, DOWN
-	showemote $0, $4, 20
+	showemote EMOTE_SHOCK, $4, 20
 	follow $0, $4
 	applymovement $0, MovementData_0x98622
 	stopfollow
@@ -73,89 +64,35 @@
 	applymovement $4, MovementData_0x98625
 	spriteface $4, LEFT
 	end
-; 0x985c6
 
-TrainerSageGaku: ; 0x985c6
-	; bit/flag number
-	dw $5c9
+TrainerSageGaku:
+	trainer EVENT_BEAT_SAGE_GAKU, SAGE, GAKU, SageGakuSeenText, SageGakuBeatenText, $0000, SageGakuScript
 
-	; trainer group && trainer id
-	db SAGE, GAKU
-
-	; text when seen
-	dw SageGakuSeenText
-
-	; text when trainer beaten
-	dw SageGakuBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SageGakuScript
-; 0x985d2
-
-SageGakuScript: ; 0x985d2
+SageGakuScript:
 	loadfont
 	writetext UnknownText_0x98938
 	closetext
 	loadmovesprites
 	end
-; 0x985d9
 
-TrainerSageMasa: ; 0x985d9
-	; bit/flag number
-	dw $5ca
+TrainerSageMasa:
+	trainer EVENT_BEAT_SAGE_MASA, SAGE, MASA, SageMasaSeenText, SageMasaBeatenText, $0000, SageMasaScript
 
-	; trainer group && trainer id
-	db SAGE, MASA
-
-	; text when seen
-	dw SageMasaSeenText
-
-	; text when trainer beaten
-	dw SageMasaBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SageMasaScript
-; 0x985e5
-
-SageMasaScript: ; 0x985e5
+SageMasaScript:
 	loadfont
 	writetext UnknownText_0x98a35
 	closetext
 	loadmovesprites
 	end
-; 0x985ec
 
-TrainerSageKoji: ; 0x985ec
-	; bit/flag number
-	dw $5cb
+TrainerSageKoji:
+	trainer EVENT_BEAT_SAGE_KOJI, SAGE, KOJI, SageKojiSeenText, SageKojiBeatenText, $0000, SageKojiScript
 
-	; trainer group && trainer id
-	db SAGE, KOJI
-
-	; text when seen
-	dw SageKojiSeenText
-
-	; text when trainer beaten
-	dw SageKojiBeatenText
-
-	; script when lost
-	dw $0000
-
-	; script when talk again
-	dw SageKojiScript
-; 0x985f8
-
-SageKojiScript: ; 0x985f8
+SageKojiScript:
 	checkevent EVENT_KOJI_ALLOWS_YOU_PASSAGE_TO_TIN_TOWER
 	iftrue UnknownScript_0x9861b
 	pause 10
-	showemote $0, $7, 20
+	showemote EMOTE_SHOCK, $7, 20
 	loadfont
 	writetext UnknownText_0x98c6c
 	keeptextopen
@@ -167,35 +104,30 @@
 	setevent EVENT_KOJI_ALLOWS_YOU_PASSAGE_TO_TIN_TOWER
 	dotrigger $1
 	end
-; 0x9861b
 
-UnknownScript_0x9861b: ; 0x9861b
+UnknownScript_0x9861b:
 	loadfont
 	writetext UnknownText_0x98db5
 	closetext
 	loadmovesprites
 	end
-; 0x98622
 
-MovementData_0x98622: ; 0x98622
+MovementData_0x98622:
 	step_left
 	step_left
 	step_end
-; 0x98625
 
-MovementData_0x98625: ; 0x98625
+MovementData_0x98625:
 	step_right
 	step_down
 	step_end
-; 0x98628
 
-MovementData_0x98628: ; 0x98628
+MovementData_0x98628:
 	step_right
 	step_down
 	step_end
-; 0x9862b
 
-UnknownText_0x9862b: ; 0x9862b
+UnknownText_0x9862b:
 	text "Astounding…"
 
 	para "SUICUNE, ENTEI and"
@@ -205,9 +137,8 @@
 	para "Is the legend"
 	line "coming true?"
 	done
-; 0x9868b
 
-UnknownText_0x9868b: ; 0x9868b
+UnknownText_0x9868b:
 	text "We train at the"
 	line "BURNED TOWER, but"
 
@@ -220,9 +151,8 @@
 	para "deliberately made"
 	line "by someone."
 	done
-; 0x98712
 
-UnknownText_0x98712: ; 0x98712
+UnknownText_0x98712:
 	text "TIN TOWER may be"
 	line "entered by those"
 
@@ -238,9 +168,8 @@
 	para "to refrain from"
 	line "entering!"
 	done
-; 0x987af
 
-UnknownText_0x987af: ; 0x987af
+UnknownText_0x987af:
 	text "We, the WISE TRIO,"
 	line "are the protectors"
 
@@ -247,9 +176,8 @@
 	para "of the legendary"
 	line "#MON."
 	done
-; 0x987ed
 
-SageGakuSeenText: ; 0x987ed
+SageGakuSeenText:
 	text "Legend has it that"
 	line "upon the emergence"
 
@@ -278,15 +206,13 @@
 	para "worthiness to go"
 	line "inside!"
 	done
-; 0x98914
 
-SageGakuBeatenText: ; 0x98914
+SageGakuBeatenText:
 	text "Stronger than we"
 	line "thought? Perhaps…"
 	done
-; 0x98938
 
-UnknownText_0x98938: ; 0x98938
+UnknownText_0x98938:
 	text "Ah, so it is you"
 	line "who claim to have"
 
@@ -300,9 +226,8 @@
 	line "they can't be seen"
 	cont "while they sleep…"
 	done
-; 0x989d2
 
-SageMasaSeenText: ; 0x989d2
+SageMasaSeenText:
 	text "Can you be trusted"
 	line "with the truth?"
 
@@ -309,15 +234,13 @@
 	para "I must ascertain"
 	line "your worthiness."
 	done
-; 0x98a18
 
-SageMasaBeatenText: ; 0x98a18
+SageMasaBeatenText:
 	text "…I will tell you"
 	line "the truth…"
 	done
-; 0x98a35
 
-UnknownText_0x98a35: ; 0x98a35
+UnknownText_0x98a35:
 	text "In the past, there"
 	line "were two nine-tier"
 	cont "towers here."
@@ -366,21 +289,18 @@
 	line "the BURNED TOWER"
 	cont "came to be."
 	done
-; 0x98c42
 
-SageKojiSeenText: ; 0x98c42
+SageKojiSeenText:
 	text "Let me see your"
 	line "power!"
 	done
-; 0x98c5a
 
-SageKojiBeatenText: ; 0x98c5a
+SageKojiBeatenText:
 	text "Too strong!"
 	line "Why?"
 	done
-; 0x98c6c
 
-UnknownText_0x98c6c: ; 0x98c6c
+UnknownText_0x98c6c:
 	text "You… Are you the"
 	line "trainer who is"
 
@@ -387,9 +307,8 @@
 	para "awaited by the"
 	line "legendary #MON?"
 	done
-; 0x98cac
 
-UnknownText_0x98cac: ; 0x98cac
+UnknownText_0x98cac:
 	text "I see…"
 
 	para "We, the WISE TRIO,"
@@ -414,39 +333,36 @@
 	para "SUICUNE will put"
 	line "you to the test."
 	done
-; 0x98db5
 
-UnknownText_0x98db5: ; 0x98db5
+UnknownText_0x98db5:
 	text "Please, do go on."
 
 	para "SUICUNE will put"
 	line "you to the test."
 	done
-; 0x98dea
 
-WiseTriosRoom_MapEventHeader: ; 0x98dea
+WiseTriosRoom_MapEventHeader:
 	; filler
 	db 0, 0
 
-	; warps
+.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
 
-	; xy triggers
+.XYTriggers:
 	db 1
 	xy_trigger 0, $4, $7, $0, UnknownScript_0x985a3, $0, $0
 
-	; signposts
+.Signposts:
 	db 0
 
-	; people-events
+.PersonEvents:
 	db 6
-	person_event SPRITE_SAGE, 6, 10, $3, $0, 255, 255, $0, 0, SageScript_0x9859a, $07ab
-	person_event SPRITE_SAGE, 11, 10, $5, $1, 255, 255, $0, 0, SageScript_0x9859d, $07ab
-	person_event SPRITE_SAGE, 9, 11, $8, $0, 255, 255, $0, 0, SageScript_0x985a0, $07ab
-	person_event SPRITE_SAGE, 6, 8, $6, $0, 255, 255, $2, 2, TrainerSageGaku, $07ac
-	person_event SPRITE_SAGE, 10, 8, $7, $0, 255, 255, $2, 2, TrainerSageMasa, $07ac
-	person_event SPRITE_SAGE, 8, 10, $8, $0, 255, 255, $2, 2, TrainerSageKoji, $07ac
-; 0x98e55
+	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
--- a/maps/blockdata_1.asm
+++ b/maps/blockdata_1.asm
@@ -1,76 +1,58 @@
-Route32_BlockData: ; 0xa8000
+Route32_BlockData:
 	INCBIN "maps/Route32.blk"
-; 0xa81c2
 
-Route40_BlockData: ; 0xa81c2
+Route40_BlockData:
 	INCBIN "maps/Route40.blk"
-; 0xa8276
 
-Route36_BlockData: ; 0xa8276
+Route36_BlockData:
 	INCBIN "maps/Route36.blk"
-; 0xa8384
 
-Route44_BlockData: ; 0xa8384
+Route44_BlockData:
 	INCBIN "maps/Route44.blk"
-; 0xa8492
 
-Route28_BlockData: ; 0xa8492
+Route28_BlockData:
 	INCBIN "maps/Route28.blk"
-; 0xa8546
 
-BetaHerosHouse_BlockData: ; 0xa8546
+BetaHerosHouse_BlockData:
 	INCBIN "maps/BetaHerosHouse.blk"
-; 0xa8552
 
-CeladonCity_BlockData: ; 0xa8552
+CeladonCity_BlockData:
 	INCBIN "maps/CeladonCity.blk"
-; 0xa86ba
 
-SaffronCity_BlockData: ; 0xa86ba
+SaffronCity_BlockData:
 	INCBIN "maps/SaffronCity.blk"
-; 0xa8822
 
-Route2_BlockData: ; 0xa8822
+Route2_BlockData:
 	INCBIN "maps/Route2.blk"
-; 0xa8930
 
-ElmsHouse_BlockData: ; 0xa8930
+ElmsHouse_BlockData:
 	INCBIN "maps/ElmsHouse.blk"
-; 0xa8940
 
-BetaSproutTower1_BlockData: ; 0xa8940
+BetaSproutTower1_BlockData:
 	INCBIN "maps/BetaSproutTower1.blk"
-; 0xa899a
 
-Route11_BlockData: ; 0xa899a
+Route11_BlockData:
 	INCBIN "maps/Route11.blk"
-; 0xa8a4e
 
-BetaSproutTower5_BlockData: ; 0xa8a4e
+BetaSproutTower5_BlockData:
 	INCBIN "maps/BetaSproutTower5.blk"
-; 0xa8aa8
 
-Route15_BlockData: ; 0xa8aa8
+Route15_BlockData:
 	INCBIN "maps/Route15.blk"
-; 0xa8b5c
 
-BetaSproutTower9_BlockData: ; 0xa8b5c
+BetaSproutTower9_BlockData:
 	INCBIN "maps/BetaSproutTower9.blk"
-; 0xa8b80
 
-Route19_BlockData: ; 0xa8b80
+Route19_BlockData:
 	INCBIN "maps/Route19.blk"
-; 0xa8c34
 
-BetaBlackthornCity_BlockData: ; 0xa8c34
+BetaBlackthornCity_BlockData:
 	INCBIN "maps/BetaBlackthornCity.blk"
-; 0xa8d9c
 
-Route10South_BlockData: ; 0xa8d9c
+Route10South_BlockData:
 	INCBIN "maps/Route10South.blk"
-; 0xa8df6
 
-CinnabarPokeCenter2FBeta_BlockData: ; 0xa8df6
+CinnabarPokeCenter2FBeta_BlockData:
 CeruleanPokeCenter2FBeta_BlockData:
 Route10PokeCenter2FBeta_BlockData:
 VermilionPokeCenter2FBeta_BlockData:
@@ -82,117 +64,89 @@
 ViridianPokeCenter2FBeta_BlockData:
 SaffronPokeCenter2FBeta_BlockData:
 	INCBIN "maps/CinnabarPokeCenter2FBeta.blk"
-; 0xa8e16
 
-Route41_BlockData: ; 0xa8e16
+Route41_BlockData:
 	INCBIN "maps/Route41.blk"
-; 0xa90b9
 
-Route33_BlockData: ; 0xa90b9
+Route33_BlockData:
 	INCBIN "maps/Route33.blk"
-; 0xa9113
 
-Route45_BlockData: ; 0xa9113
+Route45_BlockData:
 	INCBIN "maps/Route45.blk"
-; 0xa92d5
 
-Route29_BlockData: ; 0xa92d5
+Route29_BlockData:
 	INCBIN "maps/Route29.blk"
-; 0xa93e3
 
-Route37_BlockData: ; 0xa93e3
+Route37_BlockData:
 	INCBIN "maps/Route37.blk"
-; 0xa943d
 
-LavenderTown_BlockData: ; 0xa943d
+LavenderTown_BlockData:
 	INCBIN "maps/LavenderTown.blk"
-; 0xa9497
 
-PalletTown_BlockData: ; 0xa9497
+PalletTown_BlockData:
 	INCBIN "maps/PalletTown.blk"
-; 0xa94f1
 
-Route25_BlockData: ; 0xa94f1
+Route25_BlockData:
 	INCBIN "maps/Route25.blk"
-; 0xa95ff
 
-Route24_BlockData: ; 0xa95ff
+Route24_BlockData:
 	INCBIN "maps/Route24.blk"
-; 0xa9659
 
-BetaVioletCity_BlockData: ; 0xa9659
+BetaVioletCity_BlockData:
 	INCBIN "maps/BetaVioletCity.blk"
-; 0xa97c1
 
-Route3_BlockData: ; 0xa97c1
+Route3_BlockData:
 	INCBIN "maps/Route3.blk"
-; 0xa98cf
 
-PewterCity_BlockData: ; 0xa98cf
+PewterCity_BlockData:
 	INCBIN "maps/PewterCity.blk"
-; 0xa9a37
 
-BetaIlexForest_BlockData: ; 0xa9a37
+BetaIlexForest_BlockData:
 	INCBIN "maps/BetaIlexForest.blk"
-; 0xa9b9f
 
-BetaSproutTower2_BlockData: ; 0xa9b9f
+BetaSproutTower2_BlockData:
 	INCBIN "maps/BetaSproutTower2.blk"
-; 0xa9bf9
 
-Route12_BlockData: ; 0xa9bf9
+Route12_BlockData:
 	INCBIN "maps/Route12.blk"
-; 0xa9d07
 
-BetaGoldenrodCity_BlockData: ; 0xa9d07
+BetaGoldenrodCity_BlockData:
 	INCBIN "maps/BetaGoldenrodCity.blk"
-; 0xa9e6f
 
-Route20_BlockData: ; 0xa9e6f
+Route20_BlockData:
 	INCBIN "maps/Route20.blk"
-; 0xa9f7d
 
-BetaSproutTower6_BlockData: ; 0xa9f7d
+BetaSproutTower6_BlockData:
 	INCBIN "maps/BetaSproutTower6.blk"
-; 0xa9fd7
 
-BetaPokecenterMainHouse_BlockData: ; 0xa9fd7
+BetaPokecenterMainHouse_BlockData:
 	INCBIN "maps/BetaPokecenterMainHouse.blk"
-; 0xa9ff7
 
-Route30_BlockData: ; 0xa9ff7
+Route30_BlockData:
 	INCBIN "maps/Route30.blk"
-; 0xaa105
 
-Route26_BlockData: ; 0xaa105
+Route26_BlockData:
 	INCBIN "maps/Route26.blk"
-; 0xaa321
 
-Route42_BlockData: ; 0xaa321
+Route42_BlockData:
 	INCBIN "maps/Route42.blk"
-; 0xaa42f
 
-Route34_BlockData: ; 0xaa42f
+Route34_BlockData:
 	INCBIN "maps/Route34.blk"
-; 0xaa53d
 
-Route46_BlockData: ; 0xaa53d
+Route46_BlockData:
 	INCBIN "maps/Route46.blk"
-; 0xaa5f1
 
-FuchsiaCity_BlockData: ; 0xaa5f1
+FuchsiaCity_BlockData:
 	INCBIN "maps/FuchsiaCity.blk"
-; 0xaa759
 
-Route38_BlockData: ; 0xaa759
+Route38_BlockData:
 	INCBIN "maps/Route38.blk"
-; 0xaa80d
 
-BetaCianwoodCity_BlockData: ; 0xaa80d
+BetaCianwoodCity_BlockData:
 	INCBIN "maps/BetaCianwoodCity.blk"
-; 0xaa867
 
-OlivineVoltorbHouse_BlockData: ; 0xaa867
+OlivineVoltorbHouse_BlockData:
 OlivineHouseBeta_BlockData:
 OlivinePunishmentSpeechHouse_BlockData:
 OlivineGoodRodHouse_BlockData:
@@ -243,9 +197,8 @@
 CherrygroveEvolutionSpeechHouse_BlockData:
 Route30BerrySpeechHouse_BlockData:
 	INCBIN "maps/OlivineVoltorbHouse.blk"
-; 0xaa877
 
-SafariZoneFuchsiaGateBeta_BlockData: ; 0xaa877
+SafariZoneFuchsiaGateBeta_BlockData:
 Route19FuchsiaGate_BlockData:
 Route43MahoganyGate_BlockData:
 Route43Gate_BlockData:
@@ -258,81 +211,62 @@
 Route2946Gate_BlockData:
 Route5SaffronCityGate_BlockData:
 	INCBIN "maps/SafariZoneFuchsiaGateBeta.blk"
-; 0xaa88b
 
-BetaTeakCity_BlockData: ; 0xaa88b
+BetaTeakCity_BlockData:
 	INCBIN "maps/BetaTeakCity.blk"
-; 0xaa9f3
 
-BetaCherrygroveCity_BlockData: ; 0xaa9f3
+BetaCherrygroveCity_BlockData:
 	INCBIN "maps/BetaCherrygroveCity.blk"
-; 0xaaa4d
 
-CinnabarIsland_BlockData: ; 0xaaa4d
+CinnabarIsland_BlockData:
 	INCBIN "maps/CinnabarIsland.blk"
-; 0xaaaa7
 
-Route4_BlockData: ; 0xaaaa7
+Route4_BlockData:
 	INCBIN "maps/Route4.blk"
-; 0xaab5b
 
-Route8_BlockData: ; 0xaab5b
+Route8_BlockData:
 	INCBIN "maps/Route8.blk"
-; 0xaac0f
 
-BetaSproutTower3_BlockData: ; 0xaac0f
+BetaSproutTower3_BlockData:
 	INCBIN "maps/BetaSproutTower3.blk"
-; 0xaac69
 
-ViridianCity_BlockData: ; 0xaac69
+ViridianCity_BlockData:
 	INCBIN "maps/ViridianCity.blk"
-; 0xaadd1
 
-Route13_BlockData: ; 0xaadd1
+Route13_BlockData:
 	INCBIN "maps/Route13.blk"
-; 0xaaedf
 
-Route21_BlockData: ; 0xaaedf
+Route21_BlockData:
 	INCBIN "maps/Route21.blk"
-; 0xaaf93
 
-BetaSproutTower7_BlockData: ; 0xaaf93
+BetaSproutTower7_BlockData:
 	INCBIN "maps/BetaSproutTower7.blk"
-; 0xaafed
 
-Route17_BlockData: ; 0xaafed
+Route17_BlockData:
 	INCBIN "maps/Route17.blk"
-; 0xab1af
 
-BetaMahoganyTown_BlockData: ; 0xab1af
+BetaMahoganyTown_BlockData:
 	INCBIN "maps/BetaMahoganyTown.blk"
-; 0xab209
 
-Route31_BlockData: ; 0xab209
+Route31_BlockData:
 	INCBIN "maps/Route31.blk"
-; 0xab2bd
 
-Route27_BlockData: ; 0xab2bd
+Route27_BlockData:
 	INCBIN "maps/Route27.blk"
-; 0xab425
 
-Route35_BlockData: ; 0xab425
+Route35_BlockData:
 	INCBIN "maps/Route35.blk"
-; 0xab4d9
 
-Route43_BlockData: ; 0xab4d9
+Route43_BlockData:
 	INCBIN "maps/Route43.blk"
-; 0xab5e7
 
-Route39_BlockData: ; 0xab5e7
+Route39_BlockData:
 	INCBIN "maps/Route39.blk"
-; 0xab69b
 
-KrissHouse1F_BlockData: ; 0xab69b
+KrissHouse1F_BlockData:
 	INCBIN "maps/KrissHouse1F.blk"
-; 0xab6af
 
-Route38EcruteakGate_BlockData: ; 0xab6af
+Route38EcruteakGate_BlockData:
 Route42EcruteakGate_BlockData:
 Route32RuinsofAlphGate_BlockData:
 IlexForestAzaleaGate_BlockData:
@@ -343,44 +277,33 @@
 Route1718Gate_BlockData:
 Route31VioletGate_BlockData:
 	INCBIN "maps/Route38EcruteakGate.blk"
-; 0xab6c3
 
-BetaAzaleaTown_BlockData: ; 0xab6c3
+BetaAzaleaTown_BlockData:
 	INCBIN "maps/BetaAzaleaTown.blk"
-; 0xab82b
 
-VermilionCity_BlockData: ; 0xab82b
+VermilionCity_BlockData:
 	INCBIN "maps/VermilionCity.blk"
-; 0xab993
 
-BetaOlivineCity_BlockData: ; 0xab993
+BetaOlivineCity_BlockData:
 	INCBIN "maps/BetaOlivineCity.blk"
-; 0xabafb
 
-BetaNewBarkTown_BlockData: ; 0xabafb
+BetaNewBarkTown_BlockData:
 	INCBIN "maps/BetaNewBarkTown.blk"
-; 0xabb55
 
-ElmsLab_BlockData: ; 0xabb55
+ElmsLab_BlockData:
 	INCBIN "maps/ElmsLab.blk"
-; 0xabb73
 
-CeruleanCity_BlockData: ; 0xabb73
+CeruleanCity_BlockData:
 	INCBIN "maps/CeruleanCity.blk"
-; 0xabcdb
 
-Route1_BlockData: ; 0xabcdb
+Route1_BlockData:
 	INCBIN "maps/Route1.blk"
-; 0xabd8f
 
-Route5_BlockData: ; 0xabd8f
+Route5_BlockData:
 	INCBIN "maps/Route5.blk"
-; 0xabde9
 
-Route9_BlockData: ; 0xabde9
+Route9_BlockData:
 	INCBIN "maps/Route9.blk"
-; 0xabef7
 
-Route22_BlockData: ; 0xabef7
+Route22_BlockData:
 	INCBIN "maps/Route22.blk"
-; 0xabfab
--- a/maps/blockdata_2.asm
+++ b/maps/blockdata_2.asm
@@ -1,12 +1,10 @@
-Route14_BlockData: ; 0xac000
+Route14_BlockData:
 	INCBIN "maps/Route14.blk"
-; 0xac0b4
 
-BetaSproutTower8_BlockData: ; 0xac0b4
+BetaSproutTower8_BlockData:
 	INCBIN "maps/BetaSproutTower8.blk"
-; 0xac10e
 
-OlivineMart_BlockData: ; 0xac10e
+OlivineMart_BlockData:
 EcruteakMart_BlockData:
 BlackthornMart_BlockData:
 CeruleanMart_BlockData:
@@ -20,17 +18,14 @@
 SaffronMart_BlockData:
 CherrygroveMart_BlockData:
 	INCBIN "maps/OlivineMart.blk"
-; 0xac126
 
-Route10North_BlockData: ; 0xac126
+Route10North_BlockData:
 	INCBIN "maps/Route10North.blk"
-; 0xac180
 
-BetaLakeOfRage_BlockData: ; 0xac180
+BetaLakeOfRage_BlockData:
 	INCBIN "maps/BetaLakeOfRage.blk"
-; 0xac2e8
 
-OlivinePokeCenter1F_BlockData: ; 0xac2e8
+OlivinePokeCenter1F_BlockData:
 MahoganyPokeCenter1F_BlockData:
 EcruteakPokeCenter1F_BlockData:
 BlackthornPokeCenter1F_BlockData:
@@ -52,549 +47,416 @@
 SaffronPokeCenter1F_BlockData:
 CherrygrovePokeCenter1F_BlockData:
 	INCBIN "maps/OlivinePokeCenter1F.blk"
-; 0xac2fc
 
-BetaPewterMuseumOfScience1F_BlockData: ; 0xac2fc
+BetaPewterMuseumOfScience1F_BlockData:
 	INCBIN "maps/BetaPewterMuseumOfScience1F.blk"
-; 0xac324
 
-BetaPewterMuseumOfScience2F_BlockData: ; 0xac324
+BetaPewterMuseumOfScience2F_BlockData:
 	INCBIN "maps/BetaPewterMuseumOfScience2F.blk"
-; 0xac340
 
-EarlsPokemonAcademy_BlockData: ; 0xac340
+EarlsPokemonAcademy_BlockData:
 	INCBIN "maps/EarlsPokemonAcademy.blk"
-; 0xac360
 
-BetaCinnabarIslandPokemonLabHallway_BlockData: ; 0xac360
+BetaCinnabarIslandPokemonLabHallway_BlockData:
 	INCBIN "maps/BetaCinnabarIslandPokemonLabHallway.blk"
-; 0xac384
 
-BetaCinnabarIslandPokemonLabRoom1_BlockData: ; 0xac384
+BetaCinnabarIslandPokemonLabRoom1_BlockData:
 	INCBIN "maps/BetaCinnabarIslandPokemonLabRoom1.blk"
-; 0xac394
 
-BetaCinnabarIslandPokemonLabRoom2_BlockData: ; 0xac394
+BetaCinnabarIslandPokemonLabRoom2_BlockData:
 	INCBIN "maps/BetaCinnabarIslandPokemonLabRoom2.blk"
-; 0xac3a4
 
-BetaCinnabarIslandPokemonLabRoom3_BlockData: ; 0xac3a4
+BetaCinnabarIslandPokemonLabRoom3_BlockData:
 	INCBIN "maps/BetaCinnabarIslandPokemonLabRoom3.blk"
-; 0xac3b4
 
-GoldenrodDeptStore1F_BlockData: ; 0xac3b4
+GoldenrodDeptStore1F_BlockData:
 CeladonDeptStore1F_BlockData:
 	INCBIN "maps/GoldenrodDeptStore1F.blk"
-; 0xac3d4
 
-GoldenrodDeptStore2F_BlockData: ; 0xac3d4
+GoldenrodDeptStore2F_BlockData:
 CeladonDeptStore2F_BlockData:
 	INCBIN "maps/GoldenrodDeptStore2F.blk"
-; 0xac3f4
 
-GoldenrodDeptStore3F_BlockData: ; 0xac3f4
+GoldenrodDeptStore3F_BlockData:
 CeladonDeptStore3F_BlockData:
 	INCBIN "maps/GoldenrodDeptStore3F.blk"
-; 0xac414
 
-GoldenrodDeptStore4F_BlockData: ; 0xac414
+GoldenrodDeptStore4F_BlockData:
 CeladonDeptStore4F_BlockData:
 	INCBIN "maps/GoldenrodDeptStore4F.blk"
-; 0xac434
 
-GoldenrodDeptStore5F_BlockData: ; 0xac434
+GoldenrodDeptStore5F_BlockData:
 CeladonDeptStore5F_BlockData:
 	INCBIN "maps/GoldenrodDeptStore5F.blk"
-; 0xac454
 
-GoldenrodDeptStore6F_BlockData: ; 0xac454
+GoldenrodDeptStore6F_BlockData:
 CeladonDeptStore6F_BlockData:
 	INCBIN "maps/GoldenrodDeptStore6F.blk"
-; 0xac474
 
-GoldenrodDeptStoreElevator_BlockData: ; 0xac474
+GoldenrodDeptStoreElevator_BlockData:
 CeladonDeptStoreElevator_BlockData:
 	INCBIN "maps/GoldenrodDeptStoreElevator.blk"
-; 0xac478
 
-CeladonMansion1F_BlockData: ; 0xac478
+CeladonMansion1F_BlockData:
 	INCBIN "maps/CeladonMansion1F.blk"
-; 0xac48c
 
-CeladonMansion2F_BlockData: ; 0xac48c
+CeladonMansion2F_BlockData:
 	INCBIN "maps/CeladonMansion2F.blk"
-; 0xac4a0
 
-CeladonMansion3F_BlockData: ; 0xac4a0
+CeladonMansion3F_BlockData:
 	INCBIN "maps/CeladonMansion3F.blk"
-; 0xac4b4
 
-CeladonMansionRoof_BlockData: ; 0xac4b4
+CeladonMansionRoof_BlockData:
 	INCBIN "maps/CeladonMansionRoof.blk"
-; 0xac4c8
 
-BetaHouse_BlockData: ; 0xac4c8
+BetaHouse_BlockData:
 	INCBIN "maps/BetaHouse.blk"
-; 0xac4d8
 
-CeladonGameCorner_BlockData: ; 0xac4d8
+CeladonGameCorner_BlockData:
 	INCBIN "maps/CeladonGameCorner.blk"
-; 0xac51e
 
-CeladonGameCornerPrizeRoom_BlockData: ; 0xac51e
+CeladonGameCornerPrizeRoom_BlockData:
 	INCBIN "maps/CeladonGameCornerPrizeRoom.blk"
-; 0xac527
 
-Colosseum_BlockData: ; 0xac527
+Colosseum_BlockData:
 	INCBIN "maps/Colosseum.blk"
-; 0xac53b
 
-TradeCenter_BlockData: ; 0xac53b
+TradeCenter_BlockData:
 TimeCapsule_BlockData:
 	INCBIN "maps/TradeCenter.blk"
-; 0xac54f
 
-EcruteakLugiaSpeechHouse_BlockData: ; 0xac54f
+EcruteakLugiaSpeechHouse_BlockData:
 EcruteakItemfinderHouse_BlockData:
 VioletNicknameSpeechHouse_BlockData:
 VioletOnixTradeHouse_BlockData:
 	INCBIN "maps/EcruteakLugiaSpeechHouse.blk"
-; 0xac55f
 
-BetaCave_BlockData: ; 0xac55f
+BetaCave_BlockData:
 	INCBIN "maps/BetaCave.blk"
-; 0xac5b9
 
-UnionCaveB1F_BlockData: ; 0xac5b9
+UnionCaveB1F_BlockData:
 	INCBIN "maps/UnionCaveB1F.blk"
-; 0xac66d
 
-UnionCaveB2F_BlockData: ; 0xac66d
+UnionCaveB2F_BlockData:
 	INCBIN "maps/UnionCaveB2F.blk"
-; 0xac721
 
-UnionCave1F_BlockData: ; 0xac721
+UnionCave1F_BlockData:
 	INCBIN "maps/UnionCave1F.blk"
-; 0xac7d5
 
-NationalPark_BlockData: ; 0xac7d5
+NationalPark_BlockData:
 NationalParkBugContest_BlockData:
 	INCBIN "maps/NationalPark.blk"
-; 0xac9f1
 
-Route6UndergroundEntrance_BlockData: ; 0xac9f1
+Route6UndergroundEntrance_BlockData:
 Route5UndergroundEntrance_BlockData:
 	INCBIN "maps/Route6UndergroundEntrance.blk"
-; 0xaca01
 
-BetaPokecenterTradeStation_BlockData: ; 0xaca01
+BetaPokecenterTradeStation_BlockData:
 	INCBIN "maps/BetaPokecenterTradeStation.blk"
-; 0xaca11
 
-KurtsHouse_BlockData: ; 0xaca11
+KurtsHouse_BlockData:
 	INCBIN "maps/KurtsHouse.blk"
-; 0xaca31
 
-GoldenrodMagnetTrainStation_BlockData: ; 0xaca31
+GoldenrodMagnetTrainStation_BlockData:
 	INCBIN "maps/GoldenrodMagnetTrainStation.blk"
-; 0xaca8b
 
-RuinsofAlphOutside_BlockData: ; 0xaca8b
+RuinsofAlphOutside_BlockData:
 	INCBIN "maps/RuinsofAlphOutside.blk"
-; 0xacb3f
 
-BetaAlphRuinUnsolvedPuzzleRoom_BlockData: ; 0xacb3f
+BetaAlphRuinUnsolvedPuzzleRoom_BlockData:
 	INCBIN "maps/BetaAlphRuinUnsolvedPuzzleRoom.blk"
-; 0xacb53
 
-RuinsofAlphInnerChamber_BlockData: ; 0xacb53
+RuinsofAlphInnerChamber_BlockData:
 	INCBIN "maps/RuinsofAlphInnerChamber.blk"
-; 0xacbdf
 
-RuinsofAlphHoOhChamber_BlockData: ; 0xacbdf
+RuinsofAlphHoOhChamber_BlockData:
 RuinsofAlphKabutoChamber_BlockData:
 RuinsofAlphOmanyteChamber_BlockData:
 RuinsofAlphAerodactylChamber_BlockData:
 	INCBIN "maps/RuinsofAlphHoOhChamber.blk"
-; 0xacbf3
 
-SproutTower1F_BlockData: ; 0xacbf3
+SproutTower1F_BlockData:
 	INCBIN "maps/SproutTower1F.blk"
-; 0xacc43
 
-BetaSproutTowerCutOut1_BlockData: ; 0xacc43
+BetaSproutTowerCutOut1_BlockData:
 	INCBIN "maps/BetaSproutTowerCutOut1.blk"
-; 0xacc4d
 
-SproutTower2F_BlockData: ; 0xacc4d
+SproutTower2F_BlockData:
 	INCBIN "maps/SproutTower2F.blk"
-; 0xacc9d
 
-BetaSproutTowerCutOut2_BlockData: ; 0xacc9d
+BetaSproutTowerCutOut2_BlockData:
 	INCBIN "maps/BetaSproutTowerCutOut2.blk"
-; 0xacca7
 
-SproutTower3F_BlockData: ; 0xacca7
+SproutTower3F_BlockData:
 	INCBIN "maps/SproutTower3F.blk"
-; 0xaccf7
 
-BetaSproutTowerCutOut3_BlockData: ; 0xaccf7
+BetaSproutTowerCutOut3_BlockData:
 	INCBIN "maps/BetaSproutTowerCutOut3.blk"
-; 0xacd01
 
-RadioTower1F_BlockData: ; 0xacd01
+RadioTower1F_BlockData:
 	INCBIN "maps/RadioTower1F.blk"
-; 0xacd25
 
-RadioTower2F_BlockData: ; 0xacd25
+RadioTower2F_BlockData:
 	INCBIN "maps/RadioTower2F.blk"
-; 0xacd49
 
-RadioTower3F_BlockData: ; 0xacd49
+RadioTower3F_BlockData:
 	INCBIN "maps/RadioTower3F.blk"
-; 0xacd6d
 
-RadioTower4F_BlockData: ; 0xacd6d
+RadioTower4F_BlockData:
 	INCBIN "maps/RadioTower4F.blk"
-; 0xacd91
 
-RadioTower5F_BlockData: ; 0xacd91
+RadioTower5F_BlockData:
 	INCBIN "maps/RadioTower5F.blk"
-; 0xacdb5
 
-NewBarkTown_BlockData: ; 0xacdb5
+NewBarkTown_BlockData:
 	INCBIN "maps/NewBarkTown.blk"
-; 0xace0f
 
-CherrygroveCity_BlockData: ; 0xace0f
+CherrygroveCity_BlockData:
 	INCBIN "maps/CherrygroveCity.blk"
-; 0xacec3
 
-VioletCity_BlockData: ; 0xacec3
+VioletCity_BlockData:
 	INCBIN "maps/VioletCity.blk"
-; 0xad02b
 
-AzaleaTown_BlockData: ; 0xad02b
+AzaleaTown_BlockData:
 	INCBIN "maps/AzaleaTown.blk"
-; 0xad0df
 
-CianwoodCity_BlockData: ; 0xad0df
+CianwoodCity_BlockData:
 	INCBIN "maps/CianwoodCity.blk"
-; 0xad274
 
-GoldenrodCity_BlockData: ; 0xad274
+GoldenrodCity_BlockData:
 	INCBIN "maps/GoldenrodCity.blk"
-; 0xad3dc
 
-OlivineCity_BlockData: ; 0xad3dc
+OlivineCity_BlockData:
 	INCBIN "maps/OlivineCity.blk"
-; 0xad544
 
-EcruteakCity_BlockData: ; 0xad544
+EcruteakCity_BlockData:
 	INCBIN "maps/EcruteakCity.blk"
-; 0xad6ac
 
-MahoganyTown_BlockData: ; 0xad6ac
+MahoganyTown_BlockData:
 	INCBIN "maps/MahoganyTown.blk"
-; 0xad706
 
-LakeofRage_BlockData: ; 0xad706
+LakeofRage_BlockData:
 	INCBIN "maps/LakeofRage.blk"
-; 0xad86e
 
-BlackthornCity_BlockData: ; 0xad86e
+BlackthornCity_BlockData:
 	INCBIN "maps/BlackthornCity.blk"
-; 0xad9d6
 
-SilverCaveOutside_BlockData: ; 0xad9d6
+SilverCaveOutside_BlockData:
 	INCBIN "maps/SilverCaveOutside.blk"
-; 0xadb3e
 
-Route6_BlockData: ; 0xadb3e
+Route6_BlockData:
 	INCBIN "maps/Route6.blk"
-; 0xadb98
 
-Route7_BlockData: ; 0xadb98
+Route7_BlockData:
 	INCBIN "maps/Route7.blk"
-; 0xadbf2
 
-Route16_BlockData: ; 0xadbf2
+Route16_BlockData:
 	INCBIN "maps/Route16.blk"
-; 0xadc4c
 
-Route18_BlockData: ; 0xadc4c
+Route18_BlockData:
 	INCBIN "maps/Route18.blk"
-; 0xadca6
 
-WarehouseEntrance_BlockData: ; 0xadca6
+WarehouseEntrance_BlockData:
 	INCBIN "maps/WarehouseEntrance.blk"
-; 0xaddb4
 
-UndergroundPathSwitchRoomEntrances_BlockData: ; 0xaddb4
+UndergroundPathSwitchRoomEntrances_BlockData:
 	INCBIN "maps/UndergroundPathSwitchRoomEntrances.blk"
-; 0xadec2
 
-GoldenrodDeptStoreB1F_BlockData: ; 0xadec2
+GoldenrodDeptStoreB1F_BlockData:
 	INCBIN "maps/GoldenrodDeptStoreB1F.blk"
-; 0xadf1c
 
-UndergroundWarehouse_BlockData: ; 0xadf1c
+UndergroundWarehouse_BlockData:
 	INCBIN "maps/UndergroundWarehouse.blk"
-; 0xadf76
 
-BetaElevator_BlockData: ; 0xadf76
+BetaElevator_BlockData:
 	INCBIN "maps/BetaElevator.blk"
-; 0xadf8f
 
-TinTower1F_BlockData: ; 0xadf8f
+TinTower1F_BlockData:
 	INCBIN "maps/TinTower1F.blk"
-; 0xadfe9
 
-TinTower2F_BlockData: ; 0xadfe9
+TinTower2F_BlockData:
 	INCBIN "maps/TinTower2F.blk"
-; 0xae043
 
-TinTower3F_BlockData: ; 0xae043
+TinTower3F_BlockData:
 	INCBIN "maps/TinTower3F.blk"
-; 0xae09d
 
-TinTower4F_BlockData: ; 0xae09d
+TinTower4F_BlockData:
 	INCBIN "maps/TinTower4F.blk"
-; 0xae0f7
 
-TinTower5F_BlockData: ; 0xae0f7
+TinTower5F_BlockData:
 	INCBIN "maps/TinTower5F.blk"
-; 0xae151
 
-TinTower6F_BlockData: ; 0xae151
+TinTower6F_BlockData:
 	INCBIN "maps/TinTower6F.blk"
-; 0xae1ab
 
-TinTower7F_BlockData: ; 0xae1ab
+TinTower7F_BlockData:
 	INCBIN "maps/TinTower7F.blk"
-; 0xae205
 
-TinTower8F_BlockData: ; 0xae205
+TinTower8F_BlockData:
 	INCBIN "maps/TinTower8F.blk"
-; 0xae25f
 
-TinTower9F_BlockData: ; 0xae25f
+TinTower9F_BlockData:
 	INCBIN "maps/TinTower9F.blk"
-; 0xae2b9
 
-TinTowerRoof_BlockData: ; 0xae2b9
+TinTowerRoof_BlockData:
 	INCBIN "maps/TinTowerRoof.blk"
-; 0xae313
 
-BurnedTower1F_BlockData: ; 0xae313
+BurnedTower1F_BlockData:
 	INCBIN "maps/BurnedTower1F.blk"
-; 0xae36d
 
-BurnedTowerB1F_BlockData: ; 0xae36d
+BurnedTowerB1F_BlockData:
 	INCBIN "maps/BurnedTowerB1F.blk"
-; 0xae3c7
 
-BetaCaveTestMap_BlockData: ; 0xae3c7
+BetaCaveTestMap_BlockData:
 	INCBIN "maps/BetaCaveTestMap.blk"
-; 0xae4d5
 
-MountMortar1FOutside_BlockData: ; 0xae4d5
+MountMortar1FOutside_BlockData:
 	INCBIN "maps/MountMortar1FOutside.blk"
-; 0xae63d
 
-MountMortar1FInside_BlockData: ; 0xae63d
+MountMortar1FInside_BlockData:
 	INCBIN "maps/MountMortar1FInside.blk"
-; 0xae859
 
-MountMortar2FInside_BlockData: ; 0xae859
+MountMortar2FInside_BlockData:
 	INCBIN "maps/MountMortar2FInside.blk"
-; 0xae9c1
 
-MountMortarB1F_BlockData: ; 0xae9c1
+MountMortarB1F_BlockData:
 	INCBIN "maps/MountMortarB1F.blk"
-; 0xaeb29
 
-IcePath1F_BlockData: ; 0xaeb29
+IcePath1F_BlockData:
 	INCBIN "maps/IcePath1F.blk"
-; 0xaec91
 
-IcePathB1F_BlockData: ; 0xaec91
+IcePathB1F_BlockData:
 	INCBIN "maps/IcePathB1F.blk"
-; 0xaed45
 
-IcePathB2FMahoganySide_BlockData: ; 0xaed45
+IcePathB2FMahoganySide_BlockData:
 	INCBIN "maps/IcePathB2FMahoganySide.blk"
-; 0xaed9f
 
-IcePathB2FBlackthornSide_BlockData: ; 0xaed9f
+IcePathB2FBlackthornSide_BlockData:
 	INCBIN "maps/IcePathB2FBlackthornSide.blk"
-; 0xaedcc
 
-IcePathB3F_BlockData: ; 0xaedcc
+IcePathB3F_BlockData:
 	INCBIN "maps/IcePathB3F.blk"
-; 0xaee26
 
-WhirlIslandNW_BlockData: ; 0xaee26
+WhirlIslandNW_BlockData:
 	INCBIN "maps/WhirlIslandNW.blk"
-; 0xaee53
 
-WhirlIslandNE_BlockData: ; 0xaee53
+WhirlIslandNE_BlockData:
 	INCBIN "maps/WhirlIslandNE.blk"
-; 0xaeead
 
-WhirlIslandSW_BlockData: ; 0xaeead
+WhirlIslandSW_BlockData:
 	INCBIN "maps/WhirlIslandSW.blk"
-; 0xaef07
 
-WhirlIslandCave_BlockData: ; 0xaef07
+WhirlIslandCave_BlockData:
 	INCBIN "maps/WhirlIslandCave.blk"
-; 0xaef34
 
-WhirlIslandSE_BlockData: ; 0xaef34
+WhirlIslandSE_BlockData:
 	INCBIN "maps/WhirlIslandSE.blk"
-; 0xaef61
 
-WhirlIslandB1F_BlockData: ; 0xaef61
+WhirlIslandB1F_BlockData:
 	INCBIN "maps/WhirlIslandB1F.blk"
-; 0xaf0c9
 
-WhirlIslandB2F_BlockData: ; 0xaf0c9
+WhirlIslandB2F_BlockData:
 	INCBIN "maps/WhirlIslandB2F.blk"
-; 0xaf17d
 
-WhirlIslandLugiaChamber_BlockData: ; 0xaf17d
+WhirlIslandLugiaChamber_BlockData:
 	INCBIN "maps/WhirlIslandLugiaChamber.blk"
-; 0xaf1d7
 
-SilverCaveRoom1_BlockData: ; 0xaf1d7
+SilverCaveRoom1_BlockData:
 	INCBIN "maps/SilverCaveRoom1.blk"
-; 0xaf28b
 
-SilverCaveRoom2_BlockData: ; 0xaf28b
+SilverCaveRoom2_BlockData:
 	INCBIN "maps/SilverCaveRoom2.blk"
-; 0xaf399
 
-SilverCaveRoom3_BlockData: ; 0xaf399
+SilverCaveRoom3_BlockData:
 	INCBIN "maps/SilverCaveRoom3.blk"
-; 0xaf44d
 
-BetaRocketHideout1_BlockData: ; 0xaf44d
+BetaRocketHideout1_BlockData:
 	INCBIN "maps/BetaRocketHideout1.blk"
-; 0xaf55b
 
-BetaRocketHideout2_BlockData: ; 0xaf55b
+BetaRocketHideout2_BlockData:
 	INCBIN "maps/BetaRocketHideout2.blk"
-; 0xaf669
 
-BetaEmptyHouse_BlockData: ; 0xaf669
+BetaEmptyHouse_BlockData:
 	INCBIN "maps/BetaEmptyHouse.blk"
-; 0xaf777
 
-BetaRocketHideout3_BlockData: ; 0xaf777
+BetaRocketHideout3_BlockData:
 	INCBIN "maps/BetaRocketHideout3.blk"
-; 0xaf885
 
-MahoganyMart1F_BlockData: ; 0xaf885
+MahoganyMart1F_BlockData:
 MountMoonGiftShop_BlockData:
 	INCBIN "maps/MahoganyMart1F.blk"
-; 0xaf895
 
-TeamRocketBaseB1F_BlockData: ; 0xaf895
+TeamRocketBaseB1F_BlockData:
 	INCBIN "maps/TeamRocketBaseB1F.blk"
-; 0xaf91c
 
-TeamRocketBaseB2F_BlockData: ; 0xaf91c
+TeamRocketBaseB2F_BlockData:
 	INCBIN "maps/TeamRocketBaseB2F.blk"
-; 0xaf9a3
 
-TeamRocketBaseB3F_BlockData: ; 0xaf9a3
+TeamRocketBaseB3F_BlockData:
 	INCBIN "maps/TeamRocketBaseB3F.blk"
-; 0xafa2a
 
-BetaRoute23EarlyVersion_BlockData: ; 0xafa2a
+BetaRoute23EarlyVersion_BlockData:
 	INCBIN "maps/BetaRoute23EarlyVersion.blk"
-; 0xafa84
 
-IndigoPlateauPokeCenter1F_BlockData: ; 0xafa84
+IndigoPlateauPokeCenter1F_BlockData:
 	INCBIN "maps/IndigoPlateauPokeCenter1F.blk"
-; 0xafac3
 
-WillsRoom_BlockData: ; 0xafac3
+WillsRoom_BlockData:
 	INCBIN "maps/WillsRoom.blk"
-; 0xafaf0
 
-KogasRoom_BlockData: ; 0xafaf0
+KogasRoom_BlockData:
 	INCBIN "maps/KogasRoom.blk"
-; 0xafb1d
 
-BrunosRoom_BlockData: ; 0xafb1d
+BrunosRoom_BlockData:
 	INCBIN "maps/BrunosRoom.blk"
-; 0xafb4a
 
-KarensRoom_BlockData: ; 0xafb4a
+KarensRoom_BlockData:
 	INCBIN "maps/KarensRoom.blk"
-; 0xafb77
 
-AzaleaGym_BlockData: ; 0xafb77
+AzaleaGym_BlockData:
 	INCBIN "maps/AzaleaGym.blk"
-; 0xafb9f
 
-VioletGym_BlockData: ; 0xafb9f
+VioletGym_BlockData:
 	INCBIN "maps/VioletGym.blk"
-; 0xafbc7
 
-GoldenrodGym_BlockData: ; 0xafbc7
+GoldenrodGym_BlockData:
 	INCBIN "maps/GoldenrodGym.blk"
-; 0xafc21
 
-EcruteakGym_BlockData: ; 0xafc21
+EcruteakGym_BlockData:
 	INCBIN "maps/EcruteakGym.blk"
-; 0xafc4e
 
-MahoganyGym_BlockData: ; 0xafc4e
+MahoganyGym_BlockData:
 	INCBIN "maps/MahoganyGym.blk"
-; 0xafc7b
 
-OlivineGym_BlockData: ; 0xafc7b
+OlivineGym_BlockData:
 	INCBIN "maps/OlivineGym.blk"
-; 0xafca3
 
-BetaUnknown_BlockData: ; 0xafca3
+BetaUnknown_BlockData:
 	INCBIN "maps/BetaUnknown.blk"
-; 0xafcb7
 
-CianwoodGym_BlockData: ; 0xafcb7
+CianwoodGym_BlockData:
 	INCBIN "maps/CianwoodGym.blk"
-; 0xafce4
 
-BlackthornGym1F_BlockData: ; 0xafce4
+BlackthornGym1F_BlockData:
 	INCBIN "maps/BlackthornGym1F.blk"
-; 0xafd11
 
-BlackthornGym2F_BlockData: ; 0xafd11
+BlackthornGym2F_BlockData:
 	INCBIN "maps/BlackthornGym2F.blk"
-; 0xafd3e
 
-OlivineLighthouse1F_BlockData: ; 0xafd3e
+OlivineLighthouse1F_BlockData:
 	INCBIN "maps/OlivineLighthouse1F.blk"
-; 0xafd98
 
-OlivineLighthouse2F_BlockData: ; 0xafd98
+OlivineLighthouse2F_BlockData:
 	INCBIN "maps/OlivineLighthouse2F.blk"
-; 0xafdf2
 
-OlivineLighthouse3F_BlockData: ; 0xafdf2
+OlivineLighthouse3F_BlockData:
 	INCBIN "maps/OlivineLighthouse3F.blk"
-; 0xafe4c
 
-OlivineLighthouse4F_BlockData: ; 0xafe4c
+OlivineLighthouse4F_BlockData:
 	INCBIN "maps/OlivineLighthouse4F.blk"
-; 0xafea6
 
-OlivineLighthouse5F_BlockData: ; 0xafea6
+OlivineLighthouse5F_BlockData:
 	INCBIN "maps/OlivineLighthouse5F.blk"
-; 0xaff00
 
-OlivineLighthouse6F_BlockData: ; 0xaff00
+OlivineLighthouse6F_BlockData:
 	INCBIN "maps/OlivineLighthouse6F.blk"
-; 0xaff5a
--- a/maps/blockdata_3.asm
+++ b/maps/blockdata_3.asm
@@ -1,353 +1,266 @@
-BetaCave2_BlockData: ; 0xb0000
+BetaCave2_BlockData:
 	INCBIN "maps/BetaCave2.blk"
-; 0xb0023
 
-SlowpokeWellB1F_BlockData: ; 0xb0023
+SlowpokeWellB1F_BlockData:
 	INCBIN "maps/SlowpokeWellB1F.blk"
-; 0xb007d
 
-SlowpokeWellB2F_BlockData: ; 0xb007d
+SlowpokeWellB2F_BlockData:
 	INCBIN "maps/SlowpokeWellB2F.blk"
-; 0xb00d7
 
-IlexForest_BlockData: ; 0xb00d7
+IlexForest_BlockData:
 	INCBIN "maps/IlexForest.blk"
-; 0xb026c
 
-DarkCaveVioletEntrance_BlockData: ; 0xb026c
+DarkCaveVioletEntrance_BlockData:
 	INCBIN "maps/DarkCaveVioletEntrance.blk"
-; 0xb03d4
 
-DarkCaveBlackthornEntrance_BlockData: ; 0xb03d4
+DarkCaveBlackthornEntrance_BlockData:
 	INCBIN "maps/DarkCaveBlackthornEntrance.blk"
-; 0xb04e2
 
-RuinsofAlphResearchCenter_BlockData: ; 0xb04e2
+RuinsofAlphResearchCenter_BlockData:
 	INCBIN "maps/RuinsofAlphResearchCenter.blk"
-; 0xb04f2
 
-GoldenrodBikeShop_BlockData: ; 0xb04f2
+GoldenrodBikeShop_BlockData:
 	INCBIN "maps/GoldenrodBikeShop.blk"
-; 0xb0502
 
-DanceTheatre_BlockData: ; 0xb0502
+DanceTheatre_BlockData:
 	INCBIN "maps/DanceTheatre.blk"
-; 0xb052c
 
-EcruteakHouse_BlockData: ; 0xb052c
+EcruteakHouse_BlockData:
 	INCBIN "maps/EcruteakHouse.blk"
-; 0xb0586
 
-GoldenrodGameCorner_BlockData: ; 0xb0586
+GoldenrodGameCorner_BlockData:
 	INCBIN "maps/GoldenrodGameCorner.blk"
-; 0xb05cc
 
-Route35NationalParkgate_BlockData: ; 0xb05cc
+Route35NationalParkgate_BlockData:
 	INCBIN "maps/Route35NationalParkgate.blk"
-; 0xb05dc
 
-Route36NationalParkgate_BlockData: ; 0xb05dc
+Route36NationalParkgate_BlockData:
 	INCBIN "maps/Route36NationalParkgate.blk"
-; 0xb05f0
 
-FastShip1F_BlockData: ; 0xb05f0
+FastShip1F_BlockData:
 	INCBIN "maps/FastShip1F.blk"
-; 0xb0680
 
-FastShipB1F_BlockData: ; 0xb0680
+FastShipB1F_BlockData:
 	INCBIN "maps/FastShipB1F.blk"
-; 0xb0700
 
-BetaSsAquaInsideCutOut_BlockData: ; 0xb0700
+BetaSsAquaInsideCutOut_BlockData:
 	INCBIN "maps/BetaSsAquaInsideCutOut.blk"
-; 0xb0710
 
-FastShipCabins_NNW_NNE_NE_BlockData: ; 0xb0710
+FastShipCabins_NNW_NNE_NE_BlockData:
 	INCBIN "maps/FastShipCabins_NNW_NNE_NE.blk"
-; 0xb0750
 
-FastShipCabins_SW_SSW_NW_BlockData: ; 0xb0750
+FastShipCabins_SW_SSW_NW_BlockData:
 	INCBIN "maps/FastShipCabins_SW_SSW_NW.blk"
-; 0xb0790
 
-FastShipCabins_SE_SSE_CaptainsCabin_BlockData: ; 0xb0790
+FastShipCabins_SE_SSE_CaptainsCabin_BlockData:
 	INCBIN "maps/FastShipCabins_SE_SSE_CaptainsCabin.blk"
-; 0xb07e5
 
-OlivinePort_BlockData: ; 0xb07e5
+OlivinePort_BlockData:
 	INCBIN "maps/OlivinePort.blk"
-; 0xb0899
 
-VermilionPort_BlockData: ; 0xb0899
+VermilionPort_BlockData:
 	INCBIN "maps/VermilionPort.blk"
-; 0xb094d
 
-OlivineCafe_BlockData: ; 0xb094d
+OlivineCafe_BlockData:
 SafariZoneMainOffice_BlockData:
 	INCBIN "maps/OlivineCafe.blk"
-; 0xb095d
 
-KrissHouse2F_BlockData: ; 0xb095d
+KrissHouse2F_BlockData:
 	INCBIN "maps/KrissHouse2F.blk"
-; 0xb0969
 
-SaffronTrainStation_BlockData: ; 0xb0969
+SaffronTrainStation_BlockData:
 	INCBIN "maps/SaffronTrainStation.blk"
-; 0xb09c3
 
-CeruleanGym_BlockData: ; 0xb09c3
+CeruleanGym_BlockData:
 	INCBIN "maps/CeruleanGym.blk"
-; 0xb09eb
 
-VermilionGym_BlockData: ; 0xb09eb
+VermilionGym_BlockData:
 	INCBIN "maps/VermilionGym.blk"
-; 0xb0a18
 
-SaffronGym_BlockData: ; 0xb0a18
+SaffronGym_BlockData:
 	INCBIN "maps/SaffronGym.blk"
-; 0xb0a72
 
-PowerPlant_BlockData: ; 0xb0a72
+PowerPlant_BlockData:
 	INCBIN "maps/PowerPlant.blk"
-; 0xb0acc
 
-PokemonFanClub_BlockData: ; 0xb0acc
+PokemonFanClub_BlockData:
 SafariZoneWardensHome_BlockData:
 	INCBIN "maps/PokemonFanClub.blk"
-; 0xb0ae0
 
-FightingDojo_BlockData: ; 0xb0ae0
+FightingDojo_BlockData:
 	INCBIN "maps/FightingDojo.blk"
-; 0xb0afe
 
-SilphCo1F_BlockData: ; 0xb0afe
+SilphCo1F_BlockData:
 	INCBIN "maps/SilphCo1F.blk"
-; 0xb0b1e
 
-ViridianGym_BlockData: ; 0xb0b1e
+ViridianGym_BlockData:
 	INCBIN "maps/ViridianGym.blk"
-; 0xb0b4b
 
-TrainerHouse1F_BlockData: ; 0xb0b4b
+TrainerHouse1F_BlockData:
 	INCBIN "maps/TrainerHouse1F.blk"
-; 0xb0b6e
 
-TrainerHouseB1F_BlockData: ; 0xb0b6e
+TrainerHouseB1F_BlockData:
 	INCBIN "maps/TrainerHouseB1F.blk"
-; 0xb0b96
 
-RedsHouse1F_BlockData: ; 0xb0b96
+RedsHouse1F_BlockData:
 	INCBIN "maps/RedsHouse1F.blk"
-; 0xb0ba6
 
-RedsHouse2F_BlockData: ; 0xb0ba6
+RedsHouse2F_BlockData:
 	INCBIN "maps/RedsHouse2F.blk"
-; 0xb0bb6
 
-OaksLab_BlockData: ; 0xb0bb6
+OaksLab_BlockData:
 	INCBIN "maps/OaksLab.blk"
-; 0xb0bd4
 
-MrFujisHouse_BlockData: ; 0xb0bd4
+MrFujisHouse_BlockData:
 	INCBIN "maps/MrFujisHouse.blk"
-; 0xb0be8
 
-LavRadioTower1F_BlockData: ; 0xb0be8
+LavRadioTower1F_BlockData:
 	INCBIN "maps/LavRadioTower1F.blk"
-; 0xb0c10
 
-SilverCaveItemRooms_BlockData: ; 0xb0c10
+SilverCaveItemRooms_BlockData:
 	INCBIN "maps/SilverCaveItemRooms.blk"
-; 0xb0c6a
 
-DayCare_BlockData: ; 0xb0c6a
+DayCare_BlockData:
 	INCBIN "maps/DayCare.blk"
-; 0xb0c7e
 
-SoulHouse_BlockData: ; 0xb0c7e
+SoulHouse_BlockData:
 	INCBIN "maps/SoulHouse.blk"
-; 0xb0c92
 
-PewterGym_BlockData: ; 0xb0c92
+PewterGym_BlockData:
 	INCBIN "maps/PewterGym.blk"
-; 0xb0cb5
 
-CeladonGym_BlockData: ; 0xb0cb5
+CeladonGym_BlockData:
 	INCBIN "maps/CeladonGym.blk"
-; 0xb0ce2
 
-BetaHouse2_BlockData: ; 0xb0ce2
+BetaHouse2_BlockData:
 	INCBIN "maps/BetaHouse2.blk"
-; 0xb0cf6
 
-CeladonCafe_BlockData: ; 0xb0cf6
+CeladonCafe_BlockData:
 	INCBIN "maps/CeladonCafe.blk"
-; 0xb0d0e
 
-BetaCeladonMansion_BlockData: ; 0xb0d0e
+BetaCeladonMansion_BlockData:
 	INCBIN "maps/BetaCeladonMansion.blk"
-; 0xb0d26
 
-RockTunnel1F_BlockData: ; 0xb0d26
+RockTunnel1F_BlockData:
 	INCBIN "maps/RockTunnel1F.blk"
-; 0xb0e34
 
-RockTunnelB1F_BlockData: ; 0xb0e34
+RockTunnelB1F_BlockData:
 	INCBIN "maps/RockTunnelB1F.blk"
-; 0xb0f42
 
-DiglettsCave_BlockData: ; 0xb0f42
+DiglettsCave_BlockData:
 	INCBIN "maps/DiglettsCave.blk"
-; 0xb0ff6
 
-MountMoon_BlockData: ; 0xb0ff6
+MountMoon_BlockData:
 	INCBIN "maps/MountMoon.blk"
-; 0xb107d
 
-SeafoamGym_BlockData: ; 0xb107d
+SeafoamGym_BlockData:
 	INCBIN "maps/SeafoamGym.blk"
-; 0xb1091
 
-MrPokemonsHouse_BlockData: ; 0xb1091
+MrPokemonsHouse_BlockData:
 	INCBIN "maps/MrPokemonsHouse.blk"
-; 0xb10a1
 
-VictoryRoadGate_BlockData: ; 0xb10a1
+VictoryRoadGate_BlockData:
 	INCBIN "maps/VictoryRoadGate.blk"
-; 0xb10fb
 
-OlivinePortPassage_BlockData: ; 0xb10fb
+OlivinePortPassage_BlockData:
 VermilionPortPassage_BlockData:
 	INCBIN "maps/OlivinePortPassage.blk"
-; 0xb1155
 
-FuchsiaGym_BlockData: ; 0xb1155
+FuchsiaGym_BlockData:
 	INCBIN "maps/FuchsiaGym.blk"
-; 0xb1182
 
-SafariZoneBeta_BlockData: ; 0xb1182
+SafariZoneBeta_BlockData:
 	INCBIN "maps/SafariZoneBeta.blk"
-; 0xb1236
 
-Underground_BlockData: ; 0xb1236
+Underground_BlockData:
 	INCBIN "maps/Underground.blk"
-; 0xb1260
 
-Route39Barn_BlockData: ; 0xb1260
+Route39Barn_BlockData:
 	INCBIN "maps/Route39Barn.blk"
-; 0xb1270
 
-VictoryRoad_BlockData: ; 0xb1270
+VictoryRoad_BlockData:
 	INCBIN "maps/VictoryRoad.blk"
-; 0xb13d8
 
-Route23_BlockData: ; 0xb13d8
+Route23_BlockData:
 	INCBIN "maps/Route23.blk"
-; 0xb1432
 
-LancesRoom_BlockData: ; 0xb1432
+LancesRoom_BlockData:
 	INCBIN "maps/LancesRoom.blk"
-; 0xb146e
 
-HallOfFame_BlockData: ; 0xb146e
+HallOfFame_BlockData:
 	INCBIN "maps/HallOfFame.blk"
-; 0xb1491
 
-CopycatsHouse1F_BlockData: ; 0xb1491
+CopycatsHouse1F_BlockData:
 	INCBIN "maps/CopycatsHouse1F.blk"
-; 0xb14a1
 
-CopycatsHouse2F_BlockData: ; 0xb14a1
+CopycatsHouse2F_BlockData:
 	INCBIN "maps/CopycatsHouse2F.blk"
-; 0xb14b0
 
-GoldenrodFlowerShop_BlockData: ; 0xb14b0
+GoldenrodFlowerShop_BlockData:
 	INCBIN "maps/GoldenrodFlowerShop.blk"
-; 0xb14c0
 
-MountMoonSquare_BlockData: ; 0xb14c0
+MountMoonSquare_BlockData:
 	INCBIN "maps/MountMoonSquare.blk"
-; 0xb1547
 
-WiseTriosRoom_BlockData: ; 0xb1547
+WiseTriosRoom_BlockData:
 	INCBIN "maps/WiseTriosRoom.blk"
-; 0xb1557
 
-DragonsDen1F_BlockData: ; 0xb1557
+DragonsDen1F_BlockData:
 	INCBIN "maps/DragonsDen1F.blk"
-; 0xb1584
 
-DragonsDenB1F_BlockData: ; 0xb1584
+DragonsDenB1F_BlockData:
 	INCBIN "maps/DragonsDenB1F.blk"
-; 0xb16ec
 
-TohjoFalls_BlockData: ; 0xb16ec
+TohjoFalls_BlockData:
 	INCBIN "maps/TohjoFalls.blk"
-; 0xb1773
 
-RuinsofAlphHoOhItemRoom_BlockData: ; 0xb1773
+RuinsofAlphHoOhItemRoom_BlockData:
 RuinsofAlphKabutoItemRoom_BlockData:
 RuinsofAlphOmanyteItemRoom_BlockData:
 RuinsofAlphAerodactylItemRoom_BlockData:
 	INCBIN "maps/RuinsofAlphHoOhItemRoom.blk"
-; 0xb1787
 
-RuinsofAlphHoOhWordRoom_BlockData: ; 0xb1787
+RuinsofAlphHoOhWordRoom_BlockData:
 	INCBIN "maps/RuinsofAlphHoOhWordRoom.blk"
-; 0xb17ff
 
-RuinsofAlphKabutoWordRoom_BlockData: ; 0xb17ff
+RuinsofAlphKabutoWordRoom_BlockData:
 	INCBIN "maps/RuinsofAlphKabutoWordRoom.blk"
-; 0xb1845
 
-RuinsofAlphOmanyteWordRoom_BlockData: ; 0xb1845
+RuinsofAlphOmanyteWordRoom_BlockData:
 	INCBIN "maps/RuinsofAlphOmanyteWordRoom.blk"
-; 0xb1895
 
-RuinsofAlphAerodactylWordRoom_BlockData: ; 0xb1895
+RuinsofAlphAerodactylWordRoom_BlockData:
 	INCBIN "maps/RuinsofAlphAerodactylWordRoom.blk"
-; 0xb18db
 
-DragonShrine_BlockData: ; 0xb18db
+DragonShrine_BlockData:
 	INCBIN "maps/DragonShrine.blk"
-; 0xb18f4
 
-BattleTower1F_BlockData: ; 0xb18f4
+BattleTower1F_BlockData:
 	INCBIN "maps/BattleTower1F.blk"
-; 0xb191c
 
-BattleTowerBattleRoom_BlockData: ; 0xb191c
+BattleTowerBattleRoom_BlockData:
 	INCBIN "maps/BattleTowerBattleRoom.blk"
-; 0xb192c
 
-GoldenrodPokeComCenter2FMobile_BlockData: ; 0xb192c
+GoldenrodPokeComCenter2FMobile_BlockData:
 	INCBIN "maps/GoldenrodPokeComCenter2FMobile.blk"
-; 0xb1a2c
 
-MobileTradeRoomMobile_BlockData: ; 0xb1a2c
+MobileTradeRoomMobile_BlockData:
 	INCBIN "maps/MobileTradeRoomMobile.blk"
-; 0xb1a40
 
-MobileBattleRoom_BlockData: ; 0xb1a40
+MobileBattleRoom_BlockData:
 	INCBIN "maps/MobileBattleRoom.blk"
-; 0xb1a54
 
-BattleTowerHallway_BlockData: ; 0xb1a54
+BattleTowerHallway_BlockData:
 	INCBIN "maps/BattleTowerHallway.blk"
-; 0xb1a6a
 
-BattleTowerElevator_BlockData: ; 0xb1a6a
+BattleTowerElevator_BlockData:
 	INCBIN "maps/BattleTowerElevator.blk"
-; 0xb1a6e
 
-BattleTowerOutside_BlockData: ; 0xb1a6e
+BattleTowerOutside_BlockData:
 	INCBIN "maps/BattleTowerOutside.blk"
-; 0xb1afa
 
-BetaBlank_BlockData: ; 0xb1afa
+BetaBlank_BlockData:
 	INCBIN "maps/BetaBlank.blk"
-; 0xb1b22
 
-GoldenrodDeptStoreRoof_BlockData: ; 0xb1b22
+GoldenrodDeptStoreRoof_BlockData:
 	INCBIN "maps/GoldenrodDeptStoreRoof.blk"
-; 0xb1b42
--- a/maps/map_headers.asm
+++ b/maps/map_headers.asm
@@ -1,5 +1,5 @@
 
-MapGroupPointers:: ; 0x94000
+MapGroupPointers::
 ; pointers to the first map header of each map group
 	dw MapGroup1
 	dw MapGroup2
@@ -30,466 +30,466 @@
 
 
 MapGroup1:
-	map_header OlivinePokeCenter1F, $7, 3, OLIVINE_CITY, MUSIC_POKEMON_CENTER, 1, 1
-	map_header OlivineGym, $12, 3, OLIVINE_CITY, MUSIC_GYM, 17, 1
-	map_header OlivineVoltorbHouse, $5, 3, OLIVINE_CITY, MUSIC_VIOLET_CITY, 1, 1
-	map_header OlivineHouseBeta, $5, 3, OLIVINE_CITY, MUSIC_VIOLET_CITY, 1, 1
-	map_header OlivinePunishmentSpeechHouse, $5, 3, OLIVINE_CITY, MUSIC_VIOLET_CITY, 1, 1
-	map_header OlivineGoodRodHouse, $5, 3, OLIVINE_CITY, MUSIC_VIOLET_CITY, 1, 1
-	map_header OlivineCafe, $e, 3, OLIVINE_CITY, MUSIC_VIOLET_CITY, 1, 1
-	map_header OlivineMart, $c, 3, OLIVINE_CITY, MUSIC_VIOLET_CITY, 1, 1
-	map_header Route38EcruteakGate, $8, 6, ROUTE_38, MUSIC_ROUTE_37, 1, 1
-	map_header Route39Barn, $10, 3, ROUTE_39, MUSIC_ECRUTEAK_CITY, 1, 1
-	map_header Route39Farmhouse, $5, 3, ROUTE_39, MUSIC_ECRUTEAK_CITY, 1, 1
-	map_header Route38, $1, 2, ROUTE_38, MUSIC_ROUTE_37, 0, 1
-	map_header Route39, $1, 2, ROUTE_39, MUSIC_ROUTE_37, 0, 1
-	map_header OlivineCity, $1, 1, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, 1
+	map_header OlivinePokeCenter1F, $7, INDOOR, OLIVINE_CITY, MUSIC_POKEMON_CENTER, 0, 1, 1
+	map_header OlivineGym, $12, INDOOR, OLIVINE_CITY, MUSIC_GYM, 1, 1, 1
+	map_header OlivineVoltorbHouse, $5, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, 1, 1
+	map_header OlivineHouseBeta, $5, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, 1, 1
+	map_header OlivinePunishmentSpeechHouse, $5, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, 1, 1
+	map_header OlivineGoodRodHouse, $5, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, 1, 1
+	map_header OlivineCafe, $e, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, 1, 1
+	map_header OlivineMart, $c, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, 1, 1
+	map_header Route38EcruteakGate, $8, GATE, ROUTE_38, MUSIC_ROUTE_37, 0, 1, 1
+	map_header Route39Barn, $10, INDOOR, ROUTE_39, MUSIC_ECRUTEAK_CITY, 0, 1, 1
+	map_header Route39Farmhouse, $5, INDOOR, ROUTE_39, MUSIC_ECRUTEAK_CITY, 0, 1, 1
+	map_header Route38, $1, ROUTE, ROUTE_38, MUSIC_ROUTE_37, 0, 0, 1
+	map_header Route39, $1, ROUTE, ROUTE_39, MUSIC_ROUTE_37, 0, 0, 1
+	map_header OlivineCity, $1, TOWN, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, 0, 1
 
 
 MapGroup2:
-	map_header MahoganyRedGyaradosSpeechHouse, $5, 3, MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, 1, 1
-	map_header MahoganyGym, $f, 3, MAHOGANY_TOWN, MUSIC_GYM, 17, 1
-	map_header MahoganyPokeCenter1F, $7, 3, MAHOGANY_TOWN, MUSIC_POKEMON_CENTER, 1, 1
-	map_header Route42EcruteakGate, $8, 6, ROUTE_42, MUSIC_LAKE_OF_RAGE, 1, 1
-	map_header Route42, $1, 2, ROUTE_42, MUSIC_LAKE_OF_RAGE, 0, 3
-	map_header Route44, $1, 2, ROUTE_44, MUSIC_LAKE_OF_RAGE, 0, 4
-	map_header MahoganyTown, $1, 1, MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, 0, 1
+	map_header MahoganyRedGyaradosSpeechHouse, $5, INDOOR, MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, 0, 1, 1
+	map_header MahoganyGym, $f, INDOOR, MAHOGANY_TOWN, MUSIC_GYM, 1, 1, 1
+	map_header MahoganyPokeCenter1F, $7, INDOOR, MAHOGANY_TOWN, MUSIC_POKEMON_CENTER, 0, 1, 1
+	map_header Route42EcruteakGate, $8, GATE, ROUTE_42, MUSIC_LAKE_OF_RAGE, 0, 1, 1
+	map_header Route42, $1, ROUTE, ROUTE_42, MUSIC_LAKE_OF_RAGE, 0, 0, 3
+	map_header Route44, $1, ROUTE, ROUTE_44, MUSIC_LAKE_OF_RAGE, 0, 0, 4
+	map_header MahoganyTown, $1, TOWN, MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, 0, 0, 1
 
 
 MapGroup3:
-	map_header SproutTower1F, $17, 7, SPROUT_TOWER, MUSIC_SPROUT_TOWER, 1, 1
-	map_header SproutTower2F, $17, 7, SPROUT_TOWER, MUSIC_SPROUT_TOWER, 1, 1
-	map_header SproutTower3F, $17, 7, SPROUT_TOWER, MUSIC_SPROUT_TOWER, 1, 1
-	map_header TinTower1F, $17, 7, TIN_TOWER, MUSIC_TIN_TOWER, 1, 1
-	map_header TinTower2F, $17, 7, TIN_TOWER, MUSIC_TIN_TOWER, 1, 1
-	map_header TinTower3F, $17, 7, TIN_TOWER, MUSIC_TIN_TOWER, 1, 1
-	map_header TinTower4F, $17, 7, TIN_TOWER, MUSIC_TIN_TOWER, 1, 1
-	map_header TinTower5F, $17, 7, TIN_TOWER, MUSIC_TIN_TOWER, 1, 1
-	map_header TinTower6F, $17, 7, TIN_TOWER, MUSIC_TIN_TOWER, 1, 1
-	map_header TinTower7F, $17, 7, TIN_TOWER, MUSIC_TIN_TOWER, 1, 1
-	map_header TinTower8F, $17, 7, TIN_TOWER, MUSIC_TIN_TOWER, 1, 1
-	map_header TinTower9F, $17, 7, TIN_TOWER, MUSIC_TIN_TOWER, 1, 1
-	map_header BurnedTower1F, $17, 7, BURNED_TOWER, MUSIC_BURNED_TOWER, 18, 1
-	map_header BurnedTowerB1F, $18, 4, BURNED_TOWER, MUSIC_BURNED_TOWER, 18, 1
-	map_header NationalPark, $19, 2, NATIONAL_PARK, MUSIC_NATIONAL_PARK, 0, 1
-	map_header NationalParkBugContest, $19, 2, NATIONAL_PARK, MUSIC_BUG_CATCHING_CONTEST, 0, 1
-	map_header RadioTower1F, $1b, 3, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 17, 1
-	map_header RadioTower2F, $1b, 3, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 17, 1
-	map_header RadioTower3F, $1b, 3, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 17, 1
-	map_header RadioTower4F, $1b, 3, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 17, 1
-	map_header RadioTower5F, $1b, 3, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 17, 1
-	map_header RuinsofAlphOutside, $1, 2, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 0, 4
-	map_header RuinsofAlphHoOhChamber, $1a, 7, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 17, 1
-	map_header RuinsofAlphKabutoChamber, $1a, 7, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 17, 1
-	map_header RuinsofAlphOmanyteChamber, $1a, 7, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 17, 1
-	map_header RuinsofAlphAerodactylChamber, $1a, 7, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 17, 1
-	map_header RuinsofAlphInnerChamber, $1a, 7, RUINS_OF_ALPH, MUSIC_RUINS_OF_ALPH_INTERIOR, 17, 1
-	map_header RuinsofAlphResearchCenter, $b, 3, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, 1
-	map_header RuinsofAlphHoOhItemRoom, $1a, 7, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 17, 1
-	map_header RuinsofAlphKabutoItemRoom, $1a, 7, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 17, 1
-	map_header RuinsofAlphOmanyteItemRoom, $1a, 7, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 17, 1
-	map_header RuinsofAlphAerodactylItemRoom, $1a, 7, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 17, 1
-	map_header RuinsofAlphHoOhWordRoom, $21, 7, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 17, 1
-	map_header RuinsofAlphKabutoWordRoom, $22, 7, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 17, 1
-	map_header RuinsofAlphOmanyteWordRoom, $23, 7, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 17, 1
-	map_header RuinsofAlphAerodactylWordRoom, $24, 7, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 17, 1
-	map_header UnionCave1F, $18, 4, UNION_CAVE, MUSIC_UNION_CAVE, 18, 3
-	map_header UnionCaveB1F, $18, 4, UNION_CAVE, MUSIC_UNION_CAVE, 18, 3
-	map_header UnionCaveB2F, $18, 4, UNION_CAVE, MUSIC_UNION_CAVE, 18, 1
-	map_header SlowpokeWellB1F, $18, 4, SLOWPOKE_WELL, MUSIC_DARK_CAVE, 18, 3
-	map_header SlowpokeWellB2F, $18, 4, SLOWPOKE_WELL, MUSIC_DARK_CAVE, 18, 3
-	map_header OlivineLighthouse1F, $13, 7, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 1, 1
-	map_header OlivineLighthouse2F, $13, 7, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 1, 1
-	map_header OlivineLighthouse3F, $13, 7, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 1, 1
-	map_header OlivineLighthouse4F, $13, 7, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 1, 1
-	map_header OlivineLighthouse5F, $13, 7, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 1, 1
-	map_header OlivineLighthouse6F, $13, 7, LIGHTHOUSE, MUSIC_VIOLET_CITY, 1, 1
-	map_header MahoganyMart1F, $10, 3, MAHOGANY_TOWN, MUSIC_MAHOGANY_MART, 17, 1
-	map_header TeamRocketBaseB1F, $1c, 7, MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, 17, 1
-	map_header TeamRocketBaseB2F, $b, 7, MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, 17, 1
-	map_header TeamRocketBaseB3F, $b, 7, MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, 17, 1
-	map_header IlexForest, $1f, 4, ILEX_FOREST, MUSIC_UNION_CAVE, 2, 4
-	map_header WarehouseEntrance, $8, 7, GOLDENROD_CITY, MUSIC_UNION_CAVE, 17, 1
-	map_header UndergroundPathSwitchRoomEntrances, $f, 7, GOLDENROD_CITY, MUSIC_UNION_CAVE, 17, 1
-	map_header GoldenrodDeptStoreB1F, $1c, 7, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 17, 1
-	map_header UndergroundWarehouse, $1c, 7, GOLDENROD_CITY, MUSIC_UNION_CAVE, 17, 1
-	map_header MountMortar1FOutside, $1e, 4, MT_MORTAR, MUSIC_UNION_CAVE, 18, 3
-	map_header MountMortar1FInside, $1e, 4, MT_MORTAR, MUSIC_UNION_CAVE, 18, 3
-	map_header MountMortar2FInside, $1e, 4, MT_MORTAR, MUSIC_UNION_CAVE, 18, 3
-	map_header MountMortarB1F, $1e, 4, MT_MORTAR, MUSIC_UNION_CAVE, 18, 3
-	map_header IcePath1F, $1d, 4, ICE_PATH, MUSIC_DARK_CAVE, 18, 5
-	map_header IcePathB1F, $1d, 4, ICE_PATH, MUSIC_DARK_CAVE, 18, 5
-	map_header IcePathB2FMahoganySide, $1d, 4, ICE_PATH, MUSIC_DARK_CAVE, 18, 5
-	map_header IcePathB2FBlackthornSide, $1d, 4, ICE_PATH, MUSIC_DARK_CAVE, 18, 5
-	map_header IcePathB3F, $1d, 4, ICE_PATH, MUSIC_DARK_CAVE, 18, 5
-	map_header WhirlIslandNW, $1e, 4, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 20, 10
-	map_header WhirlIslandNE, $1e, 4, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 20, 10
-	map_header WhirlIslandSW, $1e, 4, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 20, 10
-	map_header WhirlIslandCave, $1e, 4, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 20, 10
-	map_header WhirlIslandSE, $1e, 4, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 20, 10
-	map_header WhirlIslandB1F, $1e, 4, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 20, 10
-	map_header WhirlIslandB2F, $1e, 4, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 20, 10
-	map_header WhirlIslandLugiaChamber, $1e, 4, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 20, 10
-	map_header SilverCaveRoom1, $1e, 4, SILVER_CAVE, MUSIC_LIGHTHOUSE, 20, 3
-	map_header SilverCaveRoom2, $18, 4, SILVER_CAVE, MUSIC_LIGHTHOUSE, 18, 3
-	map_header SilverCaveRoom3, $18, 4, SILVER_CAVE, MUSIC_LIGHTHOUSE, 17, 3
-	map_header SilverCaveItemRooms, $18, 4, SILVER_CAVE, MUSIC_LIGHTHOUSE, 18, 3
-	map_header DarkCaveVioletEntrance, $1e, 4, DARK_CAVE, MUSIC_DARK_CAVE, 20, 3
-	map_header DarkCaveBlackthornEntrance, $1e, 4, DARK_CAVE, MUSIC_DARK_CAVE, 20, 3
-	map_header DragonsDen1F, $18, 4, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 18, 5
-	map_header DragonsDenB1F, $1, 4, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 18, 5
-	map_header DragonShrine, $a, 3, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 18, 1
-	map_header TohjoFalls, $18, 4, TOHJO_FALLS, MUSIC_UNION_CAVE, 18, 3
-	map_header DiglettsCave, $18, 4, DIGLETTS_CAVE, MUSIC_MT_MOON, 18, 1
-	map_header MountMoon, $18, 4, MT_MOON, MUSIC_MT_MOON, 18, 1
-	map_header Underground, $1c, 6, UNDERGROUND, MUSIC_MT_MOON, 2, 1
-	map_header RockTunnel1F, $1e, 4, ROCK_TUNNEL, MUSIC_MT_MOON, 20, 1
-	map_header RockTunnelB1F, $1e, 4, ROCK_TUNNEL, MUSIC_MT_MOON, 20, 1
-	map_header SafariZoneFuchsiaGateBeta, $8, 3, FUCHSIA_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
-	map_header SafariZoneBeta, $19, 4, FUCHSIA_CITY, MUSIC_EVOLUTION, 0, 1
-	map_header VictoryRoad, $18, 4, VICTORY_ROAD, MUSIC_VICTORY_ROAD, 18, 1
+	map_header SproutTower1F, $17, DUNGEON, SPROUT_TOWER, MUSIC_SPROUT_TOWER, 0, 1, 1
+	map_header SproutTower2F, $17, DUNGEON, SPROUT_TOWER, MUSIC_SPROUT_TOWER, 0, 1, 1
+	map_header SproutTower3F, $17, DUNGEON, SPROUT_TOWER, MUSIC_SPROUT_TOWER, 0, 1, 1
+	map_header TinTower1F, $17, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, 1, 1
+	map_header TinTower2F, $17, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, 1, 1
+	map_header TinTower3F, $17, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, 1, 1
+	map_header TinTower4F, $17, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, 1, 1
+	map_header TinTower5F, $17, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, 1, 1
+	map_header TinTower6F, $17, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, 1, 1
+	map_header TinTower7F, $17, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, 1, 1
+	map_header TinTower8F, $17, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, 1, 1
+	map_header TinTower9F, $17, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, 1, 1
+	map_header BurnedTower1F, $17, DUNGEON, BURNED_TOWER, MUSIC_BURNED_TOWER, 1, 2, 1
+	map_header BurnedTowerB1F, $18, CAVE, BURNED_TOWER, MUSIC_BURNED_TOWER, 1, 2, 1
+	map_header NationalPark, $19, ROUTE, NATIONAL_PARK, MUSIC_NATIONAL_PARK, 0, 0, 1
+	map_header NationalParkBugContest, $19, ROUTE, NATIONAL_PARK, MUSIC_BUG_CATCHING_CONTEST, 0, 0, 1
+	map_header RadioTower1F, $1b, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, 1, 1
+	map_header RadioTower2F, $1b, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, 1, 1
+	map_header RadioTower3F, $1b, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, 1, 1
+	map_header RadioTower4F, $1b, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, 1, 1
+	map_header RadioTower5F, $1b, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, 1, 1
+	map_header RuinsofAlphOutside, $1, ROUTE, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 0, 0, 4
+	map_header RuinsofAlphHoOhChamber, $1a, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, 1, 1
+	map_header RuinsofAlphKabutoChamber, $1a, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, 1, 1
+	map_header RuinsofAlphOmanyteChamber, $1a, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, 1, 1
+	map_header RuinsofAlphAerodactylChamber, $1a, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, 1, 1
+	map_header RuinsofAlphInnerChamber, $1a, DUNGEON, RUINS_OF_ALPH, MUSIC_RUINS_OF_ALPH_INTERIOR, 1, 1, 1
+	map_header RuinsofAlphResearchCenter, $b, INDOOR, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 0, 1, 1
+	map_header RuinsofAlphHoOhItemRoom, $1a, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, 1, 1
+	map_header RuinsofAlphKabutoItemRoom, $1a, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, 1, 1
+	map_header RuinsofAlphOmanyteItemRoom, $1a, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, 1, 1
+	map_header RuinsofAlphAerodactylItemRoom, $1a, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, 1, 1
+	map_header RuinsofAlphHoOhWordRoom, $21, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, 1, 1
+	map_header RuinsofAlphKabutoWordRoom, $22, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, 1, 1
+	map_header RuinsofAlphOmanyteWordRoom, $23, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, 1, 1
+	map_header RuinsofAlphAerodactylWordRoom, $24, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, 1, 1
+	map_header UnionCave1F, $18, CAVE, UNION_CAVE, MUSIC_UNION_CAVE, 1, 2, 3
+	map_header UnionCaveB1F, $18, CAVE, UNION_CAVE, MUSIC_UNION_CAVE, 1, 2, 3
+	map_header UnionCaveB2F, $18, CAVE, UNION_CAVE, MUSIC_UNION_CAVE, 1, 2, 1
+	map_header SlowpokeWellB1F, $18, CAVE, SLOWPOKE_WELL, MUSIC_DARK_CAVE, 1, 2, 3
+	map_header SlowpokeWellB2F, $18, CAVE, SLOWPOKE_WELL, MUSIC_DARK_CAVE, 1, 2, 3
+	map_header OlivineLighthouse1F, $13, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, 1, 1
+	map_header OlivineLighthouse2F, $13, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, 1, 1
+	map_header OlivineLighthouse3F, $13, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, 1, 1
+	map_header OlivineLighthouse4F, $13, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, 1, 1
+	map_header OlivineLighthouse5F, $13, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, 1, 1
+	map_header OlivineLighthouse6F, $13, DUNGEON, LIGHTHOUSE, MUSIC_VIOLET_CITY, 0, 1, 1
+	map_header MahoganyMart1F, $10, INDOOR, MAHOGANY_TOWN, MUSIC_MAHOGANY_MART, 1, 1, 1
+	map_header TeamRocketBaseB1F, $1c, DUNGEON, MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, 1, 1, 1
+	map_header TeamRocketBaseB2F, $b, DUNGEON, MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, 1, 1, 1
+	map_header TeamRocketBaseB3F, $b, DUNGEON, MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, 1, 1, 1
+	map_header IlexForest, $1f, CAVE, ILEX_FOREST, MUSIC_UNION_CAVE, 0, 2, 4
+	map_header WarehouseEntrance, $8, DUNGEON, GOLDENROD_CITY, MUSIC_UNION_CAVE, 1, 1, 1
+	map_header UndergroundPathSwitchRoomEntrances, $f, DUNGEON, GOLDENROD_CITY, MUSIC_UNION_CAVE, 1, 1, 1
+	map_header GoldenrodDeptStoreB1F, $1c, DUNGEON, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1, 1
+	map_header UndergroundWarehouse, $1c, DUNGEON, GOLDENROD_CITY, MUSIC_UNION_CAVE, 1, 1, 1
+	map_header MountMortar1FOutside, $1e, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, 1, 2, 3
+	map_header MountMortar1FInside, $1e, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, 1, 2, 3
+	map_header MountMortar2FInside, $1e, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, 1, 2, 3
+	map_header MountMortarB1F, $1e, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, 1, 2, 3
+	map_header IcePath1F, $1d, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, 2, 5
+	map_header IcePathB1F, $1d, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, 2, 5
+	map_header IcePathB2FMahoganySide, $1d, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, 2, 5
+	map_header IcePathB2FBlackthornSide, $1d, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, 2, 5
+	map_header IcePathB3F, $1d, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, 2, 5
+	map_header WhirlIslandNW, $1e, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, 4, 10
+	map_header WhirlIslandNE, $1e, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, 4, 10
+	map_header WhirlIslandSW, $1e, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, 4, 10
+	map_header WhirlIslandCave, $1e, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, 4, 10
+	map_header WhirlIslandSE, $1e, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, 4, 10
+	map_header WhirlIslandB1F, $1e, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, 4, 10
+	map_header WhirlIslandB2F, $1e, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, 4, 10
+	map_header WhirlIslandLugiaChamber, $1e, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, 4, 10
+	map_header SilverCaveRoom1, $1e, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, 1, 4, 3
+	map_header SilverCaveRoom2, $18, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, 1, 2, 3
+	map_header SilverCaveRoom3, $18, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, 1, 1, 3
+	map_header SilverCaveItemRooms, $18, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, 1, 2, 3
+	map_header DarkCaveVioletEntrance, $1e, CAVE, DARK_CAVE, MUSIC_DARK_CAVE, 1, 4, 3
+	map_header DarkCaveBlackthornEntrance, $1e, CAVE, DARK_CAVE, MUSIC_DARK_CAVE, 1, 4, 3
+	map_header DragonsDen1F, $18, CAVE, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, 2, 5
+	map_header DragonsDenB1F, $1, CAVE, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, 2, 5
+	map_header DragonShrine, $a, INDOOR, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, 2, 1
+	map_header TohjoFalls, $18, CAVE, TOHJO_FALLS, MUSIC_UNION_CAVE, 1, 2, 3
+	map_header DiglettsCave, $18, CAVE, DIGLETTS_CAVE, MUSIC_MT_MOON, 1, 2, 1
+	map_header MountMoon, $18, CAVE, MT_MOON, MUSIC_MT_MOON, 1, 2, 1
+	map_header Underground, $1c, GATE, UNDERGROUND, MUSIC_MT_MOON, 0, 2, 1
+	map_header RockTunnel1F, $1e, CAVE, ROCK_TUNNEL, MUSIC_MT_MOON, 1, 4, 1
+	map_header RockTunnelB1F, $1e, CAVE, ROCK_TUNNEL, MUSIC_MT_MOON, 1, 4, 1
+	map_header SafariZoneFuchsiaGateBeta, $8, INDOOR, FUCHSIA_CITY, MUSIC_VIRIDIAN_CITY, 0, 1, 1
+	map_header SafariZoneBeta, $19, CAVE, FUCHSIA_CITY, MUSIC_EVOLUTION, 0, 0, 1
+	map_header VictoryRoad, $18, CAVE, VICTORY_ROAD, MUSIC_VICTORY_ROAD, 1, 2, 1
 
 
 MapGroup4:
-	map_header EcruteakHouse, $17, 3, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 1, 1
-	map_header WiseTriosRoom, $10, 3, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 17, 1
-	map_header EcruteakPokeCenter1F, $7, 3, ECRUTEAK_CITY, MUSIC_POKEMON_CENTER, 1, 1
-	map_header EcruteakLugiaSpeechHouse, $10, 3, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 1, 1
-	map_header DanceTheatre, $10, 3, ECRUTEAK_CITY, MUSIC_DANCING_HALL, 1, 1
-	map_header EcruteakMart, $c, 3, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 1, 1
-	map_header EcruteakGym, $17, 3, ECRUTEAK_CITY, MUSIC_GYM, 17, 1
-	map_header EcruteakItemfinderHouse, $10, 3, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 1, 1
-	map_header EcruteakCity, $1, 1, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, 4
+	map_header EcruteakHouse, $17, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, 1, 1
+	map_header WiseTriosRoom, $10, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 1, 1, 1
+	map_header EcruteakPokeCenter1F, $7, INDOOR, ECRUTEAK_CITY, MUSIC_POKEMON_CENTER, 0, 1, 1
+	map_header EcruteakLugiaSpeechHouse, $10, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, 1, 1
+	map_header DanceTheatre, $10, INDOOR, ECRUTEAK_CITY, MUSIC_DANCING_HALL, 0, 1, 1
+	map_header EcruteakMart, $c, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, 1, 1
+	map_header EcruteakGym, $17, INDOOR, ECRUTEAK_CITY, MUSIC_GYM, 1, 1, 1
+	map_header EcruteakItemfinderHouse, $10, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, 1, 1
+	map_header EcruteakCity, $1, TOWN, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, 0, 4
 
 
 MapGroup5:
-	map_header BlackthornGym1F, $f, 3, BLACKTHORN_CITY, MUSIC_GYM, 17, 1
-	map_header BlackthornGym2F, $f, 3, BLACKTHORN_CITY, MUSIC_GYM, 17, 1
-	map_header BlackthornDragonSpeechHouse, $5, 3, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 1, 1
-	map_header BlackthornDodrioTradeHouse, $5, 3, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 1, 1
-	map_header BlackthornMart, $c, 3, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 1, 1
-	map_header BlackthornPokeCenter1F, $7, 3, BLACKTHORN_CITY, MUSIC_POKEMON_CENTER, 1, 1
-	map_header MoveDeletersHouse, $5, 3, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 1, 1
-	map_header Route45, $1, 2, ROUTE_45, MUSIC_ROUTE_36, 0, 9
-	map_header Route46, $1, 2, ROUTE_46, MUSIC_ROUTE_36, 0, 1
-	map_header BlackthornCity, $1, 1, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, 4
+	map_header BlackthornGym1F, $f, INDOOR, BLACKTHORN_CITY, MUSIC_GYM, 1, 1, 1
+	map_header BlackthornGym2F, $f, INDOOR, BLACKTHORN_CITY, MUSIC_GYM, 1, 1, 1
+	map_header BlackthornDragonSpeechHouse, $5, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, 1, 1
+	map_header BlackthornDodrioTradeHouse, $5, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, 1, 1
+	map_header BlackthornMart, $c, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, 1, 1
+	map_header BlackthornPokeCenter1F, $7, INDOOR, BLACKTHORN_CITY, MUSIC_POKEMON_CENTER, 0, 1, 1
+	map_header MoveDeletersHouse, $5, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, 1, 1
+	map_header Route45, $1, ROUTE, ROUTE_45, MUSIC_ROUTE_36, 0, 0, 9
+	map_header Route46, $1, ROUTE, ROUTE_46, MUSIC_ROUTE_36, 0, 0, 1
+	map_header BlackthornCity, $1, TOWN, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, 0, 4
 
 
 MapGroup6:
-	map_header CinnabarPokeCenter1F, $7, 3, CINNABAR_ISLAND, MUSIC_POKEMON_CENTER, 1, 1
-	map_header CinnabarPokeCenter2FBeta, $7, 3, CINNABAR_ISLAND, MUSIC_POKEMON_CENTER, 1, 1
-	map_header Route19FuchsiaGate, $8, 6, ROUTE_19, MUSIC_ROUTE_3, 1, 1
-	map_header SeafoamGym, $18, 3, SEAFOAM_ISLANDS, MUSIC_GYM, 17, 1
-	map_header Route19, $3, 2, ROUTE_19, MUSIC_ROUTE_3, 0, 1
-	map_header Route20, $3, 2, ROUTE_20, MUSIC_ROUTE_3, 0, 2
-	map_header Route21, $3, 2, ROUTE_21, MUSIC_ROUTE_3, 0, 2
-	map_header CinnabarIsland, $3, 1, CINNABAR_ISLAND, MUSIC_VIRIDIAN_CITY, 0, 2
+	map_header CinnabarPokeCenter1F, $7, INDOOR, CINNABAR_ISLAND, MUSIC_POKEMON_CENTER, 0, 1, 1
+	map_header CinnabarPokeCenter2FBeta, $7, INDOOR, CINNABAR_ISLAND, MUSIC_POKEMON_CENTER, 0, 1, 1
+	map_header Route19FuchsiaGate, $8, GATE, ROUTE_19, MUSIC_ROUTE_3, 0, 1, 1
+	map_header SeafoamGym, $18, INDOOR, SEAFOAM_ISLANDS, MUSIC_GYM, 1, 1, 1
+	map_header Route19, $3, ROUTE, ROUTE_19, MUSIC_ROUTE_3, 0, 0, 1
+	map_header Route20, $3, ROUTE, ROUTE_20, MUSIC_ROUTE_3, 0, 0, 2
+	map_header Route21, $3, ROUTE, ROUTE_21, MUSIC_ROUTE_3, 0, 0, 2
+	map_header CinnabarIsland, $3, TOWN, CINNABAR_ISLAND, MUSIC_VIRIDIAN_CITY, 0, 0, 2
 
 
 MapGroup7:
-	map_header CeruleanGymBadgeSpeechHouse, $5, 3, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
-	map_header CeruleanPoliceStation, $5, 3, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
-	map_header CeruleanTradeSpeechHouse, $5, 3, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
-	map_header CeruleanPokeCenter1F, $7, 3, CERULEAN_CITY, MUSIC_POKEMON_CENTER, 1, 1
-	map_header CeruleanPokeCenter2FBeta, $7, 3, CERULEAN_CITY, MUSIC_POKEMON_CENTER, 1, 1
-	map_header CeruleanGym, $9, 3, CERULEAN_CITY, MUSIC_GYM, 17, 0
-	map_header CeruleanMart, $c, 3, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
-	map_header Route10PokeCenter1F, $7, 3, ROUTE_10, MUSIC_POKEMON_CENTER, 1, 1
-	map_header Route10PokeCenter2FBeta, $7, 3, ROUTE_10, MUSIC_POKEMON_CENTER, 1, 1
-	map_header PowerPlant, $b, 3, POWER_PLANT, MUSIC_VIRIDIAN_CITY, 1, 1
-	map_header BillsHouse, $5, 3, ROUTE_25, MUSIC_VIRIDIAN_CITY, 1, 1
-	map_header Route4, $3, 2, ROUTE_4, MUSIC_ROUTE_3, 0, 0
-	map_header Route9, $3, 2, ROUTE_9, MUSIC_ROUTE_3, 0, 3
-	map_header Route10North, $3, 2, ROUTE_10, MUSIC_ROUTE_3, 0, 3
-	map_header Route24, $3, 2, ROUTE_24, MUSIC_ROUTE_3, 0, 3
-	map_header Route25, $3, 2, ROUTE_25, MUSIC_ROUTE_3, 0, 3
-	map_header CeruleanCity, $3, 1, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, 0
+	map_header CeruleanGymBadgeSpeechHouse, $5, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, 1, 1
+	map_header CeruleanPoliceStation, $5, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, 1, 1
+	map_header CeruleanTradeSpeechHouse, $5, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, 1, 1
+	map_header CeruleanPokeCenter1F, $7, INDOOR, CERULEAN_CITY, MUSIC_POKEMON_CENTER, 0, 1, 1
+	map_header CeruleanPokeCenter2FBeta, $7, INDOOR, CERULEAN_CITY, MUSIC_POKEMON_CENTER, 0, 1, 1
+	map_header CeruleanGym, $9, INDOOR, CERULEAN_CITY, MUSIC_GYM, 1, 1, 0
+	map_header CeruleanMart, $c, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, 1, 1
+	map_header Route10PokeCenter1F, $7, INDOOR, ROUTE_10, MUSIC_POKEMON_CENTER, 0, 1, 1
+	map_header Route10PokeCenter2FBeta, $7, INDOOR, ROUTE_10, MUSIC_POKEMON_CENTER, 0, 1, 1
+	map_header PowerPlant, $b, INDOOR, POWER_PLANT, MUSIC_VIRIDIAN_CITY, 0, 1, 1
+	map_header BillsHouse, $5, INDOOR, ROUTE_25, MUSIC_VIRIDIAN_CITY, 0, 1, 1
+	map_header Route4, $3, ROUTE, ROUTE_4, MUSIC_ROUTE_3, 0, 0, 0
+	map_header Route9, $3, ROUTE, ROUTE_9, MUSIC_ROUTE_3, 0, 0, 3
+	map_header Route10North, $3, ROUTE, ROUTE_10, MUSIC_ROUTE_3, 0, 0, 3
+	map_header Route24, $3, ROUTE, ROUTE_24, MUSIC_ROUTE_3, 0, 0, 3
+	map_header Route25, $3, ROUTE, ROUTE_25, MUSIC_ROUTE_3, 0, 0, 3
+	map_header CeruleanCity, $3, TOWN, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, 0, 0
 
 
 MapGroup8:
-	map_header AzaleaPokeCenter1F, $7, 3, AZALEA_TOWN, MUSIC_POKEMON_CENTER, 1, 1
-	map_header CharcoalKiln, $5, 3, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 1, 1
-	map_header AzaleaMart, $c, 3, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 1, 1
-	map_header KurtsHouse, $10, 3, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 1, 1
-	map_header AzaleaGym, $f, 3, AZALEA_TOWN, MUSIC_GYM, 17, 1
-	map_header Route33, $2, 2, ROUTE_33, MUSIC_ROUTE_30, 0, 1
-	map_header AzaleaTown, $2, 1, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, 1
+	map_header AzaleaPokeCenter1F, $7, INDOOR, AZALEA_TOWN, MUSIC_POKEMON_CENTER, 0, 1, 1
+	map_header CharcoalKiln, $5, INDOOR, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, 1, 1
+	map_header AzaleaMart, $c, INDOOR, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, 1, 1
+	map_header KurtsHouse, $10, INDOOR, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, 1, 1
+	map_header AzaleaGym, $f, INDOOR, AZALEA_TOWN, MUSIC_GYM, 1, 1, 1
+	map_header Route33, $2, ROUTE, ROUTE_33, MUSIC_ROUTE_30, 0, 0, 1
+	map_header AzaleaTown, $2, TOWN, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, 0, 1
 
 
 MapGroup9:
-	map_header LakeofRageHiddenPowerHouse, $5, 3, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 1, 1
-	map_header LakeofRageMagikarpHouse, $5, 3, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 1, 1
-	map_header Route43MahoganyGate, $8, 6, ROUTE_43, MUSIC_LAKE_OF_RAGE, 1, 1
-	map_header Route43Gate, $8, 6, ROUTE_43, MUSIC_LAKE_OF_RAGE, 1, 1
-	map_header Route43, $1, 2, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, 4
-	map_header LakeofRage, $1, 1, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, 8
+	map_header LakeofRageHiddenPowerHouse, $5, INDOOR, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, 1, 1
+	map_header LakeofRageMagikarpHouse, $5, INDOOR, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, 1, 1
+	map_header Route43MahoganyGate, $8, GATE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, 1, 1
+	map_header Route43Gate, $8, GATE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, 1, 1
+	map_header Route43, $1, ROUTE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, 0, 4
+	map_header LakeofRage, $1, TOWN, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, 0, 8
 
 
 MapGroup10:
-	map_header Route32, $1, 2, ROUTE_32, MUSIC_ROUTE_30, 0, 11
-	map_header Route35, $1, 2, ROUTE_35, MUSIC_ROUTE_36, 0, 4
-	map_header Route36, $1, 2, ROUTE_36, MUSIC_ROUTE_36, 0, 1
-	map_header Route37, $1, 2, ROUTE_37, MUSIC_ROUTE_36, 0, 1
-	map_header VioletCity, $1, 1, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, 4
-	map_header VioletMart, $c, 3, VIOLET_CITY, MUSIC_VIOLET_CITY, 1, 1
-	map_header VioletGym, $f, 3, VIOLET_CITY, MUSIC_GYM, 17, 1
-	map_header EarlsPokemonAcademy, $a, 3, VIOLET_CITY, MUSIC_VIOLET_CITY, 1, 1
-	map_header VioletNicknameSpeechHouse, $10, 3, VIOLET_CITY, MUSIC_VIOLET_CITY, 1, 1
-	map_header VioletPokeCenter1F, $7, 3, VIOLET_CITY, MUSIC_POKEMON_CENTER, 1, 1
-	map_header VioletOnixTradeHouse, $10, 3, VIOLET_CITY, MUSIC_VIOLET_CITY, 1, 1
-	map_header Route32RuinsofAlphGate, $8, 6, ROUTE_32, MUSIC_ROUTE_30, 1, 1
-	map_header Route32PokeCenter1F, $7, 3, ROUTE_32, MUSIC_POKEMON_CENTER, 1, 1
-	map_header Route35Goldenrodgate, $8, 6, ROUTE_35, MUSIC_ROUTE_36, 1, 1
-	map_header Route35NationalParkgate, $8, 3, ROUTE_35, MUSIC_GOLDENROD_CITY, 1, 1
-	map_header Route36RuinsofAlphgate, $8, 6, ROUTE_36, MUSIC_ROUTE_36, 1, 1
-	map_header Route36NationalParkgate, $8, 3, ROUTE_36, MUSIC_GOLDENROD_CITY, 1, 1
+	map_header Route32, $1, ROUTE, ROUTE_32, MUSIC_ROUTE_30, 0, 0, 11
+	map_header Route35, $1, ROUTE, ROUTE_35, MUSIC_ROUTE_36, 0, 0, 4
+	map_header Route36, $1, ROUTE, ROUTE_36, MUSIC_ROUTE_36, 0, 0, 1
+	map_header Route37, $1, ROUTE, ROUTE_37, MUSIC_ROUTE_36, 0, 0, 1
+	map_header VioletCity, $1, TOWN, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, 0, 4
+	map_header VioletMart, $c, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, 1, 1
+	map_header VioletGym, $f, INDOOR, VIOLET_CITY, MUSIC_GYM, 1, 1, 1
+	map_header EarlsPokemonAcademy, $a, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, 1, 1
+	map_header VioletNicknameSpeechHouse, $10, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, 1, 1
+	map_header VioletPokeCenter1F, $7, INDOOR, VIOLET_CITY, MUSIC_POKEMON_CENTER, 0, 1, 1
+	map_header VioletOnixTradeHouse, $10, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, 1, 1
+	map_header Route32RuinsofAlphGate, $8, GATE, ROUTE_32, MUSIC_ROUTE_30, 0, 1, 1
+	map_header Route32PokeCenter1F, $7, INDOOR, ROUTE_32, MUSIC_POKEMON_CENTER, 0, 1, 1
+	map_header Route35Goldenrodgate, $8, GATE, ROUTE_35, MUSIC_ROUTE_36, 0, 1, 1
+	map_header Route35NationalParkgate, $8, INDOOR, ROUTE_35, MUSIC_GOLDENROD_CITY, 0, 1, 1
+	map_header Route36RuinsofAlphgate, $8, GATE, ROUTE_36, MUSIC_ROUTE_36, 0, 1, 1
+	map_header Route36NationalParkgate, $8, INDOOR, ROUTE_36, MUSIC_GOLDENROD_CITY, 0, 1, 1
 
 
 MapGroup11:
-	map_header Route34, $2, 2, ROUTE_34, MUSIC_ROUTE_36, 0, 1
-	map_header GoldenrodCity, $2, 1, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, 1
-	map_header GoldenrodGym, $f, 3, GOLDENROD_CITY, MUSIC_GYM, 17, 1
-	map_header GoldenrodBikeShop, $12, 3, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
-	map_header GoldenrodHappinessRater, $5, 3, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
-	map_header GoldenrodBillsHouse, $5, 3, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
-	map_header GoldenrodMagnetTrainStation, $11, 3, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
-	map_header GoldenrodFlowerShop, $5, 3, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
-	map_header GoldenrodPPSpeechHouse, $5, 3, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
-	map_header GoldenrodNameRatersHouse, $5, 3, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
-	map_header GoldenrodDeptStore1F, $c, 3, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
-	map_header GoldenrodDeptStore2F, $c, 3, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
-	map_header GoldenrodDeptStore3F, $c, 3, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
-	map_header GoldenrodDeptStore4F, $c, 3, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
-	map_header GoldenrodDeptStore5F, $c, 3, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
-	map_header GoldenrodDeptStore6F, $c, 3, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
-	map_header GoldenrodDeptStoreElevator, $c, 3, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
-	map_header GoldenrodDeptStoreRoof, $c, 3, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, 1
-	map_header GoldenrodGameCorner, $e, 3, GOLDENROD_CITY, MUSIC_GAME_CORNER, 1, 1
-	map_header GoldenrodPokeCenter1F, $7, 3, GOLDENROD_CITY, MUSIC_POKEMON_CENTER, 1, 1
-	map_header GoldenrodPokeComCenter2FMobile, $15, 3, GOLDENROD_CITY, MUSIC_POKEMON_CENTER, 1, 1
-	map_header IlexForestAzaleaGate, $8, 6, ROUTE_34, MUSIC_ROUTE_36, 1, 1
-	map_header Route34IlexForestGate, $8, 6, ROUTE_34, MUSIC_ROUTE_36, 1, 1
-	map_header DayCare, $5, 3, ROUTE_34, MUSIC_AZALEA_TOWN, 1, 1
+	map_header Route34, $2, ROUTE, ROUTE_34, MUSIC_ROUTE_36, 0, 0, 1
+	map_header GoldenrodCity, $2, TOWN, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, 0, 1
+	map_header GoldenrodGym, $f, INDOOR, GOLDENROD_CITY, MUSIC_GYM, 1, 1, 1
+	map_header GoldenrodBikeShop, $12, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, 1, 1
+	map_header GoldenrodHappinessRater, $5, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, 1, 1
+	map_header GoldenrodBillsHouse, $5, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, 1, 1
+	map_header GoldenrodMagnetTrainStation, $11, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, 1, 1
+	map_header GoldenrodFlowerShop, $5, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, 1, 1
+	map_header GoldenrodPPSpeechHouse, $5, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, 1, 1
+	map_header GoldenrodNameRatersHouse, $5, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, 1, 1
+	map_header GoldenrodDeptStore1F, $c, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, 1, 1
+	map_header GoldenrodDeptStore2F, $c, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, 1, 1
+	map_header GoldenrodDeptStore3F, $c, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, 1, 1
+	map_header GoldenrodDeptStore4F, $c, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, 1, 1
+	map_header GoldenrodDeptStore5F, $c, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, 1, 1
+	map_header GoldenrodDeptStore6F, $c, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, 1, 1
+	map_header GoldenrodDeptStoreElevator, $c, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, 1, 1
+	map_header GoldenrodDeptStoreRoof, $c, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, 1, 1
+	map_header GoldenrodGameCorner, $e, INDOOR, GOLDENROD_CITY, MUSIC_GAME_CORNER, 0, 1, 1
+	map_header GoldenrodPokeCenter1F, $7, INDOOR, GOLDENROD_CITY, MUSIC_POKEMON_CENTER, 0, 1, 1
+	map_header GoldenrodPokeComCenter2FMobile, $15, INDOOR, GOLDENROD_CITY, MUSIC_POKEMON_CENTER, 0, 1, 1
+	map_header IlexForestAzaleaGate, $8, GATE, ROUTE_34, MUSIC_ROUTE_36, 0, 1, 1
+	map_header Route34IlexForestGate, $8, GATE, ROUTE_34, MUSIC_ROUTE_36, 0, 1, 1
+	map_header DayCare, $5, INDOOR, ROUTE_34, MUSIC_AZALEA_TOWN, 0, 1, 1
 
 
 MapGroup12:
-	map_header Route6, $3, 2, ROUTE_6, MUSIC_ROUTE_3, 0, 4
-	map_header Route11, $3, 2, ROUTE_11, MUSIC_ROUTE_12, 0, 1
-	map_header VermilionCity, $3, 1, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, 2
-	map_header VermilionHouseFishingSpeechHouse, $5, 3, VERMILION_CITY, MUSIC_VERMILION_CITY, 1, 1
-	map_header VermilionPokeCenter1F, $7, 3, VERMILION_CITY, MUSIC_POKEMON_CENTER, 1, 1
-	map_header VermilionPokeCenter2FBeta, $7, 3, VERMILION_CITY, MUSIC_VERMILION_CITY, 1, 1
-	map_header PokemonFanClub, $5, 3, VERMILION_CITY, MUSIC_VERMILION_CITY, 1, 1
-	map_header VermilionMagnetTrainSpeechHouse, $5, 3, VERMILION_CITY, MUSIC_VERMILION_CITY, 1, 1
-	map_header VermilionMart, $c, 3, VERMILION_CITY, MUSIC_VERMILION_CITY, 1, 1
-	map_header VermilionHouseDiglettsCaveSpeechHouse, $5, 3, VERMILION_CITY, MUSIC_VERMILION_CITY, 1, 1
-	map_header VermilionGym, $e, 3, VERMILION_CITY, MUSIC_GYM, 17, 1
-	map_header Route6SaffronGate, $8, 6, ROUTE_6, MUSIC_ROUTE_3, 1, 1
-	map_header Route6UndergroundEntrance, $8, 6, ROUTE_6, MUSIC_ROUTE_3, 1, 1
+	map_header Route6, $3, ROUTE, ROUTE_6, MUSIC_ROUTE_3, 0, 0, 4
+	map_header Route11, $3, ROUTE, ROUTE_11, MUSIC_ROUTE_12, 0, 0, 1
+	map_header VermilionCity, $3, TOWN, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, 0, 2
+	map_header VermilionHouseFishingSpeechHouse, $5, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, 1, 1
+	map_header VermilionPokeCenter1F, $7, INDOOR, VERMILION_CITY, MUSIC_POKEMON_CENTER, 0, 1, 1
+	map_header VermilionPokeCenter2FBeta, $7, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, 1, 1
+	map_header PokemonFanClub, $5, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, 1, 1
+	map_header VermilionMagnetTrainSpeechHouse, $5, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, 1, 1
+	map_header VermilionMart, $c, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, 1, 1
+	map_header VermilionHouseDiglettsCaveSpeechHouse, $5, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, 1, 1
+	map_header VermilionGym, $e, INDOOR, VERMILION_CITY, MUSIC_GYM, 1, 1, 1
+	map_header Route6SaffronGate, $8, GATE, ROUTE_6, MUSIC_ROUTE_3, 0, 1, 1
+	map_header Route6UndergroundEntrance, $8, GATE, ROUTE_6, MUSIC_ROUTE_3, 0, 1, 1
 
 
 MapGroup13:
-	map_header Route1, $3, 2, ROUTE_1, MUSIC_ROUTE_1, 0, 1
-	map_header PalletTown, $3, 1, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, 2
-	map_header RedsHouse1F, $6, 3, PALLET_TOWN, MUSIC_PALLET_TOWN, 1, 1
-	map_header RedsHouse2F, $6, 3, PALLET_TOWN, MUSIC_PALLET_TOWN, 1, 1
-	map_header BluesHouse, $5, 3, PALLET_TOWN, MUSIC_PALLET_TOWN, 1, 1
-	map_header OaksLab, $a, 3, PALLET_TOWN, MUSIC_POKEMON_TALK, 1, 1
+	map_header Route1, $3, ROUTE, ROUTE_1, MUSIC_ROUTE_1, 0, 0, 1
+	map_header PalletTown, $3, TOWN, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, 0, 2
+	map_header RedsHouse1F, $6, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, 1, 1
+	map_header RedsHouse2F, $6, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, 1, 1
+	map_header BluesHouse, $5, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, 1, 1
+	map_header OaksLab, $a, INDOOR, PALLET_TOWN, MUSIC_POKEMON_TALK, 0, 1, 1
 
 
 MapGroup14:
-	map_header Route3, $3, 2, ROUTE_3, MUSIC_ROUTE_3, 0, 1
-	map_header PewterCity, $3, 1, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, 1
-	map_header PewterNidoranSpeechHouse, $5, 3, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
-	map_header PewterGym, $17, 3, PEWTER_CITY, MUSIC_GYM, 17, 1
-	map_header PewterMart, $c, 3, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
-	map_header PewterPokeCenter1F, $7, 3, PEWTER_CITY, MUSIC_POKEMON_CENTER, 1, 1
-	map_header PewterPokeCEnter2FBeta, $7, 3, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
-	map_header PewterSnoozeSpeechHouse, $5, 3, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
+	map_header Route3, $3, ROUTE, ROUTE_3, MUSIC_ROUTE_3, 0, 0, 1
+	map_header PewterCity, $3, TOWN, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, 0, 1
+	map_header PewterNidoranSpeechHouse, $5, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, 1, 1
+	map_header PewterGym, $17, INDOOR, PEWTER_CITY, MUSIC_GYM, 1, 1, 1
+	map_header PewterMart, $c, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, 1, 1
+	map_header PewterPokeCenter1F, $7, INDOOR, PEWTER_CITY, MUSIC_POKEMON_CENTER, 0, 1, 1
+	map_header PewterPokeCEnter2FBeta, $7, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, 1, 1
+	map_header PewterSnoozeSpeechHouse, $5, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, 1, 1
 
 
 MapGroup15:
-	map_header OlivinePort, $9, 2, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, 2
-	map_header VermilionPort, $9, 2, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, 2
-	map_header FastShip1F, $13, 3, FAST_SHIP, MUSIC_SS_AQUA, 1, 1
-	map_header FastShipCabins_NNW_NNE_NE, $13, 3, FAST_SHIP, MUSIC_SS_AQUA, 1, 1
-	map_header FastShipCabins_SW_SSW_NW, $13, 3, FAST_SHIP, MUSIC_SS_AQUA, 1, 1
-	map_header FastShipCabins_SE_SSE_CaptainsCabin, $13, 3, FAST_SHIP, MUSIC_SS_AQUA, 1, 1
-	map_header FastShipB1F, $13, 3, FAST_SHIP, MUSIC_SS_AQUA, 1, 1
-	map_header OlivinePortPassage, $1c, 3, OLIVINE_CITY, MUSIC_VIOLET_CITY, 1, 1
-	map_header VermilionPortPassage, $1c, 3, VERMILION_CITY, MUSIC_VERMILION_CITY, 1, 1
-	map_header MountMoonSquare, $3, 2, MT_MOON, MUSIC_MT_MOON_SQUARE, 0, 1
-	map_header MountMoonGiftShop, $10, 3, MT_MOON, MUSIC_VIRIDIAN_CITY, 1, 1
-	map_header TinTowerRoof, $17, 2, TIN_TOWER, MUSIC_TIN_TOWER, 0, 1
+	map_header OlivinePort, $9, ROUTE, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, 0, 2
+	map_header VermilionPort, $9, ROUTE, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, 0, 2
+	map_header FastShip1F, $13, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, 1, 1
+	map_header FastShipCabins_NNW_NNE_NE, $13, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, 1, 1
+	map_header FastShipCabins_SW_SSW_NW, $13, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, 1, 1
+	map_header FastShipCabins_SE_SSE_CaptainsCabin, $13, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, 1, 1
+	map_header FastShipB1F, $13, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, 1, 1
+	map_header OlivinePortPassage, $1c, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, 1, 1
+	map_header VermilionPortPassage, $1c, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, 1, 1
+	map_header MountMoonSquare, $3, ROUTE, MT_MOON, MUSIC_MT_MOON_SQUARE, 0, 0, 1
+	map_header MountMoonGiftShop, $10, INDOOR, MT_MOON, MUSIC_VIRIDIAN_CITY, 0, 1, 1
+	map_header TinTowerRoof, $17, ROUTE, TIN_TOWER, MUSIC_TIN_TOWER, 0, 0, 1
 
 
 MapGroup16:
-	map_header Route23, $3, 1, ROUTE_23, MUSIC_INDIGO_PLATEAU, 0, 1
-	map_header IndigoPlateauPokeCenter1F, $7, 3, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, 1
-	map_header WillsRoom, $f, 3, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 17, 1
-	map_header KogasRoom, $f, 3, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 17, 1
-	map_header BrunosRoom, $f, 3, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 17, 1
-	map_header KarensRoom, $f, 3, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 17, 1
-	map_header LancesRoom, $12, 3, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 17, 1
-	map_header HallOfFame, $1d, 3, INDIGO_PLATEAU, MUSIC_NEW_BARK_TOWN, 17, 1
+	map_header Route23, $3, TOWN, ROUTE_23, MUSIC_INDIGO_PLATEAU, 0, 0, 1
+	map_header IndigoPlateauPokeCenter1F, $7, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 0, 1, 1
+	map_header WillsRoom, $f, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, 1, 1
+	map_header KogasRoom, $f, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, 1, 1
+	map_header BrunosRoom, $f, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, 1, 1
+	map_header KarensRoom, $f, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, 1, 1
+	map_header LancesRoom, $12, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, 1, 1
+	map_header HallOfFame, $1d, INDOOR, INDIGO_PLATEAU, MUSIC_NEW_BARK_TOWN, 1, 1, 1
 
 
 MapGroup17:
-	map_header Route13, $3, 2, ROUTE_13, MUSIC_ROUTE_12, 0, 13
-	map_header Route14, $3, 2, ROUTE_14, MUSIC_ROUTE_12, 0, 1
-	map_header Route15, $3, 2, ROUTE_15, MUSIC_ROUTE_12, 0, 1
-	map_header Route18, $3, 2, ROUTE_18, MUSIC_ROUTE_3, 0, 1
-	map_header FuchsiaCity, $3, 1, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, 8
-	map_header FuchsiaMart, $c, 3, FUCHSIA_CITY, MUSIC_CELADON_CITY, 1, 1
-	map_header SafariZoneMainOffice, $e, 3, FUCHSIA_CITY, MUSIC_CELADON_CITY, 1, 1
-	map_header FuchsiaGym, $a, 3, FUCHSIA_CITY, MUSIC_GYM, 17, 1
-	map_header FuchsiaBillSpeechHouse, $5, 3, FUCHSIA_CITY, MUSIC_CELADON_CITY, 1, 1
-	map_header FuchsiaPokeCenter1F, $7, 3, FUCHSIA_CITY, MUSIC_POKEMON_CENTER, 1, 1
-	map_header FuchsiaPokeCenter2FBeta, $7, 3, FUCHSIA_CITY, MUSIC_CELADON_CITY, 1, 1
-	map_header SafariZoneWardensHome, $5, 3, FUCHSIA_CITY, MUSIC_CELADON_CITY, 1, 1
-	map_header Route15FuchsiaGate, $8, 6, ROUTE_15, MUSIC_ROUTE_12, 1, 1
+	map_header Route13, $3, ROUTE, ROUTE_13, MUSIC_ROUTE_12, 0, 0, 13
+	map_header Route14, $3, ROUTE, ROUTE_14, MUSIC_ROUTE_12, 0, 0, 1
+	map_header Route15, $3, ROUTE, ROUTE_15, MUSIC_ROUTE_12, 0, 0, 1
+	map_header Route18, $3, ROUTE, ROUTE_18, MUSIC_ROUTE_3, 0, 0, 1
+	map_header FuchsiaCity, $3, TOWN, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, 0, 8
+	map_header FuchsiaMart, $c, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, 1, 1
+	map_header SafariZoneMainOffice, $e, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, 1, 1
+	map_header FuchsiaGym, $a, INDOOR, FUCHSIA_CITY, MUSIC_GYM, 1, 1, 1
+	map_header FuchsiaBillSpeechHouse, $5, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, 1, 1
+	map_header FuchsiaPokeCenter1F, $7, INDOOR, FUCHSIA_CITY, MUSIC_POKEMON_CENTER, 0, 1, 1
+	map_header FuchsiaPokeCenter2FBeta, $7, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, 1, 1
+	map_header SafariZoneWardensHome, $5, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, 1, 1
+	map_header Route15FuchsiaGate, $8, GATE, ROUTE_15, MUSIC_ROUTE_12, 0, 1, 1
 
 
 MapGroup18:
-	map_header Route8, $3, 2, ROUTE_8, MUSIC_ROUTE_3, 0, 1
-	map_header Route12, $3, 2, ROUTE_12, MUSIC_ROUTE_12, 0, 13
-	map_header Route10South, $3, 2, ROUTE_10, MUSIC_ROUTE_3, 0, 3
-	map_header LavenderTown, $3, 1, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, 1
-	map_header LavenderPokeCenter1F, $7, 3, LAVENDER_TOWN, MUSIC_POKEMON_CENTER, 1, 1
-	map_header LavenderPokeCenter2FBeta, $7, 3, LAVENDER_TOWN, MUSIC_POKEMON_CENTER, 1, 1
-	map_header MrFujisHouse, $5, 3, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 1, 1
-	map_header LavenderTownSpeechHouse, $5, 3, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 1, 1
-	map_header LavenderNameRater, $5, 3, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 1, 1
-	map_header LavenderMart, $c, 3, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 1, 1
-	map_header SoulHouse, $5, 3, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 1, 1
-	map_header LavRadioTower1F, $1b, 3, LAV_RADIO_TOWER, MUSIC_LAVENDER_TOWN, 1, 1
-	map_header Route8SaffronGate, $8, 6, ROUTE_8, MUSIC_ROUTE_3, 1, 1
-	map_header Route12SuperRodHouse, $5, 3, ROUTE_12, MUSIC_VIRIDIAN_CITY, 1, 1
+	map_header Route8, $3, ROUTE, ROUTE_8, MUSIC_ROUTE_3, 0, 0, 1
+	map_header Route12, $3, ROUTE, ROUTE_12, MUSIC_ROUTE_12, 0, 0, 13
+	map_header Route10South, $3, ROUTE, ROUTE_10, MUSIC_ROUTE_3, 0, 0, 3
+	map_header LavenderTown, $3, TOWN, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, 0, 1
+	map_header LavenderPokeCenter1F, $7, INDOOR, LAVENDER_TOWN, MUSIC_POKEMON_CENTER, 0, 1, 1
+	map_header LavenderPokeCenter2FBeta, $7, INDOOR, LAVENDER_TOWN, MUSIC_POKEMON_CENTER, 0, 1, 1
+	map_header MrFujisHouse, $5, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, 1, 1
+	map_header LavenderTownSpeechHouse, $5, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, 1, 1
+	map_header LavenderNameRater, $5, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, 1, 1
+	map_header LavenderMart, $c, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, 1, 1
+	map_header SoulHouse, $5, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, 1, 1
+	map_header LavRadioTower1F, $1b, INDOOR, LAV_RADIO_TOWER, MUSIC_LAVENDER_TOWN, 0, 1, 1
+	map_header Route8SaffronGate, $8, GATE, ROUTE_8, MUSIC_ROUTE_3, 0, 1, 1
+	map_header Route12SuperRodHouse, $5, INDOOR, ROUTE_12, MUSIC_VIRIDIAN_CITY, 0, 1, 1
 
 
 MapGroup19:
-	map_header Route28, $3, 2, ROUTE_28, MUSIC_INDIGO_PLATEAU, 0, 4
-	map_header SilverCaveOutside, $3, 1, SILVER_CAVE, MUSIC_INDIGO_PLATEAU, 0, 4
-	map_header SilverCavePokeCenter1F, $7, 3, SILVER_CAVE, MUSIC_POKEMON_CENTER, 1, 1
-	map_header Route28FamousSpeechHouse, $5, 3, ROUTE_28, MUSIC_AZALEA_TOWN, 1, 1
+	map_header Route28, $3, ROUTE, ROUTE_28, MUSIC_INDIGO_PLATEAU, 0, 0, 4
+	map_header SilverCaveOutside, $3, TOWN, SILVER_CAVE, MUSIC_INDIGO_PLATEAU, 0, 0, 4
+	map_header SilverCavePokeCenter1F, $7, INDOOR, SILVER_CAVE, MUSIC_POKEMON_CENTER, 0, 1, 1
+	map_header Route28FamousSpeechHouse, $5, INDOOR, ROUTE_28, MUSIC_AZALEA_TOWN, 0, 1, 1
 
 
 MapGroup20:
-	map_header PokeCenter2F, $7, 3, SPECIAL_MAP, MUSIC_POKEMON_CENTER, 17, 1
-	map_header TradeCenter, $8, 3, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 17, 1
-	map_header Colosseum, $8, 3, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 17, 1
-	map_header TimeCapsule, $8, 3, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 17, 1
-	map_header MobileTradeRoomMobile, $d, 3, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 17, 1
-	map_header MobileBattleRoom, $d, 3, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 17, 1
+	map_header PokeCenter2F, $7, INDOOR, SPECIAL_MAP, MUSIC_POKEMON_CENTER, 1, 1, 1
+	map_header TradeCenter, $8, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, 1, 1
+	map_header Colosseum, $8, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, 1, 1
+	map_header TimeCapsule, $8, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, 1, 1
+	map_header MobileTradeRoomMobile, $d, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, 1, 1
+	map_header MobileBattleRoom, $d, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, 1, 1
 
 
 MapGroup21:
-	map_header Route7, $3, 2, ROUTE_7, MUSIC_ROUTE_3, 0, 1
-	map_header Route16, $3, 2, ROUTE_16, MUSIC_ROUTE_3, 0, 1
-	map_header Route17, $3, 2, ROUTE_17, MUSIC_ROUTE_3, 0, 0
-	map_header CeladonCity, $3, 1, CELADON_CITY, MUSIC_CELADON_CITY, 0, 0
-	map_header CeladonDeptStore1F, $c, 3, CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
-	map_header CeladonDeptStore2F, $c, 3, CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
-	map_header CeladonDeptStore3F, $c, 3, CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
-	map_header CeladonDeptStore4F, $c, 3, CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
-	map_header CeladonDeptStore5F, $c, 3, CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
-	map_header CeladonDeptStore6F, $c, 3, CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
-	map_header CeladonDeptStoreElevator, $c, 3, CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
-	map_header CeladonMansion1F, $d, 3, CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
-	map_header CeladonMansion2F, $d, 3, CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
-	map_header CeladonMansion3F, $d, 3, CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
-	map_header CeladonMansionRoof, $d, 3, CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
-	map_header CeladonMansionRoofHouse, $5, 3, CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
-	map_header CeladonPokeCenter1F, $7, 3, CELADON_CITY, MUSIC_POKEMON_CENTER, 1, 1
-	map_header CeladonPokeCenter2FBeta, $7, 3, CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
-	map_header CeladonGameCorner, $e, 3, CELADON_CITY, MUSIC_GAME_CORNER, 1, 1
-	map_header CeladonGameCornerPrizeRoom, $e, 3, CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
-	map_header CeladonGym, $11, 3, CELADON_CITY, MUSIC_GYM, 17, 1
-	map_header CeladonCafe, $e, 3, CELADON_CITY, MUSIC_CELADON_CITY, 1, 1
-	map_header Route16FuchsiaSpeechHouse, $5, 3, ROUTE_16, MUSIC_CELADON_CITY, 1, 1
-	map_header Route16Gate, $8, 6, ROUTE_16, MUSIC_ROUTE_3, 1, 1
-	map_header Route7SaffronGate, $8, 6, ROUTE_7, MUSIC_ROUTE_3, 1, 1
-	map_header Route1718Gate, $8, 6, ROUTE_17, MUSIC_ROUTE_3, 1, 1
+	map_header Route7, $3, ROUTE, ROUTE_7, MUSIC_ROUTE_3, 0, 0, 1
+	map_header Route16, $3, ROUTE, ROUTE_16, MUSIC_ROUTE_3, 0, 0, 1
+	map_header Route17, $3, ROUTE, ROUTE_17, MUSIC_ROUTE_3, 0, 0, 0
+	map_header CeladonCity, $3, TOWN, CELADON_CITY, MUSIC_CELADON_CITY, 0, 0, 0
+	map_header CeladonDeptStore1F, $c, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, 1, 1
+	map_header CeladonDeptStore2F, $c, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, 1, 1
+	map_header CeladonDeptStore3F, $c, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, 1, 1
+	map_header CeladonDeptStore4F, $c, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, 1, 1
+	map_header CeladonDeptStore5F, $c, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, 1, 1
+	map_header CeladonDeptStore6F, $c, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, 1, 1
+	map_header CeladonDeptStoreElevator, $c, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, 1, 1
+	map_header CeladonMansion1F, $d, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, 1, 1
+	map_header CeladonMansion2F, $d, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, 1, 1
+	map_header CeladonMansion3F, $d, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, 1, 1
+	map_header CeladonMansionRoof, $d, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, 1, 1
+	map_header CeladonMansionRoofHouse, $5, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, 1, 1
+	map_header CeladonPokeCenter1F, $7, INDOOR, CELADON_CITY, MUSIC_POKEMON_CENTER, 0, 1, 1
+	map_header CeladonPokeCenter2FBeta, $7, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, 1, 1
+	map_header CeladonGameCorner, $e, INDOOR, CELADON_CITY, MUSIC_GAME_CORNER, 0, 1, 1
+	map_header CeladonGameCornerPrizeRoom, $e, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, 1, 1
+	map_header CeladonGym, $11, INDOOR, CELADON_CITY, MUSIC_GYM, 1, 1, 1
+	map_header CeladonCafe, $e, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, 1, 1
+	map_header Route16FuchsiaSpeechHouse, $5, INDOOR, ROUTE_16, MUSIC_CELADON_CITY, 0, 1, 1
+	map_header Route16Gate, $8, GATE, ROUTE_16, MUSIC_ROUTE_3, 0, 1, 1
+	map_header Route7SaffronGate, $8, GATE, ROUTE_7, MUSIC_ROUTE_3, 0, 1, 1
+	map_header Route1718Gate, $8, GATE, ROUTE_17, MUSIC_ROUTE_3, 0, 1, 1
 
 
 MapGroup22:
-	map_header Route40, $1, 2, ROUTE_40, MUSIC_ROUTE_36, 0, 1
-	map_header Route41, $1, 2, ROUTE_41, MUSIC_ROUTE_36, 0, 2
-	map_header CianwoodCity, $1, 1, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, 1
-	map_header ManiasHouse, $5, 3, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 1, 1
-	map_header CianwoodGym, $17, 3, CIANWOOD_CITY, MUSIC_GYM, 17, 1
-	map_header CianwoodPokeCenter1F, $7, 3, CIANWOOD_CITY, MUSIC_POKEMON_CENTER, 1, 1
-	map_header CianwoodPharmacy, $5, 3, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 1, 1
-	map_header CianwoodCityPhotoStudio, $5, 3, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 1, 1
-	map_header CianwoodLugiaSpeechHouse, $5, 3, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 1, 1
-	map_header PokeSeersHouse, $5, 3, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 1, 1
-	map_header BattleTower1F, $16, 3, BATTLE_TOWER, MUSIC_BATTLE_TOWER_LOBBY, 17, 1
-	map_header BattleTowerBattleRoom, $16, 3, BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, 17, 1
-	map_header BattleTowerElevator, $16, 3, BATTLE_TOWER, MUSIC_NONE, 17, 1
-	map_header BattleTowerHallway, $16, 3, BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, 17, 1
-	map_header Route40BattleTowerGate, $8, 6, BATTLE_TOWER, MUSIC_ROUTE_36, 1, 1
-	map_header BattleTowerOutside, $4, 2, BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, 0, 1
+	map_header Route40, $1, ROUTE, ROUTE_40, MUSIC_ROUTE_36, 0, 0, 1
+	map_header Route41, $1, ROUTE, ROUTE_41, MUSIC_ROUTE_36, 0, 0, 2
+	map_header CianwoodCity, $1, TOWN, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, 0, 1
+	map_header ManiasHouse, $5, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, 1, 1
+	map_header CianwoodGym, $17, INDOOR, CIANWOOD_CITY, MUSIC_GYM, 1, 1, 1
+	map_header CianwoodPokeCenter1F, $7, INDOOR, CIANWOOD_CITY, MUSIC_POKEMON_CENTER, 0, 1, 1
+	map_header CianwoodPharmacy, $5, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, 1, 1
+	map_header CianwoodCityPhotoStudio, $5, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, 1, 1
+	map_header CianwoodLugiaSpeechHouse, $5, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, 1, 1
+	map_header PokeSeersHouse, $5, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, 1, 1
+	map_header BattleTower1F, $16, INDOOR, BATTLE_TOWER, MUSIC_BATTLE_TOWER_LOBBY, 1, 1, 1
+	map_header BattleTowerBattleRoom, $16, INDOOR, BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, 1, 1, 1
+	map_header BattleTowerElevator, $16, INDOOR, BATTLE_TOWER, MUSIC_NONE, 1, 1, 1
+	map_header BattleTowerHallway, $16, INDOOR, BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, 1, 1, 1
+	map_header Route40BattleTowerGate, $8, GATE, BATTLE_TOWER, MUSIC_ROUTE_36, 0, 1, 1
+	map_header BattleTowerOutside, $4, ROUTE, BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, 0, 0, 1
 
 
 MapGroup23:
-	map_header Route2, $3, 2, ROUTE_2, MUSIC_ROUTE_2, 0, 1
-	map_header Route22, $3, 2, ROUTE_22, MUSIC_ROUTE_3, 0, 4
-	map_header ViridianCity, $3, 1, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, 4
-	map_header ViridianGym, $11, 3, VIRIDIAN_CITY, MUSIC_GYM, 17, 1
-	map_header ViridianNicknameSpeechHouse, $5, 3, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
-	map_header TrainerHouse1F, $5, 3, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
-	map_header TrainerHouseB1F, $b, 3, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
-	map_header ViridianMart, $c, 3, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
-	map_header ViridianPokeCenter1F, $7, 3, VIRIDIAN_CITY, MUSIC_POKEMON_CENTER, 1, 1
-	map_header ViridianPokeCenter2FBeta, $7, 3, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
-	map_header Route2NuggetSpeechHouse, $5, 3, ROUTE_2, MUSIC_VIRIDIAN_CITY, 1, 1
-	map_header Route2Gate, $8, 6, ROUTE_2, MUSIC_ROUTE_2, 1, 1
-	map_header VictoryRoadGate, $8, 6, ROUTE_26, MUSIC_INDIGO_PLATEAU, 1, 1
+	map_header Route2, $3, ROUTE, ROUTE_2, MUSIC_ROUTE_2, 0, 0, 1
+	map_header Route22, $3, ROUTE, ROUTE_22, MUSIC_ROUTE_3, 0, 0, 4
+	map_header ViridianCity, $3, TOWN, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, 0, 4
+	map_header ViridianGym, $11, INDOOR, VIRIDIAN_CITY, MUSIC_GYM, 1, 1, 1
+	map_header ViridianNicknameSpeechHouse, $5, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, 1, 1
+	map_header TrainerHouse1F, $5, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, 1, 1
+	map_header TrainerHouseB1F, $b, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, 1, 1
+	map_header ViridianMart, $c, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, 1, 1
+	map_header ViridianPokeCenter1F, $7, INDOOR, VIRIDIAN_CITY, MUSIC_POKEMON_CENTER, 0, 1, 1
+	map_header ViridianPokeCenter2FBeta, $7, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, 1, 1
+	map_header Route2NuggetSpeechHouse, $5, INDOOR, ROUTE_2, MUSIC_VIRIDIAN_CITY, 0, 1, 1
+	map_header Route2Gate, $8, GATE, ROUTE_2, MUSIC_ROUTE_2, 0, 1, 1
+	map_header VictoryRoadGate, $8, GATE, ROUTE_26, MUSIC_INDIGO_PLATEAU, 0, 1, 1
 
 
 MapGroup24:
-	map_header Route26, $1, 2, ROUTE_26, MUSIC_ROUTE_26, 0, 2
-	map_header Route27, $1, 2, ROUTE_27, MUSIC_ROUTE_26, 0, 2
-	map_header Route29, $1, 2, ROUTE_29, MUSIC_ROUTE_29, 0, 1
-	map_header NewBarkTown, $1, 1, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, 2
-	map_header ElmsLab, $a, 3, NEW_BARK_TOWN, MUSIC_PROF_ELM, 1, 1
-	map_header KrissHouse1F, $6, 3, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 1, 1
-	map_header KrissHouse2F, $14, 3, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 1, 1
-	map_header KrissNeighborsHouse, $5, 3, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 1, 1
-	map_header ElmsHouse, $6, 3, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 1, 1
-	map_header Route26HealSpeechHouse, $5, 3, ROUTE_26, MUSIC_AZALEA_TOWN, 1, 1
-	map_header Route26DayofWeekSiblingsHouse, $5, 3, ROUTE_26, MUSIC_AZALEA_TOWN, 1, 1
-	map_header Route27SandstormHouse, $5, 3, ROUTE_27, MUSIC_AZALEA_TOWN, 1, 1
-	map_header Route2946Gate, $8, 6, ROUTE_29, MUSIC_ROUTE_29, 1, 1
+	map_header Route26, $1, ROUTE, ROUTE_26, MUSIC_ROUTE_26, 0, 0, 2
+	map_header Route27, $1, ROUTE, ROUTE_27, MUSIC_ROUTE_26, 0, 0, 2
+	map_header Route29, $1, ROUTE, ROUTE_29, MUSIC_ROUTE_29, 0, 0, 1
+	map_header NewBarkTown, $1, TOWN, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, 0, 2
+	map_header ElmsLab, $a, INDOOR, NEW_BARK_TOWN, MUSIC_PROF_ELM, 0, 1, 1
+	map_header KrissHouse1F, $6, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, 1, 1
+	map_header KrissHouse2F, $14, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, 1, 1
+	map_header KrissNeighborsHouse, $5, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, 1, 1
+	map_header ElmsHouse, $6, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, 1, 1
+	map_header Route26HealSpeechHouse, $5, INDOOR, ROUTE_26, MUSIC_AZALEA_TOWN, 0, 1, 1
+	map_header Route26DayofWeekSiblingsHouse, $5, INDOOR, ROUTE_26, MUSIC_AZALEA_TOWN, 0, 1, 1
+	map_header Route27SandstormHouse, $5, INDOOR, ROUTE_27, MUSIC_AZALEA_TOWN, 0, 1, 1
+	map_header Route2946Gate, $8, GATE, ROUTE_29, MUSIC_ROUTE_29, 0, 1, 1
 
 
 MapGroup25:
-	map_header Route5, $3, 2, ROUTE_5, MUSIC_ROUTE_3, 0, 1
-	map_header SaffronCity, $3, 1, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, 1
-	map_header FightingDojo, $11, 3, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
-	map_header SaffronGym, $1c, 3, SAFFRON_CITY, MUSIC_GYM, 17, 1
-	map_header SaffronMart, $c, 3, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
-	map_header SaffronPokeCenter1F, $7, 3, SAFFRON_CITY, MUSIC_POKEMON_CENTER, 1, 1
-	map_header SaffronPokeCenter2FBeta, $7, 3, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
-	map_header MrPsychicsHouse, $5, 3, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
-	map_header SaffronTrainStation, $11, 3, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
-	map_header SilphCo1F, $b, 3, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
-	map_header CopycatsHouse1F, $6, 3, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
-	map_header CopycatsHouse2F, $6, 3, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 1, 1
-	map_header Route5UndergroundEntrance, $8, 6, ROUTE_5, MUSIC_ROUTE_3, 1, 1
-	map_header Route5SaffronCityGate, $8, 6, ROUTE_5, MUSIC_VIRIDIAN_CITY, 1, 1
-	map_header Route5CleanseTagSpeechHouse, $5, 3, ROUTE_5, MUSIC_VIRIDIAN_CITY, 1, 1
+	map_header Route5, $3, ROUTE, ROUTE_5, MUSIC_ROUTE_3, 0, 0, 1
+	map_header SaffronCity, $3, TOWN, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, 0, 1
+	map_header FightingDojo, $11, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, 1, 1
+	map_header SaffronGym, $1c, INDOOR, SAFFRON_CITY, MUSIC_GYM, 1, 1, 1
+	map_header SaffronMart, $c, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, 1, 1
+	map_header SaffronPokeCenter1F, $7, INDOOR, SAFFRON_CITY, MUSIC_POKEMON_CENTER, 0, 1, 1
+	map_header SaffronPokeCenter2FBeta, $7, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, 1, 1
+	map_header MrPsychicsHouse, $5, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, 1, 1
+	map_header SaffronTrainStation, $11, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, 1, 1
+	map_header SilphCo1F, $b, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, 1, 1
+	map_header CopycatsHouse1F, $6, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, 1, 1
+	map_header CopycatsHouse2F, $6, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, 1, 1
+	map_header Route5UndergroundEntrance, $8, GATE, ROUTE_5, MUSIC_ROUTE_3, 0, 1, 1
+	map_header Route5SaffronCityGate, $8, GATE, ROUTE_5, MUSIC_VIRIDIAN_CITY, 0, 1, 1
+	map_header Route5CleanseTagSpeechHouse, $5, INDOOR, ROUTE_5, MUSIC_VIRIDIAN_CITY, 0, 1, 1
 
 
 MapGroup26:
-	map_header Route30, $1, 2, ROUTE_30, MUSIC_ROUTE_30, 0, 4
-	map_header Route31, $1, 2, ROUTE_31, MUSIC_ROUTE_30, 0, 4
-	map_header CherrygroveCity, $1, 1, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, 1
-	map_header CherrygroveMart, $c, 3, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 1, 1
-	map_header CherrygrovePokeCenter1F, $7, 3, CHERRYGROVE_CITY, MUSIC_POKEMON_CENTER, 1, 1
-	map_header CherrygroveGymSpeechHouse, $5, 3, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 1, 1
-	map_header GuideGentsHouse, $5, 3, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 1, 1
-	map_header CherrygroveEvolutionSpeechHouse, $5, 3, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 1, 1
-	map_header Route30BerrySpeechHouse, $5, 3, ROUTE_30, MUSIC_CHERRYGROVE_CITY, 1, 1
-	map_header MrPokemonsHouse, $b, 3, ROUTE_30, MUSIC_CHERRYGROVE_CITY, 1, 1
-	map_header Route31VioletGate, $8, 6, ROUTE_31, MUSIC_ROUTE_30, 1, 1
+	map_header Route30, $1, ROUTE, ROUTE_30, MUSIC_ROUTE_30, 0, 0, 4
+	map_header Route31, $1, ROUTE, ROUTE_31, MUSIC_ROUTE_30, 0, 0, 4
+	map_header CherrygroveCity, $1, TOWN, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, 0, 1
+	map_header CherrygroveMart, $c, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, 1, 1
+	map_header CherrygrovePokeCenter1F, $7, INDOOR, CHERRYGROVE_CITY, MUSIC_POKEMON_CENTER, 0, 1, 1
+	map_header CherrygroveGymSpeechHouse, $5, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, 1, 1
+	map_header GuideGentsHouse, $5, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, 1, 1
+	map_header CherrygroveEvolutionSpeechHouse, $5, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, 1, 1
+	map_header Route30BerrySpeechHouse, $5, INDOOR, ROUTE_30, MUSIC_CHERRYGROVE_CITY, 0, 1, 1
+	map_header MrPokemonsHouse, $b, INDOOR, ROUTE_30, MUSIC_CHERRYGROVE_CITY, 0, 1, 1
+	map_header Route31VioletGate, $8, GATE, ROUTE_31, MUSIC_ROUTE_30, 0, 1, 1
--- a/maps/second_map_headers.asm
+++ b/maps/second_map_headers.asm
@@ -1,599 +1,599 @@
 
-	map_header_2 NewBarkTown, NEW_BARK_TOWN, $5, WEST | EAST ; 0x94dd8
+	map_header_2 NewBarkTown, NEW_BARK_TOWN, $5, WEST | EAST
 	connection west, ROUTE_29, Route29, 0, 0, 9, NEW_BARK_TOWN
 	connection east, ROUTE_27, Route27, 0, 0, 9, NEW_BARK_TOWN
 
-	map_header_2 CherrygroveCity, CHERRYGROVE_CITY, $35, NORTH | EAST ; 0x94dfc
+	map_header_2 CherrygroveCity, CHERRYGROVE_CITY, $35, NORTH | EAST
 	connection north, ROUTE_30, Route30, 5, 0, 10, CHERRYGROVE_CITY
 	connection east, ROUTE_29, Route29, 0, 0, 9, CHERRYGROVE_CITY
 
-	map_header_2 VioletCity, VIOLET_CITY, $5, SOUTH | WEST | EAST ; 0x94e20
+	map_header_2 VioletCity, VIOLET_CITY, $5, SOUTH | WEST | EAST
 	connection south, ROUTE_32, Route32, 0, 0, 10, VIOLET_CITY
 	connection west, ROUTE_36, Route36, 0, 0, 9, VIOLET_CITY
 	connection east, ROUTE_31, Route31, 9, 0, 9, VIOLET_CITY
 
-	map_header_2 AzaleaTown, AZALEA_TOWN, $5, WEST | EAST ; 0x94e50
+	map_header_2 AzaleaTown, AZALEA_TOWN, $5, WEST | EAST
 	connection west, ROUTE_34, Route34, -3, 15, 12, AZALEA_TOWN
 	connection east, ROUTE_33, Route33, 0, 0, 9, AZALEA_TOWN
 
-	map_header_2 CianwoodCity, CIANWOOD_CITY, $35, EAST ; 0x94e74
+	map_header_2 CianwoodCity, CIANWOOD_CITY, $35, EAST
 	connection east, ROUTE_41, Route41, 0, 0, 27, CIANWOOD_CITY
 
-	map_header_2 GoldenrodCity, GOLDENROD_CITY, $35, NORTH | SOUTH ; 0x94e8c
+	map_header_2 GoldenrodCity, GOLDENROD_CITY, $35, NORTH | SOUTH
 	connection north, ROUTE_35, Route35, 5, 0, 10, GOLDENROD_CITY
 	connection south, ROUTE_34, Route34, 5, 0, 10, GOLDENROD_CITY
 
-	map_header_2 OlivineCity, OLIVINE_CITY, $35, NORTH | WEST ; 0x94eb0
+	map_header_2 OlivineCity, OLIVINE_CITY, $35, NORTH | WEST
 	connection north, ROUTE_39, Route39, 5, 0, 10, OLIVINE_CITY
 	connection west, ROUTE_40, Route40, 9, 0, 12, OLIVINE_CITY
 
-	map_header_2 EcruteakCity, ECRUTEAK_CITY, $5, SOUTH | WEST | EAST ; 0x94ed4
+	map_header_2 EcruteakCity, ECRUTEAK_CITY, $5, SOUTH | WEST | EAST
 	connection south, ROUTE_37, Route37, 5, 0, 10, ECRUTEAK_CITY
 	connection west, ROUTE_38, Route38, 5, 0, 9, ECRUTEAK_CITY
 	connection east, ROUTE_42, Route42, 9, 0, 9, ECRUTEAK_CITY
 
-	map_header_2 MahoganyTown, MAHOGANY_TOWN, $71, NORTH | WEST | EAST ; 0x94f04
+	map_header_2 MahoganyTown, MAHOGANY_TOWN, $71, NORTH | WEST | EAST
 	connection north, ROUTE_43, Route43, 0, 0, 10, MAHOGANY_TOWN
 	connection west, ROUTE_42, Route42, 0, 0, 9, MAHOGANY_TOWN
 	connection east, ROUTE_44, Route44, 0, 0, 9, MAHOGANY_TOWN
 
-	map_header_2 LakeofRage, LAKE_OF_RAGE, $5, SOUTH ; 0x94f34
+	map_header_2 LakeofRage, LAKE_OF_RAGE, $5, SOUTH
 	connection south, ROUTE_43, Route43, 5, 0, 10, LAKE_OF_RAGE
 
-	map_header_2 BlackthornCity, BLACKTHORN_CITY, $71, SOUTH | WEST ; 0x94f4c
+	map_header_2 BlackthornCity, BLACKTHORN_CITY, $71, SOUTH | WEST
 	connection south, ROUTE_45, Route45, 0, 0, 10, BLACKTHORN_CITY
 	connection west, ROUTE_44, Route44, 9, 0, 9, BLACKTHORN_CITY
 
-	map_header_2 SilverCaveOutside, SILVER_CAVE_OUTSIDE, $2c, EAST ; 0x94f70
+	map_header_2 SilverCaveOutside, SILVER_CAVE_OUTSIDE, $2c, EAST
 	connection east, ROUTE_28, Route28, 9, 0, 9, SILVER_CAVE_OUTSIDE
 
-	map_header_2 Route26, ROUTE_26, $5, WEST ; 0x94f88
+	map_header_2 Route26, ROUTE_26, $5, WEST
 	connection west, ROUTE_27, Route27, 45, 0, 9, ROUTE_26
 
-	map_header_2 Route27, ROUTE_27, $35, WEST | EAST ; 0x94fa0
+	map_header_2 Route27, ROUTE_27, $35, WEST | EAST
 	connection west, NEW_BARK_TOWN, NewBarkTown, 0, 0, 9, ROUTE_27
 	connection east, ROUTE_26, Route26, -3, 42, 12, ROUTE_27
 
-	map_header_2 Route28, ROUTE_28, $2c, WEST ; 0x94fc4
+	map_header_2 Route28, ROUTE_28, $2c, WEST
 	connection west, SILVER_CAVE_OUTSIDE, SilverCaveOutside, -3, 6, 12, ROUTE_28
 
-	map_header_2 Route29, ROUTE_29, $5, NORTH | WEST | EAST ; 0x94fdc
+	map_header_2 Route29, ROUTE_29, $5, NORTH | WEST | EAST
 	connection north, ROUTE_46, Route46, 10, 0, 10, ROUTE_29
 	connection west, CHERRYGROVE_CITY, CherrygroveCity, 0, 0, 9, ROUTE_29
 	connection east, NEW_BARK_TOWN, NewBarkTown, 0, 0, 9, ROUTE_29
 
-	map_header_2 Route30, ROUTE_30, $5, NORTH | SOUTH ; 0x9500c
+	map_header_2 Route30, ROUTE_30, $5, NORTH | SOUTH
 	connection north, ROUTE_31, Route31, -3, 7, 13, ROUTE_30
 	connection south, CHERRYGROVE_CITY, CherrygroveCity, -3, 2, 16, ROUTE_30
 
-	map_header_2 Route31, ROUTE_31, $5, SOUTH | WEST ; 0x95030
+	map_header_2 Route31, ROUTE_31, $5, SOUTH | WEST
 	connection south, ROUTE_30, Route30, 10, 0, 10, ROUTE_31
 	connection west, VIOLET_CITY, VioletCity, -3, 6, 12, ROUTE_31
 
-	map_header_2 Route32, ROUTE_32, $5, NORTH | SOUTH ; 0x95054
+	map_header_2 Route32, ROUTE_32, $5, NORTH | SOUTH
 	connection north, VIOLET_CITY, VioletCity, 0, 0, 13, ROUTE_32
 	connection south, ROUTE_33, Route33, 0, 0, 10, ROUTE_32
 
-	map_header_2 Route33, ROUTE_33, $5, NORTH | WEST ; 0x95078
+	map_header_2 Route33, ROUTE_33, $5, NORTH | WEST
 	connection north, ROUTE_32, Route32, 0, 0, 10, ROUTE_33
 	connection west, AZALEA_TOWN, AzaleaTown, 0, 0, 9, ROUTE_33
 
-	map_header_2 Route34, ROUTE_34, $5, NORTH | EAST ; 0x9509c
+	map_header_2 Route34, ROUTE_34, $5, NORTH | EAST
 	connection north, GOLDENROD_CITY, GoldenrodCity, -3, 2, 16, ROUTE_34
 	connection east, AZALEA_TOWN, AzaleaTown, 18, 0, 9, ROUTE_34
 
-	map_header_2 Route35, ROUTE_35, $5, NORTH | SOUTH ; 0x950c0
+	map_header_2 Route35, ROUTE_35, $5, NORTH | SOUTH
 	connection north, ROUTE_36, Route36, 0, 0, 13, ROUTE_35
 	connection south, GOLDENROD_CITY, GoldenrodCity, -3, 2, 16, ROUTE_35
 
-	map_header_2 Route36, ROUTE_36, $5, NORTH | SOUTH | EAST ; 0x950e4
+	map_header_2 Route36, ROUTE_36, $5, NORTH | SOUTH | EAST
 	connection north, ROUTE_37, Route37, 10, 0, 10, ROUTE_36
 	connection south, ROUTE_35, Route35, 0, 0, 10, ROUTE_36
 	connection east, VIOLET_CITY, VioletCity, 0, 0, 12, ROUTE_36
 
-	map_header_2 Route37, ROUTE_37, $5, NORTH | SOUTH ; 0x95114
+	map_header_2 Route37, ROUTE_37, $5, NORTH | SOUTH
 	connection north, ECRUTEAK_CITY, EcruteakCity, -3, 2, 16, ROUTE_37
 	connection south, ROUTE_36, Route36, -3, 7, 16, ROUTE_37
 
-	map_header_2 Route38, ROUTE_38, $5, WEST | EAST ; 0x95138
+	map_header_2 Route38, ROUTE_38, $5, WEST | EAST
 	connection west, ROUTE_39, Route39, 0, 0, 12, ROUTE_38
 	connection east, ECRUTEAK_CITY, EcruteakCity, -3, 2, 15, ROUTE_38
 
-	map_header_2 Route39, ROUTE_39, $5, SOUTH | EAST ; 0x9515c
+	map_header_2 Route39, ROUTE_39, $5, SOUTH | EAST
 	connection south, OLIVINE_CITY, OlivineCity, -3, 2, 16, ROUTE_39
 	connection east, ROUTE_38, Route38, 0, 0, 9, ROUTE_39
 
-	map_header_2 Route40, ROUTE_40, $35, SOUTH | EAST ; 0x95180
+	map_header_2 Route40, ROUTE_40, $35, SOUTH | EAST
 	connection south, ROUTE_41, Route41, -3, 12, 13, ROUTE_40
 	connection east, OLIVINE_CITY, OlivineCity, -3, 6, 12, ROUTE_40
 
-	map_header_2 Route41, ROUTE_41, $35, NORTH | WEST ; 0x951a4
+	map_header_2 Route41, ROUTE_41, $35, NORTH | WEST
 	connection north, ROUTE_40, Route40, 15, 0, 10, ROUTE_41
 	connection west, CIANWOOD_CITY, CianwoodCity, 0, 0, 27, ROUTE_41
 
-	map_header_2 Route42, ROUTE_42, $5, WEST | EAST ; 0x951c8
+	map_header_2 Route42, ROUTE_42, $5, WEST | EAST
 	connection west, ECRUTEAK_CITY, EcruteakCity, -3, 6, 12, ROUTE_42
 	connection east, MAHOGANY_TOWN, MahoganyTown, 0, 0, 9, ROUTE_42
 
-	map_header_2 Route43, ROUTE_43, $5, NORTH | SOUTH ; 0x951ec
+	map_header_2 Route43, ROUTE_43, $5, NORTH | SOUTH
 	connection north, LAKE_OF_RAGE, LakeofRage, -3, 2, 16, ROUTE_43
 	connection south, MAHOGANY_TOWN, MahoganyTown, 0, 0, 10, ROUTE_43
 
-	map_header_2 Route44, ROUTE_44, $71, WEST | EAST ; 0x95210
+	map_header_2 Route44, ROUTE_44, $71, WEST | EAST
 	connection west, MAHOGANY_TOWN, MahoganyTown, 0, 0, 9, ROUTE_44
 	connection east, BLACKTHORN_CITY, BlackthornCity, -3, 6, 12, ROUTE_44
 
-	map_header_2 Route45, ROUTE_45, $71, NORTH | WEST ; 0x95234
+	map_header_2 Route45, ROUTE_45, $71, NORTH | WEST
 	connection north, BLACKTHORN_CITY, BlackthornCity, 0, 0, 13, ROUTE_45
 	connection west, ROUTE_46, Route46, 36, 0, 12, ROUTE_45
 
-	map_header_2 Route46, ROUTE_46, $5, SOUTH | EAST ; 0x95258
+	map_header_2 Route46, ROUTE_46, $5, SOUTH | EAST
 	connection south, ROUTE_29, Route29, -3, 7, 16, ROUTE_46
 	connection east, ROUTE_45, Route45, -3, 33, 12, ROUTE_46
 
-	map_header_2 PewterCity, PEWTER_CITY, $f, SOUTH | EAST ; 0x9527c
+	map_header_2 PewterCity, PEWTER_CITY, $f, SOUTH | EAST
 	connection south, ROUTE_2, Route2, 5, 0, 10, PEWTER_CITY
 	connection east, ROUTE_3, Route3, 5, 0, 9, PEWTER_CITY
 
-	map_header_2 Route2, ROUTE_2, $f, NORTH | SOUTH ; 0x952a0
+	map_header_2 Route2, ROUTE_2, $f, NORTH | SOUTH
 	connection north, PEWTER_CITY, PewterCity, -3, 2, 16, ROUTE_2
 	connection south, VIRIDIAN_CITY, ViridianCity, -3, 2, 16, ROUTE_2
 
-	map_header_2 ViridianCity, VIRIDIAN_CITY, $f, NORTH | SOUTH | WEST ; 0x952c4
+	map_header_2 ViridianCity, VIRIDIAN_CITY, $f, NORTH | SOUTH | WEST
 	connection north, ROUTE_2, Route2, 5, 0, 10, VIRIDIAN_CITY
 	connection south, ROUTE_1, Route1, 10, 0, 10, VIRIDIAN_CITY
 	connection west, ROUTE_22, Route22, 4, 0, 9, VIRIDIAN_CITY
 
-	map_header_2 Route22, ROUTE_22, $2c, EAST ; 0x952f4
+	map_header_2 Route22, ROUTE_22, $2c, EAST
 	connection east, VIRIDIAN_CITY, ViridianCity, -3, 1, 15, ROUTE_22
 
-	map_header_2 Route1, ROUTE_1, $f, NORTH | SOUTH ; 0x9530c
+	map_header_2 Route1, ROUTE_1, $f, NORTH | SOUTH
 	connection north, VIRIDIAN_CITY, ViridianCity, -3, 7, 13, ROUTE_1
 	connection south, PALLET_TOWN, PalletTown, 0, 0, 10, ROUTE_1
 
-	map_header_2 PalletTown, PALLET_TOWN, $f, NORTH | SOUTH ; 0x95330
+	map_header_2 PalletTown, PALLET_TOWN, $f, NORTH | SOUTH
 	connection north, ROUTE_1, Route1, 0, 0, 10, PALLET_TOWN
 	connection south, ROUTE_21, Route21, 0, 0, 10, PALLET_TOWN
 
-	map_header_2 Route21, ROUTE_21, $43, NORTH | SOUTH ; 0x95354
+	map_header_2 Route21, ROUTE_21, $43, NORTH | SOUTH
 	connection north, PALLET_TOWN, PalletTown, 0, 0, 10, ROUTE_21
 	connection south, CINNABAR_ISLAND, CinnabarIsland, 0, 0, 10, ROUTE_21
 
-	map_header_2 CinnabarIsland, CINNABAR_ISLAND, $43, NORTH | EAST ; 0x95378
+	map_header_2 CinnabarIsland, CINNABAR_ISLAND, $43, NORTH | EAST
 	connection north, ROUTE_21, Route21, 0, 0, 10, CINNABAR_ISLAND
 	connection east, ROUTE_20, Route20, 0, 0, 9, CINNABAR_ISLAND
 
-	map_header_2 Route20, ROUTE_20, $43, WEST | EAST ; 0x9539c
+	map_header_2 Route20, ROUTE_20, $43, WEST | EAST
 	connection west, CINNABAR_ISLAND, CinnabarIsland, 0, 0, 9, ROUTE_20
 	connection east, ROUTE_19, Route19, -3, 6, 12, ROUTE_20
 
-	map_header_2 Route19, ROUTE_19, $43, NORTH | WEST ; 0x953c0
+	map_header_2 Route19, ROUTE_19, $43, NORTH | WEST
 	connection north, FUCHSIA_CITY, FuchsiaCity, 0, 0, 13, ROUTE_19
 	connection west, ROUTE_20, Route20, 9, 0, 9, ROUTE_19
 
-	map_header_2 FuchsiaCity, FUCHSIA_CITY, $f, SOUTH | WEST | EAST ; 0x953e4
+	map_header_2 FuchsiaCity, FUCHSIA_CITY, $f, SOUTH | WEST | EAST
 	connection south, ROUTE_19, Route19, 0, 0, 10, FUCHSIA_CITY
 	connection west, ROUTE_18, Route18, 7, 0, 9, FUCHSIA_CITY
 	connection east, ROUTE_15, Route15, 9, 0, 9, FUCHSIA_CITY
 
-	map_header_2 Route18, ROUTE_18, $43, WEST | EAST ; 0x95414
+	map_header_2 Route18, ROUTE_18, $43, WEST | EAST
 	connection west, ROUTE_17, Route17, -3, 35, 10, ROUTE_18
 	connection east, FUCHSIA_CITY, FuchsiaCity, -3, 4, 14, ROUTE_18
 
-	map_header_2 Route17, ROUTE_17, $43, NORTH | EAST ; 0x95438
+	map_header_2 Route17, ROUTE_17, $43, NORTH | EAST
 	connection north, ROUTE_16, Route16, 0, 0, 10, ROUTE_17
 	connection east, ROUTE_18, Route18, 38, 0, 9, ROUTE_17
 
-	map_header_2 Route16, ROUTE_16, $f, SOUTH | EAST ; 0x9545c
+	map_header_2 Route16, ROUTE_16, $f, SOUTH | EAST
 	connection south, ROUTE_17, Route17, 0, 0, 10, ROUTE_16
 	connection east, CELADON_CITY, CeladonCity, -3, 6, 12, ROUTE_16
 
-	map_header_2 CeladonCity, CELADON_CITY, $f, WEST | EAST ; 0x95480
+	map_header_2 CeladonCity, CELADON_CITY, $f, WEST | EAST
 	connection west, ROUTE_16, Route16, 9, 0, 9, CELADON_CITY
 	connection east, ROUTE_7, Route7, 5, 0, 9, CELADON_CITY
 
-	map_header_2 Route7, ROUTE_7, $f, WEST | EAST ; 0x954a4
+	map_header_2 Route7, ROUTE_7, $f, WEST | EAST
 	connection west, CELADON_CITY, CeladonCity, -3, 2, 15, ROUTE_7
 	connection east, SAFFRON_CITY, SaffronCity, -3, 6, 12, ROUTE_7
 
-	map_header_2 Route15, ROUTE_15, $f, WEST | EAST ; 0x954c8
+	map_header_2 Route15, ROUTE_15, $f, WEST | EAST
 	connection west, FUCHSIA_CITY, FuchsiaCity, -3, 6, 12, ROUTE_15
 	connection east, ROUTE_14, Route14, -3, 6, 12, ROUTE_15
 
-	map_header_2 Route14, ROUTE_14, $43, NORTH | WEST ; 0x954ec
+	map_header_2 Route14, ROUTE_14, $43, NORTH | WEST
 	connection north, ROUTE_13, Route13, 0, 0, 13, ROUTE_14
 	connection west, ROUTE_15, Route15, 9, 0, 9, ROUTE_14
 
-	map_header_2 Route13, ROUTE_13, $43, NORTH | SOUTH ; 0x95510
+	map_header_2 Route13, ROUTE_13, $43, NORTH | SOUTH
 	connection north, ROUTE_12, Route12, 20, 0, 10, ROUTE_13
 	connection south, ROUTE_14, Route14, 0, 0, 10, ROUTE_13
 
-	map_header_2 Route12, ROUTE_12, $43, NORTH | SOUTH | WEST ; 0x95534
+	map_header_2 Route12, ROUTE_12, $43, NORTH | SOUTH | WEST
 	connection north, LAVENDER_TOWN, LavenderTown, 0, 0, 10, ROUTE_12
 	connection south, ROUTE_13, Route13, -3, 17, 13, ROUTE_12
 	connection west, ROUTE_11, Route11, 9, 0, 9, ROUTE_12
 
-	map_header_2 Route11, ROUTE_11, $f, WEST | EAST ; 0x95564
+	map_header_2 Route11, ROUTE_11, $f, WEST | EAST
 	connection west, VERMILION_CITY, VermilionCity, 0, 0, 12, ROUTE_11
 	connection east, ROUTE_12, Route12, -3, 6, 15, ROUTE_11
 
-	map_header_2 LavenderTown, LAVENDER_TOWN, $2c, NORTH | SOUTH | WEST ; 0x95588
+	map_header_2 LavenderTown, LAVENDER_TOWN, $2c, NORTH | SOUTH | WEST
 	connection north, ROUTE_10_SOUTH, Route10South, 0, 0, 10, LAVENDER_TOWN
 	connection south, ROUTE_12, Route12, 0, 0, 10, LAVENDER_TOWN
 	connection west, ROUTE_8, Route8, 0, 0, 9, LAVENDER_TOWN
 
-	map_header_2 VermilionCity, VERMILION_CITY, $43, NORTH | EAST ; 0x955b8
+	map_header_2 VermilionCity, VERMILION_CITY, $43, NORTH | EAST
 	connection north, ROUTE_6, Route6, 5, 0, 10, VERMILION_CITY
 	connection east, ROUTE_11, Route11, 0, 0, 9, VERMILION_CITY
 
-	map_header_2 Route6, ROUTE_6, $f, NORTH | SOUTH ; 0x955dc
+	map_header_2 Route6, ROUTE_6, $f, NORTH | SOUTH
 	connection north, SAFFRON_CITY, SaffronCity, -3, 2, 16, ROUTE_6
 	connection south, VERMILION_CITY, VermilionCity, -3, 2, 16, ROUTE_6
 
-	map_header_2 SaffronCity, SAFFRON_CITY, $f, NORTH | SOUTH | WEST | EAST ; 0x95600
+	map_header_2 SaffronCity, SAFFRON_CITY, $f, NORTH | SOUTH | WEST | EAST
 	connection north, ROUTE_5, Route5, 5, 0, 10, SAFFRON_CITY
 	connection south, ROUTE_6, Route6, 5, 0, 10, SAFFRON_CITY
 	connection west, ROUTE_7, Route7, 9, 0, 9, SAFFRON_CITY
 	connection east, ROUTE_8, Route8, 9, 0, 9, SAFFRON_CITY
 
-	map_header_2 Route5, ROUTE_5, $f, NORTH | SOUTH ; 0x9563c
+	map_header_2 Route5, ROUTE_5, $f, NORTH | SOUTH
 	connection north, CERULEAN_CITY, CeruleanCity, -3, 2, 16, ROUTE_5
 	connection south, SAFFRON_CITY, SaffronCity, -3, 2, 16, ROUTE_5
 
-	map_header_2 CeruleanCity, CERULEAN_CITY, $f, NORTH | SOUTH | WEST | EAST ; 0x95660
+	map_header_2 CeruleanCity, CERULEAN_CITY, $f, NORTH | SOUTH | WEST | EAST
 	connection north, ROUTE_24, Route24, 6, 0, 10, CERULEAN_CITY
 	connection south, ROUTE_5, Route5, 5, 0, 10, CERULEAN_CITY
 	connection west, ROUTE_4, Route4, 5, 0, 9, CERULEAN_CITY
 	connection east, ROUTE_9, Route9, 9, 0, 9, CERULEAN_CITY
 
-	map_header_2 Route9, ROUTE_9, $2c, SOUTH | WEST ; 0x9569c
+	map_header_2 Route9, ROUTE_9, $2c, SOUTH | WEST
 	connection south, ROUTE_10_NORTH, Route10North, 20, 0, 10, ROUTE_9
 	connection west, CERULEAN_CITY, CeruleanCity, -3, 6, 12, ROUTE_9
 
-	map_header_2 Route24, ROUTE_24, $2c, NORTH | SOUTH ; 0x956c0
+	map_header_2 Route24, ROUTE_24, $2c, NORTH | SOUTH
 	connection north, ROUTE_25, Route25, 0, 0, 13, ROUTE_24
 	connection south, CERULEAN_CITY, CeruleanCity, -3, 3, 16, ROUTE_24
 
-	map_header_2 Route25, ROUTE_25, $2c, SOUTH ; 0x956e4
+	map_header_2 Route25, ROUTE_25, $2c, SOUTH
 	connection south, ROUTE_24, Route24, 0, 0, 10, ROUTE_25
 
-	map_header_2 Route3, ROUTE_3, $2c, WEST | EAST ; 0x956fc
+	map_header_2 Route3, ROUTE_3, $2c, WEST | EAST
 	connection west, PEWTER_CITY, PewterCity, -3, 2, 15, ROUTE_3
 	connection east, ROUTE_4, Route4, 0, 0, 9, ROUTE_3
 
-	map_header_2 Route4, ROUTE_4, $2c, WEST | EAST ; 0x95720
+	map_header_2 Route4, ROUTE_4, $2c, WEST | EAST
 	connection west, ROUTE_3, Route3, 0, 0, 9, ROUTE_4
 	connection east, CERULEAN_CITY, CeruleanCity, -3, 2, 15, ROUTE_4
 
-	map_header_2 Route8, ROUTE_8, $2c, WEST | EAST ; 0x95744
+	map_header_2 Route8, ROUTE_8, $2c, WEST | EAST
 	connection west, SAFFRON_CITY, SaffronCity, -3, 6, 12, ROUTE_8
 	connection east, LAVENDER_TOWN, LavenderTown, 0, 0, 9, ROUTE_8
 
-	map_header_2 Route10North, ROUTE_10_NORTH, $2c, NORTH | SOUTH ; 0x95768
+	map_header_2 Route10North, ROUTE_10_NORTH, $2c, NORTH | SOUTH
 	connection north, ROUTE_9, Route9, -3, 17, 13, ROUTE_10_NORTH
 	connection south, ROUTE_10_SOUTH, Route10South, 0, 0, 10, ROUTE_10_NORTH
 
-	map_header_2 Route10South, ROUTE_10_SOUTH, $2c, NORTH | SOUTH ; 0x9578c
+	map_header_2 Route10South, ROUTE_10_SOUTH, $2c, NORTH | SOUTH
 	connection north, ROUTE_10_NORTH, Route10North, 0, 0, 10, ROUTE_10_SOUTH
 	connection south, LAVENDER_TOWN, LavenderTown, 0, 0, 10, ROUTE_10_SOUTH
 
-	map_header_2 Route23, ROUTE_23, $f, NONE ; 0x957b0
-	map_header_2 SproutTower1F, SPROUT_TOWER_1F, $0, NONE ; 0x957bc
-	map_header_2 SproutTower2F, SPROUT_TOWER_2F, $0, NONE ; 0x957c8
-	map_header_2 SproutTower3F, SPROUT_TOWER_3F, $0, NONE ; 0x957d4
-	map_header_2 TinTower1F, TIN_TOWER_1F, $0, NONE ; 0x957e0
-	map_header_2 TinTower2F, TIN_TOWER_2F, $0, NONE ; 0x957ec
-	map_header_2 TinTower3F, TIN_TOWER_3F, $0, NONE ; 0x957f8
-	map_header_2 TinTower4F, TIN_TOWER_4F, $0, NONE ; 0x95804
-	map_header_2 TinTower5F, TIN_TOWER_5F, $0, NONE ; 0x95810
-	map_header_2 TinTower6F, TIN_TOWER_6F, $0, NONE ; 0x9581c
-	map_header_2 TinTower7F, TIN_TOWER_7F, $0, NONE ; 0x95828
-	map_header_2 TinTower8F, TIN_TOWER_8F, $0, NONE ; 0x95834
-	map_header_2 TinTower9F, TIN_TOWER_9F, $0, NONE ; 0x95840
-	map_header_2 BurnedTower1F, BURNED_TOWER_1F, $0, NONE ; 0x9584c
-	map_header_2 BurnedTowerB1F, BURNED_TOWER_B1F, $9, NONE ; 0x95858
-	map_header_2 NationalPark, NATIONAL_PARK, $0, NONE ; 0x95864
-	map_header_2 NationalParkBugContest, NATIONAL_PARK_BUG_CONTEST, $0, NONE ; 0x95870
-	map_header_2 RadioTower1F, RADIO_TOWER_1F, $0, NONE ; 0x9587c
-	map_header_2 RadioTower2F, RADIO_TOWER_2F, $0, NONE ; 0x95888
-	map_header_2 RadioTower3F, RADIO_TOWER_3F, $0, NONE ; 0x95894
-	map_header_2 RadioTower4F, RADIO_TOWER_4F, $0, NONE ; 0x958a0
-	map_header_2 RadioTower5F, RADIO_TOWER_5F, $0, NONE ; 0x958ac
-	map_header_2 RuinsofAlphOutside, RUINS_OF_ALPH_OUTSIDE, $5, NONE ; 0x958b8
-	map_header_2 RuinsofAlphHoOhChamber, RUINS_OF_ALPH_HO_OH_CHAMBER, $0, NONE ; 0x958c4
-	map_header_2 RuinsofAlphKabutoChamber, RUINS_OF_ALPH_KABUTO_CHAMBER, $0, NONE ; 0x958d0
-	map_header_2 RuinsofAlphOmanyteChamber, RUINS_OF_ALPH_OMANYTE_CHAMBER, $0, NONE ; 0x958dc
-	map_header_2 RuinsofAlphAerodactylChamber, RUINS_OF_ALPH_AERODACTYL_CHAMBER, $0, NONE ; 0x958e8
-	map_header_2 RuinsofAlphInnerChamber, RUINS_OF_ALPH_INNER_CHAMBER, $0, NONE ; 0x958f4
-	map_header_2 RuinsofAlphResearchCenter, RUINS_OF_ALPH_RESEARCH_CENTER, $0, NONE ; 0x95900
-	map_header_2 RuinsofAlphHoOhItemRoom, RUINS_OF_ALPH_HO_OH_ITEM_ROOM, $0, NONE ; 0x9590c
-	map_header_2 RuinsofAlphKabutoItemRoom, RUINS_OF_ALPH_KABUTO_ITEM_ROOM, $0, NONE ; 0x95918
-	map_header_2 RuinsofAlphOmanyteItemRoom, RUINS_OF_ALPH_OMANYTE_ITEM_ROOM, $0, NONE ; 0x95924
-	map_header_2 RuinsofAlphAerodactylItemRoom, RUINS_OF_ALPH_AERODACTYL_ITEM_ROOM, $0, NONE ; 0x95930
-	map_header_2 RuinsofAlphHoOhWordRoom, RUINS_OF_ALPH_HO_OH_WORD_ROOM, $0, NONE ; 0x9593c
-	map_header_2 RuinsofAlphKabutoWordRoom, RUINS_OF_ALPH_KABUTO_WORD_ROOM, $0, NONE ; 0x95948
-	map_header_2 RuinsofAlphOmanyteWordRoom, RUINS_OF_ALPH_OMANYTE_WORD_ROOM, $0, NONE ; 0x95954
-	map_header_2 RuinsofAlphAerodactylWordRoom, RUINS_OF_ALPH_AERODACTYL_WORD_ROOM, $0, NONE ; 0x95960
-	map_header_2 UnionCave1F, UNION_CAVE_1F, $9, NONE ; 0x9596c
-	map_header_2 UnionCaveB1F, UNION_CAVE_B1F, $9, NONE ; 0x95978
-	map_header_2 UnionCaveB2F, UNION_CAVE_B2F, $9, NONE ; 0x95984
-	map_header_2 SlowpokeWellB1F, SLOWPOKE_WELL_B1F, $9, NONE ; 0x95990
-	map_header_2 SlowpokeWellB2F, SLOWPOKE_WELL_B2F, $9, NONE ; 0x9599c
-	map_header_2 OlivineLighthouse1F, OLIVINE_LIGHTHOUSE_1F, $0, NONE ; 0x959a8
-	map_header_2 OlivineLighthouse2F, OLIVINE_LIGHTHOUSE_2F, $0, NONE ; 0x959b4
-	map_header_2 OlivineLighthouse3F, OLIVINE_LIGHTHOUSE_3F, $0, NONE ; 0x959c0
-	map_header_2 OlivineLighthouse4F, OLIVINE_LIGHTHOUSE_4F, $0, NONE ; 0x959cc
-	map_header_2 OlivineLighthouse5F, OLIVINE_LIGHTHOUSE_5F, $0, NONE ; 0x959d8
-	map_header_2 OlivineLighthouse6F, OLIVINE_LIGHTHOUSE_6F, $0, NONE ; 0x959e4
-	map_header_2 MahoganyMart1F, MAHOGANY_MART_1F, $0, NONE ; 0x959f0
-	map_header_2 TeamRocketBaseB1F, TEAM_ROCKET_BASE_B1F, $0, NONE ; 0x959fc
-	map_header_2 TeamRocketBaseB2F, TEAM_ROCKET_BASE_B2F, $0, NONE ; 0x95a08
-	map_header_2 TeamRocketBaseB3F, TEAM_ROCKET_BASE_B3F, $0, NONE ; 0x95a14
-	map_header_2 IlexForest, ILEX_FOREST, $5, NONE ; 0x95a20
-	map_header_2 WarehouseEntrance, WAREHOUSE_ENTRANCE, $0, NONE ; 0x95a2c
-	map_header_2 UndergroundPathSwitchRoomEntrances, UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES, $0, NONE ; 0x95a38
-	map_header_2 GoldenrodDeptStoreB1F, GOLDENROD_DEPT_STORE_B1F, $0, NONE ; 0x95a44
-	map_header_2 UndergroundWarehouse, UNDERGROUND_WAREHOUSE, $0, NONE ; 0x95a50
-	map_header_2 MountMortar1FOutside, MOUNT_MORTAR_1F_OUTSIDE, $9, NONE ; 0x95a5c
-	map_header_2 MountMortar1FInside, MOUNT_MORTAR_1F_INSIDE, $9, NONE ; 0x95a68
-	map_header_2 MountMortar2FInside, MOUNT_MORTAR_2F_INSIDE, $9, NONE ; 0x95a74
-	map_header_2 MountMortarB1F, MOUNT_MORTAR_B1F, $9, NONE ; 0x95a80
-	map_header_2 IcePath1F, ICE_PATH_1F, $9, NONE ; 0x95a8c
-	map_header_2 IcePathB1F, ICE_PATH_B1F, $19, NONE ; 0x95a98
-	map_header_2 IcePathB2FMahoganySide, ICE_PATH_B2F_MAHOGANY_SIDE, $19, NONE ; 0x95aa4
-	map_header_2 IcePathB2FBlackthornSide, ICE_PATH_B2F_BLACKTHORN_SIDE, $19, NONE ; 0x95ab0
-	map_header_2 IcePathB3F, ICE_PATH_B3F, $19, NONE ; 0x95abc
-	map_header_2 WhirlIslandNW, WHIRL_ISLAND_NW, $9, NONE ; 0x95ac8
-	map_header_2 WhirlIslandNE, WHIRL_ISLAND_NE, $9, NONE ; 0x95ad4
-	map_header_2 WhirlIslandSW, WHIRL_ISLAND_SW, $9, NONE ; 0x95ae0
-	map_header_2 WhirlIslandCave, WHIRL_ISLAND_CAVE, $9, NONE ; 0x95aec
-	map_header_2 WhirlIslandSE, WHIRL_ISLAND_SE, $f, NONE ; 0x95af8
-	map_header_2 WhirlIslandB1F, WHIRL_ISLAND_B1F, $9, NONE ; 0x95b04
-	map_header_2 WhirlIslandB2F, WHIRL_ISLAND_B2F, $2e, NONE ; 0x95b10
-	map_header_2 WhirlIslandLugiaChamber, WHIRL_ISLAND_LUGIA_CHAMBER, $f, NONE ; 0x95b1c
-	map_header_2 SilverCaveRoom1, SILVER_CAVE_ROOM_1, $9, NONE ; 0x95b28
-	map_header_2 SilverCaveRoom2, SILVER_CAVE_ROOM_2, $9, NONE ; 0x95b34
-	map_header_2 SilverCaveRoom3, SILVER_CAVE_ROOM_3, $9, NONE ; 0x95b40
-	map_header_2 SilverCaveItemRooms, SILVER_CAVE_ITEM_ROOMS, $9, NONE ; 0x95b4c
-	map_header_2 DarkCaveVioletEntrance, DARK_CAVE_VIOLET_ENTRANCE, $9, NONE ; 0x95b58
-	map_header_2 DarkCaveBlackthornEntrance, DARK_CAVE_BLACKTHORN_ENTRANCE, $9, NONE ; 0x95b64
-	map_header_2 DragonsDen1F, DRAGONS_DEN_1F, $9, NONE ; 0x95b70
-	map_header_2 DragonsDenB1F, DRAGONS_DEN_B1F, $71, NONE ; 0x95b7c
-	map_header_2 DragonShrine, DRAGON_SHRINE, $0, NONE ; 0x95b88
-	map_header_2 TohjoFalls, TOHJO_FALLS, $9, NONE ; 0x95b94
-	map_header_2 OlivinePokeCenter1F, OLIVINE_POKECENTER_1F, $0, NONE ; 0x95ba0
-	map_header_2 OlivineGym, OLIVINE_GYM, $0, NONE ; 0x95bac
-	map_header_2 OlivineVoltorbHouse, OLIVINE_VOLTORB_HOUSE, $0, NONE ; 0x95bb8
-	map_header_2 OlivineHouseBeta, OLIVINE_HOUSE_BETA, $0, NONE ; 0x95bc4
-	map_header_2 OlivinePunishmentSpeechHouse, OLIVINE_PUNISHMENT_SPEECH_HOUSE, $0, NONE ; 0x95bd0
-	map_header_2 OlivineGoodRodHouse, OLIVINE_GOOD_ROD_HOUSE, $0, NONE ; 0x95bdc
-	map_header_2 OlivineCafe, OLIVINE_CAFE, $0, NONE ; 0x95be8
-	map_header_2 OlivineMart, OLIVINE_MART, $0, NONE ; 0x95bf4
-	map_header_2 Route38EcruteakGate, ROUTE_38_ECRUTEAK_GATE, $0, NONE ; 0x95c00
-	map_header_2 Route39Barn, ROUTE_39_BARN, $0, NONE ; 0x95c0c
-	map_header_2 Route39Farmhouse, ROUTE_39_FARMHOUSE, $0, NONE ; 0x95c18
-	map_header_2 MahoganyRedGyaradosSpeechHouse, MAHOGANY_RED_GYARADOS_SPEECH_HOUSE, $0, NONE ; 0x95c24
-	map_header_2 MahoganyGym, MAHOGANY_GYM, $0, NONE ; 0x95c30
-	map_header_2 MahoganyPokeCenter1F, MAHOGANY_POKECENTER_1F, $0, NONE ; 0x95c3c
-	map_header_2 Route42EcruteakGate, ROUTE_42_ECRUTEAK_GATE, $0, NONE ; 0x95c48
-	map_header_2 DiglettsCave, DIGLETTS_CAVE, $9, NONE ; 0x95c54
-	map_header_2 MountMoon, MOUNT_MOON, $9, NONE ; 0x95c60
-	map_header_2 Underground, UNDERGROUND, $0, NONE ; 0x95c6c
-	map_header_2 RockTunnel1F, ROCK_TUNNEL_1F, $9, NONE ; 0x95c78
-	map_header_2 RockTunnelB1F, ROCK_TUNNEL_B1F, $9, NONE ; 0x95c84
-	map_header_2 SafariZoneFuchsiaGateBeta, SAFARI_ZONE_FUCHSIA_GATE_BETA, $0, NONE ; 0x95c90
-	map_header_2 SafariZoneBeta, SAFARI_ZONE_BETA, $13, NONE ; 0x95c9c
-	map_header_2 VictoryRoad, VICTORY_ROAD, $1d, NONE ; 0x95ca8
-	map_header_2 EcruteakHouse, ECRUTEAK_HOUSE, $0, NONE ; 0x95cb4
-	map_header_2 WiseTriosRoom, WISE_TRIOS_ROOM, $0, NONE ; 0x95cc0
-	map_header_2 EcruteakPokeCenter1F, ECRUTEAK_POKECENTER_1F, $0, NONE ; 0x95ccc
-	map_header_2 EcruteakLugiaSpeechHouse, ECRUTEAK_LUGIA_SPEECH_HOUSE, $0, NONE ; 0x95cd8
-	map_header_2 DanceTheatre, DANCE_THEATRE, $0, NONE ; 0x95ce4
-	map_header_2 EcruteakMart, ECRUTEAK_MART, $0, NONE ; 0x95cf0
-	map_header_2 EcruteakGym, ECRUTEAK_GYM, $0, NONE ; 0x95cfc
-	map_header_2 EcruteakItemfinderHouse, ECRUTEAK_ITEMFINDER_HOUSE, $0, NONE ; 0x95d08
-	map_header_2 BlackthornGym1F, BLACKTHORN_GYM_1F, $0, NONE ; 0x95d14
-	map_header_2 BlackthornGym2F, BLACKTHORN_GYM_2F, $0, NONE ; 0x95d20
-	map_header_2 BlackthornDragonSpeechHouse, BLACKTHORN_DRAGON_SPEECH_HOUSE, $0, NONE ; 0x95d2c
-	map_header_2 BlackthornDodrioTradeHouse, BLACKTHORN_DODRIO_TRADE_HOUSE, $0, NONE ; 0x95d38
-	map_header_2 BlackthornMart, BLACKTHORN_MART, $0, NONE ; 0x95d44
-	map_header_2 BlackthornPokeCenter1F, BLACKTHORN_POKECENTER_1F, $0, NONE ; 0x95d50
-	map_header_2 MoveDeletersHouse, MOVE_DELETERS_HOUSE, $0, NONE ; 0x95d5c
-	map_header_2 CinnabarPokeCenter1F, CINNABAR_POKECENTER_1F, $0, NONE ; 0x95d68
-	map_header_2 CinnabarPokeCenter2FBeta, CINNABAR_POKECENTER_2F_BETA, $0, NONE ; 0x95d74
-	map_header_2 Route19FuchsiaGate, ROUTE_19___FUCHSIA_GATE, $0, NONE ; 0x95d80
-	map_header_2 SeafoamGym, SEAFOAM_GYM, $9, NONE ; 0x95d8c
-	map_header_2 CeruleanGymBadgeSpeechHouse, CERULEAN_GYM_BADGE_SPEECH_HOUSE, $0, NONE ; 0x95d98
-	map_header_2 CeruleanPoliceStation, CERULEAN_POLICE_STATION, $0, NONE ; 0x95da4
-	map_header_2 CeruleanTradeSpeechHouse, CERULEAN_TRADE_SPEECH_HOUSE, $0, NONE ; 0x95db0
-	map_header_2 CeruleanPokeCenter1F, CERULEAN_POKECENTER_1F, $0, NONE ; 0x95dbc
-	map_header_2 CeruleanPokeCenter2FBeta, CERULEAN_POKECENTER_2F_BETA, $0, NONE ; 0x95dc8
-	map_header_2 CeruleanGym, CERULEAN_GYM, $0, NONE ; 0x95dd4
-	map_header_2 CeruleanMart, CERULEAN_MART, $0, NONE ; 0x95de0
-	map_header_2 Route10PokeCenter1F, ROUTE_10_POKECENTER_1F, $0, NONE ; 0x95dec
-	map_header_2 Route10PokeCenter2FBeta, ROUTE_10_POKECENTER_2F_BETA, $0, NONE ; 0x95df8
-	map_header_2 PowerPlant, POWER_PLANT, $0, NONE ; 0x95e04
-	map_header_2 BillsHouse, BILLS_HOUSE, $0, NONE ; 0x95e10
-	map_header_2 AzaleaPokeCenter1F, AZALEA_POKECENTER_1F, $0, NONE ; 0x95e1c
-	map_header_2 CharcoalKiln, CHARCOAL_KILN, $0, NONE ; 0x95e28
-	map_header_2 AzaleaMart, AZALEA_MART, $0, NONE ; 0x95e34
-	map_header_2 KurtsHouse, KURTS_HOUSE, $0, NONE ; 0x95e40
-	map_header_2 AzaleaGym, AZALEA_GYM, $0, NONE ; 0x95e4c
-	map_header_2 LakeofRageHiddenPowerHouse, LAKE_OF_RAGE_HIDDEN_POWER_HOUSE, $0, NONE ; 0x95e58
-	map_header_2 LakeofRageMagikarpHouse, LAKE_OF_RAGE_MAGIKARP_HOUSE, $0, NONE ; 0x95e64
-	map_header_2 Route43MahoganyGate, ROUTE_43_MAHOGANY_GATE, $0, NONE ; 0x95e70
-	map_header_2 Route43Gate, ROUTE_43_GATE, $0, NONE ; 0x95e7c
-	map_header_2 VioletMart, VIOLET_MART, $0, NONE ; 0x95e88
-	map_header_2 VioletGym, VIOLET_GYM, $0, NONE ; 0x95e94
-	map_header_2 EarlsPokemonAcademy, EARLS_POKEMON_ACADEMY, $0, NONE ; 0x95ea0
-	map_header_2 VioletNicknameSpeechHouse, VIOLET_NICKNAME_SPEECH_HOUSE, $0, NONE ; 0x95eac
-	map_header_2 VioletPokeCenter1F, VIOLET_POKECENTER_1F, $0, NONE ; 0x95eb8
-	map_header_2 VioletOnixTradeHouse, VIOLET_ONIX_TRADE_HOUSE, $0, NONE ; 0x95ec4
-	map_header_2 Route32RuinsofAlphGate, ROUTE_32_RUINS_OF_ALPH_GATE, $0, NONE ; 0x95ed0
-	map_header_2 Route32PokeCenter1F, ROUTE_32_POKECENTER_1F, $0, NONE ; 0x95edc
-	map_header_2 Route35Goldenrodgate, ROUTE_35_GOLDENROD_GATE, $0, NONE ; 0x95ee8
-	map_header_2 Route35NationalParkgate, ROUTE_35_NATIONAL_PARK_GATE, $0, NONE ; 0x95ef4
-	map_header_2 Route36RuinsofAlphgate, ROUTE_36_RUINS_OF_ALPH_GATE, $0, NONE ; 0x95f00
-	map_header_2 Route36NationalParkgate, ROUTE_36_NATIONAL_PARK_GATE, $0, NONE ; 0x95f0c
-	map_header_2 GoldenrodGym, GOLDENROD_GYM, $0, NONE ; 0x95f18
-	map_header_2 GoldenrodBikeShop, GOLDENROD_BIKE_SHOP, $0, NONE ; 0x95f24
-	map_header_2 GoldenrodHappinessRater, GOLDENROD_HAPPINESS_RATER, $0, NONE ; 0x95f30
-	map_header_2 GoldenrodBillsHouse, GOLDENROD_BILLS_HOUSE, $0, NONE ; 0x95f3c
-	map_header_2 GoldenrodMagnetTrainStation, GOLDENROD_MAGNET_TRAIN_STATION, $0, NONE ; 0x95f48
-	map_header_2 GoldenrodFlowerShop, GOLDENROD_FLOWER_SHOP, $0, NONE ; 0x95f54
-	map_header_2 GoldenrodPPSpeechHouse, GOLDENROD_PP_SPEECH_HOUSE, $0, NONE ; 0x95f60
-	map_header_2 GoldenrodNameRatersHouse, GOLDENROD_NAME_RATERS_HOUSE, $0, NONE ; 0x95f6c
-	map_header_2 GoldenrodDeptStore1F, GOLDENROD_DEPT_STORE_1F, $0, NONE ; 0x95f78
-	map_header_2 GoldenrodDeptStore2F, GOLDENROD_DEPT_STORE_2F, $0, NONE ; 0x95f84
-	map_header_2 GoldenrodDeptStore3F, GOLDENROD_DEPT_STORE_3F, $0, NONE ; 0x95f90
-	map_header_2 GoldenrodDeptStore4F, GOLDENROD_DEPT_STORE_4F, $0, NONE ; 0x95f9c
-	map_header_2 GoldenrodDeptStore5F, GOLDENROD_DEPT_STORE_5F, $0, NONE ; 0x95fa8
-	map_header_2 GoldenrodDeptStore6F, GOLDENROD_DEPT_STORE_6F, $0, NONE ; 0x95fb4
-	map_header_2 GoldenrodDeptStoreElevator, GOLDENROD_DEPT_STORE_ELEVATOR, $0, NONE ; 0x95fc0
-	map_header_2 GoldenrodDeptStoreRoof, GOLDENROD_DEPT_STORE_ROOF, $24, NONE ; 0x95fcc
-	map_header_2 GoldenrodGameCorner, GOLDENROD_GAME_CORNER, $0, NONE ; 0x95fd8
-	map_header_2 GoldenrodPokeCenter1F, GOLDENROD_POKECENTER_1F, $0, NONE ; 0x95fe4
-	map_header_2 GoldenrodPokeComCenter2FMobile, GOLDENROD_POKECOM_CENTER_2F_MOBILE, $0, NONE ; 0x95ff0
-	map_header_2 IlexForestAzaleaGate, ILEX_FOREST_AZALEA_GATE, $0, NONE ; 0x95ffc
-	map_header_2 Route34IlexForestGate, ROUTE_34_ILEX_FOREST_GATE, $0, NONE ; 0x96008
-	map_header_2 DayCare, DAY_CARE, $0, NONE ; 0x96014
-	map_header_2 VermilionHouseFishingSpeechHouse, VERMILION_HOUSE_FISHING_SPEECH_HOUSE, $0, NONE ; 0x96020
-	map_header_2 VermilionPokeCenter1F, VERMILION_POKECENTER_1F, $0, NONE ; 0x9602c
-	map_header_2 VermilionPokeCenter2FBeta, VERMILION_POKECENTER_2F_BETA, $0, NONE ; 0x96038
-	map_header_2 PokemonFanClub, POKEMON_FAN_CLUB, $0, NONE ; 0x96044
-	map_header_2 VermilionMagnetTrainSpeechHouse, VERMILION_MAGNET_TRAIN_SPEECH_HOUSE, $0, NONE ; 0x96050
-	map_header_2 VermilionMart, VERMILION_MART, $0, NONE ; 0x9605c
-	map_header_2 VermilionHouseDiglettsCaveSpeechHouse, VERMILION_HOUSE_DIGLETTS_CAVE_SPEECH_HOUSE, $0, NONE ; 0x96068
-	map_header_2 VermilionGym, VERMILION_GYM, $0, NONE ; 0x96074
-	map_header_2 Route6SaffronGate, ROUTE_6_SAFFRON_GATE, $0, NONE ; 0x96080
-	map_header_2 Route6UndergroundEntrance, ROUTE_6_UNDERGROUND_ENTRANCE, $0, NONE ; 0x9608c
-	map_header_2 RedsHouse1F, REDS_HOUSE_1F, $0, NONE ; 0x96098
-	map_header_2 RedsHouse2F, REDS_HOUSE_2F, $0, NONE ; 0x960a4
-	map_header_2 BluesHouse, BLUES_HOUSE, $0, NONE ; 0x960b0
-	map_header_2 OaksLab, OAKS_LAB, $0, NONE ; 0x960bc
-	map_header_2 PewterNidoranSpeechHouse, PEWTER_NIDORAN_SPEECH_HOUSE, $0, NONE ; 0x960c8
-	map_header_2 PewterGym, PEWTER_GYM, $0, NONE ; 0x960d4
-	map_header_2 PewterMart, PEWTER_MART, $0, NONE ; 0x960e0
-	map_header_2 PewterPokeCenter1F, PEWTER_POKECENTER_1F, $0, NONE ; 0x960ec
-	map_header_2 PewterPokeCEnter2FBeta, PEWTER_POKECENTER_2F_BETA, $0, NONE ; 0x960f8
-	map_header_2 PewterSnoozeSpeechHouse, PEWTER_SNOOZE_SPEECH_HOUSE, $0, NONE ; 0x96104
-	map_header_2 OlivinePort, OLIVINE_PORT, $a, NONE ; 0x96110
-	map_header_2 VermilionPort, VERMILION_PORT, $a, NONE ; 0x9611c
-	map_header_2 FastShip1F, FAST_SHIP_1F, $0, NONE ; 0x96128
-	map_header_2 FastShipCabins_NNW_NNE_NE, FAST_SHIP_CABINS_NNW_NNE_NE, $0, NONE ; 0x96134
-	map_header_2 FastShipCabins_SW_SSW_NW, FAST_SHIP_CABINS_SW_SSW_NW, $0, NONE ; 0x96140
-	map_header_2 FastShipCabins_SE_SSE_CaptainsCabin, FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN, $0, NONE ; 0x9614c
-	map_header_2 FastShipB1F, FAST_SHIP_B1F, $0, NONE ; 0x96158
-	map_header_2 OlivinePortPassage, OLIVINE_PORT_PASSAGE, $0, NONE ; 0x96164
-	map_header_2 VermilionPortPassage, VERMILION_PORT_PASSAGE, $0, NONE ; 0x96170
-	map_header_2 MountMoonSquare, MOUNT_MOON_SQUARE, $2d, NONE ; 0x9617c
-	map_header_2 MountMoonGiftShop, MOUNT_MOON_GIFT_SHOP, $0, NONE ; 0x96188
-	map_header_2 TinTowerRoof, TIN_TOWER_ROOF, $0, NONE ; 0x96194
-	map_header_2 IndigoPlateauPokeCenter1F, INDIGO_PLATEAU_POKECENTER_1F, $0, NONE ; 0x961a0
-	map_header_2 WillsRoom, WILLS_ROOM, $0, NONE ; 0x961ac
-	map_header_2 KogasRoom, KOGAS_ROOM, $0, NONE ; 0x961b8
-	map_header_2 BrunosRoom, BRUNOS_ROOM, $0, NONE ; 0x961c4
-	map_header_2 KarensRoom, KARENS_ROOM, $0, NONE ; 0x961d0
-	map_header_2 LancesRoom, LANCES_ROOM, $0, NONE ; 0x961dc
-	map_header_2 HallOfFame, HALL_OF_FAME, $0, NONE ; 0x961e8
-	map_header_2 FuchsiaMart, FUCHSIA_MART, $0, NONE ; 0x961f4
-	map_header_2 SafariZoneMainOffice, SAFARI_ZONE_MAIN_OFFICE, $0, NONE ; 0x96200
-	map_header_2 FuchsiaGym, FUCHSIA_GYM, $0, NONE ; 0x9620c
-	map_header_2 FuchsiaBillSpeechHouse, FUCHSIA_BILL_SPEECH_HOUSE, $0, NONE ; 0x96218
-	map_header_2 FuchsiaPokeCenter1F, FUCHSIA_POKECENTER_1F, $0, NONE ; 0x96224
-	map_header_2 FuchsiaPokeCenter2FBeta, FUCHSIA_POKECENTER_2F_BETA, $0, NONE ; 0x96230
-	map_header_2 SafariZoneWardensHome, SAFARI_ZONE_WARDENS_HOME, $0, NONE ; 0x9623c
-	map_header_2 Route15FuchsiaGate, ROUTE_15_FUCHSIA_GATE, $0, NONE ; 0x96248
-	map_header_2 LavenderPokeCenter1F, LAVENDER_POKECENTER_1F, $0, NONE ; 0x96254
-	map_header_2 LavenderPokeCenter2FBeta, LAVENDER_POKECENTER_2F_BETA, $0, NONE ; 0x96260
-	map_header_2 MrFujisHouse, MR_FUJIS_HOUSE, $0, NONE ; 0x9626c
-	map_header_2 LavenderTownSpeechHouse, LAVENDER_TOWN_SPEECH_HOUSE, $0, NONE ; 0x96278
-	map_header_2 LavenderNameRater, LAVENDER_NAME_RATER, $0, NONE ; 0x96284
-	map_header_2 LavenderMart, LAVENDER_MART, $0, NONE ; 0x96290
-	map_header_2 SoulHouse, SOUL_HOUSE, $0, NONE ; 0x9629c
-	map_header_2 LavRadioTower1F, LAV_RADIO_TOWER_1F, $0, NONE ; 0x962a8
-	map_header_2 Route8SaffronGate, ROUTE_8_SAFFRON_GATE, $0, NONE ; 0x962b4
-	map_header_2 Route12SuperRodHouse, ROUTE_12_SUPER_ROD_HOUSE, $0, NONE ; 0x962c0
-	map_header_2 SilverCavePokeCenter1F, SILVER_CAVE_POKECENTER_1F, $0, NONE ; 0x962cc
-	map_header_2 Route28FamousSpeechHouse, ROUTE_28_FAMOUS_SPEECH_HOUSE, $0, NONE ; 0x962d8
-	map_header_2 PokeCenter2F, POKECENTER_2F, $0, NONE ; 0x962e4
-	map_header_2 TradeCenter, TRADE_CENTER, $0, NONE ; 0x962f0
-	map_header_2 Colosseum, COLOSSEUM, $0, NONE ; 0x962fc
-	map_header_2 TimeCapsule, TIME_CAPSULE, $0, NONE ; 0x96308
-	map_header_2 MobileTradeRoomMobile, MOBILE_TRADE_ROOM_MOBILE, $0, NONE ; 0x96314
-	map_header_2 MobileBattleRoom, MOBILE_BATTLE_ROOM, $0, NONE ; 0x96320
-	map_header_2 CeladonDeptStore1F, CELADON_DEPT_STORE_1F, $0, NONE ; 0x9632c
-	map_header_2 CeladonDeptStore2F, CELADON_DEPT_STORE_2F, $0, NONE ; 0x96338
-	map_header_2 CeladonDeptStore3F, CELADON_DEPT_STORE_3F, $0, NONE ; 0x96344
-	map_header_2 CeladonDeptStore4F, CELADON_DEPT_STORE_4F, $0, NONE ; 0x96350
-	map_header_2 CeladonDeptStore5F, CELADON_DEPT_STORE_5F, $0, NONE ; 0x9635c
-	map_header_2 CeladonDeptStore6F, CELADON_DEPT_STORE_6F, $0, NONE ; 0x96368
-	map_header_2 CeladonDeptStoreElevator, CELADON_DEPT_STORE_ELEVATOR, $0, NONE ; 0x96374
-	map_header_2 CeladonMansion1F, CELADON_MANSION_1F, $0, NONE ; 0x96380
-	map_header_2 CeladonMansion2F, CELADON_MANSION_2F, $0, NONE ; 0x9638c
-	map_header_2 CeladonMansion3F, CELADON_MANSION_3F, $0, NONE ; 0x96398
-	map_header_2 CeladonMansionRoof, CELADON_MANSION_ROOF, $1, NONE ; 0x963a4
-	map_header_2 CeladonMansionRoofHouse, CELADON_MANSION_ROOF_HOUSE, $0, NONE ; 0x963b0
-	map_header_2 CeladonPokeCenter1F, CELADON_POKECENTER_1F, $0, NONE ; 0x963bc
-	map_header_2 CeladonPokeCenter2FBeta, CELADON_POKECENTER_2F_BETA, $0, NONE ; 0x963c8
-	map_header_2 CeladonGameCorner, CELADON_GAME_CORNER, $0, NONE ; 0x963d4
-	map_header_2 CeladonGameCornerPrizeRoom, CELADON_GAME_CORNER_PRIZE_ROOM, $0, NONE ; 0x963e0
-	map_header_2 CeladonGym, CELADON_GYM, $0, NONE ; 0x963ec
-	map_header_2 CeladonCafe, CELADON_CAFE, $0, NONE ; 0x963f8
-	map_header_2 Route16FuchsiaSpeechHouse, ROUTE_16_FUCHSIA_SPEECH_HOUSE, $0, NONE ; 0x96404
-	map_header_2 Route16Gate, ROUTE_16_GATE, $0, NONE ; 0x96410
-	map_header_2 Route7SaffronGate, ROUTE_7_SAFFRON_GATE, $0, NONE ; 0x9641c
-	map_header_2 Route1718Gate, ROUTE_17_18_GATE, $0, NONE ; 0x96428
-	map_header_2 ManiasHouse, MANIAS_HOUSE, $0, NONE ; 0x96434
-	map_header_2 CianwoodGym, CIANWOOD_GYM, $0, NONE ; 0x96440
-	map_header_2 CianwoodPokeCenter1F, CIANWOOD_POKECENTER_1F, $0, NONE ; 0x9644c
-	map_header_2 CianwoodPharmacy, CIANWOOD_PHARMACY, $0, NONE ; 0x96458
-	map_header_2 CianwoodCityPhotoStudio, CIANWOOD_CITY_PHOTO_STUDIO, $0, NONE ; 0x96464
-	map_header_2 CianwoodLugiaSpeechHouse, CIANWOOD_LUGIA_SPEECH_HOUSE, $0, NONE ; 0x96470
-	map_header_2 PokeSeersHouse, POKE_SEERS_HOUSE, $0, NONE ; 0x9647c
-	map_header_2 BattleTower1F, BATTLE_TOWER_1F, $0, NONE ; 0x96488
-	map_header_2 BattleTowerBattleRoom, BATTLE_TOWER_BATTLE_ROOM, $0, NONE ; 0x96494
-	map_header_2 BattleTowerElevator, BATTLE_TOWER_ELEVATOR, $0, NONE ; 0x964a0
-	map_header_2 BattleTowerHallway, BATTLE_TOWER_HALLWAY, $0, NONE ; 0x964ac
-	map_header_2 Route40BattleTowerGate, ROUTE_40_BATTLE_TOWER_GATE, $0, NONE ; 0x964b8
-	map_header_2 BattleTowerOutside, BATTLE_TOWER_OUTSIDE, $5, NONE ; 0x964c4
-	map_header_2 ViridianGym, VIRIDIAN_GYM, $0, NONE ; 0x964d0
-	map_header_2 ViridianNicknameSpeechHouse, VIRIDIAN_NICKNAME_SPEECH_HOUSE, $0, NONE ; 0x964dc
-	map_header_2 TrainerHouse1F, TRAINER_HOUSE_1F, $0, NONE ; 0x964e8
-	map_header_2 TrainerHouseB1F, TRAINER_HOUSE_B1F, $0, NONE ; 0x964f4
-	map_header_2 ViridianMart, VIRIDIAN_MART, $0, NONE ; 0x96500
-	map_header_2 ViridianPokeCenter1F, VIRIDIAN_POKECENTER_1F, $0, NONE ; 0x9650c
-	map_header_2 ViridianPokeCenter2FBeta, VIRIDIAN_POKECENTER_2F_BETA, $0, NONE ; 0x96518
-	map_header_2 Route2NuggetSpeechHouse, ROUTE_2_NUGGET_SPEECH_HOUSE, $0, NONE ; 0x96524
-	map_header_2 Route2Gate, ROUTE_2_GATE, $0, NONE ; 0x96530
-	map_header_2 VictoryRoadGate, VICTORY_ROAD_GATE, $0, NONE ; 0x9653c
-	map_header_2 ElmsLab, ELMS_LAB, $0, NONE ; 0x96548
-	map_header_2 KrissHouse1F, KRISS_HOUSE_1F, $0, NONE ; 0x96554
-	map_header_2 KrissHouse2F, KRISS_HOUSE_2F, $0, NONE ; 0x96560
-	map_header_2 KrissNeighborsHouse, KRISS_NEIGHBORS_HOUSE, $0, NONE ; 0x9656c
-	map_header_2 ElmsHouse, ELMS_HOUSE, $0, NONE ; 0x96578
-	map_header_2 Route26HealSpeechHouse, ROUTE_26_HEAL_SPEECH_HOUSE, $0, NONE ; 0x96584
-	map_header_2 Route26DayofWeekSiblingsHouse, ROUTE_26_DAY_OF_WEEK_SIBLINGS_HOUSE, $0, NONE ; 0x96590
-	map_header_2 Route27SandstormHouse, ROUTE_27_SANDSTORM_HOUSE, $0, NONE ; 0x9659c
-	map_header_2 Route2946Gate, ROUTE_29_46_GATE, $0, NONE ; 0x965a8
-	map_header_2 FightingDojo, FIGHTING_DOJO, $0, NONE ; 0x965b4
-	map_header_2 SaffronGym, SAFFRON_GYM, $0, NONE ; 0x965c0
-	map_header_2 SaffronMart, SAFFRON_MART, $0, NONE ; 0x965cc
-	map_header_2 SaffronPokeCenter1F, SAFFRON_POKECENTER_1F, $0, NONE ; 0x965d8
-	map_header_2 SaffronPokeCenter2FBeta, SAFFRON_POKECENTER_2F_BETA, $0, NONE ; 0x965e4
-	map_header_2 MrPsychicsHouse, MR_PSYCHICS_HOUSE, $0, NONE ; 0x965f0
-	map_header_2 SaffronTrainStation, SAFFRON_TRAIN_STATION, $0, NONE ; 0x965fc
-	map_header_2 SilphCo1F, SILPH_CO_1F, $0, NONE ; 0x96608
-	map_header_2 CopycatsHouse1F, COPYCATS_HOUSE_1F, $0, NONE ; 0x96614
-	map_header_2 CopycatsHouse2F, COPYCATS_HOUSE_2F, $0, NONE ; 0x96620
-	map_header_2 Route5UndergroundEntrance, ROUTE_5_UNDERGROUND_ENTRANCE, $0, NONE ; 0x9662c
-	map_header_2 Route5SaffronCityGate, ROUTE_5_SAFFRON_CITY_GATE, $0, NONE ; 0x96638
-	map_header_2 Route5CleanseTagSpeechHouse, ROUTE_5_CLEANSE_TAG_SPEECH_HOUSE, $0, NONE ; 0x96644
-	map_header_2 CherrygroveMart, CHERRYGROVE_MART, $0, NONE ; 0x96650
-	map_header_2 CherrygrovePokeCenter1F, CHERRYGROVE_POKECENTER_1F, $0, NONE ; 0x9665c
-	map_header_2 CherrygroveGymSpeechHouse, CHERRYGROVE_GYM_SPEECH_HOUSE, $0, NONE ; 0x96668
-	map_header_2 GuideGentsHouse, GUIDE_GENTS_HOUSE, $0, NONE ; 0x96674
-	map_header_2 CherrygroveEvolutionSpeechHouse, CHERRYGROVE_EVOLUTION_SPEECH_HOUSE, $0, NONE ; 0x96680
-	map_header_2 Route30BerrySpeechHouse, ROUTE_30_BERRY_SPEECH_HOUSE, $0, NONE ; 0x9668c
-	map_header_2 MrPokemonsHouse, MR_POKEMONS_HOUSE, $0, NONE ; 0x96698
-	map_header_2 Route31VioletGate, ROUTE_31_VIOLET_GATE, $0, NONE ; 0x966a4
+	map_header_2 Route23, ROUTE_23, $f, NONE
+	map_header_2 SproutTower1F, SPROUT_TOWER_1F, $0, NONE
+	map_header_2 SproutTower2F, SPROUT_TOWER_2F, $0, NONE
+	map_header_2 SproutTower3F, SPROUT_TOWER_3F, $0, NONE
+	map_header_2 TinTower1F, TIN_TOWER_1F, $0, NONE
+	map_header_2 TinTower2F, TIN_TOWER_2F, $0, NONE
+	map_header_2 TinTower3F, TIN_TOWER_3F, $0, NONE
+	map_header_2 TinTower4F, TIN_TOWER_4F, $0, NONE
+	map_header_2 TinTower5F, TIN_TOWER_5F, $0, NONE
+	map_header_2 TinTower6F, TIN_TOWER_6F, $0, NONE
+	map_header_2 TinTower7F, TIN_TOWER_7F, $0, NONE
+	map_header_2 TinTower8F, TIN_TOWER_8F, $0, NONE
+	map_header_2 TinTower9F, TIN_TOWER_9F, $0, NONE
+	map_header_2 BurnedTower1F, BURNED_TOWER_1F, $0, NONE
+	map_header_2 BurnedTowerB1F, BURNED_TOWER_B1F, $9, NONE
+	map_header_2 NationalPark, NATIONAL_PARK, $0, NONE
+	map_header_2 NationalParkBugContest, NATIONAL_PARK_BUG_CONTEST, $0, NONE
+	map_header_2 RadioTower1F, RADIO_TOWER_1F, $0, NONE
+	map_header_2 RadioTower2F, RADIO_TOWER_2F, $0, NONE
+	map_header_2 RadioTower3F, RADIO_TOWER_3F, $0, NONE
+	map_header_2 RadioTower4F, RADIO_TOWER_4F, $0, NONE
+	map_header_2 RadioTower5F, RADIO_TOWER_5F, $0, NONE
+	map_header_2 RuinsofAlphOutside, RUINS_OF_ALPH_OUTSIDE, $5, NONE
+	map_header_2 RuinsofAlphHoOhChamber, RUINS_OF_ALPH_HO_OH_CHAMBER, $0, NONE
+	map_header_2 RuinsofAlphKabutoChamber, RUINS_OF_ALPH_KABUTO_CHAMBER, $0, NONE
+	map_header_2 RuinsofAlphOmanyteChamber, RUINS_OF_ALPH_OMANYTE_CHAMBER, $0, NONE
+	map_header_2 RuinsofAlphAerodactylChamber, RUINS_OF_ALPH_AERODACTYL_CHAMBER, $0, NONE
+	map_header_2 RuinsofAlphInnerChamber, RUINS_OF_ALPH_INNER_CHAMBER, $0, NONE
+	map_header_2 RuinsofAlphResearchCenter, RUINS_OF_ALPH_RESEARCH_CENTER, $0, NONE
+	map_header_2 RuinsofAlphHoOhItemRoom, RUINS_OF_ALPH_HO_OH_ITEM_ROOM, $0, NONE
+	map_header_2 RuinsofAlphKabutoItemRoom, RUINS_OF_ALPH_KABUTO_ITEM_ROOM, $0, NONE
+	map_header_2 RuinsofAlphOmanyteItemRoom, RUINS_OF_ALPH_OMANYTE_ITEM_ROOM, $0, NONE
+	map_header_2 RuinsofAlphAerodactylItemRoom, RUINS_OF_ALPH_AERODACTYL_ITEM_ROOM, $0, NONE
+	map_header_2 RuinsofAlphHoOhWordRoom, RUINS_OF_ALPH_HO_OH_WORD_ROOM, $0, NONE
+	map_header_2 RuinsofAlphKabutoWordRoom, RUINS_OF_ALPH_KABUTO_WORD_ROOM, $0, NONE
+	map_header_2 RuinsofAlphOmanyteWordRoom, RUINS_OF_ALPH_OMANYTE_WORD_ROOM, $0, NONE
+	map_header_2 RuinsofAlphAerodactylWordRoom, RUINS_OF_ALPH_AERODACTYL_WORD_ROOM, $0, NONE
+	map_header_2 UnionCave1F, UNION_CAVE_1F, $9, NONE
+	map_header_2 UnionCaveB1F, UNION_CAVE_B1F, $9, NONE
+	map_header_2 UnionCaveB2F, UNION_CAVE_B2F, $9, NONE
+	map_header_2 SlowpokeWellB1F, SLOWPOKE_WELL_B1F, $9, NONE
+	map_header_2 SlowpokeWellB2F, SLOWPOKE_WELL_B2F, $9, NONE
+	map_header_2 OlivineLighthouse1F, OLIVINE_LIGHTHOUSE_1F, $0, NONE
+	map_header_2 OlivineLighthouse2F, OLIVINE_LIGHTHOUSE_2F, $0, NONE
+	map_header_2 OlivineLighthouse3F, OLIVINE_LIGHTHOUSE_3F, $0, NONE
+	map_header_2 OlivineLighthouse4F, OLIVINE_LIGHTHOUSE_4F, $0, NONE
+	map_header_2 OlivineLighthouse5F, OLIVINE_LIGHTHOUSE_5F, $0, NONE
+	map_header_2 OlivineLighthouse6F, OLIVINE_LIGHTHOUSE_6F, $0, NONE
+	map_header_2 MahoganyMart1F, MAHOGANY_MART_1F, $0, NONE
+	map_header_2 TeamRocketBaseB1F, TEAM_ROCKET_BASE_B1F, $0, NONE
+	map_header_2 TeamRocketBaseB2F, TEAM_ROCKET_BASE_B2F, $0, NONE
+	map_header_2 TeamRocketBaseB3F, TEAM_ROCKET_BASE_B3F, $0, NONE
+	map_header_2 IlexForest, ILEX_FOREST, $5, NONE
+	map_header_2 WarehouseEntrance, WAREHOUSE_ENTRANCE, $0, NONE
+	map_header_2 UndergroundPathSwitchRoomEntrances, UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES, $0, NONE
+	map_header_2 GoldenrodDeptStoreB1F, GOLDENROD_DEPT_STORE_B1F, $0, NONE
+	map_header_2 UndergroundWarehouse, UNDERGROUND_WAREHOUSE, $0, NONE
+	map_header_2 MountMortar1FOutside, MOUNT_MORTAR_1F_OUTSIDE, $9, NONE
+	map_header_2 MountMortar1FInside, MOUNT_MORTAR_1F_INSIDE, $9, NONE
+	map_header_2 MountMortar2FInside, MOUNT_MORTAR_2F_INSIDE, $9, NONE
+	map_header_2 MountMortarB1F, MOUNT_MORTAR_B1F, $9, NONE
+	map_header_2 IcePath1F, ICE_PATH_1F, $9, NONE
+	map_header_2 IcePathB1F, ICE_PATH_B1F, $19, NONE
+	map_header_2 IcePathB2FMahoganySide, ICE_PATH_B2F_MAHOGANY_SIDE, $19, NONE
+	map_header_2 IcePathB2FBlackthornSide, ICE_PATH_B2F_BLACKTHORN_SIDE, $19, NONE
+	map_header_2 IcePathB3F, ICE_PATH_B3F, $19, NONE
+	map_header_2 WhirlIslandNW, WHIRL_ISLAND_NW, $9, NONE
+	map_header_2 WhirlIslandNE, WHIRL_ISLAND_NE, $9, NONE
+	map_header_2 WhirlIslandSW, WHIRL_ISLAND_SW, $9, NONE
+	map_header_2 WhirlIslandCave, WHIRL_ISLAND_CAVE, $9, NONE
+	map_header_2 WhirlIslandSE, WHIRL_ISLAND_SE, $f, NONE
+	map_header_2 WhirlIslandB1F, WHIRL_ISLAND_B1F, $9, NONE
+	map_header_2 WhirlIslandB2F, WHIRL_ISLAND_B2F, $2e, NONE
+	map_header_2 WhirlIslandLugiaChamber, WHIRL_ISLAND_LUGIA_CHAMBER, $f, NONE
+	map_header_2 SilverCaveRoom1, SILVER_CAVE_ROOM_1, $9, NONE
+	map_header_2 SilverCaveRoom2, SILVER_CAVE_ROOM_2, $9, NONE
+	map_header_2 SilverCaveRoom3, SILVER_CAVE_ROOM_3, $9, NONE
+	map_header_2 SilverCaveItemRooms, SILVER_CAVE_ITEM_ROOMS, $9, NONE
+	map_header_2 DarkCaveVioletEntrance, DARK_CAVE_VIOLET_ENTRANCE, $9, NONE
+	map_header_2 DarkCaveBlackthornEntrance, DARK_CAVE_BLACKTHORN_ENTRANCE, $9, NONE
+	map_header_2 DragonsDen1F, DRAGONS_DEN_1F, $9, NONE
+	map_header_2 DragonsDenB1F, DRAGONS_DEN_B1F, $71, NONE
+	map_header_2 DragonShrine, DRAGON_SHRINE, $0, NONE
+	map_header_2 TohjoFalls, TOHJO_FALLS, $9, NONE
+	map_header_2 OlivinePokeCenter1F, OLIVINE_POKECENTER_1F, $0, NONE
+	map_header_2 OlivineGym, OLIVINE_GYM, $0, NONE
+	map_header_2 OlivineVoltorbHouse, OLIVINE_VOLTORB_HOUSE, $0, NONE
+	map_header_2 OlivineHouseBeta, OLIVINE_HOUSE_BETA, $0, NONE
+	map_header_2 OlivinePunishmentSpeechHouse, OLIVINE_PUNISHMENT_SPEECH_HOUSE, $0, NONE
+	map_header_2 OlivineGoodRodHouse, OLIVINE_GOOD_ROD_HOUSE, $0, NONE
+	map_header_2 OlivineCafe, OLIVINE_CAFE, $0, NONE
+	map_header_2 OlivineMart, OLIVINE_MART, $0, NONE
+	map_header_2 Route38EcruteakGate, ROUTE_38_ECRUTEAK_GATE, $0, NONE
+	map_header_2 Route39Barn, ROUTE_39_BARN, $0, NONE
+	map_header_2 Route39Farmhouse, ROUTE_39_FARMHOUSE, $0, NONE
+	map_header_2 MahoganyRedGyaradosSpeechHouse, MAHOGANY_RED_GYARADOS_SPEECH_HOUSE, $0, NONE
+	map_header_2 MahoganyGym, MAHOGANY_GYM, $0, NONE
+	map_header_2 MahoganyPokeCenter1F, MAHOGANY_POKECENTER_1F, $0, NONE
+	map_header_2 Route42EcruteakGate, ROUTE_42_ECRUTEAK_GATE, $0, NONE
+	map_header_2 DiglettsCave, DIGLETTS_CAVE, $9, NONE
+	map_header_2 MountMoon, MOUNT_MOON, $9, NONE
+	map_header_2 Underground, UNDERGROUND, $0, NONE
+	map_header_2 RockTunnel1F, ROCK_TUNNEL_1F, $9, NONE
+	map_header_2 RockTunnelB1F, ROCK_TUNNEL_B1F, $9, NONE
+	map_header_2 SafariZoneFuchsiaGateBeta, SAFARI_ZONE_FUCHSIA_GATE_BETA, $0, NONE
+	map_header_2 SafariZoneBeta, SAFARI_ZONE_BETA, $13, NONE
+	map_header_2 VictoryRoad, VICTORY_ROAD, $1d, NONE
+	map_header_2 EcruteakHouse, ECRUTEAK_HOUSE, $0, NONE
+	map_header_2 WiseTriosRoom, WISE_TRIOS_ROOM, $0, NONE
+	map_header_2 EcruteakPokeCenter1F, ECRUTEAK_POKECENTER_1F, $0, NONE
+	map_header_2 EcruteakLugiaSpeechHouse, ECRUTEAK_LUGIA_SPEECH_HOUSE, $0, NONE
+	map_header_2 DanceTheatre, DANCE_THEATRE, $0, NONE
+	map_header_2 EcruteakMart, ECRUTEAK_MART, $0, NONE
+	map_header_2 EcruteakGym, ECRUTEAK_GYM, $0, NONE
+	map_header_2 EcruteakItemfinderHouse, ECRUTEAK_ITEMFINDER_HOUSE, $0, NONE
+	map_header_2 BlackthornGym1F, BLACKTHORN_GYM_1F, $0, NONE
+	map_header_2 BlackthornGym2F, BLACKTHORN_GYM_2F, $0, NONE
+	map_header_2 BlackthornDragonSpeechHouse, BLACKTHORN_DRAGON_SPEECH_HOUSE, $0, NONE
+	map_header_2 BlackthornDodrioTradeHouse, BLACKTHORN_DODRIO_TRADE_HOUSE, $0, NONE
+	map_header_2 BlackthornMart, BLACKTHORN_MART, $0, NONE
+	map_header_2 BlackthornPokeCenter1F, BLACKTHORN_POKECENTER_1F, $0, NONE
+	map_header_2 MoveDeletersHouse, MOVE_DELETERS_HOUSE, $0, NONE
+	map_header_2 CinnabarPokeCenter1F, CINNABAR_POKECENTER_1F, $0, NONE
+	map_header_2 CinnabarPokeCenter2FBeta, CINNABAR_POKECENTER_2F_BETA, $0, NONE
+	map_header_2 Route19FuchsiaGate, ROUTE_19___FUCHSIA_GATE, $0, NONE
+	map_header_2 SeafoamGym, SEAFOAM_GYM, $9, NONE
+	map_header_2 CeruleanGymBadgeSpeechHouse, CERULEAN_GYM_BADGE_SPEECH_HOUSE, $0, NONE
+	map_header_2 CeruleanPoliceStation, CERULEAN_POLICE_STATION, $0, NONE
+	map_header_2 CeruleanTradeSpeechHouse, CERULEAN_TRADE_SPEECH_HOUSE, $0, NONE
+	map_header_2 CeruleanPokeCenter1F, CERULEAN_POKECENTER_1F, $0, NONE
+	map_header_2 CeruleanPokeCenter2FBeta, CERULEAN_POKECENTER_2F_BETA, $0, NONE
+	map_header_2 CeruleanGym, CERULEAN_GYM, $0, NONE
+	map_header_2 CeruleanMart, CERULEAN_MART, $0, NONE
+	map_header_2 Route10PokeCenter1F, ROUTE_10_POKECENTER_1F, $0, NONE
+	map_header_2 Route10PokeCenter2FBeta, ROUTE_10_POKECENTER_2F_BETA, $0, NONE
+	map_header_2 PowerPlant, POWER_PLANT, $0, NONE
+	map_header_2 BillsHouse, BILLS_HOUSE, $0, NONE
+	map_header_2 AzaleaPokeCenter1F, AZALEA_POKECENTER_1F, $0, NONE
+	map_header_2 CharcoalKiln, CHARCOAL_KILN, $0, NONE
+	map_header_2 AzaleaMart, AZALEA_MART, $0, NONE
+	map_header_2 KurtsHouse, KURTS_HOUSE, $0, NONE
+	map_header_2 AzaleaGym, AZALEA_GYM, $0, NONE
+	map_header_2 LakeofRageHiddenPowerHouse, LAKE_OF_RAGE_HIDDEN_POWER_HOUSE, $0, NONE
+	map_header_2 LakeofRageMagikarpHouse, LAKE_OF_RAGE_MAGIKARP_HOUSE, $0, NONE
+	map_header_2 Route43MahoganyGate, ROUTE_43_MAHOGANY_GATE, $0, NONE
+	map_header_2 Route43Gate, ROUTE_43_GATE, $0, NONE
+	map_header_2 VioletMart, VIOLET_MART, $0, NONE
+	map_header_2 VioletGym, VIOLET_GYM, $0, NONE
+	map_header_2 EarlsPokemonAcademy, EARLS_POKEMON_ACADEMY, $0, NONE
+	map_header_2 VioletNicknameSpeechHouse, VIOLET_NICKNAME_SPEECH_HOUSE, $0, NONE
+	map_header_2 VioletPokeCenter1F, VIOLET_POKECENTER_1F, $0, NONE
+	map_header_2 VioletOnixTradeHouse, VIOLET_ONIX_TRADE_HOUSE, $0, NONE
+	map_header_2 Route32RuinsofAlphGate, ROUTE_32_RUINS_OF_ALPH_GATE, $0, NONE
+	map_header_2 Route32PokeCenter1F, ROUTE_32_POKECENTER_1F, $0, NONE
+	map_header_2 Route35Goldenrodgate, ROUTE_35_GOLDENROD_GATE, $0, NONE
+	map_header_2 Route35NationalParkgate, ROUTE_35_NATIONAL_PARK_GATE, $0, NONE
+	map_header_2 Route36RuinsofAlphgate, ROUTE_36_RUINS_OF_ALPH_GATE, $0, NONE
+	map_header_2 Route36NationalParkgate, ROUTE_36_NATIONAL_PARK_GATE, $0, NONE
+	map_header_2 GoldenrodGym, GOLDENROD_GYM, $0, NONE
+	map_header_2 GoldenrodBikeShop, GOLDENROD_BIKE_SHOP, $0, NONE
+	map_header_2 GoldenrodHappinessRater, GOLDENROD_HAPPINESS_RATER, $0, NONE
+	map_header_2 GoldenrodBillsHouse, GOLDENROD_BILLS_HOUSE, $0, NONE
+	map_header_2 GoldenrodMagnetTrainStation, GOLDENROD_MAGNET_TRAIN_STATION, $0, NONE
+	map_header_2 GoldenrodFlowerShop, GOLDENROD_FLOWER_SHOP, $0, NONE
+	map_header_2 GoldenrodPPSpeechHouse, GOLDENROD_PP_SPEECH_HOUSE, $0, NONE
+	map_header_2 GoldenrodNameRatersHouse, GOLDENROD_NAME_RATERS_HOUSE, $0, NONE
+	map_header_2 GoldenrodDeptStore1F, GOLDENROD_DEPT_STORE_1F, $0, NONE
+	map_header_2 GoldenrodDeptStore2F, GOLDENROD_DEPT_STORE_2F, $0, NONE
+	map_header_2 GoldenrodDeptStore3F, GOLDENROD_DEPT_STORE_3F, $0, NONE
+	map_header_2 GoldenrodDeptStore4F, GOLDENROD_DEPT_STORE_4F, $0, NONE
+	map_header_2 GoldenrodDeptStore5F, GOLDENROD_DEPT_STORE_5F, $0, NONE
+	map_header_2 GoldenrodDeptStore6F, GOLDENROD_DEPT_STORE_6F, $0, NONE
+	map_header_2 GoldenrodDeptStoreElevator, GOLDENROD_DEPT_STORE_ELEVATOR, $0, NONE
+	map_header_2 GoldenrodDeptStoreRoof, GOLDENROD_DEPT_STORE_ROOF, $24, NONE
+	map_header_2 GoldenrodGameCorner, GOLDENROD_GAME_CORNER, $0, NONE
+	map_header_2 GoldenrodPokeCenter1F, GOLDENROD_POKECENTER_1F, $0, NONE
+	map_header_2 GoldenrodPokeComCenter2FMobile, GOLDENROD_POKECOM_CENTER_2F_MOBILE, $0, NONE
+	map_header_2 IlexForestAzaleaGate, ILEX_FOREST_AZALEA_GATE, $0, NONE
+	map_header_2 Route34IlexForestGate, ROUTE_34_ILEX_FOREST_GATE, $0, NONE
+	map_header_2 DayCare, DAYCARE, $0, NONE
+	map_header_2 VermilionHouseFishingSpeechHouse, VERMILION_HOUSE_FISHING_SPEECH_HOUSE, $0, NONE
+	map_header_2 VermilionPokeCenter1F, VERMILION_POKECENTER_1F, $0, NONE
+	map_header_2 VermilionPokeCenter2FBeta, VERMILION_POKECENTER_2F_BETA, $0, NONE
+	map_header_2 PokemonFanClub, POKEMON_FAN_CLUB, $0, NONE
+	map_header_2 VermilionMagnetTrainSpeechHouse, VERMILION_MAGNET_TRAIN_SPEECH_HOUSE, $0, NONE
+	map_header_2 VermilionMart, VERMILION_MART, $0, NONE
+	map_header_2 VermilionHouseDiglettsCaveSpeechHouse, VERMILION_HOUSE_DIGLETTS_CAVE_SPEECH_HOUSE, $0, NONE
+	map_header_2 VermilionGym, VERMILION_GYM, $0, NONE
+	map_header_2 Route6SaffronGate, ROUTE_6_SAFFRON_GATE, $0, NONE
+	map_header_2 Route6UndergroundEntrance, ROUTE_6_UNDERGROUND_ENTRANCE, $0, NONE
+	map_header_2 RedsHouse1F, REDS_HOUSE_1F, $0, NONE
+	map_header_2 RedsHouse2F, REDS_HOUSE_2F, $0, NONE
+	map_header_2 BluesHouse, BLUES_HOUSE, $0, NONE
+	map_header_2 OaksLab, OAKS_LAB, $0, NONE
+	map_header_2 PewterNidoranSpeechHouse, PEWTER_NIDORAN_SPEECH_HOUSE, $0, NONE
+	map_header_2 PewterGym, PEWTER_GYM, $0, NONE
+	map_header_2 PewterMart, PEWTER_MART, $0, NONE
+	map_header_2 PewterPokeCenter1F, PEWTER_POKECENTER_1F, $0, NONE
+	map_header_2 PewterPokeCEnter2FBeta, PEWTER_POKECENTER_2F_BETA, $0, NONE
+	map_header_2 PewterSnoozeSpeechHouse, PEWTER_SNOOZE_SPEECH_HOUSE, $0, NONE
+	map_header_2 OlivinePort, OLIVINE_PORT, $a, NONE
+	map_header_2 VermilionPort, VERMILION_PORT, $a, NONE
+	map_header_2 FastShip1F, FAST_SHIP_1F, $0, NONE
+	map_header_2 FastShipCabins_NNW_NNE_NE, FAST_SHIP_CABINS_NNW_NNE_NE, $0, NONE
+	map_header_2 FastShipCabins_SW_SSW_NW, FAST_SHIP_CABINS_SW_SSW_NW, $0, NONE
+	map_header_2 FastShipCabins_SE_SSE_CaptainsCabin, FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN, $0, NONE
+	map_header_2 FastShipB1F, FAST_SHIP_B1F, $0, NONE
+	map_header_2 OlivinePortPassage, OLIVINE_PORT_PASSAGE, $0, NONE
+	map_header_2 VermilionPortPassage, VERMILION_PORT_PASSAGE, $0, NONE
+	map_header_2 MountMoonSquare, MOUNT_MOON_SQUARE, $2d, NONE
+	map_header_2 MountMoonGiftShop, MOUNT_MOON_GIFT_SHOP, $0, NONE
+	map_header_2 TinTowerRoof, TIN_TOWER_ROOF, $0, NONE
+	map_header_2 IndigoPlateauPokeCenter1F, INDIGO_PLATEAU_POKECENTER_1F, $0, NONE
+	map_header_2 WillsRoom, WILLS_ROOM, $0, NONE
+	map_header_2 KogasRoom, KOGAS_ROOM, $0, NONE
+	map_header_2 BrunosRoom, BRUNOS_ROOM, $0, NONE
+	map_header_2 KarensRoom, KARENS_ROOM, $0, NONE
+	map_header_2 LancesRoom, LANCES_ROOM, $0, NONE
+	map_header_2 HallOfFame, HALL_OF_FAME, $0, NONE
+	map_header_2 FuchsiaMart, FUCHSIA_MART, $0, NONE
+	map_header_2 SafariZoneMainOffice, SAFARI_ZONE_MAIN_OFFICE, $0, NONE
+	map_header_2 FuchsiaGym, FUCHSIA_GYM, $0, NONE
+	map_header_2 FuchsiaBillSpeechHouse, FUCHSIA_BILL_SPEECH_HOUSE, $0, NONE
+	map_header_2 FuchsiaPokeCenter1F, FUCHSIA_POKECENTER_1F, $0, NONE
+	map_header_2 FuchsiaPokeCenter2FBeta, FUCHSIA_POKECENTER_2F_BETA, $0, NONE
+	map_header_2 SafariZoneWardensHome, SAFARI_ZONE_WARDENS_HOME, $0, NONE
+	map_header_2 Route15FuchsiaGate, ROUTE_15_FUCHSIA_GATE, $0, NONE
+	map_header_2 LavenderPokeCenter1F, LAVENDER_POKECENTER_1F, $0, NONE
+	map_header_2 LavenderPokeCenter2FBeta, LAVENDER_POKECENTER_2F_BETA, $0, NONE
+	map_header_2 MrFujisHouse, MR_FUJIS_HOUSE, $0, NONE
+	map_header_2 LavenderTownSpeechHouse, LAVENDER_TOWN_SPEECH_HOUSE, $0, NONE
+	map_header_2 LavenderNameRater, LAVENDER_NAME_RATER, $0, NONE
+	map_header_2 LavenderMart, LAVENDER_MART, $0, NONE
+	map_header_2 SoulHouse, SOUL_HOUSE, $0, NONE
+	map_header_2 LavRadioTower1F, LAV_RADIO_TOWER_1F, $0, NONE
+	map_header_2 Route8SaffronGate, ROUTE_8_SAFFRON_GATE, $0, NONE
+	map_header_2 Route12SuperRodHouse, ROUTE_12_SUPER_ROD_HOUSE, $0, NONE
+	map_header_2 SilverCavePokeCenter1F, SILVER_CAVE_POKECENTER_1F, $0, NONE
+	map_header_2 Route28FamousSpeechHouse, ROUTE_28_FAMOUS_SPEECH_HOUSE, $0, NONE
+	map_header_2 PokeCenter2F, POKECENTER_2F, $0, NONE
+	map_header_2 TradeCenter, TRADE_CENTER, $0, NONE
+	map_header_2 Colosseum, COLOSSEUM, $0, NONE
+	map_header_2 TimeCapsule, TIME_CAPSULE, $0, NONE
+	map_header_2 MobileTradeRoomMobile, MOBILE_TRADE_ROOM_MOBILE, $0, NONE
+	map_header_2 MobileBattleRoom, MOBILE_BATTLE_ROOM, $0, NONE
+	map_header_2 CeladonDeptStore1F, CELADON_DEPT_STORE_1F, $0, NONE
+	map_header_2 CeladonDeptStore2F, CELADON_DEPT_STORE_2F, $0, NONE
+	map_header_2 CeladonDeptStore3F, CELADON_DEPT_STORE_3F, $0, NONE
+	map_header_2 CeladonDeptStore4F, CELADON_DEPT_STORE_4F, $0, NONE
+	map_header_2 CeladonDeptStore5F, CELADON_DEPT_STORE_5F, $0, NONE
+	map_header_2 CeladonDeptStore6F, CELADON_DEPT_STORE_6F, $0, NONE
+	map_header_2 CeladonDeptStoreElevator, CELADON_DEPT_STORE_ELEVATOR, $0, NONE
+	map_header_2 CeladonMansion1F, CELADON_MANSION_1F, $0, NONE
+	map_header_2 CeladonMansion2F, CELADON_MANSION_2F, $0, NONE
+	map_header_2 CeladonMansion3F, CELADON_MANSION_3F, $0, NONE
+	map_header_2 CeladonMansionRoof, CELADON_MANSION_ROOF, $1, NONE
+	map_header_2 CeladonMansionRoofHouse, CELADON_MANSION_ROOF_HOUSE, $0, NONE
+	map_header_2 CeladonPokeCenter1F, CELADON_POKECENTER_1F, $0, NONE
+	map_header_2 CeladonPokeCenter2FBeta, CELADON_POKECENTER_2F_BETA, $0, NONE
+	map_header_2 CeladonGameCorner, CELADON_GAME_CORNER, $0, NONE
+	map_header_2 CeladonGameCornerPrizeRoom, CELADON_GAME_CORNER_PRIZE_ROOM, $0, NONE
+	map_header_2 CeladonGym, CELADON_GYM, $0, NONE
+	map_header_2 CeladonCafe, CELADON_CAFE, $0, NONE
+	map_header_2 Route16FuchsiaSpeechHouse, ROUTE_16_FUCHSIA_SPEECH_HOUSE, $0, NONE
+	map_header_2 Route16Gate, ROUTE_16_GATE, $0, NONE
+	map_header_2 Route7SaffronGate, ROUTE_7_SAFFRON_GATE, $0, NONE
+	map_header_2 Route1718Gate, ROUTE_17_18_GATE, $0, NONE
+	map_header_2 ManiasHouse, MANIAS_HOUSE, $0, NONE
+	map_header_2 CianwoodGym, CIANWOOD_GYM, $0, NONE
+	map_header_2 CianwoodPokeCenter1F, CIANWOOD_POKECENTER_1F, $0, NONE
+	map_header_2 CianwoodPharmacy, CIANWOOD_PHARMACY, $0, NONE
+	map_header_2 CianwoodCityPhotoStudio, CIANWOOD_CITY_PHOTO_STUDIO, $0, NONE
+	map_header_2 CianwoodLugiaSpeechHouse, CIANWOOD_LUGIA_SPEECH_HOUSE, $0, NONE
+	map_header_2 PokeSeersHouse, POKE_SEERS_HOUSE, $0, NONE
+	map_header_2 BattleTower1F, BATTLE_TOWER_1F, $0, NONE
+	map_header_2 BattleTowerBattleRoom, BATTLE_TOWER_BATTLE_ROOM, $0, NONE
+	map_header_2 BattleTowerElevator, BATTLE_TOWER_ELEVATOR, $0, NONE
+	map_header_2 BattleTowerHallway, BATTLE_TOWER_HALLWAY, $0, NONE
+	map_header_2 Route40BattleTowerGate, ROUTE_40_BATTLE_TOWER_GATE, $0, NONE
+	map_header_2 BattleTowerOutside, BATTLE_TOWER_OUTSIDE, $5, NONE
+	map_header_2 ViridianGym, VIRIDIAN_GYM, $0, NONE
+	map_header_2 ViridianNicknameSpeechHouse, VIRIDIAN_NICKNAME_SPEECH_HOUSE, $0, NONE
+	map_header_2 TrainerHouse1F, TRAINER_HOUSE_1F, $0, NONE
+	map_header_2 TrainerHouseB1F, TRAINER_HOUSE_B1F, $0, NONE
+	map_header_2 ViridianMart, VIRIDIAN_MART, $0, NONE
+	map_header_2 ViridianPokeCenter1F, VIRIDIAN_POKECENTER_1F, $0, NONE
+	map_header_2 ViridianPokeCenter2FBeta, VIRIDIAN_POKECENTER_2F_BETA, $0, NONE
+	map_header_2 Route2NuggetSpeechHouse, ROUTE_2_NUGGET_SPEECH_HOUSE, $0, NONE
+	map_header_2 Route2Gate, ROUTE_2_GATE, $0, NONE
+	map_header_2 VictoryRoadGate, VICTORY_ROAD_GATE, $0, NONE
+	map_header_2 ElmsLab, ELMS_LAB, $0, NONE
+	map_header_2 KrissHouse1F, KRISS_HOUSE_1F, $0, NONE
+	map_header_2 KrissHouse2F, KRISS_HOUSE_2F, $0, NONE
+	map_header_2 KrissNeighborsHouse, KRISS_NEIGHBORS_HOUSE, $0, NONE
+	map_header_2 ElmsHouse, ELMS_HOUSE, $0, NONE
+	map_header_2 Route26HealSpeechHouse, ROUTE_26_HEAL_SPEECH_HOUSE, $0, NONE
+	map_header_2 Route26DayofWeekSiblingsHouse, ROUTE_26_DAY_OF_WEEK_SIBLINGS_HOUSE, $0, NONE
+	map_header_2 Route27SandstormHouse, ROUTE_27_SANDSTORM_HOUSE, $0, NONE
+	map_header_2 Route2946Gate, ROUTE_29_46_GATE, $0, NONE
+	map_header_2 FightingDojo, FIGHTING_DOJO, $0, NONE
+	map_header_2 SaffronGym, SAFFRON_GYM, $0, NONE
+	map_header_2 SaffronMart, SAFFRON_MART, $0, NONE
+	map_header_2 SaffronPokeCenter1F, SAFFRON_POKECENTER_1F, $0, NONE
+	map_header_2 SaffronPokeCenter2FBeta, SAFFRON_POKECENTER_2F_BETA, $0, NONE
+	map_header_2 MrPsychicsHouse, MR_PSYCHICS_HOUSE, $0, NONE
+	map_header_2 SaffronTrainStation, SAFFRON_TRAIN_STATION, $0, NONE
+	map_header_2 SilphCo1F, SILPH_CO_1F, $0, NONE
+	map_header_2 CopycatsHouse1F, COPYCATS_HOUSE_1F, $0, NONE
+	map_header_2 CopycatsHouse2F, COPYCATS_HOUSE_2F, $0, NONE
+	map_header_2 Route5UndergroundEntrance, ROUTE_5_UNDERGROUND_ENTRANCE, $0, NONE
+	map_header_2 Route5SaffronCityGate, ROUTE_5_SAFFRON_CITY_GATE, $0, NONE
+	map_header_2 Route5CleanseTagSpeechHouse, ROUTE_5_CLEANSE_TAG_SPEECH_HOUSE, $0, NONE
+	map_header_2 CherrygroveMart, CHERRYGROVE_MART, $0, NONE
+	map_header_2 CherrygrovePokeCenter1F, CHERRYGROVE_POKECENTER_1F, $0, NONE
+	map_header_2 CherrygroveGymSpeechHouse, CHERRYGROVE_GYM_SPEECH_HOUSE, $0, NONE
+	map_header_2 GuideGentsHouse, GUIDE_GENTS_HOUSE, $0, NONE
+	map_header_2 CherrygroveEvolutionSpeechHouse, CHERRYGROVE_EVOLUTION_SPEECH_HOUSE, $0, NONE
+	map_header_2 Route30BerrySpeechHouse, ROUTE_30_BERRY_SPEECH_HOUSE, $0, NONE
+	map_header_2 MrPokemonsHouse, MR_POKEMONS_HOUSE, $0, NONE
+	map_header_2 Route31VioletGate, ROUTE_31_VIOLET_GATE, $0, NONE
--- a/misc/crystal_misc.asm
+++ b/misc/crystal_misc.asm
@@ -249,7 +249,7 @@
 	ld a, [hJoyPressed] ; $ff00+$a7
 	and $3
 	ret z
-	call Function1c07
+	call ExitMenu
 	call Function17ac1d
 	call Function17ac2a
 	ld hl, $d088
@@ -552,16 +552,16 @@
 	push de
 	ld a, $3
 	call Function17aae0
+rept 3
 	add a
-	add a
-	add a
+endr
 	add $0
 	push af
 	ld a, $4
 	call Function17aae0
+rept 3
 	add a
-	add a
-	add a
+endr
 	add $8
 	ld c, a
 	pop af
@@ -658,13 +658,15 @@
 Function17aac3: ; 17aac3 (5e:6ac3)
 	ld a, $b
 	push hl
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	pop hl
 	ld de, $14
 	add hl, de
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ret
 
 Function17aad0: ; 17aad0 (5e:6ad0)
--- a/misc/mobile_40.asm
+++ b/misc/mobile_40.asm
@@ -114,8 +114,9 @@
 	ld a, [wcd25]
 	ld e, a
 	ld d, $0
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [CreditsTimer]
 	call GetFarHalfword
 	ld a, [CreditsTimer]
@@ -308,7 +309,7 @@
 Function10020b: ; 10020b
 	xor a
 	ld [wc303], a
-	callba Function8c084
+	callba FadeBlackBGMap
 	callba Function106464
 	call HideSprites
 	call DelayFrame
@@ -326,7 +327,7 @@
 	push de
 	callba Function106464
 	call Function3f20
-	call Function1ad2
+	call DrawOnMap
 	hlcoord 1, 2
 	pop de
 	call PlaceString
@@ -796,7 +797,7 @@
 Function100504: ; 100504
 	push de
 	call Function3f20
-	call Function1ad2
+	call DrawOnMap
 	pop de
 	hlcoord 4, 2
 	call PlaceString
@@ -829,7 +830,7 @@
 
 Function100534: ; 100534
 	call Function100513
-	call Function1ad2
+	call DrawOnMap
 	call Function321c
 	ld a, [wcd28]
 	inc a
@@ -903,7 +904,7 @@
 	ld [wcfa9], a
 
 .asm_1005a6
-	call Function1c07
+	call ExitMenu
 	ld a, [wcd26]
 	set 7, a
 	ld [wcd26], a
@@ -954,7 +955,7 @@
 	xor a
 	ld [wcfa9], a
 .asm_1005f0
-	call Function1c07
+	call ExitMenu
 	ld a, [wcd26]
 	set 7, a
 	ld [wcd26], a
@@ -1157,9 +1158,9 @@
 	ld hl, $a800
 	call GetSRAMBank
 	xor a
+rept 3
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	call CloseSRAM
 	ret
 ; 10070d
@@ -1792,7 +1793,7 @@
 	call Function100ed4
 	ld a, [wcf88]
 	ld [wd0d2], a
-	call Function1c07
+	call ExitMenu
 	ret
 ; 100b45
 
@@ -1828,7 +1829,7 @@
 	rst FarCall
 	callba Function24085
 	callba MobileTextBorder
-	call Function1ad2
+	call DrawOnMap
 	call Function321c
 	callba Function2411a
 	ld hl, wcfa5
@@ -1892,8 +1893,9 @@
 	ld a, [wcfa9]
 	ld b, a
 	ld a, [wd0eb]
+rept 2
 	inc a
-	inc a
+endr
 	cp b
 	jp nz, .asm_100bcb
 	ld a, $1
@@ -2078,11 +2080,11 @@
 
 Function100d67: ; 100d67
 	ld hl, MenuDataHeader_100d88
-	call Function1d3c
+	call CopyMenuDataHeader
 	xor a
 	ld [hBGMapMode], a
 	call Function1cbb
-	call Function1ad2
+	call DrawOnMap
 	call Function1c89
 	call WaitBGMap
 	call Function1c66
@@ -2513,8 +2515,9 @@
 Function101050: ; 101050
 	call Function10107d
 	ld a, [OTPartyCount]
+rept 2
 	ld hl, $c608
-	ld hl, $c608
+endr
 	ld bc, $01b3
 	call Function1010de
 	ld hl, wc7bb
@@ -2809,7 +2812,7 @@
 ; 101251
 
 Function101251: ; 101251
-	call Function1ad2
+	call DrawOnMap
 	call ResetWindow
 	ld hl, UnknownText_0x1021f4
 	call Function1021e0
@@ -2826,7 +2829,7 @@
 ; 10126c
 
 Function10126c: ; 10126c
-	call Function1ad2
+	call DrawOnMap
 	callba Script_reloadmappart
 	ld hl, UnknownText_0x1021f4
 	call Function1021e0
@@ -3015,7 +3018,7 @@
 	call Function1d7d
 	call Function2bae
 	callba Function106464
-	call Function1ad2
+	call DrawOnMap
 	call Function2b5c
 	ret
 ; 1013c0
@@ -4171,7 +4174,7 @@
 	call Function101ee4
 	ld hl, wcd29
 	set 5, [hl]
-	call Function1ad2
+	call DrawOnMap
 	ld a, [wcd25]
 	inc a
 	ld [wcd25], a
@@ -4494,7 +4497,7 @@
 
 Function101db2: ; 101db2
 	callba Function103302
-	call Function1c07
+	call ExitMenu
 	ld hl, wcd29
 	set 5, [hl]
 	jr c, .asm_101dca
@@ -4696,8 +4699,9 @@
 Function101ee4: ; 101ee4
 	ld d, 0
 	ld hl, Unknown_101ef5
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld d, [hl]
 	ld e, a
@@ -4972,16 +4976,16 @@
 	call Function10218d
 	call Function102180
 	ld hl, UnknownText_0x1021d1
-	call Function1d4f
+	call MenuTextBox
 	ld de, SFX_LEVEL_UP
 	call PlaySFX
 	call Functiona36
-	call Function1c07
+	call ExitMenu
 	call Function10219f
 	ld hl, UnknownText_0x1021d6
-	call Function1d4f
+	call MenuTextBox
 	call YesNoBox
-	call Function1c07
+	call ExitMenu
 	jr c, .asm_10217c
 	call Function1021b8
 	jr c, .asm_10217c
@@ -5051,9 +5055,9 @@
 ; 1021e0
 
 Function1021e0: ; 1021e0
-	call Function1d4f
+	call MenuTextBox
 	call Functiona36
-	call Function1c07
+	call ExitMenu
 	ret
 ; 1021ea
 
@@ -6207,7 +6211,7 @@
 
 Function102996: ; 102996
 	call Function1029af
-	call Function1c07
+	call ExitMenu
 	scf
 	ret
 ; 10299e
@@ -6281,7 +6285,7 @@
 	and [hl]
 	ret z
 	push af
-	call Function1c07
+	call ExitMenu
 	pop af
 	ld a, [wcfa9]
 	cp $1
@@ -7143,9 +7147,9 @@
 	ld a, [wcf44]
 	ld l, a
 	ld h, 0
+rept 3
 	add hl, hl
-	add hl, hl
-	add hl, hl
+endr
 	ld bc, Unknown_103112
 	add hl, bc
 	ld b, $30
@@ -7164,8 +7168,9 @@
 	inc hl
 	push hl
 
+rept 2
 	add a
-	add a
+endr
 
 	add Unknown_10327a % $100
 	ld l, a
@@ -7316,7 +7321,7 @@
 	ld a, [hl]
 	ld [wd1ee], a
 	call Function1034be
-	call Function1ad2
+	call DrawOnMap
 	callba Function104000
 	ld a, $1
 	ld [wd1f0], a
@@ -7628,8 +7633,9 @@
 	callba Function10138b
 	ld b, 0
 	ld hl, Unknown_1035d7
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -7685,8 +7691,8 @@
 	ld [wcf88], a
 
 .asm_103622
-	call Function1d81
-	call Function1c17
+	call InterpretMenu2
+	call WriteBackup
 	jr c, .asm_10363b
 	ld a, [wcfa9]
 	ld [ScriptVar], a
@@ -7733,7 +7739,7 @@
 	ret
 ; 10366e
 
-Function10366e: ; 10366e
+Mobile_SelectThreeMons: ; 10366e
 	callba Function10632f
 	bit 7, c
 	jr z, .asm_10369b
@@ -7773,8 +7779,8 @@
 	jr c, .asm_1036f4
 	ld hl, MenuDataHeader_103747
 	call LoadMenuDataHeader
-	call Function1d81
-	call Function1c07
+	call InterpretMenu2
+	call ExitMenu
 	jr c, .asm_1036f4
 	ld a, [wcfa9]
 	cp $1
@@ -7815,7 +7821,7 @@
 
 Function103700: ; 103700
 	ld c, $a
-	ld hl, wdc20
+	ld hl, SwarmFlags
 	bit 4, [hl]
 	jr z, .asm_10370f
 	callba Function1008a6
@@ -7913,11 +7919,11 @@
 
 Function10378c: ; 10378c
 	ld c, $0
-	ld hl, wdc20
+	ld hl, SwarmFlags
 	bit 4, [hl]
 	jr nz, .asm_10379c
 	ld c, $1
-	ld hl, wdc20
+	ld hl, SwarmFlags
 	set 4, [hl]
 
 .asm_10379c
@@ -7939,7 +7945,7 @@
 	ld a, c
 	and a
 	ret z
-	ld hl, wdc20
+	ld hl, SwarmFlags
 	res 4, [hl]
 	ret
 ; 1037c2
@@ -8030,8 +8036,9 @@
 	ld [wdc60], a
 	xor a
 	ld hl, wdc5c
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 	ld hl, UnknownText_0x103876
 	call PrintText
--- a/misc/mobile_42.asm
+++ b/misc/mobile_42.asm
@@ -339,8 +339,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_10828a
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -920,8 +921,9 @@
 	ld a, [hSCX]
 	cp $e0
 	jr z, .asm_108791
+rept 2
 	dec a
-	dec a
+endr
 	ld [hSCX], a
 	cp $f8
 	jr nz, .asm_10878a
@@ -938,8 +940,9 @@
 	ld a, [hSCY]
 	cp $f8
 	jr z, .asm_1087cb
+rept 2
 	dec a
-	dec a
+endr
 	ld [hSCY], a
 	cp $40
 	jr z, .asm_1087a9
@@ -1089,8 +1092,9 @@
 	ld a, [hSCY]
 	cp $78
 	jr z, .asm_1088ee
+rept 2
 	inc a
-	inc a
+endr
 	ld [hSCY], a
 	cp $30
 	jr z, .asm_1088c5
@@ -1129,8 +1133,9 @@
 	ld a, [hSCX]
 	cp $c
 	jr z, .asm_108906
+rept 2
 	inc a
-	inc a
+endr
 	ld [hSCX], a
 	cp $f8
 	jr nz, .asm_1088e7
--- a/misc/mobile_45.asm
+++ b/misc/mobile_45.asm
@@ -152,8 +152,9 @@
 Function11425c: ; 11425c
 	ld [wdc02], a
 	pop af
+rept 2
 	ld [$ff8c], a
-	ld [$ff8c], a
+endr
 	ld [$4000], a
 	ret
 ; 114268
@@ -427,7 +428,7 @@
 	pop hl
 	push af
 	ld a, [hli]
-	ld [wdc01], a
+	ld [wCurrentMapSignpostCount], a
 	ld [$ff8c], a
 	ld [$4000], a
 	ld a, [hli]
@@ -622,12 +623,13 @@
 
 Function1144d1: ; 1144d1
 	call Function114561
+rept 2
 	dec de
-	dec de
+endr
 	push de
+rept 3
 	inc de
-	inc de
-	inc de
+endr
 	inc hl
 	ld a, [de]
 	ld [hli], a
@@ -673,7 +675,7 @@
 .asm_11451c
 	pop hl
 	ld a, [hli]
-	ld [wdc01], a
+	ld [wCurrentMapSignpostCount], a
 	ld [$ff8c], a
 	ld [$4000], a
 	ld e, [hl]
@@ -690,7 +692,7 @@
 .asm_114537
 	ld hl, wdc06
 	ld a, [hl]
-	ld [wdc01], a
+	ld [wCurrentMapSignpostCount], a
 	ld [$ff8c], a
 	ld [$4000], a
 	ld hl, wdc09
@@ -989,8 +991,9 @@
 	and a
 	jr nz, .asm_1146e8
 .asm_1146da
+rept 2
 	dec bc
-	dec bc
+endr
 	call Function1149cc
 	and a
 	jr nz, .asm_1146e4
@@ -1076,8 +1079,9 @@
 	ld a, [wdc0e]
 	cp $3
 	jr nz, .asm_114773
+rept 2
 	dec bc
-	dec bc
+endr
 
 .asm_114773
 	call Function1149cc
@@ -1255,7 +1259,7 @@
 Function114867: ; 114867
 	ld hl, wdc06
 	ld a, [hli]
-	ld [wdc01], a
+	ld [wCurrentMapSignpostCount], a
 	ld [$ff8c], a
 	ld [$4000], a
 	ld e, [hl]
@@ -1283,7 +1287,7 @@
 	inc e
 	call z, Function1148b9
 	ld hl, wdc06
-	ld a, [wdc01]
+	ld a, [wCurrentMapSignpostCount]
 	ld [hli], a
 	ld [hl], e
 	inc hl
@@ -1313,7 +1317,7 @@
 
 Function1148b9: ; 1148b9
 	push bc
-	ld bc, wdc01
+	ld bc, wCurrentMapSignpostCount
 	call Function115d80
 	pop bc
 	ret
@@ -1322,7 +1326,7 @@
 Function1148c2: ; 1148c2
 	ld hl, wdc06
 	ld a, [hli]
-	ld [wdc01], a
+	ld [wCurrentMapSignpostCount], a
 	ld [$ff8c], a
 	ld [$4000], a
 	ld e, [hl]
@@ -1375,7 +1379,7 @@
 	inc e
 	call z, Function114944
 	ld hl, wdc06
-	ld a, [wdc01]
+	ld a, [wCurrentMapSignpostCount]
 	ld [hli], a
 	ld [hl], e
 	inc hl
@@ -1413,7 +1417,7 @@
 
 Function114944: ; 114944
 	push bc
-	ld bc, wdc01
+	ld bc, wCurrentMapSignpostCount
 	call Function115d80
 	pop bc
 	ret
@@ -1422,7 +1426,7 @@
 Function11494d: ; 11494d
 	ld hl, wdc06
 	ld a, [hli]
-	ld [wdc01], a
+	ld [wCurrentMapSignpostCount], a
 	ld [$ff8c], a
 	ld [$4000], a
 	ld e, [hl]
@@ -1467,7 +1471,7 @@
 	inc e
 	call z, Function1149c3
 	ld hl, wdc06
-	ld a, [wdc01]
+	ld a, [wCurrentMapSignpostCount]
 	ld [hli], a
 	ld [hl], e
 	inc hl
@@ -1505,7 +1509,7 @@
 
 Function1149c3: ; 1149c3
 	push bc
-	ld bc, wdc01
+	ld bc, wCurrentMapSignpostCount
 	call Function115d80
 	pop bc
 	ret
@@ -1514,7 +1518,7 @@
 Function1149cc: ; 1149cc
 	ld hl, wdc06
 	ld a, [hl]
-	ld [wdc01], a
+	ld [wCurrentMapSignpostCount], a
 	ld [$ff8c], a
 	ld [$4000], a
 	push de
@@ -1546,7 +1550,7 @@
 	inc e
 	call z, Function114a0f
 	ld hl, wdc06
-	ld a, [wdc01]
+	ld a, [wCurrentMapSignpostCount]
 	ld [hli], a
 	ld [hl], e
 	inc hl
@@ -1563,7 +1567,7 @@
 
 Function114a0f: ; 114a0f
 	push bc
-	ld bc, wdc01
+	ld bc, wCurrentMapSignpostCount
 	call Function115d80
 	pop bc
 	ret
@@ -1861,18 +1865,15 @@
 .asm_114b8c
 	pop hl
 	xor a
+rept 6
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	jr .asm_114b82
 
 .asm_114b96
 	ld hl, wdc06
 	ld a, [hli]
-	ld [wdc01], a
+	ld [wCurrentMapSignpostCount], a
 	ld [$ff8c], a
 	ld [$4000], a
 	ld e, [hl]
@@ -1922,7 +1923,7 @@
 	jr z, .asm_114bff
 	pop hl
 	ld a, [hli]
-	ld [wdc01], a
+	ld [wCurrentMapSignpostCount], a
 	ld [$ff8c], a
 	ld [$4000], a
 	ld a, [hli]
@@ -2030,8 +2031,9 @@
 	inc de
 	cp $3f
 	jr nz, .asm_114c62
+rept 2
 	dec de
-	dec de
+endr
 .asm_114c75
 	ld a, [hli]
 	cp $3f
@@ -2051,8 +2053,9 @@
 	ld a, [hli]
 	cp $3d
 	jr nz, .asm_114c84
+rept 2
 	dec bc
-	dec bc
+endr
 	ld a, l
 	ld [wdc03], a
 	ld a, h
@@ -2141,10 +2144,9 @@
 	call Function114d99
 	pop hl
 	push hl
+rept 4
 	inc hl
-	inc hl
-	inc hl
-	inc hl
+endr
 	ld a, [hld]
 	cp b
 	jr c, .asm_114d2d
@@ -2152,7 +2154,7 @@
 .asm_114d11
 	pop hl
 	ld a, [hli]
-	ld [wdc01], a
+	ld [wCurrentMapSignpostCount], a
 	ld [$ff8c], a
 	ld [$4000], a
 	ld a, [hli]
@@ -2317,8 +2319,9 @@
 	add hl, de
 	ld b, h
 	ld c, l
+rept 2
 	inc bc
-	inc bc
+endr
 	xor a
 	ret
 ; 114df1
@@ -2456,7 +2459,7 @@
 Function114ea0: ; 114ea0
 	ld hl, wdc06
 	ld a, [hli]
-	ld [wdc01], a
+	ld [wCurrentMapSignpostCount], a
 	ld [$ff8c], a
 	ld [$4000], a
 	ld a, [hli]
@@ -2481,7 +2484,7 @@
 	inc e
 	call z, Function114ee0
 	ld hl, wdc06
-	ld a, [wdc01]
+	ld a, [wCurrentMapSignpostCount]
 	ld [hli], a
 	ld a, e
 	ld [hli], a
@@ -2502,7 +2505,7 @@
 
 Function114ee0: ; 114ee0
 	push bc
-	ld bc, wdc01
+	ld bc, wCurrentMapSignpostCount
 	call Function115d80
 	pop bc
 	ret
@@ -2513,8 +2516,9 @@
 	ld a, b
 	ld [hli], a
 	ld a, c
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ld a, [de]
 	ld [hli], a
 	inc de
@@ -2740,7 +2744,7 @@
 	push hl
 	ld hl, wdc06
 	ld a, [hli]
-	ld [wdc01], a
+	ld [wCurrentMapSignpostCount], a
 	ld [$ff8c], a
 	ld [$4000], a
 	ld a, [hli]
@@ -2767,7 +2771,7 @@
 
 .asm_115046
 	ld hl, wdc06
-	ld a, [wdc01]
+	ld a, [wCurrentMapSignpostCount]
 	ld [hli], a
 	ld a, e
 	ld [hli], a
@@ -2786,7 +2790,7 @@
 
 Function115059: ; 115059
 	push bc
-	ld bc, wdc01
+	ld bc, wCurrentMapSignpostCount
 	call Function115d80
 	pop bc
 	ret
@@ -2912,8 +2916,9 @@
 
 .asm_11510b
 	pop hl
+rept 2
 	dec hl
-	dec hl
+endr
 	push de
 	call Function1158c2
 	pop de
@@ -2952,7 +2957,7 @@
 Function115136: ; 115136
 	ld hl, wdc06
 	ld a, [hli]
-	ld [wdc01], a
+	ld [wCurrentMapSignpostCount], a
 	ld [$ff8c], a
 	ld [$4000], a
 	ld a, [hli]
@@ -2979,7 +2984,7 @@
 
 .asm_11515d
 	ld hl, wdc06
-	ld a, [wdc01]
+	ld a, [wCurrentMapSignpostCount]
 	ld [hli], a
 	ld a, e
 	ld [hli], a
@@ -2998,7 +3003,7 @@
 
 Function115170: ; 115170
 	push bc
-	ld bc, wdc01
+	ld bc, wCurrentMapSignpostCount
 	call Function115d80
 	pop bc
 	ret
@@ -3007,7 +3012,7 @@
 Function115179: ; 115179
 	ld hl, wdc06
 	ld a, [hli]
-	ld [wdc01], a
+	ld [wCurrentMapSignpostCount], a
 	ld [$ff8c], a
 	ld [$4000], a
 	ld a, [hli]
@@ -3102,7 +3107,7 @@
 	inc e
 	call z, Function11520e
 	ld hl, wdc06
-	ld a, [wdc01]
+	ld a, [wCurrentMapSignpostCount]
 	ld [hli], a
 	ld a, e
 	ld [hli], a
@@ -3117,7 +3122,7 @@
 
 Function11520e: ; 11520e
 	push bc
-	ld bc, wdc01
+	ld bc, wCurrentMapSignpostCount
 	call Function115d80
 	pop bc
 	ret
@@ -3127,7 +3132,7 @@
 	push hl
 	ld hl, wdc06
 	ld a, [hli]
-	ld [wdc01], a
+	ld [wCurrentMapSignpostCount], a
 	ld [$ff8c], a
 	ld [$4000], a
 	ld a, [hli]
@@ -3166,7 +3171,7 @@
 
 .asm_115252
 	ld hl, wdc06
-	ld a, [wdc01]
+	ld a, [wCurrentMapSignpostCount]
 	ld [hli], a
 	ld a, e
 	ld [hli], a
@@ -3211,7 +3216,7 @@
 
 Function115286: ; 115286
 	push bc
-	ld bc, wdc01
+	ld bc, wCurrentMapSignpostCount
 	call Function115d80
 	pop bc
 	ret
@@ -3429,8 +3434,9 @@
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [de]
 	ld [hli], a
 	inc de
@@ -3610,7 +3616,7 @@
 	ld [de], a
 	ld hl, RightOrnament
 	ld a, [hli]
-	ld [wdc01], a
+	ld [wCurrentMapSignpostCount], a
 	ld [$ff8c], a
 	ld [$4000], a
 	ld e, [hl]
@@ -3619,7 +3625,7 @@
 	ld hl, $ddc8
 	call Function115d6a
 	ld hl, RightOrnament
-	ld a, [wdc01]
+	ld a, [wCurrentMapSignpostCount]
 	ld [hli], a
 	ld [hl], e
 	inc hl
@@ -3845,7 +3851,7 @@
 
 Function11560a: ; 11560a
 	ld a, [wdc06]
-	ld [wdc01], a
+	ld [wCurrentMapSignpostCount], a
 	ld a, [wdc17]
 	ld [wdc00], a
 	ld [$ff8c], a
@@ -3920,7 +3926,7 @@
 	inc hl
 	ld [hl], d
 	pop bc
-	ld a, [wdc01]
+	ld a, [wCurrentMapSignpostCount]
 	ld [$ff8c], a
 	ld [$4000], a
 	ld hl, wdc07
@@ -3942,7 +3948,7 @@
 	jr nz, .asm_11564d
 
 .asm_1156a9
-	ld a, [wdc01]
+	ld a, [wCurrentMapSignpostCount]
 	ld [wdc06], a
 	xor a
 	ret
@@ -4285,7 +4291,7 @@
 	pop hl
 	ld hl, wdc07
 	ld a, [hli]
-	ld [wdc01], a
+	ld [wCurrentMapSignpostCount], a
 	ld [$ff8c], a
 	ld [$4000], a
 	ld e, [hl]
@@ -4294,7 +4300,7 @@
 	ld hl, PartyMon5Speed
 	call Function115d6a
 	ld hl, wdc07
-	ld a, [wdc01]
+	ld a, [wCurrentMapSignpostCount]
 	ld [hli], a
 	ld a, e
 	ld [hli], a
@@ -4330,7 +4336,7 @@
 
 Function1158c2: ; 1158c2
 	ld a, e
-	ld [wdc20], a
+	ld [SwarmFlags], a
 	ld a, d
 	ld [wdc21], a
 	xor a
@@ -4351,7 +4357,7 @@
 	ld l, c
 	ld h, b
 	xor a
-	ld [wdc1f], a
+	ld [WeeklyFlags], a
 
 .asm_1158e5
 	ld b, $3
@@ -4376,7 +4382,7 @@
 	push hl
 	dec hl
 	ld a, c
-	ld [wdc1f], a
+	ld [WeeklyFlags], a
 .asm_115908
 	xor a
 	ld [hld], a
@@ -4388,9 +4394,9 @@
 	ld bc, $0003
 
 .asm_115914
+rept 3
 	dec bc
-	dec bc
-	dec bc
+endr
 	ld a, c
 	ld [wdc19], a
 	ld a, b
@@ -4397,7 +4403,7 @@
 	ld [wdc1a], a
 	push de
 	push hl
-	ld hl, wdc20
+	ld hl, SwarmFlags
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -4404,10 +4410,9 @@
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
+rept 4
 	inc de
-	inc de
-	inc de
-	inc de
+endr
 	ld [hl], d
 	dec hl
 	ld [hl], e
@@ -4442,8 +4447,9 @@
 	ld a, $3f
 	and c
 	ld [hld], a
+rept 2
 	dec hl
-	dec hl
+endr
 	pop de
 	ld b, h
 	ld c, l
@@ -4492,7 +4498,7 @@
 	ld a, $a
 	ld [hli], a
 	push hl
-	ld hl, wdc20
+	ld hl, SwarmFlags
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -4499,8 +4505,9 @@
 	ld a, [hli]
 	ld c, a
 	ld b, [hl]
+rept 2
 	inc bc
-	inc bc
+endr
 	ld a, b
 	ld [hld], a
 	ld [hl], c
@@ -4517,7 +4524,7 @@
 	jp nz, .asm_1158e5
 
 .asm_1159c4
-	ld a, [wdc1f]
+	ld a, [WeeklyFlags]
 	cp $0
 	jr z, .asm_1159d8
 	push hl
@@ -4776,8 +4783,9 @@
 	ld a, [wdc23]
 	cp $4
 	jr z, .asm_115b43
+rept 2
 	inc hl
-	inc hl
+endr
 	jr .asm_115b43
 
 .asm_115b36
@@ -4847,7 +4855,7 @@
 	pop hl
 	ld hl, wdc07
 	ld a, [hli]
-	ld [wdc01], a
+	ld [wCurrentMapSignpostCount], a
 	ld [$ff8c], a
 	ld [$4000], a
 	ld e, [hl]
@@ -4856,7 +4864,7 @@
 	ld hl, wdc26
 	call Function115d6a
 	ld hl, wdc07
-	ld a, [wdc01]
+	ld a, [wCurrentMapSignpostCount]
 	ld [hli], a
 	ld a, e
 	ld [hli], a
@@ -4958,8 +4966,9 @@
 	ret
 
 .asm_115c33
+rept 2
 	dec hl
-	dec hl
+endr
 	xor a
 	ld [hl], a
 	ld a, $1
@@ -4984,9 +4993,9 @@
 
 Function115c49: ; 115c49
 	ld a, e
-	ld [wdc1f], a
+	ld [WeeklyFlags], a
 	ld a, d
-	ld [wdc20], a
+	ld [SwarmFlags], a
 	xor a
 	ld [de], a
 	inc de
@@ -5027,10 +5036,9 @@
 	ld c, a
 	ld a, [wdc1a]
 	ld b, a
+rept 4
 	dec bc
-	dec bc
-	dec bc
-	dec bc
+endr
 .asm_115c8c
 	ld a, [de]
 	cp $d
@@ -5055,7 +5063,7 @@
 	ld [wdc1a], a
 	push de
 	push hl
-	ld hl, wdc1f
+	ld hl, WeeklyFlags
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -5062,9 +5070,9 @@
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
+rept 3
 	inc de
-	inc de
-	inc de
+endr
 	ld [hl], d
 	dec hl
 	ld [hl], e
@@ -5166,9 +5174,9 @@
 .asm_115d38
 	push de
 	push hl
-	ld a, [wdc1f]
+	ld a, [WeeklyFlags]
 	ld l, a
-	ld a, [wdc20]
+	ld a, [SwarmFlags]
 	ld h, a
 	ld e, [hl]
 	inc hl
@@ -5230,7 +5238,7 @@
 
 Function115d77: ; 115d77
 	push bc
-	ld bc, wdc01
+	ld bc, wCurrentMapSignpostCount
 	call Function115d80
 	pop bc
 	ret
@@ -5627,8 +5635,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_1161c7
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -5919,7 +5928,7 @@
 	call ByteFill
 	ld a, $90
 	ld [hWY], a
-	call Function1ad2
+	call DrawOnMap
 	pop af
 	ld [rSVBK], a
 	callba Function104061
@@ -5962,7 +5971,7 @@
 	call DelayFrame
 	ld a, $90
 	ld [hWY], a
-	call Function1ad2
+	call DrawOnMap
 	callba Function14157
 	pop af
 	ld [rSVBK], a
@@ -6210,8 +6219,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_1165af
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -7726,8 +7736,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_117728
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -8021,13 +8032,13 @@
 	ld a, [wcd4e]
 	and a
 	jr nz, .asm_117939
-	call Function1c07
+	call ExitMenu
 	ld a, $1
 	ld [wcd4f], a
 	jp Function117a0a
 .asm_117939
-	call Function1c07
-	call Function1c07
+	call ExitMenu
+	call ExitMenu
 	jp Function117a0a
 
 Function117942: ; 117942 (45:7942)
@@ -8055,7 +8066,7 @@
 	ld hl, wcd4e
 	dec [hl]
 	ret nz
-	call Function1c07
+	call ExitMenu
 asm_11797e: ; 11797e (45:797e)
 	ld a, $80
 	ld [wcd49], a
@@ -8078,7 +8089,7 @@
 	ld hl, wcd4e
 	dec [hl]
 	ret nz
-	call Function1c07
+	call ExitMenu
 	ld a, $1
 	ld [wcd49], a
 	ret
@@ -8195,8 +8206,9 @@
 	ld e, a
 	ld d, $0
 	ld hl, Pointers117af8
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -8285,13 +8297,13 @@
 	ld a, [wcf64]
 	and a
 	jr nz, .asm_117ba4 ; 0x117b93 $f
-	call Function1c07
-	call Function1c07
+	call ExitMenu
+	call ExitMenu
 	callba Function104061
 	jp Function117cdd
 .asm_117ba4
-	call Function1c07
-	call Function1c07
+	call ExitMenu
+	call ExitMenu
 	callba Function104061
 	ld a, $80
 	ld [wcf63], a
@@ -8395,7 +8407,7 @@
 	add hl, de
 	dec c
 	jr nz, .asm_117c71 ; 0x117c7b $f4
-	call Function4b6
+	call FadeToWhite
 	pop af
 	ld [rSVBK], a
 	ld a, $80
@@ -9023,8 +9035,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_1184b4
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -9067,8 +9080,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_1184fb
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -9124,8 +9138,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_11855c
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -9156,8 +9171,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_11858b
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -9200,8 +9216,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_1185d2
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -9257,8 +9274,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_118633
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -9304,8 +9322,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_118680
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -9345,8 +9364,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_1186c1
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -9387,8 +9407,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_118704
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -9436,8 +9457,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_118755
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -9861,7 +9883,7 @@
 	push af
 	ld a, $1
 	ld [rSVBK], a
-	call Function1c17
+	call WriteBackup
 	pop af
 	ld [rSVBK], a
 	ld a, [wcd38]
@@ -9885,7 +9907,7 @@
 	push af
 	ld a, $1
 	ld [rSVBK], a
-	call Function1c17
+	call WriteBackup
 	pop af
 	ld [rSVBK], a
 	ld a, $7
@@ -10071,8 +10093,9 @@
 	jr nz, .asm_118b8c
 	dec hl
 	xor a
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ret
 ; 118b9a
 
@@ -10272,8 +10295,9 @@
 	ld a, [hld]
 	cp $2f
 	jr nz, .asm_118e3e
+rept 2
 	inc hl
-	inc hl
+endr
 	ld de, wcd85
 	ld c, $4
 .asm_118e4a
@@ -11132,8 +11156,9 @@
 	ld c, a
 	ld a, [wd001]
 	ld b, a
+rept 2
 	dec bc
-	dec bc
+endr
 	ld hl, wd002
 	ld a, [hli]
 	ld e, a
@@ -11298,10 +11323,9 @@
 	ld a, $10
 	cp b
 	jr z, .asm_119536
+rept 4
 	inc hl
-	inc hl
-	inc hl
-	inc hl
+endr
 	jr .asm_11957a
 .asm_119536
 	ld a, [hli]
@@ -11324,8 +11348,9 @@
 .asm_119552
 	inc hl
 .asm_119553
+rept 2
 	inc hl
-	inc hl
+endr
 	jr .asm_11955b
 .asm_119557
 	ld de, $14
@@ -11670,8 +11695,9 @@
 	ld a, [hld]
 	cp $58
 	jr z, .asm_11975b
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, d
 	dec a
 	jr z, .asm_11978e
@@ -12253,8 +12279,9 @@
 	ld a, [de]
 	cp $d
 	jr nz, .asm_119b85
+rept 2
 	inc de
-	inc de
+endr
 .asm_119b93
 	ld a, [de]
 	inc de
@@ -12310,9 +12337,9 @@
 	ld [hld], a
 	dec hl
 	pop de
+rept 3
 	inc hl
-	inc hl
-	inc hl
+endr
 	ld a, h
 	cp $e0
 	jr c, .asm_119b93
@@ -12792,8 +12819,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_119efd
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -12896,7 +12924,7 @@
 	ld a, [wcd44]
 	and a
 	jr nz, .asm_119fef
-	call Function1c07
+	call ExitMenu
 	call Function11a63c
 	xor a
 	ld [ScriptVar], a
@@ -12904,7 +12932,7 @@
 	ld a, [ScriptVar]
 	and a
 	jr z, .asm_119fd4
-	call Function1c07
+	call ExitMenu
 	callba Function104061
 	callba Function115dc3
 	ld a, [wcd33]
@@ -12927,8 +12955,8 @@
 	ret
 
 .asm_119fef
-	call Function1c07
-	call Function1c07
+	call ExitMenu
+	call ExitMenu
 	callba Function104061
 	ld a, [wcd45]
 	ld [wcf66], a
@@ -13003,7 +13031,7 @@
 	callba Function117ab4
 	callba Function106462
 	callba Function106464
-	call Function1c07
+	call ExitMenu
 	callba Function104061
 	callba Function115d99
 	ld c, $0
@@ -13026,7 +13054,7 @@
 	callba Function17d3f6
 	callba Function106462
 	callba Function106464
-	call Function1c07
+	call ExitMenu
 	callba Function104061
 	callba Function115d99
 	ld c, $0
@@ -13118,7 +13146,7 @@
 	ld a, [wcd44]
 	and a
 	jr nz, .asm_11a1b6
-	call Function1c07
+	call ExitMenu
 	callba Function104061
 	call Function11a63c
 	hlcoord 4, 2
@@ -13128,7 +13156,7 @@
 	ret
 
 .asm_11a1b6
-	call Function1c07
+	call ExitMenu
 	callba Function104061
 	ld a, [wcd45]
 	ld [wcf66], a
@@ -13259,7 +13287,7 @@
 	ld a, [wcd44]
 	and a
 	jr nz, .asm_11a2c4
-	call Function1c07
+	call ExitMenu
 	callba Function104061
 	ld a, [wcd46]
 	cp $0
@@ -13281,7 +13309,7 @@
 	call PlayClickSFX
 
 .asm_11a2c4
-	call Function1c07
+	call ExitMenu
 	callba Function104061
 	and a
 	ret
@@ -13360,7 +13388,7 @@
 	ret
 
 .asm_11a346
-	call Function1c07
+	call ExitMenu
 	callba Function104061
 	callba Function115dc3
 	and a
@@ -13404,7 +13432,7 @@
 	ld a, [wcd44]
 	and a
 	jr nz, .asm_11a3b1
-	call Function1c07
+	call ExitMenu
 	callba Function104061
 	call Function11a63c
 	hlcoord 4, 2
@@ -13414,7 +13442,7 @@
 	ret
 
 .asm_11a3b1
-	call Function1c07
+	call ExitMenu
 	callba Function104061
 	ld a, [wcd45]
 	ld [wcf66], a
@@ -13479,7 +13507,7 @@
 	ld a, [wcd44]
 	and a
 	jr nz, .asm_11a43f
-	call Function1c07
+	call ExitMenu
 	callba Function104061
 	call Function11a63c
 	hlcoord 4, 2
@@ -13489,7 +13517,7 @@
 	ret
 
 .asm_11a43f
-	call Function1c07
+	call ExitMenu
 	callba Function104061
 	ld a, $1c
 	ld [wcf66], a
@@ -13550,7 +13578,7 @@
 	ld a, [wcd44]
 	and a
 	jr nz, .asm_11a4c7
-	call Function1c07
+	call ExitMenu
 	callba Function104061
 	call Function11a63c
 	hlcoord 4, 2
@@ -13562,7 +13590,7 @@
 	ret
 
 .asm_11a4c7
-	call Function1c07
+	call ExitMenu
 	callba Function104061
 	ld a, [wcd46]
 	ld [wcf66], a
@@ -13597,7 +13625,7 @@
 	ld a, [wcd44]
 	and a
 	jr nz, .asm_11a522
-	call Function1c07
+	call ExitMenu
 	callba Function104061
 	call Function11a63c
 	hlcoord 4, 2
@@ -13607,7 +13635,7 @@
 	ret
 
 .asm_11a522
-	call Function1c07
+	call ExitMenu
 	callba Function104061
 	ld a, [wcd45]
 	ld [wcf66], a
@@ -13636,7 +13664,7 @@
 	jr z, .asm_11a562
 	call Function11a9f0
 	jr nz, .asm_11a562
-	call Function1c07
+	call ExitMenu
 	callba Function104061
 
 .asm_11a562
@@ -13714,7 +13742,7 @@
 	ld c, $12
 	call Function3eea
 	callba Function104061
-	call Function1ad2
+	call DrawOnMap
 	ld c, $0
 	callba Function115e18
 	ld a, $1
@@ -13987,8 +14015,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_11a909
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -14130,7 +14159,7 @@
 	callba Function106464
 	call Functiond90
 	callba Function2b5c
-	call Function1ad2
+	call DrawOnMap
 	ret
 ; 11a9f0
 
@@ -14544,7 +14573,7 @@
 	call Function11ad8a
 
 .asm_11ae2e
-	call Function1c07
+	call ExitMenu
 	callba Function104061
 	ret
 ; 11ae38
@@ -14649,8 +14678,8 @@
 	call Function11ad8a
 
 .asm_11aef7
-	call Function1c07
-	call Function1c07
+	call ExitMenu
+	call ExitMenu
 	callba Function104061
 	ret
 ; 11af04
@@ -14740,8 +14769,8 @@
 	ld [ScriptVar], a
 
 .asm_11afaa
-	call Function1c07
-	call Function1c07
+	call ExitMenu
+	call ExitMenu
 	callba Function104061
 	ret
 ; 11afb7
@@ -14758,8 +14787,9 @@
 	dec a
 	ld c, a
 	ld b, 0
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, e
 	ld e, [hl]
 	inc hl
@@ -15229,8 +15259,9 @@
 Function11b239: ; 11b239
 	ld e, a
 	ld d, 0
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -15583,8 +15614,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_11b479
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -15657,8 +15689,9 @@
 	pop de
 	ld h, d
 	ld l, e
+rept 2
 	dec hl
-	dec hl
+endr
 	ld a, [de]
 	ld [hli], a
 	inc de
@@ -15890,8 +15923,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_11b669
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -16469,7 +16503,7 @@
 
 SECTION "bank47", ROMX, BANK[$47]
 
-Function11c000:: ; 11c000
+StoreText:: ; 11c000
 	ld a, [rSVBK]
 	push af
 	ld a, $3
@@ -16520,8 +16554,9 @@
 
 .asm_11c040
 	push af
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld c, a
 	ld a, [hl]
@@ -16530,8 +16565,9 @@
 	pop af
 	ld c, a
 	ld b, 0
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld c, a
 	ld a, [hl]
@@ -16920,8 +16956,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_11c2bb
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -17012,10 +17049,12 @@
 
 Function11c35f: ; 11c35f (47:435f)
 	ld hl, wcd2f
+rept 2
 	inc [hl]
-	inc [hl]
+endr
+rept 2
 	dec hl
-	dec hl
+endr
 	dec [hl]
 	push af
 	ld de, wcd2d
@@ -17026,10 +17065,12 @@
 
 Function11c373: ; 11c373 (47:4373)
 	ld hl, wcd30
+rept 2
 	inc [hl]
-	inc [hl]
+endr
+rept 2
 	dec hl
-	dec hl
+endr
 	dec [hl]
 	push af
 	ld de, wcd2d
@@ -17672,8 +17713,9 @@
 	ld a, [CreditsTimer]
 	ld c, a
 	ld b, 0
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hl]
 	ld [wcd28], a
 	jr .asm_11c79f
@@ -17748,8 +17790,9 @@
 	ld a, [wcd22]
 	ld e, a
 	ld d, $0
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld e, a
 	ld a, [hl]
@@ -17759,8 +17802,9 @@
 	ld a, [wcd26]
 	ld e, a
 	ld d, $0
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [wcd26]
 	ld e, a
 .asm_11c831
@@ -17927,8 +17971,9 @@
 	ld c, a
 	ld b, $0
 	ld hl, wcd36
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld [hl], e
 	inc hl
 	ld [hl], d
@@ -17948,8 +17993,9 @@
 	ld a, [wcd22]
 	ld e, a
 	ld d, $0
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld e, a
 	ld a, [hl]
@@ -17959,12 +18005,14 @@
 	ld a, [wcd26]
 	ld e, a
 	ld d, $0
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [wcd25]
 	ld e, a
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld e, a
 	ld a, [hl]
@@ -18152,8 +18200,9 @@
 	ld hl, wcd36
 	ld c, a
 	ld b, $0
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld [hl], b
 	inc hl
 	ld [hl], b
@@ -18267,8 +18316,9 @@
 .asm_11cb58
 	dec a
 	jr z, .asm_11cb5f
+rept 2
 	inc hl
-	inc hl
+endr
 	jr .asm_11cb58
 .asm_11cb5f
 	ld a, [hli]
@@ -18327,8 +18377,9 @@
 .asm_11cbba
 	dec a
 	jr z, .asm_11cbc1
+rept 2
 	inc hl
-	inc hl
+endr
 	jr .asm_11cbba
 .asm_11cbc1
 	ld a, [hli]
@@ -18776,8 +18827,9 @@
 	ld [hli], a
 	ld a, [de]
 	inc de
+rept 2
 	dec a
-	dec a
+endr
 	jr z, .asm_11cff6
 	ld c, a
 	ld a, $7a
@@ -18793,8 +18845,9 @@
 	add hl, bc
 	ld a, [de]
 	dec de
+rept 2
 	dec a
-	dec a
+endr
 	jr z, .asm_11d022
 	ld b, a
 .asm_11d005
@@ -18802,8 +18855,9 @@
 	ld a, $7c
 	ld [hli], a
 	ld a, [de]
+rept 2
 	dec a
-	dec a
+endr
 	jr z, .asm_11d015
 	ld c, a
 	ld a, $7f
@@ -18825,8 +18879,9 @@
 	ld a, $7d
 	ld [hli], a
 	ld a, [de]
+rept 2
 	dec a
-	dec a
+endr
 	jr z, .asm_11d031
 	ld c, a
 	ld a, $7a
@@ -18888,8 +18943,9 @@
 	ld a, [de]
 	cp $2
 	jr z, .asm_11d082
+rept 2
 	dec a
-	dec a
+endr
 .asm_11d078
 	push af
 	ld a, $7a
@@ -18915,8 +18971,9 @@
 	cp $2
 	ret z
 	push bc
+rept 2
 	dec a
-	dec a
+endr
 	ld c, a
 	ld b, a
 	ld de, $14
@@ -18952,8 +19009,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_11d0c7
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -19588,8 +19646,9 @@
 	ld hl, $0005
 	add hl, de
 	ld a, [bc]
+rept 2
 	inc bc
-	inc bc
+endr
 	push bc
 .asm_11d4cf
 	push af
@@ -21592,8 +21651,9 @@
 	call Function16cae8
 
 .asm_16c9e1
+rept 2
 	inc e
-	inc e
+endr
 	ld a, e
 	cp $8
 	jr nz, .asm_16c969
@@ -21694,8 +21754,9 @@
 	call Function16cae8
 
 .asm_16ca88
+rept 2
 	inc e
-	inc e
+endr
 	ld a, e
 	cp $8
 	jr nz, .asm_16ca28
@@ -22149,10 +22210,12 @@
 	pop bc
 	ld de, AttrMap - TileMap
 	add hl, de
+rept 2
 	inc b
-	inc b
+endr
+rept 2
 	inc c
-	inc c
+endr
 	ld a, $7
 .asm_16d630
 	push bc
@@ -22753,8 +22816,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_170249
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -22777,7 +22841,7 @@
 	ld [wcfc0], a
 	xor a
 	ld [InLinkBattle], a
-	callba Function1060a2
+	callba Mobile_HealParty
 	callba HealParty
 	call Function1702b7
 	call Function170bf7
@@ -22980,8 +23044,9 @@
 	ld a, $1
 	ld [hli], a
 	xor a
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 	jr .asm_1703ff
 
@@ -23009,8 +23074,9 @@
 	predef Functione167
 	pop de
 	pop hl
+rept 2
 	dec de
-	dec de
+endr
 	ld a, [hli]
 	ld [de], a
 	inc de
@@ -23172,8 +23238,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_17051f
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -23383,8 +23450,9 @@
 	ld [hli], a
 	dec c
 	jr nz, .asm_170653
+rept 2
 	inc hl
-	inc hl
+endr
 	dec b
 	jr nz, .asm_170651
 	ret
@@ -23421,8 +23489,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_170696
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -23522,7 +23591,7 @@
 	ret
 
 Function170737: ; 170737 (5c:4737)
-	callba Function14dbb
+	callba SaveOptionsSelection
 	ret
 
 Function17073e: ; 17073e (5c:473e)
@@ -23852,13 +23921,13 @@
 	pop af
 	dec a
 	jr nz, .asm_17096e
+rept 4
 	dec hl
-	dec hl
-	dec hl
-	dec hl
+endr
 	ld a, $50
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	pop hl
 	ld a, EGG_TICKET
 	ld [CurItem], a
@@ -23908,8 +23977,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_1709e7
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -24213,8 +24283,9 @@
 	inc [hl]
 
 .asm_170c15
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [$a89b]
 	add [hl]
 	ld [hld], a
@@ -24239,8 +24310,9 @@
 	ld a, [hli]
 	ld b, a
 	ld c, [hl]
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [hld]
 	sub c
 	ld c, a
@@ -24464,8 +24536,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_171a45
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -24589,9 +24662,9 @@
 .asm_171b34
 	pop hl
 	ld bc, $14
+rept 3
 	add hl, bc
-	add hl, bc
-	add hl, bc
+endr
 	pop af
 	dec a
 	jr nz, .asm_171b1b
@@ -24729,7 +24802,7 @@
 	ld hl, wcd4c
 	dec [hl]
 	ret nz
-	call Function1c07
+	call ExitMenu
 	call WhiteBGMap
 	jr asm_171c60
 
@@ -24820,8 +24893,9 @@
 Function171cf0: ; 171cf0 (5c:5cf0)
 	xor a
 	hlcoord 4, 15
+rept 2
 	ld [hli], a
-	ld [hli], a
+endr
 	ld a, [wcd4b]
 	xor $1
 	ld [wcd4b], a
--- a/misc/mobile_5f.asm
+++ b/misc/mobile_5f.asm
@@ -442,12 +442,12 @@
 .asm_17d23c
 	call LoadMenuDataHeader
 	call Function17d246
-	call Function1c17
+	call WriteBackup
 	ret
 ; 17d246
 
 Function17d246: ; 17d246
-	call Function1d81
+	call InterpretMenu2
 	jr c, .asm_17d264
 	ld a, [ScriptVar]
 	cp $5
@@ -723,8 +723,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_17d483
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -905,14 +906,16 @@
 	ld a, [wcd42]
 	ld c, a
 	ld b, $0
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, l
 	ld [wcd4b], a
 	ld a, h
 	ld [wcd4c], a
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, l
 	ld [wcd4d], a
 	ld a, h
@@ -938,8 +941,9 @@
 .asm_17d5ce
 	srl a
 	jr c, .asm_17d5d6
+rept 2
 	inc c
-	inc c
+endr
 	jr .asm_17d5ce
 
 .asm_17d5d6
@@ -1026,10 +1030,12 @@
 	ld [wcd4c], a
 	pop de
 	pop hl
+rept 2
 	inc b
-	inc b
+endr
+rept 2
 	dec c
-	dec c
+endr
 	jr z, .asm_17d684
 	push bc
 	push de
@@ -1075,15 +1081,17 @@
 	ld a, $5
 	call GetSRAMBank
 	ld hl, $b1d3
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld [wcd47], a
 	ld a, [hl]
 	ld [BGMapPalBuffer], a
 	ld hl, $b1b3
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld c, a
 	ld a, [hl]
@@ -1099,8 +1107,9 @@
 	ld de, wcd60
 	ld bc, $0004
 	call CopyBytes
+rept 2
 	inc hl
-	inc hl
+endr
 	ld de, wcd64
 	ld bc, $0004
 	call CopyBytes
@@ -1136,8 +1145,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_17d72a
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -1909,13 +1919,13 @@
 	ld [wc70f], a
 	ld hl, wc708
 	call LoadMenuDataHeader
-	call Function1d81
+	call InterpretMenu2
 	jr nc, .asm_17dc6e
 	ld a, $2
 	ld [wcfa9], a
 
 .asm_17dc6e
-	call Function1c17
+	call WriteBackup
 	pop af
 	ld [rSVBK], a
 	ld a, [wcfa9]
@@ -1975,7 +1985,7 @@
 	add hl, de
 	dec c
 	jr nz, .asm_17dcbb
-	call Function4b6
+	call FadeToWhite
 	ld a, $4
 	ld [rSVBK], a
 	ret
@@ -1991,8 +2001,9 @@
 	ld a, [wcd2e]
 	ld c, a
 	ld b, $0
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld c, a
 	ld a, [hl]
@@ -2407,8 +2418,9 @@
 	jr .asm_17df7b
 
 .asm_17df79
+rept 2
 	inc hl
-	inc hl
+endr
 
 .asm_17df7b
 	bit 4, b
@@ -2461,8 +2473,9 @@
 	jr .asm_17dfd2
 
 .asm_17dfd0
+rept 2
 	inc hl
-	inc hl
+endr
 
 .asm_17dfd2
 	bit 5, b
@@ -2587,8 +2600,9 @@
 	jr .asm_17e0a4
 
 .asm_17e0a2
+rept 2
 	inc hl
-	inc hl
+endr
 
 .asm_17e0a4
 	bit 4, b
@@ -2604,8 +2618,9 @@
 	jr .asm_17e0b6
 
 .asm_17e0b4
+rept 2
 	inc hl
-	inc hl
+endr
 
 .asm_17e0b6
 	bit 5, b
@@ -2627,8 +2642,9 @@
 	call CloseSRAM
 	pop hl
 	pop bc
+rept 2
 	inc hl
-	inc hl
+endr
 	jr asm_17e0ee
 
 .asm_17e0e1
@@ -2673,8 +2689,9 @@
 	call ReceiveItem
 	pop hl
 	jr c, .asm_17e127
+rept 2
 	inc hl
-	inc hl
+endr
 
 .asm_17e127
 	ld a, [hli]
@@ -2701,11 +2718,12 @@
 	ld a, [hli]
 	ld [ScriptVar], a
 	push hl
-	callba Function4a843
+	callba MobileCheckOwnMonAnywhere
 	pop hl
 	jr c, .asm_17e159
+rept 2
 	inc hl
-	inc hl
+endr
 
 .asm_17e159
 	ld a, [hli]
@@ -2741,8 +2759,9 @@
 	call CheckItem
 	pop hl
 	jr c, .asm_17e195
+rept 2
 	inc hl
-	inc hl
+endr
 
 .asm_17e195
 	ld a, [hli]
@@ -3207,8 +3226,9 @@
 	ld [wcd2e], a
 	ld c, a
 	ld b, $0
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	push hl
 	ld hl, TileMap
 	ld bc, $0014
@@ -3433,8 +3453,9 @@
 	ld l, a
 	ld a, [wcd4e]
 	ld h, a
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld e, a
 	ld a, [hli]
@@ -3499,8 +3520,9 @@
 	ld [hli], a
 	ld a, [de]
 	inc de
+rept 2
 	dec a
-	dec a
+endr
 	jr z, .asm_17e63f
 	ld c, a
 	ld a, [wcd53]
@@ -3519,8 +3541,9 @@
 	add hl, bc
 	ld a, [de]
 	dec de
+rept 2
 	dec a
-	dec a
+endr
 	jr z, .asm_17e674
 	ld b, a
 .asm_17e651
@@ -3529,8 +3552,9 @@
 	add $3
 	ld [hli], a
 	ld a, [de]
+rept 2
 	dec a
-	dec a
+endr
 	jr z, .asm_17e664
 	ld c, a
 	ld a, $7f
@@ -3556,8 +3580,9 @@
 	add $5
 	ld [hli], a
 	ld a, [de]
+rept 2
 	dec a
-	dec a
+endr
 	jr z, .asm_17e689
 	ld c, a
 	ld a, [wcd53]
@@ -3583,8 +3608,9 @@
 	inc de
 	push af
 	ld a, [de]
+rept 2
 	inc de
-	inc de
+endr
 	and a
 .asm_17e69f
 	jr z, .asm_17e6a5
@@ -3736,8 +3762,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_17f061
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -3774,8 +3801,9 @@
 	ld de, $0004
 	add hl, de
 	ld a, [hli]
+rept 2
 	inc hl
-	inc hl
+endr
 	ld e, l
 	ld d, h
 	ld l, c
@@ -3918,8 +3946,9 @@
 	pop hl
 	call Function17f524
 	jr c, .asm_17f167
+rept 2
 	inc hl
-	inc hl
+endr
 	ld e, l
 	ld d, h
 	ld a, [de]
@@ -4107,8 +4136,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, .Genders
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld e, a
 	ld a, [hl]
@@ -4370,8 +4400,9 @@
 	ld a, [de]
 	ld c, a
 	ld b, $0
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld e, a
 	ld a, [hli]
@@ -4386,11 +4417,12 @@
 	ld e, a
 	ld d, $0
 	pop hl
+rept 2
 	add hl, de
-	add hl, de
+endr
+rept 3
 	inc hl
-	inc hl
-	inc hl
+endr
 	ld e, l
 	ld d, h
 	ld l, c
@@ -4451,8 +4483,9 @@
 	ld de, $0005
 	add hl, de
 	ld a, [hli]
+rept 2
 	inc hl
-	inc hl
+endr
 	ld e, l
 	ld d, h
 	ld l, c
@@ -4695,8 +4728,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Table17f5bd
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -4770,8 +4804,9 @@
 	ld e, a
 	ld d, $0
 	ld hl, Table_17f706
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [wc301]
 	ld e, a
 	ld a, [wc302]
@@ -4809,8 +4844,9 @@
 	jr .asm_17f67d
 
 .asm_17f674
+rept 2
 	inc hl
-	inc hl
+endr
 	dec c
 	jr nz, .asm_17f65d
 
@@ -4828,8 +4864,9 @@
 	ld e, a
 	ld d, 0
 	ld hl, Table_17f699
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld e, a
 	ld a, [hl]
--- a/misc/unused_title.asm
+++ b/misc/unused_title.asm
@@ -10,9 +10,9 @@
 	ld [hBGMapMode], a
 
 	ld hl, wcf63
+rept 3
 	ld [hli], a
-	ld [hli], a
-	ld [hli], a
+endr
 	ld [hl], a
 
 	ld hl, UnusedTitleBG_GFX
--- a/predef/cgb.asm
+++ b/predef/cgb.asm
@@ -93,8 +93,9 @@
 	ld a, [EnemyHPPal]
 	ld l, a
 	ld h, $0
+rept 2
 	add hl, hl
-	add hl, hl
+endr
 	ld bc, Palettes_a8be
 	add hl, bc
 	call Function9643
@@ -101,8 +102,9 @@
 	ld a, [PlayerHPPal]
 	ld l, a
 	ld h, $0
+rept 2
 	add hl, hl
-	add hl, hl
+endr
 	ld bc, Palettes_a8be
 	add hl, bc
 	call Function9643
@@ -213,8 +215,9 @@
 	ld a, [wcda1]
 	ld l, a
 	ld h, $0
+rept 2
 	add hl, hl
-	add hl, hl
+endr
 	ld bc, Palettes_a8be
 	add hl, bc
 	call Function9643
@@ -488,8 +491,9 @@
 Function9122: ; 9122
 	ld b, 0
 	ld hl, Jumptable_912d
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -797,8 +801,9 @@
 	ld a, [PlayerHPPal]
 	ld l, a
 	ld h, 0
+rept 2
 	add hl, hl
-	add hl, hl
+endr
 	ld bc, Palettes_a8be
 	add hl, bc
 	call Function9643
--- a/predef/sgb.asm
+++ b/predef/sgb.asm
@@ -74,8 +74,9 @@
 	ld a, [PlayerHPPal]
 	ld l, a
 	ld h, 0
+rept 2
 	add hl, hl
-	add hl, hl
+endr
 	ld de, Palettes_a8be
 	add hl, de
 	ld a, [hli]
@@ -89,8 +90,9 @@
 	ld a, [EnemyHPPal]
 	ld l, a
 	ld h, $0
+rept 2
 	add hl, hl
-	add hl, hl
+endr
 	ld de, Palettes_a8be
 	add hl, de
 	ld a, [hli]
@@ -137,8 +139,9 @@
 	call CopyBytes
 	ld hl, wcda9 + 1
 	ld [hl], $10
+rept 2
 	inc hl
-	inc hl
+endr
 	ld a, [PlayerHPPal]
 	add $2f
 	ld [hl], a
@@ -161,8 +164,9 @@
 	ld a, [wcda1]
 	ld l, a
 	ld h, $0
+rept 2
 	add hl, hl
-	add hl, hl
+endr
 	ld de, Palettes_a8be
 	add hl, de
 	ld a, [hli]
@@ -303,10 +307,9 @@
 Function8867: ; 8867
 	ld b, 0
 	ld hl, Unknown_8878
+rept 4
 	add hl, bc
-	add hl, bc
-	add hl, bc
-	add hl, bc
+endr
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
@@ -461,9 +464,9 @@
 	ld a, [CurPartySpecies]
 	ld l, a
 	ld h, 0
+rept 3
 	add hl, hl
-	add hl, hl
-	add hl, hl
+endr
 	ld de, PokemonPalettes
 	add hl, de
 	ld a, [wcf65]
@@ -548,7 +551,7 @@
 	ret
 
 .asm_8a16
-	ld a, [wd19a]
+	ld a, [wPermission]
 	cp $2
 	jr z, .asm_8a39
 	cp $4
--- a/rst.asm
+++ b/rst.asm
@@ -22,8 +22,9 @@
 	push de
 	ld e, a
 	ld d, 0
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
--- a/text/common.asm
+++ b/text/common.asm
@@ -230,7 +230,7 @@
 	para "#MON MART"
 	done
 
-UnknownText_0x1b05bf: ; 0x1b05bf
+ContestResults_ReadyToJudgeText: ; 0x1b05bf
 	text "We will now judge"
 	line "the #MON you've"
 	cont "caught."
@@ -246,7 +246,7 @@
 	done
 ; 0x1b0621
 
-UnknownText_0x1b0621: ; 0x1b0621
+ContestResults_PlayerWonAPrizeText: ; 0x1b0621
 	text "<PLAYER>, the No.@"
 	text_from_ram StringBuffer3
 	text ""
@@ -257,7 +257,7 @@
 	done
 ; 0x1b0648
 
-UnknownText_0x1b0648: ; 0x1b0648
+ReceivedItemText: ; 0x1b0648
 	text "<PLAYER> received"
 	line "@"
 	text_from_ram StringBuffer4
@@ -265,13 +265,13 @@
 	done
 ; 0x1b065b
 
-UnknownText_0x1b065b: ; 0x1b065b
+ContestResults_JoinUsNextTimeText: ; 0x1b065b
 	text "Please join us for"
 	line "the next Contest!"
 	done
 ; 0x1b0681
 
-UnknownText_0x1b0681: ; 0x1b0681
+ContestResults_ConsolationPrizeText: ; 0x1b0681
 	text "Everyone else gets"
 	line "a BERRY as a con-"
 	cont "solation prize!"
@@ -278,13 +278,13 @@
 	done
 ; 0x1b06b7
 
-UnknownText_0x1b06b7: ; 0x1b06b7
+ContestResults_DidNotWinText: ; 0x1b06b7
 	text "We hope you do"
 	line "better next time."
 	done
 ; 0x1b06d9
 
-UnknownText_0x1b06d9: ; 0x1b06d9
+ContestResults_ReturnPartyText: ; 0x1b06d9
 	text "We'll return the"
 	line "#MON we kept"
 
@@ -293,7 +293,7 @@
 	done
 ; 0x1b070d
 
-UnknownText_0x1b070d: ; 0x1b070d
+ContestResults_PartyFullText: ; 0x1b070d
 	text "Your party's full,"
 	line "so the #MON was"
 
@@ -302,7 +302,7 @@
 	done
 ; 0x1b074e
 
-UnknownText_0x1b074e: ; 0x1b074e
+GymStatue_CityGymText: ; 0x1b074e
 	text_from_ram StringBuffer3
 	text ""
 	line "#MON GYM"
@@ -309,7 +309,7 @@
 	done
 ; 0x1b075c
 
-UnknownText_0x1b075c: ; 0x1b075c
+GymStatue_WinningTrainersText: ; 0x1b075c
 	text "LEADER: @"
 	text_from_ram StringBuffer4
 	text ""
@@ -318,13 +318,13 @@
 	done
 ; 0x1b077f
 
-UnknownText_0x1b077f: ; 0x1b077f
+CoinVendor_WelcomeText: ; 0x1b077f
 	text "Welcome to the"
 	line "GAME CORNER."
 	done
 ; 0x1b079c
 
-UnknownText_0x1b079c: ; 0x1b079c
+CoinVendor_NoCoinCaseText: ; 0x1b079c
 	text "Do you need game"
 	line "coins?"
 
@@ -334,7 +334,7 @@
 	done
 ; 0x1b07e3
 
-UnknownText_0x1b07e3: ; 0x1b07e3
+CoinVendor_IntroText: ; 0x1b07e3
 	text "Do you need some"
 	line "game coins?"
 
@@ -344,31 +344,31 @@
 	done
 ; 0x1b0830
 
-UnknownText_0x1b0830: ; 0x1b0830
+CoinVendor_Buy50CoinsText: ; 0x1b0830
 	text "Thank you!"
 	line "Here are 50 coins."
 	done
 ; 0x1b084f
 
-UnknownText_0x1b084f: ; 0x1b084f
+CoinVendor_Buy500CoinsText: ; 0x1b084f
 	text "Thank you! Here"
 	line "are 500 coins."
 	done
 ; 0x1b086f
 
-UnknownText_0x1b086f: ; 0x1b086f
+CoinVendor_NotEnoughMoneyText: ; 0x1b086f
 	text "You don't have"
 	line "enough money."
 	done
 ; 0x1b088c
 
-UnknownText_0x1b088c: ; 0x1b088c
+CoinVendor_CoinCaseFullText: ; 0x1b088c
 	text "Whoops! Your COIN"
 	line "CASE is full."
 	done
 ; 0x1b08ad
 
-UnknownText_0x1b08ad: ; 0x1b08ad
+CoinVendor_CancelText: ; 0x1b08ad
 	text "No coins for you?"
 	line "Come again!"
 	done
--- a/text/common_3.asm
+++ b/text/common_3.asm
@@ -1139,7 +1139,7 @@
 	prompt
 ; 1c10fa
 
-UnknownText_0x1c10fa: ; 1c10fa
+ContestJudging_FirstPlaceText: ; 1c10fa
 	text "This Bug-Catching"
 	line "Contest winner is@"
 	interpret_data
@@ -1154,7 +1154,7 @@
 	db "@"
 ; 1c113f
 
-UnknownText_0x1c113f: ; 1c113f
+ContestJudging_FirstPlaceScoreText: ; 1c113f
 	text ""
 	para "The winning score"
 	line "was @"
@@ -1163,7 +1163,7 @@
 	prompt
 ; 1c1166
 
-UnknownText_0x1c1166: ; 1c1166
+ContestJudging_SecondPlaceText: ; 1c1166
 	text "Placing second was"
 	line "@"
 	text_from_ram wd016
@@ -1175,7 +1175,7 @@
 	db "@"
 ; 1c1196
 
-UnknownText_0x1c1196: ; 1c1196
+ContestJudging_SecondPlaceScoreText: ; 1c1196
 	text ""
 	para "The score was"
 	line "@"
@@ -1184,7 +1184,7 @@
 	prompt
 ; 1c11b5
 
-UnknownText_0x1c11b5: ; 1c11b5
+ContestJudging_ThirdPlaceText: ; 1c11b5
 	text "Placing third was"
 	line "@"
 	text_from_ram wd016
@@ -1196,7 +1196,7 @@
 	db "@"
 ; 1c11e4
 
-UnknownText_0x1c11e4: ; 1c11e4
+ContestJudging_ThirdPlaceScoreText: ; 1c11e4
 	text ""
 	para "The score was"
 	line "@"
--- a/text/common_4.asm
+++ b/text/common_4.asm
@@ -542,7 +542,7 @@
 	text_from_ram StringBuffer2
 	text "(S)"
 	line "will be ¥@"
-	deciram $ffc3, $36
+	deciram hMoneyTemp, $36
 	text "."
 	done
 ; 0x1c4c28
@@ -574,7 +574,7 @@
 	text_from_ram StringBuffer2
 	text "(S)"
 	line "will be ¥@"
-	deciram $ffc3, $36
+	deciram hMoneyTemp, $36
 	text "."
 	done
 ; 0x1c4cce
@@ -619,7 +619,7 @@
 	text_from_ram StringBuffer2
 	text " costs"
 	line "¥@"
-	deciram $ffc3, $36
+	deciram hMoneyTemp, $36
 	text ". Want it?"
 	done
 ; 0x1c4dcd
@@ -671,7 +671,7 @@
 	text_from_ram StringBuffer2
 	text "(S)"
 	line "will cost ¥@"
-	deciram $ffc3, $36
+	deciram hMoneyTemp, $36
 	text "."
 	done
 ; 0x1c4eab
@@ -713,7 +713,7 @@
 UnknownText_0x1c4f3e: ; 0x1c4f3e
 	text "I can pay you"
 	line "¥@"
-	deciram $ffc3, $36
+	deciram hMoneyTemp, $36
 	text "."
 
 	para "Is that OK?"
@@ -763,7 +763,7 @@
 
 UnknownText_0x1c502e: ; 0x1c502e
 	text "Got ¥@"
-	deciram $ffc3, $36
+	deciram hMoneyTemp, $36
 	text " for"
 	line "@"
 	text_from_ram StringBuffer2
--- a/text/types.asm
+++ b/text/types.asm
@@ -85,8 +85,9 @@
 	ld hl, TypeNames
 	ld e, a
 	ld d, 0
+rept 2
 	add hl, de
-	add hl, de
+endr
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
--- a/tilesets/animations.asm
+++ b/tilesets/animations.asm
@@ -16,8 +16,9 @@
 	ld [hTileAnimFrame], a
 
 	ld h, 0
+rept 2
 	add hl, hl
-	add hl, hl
+endr
 	add hl, de
 
 ; 2-byte parameter
@@ -488,9 +489,9 @@
 	and 3 << 1
 	
 ; 2 x 8 = 16 bytes per tile
+rept 3
 	add a
-	add a
-	add a
+endr
 	
 	add WaterTileFrames % $100
 	ld l, a
@@ -527,9 +528,9 @@
 .asm_fc46c
 	ld a, [TileAnimationTimer]
 	call GetForestTreeFrame
+rept 3
 	add a
-	add a
-	add a
+endr
 	add ForestTreeLeftFrames % $100
 	ld l, a
 	ld a, 0
@@ -569,9 +570,9 @@
 .asm_fc4d4
 	ld a, [TileAnimationTimer]
 	call GetForestTreeFrame
+rept 3
 	add a
-	add a
-	add a
+endr
 	add ForestTreeLeftFrames % $100
 	ld l, a
 	ld a, 0
@@ -605,9 +606,9 @@
 	ld a, [TileAnimationTimer]
 	call GetForestTreeFrame
 	xor 2
+rept 3
 	add a
-	add a
-	add a
+endr
 	add ForestTreeLeftFrames % $100
 	ld l, a
 	ld a, 0
@@ -637,9 +638,9 @@
 	ld a, [TileAnimationTimer]
 	call GetForestTreeFrame
 	xor 2
+rept 3
 	add a
-	add a
-	add a
+endr
 	add ForestTreeLeftFrames % $100
 	ld l, a
 	ld a, 0
@@ -729,8 +730,9 @@
 	ld a, [TileAnimationTimer]
 	and 6
 	srl a
+rept 2
 	inc a
-	inc a
+endr
 	and 3
 	swap a
 	ld e, a
@@ -750,9 +752,9 @@
 	ld c, l
 	ld a, [TileAnimationTimer]
 	and 6
+rept 3
 	add a
-	add a
-	add a
+endr
 	ld e, a
 	ld d, 0
 	ld hl, SafariFountainFrames
--- a/trainers/dvs.asm
+++ b/trainers/dvs.asm
@@ -8,8 +8,9 @@
 	ld b, 0
 
 	ld hl, TrainerClassDVs
+rept 2
 	add hl, bc
-	add hl, bc
+endr
 
 	ld a, [hli]
 	ld b, a
--- a/wram.asm
+++ b/wram.asm
@@ -1307,6 +1307,7 @@
 	ds 1
 
 	ds 2
+OptionsEnd::
 wcfd4:: ds 1
 wcfd5:: ds 1
 wcfd6:: ds 1
@@ -1320,10 +1321,15 @@
 wd000:: ds 1
 wd001:: ds 1
 wd002::
+PhoneScriptBank::
 DefaultFlypoint:: ; d002
 	ds 1
-wd003:: ds 1
-wd004:: ds 1
+wd003::
+PhoneCallerLo::
+	ds 1
+wd004::
+PhoneCallerHi::
+	ds 1
 wd005::
 StartFlypoint:: ; d005
 	ds 1
@@ -1376,6 +1382,7 @@
 	ds 1
 wd03f::
 CurFruit:: ; d03f
+MartPointerBank::
 	ds 1
 
 wd040::
@@ -1397,9 +1404,11 @@
 WalkingY:: ; d046
 	ds 1
 WalkingTile:: ; d047
+wWinTextPointer::
 	ds 1
 
-wd048:: ds 3
+wd048:: ds 1
+wLossTextPointer:: ds 2
 wd04b:: ds 2
 wd04d:: ds 1
 wd04e:: ds 2
@@ -1541,7 +1550,7 @@
 wd196:: ds 1
 wd197:: ds 2
 wd199:: ds 1
-wd19a:: ds 3
+wPermission:: ds 3
 
 ; width/height are in blocks (2x2 walkable tiles, 4x4 graphics tiles)
 MapHeader:: ; d19d
@@ -1952,7 +1961,6 @@
 wd4d0:: ds 1
 wd4d1:: ds 5
 
-
 ObjectStructs::
 
 PlayerStruct:: ; d4d6
@@ -2002,29 +2010,29 @@
 	ds 15
 
 ObjectStruct1:: ; d4fe
-	ds 40
+	ds OBJECT_STRUCT_LENGTH
 ObjectStruct2:: ; d526
-	ds 40
+	ds OBJECT_STRUCT_LENGTH
 ObjectStruct3:: ; d54e
-	ds 40
+	ds OBJECT_STRUCT_LENGTH
 ObjectStruct4:: ; d576
-	ds 40
+	ds OBJECT_STRUCT_LENGTH
 ObjectStruct5:: ; d59e
-	ds 40
+	ds OBJECT_STRUCT_LENGTH
 ObjectStruct6:: ; d5c6
-	ds 40
+	ds OBJECT_STRUCT_LENGTH
 ObjectStruct7:: ; d5ee
-	ds 40
+	ds OBJECT_STRUCT_LENGTH
 ObjectStruct8:: ; d616
-	ds 40
+	ds OBJECT_STRUCT_LENGTH
 ObjectStruct9:: ; d63e
-	ds 40
+	ds OBJECT_STRUCT_LENGTH
 ObjectStruct10:: ; d666
-	ds 40
+	ds OBJECT_STRUCT_LENGTH
 ObjectStruct11:: ; d68e
-	ds 40
+	ds OBJECT_STRUCT_LENGTH
 ObjectStruct12:: ; d6b6
-	ds 40
+	ds OBJECT_STRUCT_LENGTH
 ; d6de
 
 wd6de::
@@ -2216,35 +2224,37 @@
 
 SECTION "Events", WRAMX, BANK [1]
 
-wd9f2:: ds 1
-	ds 1
-wd9f4:: ds 1
-wd9f5:: ds 1
-wd9f6:: ds 1
-wd9f7:: ds 1
-wd9f8:: ds 1
-wd9f9:: ds 1
-wd9fa:: ds 1
-wd9fb:: ds 1
-wd9fc:: ds 1
-wd9fd:: ds 1
-wd9fe:: ds 1
-wd9ff:: ds 1
+wJackFightCount::    ds 1
+                     ds 1
+wHueyFightCount::    ds 1
+wGavenFightCount::   ds 1
+wBethFightCount::    ds 1
+wJoseFightCount::    ds 1
+wReenaFightCount::   ds 1
+wJoeyFightCount::    ds 1
+wWadeFightCount::    ds 1
+wRalphFightCount::   ds 1
+wLizFightCount::     ds 1
+wAnthonyFightCount:: ds 1
+wToddFightCount::    ds 1
+wGinaFightCount::    ds 1
 
 wda00:: ds 1
-wda01:: ds 1
-wda02:: ds 1
-wda03:: ds 1
-wda04:: ds 1
-wda05:: ds 1
-wda06:: ds 1
-wda07:: ds 1
-wda08:: ds 1
-wda09:: ds 1
-wda0a:: ds 1
-wda0b:: ds 1
-wda0c:: ds 1
-wda0d:: ds 1
+
+wArnieFightCount::   ds 1
+wAlanFightCount::    ds 1
+wDanaFightCount::    ds 1
+wChadFightCount::    ds 1
+                     ds 1
+wTullyFightCount::   ds 1
+wBrentFightCount::   ds 1
+wTiffanyFightCount:: ds 1
+wVanceFightCount::   ds 1
+wWiltonFightCount::  ds 1
+                     ds 1
+wParryFightCount::   ds 1
+wErinFightCount::    ds 1
+
 	ds 100
 
 EventFlags:: ; da72
@@ -2253,7 +2263,7 @@
 ;PoliceAtElmsLabEvent:: ; db52
 ;SalesmanMahoganyTownEvent:: ; db5c
 ;RedGyaradosEvent:: ; db5c
-	flag_array 2000
+	flag_array NUM_EVENTS
 ; db6c
 
 	ds 6
@@ -2274,16 +2284,18 @@
 ; bit 2: downhill
 	ds 1
 
-	ds 3
+	ds 1
+wCurrentMapTriggerPointer:: ; dbf7
+	ds 2
 
 wdbf9:: ds 2
 wdbfb:: ds 1
 wdbfc:: ds 1
 wdbfd:: ds 1
-wdbfe:: ds 1
+wCurrentMapXYTriggerCount:: ds 1
 wdbff:: ds 1
 wdc00:: ds 1
-wdc01:: ds 1
+wCurrentMapSignpostCount:: ds 1
 wdc02:: ds 1
 wdc03:: ds 1
 wdc04:: ds 1
@@ -2323,9 +2335,9 @@
 wdc1a:: ds 1
 wdc1b:: ds 1
 wdc1c:: ds 2
-wdc1e:: ds 1
-wdc1f:: ds 1
-wdc20:: ds 1
+DailyFlags:: ds 1
+WeeklyFlags:: ds 1
+SwarmFlags:: ds 1
 wdc21:: ds 1
 wdc22:: ds 1
 wdc23:: ds 1
@@ -2338,7 +2350,8 @@
 	ds 5
 
 wdc2d:: ds 4
-wdc31:: ds 4
+wSpecialPhoneCallID:: ds 2
+wdc33:: ds 2
 wdc35:: ds 4
 wdc39:: ds 1
 wdc3a:: ds 1
@@ -2418,7 +2431,7 @@
 	ds PARTY_LENGTH ; species of each Pokémon in party
 PartyEnd:: ; dcde
 	ds 1 ; legacy functions don't check PartyCount
-		 
+		
 PartyMons::
 PartyMon1:: party_struct PartyMon1 ; dcdf
 PartyMon2:: party_struct PartyMon2 ; dd0f
--