shithub: pokecrystal

Download patch

ref: 92a8c491c3a8c39a7c51b300d759f93aa5157447
parent: ffbf2c0f5d28c05c14f67a3cfb123d37157c2ef9
author: PikalaxALT <PikalaxALT@gmail.com>
date: Tue Dec 1 16:54:11 EST 2015

Break up engine/sprites.asm; address yenatch's comments

--- /dev/null
+++ b/data/sprite_engine.asm
@@ -1,0 +1,1436 @@
+Unknown_8d6e6: ; 8d6e6
+	dw Unknown_8d76a ; 00
+	dw Unknown_8d76d ; 01
+	dw Unknown_8d772 ; 02
+	dw Unknown_8d777 ; 03
+	dw Unknown_8d77c ; 04
+	dw Unknown_8d781 ; 05
+	dw Unknown_8d786 ; 06
+	dw Unknown_8d7a6 ; 07
+	dw Unknown_8d7ab ; 08
+	dw Unknown_8d7b0 ; 09
+	dw Unknown_8d7b5 ; 0a
+	dw Unknown_8d7d4 ; 0b
+	dw Unknown_8d7d9 ; 0c
+	dw Unknown_8d7e2 ; 0d
+	dw Unknown_8d7eb ; 0e
+	dw Unknown_8d7f4 ; 0f
+	dw Unknown_8d7ff ; 10
+	dw Unknown_8d78b ; 11
+	dw Unknown_8d802 ; 12
+	dw Unknown_8d805 ; 13
+	dw Unknown_8d808 ; 14
+	dw Unknown_8d811 ; 15
+	dw Unknown_8d818 ; 16
+	dw Unknown_8d81d ; 17
+	dw Unknown_8d822 ; 18
+	dw Unknown_8d825 ; 19
+	dw Unknown_8d82c ; 1a
+	dw Unknown_8d82f ; 1b
+	dw Unknown_8d861 ; 1c
+	dw Unknown_8d864 ; 1d
+	dw Unknown_8d867 ; 1e
+	dw Unknown_8d874 ; 1f
+	dw Unknown_8d877 ; 20
+	dw Unknown_8d87a ; 21
+	dw Unknown_8d87d ; 22
+	dw Unknown_8d880 ; 23
+	dw Unknown_8d883 ; 24
+	dw Unknown_8d890 ; 25
+	dw Unknown_8d899 ; 26
+	dw Unknown_8d89c ; 27
+	dw Unknown_8d89f ; 28
+	dw Unknown_8d8a2 ; 29
+	dw Unknown_8d8a5 ; 2a
+	dw Unknown_8d8a8 ; 2b
+	dw Unknown_8d8ab ; 2c
+	dw Unknown_8d794 ; 2d
+	dw Unknown_8d79d ; 2e
+	dw Unknown_8d8ae ; 2f
+	dw Unknown_8d8cd ; 30
+	dw Unknown_8d8ec ; 31
+	dw Unknown_8d8f1 ; 32
+	dw Unknown_8d8f4 ; 33
+	dw Unknown_8d8f7 ; 34
+	dw Unknown_8d8fe ; 35
+	dw Unknown_8d907 ; 36
+	dw Unknown_8d90c ; 37
+	dw Unknown_8d913 ; 38
+	dw Unknown_8d916 ; 39
+	dw Unknown_8d91d ; 3a
+	dw Unknown_8d924 ; 3b
+	dw Unknown_8d92b ; 3c
+	dw Unknown_8d932 ; 3d
+	dw Unknown_8d93d ; 3e
+	dw Unknown_8d940 ; 3f
+	dw Unknown_8d943 ; 40
+	dw Unknown_8d948 ; 41
+; 8d76a
+
+Unknown_8d76a: 	dw $2000
+                db -1
+Unknown_8d76d: 	dw $0800, $0801
+                db -2
+Unknown_8d772: 	dw $083d, $083e
+                db -2
+Unknown_8d777: 	dw $083f, $0840
+                db -2
+Unknown_8d77c: 	dw $0400, $0401
+                db -2
+Unknown_8d781: 	dw $043d, $043e
+                db -2
+Unknown_8d786: 	dw $043f, $0440
+                db -2
+Unknown_8d78b: 	dw $0800, $0801, $0800, $4801
+                db -2
+Unknown_8d794: 	dw $0863, $0864, $0863, $4864
+                db -2
+Unknown_8d79d: 	dw $0865, $0866, $0865, $4866
+                db -2
+Unknown_8d7a6: 	dw $011e, $011f
+                db -2
+Unknown_8d7ab: 	dw $0120, $01fd
+                db -2
+Unknown_8d7b0: 	dw $0121, $01fd
+                db -2
+Unknown_8d7b5: 	dw $0c81, $0182, $0183, $0482, $0c81, $0c82, $0483, $2084, $0385, $0386, $0487, $0488, $0489, $0a8a, $078b
+                db -1
+Unknown_8d7d4: 	dw $0323, $8323
+                db -2
+Unknown_8d7d9: 	dw $0224, $0225, $0226, $0225
+                db -2
+Unknown_8d7e2: 	dw $0727, $0728, $8727, $4728
+                db -2
+Unknown_8d7eb: 	dw $0729, $072a, $0729, $072b
+                db -2
+Unknown_8d7f4: 	dw $0729, $072c, $072d, $072c, $0729
+                db -1
+Unknown_8d7ff: 	dw $142e
+                db -1
+Unknown_8d802: 	dw $202f
+                db -1
+Unknown_8d805: 	dw $2030
+                db -1
+Unknown_8d808: 	dw $0330, $0331, $0330, $4331
+                db -2
+Unknown_8d811: 	dw $0432, $0433, $0434
+                db -4
+Unknown_8d818: 	dw $0335, $0336
+                db -2
+Unknown_8d81d: 	dw $0737, $0738
+                db -2
+Unknown_8d822: 	dw $2039
+                db -1
+Unknown_8d825: 	dw $023b, $023a, $023b
+                db -1
+Unknown_8d82c: 	dw $203c
+                db -1
+Unknown_8d82f: 	dw $0841, $0842, $0841, $4842
+                db -2
+                dw $0843, $0844
+                db -2
+                dw $0845, $0846
+                db -2
+                dw $0847, $0848
+                db -2
+                dw $0149, $4149, $c149, $8149
+                db -2
+                dw $204a
+                db -1
+                dw $204b
+                db -1
+                dw $204c
+                db -1
+                dw $204d
+                db -1
+                dw $034e, $03fd
+                db -2
+Unknown_8d861: 	dw $20fd
+                db -1
+Unknown_8d864: 	dw $204f
+                db -1
+Unknown_8d867: 	dw $0250, $1051, $01fd, $0152, $01fd, $0153
+                db -4
+Unknown_8d874: 	dw $2054
+                db -1
+Unknown_8d877: 	dw $2055
+                db -1
+Unknown_8d87a: 	dw $6055
+                db -1
+Unknown_8d87d: 	dw $a055
+                db -1
+Unknown_8d880: 	dw $e055
+                db -1
+Unknown_8d883: 	dw $0a56, $0957, $0a58, $0a59, $0958, $0a5a
+                db -2
+Unknown_8d890: 	dw $0250, $025b, $0250, $425b
+                db -2
+Unknown_8d899: 	dw $025c
+                db -1
+Unknown_8d89c: 	dw $025d
+                db -1
+Unknown_8d89f: 	dw $025e
+                db -1
+Unknown_8d8a2: 	dw $025f
+                db -1
+Unknown_8d8a5: 	dw $0260
+                db -1
+Unknown_8d8a8: 	dw $0261
+                db -1
+Unknown_8d8ab: 	dw $0262
+                db -1
+Unknown_8d8ae: 	dw $0332, $0333, $0334, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331
+                db -1
+Unknown_8d8cd: 	dw $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0332, $0333, $0334
+                db -4
+Unknown_8d8ec: 	dw $0367, $0368
+                db -2
+Unknown_8d8f1: 	dw $036c
+                db -1
+Unknown_8d8f4: 	dw $036d
+                db -1
+Unknown_8d8f7: 	dw $0269, $026a, $026b
+                db -4
+Unknown_8d8fe: 	dw $036e, $036f, $0370, $0371
+                db -2
+Unknown_8d907: 	dw $0371, $076e
+                db -1
+Unknown_8d90c: 	dw $2072, $0773, $0774
+                db -1
+Unknown_8d913: 	dw $0375
+                db -1
+Unknown_8d916: 	dw $0376, $0377, $0778
+                db -4
+Unknown_8d91d: 	dw $4376, $4377, $4778
+                db -4
+Unknown_8d924: 	dw $8376, $8377, $8778
+                db -4
+Unknown_8d92b: 	dw $c376, $c377, $c778
+                db -4
+Unknown_8d932: 	dw $0379, $037a, $037b, $077c, $077d
+                db -1
+Unknown_8d93d: 	dw $037e
+                db -1
+Unknown_8d940: 	dw $00fd
+                db -1
+Unknown_8d943: 	dw $087f, $0880
+                db -1
+Unknown_8d948: 	dw $487f, $4880
+                db -1
+; 8d94d
+
+Unknown_8d94d: ; 8d94d
+	dbw $00, Unknown_8dd8a ; 00
+	dbw $04, Unknown_8dd8a ; 01
+	dbw $4c, Unknown_8daf1 ; 02
+	dbw $5c, Unknown_8daf1 ; 03
+	dbw $6c, Unknown_8daf6 ; 04
+	dbw $6e, Unknown_8daf6 ; 05
+	dbw $2d, Unknown_8ddf0 ; 06
+	dbw $4d, Unknown_8ddf0 ; 07
+	dbw $60, Unknown_8de09 ; 08
+	dbw $00, Unknown_8de09 ; 09
+	dbw $00, Unknown_8de09 ; 0a
+	dbw $06, Unknown_8de09 ; 0b
+	dbw $0c, Unknown_8de7e ; 0c
+	dbw $0d, Unknown_8daf1 ; 0d
+	dbw $00, Unknown_8dc53 ; 0e
+	dbw $04, Unknown_8dc53 ; 0f
+	dbw $08, Unknown_8dc53 ; 10
+	dbw $40, Unknown_8dc53 ; 11
+	dbw $44, Unknown_8dc53 ; 12
+	dbw $48, Unknown_8dc53 ; 13
+	dbw $4c, Unknown_8dc53 ; 14
+	dbw $80, Unknown_8de87 ; 15
+	dbw $85, Unknown_8de87 ; 16
+	dbw $8a, Unknown_8de87 ; 17
+	dbw $00, Unknown_8db29 ; 18
+	dbw $01, Unknown_8db5c ; 19
+	dbw $09, Unknown_8db9d ; 1a
+	dbw $10, Unknown_8dc94 ; 1b
+	dbw $29, Unknown_8dc94 ; 1c
+	dbw $42, Unknown_8dc94 ; 1d
+	dbw $f8, Unknown_8e17e ; 1e
+	dbw $fa, Unknown_8e17e ; 1f
+	dbw $00, Unknown_8deb2 ; 20
+	dbw $00, Unknown_8dec3 ; 21
+	dbw $00, Unknown_8deec ; 22
+	dbw $0f, Unknown_8db07 ; 23
+	dbw $11, Unknown_8daf1 ; 24
+	dbw $12, Unknown_8daf1 ; 25
+	dbw $13, Unknown_8daf1 ; 26
+	dbw $00, Unknown_8df29 ; 27
+	dbw $08, Unknown_8df29 ; 28
+	dbw $10, Unknown_8df42 ; 29
+	dbw $10, Unknown_8df5b ; 2a
+	dbw $10, Unknown_8df74 ; 2b
+	dbw $10, Unknown_8df8d ; 2c
+	dbw $10, Unknown_8dfa6 ; 2d
+	dbw $3a, Unknown_8daf1 ; 2e
+	dbw $00, Unknown_8dd8a ; 2f
+	dbw $00, Unknown_8db18 ; 30
+	dbw $02, Unknown_8dd9b ; 31
+	dbw $06, Unknown_8db5c ; 32
+	dbw $0a, Unknown_8db5c ; 33
+	dbw $0e, Unknown_8db5c ; 34
+	dbw $12, Unknown_8db3a ; 35
+	dbw $13, Unknown_8db3a ; 36
+	dbw $00, Unknown_8dd8a ; 37
+	dbw $04, Unknown_8dd8a ; 38
+	dbw $10, Unknown_8db5c ; 39
+	dbw $00, Unknown_8dd9b ; 3a
+	dbw $04, Unknown_8daf1 ; 3b
+	dbw $00, Unknown_8dfbf ; 3c
+	dbw $00, Unknown_8ddac ; 3d
+	dbw $00, Unknown_8ddbd ; 3e
+	dbw $00, Unknown_8ddce ; 3f
+	dbw $00, Unknown_8dddf ; 40
+	dbw $00, Unknown_8dd9b ; 41
+	dbw $04, Unknown_8dd9b ; 42
+	dbw $00, Unknown_8dc2e ; 43
+	dbw $30, Unknown_8dc2e ; 44
+	dbw $03, Unknown_8dc2e ; 45
+	dbw $33, Unknown_8dc2e ; 46
+	dbw $06, Unknown_8dc2e ; 47
+	dbw $36, Unknown_8dc2e ; 48
+	dbw $09, Unknown_8dc2e ; 49
+	dbw $39, Unknown_8dc2e ; 4a
+	dbw $0c, Unknown_8dfcc ; 4b
+	dbw $0c, Unknown_8dfe5 ; 4c
+	dbw $3c, Unknown_8daf1 ; 4d
+	dbw $3e, Unknown_8daf1 ; 4e
+	dbw $00, Unknown_8de9c ; 4f
+	dbw $00, Unknown_8dea1 ; 50
+	dbw $00, Unknown_8dff6 ; 51
+	dbw $00, Unknown_8e007 ; 52
+	dbw $00, Unknown_8e018 ; 53
+	dbw $00, Unknown_8daf1 ; 54
+	dbw $01, Unknown_8daf1 ; 55
+	dbw $00, Unknown_8e029 ; 56
+	dbw $00, Unknown_8e076 ; 57
+	dbw $00, Unknown_8e0b7 ; 58
+	dbw $00, Unknown_8e0f4 ; 59
+	dbw $00, Unknown_8e139 ; 5a
+	dbw $04, Unknown_8dea1 ; 5b
+	dbw $00, Unknown_8e183 ; 5c
+	dbw $00, Unknown_8e1b4 ; 5d
+	dbw $00, Unknown_8e1b9 ; 5e
+	dbw $00, Unknown_8e1ca ; 5f
+	dbw $00, Unknown_8e1eb ; 60
+	dbw $00, Unknown_8e1f0 ; 61
+	dbw $00, Unknown_8e1f9 ; 62
+	dbw $00, Unknown_8e202 ; 63
+	dbw $04, Unknown_8e202 ; 64
+	dbw $00, Unknown_8e213 ; 65
+	dbw $04, Unknown_8e213 ; 66
+	dbw $20, Unknown_8e224 ; 67
+	dbw $21, Unknown_8e224 ; 68
+	dbw $22, Unknown_8e24b ; 69
+	dbw $23, Unknown_8e25c ; 6a
+	dbw $27, Unknown_8e27d ; 6b
+	dbw $2a, Unknown_8e229 ; 6c
+	dbw $2a, Unknown_8e23a ; 6d
+	dbw $00, Unknown_8e2ae ; 6e
+	dbw $08, Unknown_8e33f ; 6f
+	dbw $60, Unknown_8e3b0 ; 70
+	dbw $68, Unknown_8e429 ; 71
+	dbw $00, Unknown_8e4a6 ; 72
+	dbw $05, Unknown_8e4a6 ; 73
+	dbw $0a, Unknown_8e4a6 ; 74
+	dbw $50, Unknown_8e50b ; 75
+	dbw $00, Unknown_8e54c ; 76
+	dbw $01, Unknown_8e551 ; 77
+	dbw $04, Unknown_8e55e ; 78
+	dbw $00, Unknown_8db29 ; 79
+	dbw $01, Unknown_8e57b ; 7a
+	dbw $03, Unknown_8e59c ; 7b
+	dbw $08, Unknown_8e5cd ; 7c
+	dbw $1c, Unknown_8e5cd ; 7d
+	dbw $80, Unknown_8e61e ; 7e
+	dbw $00, Unknown_8e66f ; 7f
+	dbw $04, Unknown_8e66f ; 80
+	dbw $d0, Unknown_8e680 ; 81
+	dbw $d3, Unknown_8e680 ; 82
+	dbw $d6, Unknown_8e680 ; 83
+	dbw $6c, Unknown_8e6a5 ; 84
+	dbw $68, Unknown_8e6a5 ; 85
+	dbw $64, Unknown_8e6a5 ; 86
+	dbw $60, Unknown_8e6a5 ; 87
+	dbw $0c, Unknown_8e6a5 ; 88
+	dbw $08, Unknown_8e6a5 ; 89
+	dbw $04, Unknown_8e6a5 ; 8a
+	dbw $00, Unknown_8e6a5 ; 8b
+; 8daf1
+
+
+Unknown_8daf1: ; 8daf1
+	db 1
+	db $fc, $fc, $00, $00
+; 8daf6
+
+Unknown_8daf6: ; 8daf6
+	db 4
+	db $f8, $f8, $00, $00
+	db $f8, $00, $01, $00
+	db $00, $f8, $10, $00
+	db $00, $00, $11, $00
+; 8db07
+
+Unknown_8db07: ; 8db07
+	db 4
+	db $f8, $f8, $00, $00
+	db $f8, $00, $00, $20
+	db $00, $f8, $01, $00
+	db $00, $00, $01, $20
+; 8db18
+
+Unknown_8db18: ; 8db18
+	db 4
+	db $f8, $f8, $00, $80
+	db $f8, $00, $00, $a0
+	db $00, $f8, $01, $80
+	db $00, $00, $01, $a0
+; 8db29
+
+Unknown_8db29: ; 8db29
+	db 4
+	db $f8, $f8, $00, $00
+	db $f8, $00, $00, $20
+	db $00, $f8, $00, $40
+	db $00, $00, $00, $60
+; 8db3a
+
+Unknown_8db3a: ; 8db3a
+	db 4
+	db $f8, $f8, $00, $07
+	db $f8, $00, $00, $27
+	db $00, $f8, $00, $47
+	db $00, $00, $00, $67
+; 8db4b
+
+; 8db4b
+	db 4
+	db $f8, $f8, $00, $80
+	db $f8, $00, $00, $a0
+	db $00, $f8, $00, $c0
+	db $00, $00, $00, $e0
+; 8db5c
+
+Unknown_8db5c: ; 8db5c
+	db 16
+	db $f0, $f0, $00, $00
+	db $f0, $f8, $01, $00
+	db $f8, $f0, $02, $00
+	db $f8, $f8, $03, $00
+	db $f0, $00, $01, $20
+	db $f0, $08, $00, $20
+	db $f8, $00, $03, $20
+	db $f8, $08, $02, $20
+	db $00, $f0, $02, $40
+	db $00, $f8, $03, $40
+	db $08, $f0, $00, $40
+	db $08, $f8, $01, $40
+	db $00, $00, $03, $60
+	db $00, $08, $02, $60
+	db $08, $00, $01, $60
+	db $08, $08, $00, $60
+; 8db9d
+
+Unknown_8db9d: ; 8db9d
+	db 36
+	db $e8, $e8, $00, $00
+	db $e8, $f0, $01, $00
+	db $e8, $f8, $02, $00
+	db $f0, $e8, $03, $00
+	db $f0, $f0, $04, $00
+	db $f0, $f8, $05, $00
+	db $f8, $e8, $06, $00
+	db $f8, $f0, $05, $00
+	db $f8, $f8, $05, $00
+	db $e8, $00, $02, $20
+	db $e8, $08, $01, $20
+	db $e8, $10, $00, $20
+	db $f0, $00, $05, $20
+	db $f0, $08, $04, $20
+	db $f0, $10, $03, $20
+	db $f8, $00, $05, $20
+	db $f8, $08, $05, $20
+	db $f8, $10, $06, $20
+	db $00, $e8, $06, $40
+	db $00, $f0, $05, $40
+	db $00, $f8, $05, $40
+	db $08, $e8, $03, $40
+	db $08, $f0, $04, $40
+	db $08, $f8, $05, $40
+	db $10, $e8, $00, $40
+	db $10, $f0, $01, $40
+	db $10, $f8, $02, $40
+	db $00, $00, $05, $60
+	db $00, $08, $05, $60
+	db $00, $10, $06, $60
+	db $08, $00, $05, $60
+	db $08, $08, $04, $60
+	db $08, $10, $03, $60
+	db $10, $00, $02, $60
+	db $10, $08, $01, $60
+	db $10, $10, $00, $60
+; 8dc2e
+
+Unknown_8dc2e: ; 8dc2e
+	db 9
+	db $f4, $f4, $00, $00
+	db $f4, $fc, $01, $00
+	db $f4, $04, $02, $00
+	db $fc, $f4, $10, $00
+	db $fc, $fc, $11, $00
+	db $fc, $04, $12, $00
+	db $04, $f4, $20, $00
+	db $04, $fc, $21, $00
+	db $04, $04, $22, $00
+; 8dc53
+
+Unknown_8dc53: ; 8dc53
+	db 16
+	db $f0, $f0, $00, $00
+	db $f0, $f8, $01, $00
+	db $f0, $00, $02, $00
+	db $f0, $08, $03, $00
+	db $f8, $f0, $10, $00
+	db $f8, $f8, $11, $00
+	db $f8, $00, $12, $00
+	db $f8, $08, $13, $00
+	db $00, $f0, $20, $00
+	db $00, $f8, $21, $00
+	db $00, $00, $22, $00
+	db $00, $08, $23, $00
+	db $08, $f0, $30, $00
+	db $08, $f8, $31, $00
+	db $08, $00, $32, $00
+	db $08, $08, $33, $00
+; 8dc94
+
+Unknown_8dc94: ; 8dc94
+	db 25
+	db $ec, $ec, $00, $00
+	db $f4, $ec, $01, $00
+	db $fc, $ec, $02, $00
+	db $04, $ec, $03, $00
+	db $0c, $ec, $04, $00
+	db $ec, $f4, $05, $00
+	db $f4, $f4, $06, $00
+	db $fc, $f4, $07, $00
+	db $04, $f4, $08, $00
+	db $0c, $f4, $09, $00
+	db $ec, $fc, $0a, $00
+	db $f4, $fc, $0b, $00
+	db $fc, $fc, $0c, $00
+	db $04, $fc, $0d, $00
+	db $0c, $fc, $0e, $00
+	db $ec, $04, $0f, $00
+	db $f4, $04, $10, $00
+	db $fc, $04, $11, $00
+	db $04, $04, $12, $00
+	db $0c, $04, $13, $00
+	db $ec, $0c, $14, $00
+	db $f4, $0c, $15, $00
+	db $fc, $0c, $16, $00
+	db $04, $0c, $17, $00
+	db $0c, $0c, $18, $00
+; 8dcf9
+
+; 8dcf9
+	db 36
+	db $e8, $e8, $00, $00
+	db $e8, $f0, $01, $00
+	db $e8, $f8, $02, $00
+	db $e8, $00, $03, $00
+	db $e8, $08, $04, $00
+	db $e8, $10, $05, $00
+	db $f0, $e8, $06, $00
+	db $f0, $f0, $07, $00
+	db $f0, $f8, $08, $00
+	db $f0, $00, $09, $00
+	db $f0, $08, $0a, $00
+	db $f0, $10, $0b, $00
+	db $f8, $e8, $0c, $00
+	db $f8, $f0, $0d, $00
+	db $f8, $f8, $0e, $00
+	db $f8, $00, $0f, $00
+	db $f8, $08, $10, $00
+	db $f8, $10, $11, $00
+	db $00, $e8, $12, $00
+	db $00, $f0, $13, $00
+	db $00, $f8, $14, $00
+	db $00, $00, $15, $00
+	db $00, $08, $16, $00
+	db $00, $10, $17, $00
+	db $08, $e8, $18, $00
+	db $08, $f0, $19, $00
+	db $08, $f8, $1a, $00
+	db $08, $00, $1b, $00
+	db $08, $08, $1c, $00
+	db $08, $10, $1d, $00
+	db $10, $e8, $1e, $00
+	db $10, $f0, $1f, $00
+	db $10, $f8, $20, $00
+	db $10, $00, $21, $00
+	db $10, $08, $22, $00
+	db $10, $10, $23, $00
+; 8dd8a
+
+Unknown_8dd8a: ; 8dd8a
+	db 4
+	db $f8, $f8, $00, $00
+	db $f8, $00, $01, $00
+	db $00, $f8, $02, $00
+	db $00, $00, $03, $00
+; 8dd9b
+
+Unknown_8dd9b: ; 8dd9b
+	db 4
+	db $f8, $f8, $00, $80
+	db $f8, $00, $01, $80
+	db $00, $f8, $02, $80
+	db $00, $00, $03, $80
+; 8ddac
+
+Unknown_8ddac: ; 8ddac
+	db 4
+	db $f8, $f8, $00, $00
+	db $f8, $00, $01, $00
+	db $00, $f8, $08, $00
+	db $00, $00, $03, $00
+; 8ddbd
+
+Unknown_8ddbd: ; 8ddbd
+	db 4
+	db $f8, $f8, $04, $00
+	db $f8, $00, $05, $00
+	db $00, $f8, $08, $00
+	db $00, $00, $07, $00
+; 8ddce
+
+Unknown_8ddce: ; 8ddce
+	db 4
+	db $f8, $f8, $00, $00
+	db $f8, $00, $01, $00
+	db $00, $f8, $09, $00
+	db $00, $00, $03, $00
+; 8dddf
+
+Unknown_8dddf: ; 8dddf
+	db 4
+	db $f8, $f8, $04, $00
+	db $f8, $00, $05, $00
+	db $00, $f8, $09, $00
+	db $00, $00, $07, $00
+; 8ddf0
+
+Unknown_8ddf0: ; 8ddf0
+	db 6
+	db $f8, $f4, $00, $01
+	db $f8, $fc, $01, $01
+	db $f8, $04, $02, $01
+	db $00, $f4, $10, $01
+	db $00, $fc, $11, $01
+	db $00, $04, $12, $01
+; 8de09
+
+Unknown_8de09: ; 8de09
+	db 29
+	db $e8, $e8, $00, $00
+	db $e8, $f0, $01, $00
+	db $e8, $f8, $02, $00
+	db $e8, $00, $03, $00
+	db $f0, $e8, $10, $00
+	db $f0, $f0, $11, $00
+	db $f0, $f8, $12, $00
+	db $f0, $00, $13, $00
+	db $f8, $e8, $20, $00
+	db $f8, $f0, $21, $00
+	db $f8, $f8, $22, $00
+	db $f8, $00, $23, $00
+	db $f8, $08, $24, $00
+	db $00, $e8, $30, $80
+	db $00, $f0, $31, $80
+	db $00, $f8, $32, $80
+	db $00, $00, $33, $80
+	db $00, $08, $34, $80
+	db $08, $e8, $40, $80
+	db $08, $f0, $41, $80
+	db $08, $f8, $42, $80
+	db $08, $00, $43, $80
+	db $08, $08, $44, $80
+	db $08, $10, $45, $80
+	db $10, $f0, $51, $80
+	db $10, $f8, $52, $80
+	db $10, $00, $53, $80
+	db $10, $08, $54, $80
+	db $10, $10, $55, $80
+; 8de7e
+
+Unknown_8de7e: ; 8de7e
+	db 2
+	db $f8, $fc, $00, $00
+	db $00, $fc, $10, $00
+; 8de87
+
+Unknown_8de87: ; 8de87
+	db 5
+	db $f0, $18, $00, $00
+	db $f0, $20, $01, $00
+	db $f8, $10, $02, $00
+	db $f8, $18, $03, $00
+	db $00, $10, $04, $00
+; 8de9c
+
+Unknown_8de9c: ; 8de9c
+	db 1
+	db $fc, $fc, $00, $06
+; 8dea1
+
+Unknown_8dea1: ; 8dea1
+	db 4
+	db $f8, $f8, $00, $06
+	db $f8, $00, $01, $06
+	db $00, $f8, $02, $06
+	db $00, $00, $03, $06
+; 8deb2
+
+Unknown_8deb2: ; 8deb2
+	db 4
+	db $ff, $ff, $00, $00
+	db $ff, $00, $00, $20
+	db $00, $ff, $00, $40
+	db $00, $00, $00, $60
+; 8dec3
+
+Unknown_8dec3: ; 8dec3
+	db 10
+	db $ff, $00, $00, $00
+	db $ff, $08, $01, $00
+	db $ff, $10, $01, $00
+	db $ff, $18, $01, $00
+	db $ff, $20, $00, $20
+	db $00, $00, $00, $40
+	db $00, $08, $01, $40
+	db $00, $10, $01, $40
+	db $00, $18, $01, $40
+	db $00, $20, $00, $60
+; 8deec
+
+Unknown_8deec: ; 8deec
+	db 15
+	db $ec, $f4, $00, $11
+	db $ec, $fc, $01, $11
+	db $ec, $04, $02, $11
+	db $f4, $f4, $03, $11
+	db $f4, $fc, $04, $11
+	db $f4, $04, $05, $11
+	db $fc, $f4, $06, $11
+	db $fc, $fc, $07, $11
+	db $fc, $04, $08, $11
+	db $04, $f4, $09, $11
+	db $04, $fc, $0a, $11
+	db $04, $04, $0b, $11
+	db $0c, $f4, $0c, $11
+	db $0c, $fc, $0d, $11
+	db $0c, $04, $0e, $11
+; 8df29
+
+Unknown_8df29: ; 8df29
+	db 6
+	db $f4, $f4, $00, $15
+	db $f4, $fc, $02, $15
+	db $f4, $04, $00, $35
+	db $04, $f4, $04, $15
+	db $04, $fc, $06, $15
+	db $04, $04, $04, $35
+; 8df42
+
+Unknown_8df42: ; 8df42
+	db 6
+	db $f4, $f4, $00, $16
+	db $f4, $fc, $02, $16
+	db $f4, $04, $04, $16
+	db $04, $f4, $06, $16
+	db $04, $fc, $08, $16
+	db $04, $04, $0a, $16
+; 8df5b
+
+Unknown_8df5b: ; 8df5b
+	db 6
+	db $f4, $f4, $00, $16
+	db $f4, $fc, $02, $16
+	db $f4, $04, $04, $16
+	db $04, $f4, $0c, $16
+	db $04, $fc, $0e, $16
+	db $04, $04, $10, $16
+; 8df74
+
+Unknown_8df74: ; 8df74
+	db 6
+	db $f4, $f4, $00, $16
+	db $f4, $fc, $02, $16
+	db $f4, $04, $04, $16
+	db $04, $f4, $12, $16
+	db $04, $fc, $14, $16
+	db $04, $04, $16, $16
+; 8df8d
+
+Unknown_8df8d: ; 8df8d
+	db 6
+	db $f4, $f4, $00, $16
+	db $f4, $fc, $02, $16
+	db $f4, $04, $04, $16
+	db $04, $f4, $18, $16
+	db $04, $fc, $1a, $16
+	db $04, $04, $1c, $16
+; 8dfa6
+
+Unknown_8dfa6: ; 8dfa6
+	db 6
+	db $f4, $f4, $1e, $16
+	db $f4, $fc, $20, $16
+	db $f4, $04, $22, $16
+	db $04, $f4, $24, $16
+	db $04, $fc, $26, $16
+	db $04, $04, $28, $16
+; 8dfbf
+
+Unknown_8dfbf: ; 8dfbf
+	db 3
+	db $f4, $fc, $00, $10
+	db $fc, $fc, $00, $10
+	db $04, $fc, $00, $10
+; 8dfcc
+
+Unknown_8dfcc: ; 8dfcc
+	db 6
+	db $00, $00, $00, $00
+	db $00, $08, $01, $00
+	db $00, $10, $01, $00
+	db $00, $18, $01, $00
+	db $00, $20, $02, $00
+	db $00, $28, $03, $00
+; 8dfe5
+
+Unknown_8dfe5: ; 8dfe5
+	db 4
+	db $00, $00, $00, $00
+	db $00, $08, $01, $00
+	db $00, $10, $02, $00
+	db $00, $18, $03, $00
+; 8dff6
+
+Unknown_8dff6: ; 8dff6
+	db 4
+	db $f8, $f6, $00, $06
+	db $f8, $02, $01, $06
+	db $00, $f6, $02, $06
+	db $00, $02, $03, $06
+; 8e007
+
+Unknown_8e007: ; 8e007
+	db 4
+	db $f8, $f4, $00, $06
+	db $f8, $04, $01, $06
+	db $00, $f4, $02, $06
+	db $00, $04, $03, $06
+; 8e018
+
+Unknown_8e018: ; 8e018
+	db 4
+	db $f8, $f0, $00, $06
+	db $f8, $08, $01, $06
+	db $00, $f0, $02, $06
+	db $00, $08, $03, $06
+; 8e029
+
+Unknown_8e029: ; 8e029
+	db 19
+	db $f8, $e0, $00, $00
+	db $f0, $e8, $02, $00
+	db $00, $e8, $04, $00
+	db $e8, $f0, $06, $00
+	db $f8, $f0, $08, $00
+	db $08, $f0, $0a, $00
+	db $e8, $f8, $0c, $00
+	db $f8, $f8, $0e, $00
+	db $08, $f8, $10, $00
+	db $e8, $00, $12, $00
+	db $f8, $00, $14, $00
+	db $08, $00, $16, $00
+	db $e8, $08, $18, $00
+	db $f8, $08, $1a, $00
+	db $08, $08, $1c, $00
+	db $f8, $10, $1e, $00
+	db $08, $10, $20, $00
+	db $f0, $18, $22, $00
+	db $00, $18, $24, $00
+; 8e076
+
+Unknown_8e076: ; 8e076
+	db 16
+	db $f8, $e0, $00, $00
+	db $f0, $e8, $02, $00
+	db $00, $e8, $04, $00
+	db $f8, $f0, $26, $00
+	db $08, $f0, $0a, $00
+	db $e8, $f8, $28, $00
+	db $f8, $f8, $2a, $00
+	db $08, $f8, $10, $00
+	db $f8, $00, $2c, $00
+	db $08, $00, $16, $00
+	db $f8, $08, $30, $00
+	db $08, $08, $1c, $00
+	db $f8, $10, $1e, $00
+	db $08, $10, $20, $00
+	db $f0, $18, $22, $00
+	db $00, $18, $24, $00
+; 8e0b7
+
+Unknown_8e0b7: ; 8e0b7
+	db 15
+	db $f8, $e0, $00, $00
+	db $f0, $e8, $02, $00
+	db $00, $e8, $32, $00
+	db $f8, $f0, $34, $00
+	db $08, $f0, $36, $00
+	db $f8, $f8, $38, $00
+	db $08, $f8, $3a, $00
+	db $f8, $00, $3c, $00
+	db $08, $00, $3e, $00
+	db $f8, $08, $30, $00
+	db $08, $08, $1c, $00
+	db $f8, $10, $1e, $00
+	db $08, $10, $20, $00
+	db $f0, $18, $22, $00
+	db $00, $18, $24, $00
+; 8e0f4
+
+Unknown_8e0f4: ; 8e0f4
+	db 17
+	db $f8, $e0, $00, $00
+	db $f0, $e8, $02, $00
+	db $00, $e8, $04, $00
+	db $f8, $f0, $40, $00
+	db $08, $f0, $42, $00
+	db $18, $f0, $44, $00
+	db $f8, $f8, $46, $00
+	db $08, $f8, $48, $00
+	db $18, $f8, $4a, $00
+	db $f8, $00, $4c, $00
+	db $08, $00, $4e, $00
+	db $f8, $08, $30, $00
+	db $08, $08, $1c, $00
+	db $f8, $10, $1e, $00
+	db $08, $10, $20, $00
+	db $f0, $18, $22, $00
+	db $00, $18, $24, $00
+; 8e139
+
+Unknown_8e139: ; 8e139
+	db 17
+	db $f8, $e0, $00, $00
+	db $f0, $e8, $02, $00
+	db $00, $e8, $04, $00
+	db $f8, $f0, $50, $00
+	db $08, $f0, $0a, $00
+	db $e8, $f8, $52, $00
+	db $f8, $f8, $54, $00
+	db $08, $f8, $10, $00
+	db $e8, $00, $56, $00
+	db $f8, $00, $2e, $00
+	db $08, $00, $16, $00
+	db $f8, $08, $30, $00
+	db $08, $08, $1c, $00
+	db $f8, $10, $1e, $00
+	db $08, $10, $20, $00
+	db $f0, $18, $22, $00
+	db $00, $18, $24, $00
+; 8e17e
+
+Unknown_8e17e: ; 8e17e
+	db 1
+	db $fc, $fc, $00, $11
+; 8e183
+
+Unknown_8e183: ; 8e183
+	db 12
+	db $00, $00, $30, $00
+	db $00, $08, $31, $00
+	db $00, $10, $31, $00
+	db $00, $18, $31, $00
+	db $00, $20, $31, $00
+	db $00, $28, $32, $00
+	db $08, $00, $33, $00
+	db $08, $08, $34, $00
+	db $08, $10, $34, $00
+	db $08, $18, $34, $00
+	db $08, $20, $34, $00
+	db $08, $28, $35, $00
+; 8e1b4
+
+Unknown_8e1b4: ; 8e1b4
+	db 1
+	db $00, $00, $ed, $00
+; 8e1b9
+
+Unknown_8e1b9: ; 8e1b9
+	db 4
+	db $ff, $ff, $30, $00
+	db $ff, $01, $32, $00
+	db $01, $ff, $33, $00
+	db $01, $01, $35, $00
+; 8e1ca
+
+Unknown_8e1ca: ; 8e1ca
+	db 8
+	db $ff, $ff, $30, $00
+	db $ff, $04, $31, $00
+	db $ff, $0c, $31, $00
+	db $ff, $11, $32, $00
+	db $01, $ff, $33, $00
+	db $01, $04, $34, $00
+	db $01, $0c, $34, $00
+	db $01, $11, $35, $00
+; 8e1eb
+
+Unknown_8e1eb: ; 8e1eb
+	db 1
+	db $00, $00, $34, $00
+; 8e1f0
+
+Unknown_8e1f0: ; 8e1f0
+	db 2
+	db $00, $00, $30, $00
+	db $08, $00, $33, $00
+; 8e1f9
+
+Unknown_8e1f9: ; 8e1f9
+	db 2
+	db $00, $00, $32, $00
+	db $08, $00, $35, $00
+; 8e202
+
+Unknown_8e202: ; 8e202
+	db 4
+	db $f8, $f8, $00, $01
+	db $f8, $00, $01, $01
+	db $00, $f8, $02, $01
+	db $00, $00, $03, $01
+; 8e213
+
+Unknown_8e213: ; 8e213
+	db 4
+	db $f8, $f8, $00, $81
+	db $f8, $00, $01, $81
+	db $00, $f8, $02, $81
+	db $00, $00, $03, $81
+; 8e224
+
+Unknown_8e224: ; 8e224
+	db 1
+	db $fc, $fc, $00, $02
+; 8e229
+
+Unknown_8e229: ; 8e229
+	db 4
+	db $f0, $fc, $00, $03
+	db $f8, $fc, $01, $03
+	db $00, $fc, $02, $03
+	db $08, $fc, $03, $03
+; 8e23a
+
+Unknown_8e23a: ; 8e23a
+	db 4
+	db $f0, $fc, $03, $44
+	db $f8, $fc, $02, $44
+	db $00, $fc, $01, $44
+	db $08, $fc, $00, $44
+; 8e24b
+
+Unknown_8e24b: ; 8e24b
+	db 4
+	db $f8, $f8, $00, $01
+	db $f8, $00, $00, $21
+	db $00, $f8, $00, $41
+	db $00, $00, $00, $61
+; 8e25c
+
+Unknown_8e25c: ; 8e25c
+	db 8
+	db $f4, $f4, $00, $01
+	db $f4, $fc, $01, $01
+	db $f4, $04, $00, $21
+	db $fc, $f4, $02, $01
+	db $fc, $04, $02, $21
+	db $04, $f4, $00, $41
+	db $04, $fc, $01, $41
+	db $04, $04, $00, $61
+; 8e27d
+
+Unknown_8e27d: ; 8e27d
+	db 12
+	db $f0, $f0, $00, $01
+	db $f0, $f8, $01, $01
+	db $f8, $f0, $02, $01
+	db $f0, $00, $01, $21
+	db $f0, $08, $00, $21
+	db $f8, $08, $02, $21
+	db $00, $f0, $02, $41
+	db $08, $f0, $00, $41
+	db $08, $f8, $01, $41
+	db $00, $08, $02, $61
+	db $08, $00, $01, $61
+	db $08, $08, $00, $61
+; 8e2ae
+
+Unknown_8e2ae: ; 8e2ae
+	db 36
+	db $e8, $08, $05, $00
+	db $e8, $10, $06, $00
+	db $e8, $18, $07, $00
+	db $f0, $e8, $11, $00
+	db $f0, $f0, $12, $00
+	db $f0, $f8, $13, $00
+	db $f0, $00, $14, $00
+	db $f0, $08, $15, $00
+	db $f0, $10, $16, $00
+	db $f0, $18, $17, $00
+	db $f8, $e0, $20, $00
+	db $f8, $e8, $21, $00
+	db $f8, $f0, $22, $00
+	db $f8, $f8, $23, $00
+	db $f8, $00, $24, $00
+	db $f8, $08, $25, $00
+	db $f8, $10, $26, $00
+	db $f8, $18, $27, $00
+	db $00, $e0, $30, $00
+	db $00, $e8, $31, $00
+	db $00, $f0, $32, $00
+	db $00, $f8, $33, $00
+	db $00, $00, $34, $00
+	db $00, $08, $35, $00
+	db $00, $10, $36, $00
+	db $08, $e0, $40, $00
+	db $08, $e8, $41, $00
+	db $08, $f0, $42, $00
+	db $08, $f8, $43, $00
+	db $08, $00, $44, $00
+	db $08, $08, $45, $00
+	db $08, $10, $46, $00
+	db $08, $18, $47, $00
+	db $10, $e0, $50, $00
+	db $10, $e8, $51, $00
+	db $10, $18, $57, $00
+; 8e33f
+
+Unknown_8e33f: ; 8e33f
+	db 28
+	db $e8, $00, $04, $00
+	db $e8, $08, $05, $00
+	db $e8, $10, $06, $00
+	db $f0, $e8, $11, $00
+	db $f0, $f0, $12, $00
+	db $f0, $f8, $13, $00
+	db $f0, $00, $14, $00
+	db $f0, $08, $15, $00
+	db $f0, $10, $16, $00
+	db $f8, $e8, $21, $00
+	db $f8, $f0, $22, $00
+	db $f8, $f8, $23, $00
+	db $f8, $00, $24, $00
+	db $f8, $08, $25, $00
+	db $f8, $10, $26, $00
+	db $00, $e0, $30, $00
+	db $00, $e8, $31, $00
+	db $00, $f0, $32, $00
+	db $00, $f8, $33, $00
+	db $00, $00, $34, $00
+	db $00, $08, $35, $00
+	db $08, $f0, $42, $00
+	db $08, $f8, $43, $00
+	db $08, $00, $44, $00
+	db $08, $08, $45, $00
+	db $10, $f8, $53, $00
+	db $10, $00, $54, $00
+	db $10, $08, $55, $00
+; 8e3b0
+
+Unknown_8e3b0: ; 8e3b0
+	db 30
+	db $e8, $00, $04, $00
+	db $e8, $08, $05, $00
+	db $f0, $e8, $11, $00
+	db $f0, $f0, $12, $00
+	db $f0, $f8, $13, $00
+	db $f0, $00, $14, $00
+	db $f0, $08, $15, $00
+	db $f0, $10, $16, $00
+	db $f0, $18, $17, $00
+	db $f8, $e0, $20, $00
+	db $f8, $e8, $21, $00
+	db $f8, $f0, $22, $00
+	db $f8, $f8, $23, $00
+	db $f8, $00, $24, $00
+	db $f8, $08, $25, $00
+	db $f8, $10, $26, $00
+	db $00, $e0, $30, $00
+	db $00, $e8, $31, $00
+	db $00, $f0, $32, $00
+	db $00, $f8, $33, $00
+	db $00, $00, $34, $00
+	db $00, $08, $35, $00
+	db $08, $f0, $42, $00
+	db $08, $f8, $43, $00
+	db $08, $00, $44, $00
+	db $08, $08, $45, $00
+	db $10, $f0, $52, $00
+	db $10, $f8, $53, $00
+	db $10, $00, $54, $00
+	db $10, $08, $55, $00
+; 8e429
+
+Unknown_8e429: ; 8e429
+	db 31
+	db $f0, $e8, $11, $00
+	db $f0, $f0, $12, $00
+	db $f0, $f8, $13, $00
+	db $f0, $00, $14, $00
+	db $f0, $08, $15, $00
+	db $f0, $10, $16, $00
+	db $f0, $18, $17, $00
+	db $f8, $e0, $20, $00
+	db $f8, $e8, $21, $00
+	db $f8, $f0, $22, $00
+	db $f8, $f8, $23, $00
+	db $f8, $00, $24, $00
+	db $f8, $08, $25, $00
+	db $f8, $10, $26, $00
+	db $f8, $18, $27, $00
+	db $00, $e0, $30, $00
+	db $00, $e8, $31, $00
+	db $00, $f0, $32, $00
+	db $00, $f8, $33, $00
+	db $00, $00, $34, $00
+	db $00, $08, $35, $00
+	db $00, $10, $36, $00
+	db $08, $e8, $41, $00
+	db $08, $f0, $42, $00
+	db $08, $f8, $43, $00
+	db $08, $00, $44, $00
+	db $08, $08, $45, $00
+	db $10, $e8, $51, $00
+	db $10, $f0, $52, $00
+	db $10, $00, $54, $00
+	db $10, $08, $55, $00
+; 8e4a6
+
+Unknown_8e4a6: ; 8e4a6
+	db 25
+	db $ec, $ec, $00, $09
+	db $ec, $f4, $01, $09
+	db $ec, $fc, $02, $09
+	db $ec, $04, $03, $09
+	db $ec, $0c, $04, $09
+	db $f4, $ec, $10, $09
+	db $f4, $f4, $11, $09
+	db $f4, $fc, $12, $09
+	db $f4, $04, $13, $09
+	db $f4, $0c, $14, $09
+	db $fc, $ec, $20, $09
+	db $fc, $f4, $21, $09
+	db $fc, $fc, $22, $09
+	db $fc, $04, $23, $09
+	db $fc, $0c, $24, $09
+	db $04, $ec, $30, $09
+	db $04, $f4, $31, $09
+	db $04, $fc, $32, $09
+	db $04, $04, $33, $09
+	db $04, $0c, $34, $09
+	db $0c, $ec, $40, $09
+	db $0c, $f4, $41, $09
+	db $0c, $fc, $42, $09
+	db $0c, $04, $43, $09
+	db $0c, $0c, $44, $09
+; 8e50b
+
+Unknown_8e50b: ; 8e50b
+	db 16
+	db $f0, $ec, $00, $0a
+	db $f0, $f4, $01, $0a
+	db $f0, $fc, $02, $0a
+	db $f0, $04, $03, $0a
+	db $f8, $ec, $04, $0a
+	db $f8, $f4, $05, $0a
+	db $f8, $fc, $06, $0a
+	db $f8, $04, $07, $0a
+	db $00, $ec, $08, $0a
+	db $00, $f4, $09, $0a
+	db $00, $fc, $0a, $0a
+	db $00, $04, $0b, $0a
+	db $08, $ec, $0c, $0a
+	db $08, $f4, $0d, $0a
+	db $08, $fc, $0e, $0a
+	db $08, $04, $0f, $0a
+; 8e54c
+
+Unknown_8e54c: ; 8e54c
+	db 1
+	db $fc, $fc, $00, $00
+; 8e551
+
+Unknown_8e551: ; 8e551
+	db 3
+	db $00, $f8, $00, $00
+	db $f8, $f8, $01, $00
+	db $f8, $00, $02, $00
+; 8e55e
+
+Unknown_8e55e: ; 8e55e
+	db 7
+	db $08, $f0, $00, $00
+	db $00, $f0, $01, $00
+	db $f8, $f0, $02, $00
+	db $f8, $f8, $03, $00
+	db $f0, $f8, $04, $00
+	db $f0, $00, $05, $00
+	db $f0, $08, $06, $00
+; 8e57b
+
+Unknown_8e57b: ; 8e57b
+	db 8
+	db $f8, $f0, $00, $00
+	db $f8, $f8, $01, $00
+	db $f8, $00, $01, $20
+	db $f8, $08, $00, $20
+	db $00, $f0, $00, $40
+	db $00, $f8, $01, $40
+	db $00, $00, $01, $60
+	db $00, $08, $00, $60
+; 8e59c
+
+Unknown_8e59c: ; 8e59c
+	db 12
+	db $e8, $f8, $00, $00
+	db $f0, $f8, $01, $00
+	db $f8, $f8, $02, $00
+	db $e8, $00, $00, $20
+	db $f0, $00, $01, $20
+	db $f8, $00, $02, $20
+	db $00, $f8, $02, $40
+	db $08, $f8, $01, $40
+	db $10, $f8, $00, $40
+	db $00, $00, $02, $60
+	db $08, $00, $01, $60
+	db $10, $00, $00, $60
+; 8e5cd
+
+Unknown_8e5cd: ; 8e5cd
+	db 20
+	db $ec, $f0, $00, $00
+	db $ec, $f8, $01, $00
+	db $ec, $00, $02, $00
+	db $ec, $08, $03, $00
+	db $f4, $f0, $04, $00
+	db $f4, $f8, $05, $00
+	db $f4, $00, $06, $00
+	db $f4, $08, $07, $00
+	db $fc, $f0, $08, $00
+	db $fc, $f8, $09, $00
+	db $fc, $00, $0a, $00
+	db $fc, $08, $0b, $00
+	db $04, $f0, $0c, $00
+	db $04, $f8, $0d, $00
+	db $04, $00, $0e, $00
+	db $04, $08, $0f, $00
+	db $0c, $f0, $10, $00
+	db $0c, $f8, $11, $00
+	db $0c, $00, $12, $00
+	db $0c, $08, $13, $00
+; 8e61e
+
+Unknown_8e61e: ; 8e61e
+	db 20
+	db $00, $08, $00, $81
+	db $08, $10, $00, $81
+	db $10, $18, $00, $81
+	db $18, $20, $00, $81
+	db $20, $28, $00, $81
+	db $18, $30, $00, $81
+	db $10, $38, $00, $81
+	db $08, $40, $00, $81
+	db $00, $48, $00, $81
+	db $08, $50, $00, $81
+	db $10, $58, $00, $81
+	db $18, $60, $00, $81
+	db $20, $68, $00, $81
+	db $18, $70, $00, $81
+	db $10, $78, $00, $81
+	db $08, $80, $00, $81
+	db $00, $88, $00, $81
+	db $08, $90, $00, $81
+	db $10, $98, $00, $81
+	db $18, $a0, $00, $81
+; 8e66f
+
+Unknown_8e66f: ; 8e66f
+	db 4
+	db $f8, $f8, $00, $02
+	db $f8, $00, $01, $02
+	db $00, $f8, $02, $02
+	db $00, $00, $03, $02
+; 8e680
+
+Unknown_8e680: ; 8e680
+	db 9
+	db $f0, $f4, $00, $01
+	db $f0, $fc, $01, $01
+	db $f0, $04, $02, $01
+	db $f8, $f4, $10, $01
+	db $f8, $fc, $11, $01
+	db $f8, $04, $12, $01
+	db $00, $f4, $20, $01
+	db $00, $fc, $21, $01
+	db $00, $04, $22, $01
+; 8e6a5
+
+Unknown_8e6a5: ; 8e6a5
+	db 24
+	db $d8, $f4, $00, $01
+	db $d8, $fc, $01, $01
+	db $d8, $04, $02, $01
+	db $d8, $0c, $03, $01
+	db $e0, $f4, $10, $01
+	db $e0, $fc, $11, $01
+	db $e0, $04, $12, $01
+	db $e0, $0c, $13, $01
+	db $e8, $f4, $20, $01
+	db $e8, $fc, $21, $01
+	db $e8, $04, $22, $01
+	db $e8, $0c, $23, $01
+	db $f0, $f4, $30, $01
+	db $f0, $fc, $31, $01
+	db $f0, $04, $32, $01
+	db $f0, $0c, $33, $01
+	db $f8, $f4, $40, $01
+	db $f8, $fc, $41, $01
+	db $f8, $04, $42, $01
+	db $f8, $0c, $43, $01
+	db $00, $f4, $50, $01
+	db $00, $fc, $51, $01
+	db $00, $04, $52, $01
+	db $00, $0c, $53, $01
+; 8e706
+Unknown_8e706: ; Broken 2bpp pointers
+	dbbw $80, $01, $672a ; 128-tile 2bpp at 1:672a (inside Multiply)
+	dbbw $80, $01, $672a
+	dbbw $80, $01, $672a
+	dbbw $80, $01, $672a
+	dbbw $10, $37, $672a ; 16-tile 2bpp at 37:672a (within Tileset11GFX)
+	dbbw $10, $11, $672a ; 16-tile 2bpp at 11:672a (empty data)
+	dbbw $10, $39, $672a ; 16-tile 2bpp at 39:672a (empty data)
+	dbbw $10, $24, $672a ; 16-tile 2bpp at 24:672a (inside Function926f7)
+	dbbw $10, $21, $672a ; 16-tile 2bpp at 21:672a (inside Function8671c)
--- a/engine/breeding/egg.asm
+++ b/engine/breeding/egg.asm
@@ -699,7 +699,7 @@
 	ld bc, $20
 	ld a, BANK(EggHatchGFX)
 	call FarCopyBytes
-	callba Function8cf53
+	callba ClearSpriteAnims
 	ld de, VTiles2 tile $00
 	ld a, [wJumptableIndex]
 	call Function1723c
@@ -806,7 +806,7 @@
 ; 173b3
 
 Function173b3: ; 173b3 (5:73b3)
-	callba Function8cf53
+	callba ClearSpriteAnims
 	ld hl, .SpriteData
 .loop
 	ld a, [hli]
--- a/engine/compose_mail.asm
+++ b/engine/compose_mail.asm
@@ -129,7 +129,7 @@
 	and a
 	ret
 .exit_mail
-	callab Function8cf53
+	callab ClearSpriteAnims
 	call ClearSprites
 	xor a
 	ld [hSCX], a
--- a/engine/crystal_intro.asm
+++ b/engine/crystal_intro.asm
@@ -96,7 +96,7 @@
 	pop af
 	ld [rSVBK], a
 
-	callba Function8cf53
+	callba ClearSpriteAnims
 	depixel 10, 11, 4, 0
 	ld a, SPRITE_ANIM_INDEX_03
 	call _InitSpriteAnimStruct
@@ -125,7 +125,7 @@
 ; e465e
 
 Functione465e: ; e465e
-	callba Function8cf53
+	callba ClearSpriteAnims
 	call ClearTileMap
 	call ClearSprites
 	ld c, 16
@@ -540,7 +540,7 @@
 	ld [hWX], a
 	ld a, $90
 	ld [hWY], a
-	callba Function8cf53
+	callba ClearSpriteAnims
 	call Functione549e
 	xor a
 	ld [wIntroSceneFrameCounter], a
@@ -678,7 +678,7 @@
 	ld [hWX], a
 	ld a, $90
 	ld [hWY], a
-	callba Function8cf53
+	callba ClearSpriteAnims
 	call Functione549e
 	xor a
 	ld [wcf64], a
@@ -776,7 +776,7 @@
 	ld a, $90
 	ld [hWY], a
 	call Functione5516
-	callba Function8cf53
+	callba ClearSpriteAnims
 	depixel 13, 27, 4, 0
 	ld a, SPRITE_ANIM_INDEX_26
 	call _InitSpriteAnimStruct
@@ -925,7 +925,7 @@
 	ld [hWX], a
 	ld a, $90
 	ld [hWY], a
-	callba Function8cf53
+	callba ClearSpriteAnims
 	call Functione549e
 	xor a
 	ld [wIntroSceneFrameCounter], a
@@ -1050,7 +1050,7 @@
 	ld [hWX], a
 	ld a, $90
 	ld [hWY], a
-	callba Function8cf53
+	callba ClearSpriteAnims
 	depixel 13, 11, 4, 0
 	ld a, SPRITE_ANIM_INDEX_26
 	call _InitSpriteAnimStruct
@@ -1160,7 +1160,7 @@
 	ld [hWX], a
 	ld a, $90
 	ld [hWY], a
-	callba Function8cf53
+	callba ClearSpriteAnims
 	call Functione549e
 	depixel 8, 5
 	ld a, SPRITE_ANIM_INDEX_2A
@@ -1233,7 +1233,7 @@
 	ld [hWX], a
 	ld a, $90
 	ld [hWY], a
-	callba Function8cf53
+	callba ClearSpriteAnims
 	call Functione549e
 	xor a
 	ld [wcf64], a
@@ -1308,7 +1308,7 @@
 	ld [hWX], a
 	ld a, $90
 	ld [hWY], a
-	callba Function8cf53
+	callba ClearSpriteAnims
 	ld hl, wc300
 	xor a
 	ld [hli], a
@@ -1475,7 +1475,7 @@
 	ld [hWX], a
 	ld a, $90
 	ld [hWY], a
-	callba Function8cf53
+	callba ClearSpriteAnims
 	call Functione549e
 	xor a
 	ld [wcf64], a
--- a/engine/dummy_game.asm
+++ b/engine/dummy_game.asm
@@ -10,7 +10,7 @@
 	call DisableLCD
 	ld b, SCGB_08
 	call GetSGBLayout
-	callab Function8cf53
+	callab ClearSpriteAnims
 	ld hl, LZ_e2221
 	ld de, VTiles2 tile $00
 	call Decompress
--- a/engine/events_2.asm
+++ b/engine/events_2.asm
@@ -142,7 +142,7 @@
 ; 97cf9
 
 WildBattleScript: ; 97cf9
-	setup_random_encounter
+	randomwildmon
 	startbattle
 	returnafterbattle
 	end
--- a/engine/evolution_animation.asm
+++ b/engine/evolution_animation.asm
@@ -36,7 +36,7 @@
 	ld de, MUSIC_NONE
 	call PlayMusic
 
-	callba Function8cf53
+	callba ClearSpriteAnims
 
 	ld de, EvolutionGFX
 	ld hl, VTiles0
@@ -107,7 +107,7 @@
 	ld c, $0
 	call .GetSGBLayout
 	call Function4e7a6
-	callba Function8cf53
+	callba ClearSpriteAnims
 	call Function4e794
 	jr c, .asm_4e6de
 
@@ -144,7 +144,7 @@
 	ld c, $0
 	call .GetSGBLayout
 	call Function4e7a6
-	callba Function8cf53
+	callba ClearSpriteAnims
 	call Function4e794
 	ret c
 
--- a/engine/link.asm
+++ b/engine/link.asm
@@ -474,7 +474,7 @@
 	ld b, $a
 .asm_283b7
 	call DelayFrame
-	call LinkCommunicationsSignalDataReceived
+	call LinkDataReceived
 	dec b
 	jr nz, .asm_283b7
 	xor a
@@ -2295,9 +2295,9 @@
 	jr .asm_29d39
 
 .asm_29d79
-	call LinkCommunicationsSignalDataReceived
+	call LinkDataReceived
 	call DelayFrame
-	call LinkCommunicationsSignalDataReceived
+	call LinkDataReceived
 	ld c, $32
 	call DelayFrames
 	ld a, $1
@@ -2426,7 +2426,7 @@
 	ld b, $a
 .asm_29e49
 	call DelayFrame
-	call LinkCommunicationsSignalDataReceived
+	call LinkDataReceived
 	dec b
 	jr nz, .asm_29e49
 	ret
@@ -2467,9 +2467,9 @@
 	ld a, [wd265]
 	call Function29f17
 	push af
-	call LinkCommunicationsSignalDataReceived
+	call LinkDataReceived
 	call DelayFrame
-	call LinkCommunicationsSignalDataReceived
+	call LinkDataReceived
 	pop af
 	ld b, a
 	ld a, [wd265]
--- a/engine/mail.asm
+++ b/engine/mail.asm
@@ -443,7 +443,7 @@
 	dec a
 	ld b, a
 	call ReadMailMessage
-	jp ReturnToCallingMenu
+	jp CloseSubmenu
 ; 0x44877
 
 .PutInPack ; 0x44877
@@ -539,7 +539,7 @@
 	call PrintText
 
 .exit2
-	jp ReturnToCallingMenu
+	jp CloseSubmenu
 ; 0x4493c
 
 .HoldingMailText ; 0x4493c
--- a/engine/map_setup.asm
+++ b/engine/map_setup.asm
@@ -252,7 +252,7 @@
 	dba RotatePalettesRightMapAndMusic ; 06
 	dba EnterMapMusic ; 07
 	dba ForceMapMusic ; 08
-	dba RotatePalettesLeftMusic ; 09
+	dba FadeInMusic ; 09
 	dba LoadBlockData ; 0a
 	dba LoadNeighboringBlockData ; 0b
 	dba SaveScreen ; 0c
--- a/engine/mart.asm
+++ b/engine/mart.asm
@@ -377,7 +377,7 @@
 .loop
 	call BuyMenuLoop ; menu loop
 	jr nc, .loop
-	call ReturnToCallingMenu
+	call CloseSubmenu
 	ret
 ; 15c7d
 
--- a/engine/namingscreen.asm
+++ b/engine/namingscreen.asm
@@ -345,7 +345,7 @@
 	ret
 
 .asm_11930
-	callab Function8cf53
+	callab ClearSpriteAnims
 	call ClearSprites
 	xor a
 	ld [hSCX], a
@@ -866,7 +866,7 @@
 
 Function11c51: ; 11c51
 	call ClearSprites
-	callab Function8cf53
+	callab ClearSpriteAnims
 	call LoadStandardFont
 	call LoadFontsExtra
 
--- a/engine/party_menu.asm
+++ b/engine/party_menu.asm
@@ -41,7 +41,7 @@
 LoadPartyMenuGFX: ; 5004f
 	call LoadFontsBattleExtra
 	callab Function8ad1 ; engine/color.asm
-	callab ClearSpriteAnims
+	callab ClearSpriteAnims2
 	ret
 ; 5005f
 
--- a/engine/pokecenter_pc.asm
+++ b/engine/pokecenter_pc.asm
@@ -140,7 +140,7 @@
 	call PC_PlayChoosePCSound
 	call FadeToMenu
 	callba _HallOfFamePC
-	call ReturnToCallingMenu
+	call CloseSubmenu
 	and a
 	ret
 ; 156ab
@@ -323,7 +323,7 @@
 	jr .asm_157da
 
 .asm_157e4
-	call ReturnToCallingMenu
+	call CloseSubmenu
 	xor a
 	ret
 ; 0x157e9
@@ -403,7 +403,7 @@
 	jr .asm_15868
 
 .asm_15878
-	call ReturnToCallingMenu
+	call CloseSubmenu
 	xor a
 	ret
 ; 0x1587d
@@ -442,7 +442,7 @@
 	jr .asm_1589c
 
 .asm_158b3
-	call ReturnToCallingMenu
+	call CloseSubmenu
 
 .asm_158b6
 	xor a
--- a/engine/pokegear.asm
+++ b/engine/pokegear.asm
@@ -59,7 +59,7 @@
 	ld a, $7
 	ld [hWX], a
 	call Function90c4e
-	callba Function8cf53
+	callba ClearSpriteAnims
 	call Function90d32
 	ld a, 8
 	call SkipMusic
@@ -1944,7 +1944,7 @@
 	ld [hl], $1
 	xor a
 	ld [hBGMapMode], a
-	callba Function8cf53
+	callba ClearSpriteAnims
 	call Function91ff2
 	ld de, GFX_922e1
 	ld hl, VTiles2 tile $30
@@ -2866,7 +2866,7 @@
 	ld [hl], $1
 	xor a
 	ld [hBGMapMode], a
-	callba Function8cf53
+	callba ClearSpriteAnims
 	call Function91ff2
 	ld de, GFX_922e1
 	ld hl, VTiles2 tile $30
--- a/engine/scripting.asm
+++ b/engine/scripting.asm
@@ -163,10 +163,10 @@
 	dw Script_interpretmenu
 	dw Script_interpretmenu2
 	dw Script_loadpikachudata
-	dw Script_setup_random_encounter
-	dw Script_memtrainerdata
-	dw Script_scriptedpokedata
-	dw Script_scriptedtrainerdata
+	dw Script_randomwildmon
+	dw Script_loadmemtrainer
+	dw Script_loadwildmon
+	dw Script_loadtrainer
 	dw Script_startbattle
 	dw Script_returnafterbattle
 	dw Script_catchtutorial
@@ -1482,7 +1482,7 @@
 	ret
 ; 973fb
 
-Script_setup_random_encounter: ; 973fb
+Script_randomwildmon: ; 973fb
 ; script command 0x5b
 
 	xor a
@@ -1490,19 +1490,19 @@
 	ret
 ; 97400
 
-Script_memtrainerdata: ; 97400
+Script_loadmemtrainer: ; 97400
 ; script command 0x5c
 
 	ld a, (1 << 7) | 1
 	ld [wBattleScriptFlags], a
-	ld a, [WalkingDirection]
+	ld a, [wTempTrainerClass]
 	ld [OtherTrainerClass], a
-	ld a, [FacingDirection]
+	ld a, [wTempTrainerID]
 	ld [OtherTrainerID], a
 	ret
 ; 97412
 
-Script_scriptedpokedata: ; 97412
+Script_loadwildmon: ; 97412
 ; script command 0x5d
 ; parameters:
 ;     pokemon (PokemonParam)
@@ -1517,7 +1517,7 @@
 	ret
 ; 97424
 
-Script_scriptedtrainerdata: ; 97424
+Script_loadtrainer: ; 97424
 ; script command 0x5e
 ; parameters:
 ;     trainer_group (TrainerGroupParam)
@@ -1655,7 +1655,7 @@
 	ld e, [hl]
 	inc [hl]
 	ld d, $0
-	ld hl, wScriptStackBA1
+	ld hl, wScriptStack
 rept 3
 	add hl, de
 endr
@@ -3166,7 +3166,7 @@
 	dec [hl]
 	ld e, [hl]
 	ld d, $0
-	ld hl, wScriptStackBA1
+	ld hl, wScriptStack
 rept 3
 	add hl,de
 endr
--- a/engine/selectmenu.asm
+++ b/engine/selectmenu.asm
@@ -158,7 +158,7 @@
 	call ResetWindow
 	call FadeToMenu
 	call DoItemEffect
-	call ReturnToCallingMenu
+	call CloseSubmenu
 	call CloseText
 	and a
 	ret
--- a/engine/slot_machine.asm
+++ b/engine/slot_machine.asm
@@ -32,7 +32,7 @@
 	call ByteFill
 	ld b, SCGB_05
 	call GetSGBLayout
-	callab Function8cf53
+	callab ClearSpriteAnims
 	ld hl, wc6d0
 	ld bc, $48
 	xor a
@@ -101,7 +101,7 @@
 	call Function92b0f
 	xor a
 	ld [wc3b5], a
-	callab Function8cfa8
+	callab DoNextFrameForFirst16Sprites
 	call Function927f8
 	call Function927d3
 	call DelayFrame
--- a/engine/specials.asm
+++ b/engine/specials.asm
@@ -126,7 +126,7 @@
 	add_special SpecialTrainerHouse
 	add_special PhotoStudio
 	add_special InitRoamMons
-	add_special Special_RotatePalettesRightMusic
+	add_special Special_FadeOutMusic
 	add_special Diploma
 	add_special PrintDiploma
 
@@ -616,7 +616,7 @@
 	ret
 
 
-Special_RotatePalettesRightMusic: ; c48f
+Special_FadeOutMusic: ; c48f
 	ld a, MUSIC_NONE % $100
 	ld [MusicFadeIDLo], a
 	ld a, MUSIC_NONE / $100
--- /dev/null
+++ b/engine/sprite_anims.asm
@@ -1,0 +1,818 @@
+DoAnimFrame: ; 8d24b
+	ld hl, SPRITEANIMSTRUCT_ANIM_SEQ_ID
+	add hl, bc
+	ld e, [hl]
+	ld d, 0
+	ld hl, .Jumptable
+rept 2
+	add hl, de
+endr
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	jp [hl]
+; 8d25b
+
+
+.Jumptable: ; 8d25b (23:525b)
+	dw .zero        ; town map
+	dw .one         ; bouncing mon icons
+	dw .two
+	dw .three
+	dw .four
+	dw .five
+	dw .six         ; Game Freak logo
+	dw .seven
+	dw .eight
+	dw .nine
+	dw .ten
+	dw .eleven
+	dw .twelve      ; blinking cursor
+	dw .thirteen
+	dw .fourteen
+	dw .fifteen
+	dw .sixteen
+	dw .seventeen
+	dw .eighteen
+	dw .nineteen    ; finish egg hatching animation
+	dw .twenty
+	dw .twentyone
+	dw .twentytwo   ; flying sprite
+	dw .twentythree ; flying leaves
+	dw .twentyfour
+	dw .twentyfive
+	dw .twentysix
+	dw .twentyseven
+	dw .twentyeight
+	dw .twentynine  ; intro suicune
+	dw .thirty      ; intro pichu wooper
+	dw .thirtyone
+	dw .thirtytwo   ; intro unown
+	dw .thirtythree ; intro unown F with suicune leaping up
+	dw .thirtyfour  ; intro suicune facing away from us
+
+
+.zero: ; 8d2a1 (23:52a1)
+	ret
+
+.one: ; 8d2a2 (23:52a2)
+	ld a, [MenuSelection2]
+	ld hl, 0
+	add hl, bc
+	cp [hl]
+	jr z, .two
+	ld hl, $4
+	add hl, bc
+	ld [hl], $10
+	ld hl, $7
+	add hl, bc
+	ld [hl], $0
+	ret
+
+.two: ; 8d2b9 (23:52b9)
+	ld hl, $4
+	add hl, bc
+	ld [hl], $18
+	ld hl, $c
+	add hl, bc
+	ld a, [hl]
+	ld d, a
+	inc [hl]
+	and $f
+	ret nz
+	ld hl, $d
+	add hl, bc
+	ld e, [hl]
+	ld hl, $7
+	add hl, bc
+	ld a, d
+	and $10 ; bit 4
+	jr z, .asm_8d2df
+	ld a, e
+	and a
+	jr z, .asm_8d2e6
+	cp $1
+	jr z, .asm_8d2e2
+.asm_8d2df
+	xor a
+	ld [hl], a
+	ret
+.asm_8d2e2
+	ld a, $ff
+	ld [hl], a
+	ret
+.asm_8d2e6
+	ld a, $fe
+	ld [hl], a
+	ret
+
+.three: ; 8d2ea (23:52ea)
+	ld a, [MenuSelection2]
+	ld hl, 0
+	add hl, bc
+	cp [hl]
+	jr z, .asm_8d2fb
+	ld hl, $4
+	add hl, bc
+	ld [hl], $10
+	ret
+.asm_8d2fb
+	ld hl, $4
+	add hl, bc
+	ld [hl], $18
+	ret
+
+.four: ; 8d302 (23:5302)
+	call .anonymous_jumptable
+	jp [hl]
+; 8d306 (23:5306)
+
+; Anonymous jumptable (see .anonymous_jumptable)
+	dw .four_zero
+	dw .four_one
+; 8d30a
+
+.four_zero: ; 8d30a
+	call .asm_8d6d8
+	ld hl, 0
+	add hl, bc
+	ld a, [hl]
+	ld hl, $d
+	add hl, bc
+	and $3
+	ld [hl], a
+	inc [hl]
+	swap a
+	ld hl, $c
+	add hl, bc
+	ld [hl], a
+
+.four_one: ; 8d321
+	ld hl, $4
+	add hl, bc
+	ld a, [hl]
+	cp $a4
+	jr nc, .asm_8d356
+	ld hl, $d
+	add hl, bc
+	add $4
+	ld hl, $4
+	add hl, bc
+	ld [hl], a
+	ld hl, $5
+	add hl, bc
+	inc [hl]
+	ld hl, $d
+	add hl, bc
+	ld a, [hl]
+	sla a
+	sla a
+	ld d, $2
+	ld hl, $c
+	add hl, bc
+	ld a, [hl]
+	add $3
+	ld [hl], a
+	call .ApplyYOffset
+	ld hl, $7
+	add hl, bc
+	ld [hl], a
+	ret
+
+.asm_8d356
+	call Function8d036
+	ret
+; 8d35a
+
+.twentyfive: ; 8d35a (23:535a)
+	ld hl, $c
+	add hl, bc
+	ld a, [hl]
+	inc a
+	ld [hl], a
+	ld d, $2
+	call .ApplyYOffset
+	ld hl, $7
+	add hl, bc
+	ld [hl], a
+	ret
+
+.five: ; 8d36c (23:536c)
+	callab Function11a3b
+	ret
+
+.twelve: ; 8d373 (23:5373)
+	callab Function120c1
+	ret
+
+.six: ; 8d37a (23:537a)
+	callab GameFreakLogoJumper
+	ret
+
+.seven: ; 8d381 (23:5381)
+	ld hl, $c
+	add hl, bc
+	ld a, [hl]
+	and a
+	jr z, .asm_8d3ba
+rept 2
+	dec [hl]
+endr
+	ld d, a
+	and $1f
+	jr nz, .asm_8d395
+	ld hl, $d
+	add hl, bc
+	dec [hl]
+.asm_8d395
+	ld hl, $b
+	add hl, bc
+	ld a, [hl]
+	push af
+	push de
+	call .ApplyYOffset
+	ld hl, $7
+	add hl, bc
+	ld [hl], a
+	pop de
+	pop af
+	call .ApplyXOffset
+	ld hl, $6
+	add hl, bc
+	ld [hl], a
+	ld hl, $d
+	add hl, bc
+	ld a, [hl]
+	ld hl, $b
+	add hl, bc
+	add [hl]
+	ld [hl], a
+	ret
+.asm_8d3ba
+	ld a, $1
+	ld [wcf64], a
+	call Function8d036
+	ret
+
+.eight: ; 8d3c3 (23:53c3)
+	ld hl, $c
+	add hl, bc
+	ld a, [hli]
+	or [hl]
+	jr z, .asm_8d41e
+	ld hl, $f
+	add hl, bc
+	ld d, [hl]
+	ld hl, $b
+	add hl, bc
+	ld a, [hl]
+	push af
+	push de
+	call .ApplyYOffset
+	ld hl, $7
+	add hl, bc
+	ld [hl], a
+	pop de
+	pop af
+	call .ApplyXOffset
+	ld hl, $6
+	add hl, bc
+	ld [hl], a
+	ld hl, $c
+	add hl, bc
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	ld hl, $e
+	add hl, bc
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	add hl, de
+	ld e, l
+	ld d, h
+	ld hl, $e
+	add hl, bc
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	ld hl, $c
+	add hl, bc
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld de, -$10
+	add hl, de
+	ld e, l
+	ld d, h
+	ld hl, $c
+	add hl, bc
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	ld hl, $b
+	add hl, bc
+	ld a, [hl]
+	xor $20
+	ld [hl], a
+	ret
+.asm_8d41e
+	call Function8d036
+	ret
+
+.nine: ; 8d422 (23:5422)
+	callab Function9321d
+	ret
+
+.ten: ; 8d429 (23:5429)
+	callab Function932ac
+	ld hl, wcf64
+	ld a, [hl]
+	cp $2
+	ret nz
+	ld [hl], $3
+	ld a, $f
+	call Function8d120
+	ret
+
+.eleven: ; 8d43e (23:543e)
+	ld hl, $b
+	add hl, bc
+	ld a, [hl]
+	dec [hl]
+	ld e, a
+	and $1
+	jr z, .asm_8d462
+	ld hl, $4
+	add hl, bc
+	ld a, [hl]
+	cp $78
+	jr c, .asm_8d461
+	call Function8d036
+	ld a, $4
+	ld [wcf64], a
+	ld de, SFX_PLACE_PUZZLE_PIECE_DOWN
+	call PlaySFX
+	ret
+.asm_8d461
+	inc [hl]
+.asm_8d462
+	ld a, e
+	ld d, $20
+	call .ApplyYOffset
+	ld hl, $7
+	add hl, bc
+	ld [hl], a
+	ret
+
+.thirteen: ; 8d46e (23:546e)
+	callab ret_e00ed
+	ret
+
+.fifteen: ; 8d475 (23:5475)
+	callab Function90d41
+	ret
+
+.fourteen: ; 8d47c (23:547c)
+	callab Functione21a1
+	ret
+
+.sixteen: ; 8d483 (23:5483)
+	call .anonymous_jumptable
+	jp [hl]
+; 8d487 (23:5487)
+
+; Anonymous jumptable (see .anonymous_jumptable)
+	dw .sixteen_zero
+	dw .sixteen_one
+	dw .sixteen_two
+	dw .sixteen_three
+	dw .sixteen_four
+	dw .sixteen_five
+; 8d493
+
+.sixteen_zero: ; 8d493
+	ld a, $14
+	call Function8d120
+	ld hl, $b
+	add hl, bc
+	ld [hl], $2
+	ld hl, $c
+	add hl, bc
+	ld [hl], $20
+	ret
+; 8d4a5
+
+.sixteen_two: ; 8d4a5
+	ld hl, $c
+	add hl, bc
+	ld a, [hl]
+	and a
+	jr z, .asm_8d4af
+	dec [hl]
+	ret
+
+.asm_8d4af
+	call .asm_8d6d8
+	ld hl, $c
+	add hl, bc
+	ld [hl], $40
+
+.sixteen_three: ; 8d4b8
+	ld hl, $c
+	add hl, bc
+	ld a, [hl]
+	cp $30
+	jr c, .asm_8d4cd
+	dec [hl]
+	ld d, $28
+	call .ApplyYOffset
+	ld hl, $7
+	add hl, bc
+	ld [hl], a
+	ret
+
+.asm_8d4cd
+	ld de, SFX_GOT_SAFARI_BALLS
+	call PlaySFX
+	jr .sixteen_five
+; 8d4d5
+
+.sixteen_one: ; 8d4d5
+	ld hl, $b
+	add hl, bc
+	ld [hl], $4
+	ld hl, $c
+	add hl, bc
+	ld [hl], $30
+	ld hl, $d
+	add hl, bc
+	ld [hl], $24
+	ret
+; 8d4e8
+
+.sixteen_four: ; 8d4e8
+	ld hl, $d
+	add hl, bc
+	ld a, [hl]
+	and a
+	jr z, .asm_8d51c
+	ld d, a
+	ld hl, $c
+	add hl, bc
+	ld a, [hl]
+	call ApplyYOffset
+	ld hl, $7
+	add hl, bc
+	ld [hl], a
+	ld hl, $c
+	add hl, bc
+	inc [hl]
+	ld a, [hl]
+	and $3f
+	ret nz
+	ld hl, $c
+	add hl, bc
+	ld [hl], $20
+	ld hl, $d
+	add hl, bc
+	ld a, [hl]
+	sub $c
+	ld [hl], a
+	ld de, SFX_SWITCH_POKEMON
+	call PlaySFX
+	ret
+
+.asm_8d51c
+	xor a
+	ld hl, $7
+	add hl, bc
+	ld [hl], a
+	call .asm_8d6d8
+	ret
+
+.sixteen_five: ; 8d526
+	call Function8d036
+	ret
+; 8d52a
+
+.seventeen: ; 8d52a (23:552a)
+	ld hl, $4
+	add hl, bc
+	ld a, [hl]
+rept 2
+	inc [hl]
+endr
+	cp $b0
+	jr nc, .asm_8d53f
+	and $3
+	ret nz
+	ld de, SFX_POKEBALLS_PLACED_ON_TABLE
+	call PlaySFX
+	ret
+
+.asm_8d53f
+	call Function8d036
+	ret
+
+.eighteen: ; 8d543 (23:5543)
+	callab Function29676
+	ret
+
+.nineteen: ; 8d54a (23:554a)
+	ld hl, SpriteAnim1Sprite0c - SpriteAnim1
+	add hl, bc
+	ld a, [hl]
+	cp $80
+	jr nc, .finish_nineteen
+	ld d, a
+	add $8
+	ld [hl], a
+	ld hl, SpriteAnim1Sprite0b - SpriteAnim1
+	add hl, bc
+	ld a, [hl]
+	xor $20
+	ld [hl], a
+
+	push af
+	push de
+	call .ApplyYOffset
+	ld hl, SpriteAnim1YOffset - SpriteAnim1
+	add hl, bc
+	ld [hl], a
+
+	pop de
+	pop af
+	call .ApplyXOffset
+	ld hl, SpriteAnim1XOffset - SpriteAnim1
+	add hl, bc
+	ld [hl], a
+	ret
+
+.finish_nineteen
+	call Function8d036
+	ret
+
+.twenty: ; 8d578 (23:5578)
+	callab Function91640
+	ret
+
+.twentyone: ; 8d57f (23:557f)
+	ld hl, $d
+	add hl, bc
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	ld hl, $80
+	add hl, de
+	ld e, l
+	ld d, h
+	ld hl, $d
+	add hl, bc
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	ld hl, $c
+	add hl, bc
+	ld a, [hl]
+rept 3
+	inc [hl]
+endr
+	push af
+	push de
+	call .ApplyYOffset
+	ld hl, $7
+	add hl, bc
+	ld [hl], a
+	pop de
+	pop af
+	call .ApplyXOffset
+	ld hl, $6
+	add hl, bc
+	ld [hl], a
+	ret
+
+.twentytwo: ; 8d5b0 (23:55b0)
+	ld hl, $5
+	add hl, bc
+	ld a, [hl]
+	and a
+	ret z
+	ld hl, $d
+	add hl, bc
+	ld a, [hl]
+	inc [hl]
+	cp $40
+	ret c
+	ld hl, $5
+	add hl, bc
+rept 2
+	dec [hl]
+endr
+	ld hl, $f
+	add hl, bc
+	ld a, [hl]
+	ld d, a
+	cp $40
+	jr nc, .asm_8d5d3
+	add $8
+	ld [hl], a
+.asm_8d5d3
+	ld hl, $e
+	add hl, bc
+	ld a, [hl]
+	inc [hl]
+	call .ApplyXOffset
+	ld hl, $6
+	add hl, bc
+	ld [hl], a
+	ret
+
+.twentythree: ; 8d5e2 (23:55e2)
+	ld hl, $4
+	add hl, bc
+	ld a, [hl]
+	cp $b8
+	jr nc, .asm_8d603
+rept 2
+	inc [hl]
+endr
+	ld hl, $5
+	add hl, bc
+	dec [hl]
+	ld d, $40
+	ld hl, $c
+	add hl, bc
+	ld a, [hl]
+	inc [hl]
+	call .ApplyXOffset
+	ld hl, $6
+	add hl, bc
+	ld [hl], a
+	ret
+.asm_8d603
+	call Function8d036
+	ret
+
+.twentyfour: ; 8d607 (23:5607)
+	ld hl, $5
+	add hl, bc
+	ld a, [hl]
+	cp $54
+	ret z
+	ld hl, $5
+	add hl, bc
+rept 2
+	inc [hl]
+endr
+	ld hl, $f
+	add hl, bc
+	ld a, [hl]
+	ld d, a
+	and a
+	jr z, .asm_8d621
+	sub $2
+	ld [hl], a
+.asm_8d621
+	ld hl, $e
+	add hl, bc
+	ld a, [hl]
+	inc [hl]
+	call .ApplyXOffset
+	ld hl, $6
+	add hl, bc
+	ld [hl], a
+	ret
+
+.twentyseven: ; 8d630 (23:5630)
+	callba Function108bc7
+	ret
+
+.twentyeight: ; 8d637 (23:5637)
+	callba Function108be0
+	ret
+
+.twentynine: ; 8d63e (23:563e)
+	ld a, [wcf65]
+	and a
+	jr nz, .asm_8d645
+	ret
+.asm_8d645
+	ld hl, $7
+	add hl, bc
+	ld [hl], $0
+	ld hl, $d
+	add hl, bc
+	ld a, [hl]
+	add $2
+	ld [hl], a
+	xor $ff
+	inc a
+	ld d, $20
+	call .ApplyYOffset
+	ld hl, $7
+	add hl, bc
+	ld [hl], a
+	ld a, $36
+	call Function8d120
+	ret
+
+.thirty: ; 8d666 (23:5666)
+	ld hl, $c
+	add hl, bc
+	ld a, [hl]
+	cp $14
+	jr nc, .asm_8d67f
+	add $2
+	ld [hl], a
+	xor $ff
+	inc a
+	ld d, $20
+	call .ApplyYOffset
+	ld hl, $7
+	add hl, bc
+	ld [hl], a
+.asm_8d67f
+	ret
+
+.thirtytwo: ; 8d680 (23:5680)
+	ld hl, $b
+	add hl, bc
+	ld d, [hl]
+rept 3
+	inc [hl]
+endr
+	ld hl, $c
+	add hl, bc
+	ld a, [hl]
+	push af
+	push de
+	call .ApplyYOffset
+	ld hl, $7
+	add hl, bc
+	ld [hl], a
+	pop de
+	pop af
+	call .ApplyXOffset
+	ld hl, $6
+	add hl, bc
+	ld [hl], a
+	ret
+
+.thirtythree: ; 8d6a2 (23:56a2)
+	ld a, [wcf64]
+	cp $40
+	ret nz
+	ld a, $3d
+	call Function8d120
+	ret
+
+.thirtyfour: ; 8d6ae (23:56ae)
+	ld hl, $5
+	add hl, bc
+	ld a, [hl]
+	add $10
+	ld [hl], a
+	ret
+
+.twentysix: ; 8d6b7 (23:56b7)
+	callba Function11d0b6
+	ret
+
+.thirtyone: ; 8d6be (23:56be)
+	callba Function49aa2
+	ret
+
+.anonymous_jumptable: ; 8d6c5 (23:56c5)
+	ld hl, [sp+$0]
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	inc de
+	ld hl, $b
+	add hl, bc
+	ld l, [hl]
+	ld h, $0
+	add hl, hl
+	add hl, de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ret
+; 8d6d8 (23:56d8)
+
+.asm_8d6d8: ; 8d6d8
+	ld hl, $b
+	add hl, bc
+	inc [hl]
+	ret
+; 8d6de
+
+.ApplyYOffset: ; 8d6de (23:56de)
+	call ApplyYOffset
+	ret
+
+.ApplyXOffset: ; 8d6e2 (23:56e2)
+	call ApplyXOffset
+	ret
+; 8d6e6 (23:56e6)
--- a/engine/sprites.asm
+++ b/engine/sprites.asm
@@ -1,6 +1,6 @@
-Function8cf53: ; 8cf53
-	ld hl, wc300
-	ld bc, wc3c1 - wc300
+ClearSpriteAnims: ; 8cf53
+	ld hl, wSpriteAnimDict
+	ld bc, wSpriteAnimsEnd - wSpriteAnimDict
 .loop
 	ld [hl], $0
 	inc hl
@@ -46,7 +46,7 @@
 	ld b, h
 	push hl
 	push de
-	call Function8d24b ; Uses a massive jumptable
+	call DoAnimFrame ; Uses a massive jumptable
 	call Function8d04c
 	pop de
 	pop hl
@@ -74,7 +74,7 @@
 	ret
 ; 8cfa8
 
-Function8cfa8: ; 8cfa8 (23:4fa8)
+DoNextFrameForFirst16Sprites: ; 8cfa8 (23:4fa8)
 	ld hl, wSpriteAnimationStructs
 	ld e, 10
 
@@ -86,7 +86,7 @@
 	ld b, h
 	push hl
 	push de
-	call Function8d24b ; Uses a massive jumptable
+	call DoAnimFrame ; Uses a massive jumptable
 	call Function8d04c
 	pop de
 	pop hl
@@ -104,7 +104,7 @@
 
 .loop2 ; Clear (Sprites + [wc3b5] --> Sprites + $40)
 	ld a, l
-	cp (Sprites + $40) % $100
+	cp (Sprites + 16 * 4) % $100
 	jr nc, .done
 	xor a
 	ld [hli], a
@@ -588,2263 +588,12 @@
 	db $40, SPRITE_ANIM_SEQ_00, $00 ; 2c
 ; 8d24b
 
+INCLUDE "engine/sprite_anims.asm" ; DoAnimFrame
 
-Function8d24b: ; 8d24b
-	ld hl, $2 ; field 2, see the second column in the above table
-	add hl, bc
-	ld e, [hl]
-	ld d, 0
-	ld hl, .Jumptable
-rept 2
-	add hl, de
-endr
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	jp [hl]
-; 8d25b
+INCLUDE "data/sprite_engine.asm"
+; Unknown_8d6e6
+; Unknown_8d94d
 
-
-.Jumptable: ; 8d25b (23:525b)
-	dw .zero        ; town map
-	dw .one         ; bouncing mon icons
-	dw .two
-	dw .three
-	dw .four
-	dw .five
-	dw .six         ; Game Freak logo
-	dw .seven
-	dw .eight
-	dw .nine
-	dw .ten
-	dw .eleven
-	dw .twelve      ; blinking cursor
-	dw .thirteen
-	dw .fourteen
-	dw .fifteen
-	dw .sixteen
-	dw .seventeen
-	dw .eighteen
-	dw .nineteen    ; finish egg hatching animation
-	dw .twenty
-	dw .twentyone
-	dw .twentytwo   ; flying sprite
-	dw .twentythree ; flying leaves
-	dw .twentyfour
-	dw .twentyfive
-	dw .twentysix
-	dw .twentyseven
-	dw .twentyeight
-	dw .twentynine  ; intro suicune
-	dw .thirty      ; intro pichu wooper
-	dw .thirtyone
-	dw .thirtytwo   ; intro unown
-	dw .thirtythree ; intro unown F with suicune leaping up
-	dw .thirtyfour  ; intro suicune facing away from us
-
-
-.zero: ; 8d2a1 (23:52a1)
-	ret
-
-.one: ; 8d2a2 (23:52a2)
-	ld a, [MenuSelection2]
-	ld hl, 0
-	add hl, bc
-	cp [hl]
-	jr z, .two
-	ld hl, $4
-	add hl, bc
-	ld [hl], $10
-	ld hl, $7
-	add hl, bc
-	ld [hl], $0
-	ret
-
-.two: ; 8d2b9 (23:52b9)
-	ld hl, $4
-	add hl, bc
-	ld [hl], $18
-	ld hl, $c
-	add hl, bc
-	ld a, [hl]
-	ld d, a
-	inc [hl]
-	and $f
-	ret nz
-	ld hl, $d
-	add hl, bc
-	ld e, [hl]
-	ld hl, $7
-	add hl, bc
-	ld a, d
-	and $10 ; bit 4
-	jr z, .asm_8d2df
-	ld a, e
-	and a
-	jr z, .asm_8d2e6
-	cp $1
-	jr z, .asm_8d2e2
-.asm_8d2df
-	xor a
-	ld [hl], a
-	ret
-.asm_8d2e2
-	ld a, $ff
-	ld [hl], a
-	ret
-.asm_8d2e6
-	ld a, $fe
-	ld [hl], a
-	ret
-
-.three: ; 8d2ea (23:52ea)
-	ld a, [MenuSelection2]
-	ld hl, 0
-	add hl, bc
-	cp [hl]
-	jr z, .asm_8d2fb
-	ld hl, $4
-	add hl, bc
-	ld [hl], $10
-	ret
-.asm_8d2fb
-	ld hl, $4
-	add hl, bc
-	ld [hl], $18
-	ret
-
-.four: ; 8d302 (23:5302)
-	call .anonymous_jumptable
-	jp [hl]
-; 8d306 (23:5306)
-
-; Anonymous jumptable (see .anonymous_jumptable)
-	dw .four_zero
-	dw .four_one
-; 8d30a
-
-.four_zero: ; 8d30a
-	call .asm_8d6d8
-	ld hl, 0
-	add hl, bc
-	ld a, [hl]
-	ld hl, $d
-	add hl, bc
-	and $3
-	ld [hl], a
-	inc [hl]
-	swap a
-	ld hl, $c
-	add hl, bc
-	ld [hl], a
-
-.four_one: ; 8d321
-	ld hl, $4
-	add hl, bc
-	ld a, [hl]
-	cp $a4
-	jr nc, .asm_8d356
-	ld hl, $d
-	add hl, bc
-	add $4
-	ld hl, $4
-	add hl, bc
-	ld [hl], a
-	ld hl, $5
-	add hl, bc
-	inc [hl]
-	ld hl, $d
-	add hl, bc
-	ld a, [hl]
-	sla a
-	sla a
-	ld d, $2
-	ld hl, $c
-	add hl, bc
-	ld a, [hl]
-	add $3
-	ld [hl], a
-	call .ApplyYOffset
-	ld hl, $7
-	add hl, bc
-	ld [hl], a
-	ret
-
-.asm_8d356
-	call Function8d036
-	ret
-; 8d35a
-
-.twentyfive: ; 8d35a (23:535a)
-	ld hl, $c
-	add hl, bc
-	ld a, [hl]
-	inc a
-	ld [hl], a
-	ld d, $2
-	call .ApplyYOffset
-	ld hl, $7
-	add hl, bc
-	ld [hl], a
-	ret
-
-.five: ; 8d36c (23:536c)
-	callab Function11a3b
-	ret
-
-.twelve: ; 8d373 (23:5373)
-	callab Function120c1
-	ret
-
-.six: ; 8d37a (23:537a)
-	callab GameFreakLogoJumper
-	ret
-
-.seven: ; 8d381 (23:5381)
-	ld hl, $c
-	add hl, bc
-	ld a, [hl]
-	and a
-	jr z, .asm_8d3ba
-rept 2
-	dec [hl]
-endr
-	ld d, a
-	and $1f
-	jr nz, .asm_8d395
-	ld hl, $d
-	add hl, bc
-	dec [hl]
-.asm_8d395
-	ld hl, $b
-	add hl, bc
-	ld a, [hl]
-	push af
-	push de
-	call .ApplyYOffset
-	ld hl, $7
-	add hl, bc
-	ld [hl], a
-	pop de
-	pop af
-	call .ApplyXOffset
-	ld hl, $6
-	add hl, bc
-	ld [hl], a
-	ld hl, $d
-	add hl, bc
-	ld a, [hl]
-	ld hl, $b
-	add hl, bc
-	add [hl]
-	ld [hl], a
-	ret
-.asm_8d3ba
-	ld a, $1
-	ld [wcf64], a
-	call Function8d036
-	ret
-
-.eight: ; 8d3c3 (23:53c3)
-	ld hl, $c
-	add hl, bc
-	ld a, [hli]
-	or [hl]
-	jr z, .asm_8d41e
-	ld hl, $f
-	add hl, bc
-	ld d, [hl]
-	ld hl, $b
-	add hl, bc
-	ld a, [hl]
-	push af
-	push de
-	call .ApplyYOffset
-	ld hl, $7
-	add hl, bc
-	ld [hl], a
-	pop de
-	pop af
-	call .ApplyXOffset
-	ld hl, $6
-	add hl, bc
-	ld [hl], a
-	ld hl, $c
-	add hl, bc
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	ld hl, $e
-	add hl, bc
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	add hl, de
-	ld e, l
-	ld d, h
-	ld hl, $e
-	add hl, bc
-	ld [hl], e
-	inc hl
-	ld [hl], d
-	ld hl, $c
-	add hl, bc
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld de, -$10
-	add hl, de
-	ld e, l
-	ld d, h
-	ld hl, $c
-	add hl, bc
-	ld [hl], e
-	inc hl
-	ld [hl], d
-	ld hl, $b
-	add hl, bc
-	ld a, [hl]
-	xor $20
-	ld [hl], a
-	ret
-.asm_8d41e
-	call Function8d036
-	ret
-
-.nine: ; 8d422 (23:5422)
-	callab Function9321d
-	ret
-
-.ten: ; 8d429 (23:5429)
-	callab Function932ac
-	ld hl, wcf64
-	ld a, [hl]
-	cp $2
-	ret nz
-	ld [hl], $3
-	ld a, $f
-	call Function8d120
-	ret
-
-.eleven: ; 8d43e (23:543e)
-	ld hl, $b
-	add hl, bc
-	ld a, [hl]
-	dec [hl]
-	ld e, a
-	and $1
-	jr z, .asm_8d462
-	ld hl, $4
-	add hl, bc
-	ld a, [hl]
-	cp $78
-	jr c, .asm_8d461
-	call Function8d036
-	ld a, $4
-	ld [wcf64], a
-	ld de, SFX_PLACE_PUZZLE_PIECE_DOWN
-	call PlaySFX
-	ret
-.asm_8d461
-	inc [hl]
-.asm_8d462
-	ld a, e
-	ld d, $20
-	call .ApplyYOffset
-	ld hl, $7
-	add hl, bc
-	ld [hl], a
-	ret
-
-.thirteen: ; 8d46e (23:546e)
-	callab ret_e00ed
-	ret
-
-.fifteen: ; 8d475 (23:5475)
-	callab Function90d41
-	ret
-
-.fourteen: ; 8d47c (23:547c)
-	callab Functione21a1
-	ret
-
-.sixteen: ; 8d483 (23:5483)
-	call .anonymous_jumptable
-	jp [hl]
-; 8d487 (23:5487)
-
-; Anonymous jumptable (see .anonymous_jumptable)
-	dw .sixteen_zero
-	dw .sixteen_one
-	dw .sixteen_two
-	dw .sixteen_three
-	dw .sixteen_four
-	dw .sixteen_five
-; 8d493
-
-.sixteen_zero: ; 8d493
-	ld a, $14
-	call Function8d120
-	ld hl, $b
-	add hl, bc
-	ld [hl], $2
-	ld hl, $c
-	add hl, bc
-	ld [hl], $20
-	ret
-; 8d4a5
-
-.sixteen_two: ; 8d4a5
-	ld hl, $c
-	add hl, bc
-	ld a, [hl]
-	and a
-	jr z, .asm_8d4af
-	dec [hl]
-	ret
-
-.asm_8d4af
-	call .asm_8d6d8
-	ld hl, $c
-	add hl, bc
-	ld [hl], $40
-
-.sixteen_three: ; 8d4b8
-	ld hl, $c
-	add hl, bc
-	ld a, [hl]
-	cp $30
-	jr c, .asm_8d4cd
-	dec [hl]
-	ld d, $28
-	call .ApplyYOffset
-	ld hl, $7
-	add hl, bc
-	ld [hl], a
-	ret
-
-.asm_8d4cd
-	ld de, SFX_GOT_SAFARI_BALLS
-	call PlaySFX
-	jr .sixteen_five
-; 8d4d5
-
-.sixteen_one: ; 8d4d5
-	ld hl, $b
-	add hl, bc
-	ld [hl], $4
-	ld hl, $c
-	add hl, bc
-	ld [hl], $30
-	ld hl, $d
-	add hl, bc
-	ld [hl], $24
-	ret
-; 8d4e8
-
-.sixteen_four: ; 8d4e8
-	ld hl, $d
-	add hl, bc
-	ld a, [hl]
-	and a
-	jr z, .asm_8d51c
-	ld d, a
-	ld hl, $c
-	add hl, bc
-	ld a, [hl]
-	call ApplyYOffset
-	ld hl, $7
-	add hl, bc
-	ld [hl], a
-	ld hl, $c
-	add hl, bc
-	inc [hl]
-	ld a, [hl]
-	and $3f
-	ret nz
-	ld hl, $c
-	add hl, bc
-	ld [hl], $20
-	ld hl, $d
-	add hl, bc
-	ld a, [hl]
-	sub $c
-	ld [hl], a
-	ld de, SFX_SWITCH_POKEMON
-	call PlaySFX
-	ret
-
-.asm_8d51c
-	xor a
-	ld hl, $7
-	add hl, bc
-	ld [hl], a
-	call .asm_8d6d8
-	ret
-
-.sixteen_five: ; 8d526
-	call Function8d036
-	ret
-; 8d52a
-
-.seventeen: ; 8d52a (23:552a)
-	ld hl, $4
-	add hl, bc
-	ld a, [hl]
-rept 2
-	inc [hl]
-endr
-	cp $b0
-	jr nc, .asm_8d53f
-	and $3
-	ret nz
-	ld de, SFX_POKEBALLS_PLACED_ON_TABLE
-	call PlaySFX
-	ret
-
-.asm_8d53f
-	call Function8d036
-	ret
-
-.eighteen: ; 8d543 (23:5543)
-	callab Function29676
-	ret
-
-.nineteen: ; 8d54a (23:554a)
-	ld hl, SpriteAnim1Sprite0c - SpriteAnim1
-	add hl, bc
-	ld a, [hl]
-	cp $80
-	jr nc, .finish_nineteen
-	ld d, a
-	add $8
-	ld [hl], a
-	ld hl, SpriteAnim1Sprite0b - SpriteAnim1
-	add hl, bc
-	ld a, [hl]
-	xor $20
-	ld [hl], a
-
-	push af
-	push de
-	call .ApplyYOffset
-	ld hl, SpriteAnim1YOffset - SpriteAnim1
-	add hl, bc
-	ld [hl], a
-
-	pop de
-	pop af
-	call .ApplyXOffset
-	ld hl, SpriteAnim1XOffset - SpriteAnim1
-	add hl, bc
-	ld [hl], a
-	ret
-
-.finish_nineteen
-	call Function8d036
-	ret
-
-.twenty: ; 8d578 (23:5578)
-	callab Function91640
-	ret
-
-.twentyone: ; 8d57f (23:557f)
-	ld hl, $d
-	add hl, bc
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	ld hl, $80
-	add hl, de
-	ld e, l
-	ld d, h
-	ld hl, $d
-	add hl, bc
-	ld [hl], e
-	inc hl
-	ld [hl], d
-	ld hl, $c
-	add hl, bc
-	ld a, [hl]
-rept 3
-	inc [hl]
-endr
-	push af
-	push de
-	call .ApplyYOffset
-	ld hl, $7
-	add hl, bc
-	ld [hl], a
-	pop de
-	pop af
-	call .ApplyXOffset
-	ld hl, $6
-	add hl, bc
-	ld [hl], a
-	ret
-
-.twentytwo: ; 8d5b0 (23:55b0)
-	ld hl, $5
-	add hl, bc
-	ld a, [hl]
-	and a
-	ret z
-	ld hl, $d
-	add hl, bc
-	ld a, [hl]
-	inc [hl]
-	cp $40
-	ret c
-	ld hl, $5
-	add hl, bc
-rept 2
-	dec [hl]
-endr
-	ld hl, $f
-	add hl, bc
-	ld a, [hl]
-	ld d, a
-	cp $40
-	jr nc, .asm_8d5d3
-	add $8
-	ld [hl], a
-.asm_8d5d3
-	ld hl, $e
-	add hl, bc
-	ld a, [hl]
-	inc [hl]
-	call .ApplyXOffset
-	ld hl, $6
-	add hl, bc
-	ld [hl], a
-	ret
-
-.twentythree: ; 8d5e2 (23:55e2)
-	ld hl, $4
-	add hl, bc
-	ld a, [hl]
-	cp $b8
-	jr nc, .asm_8d603
-rept 2
-	inc [hl]
-endr
-	ld hl, $5
-	add hl, bc
-	dec [hl]
-	ld d, $40
-	ld hl, $c
-	add hl, bc
-	ld a, [hl]
-	inc [hl]
-	call .ApplyXOffset
-	ld hl, $6
-	add hl, bc
-	ld [hl], a
-	ret
-.asm_8d603
-	call Function8d036
-	ret
-
-.twentyfour: ; 8d607 (23:5607)
-	ld hl, $5
-	add hl, bc
-	ld a, [hl]
-	cp $54
-	ret z
-	ld hl, $5
-	add hl, bc
-rept 2
-	inc [hl]
-endr
-	ld hl, $f
-	add hl, bc
-	ld a, [hl]
-	ld d, a
-	and a
-	jr z, .asm_8d621
-	sub $2
-	ld [hl], a
-.asm_8d621
-	ld hl, $e
-	add hl, bc
-	ld a, [hl]
-	inc [hl]
-	call .ApplyXOffset
-	ld hl, $6
-	add hl, bc
-	ld [hl], a
-	ret
-
-.twentyseven: ; 8d630 (23:5630)
-	callba Function108bc7
-	ret
-
-.twentyeight: ; 8d637 (23:5637)
-	callba Function108be0
-	ret
-
-.twentynine: ; 8d63e (23:563e)
-	ld a, [wcf65]
-	and a
-	jr nz, .asm_8d645
-	ret
-.asm_8d645
-	ld hl, $7
-	add hl, bc
-	ld [hl], $0
-	ld hl, $d
-	add hl, bc
-	ld a, [hl]
-	add $2
-	ld [hl], a
-	xor $ff
-	inc a
-	ld d, $20
-	call .ApplyYOffset
-	ld hl, $7
-	add hl, bc
-	ld [hl], a
-	ld a, $36
-	call Function8d120
-	ret
-
-.thirty: ; 8d666 (23:5666)
-	ld hl, $c
-	add hl, bc
-	ld a, [hl]
-	cp $14
-	jr nc, .asm_8d67f
-	add $2
-	ld [hl], a
-	xor $ff
-	inc a
-	ld d, $20
-	call .ApplyYOffset
-	ld hl, $7
-	add hl, bc
-	ld [hl], a
-.asm_8d67f
-	ret
-
-.thirtytwo: ; 8d680 (23:5680)
-	ld hl, $b
-	add hl, bc
-	ld d, [hl]
-rept 3
-	inc [hl]
-endr
-	ld hl, $c
-	add hl, bc
-	ld a, [hl]
-	push af
-	push de
-	call .ApplyYOffset
-	ld hl, $7
-	add hl, bc
-	ld [hl], a
-	pop de
-	pop af
-	call .ApplyXOffset
-	ld hl, $6
-	add hl, bc
-	ld [hl], a
-	ret
-
-.thirtythree: ; 8d6a2 (23:56a2)
-	ld a, [wcf64]
-	cp $40
-	ret nz
-	ld a, $3d
-	call Function8d120
-	ret
-
-.thirtyfour: ; 8d6ae (23:56ae)
-	ld hl, $5
-	add hl, bc
-	ld a, [hl]
-	add $10
-	ld [hl], a
-	ret
-
-.twentysix: ; 8d6b7 (23:56b7)
-	callba Function11d0b6
-	ret
-
-.thirtyone: ; 8d6be (23:56be)
-	callba Function49aa2
-	ret
-
-.anonymous_jumptable: ; 8d6c5 (23:56c5)
-	ld hl, [sp+$0]
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	inc de
-	ld hl, $b
-	add hl, bc
-	ld l, [hl]
-	ld h, $0
-	add hl, hl
-	add hl, de
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ret
-; 8d6d8 (23:56d8)
-
-.asm_8d6d8: ; 8d6d8
-	ld hl, $b
-	add hl, bc
-	inc [hl]
-	ret
-; 8d6de
-
-.ApplyYOffset: ; 8d6de (23:56de)
-	call ApplyYOffset
-	ret
-
-.ApplyXOffset: ; 8d6e2 (23:56e2)
-	call ApplyXOffset
-	ret
-; 8d6e6 (23:56e6)
-
-Unknown_8d6e6: ; 8d6e6
-	dw Unknown_8d76a ; 00
-	dw Unknown_8d76d ; 01
-	dw Unknown_8d772 ; 02
-	dw Unknown_8d777 ; 03
-	dw Unknown_8d77c ; 04
-	dw Unknown_8d781 ; 05
-	dw Unknown_8d786 ; 06
-	dw Unknown_8d7a6 ; 07
-	dw Unknown_8d7ab ; 08
-	dw Unknown_8d7b0 ; 09
-	dw Unknown_8d7b5 ; 0a
-	dw Unknown_8d7d4 ; 0b
-	dw Unknown_8d7d9 ; 0c
-	dw Unknown_8d7e2 ; 0d
-	dw Unknown_8d7eb ; 0e
-	dw Unknown_8d7f4 ; 0f
-	dw Unknown_8d7ff ; 10
-	dw Unknown_8d78b ; 11
-	dw Unknown_8d802 ; 12
-	dw Unknown_8d805 ; 13
-	dw Unknown_8d808 ; 14
-	dw Unknown_8d811 ; 15
-	dw Unknown_8d818 ; 16
-	dw Unknown_8d81d ; 17
-	dw Unknown_8d822 ; 18
-	dw Unknown_8d825 ; 19
-	dw Unknown_8d82c ; 1a
-	dw Unknown_8d82f ; 1b
-	dw Unknown_8d861 ; 1c
-	dw Unknown_8d864 ; 1d
-	dw Unknown_8d867 ; 1e
-	dw Unknown_8d874 ; 1f
-	dw Unknown_8d877 ; 20
-	dw Unknown_8d87a ; 21
-	dw Unknown_8d87d ; 22
-	dw Unknown_8d880 ; 23
-	dw Unknown_8d883 ; 24
-	dw Unknown_8d890 ; 25
-	dw Unknown_8d899 ; 26
-	dw Unknown_8d89c ; 27
-	dw Unknown_8d89f ; 28
-	dw Unknown_8d8a2 ; 29
-	dw Unknown_8d8a5 ; 2a
-	dw Unknown_8d8a8 ; 2b
-	dw Unknown_8d8ab ; 2c
-	dw Unknown_8d794 ; 2d
-	dw Unknown_8d79d ; 2e
-	dw Unknown_8d8ae ; 2f
-	dw Unknown_8d8cd ; 30
-	dw Unknown_8d8ec ; 31
-	dw Unknown_8d8f1 ; 32
-	dw Unknown_8d8f4 ; 33
-	dw Unknown_8d8f7 ; 34
-	dw Unknown_8d8fe ; 35
-	dw Unknown_8d907 ; 36
-	dw Unknown_8d90c ; 37
-	dw Unknown_8d913 ; 38
-	dw Unknown_8d916 ; 39
-	dw Unknown_8d91d ; 3a
-	dw Unknown_8d924 ; 3b
-	dw Unknown_8d92b ; 3c
-	dw Unknown_8d932 ; 3d
-	dw Unknown_8d93d ; 3e
-	dw Unknown_8d940 ; 3f
-	dw Unknown_8d943 ; 40
-	dw Unknown_8d948 ; 41
-; 8d76a
-
-Unknown_8d76a: 	dw $2000
-                db -1
-Unknown_8d76d: 	dw $0800, $0801
-                db -2
-Unknown_8d772: 	dw $083d, $083e
-                db -2
-Unknown_8d777: 	dw $083f, $0840
-                db -2
-Unknown_8d77c: 	dw $0400, $0401
-                db -2
-Unknown_8d781: 	dw $043d, $043e
-                db -2
-Unknown_8d786: 	dw $043f, $0440
-                db -2
-Unknown_8d78b: 	dw $0800, $0801, $0800, $4801
-                db -2
-Unknown_8d794: 	dw $0863, $0864, $0863, $4864
-                db -2
-Unknown_8d79d: 	dw $0865, $0866, $0865, $4866
-                db -2
-Unknown_8d7a6: 	dw $011e, $011f
-                db -2
-Unknown_8d7ab: 	dw $0120, $01fd
-                db -2
-Unknown_8d7b0: 	dw $0121, $01fd
-                db -2
-Unknown_8d7b5: 	dw $0c81, $0182, $0183, $0482, $0c81, $0c82, $0483, $2084, $0385, $0386, $0487, $0488, $0489, $0a8a, $078b
-                db -1
-Unknown_8d7d4: 	dw $0323, $8323
-                db -2
-Unknown_8d7d9: 	dw $0224, $0225, $0226, $0225
-                db -2
-Unknown_8d7e2: 	dw $0727, $0728, $8727, $4728
-                db -2
-Unknown_8d7eb: 	dw $0729, $072a, $0729, $072b
-                db -2
-Unknown_8d7f4: 	dw $0729, $072c, $072d, $072c, $0729
-                db -1
-Unknown_8d7ff: 	dw $142e
-                db -1
-Unknown_8d802: 	dw $202f
-                db -1
-Unknown_8d805: 	dw $2030
-                db -1
-Unknown_8d808: 	dw $0330, $0331, $0330, $4331
-                db -2
-Unknown_8d811: 	dw $0432, $0433, $0434
-                db -4
-Unknown_8d818: 	dw $0335, $0336
-                db -2
-Unknown_8d81d: 	dw $0737, $0738
-                db -2
-Unknown_8d822: 	dw $2039
-                db -1
-Unknown_8d825: 	dw $023b, $023a, $023b
-                db -1
-Unknown_8d82c: 	dw $203c
-                db -1
-Unknown_8d82f: 	dw $0841, $0842, $0841, $4842
-                db -2
-                dw $0843, $0844
-                db -2
-                dw $0845, $0846
-                db -2
-                dw $0847, $0848
-                db -2
-                dw $0149, $4149, $c149, $8149
-                db -2
-                dw $204a
-                db -1
-                dw $204b
-                db -1
-                dw $204c
-                db -1
-                dw $204d
-                db -1
-                dw $034e, $03fd
-                db -2
-Unknown_8d861: 	dw $20fd
-                db -1
-Unknown_8d864: 	dw $204f
-                db -1
-Unknown_8d867: 	dw $0250, $1051, $01fd, $0152, $01fd, $0153
-                db -4
-Unknown_8d874: 	dw $2054
-                db -1
-Unknown_8d877: 	dw $2055
-                db -1
-Unknown_8d87a: 	dw $6055
-                db -1
-Unknown_8d87d: 	dw $a055
-                db -1
-Unknown_8d880: 	dw $e055
-                db -1
-Unknown_8d883: 	dw $0a56, $0957, $0a58, $0a59, $0958, $0a5a
-                db -2
-Unknown_8d890: 	dw $0250, $025b, $0250, $425b
-                db -2
-Unknown_8d899: 	dw $025c
-                db -1
-Unknown_8d89c: 	dw $025d
-                db -1
-Unknown_8d89f: 	dw $025e
-                db -1
-Unknown_8d8a2: 	dw $025f
-                db -1
-Unknown_8d8a5: 	dw $0260
-                db -1
-Unknown_8d8a8: 	dw $0261
-                db -1
-Unknown_8d8ab: 	dw $0262
-                db -1
-Unknown_8d8ae: 	dw $0332, $0333, $0334, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331
-                db -1
-Unknown_8d8cd: 	dw $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0332, $0333, $0334
-                db -4
-Unknown_8d8ec: 	dw $0367, $0368
-                db -2
-Unknown_8d8f1: 	dw $036c
-                db -1
-Unknown_8d8f4: 	dw $036d
-                db -1
-Unknown_8d8f7: 	dw $0269, $026a, $026b
-                db -4
-Unknown_8d8fe: 	dw $036e, $036f, $0370, $0371
-                db -2
-Unknown_8d907: 	dw $0371, $076e
-                db -1
-Unknown_8d90c: 	dw $2072, $0773, $0774
-                db -1
-Unknown_8d913: 	dw $0375
-                db -1
-Unknown_8d916: 	dw $0376, $0377, $0778
-                db -4
-Unknown_8d91d: 	dw $4376, $4377, $4778
-                db -4
-Unknown_8d924: 	dw $8376, $8377, $8778
-                db -4
-Unknown_8d92b: 	dw $c376, $c377, $c778
-                db -4
-Unknown_8d932: 	dw $0379, $037a, $037b, $077c, $077d
-                db -1
-Unknown_8d93d: 	dw $037e
-                db -1
-Unknown_8d940: 	dw $00fd
-                db -1
-Unknown_8d943: 	dw $087f, $0880
-                db -1
-Unknown_8d948: 	dw $487f, $4880
-                db -1
-; 8d94d
-
-Unknown_8d94d: ; 8d94d
-	dbw $00, Unknown_8dd8a ; 00
-	dbw $04, Unknown_8dd8a ; 01
-	dbw $4c, Unknown_8daf1 ; 02
-	dbw $5c, Unknown_8daf1 ; 03
-	dbw $6c, Unknown_8daf6 ; 04
-	dbw $6e, Unknown_8daf6 ; 05
-	dbw $2d, Unknown_8ddf0 ; 06
-	dbw $4d, Unknown_8ddf0 ; 07
-	dbw $60, Unknown_8de09 ; 08
-	dbw $00, Unknown_8de09 ; 09
-	dbw $00, Unknown_8de09 ; 0a
-	dbw $06, Unknown_8de09 ; 0b
-	dbw $0c, Unknown_8de7e ; 0c
-	dbw $0d, Unknown_8daf1 ; 0d
-	dbw $00, Unknown_8dc53 ; 0e
-	dbw $04, Unknown_8dc53 ; 0f
-	dbw $08, Unknown_8dc53 ; 10
-	dbw $40, Unknown_8dc53 ; 11
-	dbw $44, Unknown_8dc53 ; 12
-	dbw $48, Unknown_8dc53 ; 13
-	dbw $4c, Unknown_8dc53 ; 14
-	dbw $80, Unknown_8de87 ; 15
-	dbw $85, Unknown_8de87 ; 16
-	dbw $8a, Unknown_8de87 ; 17
-	dbw $00, Unknown_8db29 ; 18
-	dbw $01, Unknown_8db5c ; 19
-	dbw $09, Unknown_8db9d ; 1a
-	dbw $10, Unknown_8dc94 ; 1b
-	dbw $29, Unknown_8dc94 ; 1c
-	dbw $42, Unknown_8dc94 ; 1d
-	dbw $f8, Unknown_8e17e ; 1e
-	dbw $fa, Unknown_8e17e ; 1f
-	dbw $00, Unknown_8deb2 ; 20
-	dbw $00, Unknown_8dec3 ; 21
-	dbw $00, Unknown_8deec ; 22
-	dbw $0f, Unknown_8db07 ; 23
-	dbw $11, Unknown_8daf1 ; 24
-	dbw $12, Unknown_8daf1 ; 25
-	dbw $13, Unknown_8daf1 ; 26
-	dbw $00, Unknown_8df29 ; 27
-	dbw $08, Unknown_8df29 ; 28
-	dbw $10, Unknown_8df42 ; 29
-	dbw $10, Unknown_8df5b ; 2a
-	dbw $10, Unknown_8df74 ; 2b
-	dbw $10, Unknown_8df8d ; 2c
-	dbw $10, Unknown_8dfa6 ; 2d
-	dbw $3a, Unknown_8daf1 ; 2e
-	dbw $00, Unknown_8dd8a ; 2f
-	dbw $00, Unknown_8db18 ; 30
-	dbw $02, Unknown_8dd9b ; 31
-	dbw $06, Unknown_8db5c ; 32
-	dbw $0a, Unknown_8db5c ; 33
-	dbw $0e, Unknown_8db5c ; 34
-	dbw $12, Unknown_8db3a ; 35
-	dbw $13, Unknown_8db3a ; 36
-	dbw $00, Unknown_8dd8a ; 37
-	dbw $04, Unknown_8dd8a ; 38
-	dbw $10, Unknown_8db5c ; 39
-	dbw $00, Unknown_8dd9b ; 3a
-	dbw $04, Unknown_8daf1 ; 3b
-	dbw $00, Unknown_8dfbf ; 3c
-	dbw $00, Unknown_8ddac ; 3d
-	dbw $00, Unknown_8ddbd ; 3e
-	dbw $00, Unknown_8ddce ; 3f
-	dbw $00, Unknown_8dddf ; 40
-	dbw $00, Unknown_8dd9b ; 41
-	dbw $04, Unknown_8dd9b ; 42
-	dbw $00, Unknown_8dc2e ; 43
-	dbw $30, Unknown_8dc2e ; 44
-	dbw $03, Unknown_8dc2e ; 45
-	dbw $33, Unknown_8dc2e ; 46
-	dbw $06, Unknown_8dc2e ; 47
-	dbw $36, Unknown_8dc2e ; 48
-	dbw $09, Unknown_8dc2e ; 49
-	dbw $39, Unknown_8dc2e ; 4a
-	dbw $0c, Unknown_8dfcc ; 4b
-	dbw $0c, Unknown_8dfe5 ; 4c
-	dbw $3c, Unknown_8daf1 ; 4d
-	dbw $3e, Unknown_8daf1 ; 4e
-	dbw $00, Unknown_8de9c ; 4f
-	dbw $00, Unknown_8dea1 ; 50
-	dbw $00, Unknown_8dff6 ; 51
-	dbw $00, Unknown_8e007 ; 52
-	dbw $00, Unknown_8e018 ; 53
-	dbw $00, Unknown_8daf1 ; 54
-	dbw $01, Unknown_8daf1 ; 55
-	dbw $00, Unknown_8e029 ; 56
-	dbw $00, Unknown_8e076 ; 57
-	dbw $00, Unknown_8e0b7 ; 58
-	dbw $00, Unknown_8e0f4 ; 59
-	dbw $00, Unknown_8e139 ; 5a
-	dbw $04, Unknown_8dea1 ; 5b
-	dbw $00, Unknown_8e183 ; 5c
-	dbw $00, Unknown_8e1b4 ; 5d
-	dbw $00, Unknown_8e1b9 ; 5e
-	dbw $00, Unknown_8e1ca ; 5f
-	dbw $00, Unknown_8e1eb ; 60
-	dbw $00, Unknown_8e1f0 ; 61
-	dbw $00, Unknown_8e1f9 ; 62
-	dbw $00, Unknown_8e202 ; 63
-	dbw $04, Unknown_8e202 ; 64
-	dbw $00, Unknown_8e213 ; 65
-	dbw $04, Unknown_8e213 ; 66
-	dbw $20, Unknown_8e224 ; 67
-	dbw $21, Unknown_8e224 ; 68
-	dbw $22, Unknown_8e24b ; 69
-	dbw $23, Unknown_8e25c ; 6a
-	dbw $27, Unknown_8e27d ; 6b
-	dbw $2a, Unknown_8e229 ; 6c
-	dbw $2a, Unknown_8e23a ; 6d
-	dbw $00, Unknown_8e2ae ; 6e
-	dbw $08, Unknown_8e33f ; 6f
-	dbw $60, Unknown_8e3b0 ; 70
-	dbw $68, Unknown_8e429 ; 71
-	dbw $00, Unknown_8e4a6 ; 72
-	dbw $05, Unknown_8e4a6 ; 73
-	dbw $0a, Unknown_8e4a6 ; 74
-	dbw $50, Unknown_8e50b ; 75
-	dbw $00, Unknown_8e54c ; 76
-	dbw $01, Unknown_8e551 ; 77
-	dbw $04, Unknown_8e55e ; 78
-	dbw $00, Unknown_8db29 ; 79
-	dbw $01, Unknown_8e57b ; 7a
-	dbw $03, Unknown_8e59c ; 7b
-	dbw $08, Unknown_8e5cd ; 7c
-	dbw $1c, Unknown_8e5cd ; 7d
-	dbw $80, Unknown_8e61e ; 7e
-	dbw $00, Unknown_8e66f ; 7f
-	dbw $04, Unknown_8e66f ; 80
-	dbw $d0, Unknown_8e680 ; 81
-	dbw $d3, Unknown_8e680 ; 82
-	dbw $d6, Unknown_8e680 ; 83
-	dbw $6c, Unknown_8e6a5 ; 84
-	dbw $68, Unknown_8e6a5 ; 85
-	dbw $64, Unknown_8e6a5 ; 86
-	dbw $60, Unknown_8e6a5 ; 87
-	dbw $0c, Unknown_8e6a5 ; 88
-	dbw $08, Unknown_8e6a5 ; 89
-	dbw $04, Unknown_8e6a5 ; 8a
-	dbw $00, Unknown_8e6a5 ; 8b
-; 8daf1
-
-
-Unknown_8daf1: ; 8daf1
-	db 1
-	db $fc, $fc, $00, $00
-; 8daf6
-
-Unknown_8daf6: ; 8daf6
-	db 4
-	db $f8, $f8, $00, $00
-	db $f8, $00, $01, $00
-	db $00, $f8, $10, $00
-	db $00, $00, $11, $00
-; 8db07
-
-Unknown_8db07: ; 8db07
-	db 4
-	db $f8, $f8, $00, $00
-	db $f8, $00, $00, $20
-	db $00, $f8, $01, $00
-	db $00, $00, $01, $20
-; 8db18
-
-Unknown_8db18: ; 8db18
-	db 4
-	db $f8, $f8, $00, $80
-	db $f8, $00, $00, $a0
-	db $00, $f8, $01, $80
-	db $00, $00, $01, $a0
-; 8db29
-
-Unknown_8db29: ; 8db29
-	db 4
-	db $f8, $f8, $00, $00
-	db $f8, $00, $00, $20
-	db $00, $f8, $00, $40
-	db $00, $00, $00, $60
-; 8db3a
-
-Unknown_8db3a: ; 8db3a
-	db 4
-	db $f8, $f8, $00, $07
-	db $f8, $00, $00, $27
-	db $00, $f8, $00, $47
-	db $00, $00, $00, $67
-; 8db4b
-
-; 8db4b
-	db 4
-	db $f8, $f8, $00, $80
-	db $f8, $00, $00, $a0
-	db $00, $f8, $00, $c0
-	db $00, $00, $00, $e0
-; 8db5c
-
-Unknown_8db5c: ; 8db5c
-	db 16
-	db $f0, $f0, $00, $00
-	db $f0, $f8, $01, $00
-	db $f8, $f0, $02, $00
-	db $f8, $f8, $03, $00
-	db $f0, $00, $01, $20
-	db $f0, $08, $00, $20
-	db $f8, $00, $03, $20
-	db $f8, $08, $02, $20
-	db $00, $f0, $02, $40
-	db $00, $f8, $03, $40
-	db $08, $f0, $00, $40
-	db $08, $f8, $01, $40
-	db $00, $00, $03, $60
-	db $00, $08, $02, $60
-	db $08, $00, $01, $60
-	db $08, $08, $00, $60
-; 8db9d
-
-Unknown_8db9d: ; 8db9d
-	db 36
-	db $e8, $e8, $00, $00
-	db $e8, $f0, $01, $00
-	db $e8, $f8, $02, $00
-	db $f0, $e8, $03, $00
-	db $f0, $f0, $04, $00
-	db $f0, $f8, $05, $00
-	db $f8, $e8, $06, $00
-	db $f8, $f0, $05, $00
-	db $f8, $f8, $05, $00
-	db $e8, $00, $02, $20
-	db $e8, $08, $01, $20
-	db $e8, $10, $00, $20
-	db $f0, $00, $05, $20
-	db $f0, $08, $04, $20
-	db $f0, $10, $03, $20
-	db $f8, $00, $05, $20
-	db $f8, $08, $05, $20
-	db $f8, $10, $06, $20
-	db $00, $e8, $06, $40
-	db $00, $f0, $05, $40
-	db $00, $f8, $05, $40
-	db $08, $e8, $03, $40
-	db $08, $f0, $04, $40
-	db $08, $f8, $05, $40
-	db $10, $e8, $00, $40
-	db $10, $f0, $01, $40
-	db $10, $f8, $02, $40
-	db $00, $00, $05, $60
-	db $00, $08, $05, $60
-	db $00, $10, $06, $60
-	db $08, $00, $05, $60
-	db $08, $08, $04, $60
-	db $08, $10, $03, $60
-	db $10, $00, $02, $60
-	db $10, $08, $01, $60
-	db $10, $10, $00, $60
-; 8dc2e
-
-Unknown_8dc2e: ; 8dc2e
-	db 9
-	db $f4, $f4, $00, $00
-	db $f4, $fc, $01, $00
-	db $f4, $04, $02, $00
-	db $fc, $f4, $10, $00
-	db $fc, $fc, $11, $00
-	db $fc, $04, $12, $00
-	db $04, $f4, $20, $00
-	db $04, $fc, $21, $00
-	db $04, $04, $22, $00
-; 8dc53
-
-Unknown_8dc53: ; 8dc53
-	db 16
-	db $f0, $f0, $00, $00
-	db $f0, $f8, $01, $00
-	db $f0, $00, $02, $00
-	db $f0, $08, $03, $00
-	db $f8, $f0, $10, $00
-	db $f8, $f8, $11, $00
-	db $f8, $00, $12, $00
-	db $f8, $08, $13, $00
-	db $00, $f0, $20, $00
-	db $00, $f8, $21, $00
-	db $00, $00, $22, $00
-	db $00, $08, $23, $00
-	db $08, $f0, $30, $00
-	db $08, $f8, $31, $00
-	db $08, $00, $32, $00
-	db $08, $08, $33, $00
-; 8dc94
-
-Unknown_8dc94: ; 8dc94
-	db 25
-	db $ec, $ec, $00, $00
-	db $f4, $ec, $01, $00
-	db $fc, $ec, $02, $00
-	db $04, $ec, $03, $00
-	db $0c, $ec, $04, $00
-	db $ec, $f4, $05, $00
-	db $f4, $f4, $06, $00
-	db $fc, $f4, $07, $00
-	db $04, $f4, $08, $00
-	db $0c, $f4, $09, $00
-	db $ec, $fc, $0a, $00
-	db $f4, $fc, $0b, $00
-	db $fc, $fc, $0c, $00
-	db $04, $fc, $0d, $00
-	db $0c, $fc, $0e, $00
-	db $ec, $04, $0f, $00
-	db $f4, $04, $10, $00
-	db $fc, $04, $11, $00
-	db $04, $04, $12, $00
-	db $0c, $04, $13, $00
-	db $ec, $0c, $14, $00
-	db $f4, $0c, $15, $00
-	db $fc, $0c, $16, $00
-	db $04, $0c, $17, $00
-	db $0c, $0c, $18, $00
-; 8dcf9
-
-; 8dcf9
-	db 36
-	db $e8, $e8, $00, $00
-	db $e8, $f0, $01, $00
-	db $e8, $f8, $02, $00
-	db $e8, $00, $03, $00
-	db $e8, $08, $04, $00
-	db $e8, $10, $05, $00
-	db $f0, $e8, $06, $00
-	db $f0, $f0, $07, $00
-	db $f0, $f8, $08, $00
-	db $f0, $00, $09, $00
-	db $f0, $08, $0a, $00
-	db $f0, $10, $0b, $00
-	db $f8, $e8, $0c, $00
-	db $f8, $f0, $0d, $00
-	db $f8, $f8, $0e, $00
-	db $f8, $00, $0f, $00
-	db $f8, $08, $10, $00
-	db $f8, $10, $11, $00
-	db $00, $e8, $12, $00
-	db $00, $f0, $13, $00
-	db $00, $f8, $14, $00
-	db $00, $00, $15, $00
-	db $00, $08, $16, $00
-	db $00, $10, $17, $00
-	db $08, $e8, $18, $00
-	db $08, $f0, $19, $00
-	db $08, $f8, $1a, $00
-	db $08, $00, $1b, $00
-	db $08, $08, $1c, $00
-	db $08, $10, $1d, $00
-	db $10, $e8, $1e, $00
-	db $10, $f0, $1f, $00
-	db $10, $f8, $20, $00
-	db $10, $00, $21, $00
-	db $10, $08, $22, $00
-	db $10, $10, $23, $00
-; 8dd8a
-
-Unknown_8dd8a: ; 8dd8a
-	db 4
-	db $f8, $f8, $00, $00
-	db $f8, $00, $01, $00
-	db $00, $f8, $02, $00
-	db $00, $00, $03, $00
-; 8dd9b
-
-Unknown_8dd9b: ; 8dd9b
-	db 4
-	db $f8, $f8, $00, $80
-	db $f8, $00, $01, $80
-	db $00, $f8, $02, $80
-	db $00, $00, $03, $80
-; 8ddac
-
-Unknown_8ddac: ; 8ddac
-	db 4
-	db $f8, $f8, $00, $00
-	db $f8, $00, $01, $00
-	db $00, $f8, $08, $00
-	db $00, $00, $03, $00
-; 8ddbd
-
-Unknown_8ddbd: ; 8ddbd
-	db 4
-	db $f8, $f8, $04, $00
-	db $f8, $00, $05, $00
-	db $00, $f8, $08, $00
-	db $00, $00, $07, $00
-; 8ddce
-
-Unknown_8ddce: ; 8ddce
-	db 4
-	db $f8, $f8, $00, $00
-	db $f8, $00, $01, $00
-	db $00, $f8, $09, $00
-	db $00, $00, $03, $00
-; 8dddf
-
-Unknown_8dddf: ; 8dddf
-	db 4
-	db $f8, $f8, $04, $00
-	db $f8, $00, $05, $00
-	db $00, $f8, $09, $00
-	db $00, $00, $07, $00
-; 8ddf0
-
-Unknown_8ddf0: ; 8ddf0
-	db 6
-	db $f8, $f4, $00, $01
-	db $f8, $fc, $01, $01
-	db $f8, $04, $02, $01
-	db $00, $f4, $10, $01
-	db $00, $fc, $11, $01
-	db $00, $04, $12, $01
-; 8de09
-
-Unknown_8de09: ; 8de09
-	db 29
-	db $e8, $e8, $00, $00
-	db $e8, $f0, $01, $00
-	db $e8, $f8, $02, $00
-	db $e8, $00, $03, $00
-	db $f0, $e8, $10, $00
-	db $f0, $f0, $11, $00
-	db $f0, $f8, $12, $00
-	db $f0, $00, $13, $00
-	db $f8, $e8, $20, $00
-	db $f8, $f0, $21, $00
-	db $f8, $f8, $22, $00
-	db $f8, $00, $23, $00
-	db $f8, $08, $24, $00
-	db $00, $e8, $30, $80
-	db $00, $f0, $31, $80
-	db $00, $f8, $32, $80
-	db $00, $00, $33, $80
-	db $00, $08, $34, $80
-	db $08, $e8, $40, $80
-	db $08, $f0, $41, $80
-	db $08, $f8, $42, $80
-	db $08, $00, $43, $80
-	db $08, $08, $44, $80
-	db $08, $10, $45, $80
-	db $10, $f0, $51, $80
-	db $10, $f8, $52, $80
-	db $10, $00, $53, $80
-	db $10, $08, $54, $80
-	db $10, $10, $55, $80
-; 8de7e
-
-Unknown_8de7e: ; 8de7e
-	db 2
-	db $f8, $fc, $00, $00
-	db $00, $fc, $10, $00
-; 8de87
-
-Unknown_8de87: ; 8de87
-	db 5
-	db $f0, $18, $00, $00
-	db $f0, $20, $01, $00
-	db $f8, $10, $02, $00
-	db $f8, $18, $03, $00
-	db $00, $10, $04, $00
-; 8de9c
-
-Unknown_8de9c: ; 8de9c
-	db 1
-	db $fc, $fc, $00, $06
-; 8dea1
-
-Unknown_8dea1: ; 8dea1
-	db 4
-	db $f8, $f8, $00, $06
-	db $f8, $00, $01, $06
-	db $00, $f8, $02, $06
-	db $00, $00, $03, $06
-; 8deb2
-
-Unknown_8deb2: ; 8deb2
-	db 4
-	db $ff, $ff, $00, $00
-	db $ff, $00, $00, $20
-	db $00, $ff, $00, $40
-	db $00, $00, $00, $60
-; 8dec3
-
-Unknown_8dec3: ; 8dec3
-	db 10
-	db $ff, $00, $00, $00
-	db $ff, $08, $01, $00
-	db $ff, $10, $01, $00
-	db $ff, $18, $01, $00
-	db $ff, $20, $00, $20
-	db $00, $00, $00, $40
-	db $00, $08, $01, $40
-	db $00, $10, $01, $40
-	db $00, $18, $01, $40
-	db $00, $20, $00, $60
-; 8deec
-
-Unknown_8deec: ; 8deec
-	db 15
-	db $ec, $f4, $00, $11
-	db $ec, $fc, $01, $11
-	db $ec, $04, $02, $11
-	db $f4, $f4, $03, $11
-	db $f4, $fc, $04, $11
-	db $f4, $04, $05, $11
-	db $fc, $f4, $06, $11
-	db $fc, $fc, $07, $11
-	db $fc, $04, $08, $11
-	db $04, $f4, $09, $11
-	db $04, $fc, $0a, $11
-	db $04, $04, $0b, $11
-	db $0c, $f4, $0c, $11
-	db $0c, $fc, $0d, $11
-	db $0c, $04, $0e, $11
-; 8df29
-
-Unknown_8df29: ; 8df29
-	db 6
-	db $f4, $f4, $00, $15
-	db $f4, $fc, $02, $15
-	db $f4, $04, $00, $35
-	db $04, $f4, $04, $15
-	db $04, $fc, $06, $15
-	db $04, $04, $04, $35
-; 8df42
-
-Unknown_8df42: ; 8df42
-	db 6
-	db $f4, $f4, $00, $16
-	db $f4, $fc, $02, $16
-	db $f4, $04, $04, $16
-	db $04, $f4, $06, $16
-	db $04, $fc, $08, $16
-	db $04, $04, $0a, $16
-; 8df5b
-
-Unknown_8df5b: ; 8df5b
-	db 6
-	db $f4, $f4, $00, $16
-	db $f4, $fc, $02, $16
-	db $f4, $04, $04, $16
-	db $04, $f4, $0c, $16
-	db $04, $fc, $0e, $16
-	db $04, $04, $10, $16
-; 8df74
-
-Unknown_8df74: ; 8df74
-	db 6
-	db $f4, $f4, $00, $16
-	db $f4, $fc, $02, $16
-	db $f4, $04, $04, $16
-	db $04, $f4, $12, $16
-	db $04, $fc, $14, $16
-	db $04, $04, $16, $16
-; 8df8d
-
-Unknown_8df8d: ; 8df8d
-	db 6
-	db $f4, $f4, $00, $16
-	db $f4, $fc, $02, $16
-	db $f4, $04, $04, $16
-	db $04, $f4, $18, $16
-	db $04, $fc, $1a, $16
-	db $04, $04, $1c, $16
-; 8dfa6
-
-Unknown_8dfa6: ; 8dfa6
-	db 6
-	db $f4, $f4, $1e, $16
-	db $f4, $fc, $20, $16
-	db $f4, $04, $22, $16
-	db $04, $f4, $24, $16
-	db $04, $fc, $26, $16
-	db $04, $04, $28, $16
-; 8dfbf
-
-Unknown_8dfbf: ; 8dfbf
-	db 3
-	db $f4, $fc, $00, $10
-	db $fc, $fc, $00, $10
-	db $04, $fc, $00, $10
-; 8dfcc
-
-Unknown_8dfcc: ; 8dfcc
-	db 6
-	db $00, $00, $00, $00
-	db $00, $08, $01, $00
-	db $00, $10, $01, $00
-	db $00, $18, $01, $00
-	db $00, $20, $02, $00
-	db $00, $28, $03, $00
-; 8dfe5
-
-Unknown_8dfe5: ; 8dfe5
-	db 4
-	db $00, $00, $00, $00
-	db $00, $08, $01, $00
-	db $00, $10, $02, $00
-	db $00, $18, $03, $00
-; 8dff6
-
-Unknown_8dff6: ; 8dff6
-	db 4
-	db $f8, $f6, $00, $06
-	db $f8, $02, $01, $06
-	db $00, $f6, $02, $06
-	db $00, $02, $03, $06
-; 8e007
-
-Unknown_8e007: ; 8e007
-	db 4
-	db $f8, $f4, $00, $06
-	db $f8, $04, $01, $06
-	db $00, $f4, $02, $06
-	db $00, $04, $03, $06
-; 8e018
-
-Unknown_8e018: ; 8e018
-	db 4
-	db $f8, $f0, $00, $06
-	db $f8, $08, $01, $06
-	db $00, $f0, $02, $06
-	db $00, $08, $03, $06
-; 8e029
-
-Unknown_8e029: ; 8e029
-	db 19
-	db $f8, $e0, $00, $00
-	db $f0, $e8, $02, $00
-	db $00, $e8, $04, $00
-	db $e8, $f0, $06, $00
-	db $f8, $f0, $08, $00
-	db $08, $f0, $0a, $00
-	db $e8, $f8, $0c, $00
-	db $f8, $f8, $0e, $00
-	db $08, $f8, $10, $00
-	db $e8, $00, $12, $00
-	db $f8, $00, $14, $00
-	db $08, $00, $16, $00
-	db $e8, $08, $18, $00
-	db $f8, $08, $1a, $00
-	db $08, $08, $1c, $00
-	db $f8, $10, $1e, $00
-	db $08, $10, $20, $00
-	db $f0, $18, $22, $00
-	db $00, $18, $24, $00
-; 8e076
-
-Unknown_8e076: ; 8e076
-	db 16
-	db $f8, $e0, $00, $00
-	db $f0, $e8, $02, $00
-	db $00, $e8, $04, $00
-	db $f8, $f0, $26, $00
-	db $08, $f0, $0a, $00
-	db $e8, $f8, $28, $00
-	db $f8, $f8, $2a, $00
-	db $08, $f8, $10, $00
-	db $f8, $00, $2c, $00
-	db $08, $00, $16, $00
-	db $f8, $08, $30, $00
-	db $08, $08, $1c, $00
-	db $f8, $10, $1e, $00
-	db $08, $10, $20, $00
-	db $f0, $18, $22, $00
-	db $00, $18, $24, $00
-; 8e0b7
-
-Unknown_8e0b7: ; 8e0b7
-	db 15
-	db $f8, $e0, $00, $00
-	db $f0, $e8, $02, $00
-	db $00, $e8, $32, $00
-	db $f8, $f0, $34, $00
-	db $08, $f0, $36, $00
-	db $f8, $f8, $38, $00
-	db $08, $f8, $3a, $00
-	db $f8, $00, $3c, $00
-	db $08, $00, $3e, $00
-	db $f8, $08, $30, $00
-	db $08, $08, $1c, $00
-	db $f8, $10, $1e, $00
-	db $08, $10, $20, $00
-	db $f0, $18, $22, $00
-	db $00, $18, $24, $00
-; 8e0f4
-
-Unknown_8e0f4: ; 8e0f4
-	db 17
-	db $f8, $e0, $00, $00
-	db $f0, $e8, $02, $00
-	db $00, $e8, $04, $00
-	db $f8, $f0, $40, $00
-	db $08, $f0, $42, $00
-	db $18, $f0, $44, $00
-	db $f8, $f8, $46, $00
-	db $08, $f8, $48, $00
-	db $18, $f8, $4a, $00
-	db $f8, $00, $4c, $00
-	db $08, $00, $4e, $00
-	db $f8, $08, $30, $00
-	db $08, $08, $1c, $00
-	db $f8, $10, $1e, $00
-	db $08, $10, $20, $00
-	db $f0, $18, $22, $00
-	db $00, $18, $24, $00
-; 8e139
-
-Unknown_8e139: ; 8e139
-	db 17
-	db $f8, $e0, $00, $00
-	db $f0, $e8, $02, $00
-	db $00, $e8, $04, $00
-	db $f8, $f0, $50, $00
-	db $08, $f0, $0a, $00
-	db $e8, $f8, $52, $00
-	db $f8, $f8, $54, $00
-	db $08, $f8, $10, $00
-	db $e8, $00, $56, $00
-	db $f8, $00, $2e, $00
-	db $08, $00, $16, $00
-	db $f8, $08, $30, $00
-	db $08, $08, $1c, $00
-	db $f8, $10, $1e, $00
-	db $08, $10, $20, $00
-	db $f0, $18, $22, $00
-	db $00, $18, $24, $00
-; 8e17e
-
-Unknown_8e17e: ; 8e17e
-	db 1
-	db $fc, $fc, $00, $11
-; 8e183
-
-Unknown_8e183: ; 8e183
-	db 12
-	db $00, $00, $30, $00
-	db $00, $08, $31, $00
-	db $00, $10, $31, $00
-	db $00, $18, $31, $00
-	db $00, $20, $31, $00
-	db $00, $28, $32, $00
-	db $08, $00, $33, $00
-	db $08, $08, $34, $00
-	db $08, $10, $34, $00
-	db $08, $18, $34, $00
-	db $08, $20, $34, $00
-	db $08, $28, $35, $00
-; 8e1b4
-
-Unknown_8e1b4: ; 8e1b4
-	db 1
-	db $00, $00, $ed, $00
-; 8e1b9
-
-Unknown_8e1b9: ; 8e1b9
-	db 4
-	db $ff, $ff, $30, $00
-	db $ff, $01, $32, $00
-	db $01, $ff, $33, $00
-	db $01, $01, $35, $00
-; 8e1ca
-
-Unknown_8e1ca: ; 8e1ca
-	db 8
-	db $ff, $ff, $30, $00
-	db $ff, $04, $31, $00
-	db $ff, $0c, $31, $00
-	db $ff, $11, $32, $00
-	db $01, $ff, $33, $00
-	db $01, $04, $34, $00
-	db $01, $0c, $34, $00
-	db $01, $11, $35, $00
-; 8e1eb
-
-Unknown_8e1eb: ; 8e1eb
-	db 1
-	db $00, $00, $34, $00
-; 8e1f0
-
-Unknown_8e1f0: ; 8e1f0
-	db 2
-	db $00, $00, $30, $00
-	db $08, $00, $33, $00
-; 8e1f9
-
-Unknown_8e1f9: ; 8e1f9
-	db 2
-	db $00, $00, $32, $00
-	db $08, $00, $35, $00
-; 8e202
-
-Unknown_8e202: ; 8e202
-	db 4
-	db $f8, $f8, $00, $01
-	db $f8, $00, $01, $01
-	db $00, $f8, $02, $01
-	db $00, $00, $03, $01
-; 8e213
-
-Unknown_8e213: ; 8e213
-	db 4
-	db $f8, $f8, $00, $81
-	db $f8, $00, $01, $81
-	db $00, $f8, $02, $81
-	db $00, $00, $03, $81
-; 8e224
-
-Unknown_8e224: ; 8e224
-	db 1
-	db $fc, $fc, $00, $02
-; 8e229
-
-Unknown_8e229: ; 8e229
-	db 4
-	db $f0, $fc, $00, $03
-	db $f8, $fc, $01, $03
-	db $00, $fc, $02, $03
-	db $08, $fc, $03, $03
-; 8e23a
-
-Unknown_8e23a: ; 8e23a
-	db 4
-	db $f0, $fc, $03, $44
-	db $f8, $fc, $02, $44
-	db $00, $fc, $01, $44
-	db $08, $fc, $00, $44
-; 8e24b
-
-Unknown_8e24b: ; 8e24b
-	db 4
-	db $f8, $f8, $00, $01
-	db $f8, $00, $00, $21
-	db $00, $f8, $00, $41
-	db $00, $00, $00, $61
-; 8e25c
-
-Unknown_8e25c: ; 8e25c
-	db 8
-	db $f4, $f4, $00, $01
-	db $f4, $fc, $01, $01
-	db $f4, $04, $00, $21
-	db $fc, $f4, $02, $01
-	db $fc, $04, $02, $21
-	db $04, $f4, $00, $41
-	db $04, $fc, $01, $41
-	db $04, $04, $00, $61
-; 8e27d
-
-Unknown_8e27d: ; 8e27d
-	db 12
-	db $f0, $f0, $00, $01
-	db $f0, $f8, $01, $01
-	db $f8, $f0, $02, $01
-	db $f0, $00, $01, $21
-	db $f0, $08, $00, $21
-	db $f8, $08, $02, $21
-	db $00, $f0, $02, $41
-	db $08, $f0, $00, $41
-	db $08, $f8, $01, $41
-	db $00, $08, $02, $61
-	db $08, $00, $01, $61
-	db $08, $08, $00, $61
-; 8e2ae
-
-Unknown_8e2ae: ; 8e2ae
-	db 36
-	db $e8, $08, $05, $00
-	db $e8, $10, $06, $00
-	db $e8, $18, $07, $00
-	db $f0, $e8, $11, $00
-	db $f0, $f0, $12, $00
-	db $f0, $f8, $13, $00
-	db $f0, $00, $14, $00
-	db $f0, $08, $15, $00
-	db $f0, $10, $16, $00
-	db $f0, $18, $17, $00
-	db $f8, $e0, $20, $00
-	db $f8, $e8, $21, $00
-	db $f8, $f0, $22, $00
-	db $f8, $f8, $23, $00
-	db $f8, $00, $24, $00
-	db $f8, $08, $25, $00
-	db $f8, $10, $26, $00
-	db $f8, $18, $27, $00
-	db $00, $e0, $30, $00
-	db $00, $e8, $31, $00
-	db $00, $f0, $32, $00
-	db $00, $f8, $33, $00
-	db $00, $00, $34, $00
-	db $00, $08, $35, $00
-	db $00, $10, $36, $00
-	db $08, $e0, $40, $00
-	db $08, $e8, $41, $00
-	db $08, $f0, $42, $00
-	db $08, $f8, $43, $00
-	db $08, $00, $44, $00
-	db $08, $08, $45, $00
-	db $08, $10, $46, $00
-	db $08, $18, $47, $00
-	db $10, $e0, $50, $00
-	db $10, $e8, $51, $00
-	db $10, $18, $57, $00
-; 8e33f
-
-Unknown_8e33f: ; 8e33f
-	db 28
-	db $e8, $00, $04, $00
-	db $e8, $08, $05, $00
-	db $e8, $10, $06, $00
-	db $f0, $e8, $11, $00
-	db $f0, $f0, $12, $00
-	db $f0, $f8, $13, $00
-	db $f0, $00, $14, $00
-	db $f0, $08, $15, $00
-	db $f0, $10, $16, $00
-	db $f8, $e8, $21, $00
-	db $f8, $f0, $22, $00
-	db $f8, $f8, $23, $00
-	db $f8, $00, $24, $00
-	db $f8, $08, $25, $00
-	db $f8, $10, $26, $00
-	db $00, $e0, $30, $00
-	db $00, $e8, $31, $00
-	db $00, $f0, $32, $00
-	db $00, $f8, $33, $00
-	db $00, $00, $34, $00
-	db $00, $08, $35, $00
-	db $08, $f0, $42, $00
-	db $08, $f8, $43, $00
-	db $08, $00, $44, $00
-	db $08, $08, $45, $00
-	db $10, $f8, $53, $00
-	db $10, $00, $54, $00
-	db $10, $08, $55, $00
-; 8e3b0
-
-Unknown_8e3b0: ; 8e3b0
-	db 30
-	db $e8, $00, $04, $00
-	db $e8, $08, $05, $00
-	db $f0, $e8, $11, $00
-	db $f0, $f0, $12, $00
-	db $f0, $f8, $13, $00
-	db $f0, $00, $14, $00
-	db $f0, $08, $15, $00
-	db $f0, $10, $16, $00
-	db $f0, $18, $17, $00
-	db $f8, $e0, $20, $00
-	db $f8, $e8, $21, $00
-	db $f8, $f0, $22, $00
-	db $f8, $f8, $23, $00
-	db $f8, $00, $24, $00
-	db $f8, $08, $25, $00
-	db $f8, $10, $26, $00
-	db $00, $e0, $30, $00
-	db $00, $e8, $31, $00
-	db $00, $f0, $32, $00
-	db $00, $f8, $33, $00
-	db $00, $00, $34, $00
-	db $00, $08, $35, $00
-	db $08, $f0, $42, $00
-	db $08, $f8, $43, $00
-	db $08, $00, $44, $00
-	db $08, $08, $45, $00
-	db $10, $f0, $52, $00
-	db $10, $f8, $53, $00
-	db $10, $00, $54, $00
-	db $10, $08, $55, $00
-; 8e429
-
-Unknown_8e429: ; 8e429
-	db 31
-	db $f0, $e8, $11, $00
-	db $f0, $f0, $12, $00
-	db $f0, $f8, $13, $00
-	db $f0, $00, $14, $00
-	db $f0, $08, $15, $00
-	db $f0, $10, $16, $00
-	db $f0, $18, $17, $00
-	db $f8, $e0, $20, $00
-	db $f8, $e8, $21, $00
-	db $f8, $f0, $22, $00
-	db $f8, $f8, $23, $00
-	db $f8, $00, $24, $00
-	db $f8, $08, $25, $00
-	db $f8, $10, $26, $00
-	db $f8, $18, $27, $00
-	db $00, $e0, $30, $00
-	db $00, $e8, $31, $00
-	db $00, $f0, $32, $00
-	db $00, $f8, $33, $00
-	db $00, $00, $34, $00
-	db $00, $08, $35, $00
-	db $00, $10, $36, $00
-	db $08, $e8, $41, $00
-	db $08, $f0, $42, $00
-	db $08, $f8, $43, $00
-	db $08, $00, $44, $00
-	db $08, $08, $45, $00
-	db $10, $e8, $51, $00
-	db $10, $f0, $52, $00
-	db $10, $00, $54, $00
-	db $10, $08, $55, $00
-; 8e4a6
-
-Unknown_8e4a6: ; 8e4a6
-	db 25
-	db $ec, $ec, $00, $09
-	db $ec, $f4, $01, $09
-	db $ec, $fc, $02, $09
-	db $ec, $04, $03, $09
-	db $ec, $0c, $04, $09
-	db $f4, $ec, $10, $09
-	db $f4, $f4, $11, $09
-	db $f4, $fc, $12, $09
-	db $f4, $04, $13, $09
-	db $f4, $0c, $14, $09
-	db $fc, $ec, $20, $09
-	db $fc, $f4, $21, $09
-	db $fc, $fc, $22, $09
-	db $fc, $04, $23, $09
-	db $fc, $0c, $24, $09
-	db $04, $ec, $30, $09
-	db $04, $f4, $31, $09
-	db $04, $fc, $32, $09
-	db $04, $04, $33, $09
-	db $04, $0c, $34, $09
-	db $0c, $ec, $40, $09
-	db $0c, $f4, $41, $09
-	db $0c, $fc, $42, $09
-	db $0c, $04, $43, $09
-	db $0c, $0c, $44, $09
-; 8e50b
-
-Unknown_8e50b: ; 8e50b
-	db 16
-	db $f0, $ec, $00, $0a
-	db $f0, $f4, $01, $0a
-	db $f0, $fc, $02, $0a
-	db $f0, $04, $03, $0a
-	db $f8, $ec, $04, $0a
-	db $f8, $f4, $05, $0a
-	db $f8, $fc, $06, $0a
-	db $f8, $04, $07, $0a
-	db $00, $ec, $08, $0a
-	db $00, $f4, $09, $0a
-	db $00, $fc, $0a, $0a
-	db $00, $04, $0b, $0a
-	db $08, $ec, $0c, $0a
-	db $08, $f4, $0d, $0a
-	db $08, $fc, $0e, $0a
-	db $08, $04, $0f, $0a
-; 8e54c
-
-Unknown_8e54c: ; 8e54c
-	db 1
-	db $fc, $fc, $00, $00
-; 8e551
-
-Unknown_8e551: ; 8e551
-	db 3
-	db $00, $f8, $00, $00
-	db $f8, $f8, $01, $00
-	db $f8, $00, $02, $00
-; 8e55e
-
-Unknown_8e55e: ; 8e55e
-	db 7
-	db $08, $f0, $00, $00
-	db $00, $f0, $01, $00
-	db $f8, $f0, $02, $00
-	db $f8, $f8, $03, $00
-	db $f0, $f8, $04, $00
-	db $f0, $00, $05, $00
-	db $f0, $08, $06, $00
-; 8e57b
-
-Unknown_8e57b: ; 8e57b
-	db 8
-	db $f8, $f0, $00, $00
-	db $f8, $f8, $01, $00
-	db $f8, $00, $01, $20
-	db $f8, $08, $00, $20
-	db $00, $f0, $00, $40
-	db $00, $f8, $01, $40
-	db $00, $00, $01, $60
-	db $00, $08, $00, $60
-; 8e59c
-
-Unknown_8e59c: ; 8e59c
-	db 12
-	db $e8, $f8, $00, $00
-	db $f0, $f8, $01, $00
-	db $f8, $f8, $02, $00
-	db $e8, $00, $00, $20
-	db $f0, $00, $01, $20
-	db $f8, $00, $02, $20
-	db $00, $f8, $02, $40
-	db $08, $f8, $01, $40
-	db $10, $f8, $00, $40
-	db $00, $00, $02, $60
-	db $08, $00, $01, $60
-	db $10, $00, $00, $60
-; 8e5cd
-
-Unknown_8e5cd: ; 8e5cd
-	db 20
-	db $ec, $f0, $00, $00
-	db $ec, $f8, $01, $00
-	db $ec, $00, $02, $00
-	db $ec, $08, $03, $00
-	db $f4, $f0, $04, $00
-	db $f4, $f8, $05, $00
-	db $f4, $00, $06, $00
-	db $f4, $08, $07, $00
-	db $fc, $f0, $08, $00
-	db $fc, $f8, $09, $00
-	db $fc, $00, $0a, $00
-	db $fc, $08, $0b, $00
-	db $04, $f0, $0c, $00
-	db $04, $f8, $0d, $00
-	db $04, $00, $0e, $00
-	db $04, $08, $0f, $00
-	db $0c, $f0, $10, $00
-	db $0c, $f8, $11, $00
-	db $0c, $00, $12, $00
-	db $0c, $08, $13, $00
-; 8e61e
-
-Unknown_8e61e: ; 8e61e
-	db 20
-	db $00, $08, $00, $81
-	db $08, $10, $00, $81
-	db $10, $18, $00, $81
-	db $18, $20, $00, $81
-	db $20, $28, $00, $81
-	db $18, $30, $00, $81
-	db $10, $38, $00, $81
-	db $08, $40, $00, $81
-	db $00, $48, $00, $81
-	db $08, $50, $00, $81
-	db $10, $58, $00, $81
-	db $18, $60, $00, $81
-	db $20, $68, $00, $81
-	db $18, $70, $00, $81
-	db $10, $78, $00, $81
-	db $08, $80, $00, $81
-	db $00, $88, $00, $81
-	db $08, $90, $00, $81
-	db $10, $98, $00, $81
-	db $18, $a0, $00, $81
-; 8e66f
-
-Unknown_8e66f: ; 8e66f
-	db 4
-	db $f8, $f8, $00, $02
-	db $f8, $00, $01, $02
-	db $00, $f8, $02, $02
-	db $00, $00, $03, $02
-; 8e680
-
-Unknown_8e680: ; 8e680
-	db 9
-	db $f0, $f4, $00, $01
-	db $f0, $fc, $01, $01
-	db $f0, $04, $02, $01
-	db $f8, $f4, $10, $01
-	db $f8, $fc, $11, $01
-	db $f8, $04, $12, $01
-	db $00, $f4, $20, $01
-	db $00, $fc, $21, $01
-	db $00, $04, $22, $01
-; 8e6a5
-
-Unknown_8e6a5: ; 8e6a5
-	db 24
-	db $d8, $f4, $00, $01
-	db $d8, $fc, $01, $01
-	db $d8, $04, $02, $01
-	db $d8, $0c, $03, $01
-	db $e0, $f4, $10, $01
-	db $e0, $fc, $11, $01
-	db $e0, $04, $12, $01
-	db $e0, $0c, $13, $01
-	db $e8, $f4, $20, $01
-	db $e8, $fc, $21, $01
-	db $e8, $04, $22, $01
-	db $e8, $0c, $23, $01
-	db $f0, $f4, $30, $01
-	db $f0, $fc, $31, $01
-	db $f0, $04, $32, $01
-	db $f0, $0c, $33, $01
-	db $f8, $f4, $40, $01
-	db $f8, $fc, $41, $01
-	db $f8, $04, $42, $01
-	db $f8, $0c, $43, $01
-	db $00, $f4, $50, $01
-	db $00, $fc, $51, $01
-	db $00, $04, $52, $01
-	db $00, $0c, $53, $01
-; 8e706
-Unknown_8e706: ; Broken 2bpp pointers
-	dbbw $80, $01, $672a ; 128-tile 2bpp at 1:672a (inside Multiply)
-	dbbw $80, $01, $672a
-	dbbw $80, $01, $672a
-	dbbw $80, $01, $672a
-	dbbw $10, $37, $672a ; 16-tile 2bpp at 37:672a (within Tileset11GFX)
-	dbbw $10, $11, $672a ; 16-tile 2bpp at 11:672a (empty data)
-	dbbw $10, $39, $672a ; 16-tile 2bpp at 39:672a (empty data)
-	dbbw $10, $24, $672a ; 16-tile 2bpp at 24:672a (inside Function926f7)
-	dbbw $10, $21, $672a ; 16-tile 2bpp at 21:672a (inside Function8671c)
-
 ApplyXOffset: ; 8e72a
 	add $10
 ApplyYOffset: ; 8e72c
@@ -2963,7 +712,7 @@
 SGBEndOfExpBarGFX: ; 8e804
 INCBIN "gfx/battle/expbarend_sgb.2bpp"
 
-ClearSpriteAnims: ; 8e814
+ClearSpriteAnims2: ; 8e814
 	push hl
 	push de
 	push bc
--- a/engine/startmenu.asm
+++ b/engine/startmenu.asm
@@ -469,7 +469,7 @@
 
 	call FadeToMenu
 	callba TrainerCard
-	call ReturnToCallingMenu
+	call CloseSubmenu
 	ld a, 0
 	ret
 ; 12937
@@ -483,7 +483,7 @@
 
 	call FadeToMenu
 	callba Pokedex
-	call ReturnToCallingMenu
+	call CloseSubmenu
 
 .asm_12949
 	ld a, 0
@@ -495,7 +495,7 @@
 
 	call FadeToMenu
 	callba PokeGear
-	call ReturnToCallingMenu
+	call CloseSubmenu
 	ld a, 0
 	ret
 ; 1295b
@@ -508,7 +508,7 @@
 	ld a, [wcf66]
 	and a
 	jr nz, .used_item
-	call ReturnToCallingMenu
+	call CloseSubmenu
 	ld a, 0
 	ret
 
@@ -557,7 +557,7 @@
 	jr z, .quit
 
 .return
-	call ReturnToCallingMenu
+	call CloseSubmenu
 	ld a, 0
 	ret
 
@@ -1761,7 +1761,7 @@
 	xor a
 	ld [hBGMapMode], a
 	callba Functionfb571
-	callba ClearSpriteAnims
+	callba ClearSpriteAnims2
 	ld a, [CurPartyMon]
 	ld e, a
 	ld d, $0
--- a/engine/town_map.asm
+++ b/engine/town_map.asm
@@ -20,7 +20,7 @@
 	call ClearSprites
 	call DisableLCD
 	call Function90c4e
-	callba Function8cf53
+	callba ClearSpriteAnims
 	ld a, 8
 	call SkipMusic
 	ld a, $e3
--- a/engine/trade/animation.asm
+++ b/engine/trade/animation.asm
@@ -142,7 +142,7 @@
 	call ClearTileMap
 	call DisableLCD
 	call LoadFontsBattleExtra
-	callab Function8cf53
+	callab ClearSpriteAnims
 	ld a, [hCGB]
 	and a
 	jr z, .asm_2900b
@@ -336,7 +336,7 @@
 	push de
 	push af
 	call DisableLCD
-	callab Function8cf53
+	callab ClearSpriteAnims
 	hlbgcoord 20, 3
 	ld bc, $c
 	ld a, $60
@@ -466,7 +466,7 @@
 	call ClearTileMap
 	call ClearSprites
 	call DisableLCD
-	callab Function8cf53
+	callab ClearSpriteAnims
 	hlbgcoord 0, 0
 	ld bc, sScratch - VBGMap0
 	ld a, " "
--- a/event/celebi.asm
+++ b/event/celebi.asm
@@ -67,7 +67,7 @@
 ; 49912
 
 LoadCelebiGFX: ; 49912
-	callba Function8cf53
+	callba ClearSpriteAnims
 	ld de, SpecialCelebiLeafGFX
 	ld hl, VTiles1
 	lb bc, BANK(SpecialCelebiLeafGFX), 4
--- a/event/field_moves.asm
+++ b/event/field_moves.asm
@@ -20,7 +20,7 @@
 ; 8c80a
 
 ShakeHeadbuttTree: ; 8c80a
-	callba Function8cf53
+	callba ClearSpriteAnims
 	ld de, CutGrassGFX
 	ld hl, VTiles1
 	lb bc, BANK(CutGrassGFX), 4
@@ -35,7 +35,7 @@
 	ld hl, $3
 	add hl, bc
 	ld [hl], $84
-	ld a, $90
+	ld a, 36 * 4
 	ld [wc3b5], a
 	callba DoNextFrameForAllSprites
 	call GetHeadbuttTreeRelativeLocation
@@ -50,7 +50,7 @@
 	and a
 	jr z, .done
 	dec [hl]
-	ld a, $90
+	ld a, 36 * 4
 	ld [wc3b5], a
 	callba DoNextFrameForAllSprites
 	call DelayFrame
@@ -61,7 +61,7 @@
 	call WaitBGMap
 	xor a
 	ld [hBGMapMode], a
-	callba Function8cf53
+	callba ClearSpriteAnims
 	ld hl, Sprites + 36 * 4
 	ld bc, SpritesEnd - (Sprites + 36 * 4)
 	xor a
@@ -136,7 +136,7 @@
 ; 8c96d
 
 .LoadCutGFX: ; 8c96d
-	callab Function8cf53 ; pointless to farcall
+	callab ClearSpriteAnims ; pointless to farcall
 	ld de, CutGrassGFX
 	ld hl, VTiles1
 	lb bc, BANK(CutGrassGFX), 4
@@ -411,7 +411,7 @@
 	ret
 
 Function8cb9b: ; 8cb9b (23:4b9b)
-	callab Function8cf53
+	callab ClearSpriteAnims
 	ld de, CutGrassGFX
 	ld hl, VTiles1 tile $00
 	lb bc, BANK(CutGrassGFX), 4
--- a/event/magnet_train.asm
+++ b/event/magnet_train.asm
@@ -117,7 +117,7 @@
 	call ClearBGPalettes
 	call ClearSprites
 	call DisableLCD
-	callab Function8cf53
+	callab ClearSpriteAnims
 	call SetMagnetTrainPals
 	call DrawMagnetTrain
 	ld a, $90
--- a/event/sweet_scent.asm
+++ b/event/sweet_scent.asm
@@ -16,7 +16,7 @@
 	iffalse UnknownScript_0x506e9
 	checkflag ENGINE_BUG_CONTEST_TIMER
 	iftrue UnknownScript_0x506e5
-	setup_random_encounter
+	randomwildmon
 	startbattle
 	returnafterbattle
 	end
--- a/home/audio.asm
+++ b/home/audio.asm
@@ -312,13 +312,13 @@
 	ret
 ; 3ca8
 
-Unused_RotatePalettesRightMusic:: ; 3ca8
+Unused_FadeOutMusic:: ; 3ca8
 	ld a, 4
 	ld [MusicFade], a
 	ret
 ; 3cae
 
-RotatePalettesLeftMusic:: ; 3cae
+FadeInMusic:: ; 3cae
 	ld a, 4 | 1 << 7
 	ld [MusicFade], a
 	ret
--- a/home/map.asm
+++ b/home/map.asm
@@ -2014,7 +2014,7 @@
 ; 2b3c
 
 
-ReturnToCallingMenu:: ; 2b3c
+CloseSubmenu:: ; 2b3c
 	call ClearBGPalettes
 	call Function2bae
 	call UpdateSprites
--- a/home/serial.asm
+++ b/home/serial.asm
@@ -292,7 +292,7 @@
 	ld a, $ff
 	ld [wOtherPlayerLinkAction], a
 .loop
-	call LinkCommunicationsSendReceive
+	call LinkTransfer
 	call DelayFrame
 	call Function82b
 	jr z, .check
@@ -318,7 +318,7 @@
 	ld b, 10
 .receive
 	call DelayFrame
-	call LinkCommunicationsSendReceive
+	call LinkTransfer
 	dec b
 	jr nz, .receive
 
@@ -325,7 +325,7 @@
 	ld b, 10
 .acknowledge
 	call DelayFrame
-	call LinkCommunicationsSignalDataReceived
+	call LinkDataReceived
 	dec b
 	jr nz, .acknowledge
 
@@ -334,7 +334,7 @@
 	ret
 ; 8c1
 
-LinkCommunicationsSendReceive:: ; 8c1
+LinkTransfer:: ; 8c1
 	push bc
 	ld b, SERIAL_TIMECAPSULE
 	ld a, [wLinkMode]
@@ -380,7 +380,7 @@
 	ret
 ; 908
 
-LinkCommunicationsSignalDataReceived:: ; 908
+LinkDataReceived:: ; 908
 ; Let the other system know that the data has been received.
 	xor a
 	ld [hSerialSend], a
--- a/macros/event.asm
+++ b/macros/event.asm
@@ -595,26 +595,26 @@
 	db loadpikachudata_command
 	endm
 
-	enum setup_random_encounter_command
-setup_random_encounter: macro
-	db setup_random_encounter_command
+	enum randomwildmon_command
+randomwildmon: macro
+	db randomwildmon_command
 	endm
 
-	enum memtrainerdata_command
-memtrainerdata: macro
-	db memtrainerdata_command
+	enum loadmemtrainer_command
+loadmemtrainer: macro
+	db loadmemtrainer_command
 	endm
 
-	enum scriptedpokedata_command
-scriptedpokedata: macro
-	db scriptedpokedata_command
+	enum loadwildmon_command
+loadwildmon: macro
+	db loadwildmon_command
 	db \1 ; pokemon
 	db \2 ; level
 	endm
 
-	enum scriptedtrainerdata_command
-scriptedtrainerdata: macro
-	db scriptedtrainerdata_command
+	enum loadtrainer_command
+loadtrainer: macro
+	db loadtrainer_command
 	db \1 ; trainer_group
 	db \2 ; trainer_id
 	endm
--- a/main.asm
+++ b/main.asm
@@ -4190,7 +4190,7 @@
 	callasm TreeMonEncounter
 	iffalse .no_battle
 	closetext
-	setup_random_encounter
+	randomwildmon
 	startbattle
 	returnafterbattle
 	end
@@ -4299,7 +4299,7 @@
 	callasm RockMonEncounter
 	copybytetovar TempWildMonSpecies
 	iffalse .done
-	setup_random_encounter
+	randomwildmon
 	startbattle
 	returnafterbattle
 .done
@@ -4488,7 +4488,7 @@
 	writetext UnknownText_0xd0a4
 	callasm PutTheRodAway
 	closetext
-	setup_random_encounter
+	randomwildmon
 	startbattle
 	returnafterbattle
 	end
@@ -7991,7 +7991,7 @@
 ; 0xe43f
 
 .LogOut: ; e43f (3:643f)
-	call ReturnToCallingMenu
+	call CloseSubmenu
 	ret
 
 .UseBillsPC: ; e443 (3:6443)
@@ -8591,7 +8591,7 @@
 
 BugCatchingContestBattleScript:: ; 0x135eb
 	writecode VAR_BATTLETYPE, BATTLETYPE_CONTEST
-	setup_random_encounter
+	randomwildmon
 	startbattle
 	returnafterbattle
 	copybytetovar wParkBallsRemaining
@@ -14433,7 +14433,7 @@
 	ld [ScriptVar], a
 
 .asm_492a1
-	call ReturnToCallingMenu
+	call CloseSubmenu
 	ret
 ; 492a5
 
@@ -15637,7 +15637,7 @@
 	jr c, .asm_4a974
 
 .asm_4a990
-	call ReturnToCallingMenu
+	call CloseSubmenu
 	ld hl, wd002
 	ld a, -1
 	ld bc, 3
@@ -15650,7 +15650,7 @@
 	jr c, .asm_4a9b0
 	call Function4a9d7
 	jr c, .asm_4a974
-	call ReturnToCallingMenu
+	call CloseSubmenu
 	and a
 
 .asm_4a9af
@@ -21499,13 +21499,13 @@
 	faceplayer
 	trainerflagaction CHECK_FLAG
 	iftrue AlreadyBeatenTrainerScript
-	memtrainerdata
+	loadmemtrainer
 	encountermusic
 	jump StartBattleWithMapTrainerScript
 ; 0xbe675
 
 SeenByTrainerScript:: ; 0xbe675
-	memtrainerdata
+	loadmemtrainer
 	encountermusic
 	showemote EMOTE_SHOCK, LAST_TALKED, 30
 	callasm TrainerWalkToPlayer
@@ -21520,7 +21520,7 @@
 	trainertext $0
 	waitbutton
 	closetext
-	memtrainerdata
+	loadmemtrainer
 	startbattle
 	returnafterbattle
 	trainerflagaction SET_FLAG
--- a/maps/AzaleaGym.asm
+++ b/maps/AzaleaGym.asm
@@ -23,7 +23,7 @@
 	waitbutton
 	closetext
 	winlosstext BugsyText_ResearchIncomplete, 0
-	scriptedtrainerdata BUGSY, 1
+	loadtrainer BUGSY, 1
 	startbattle
 	returnafterbattle
 	setevent EVENT_BEAT_BUGSY
--- a/maps/AzaleaTown.asm
+++ b/maps/AzaleaTown.asm
@@ -44,7 +44,7 @@
 	moveperson AZALEATOWN_AZALEA_ROCKET2, $b, $b
 	spriteface PLAYER, RIGHT
 	showemote EMOTE_SHOCK, PLAYER, 15
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	pause 15
 	appear AZALEATOWN_AZALEA_ROCKET2
 	applymovement AZALEATOWN_AZALEA_ROCKET2, MovementData_0x198134
@@ -54,7 +54,7 @@
 UnknownScript_0x198034:
 	spriteface PLAYER, RIGHT
 	showemote EMOTE_SHOCK, PLAYER, 15
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	pause 15
 	appear AZALEATOWN_AZALEA_ROCKET2
 	applymovement AZALEATOWN_AZALEA_ROCKET2, MovementData_0x19813c
@@ -72,7 +72,7 @@
 	iftrue UnknownScript_0x198081
 	winlosstext UnknownText_0x1981e6, UnknownText_0x19835b
 	setlasttalked $b
-	scriptedtrainerdata RIVAL1, RIVAL1_6
+	loadtrainer RIVAL1, RIVAL1_6
 	startbattle
 	reloadmapmusic
 	returnafterbattle
@@ -81,7 +81,7 @@
 UnknownScript_0x198071:
 	winlosstext UnknownText_0x1981e6, UnknownText_0x19835b
 	setlasttalked $b
-	scriptedtrainerdata RIVAL1, RIVAL1_4
+	loadtrainer RIVAL1, RIVAL1_4
 	startbattle
 	reloadmapmusic
 	returnafterbattle
@@ -90,7 +90,7 @@
 UnknownScript_0x198081:
 	winlosstext UnknownText_0x1981e6, UnknownText_0x19835b
 	setlasttalked $b
-	scriptedtrainerdata RIVAL1, RIVAL1_5
+	loadtrainer RIVAL1, RIVAL1_5
 	startbattle
 	reloadmapmusic
 	returnafterbattle
--- a/maps/BlackthornGym1F.asm
+++ b/maps/BlackthornGym1F.asm
@@ -41,7 +41,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x194fd6, 0
-	scriptedtrainerdata CLAIR, 1
+	loadtrainer CLAIR, 1
 	startbattle
 	returnafterbattle
 	setevent EVENT_BEAT_CLAIR
--- a/maps/BrunosRoom.asm
+++ b/maps/BrunosRoom.asm
@@ -56,7 +56,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x180b23, 0
-	scriptedtrainerdata BRUNO, 1
+	loadtrainer BRUNO, 1
 	startbattle
 	returnafterbattle
 	setevent EVENT_BEAT_ELITE_4_BRUNO
--- a/maps/BurnedTower1F.asm
+++ b/maps/BurnedTower1F.asm
@@ -56,7 +56,7 @@
 
 UnknownScript_0x185c25:
 	showemote EMOTE_SHOCK, BURNEDTOWER1F_SILVER, 15
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	pause 15
 	spriteface BURNEDTOWER1F_SILVER, RIGHT
 	pause 15
@@ -73,7 +73,7 @@
 	iftrue UnknownScript_0x185c70
 	winlosstext UnknownText_0x185d9b, UnknownText_0x185e2c
 	setlasttalked $4
-	scriptedtrainerdata RIVAL1, RIVAL1_9
+	loadtrainer RIVAL1, RIVAL1_9
 	startbattle
 	reloadmapmusic
 	returnafterbattle
@@ -82,7 +82,7 @@
 UnknownScript_0x185c60:
 	winlosstext UnknownText_0x185d9b, UnknownText_0x185e2c
 	setlasttalked $4
-	scriptedtrainerdata RIVAL1, RIVAL1_7
+	loadtrainer RIVAL1, RIVAL1_7
 	startbattle
 	reloadmapmusic
 	returnafterbattle
@@ -91,7 +91,7 @@
 UnknownScript_0x185c70:
 	winlosstext UnknownText_0x185d9b, UnknownText_0x185e2c
 	setlasttalked $4
-	scriptedtrainerdata RIVAL1, RIVAL1_8
+	loadtrainer RIVAL1, RIVAL1_8
 	startbattle
 	reloadmapmusic
 	returnafterbattle
@@ -105,7 +105,7 @@
 	closetext
 	dotrigger $2
 	setevent EVENT_RIVAL_BURNED_TOWER
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	pause 15
 	earthquake 50
 	showemote EMOTE_SHOCK, PLAYER, 15
--- a/maps/CeladonGym.asm
+++ b/maps/CeladonGym.asm
@@ -22,7 +22,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x72c3e, 0
-	scriptedtrainerdata ERIKA, 1
+	loadtrainer ERIKA, 1
 	startbattle
 	returnafterbattle
 	setevent EVENT_BEAT_ERIKA
--- a/maps/CeruleanGym.asm
+++ b/maps/CeruleanGym.asm
@@ -69,7 +69,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x18870c, 0
-	scriptedtrainerdata MISTY, 1
+	loadtrainer MISTY, 1
 	startbattle
 	returnafterbattle
 	setevent EVENT_BEAT_MISTY
--- a/maps/CherrygroveCity.asm
+++ b/maps/CherrygroveCity.asm
@@ -110,7 +110,7 @@
 UnknownScript_0x19c0ae:
 	spriteface PLAYER, RIGHT
 	showemote EMOTE_SHOCK, PLAYER, 15
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	pause 15
 	appear CHERRYGROVECITY_SILVER
 	applymovement CHERRYGROVECITY_SILVER, MovementData_0x19c1ce
@@ -126,7 +126,7 @@
 	iftrue UnknownScript_0x19c104
 	winlosstext UnknownText_0x19c57f, UnknownText_0x19c5e6
 	setlasttalked $3
-	scriptedtrainerdata RIVAL1, RIVAL1_3
+	loadtrainer RIVAL1, RIVAL1_3
 	writecode VAR_BATTLETYPE, BATTLETYPE_CANLOSE
 	startbattle
 	reloadmapmusic
@@ -137,7 +137,7 @@
 UnknownScript_0x19c0ee:
 	winlosstext UnknownText_0x19c57f, UnknownText_0x19c5e6
 	setlasttalked $3
-	scriptedtrainerdata RIVAL1, RIVAL1_1
+	loadtrainer RIVAL1, RIVAL1_1
 	writecode VAR_BATTLETYPE, BATTLETYPE_CANLOSE
 	startbattle
 	reloadmapmusic
@@ -148,7 +148,7 @@
 UnknownScript_0x19c104:
 	winlosstext UnknownText_0x19c57f, UnknownText_0x19c5e6
 	setlasttalked $3
-	scriptedtrainerdata RIVAL1, RIVAL1_2
+	loadtrainer RIVAL1, RIVAL1_2
 	writecode VAR_BATTLETYPE, BATTLETYPE_CANLOSE
 	startbattle
 	reloadmapmusic
--- a/maps/CianwoodCity.asm
+++ b/maps/CianwoodCity.asm
@@ -68,7 +68,7 @@
 	closetext
 	winlosstext UnknownText_0x1a05a1, 0
 	setlasttalked $c
-	scriptedtrainerdata MYSTICALMAN, EUSINE
+	loadtrainer MYSTICALMAN, EUSINE
 	startbattle
 	reloadmapmusic
 	returnafterbattle
@@ -80,7 +80,7 @@
 	applymovement CIANWOODCITY_SUPER_NERD, MovementData_0x1a00ec
 	disappear CIANWOODCITY_SUPER_NERD
 	pause 20
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	playmapmusic
 	pause 10
 .Done
--- a/maps/CianwoodGym.asm
+++ b/maps/CianwoodGym.asm
@@ -40,7 +40,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x9d7f6, 0
-	scriptedtrainerdata CHUCK, 1
+	loadtrainer CHUCK, 1
 	startbattle
 	returnafterbattle
 	setevent EVENT_BEAT_CHUCK
--- a/maps/DragonShrine.asm
+++ b/maps/DragonShrine.asm
@@ -136,7 +136,7 @@
 	writetext UnknownText_0x18d916
 	waitbutton
 	closetext
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	applymovement DRAGONSHRINE_CLAIR, MovementData_0x18d2da
 	loadfont
 	writetext UnknownText_0x18d974
--- a/maps/DragonsDenB1F.asm
+++ b/maps/DragonsDenB1F.asm
@@ -81,7 +81,7 @@
 	closetext
 UnknownScript_0x18c8f9:
 	applymovement DRAGONSDENB1F_CLAIR, MovementData_0x18c9b3
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	pause 30
 	special RestartMapMusic
 	disappear DRAGONSDENB1F_CLAIR
--- a/maps/EcruteakGym.asm
+++ b/maps/EcruteakGym.asm
@@ -34,7 +34,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x9a00a, 0
-	scriptedtrainerdata MORTY, 1
+	loadtrainer MORTY, 1
 	startbattle
 	returnafterbattle
 	setevent EVENT_BEAT_MORTY
--- a/maps/FastShipCabins_NNW_NNE_NE.asm
+++ b/maps/FastShipCabins_NNW_NNE_NE.asm
@@ -88,7 +88,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x75897, 0
-	scriptedtrainerdata SAILOR, STANLY
+	loadtrainer SAILOR, STANLY
 	startbattle
 	reloadmap
 	special HealParty
--- a/maps/FuchsiaGym.asm
+++ b/maps/FuchsiaGym.asm
@@ -23,7 +23,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x195fa1, 0
-	scriptedtrainerdata JANINE, 1
+	loadtrainer JANINE, 1
 	startbattle
 	returnafterbattle
 	setevent EVENT_BEAT_JANINE
@@ -75,7 +75,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x196126, 0
-	scriptedtrainerdata LASS, ALICE
+	loadtrainer LASS, ALICE
 	startbattle
 	iftrue UnknownScript_0x195e4a
 	returnafterbattle
@@ -109,7 +109,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x19617b, 0
-	scriptedtrainerdata LASS, LINDA
+	loadtrainer LASS, LINDA
 	startbattle
 	iftrue UnknownScript_0x195e84
 	returnafterbattle
@@ -143,7 +143,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x1961f1, 0
-	scriptedtrainerdata PICNICKER, CINDY
+	loadtrainer PICNICKER, CINDY
 	startbattle
 	iftrue UnknownScript_0x195ebe
 	returnafterbattle
@@ -177,7 +177,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x19624a, 0
-	scriptedtrainerdata CAMPER, BARRY
+	loadtrainer CAMPER, BARRY
 	startbattle
 	iftrue UnknownScript_0x195ef8
 	returnafterbattle
--- a/maps/GoldenrodGym.asm
+++ b/maps/GoldenrodGym.asm
@@ -32,7 +32,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x541a5, 0
-	scriptedtrainerdata WHITNEY, 1
+	loadtrainer WHITNEY, 1
 	startbattle
 	returnafterbattle
 	setevent EVENT_BEAT_WHITNEY
--- a/maps/IlexForest.asm
+++ b/maps/IlexForest.asm
@@ -464,7 +464,7 @@
 	closetext
 	pause 20
 	showemote EMOTE_SHOCK, PLAYER, 20
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	applymovement PLAYER, MovementData_0x6ef58
 	pause 30
 	spriteface PLAYER, DOWN
@@ -471,7 +471,7 @@
 	pause 20
 	clearflag ENGINE_HAVE_EXAMINED_GS_BALL
 	special Special_CelebiShrineEvent
-	scriptedpokedata CELEBI, 30
+	loadwildmon CELEBI, 30
 	startbattle
 	returnafterbattle
 	pause 20
--- a/maps/IndigoPlateauPokeCenter1F.asm
+++ b/maps/IndigoPlateauPokeCenter1F.asm
@@ -63,7 +63,7 @@
 	appear INDIGOPLATEAUPOKECENTER1F_SILVER
 	spriteface PLAYER, DOWN
 	showemote EMOTE_SHOCK, PLAYER, 15
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	pause 15
 	applymovement INDIGOPLATEAUPOKECENTER1F_SILVER, MovementData_0x180164
 	playmusic MUSIC_RIVAL_ENCOUNTER
@@ -84,7 +84,7 @@
 	appear INDIGOPLATEAUPOKECENTER1F_SILVER
 	spriteface PLAYER, DOWN
 	showemote EMOTE_SHOCK, PLAYER, 15
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	pause 15
 	applymovement INDIGOPLATEAUPOKECENTER1F_SILVER, MovementData_0x18016b
 	playmusic MUSIC_RIVAL_ENCOUNTER
@@ -101,7 +101,7 @@
 	iftrue UnknownScript_0x180103
 	winlosstext UnknownText_0x180295, UnknownText_0x1802fd
 	setlasttalked $5
-	scriptedtrainerdata RIVAL2, 6
+	loadtrainer RIVAL2, 6
 	startbattle
 	reloadmapmusic
 	returnafterbattle
@@ -110,7 +110,7 @@
 UnknownScript_0x1800f3:
 	winlosstext UnknownText_0x180295, UnknownText_0x1802fd
 	setlasttalked $5
-	scriptedtrainerdata RIVAL2, 4
+	loadtrainer RIVAL2, 4
 	startbattle
 	reloadmapmusic
 	returnafterbattle
@@ -119,7 +119,7 @@
 UnknownScript_0x180103:
 	winlosstext UnknownText_0x180295, UnknownText_0x1802fd
 	setlasttalked $5
-	scriptedtrainerdata RIVAL2, 5
+	loadtrainer RIVAL2, 5
 	startbattle
 	reloadmapmusic
 	returnafterbattle
--- a/maps/KarensRoom.asm
+++ b/maps/KarensRoom.asm
@@ -56,7 +56,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x180cf8, 0
-	scriptedtrainerdata KAREN, 1
+	loadtrainer KAREN, 1
 	startbattle
 	returnafterbattle
 	setevent EVENT_BEAT_ELITE_4_KAREN
--- a/maps/KogasRoom.asm
+++ b/maps/KogasRoom.asm
@@ -56,7 +56,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x1808a9, 0
-	scriptedtrainerdata KOGA, 1
+	loadtrainer KOGA, 1
 	startbattle
 	returnafterbattle
 	setevent EVENT_BEAT_ELITE_4_KOGA
--- a/maps/KurtsHouse.asm
+++ b/maps/KurtsHouse.asm
@@ -47,7 +47,7 @@
 	writetext UnknownText_0x18e473
 	waitbutton
 	closetext
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	setevent EVENT_AZALEA_TOWN_SLOWPOKETAIL_ROCKET
 	checkcode VAR_FACING
 	if_equal UP, .RunAround
@@ -294,7 +294,7 @@
 	setevent EVENT_FOREST_IS_RESTLESS
 	clearevent EVENT_CAN_GIVE_GS_BALL_TO_KURT
 	clearevent EVENT_GAVE_GS_BALL_TO_KURT
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	pause 20
 	showemote EMOTE_SHOCK, KURTSHOUSE_KURT1, 30
 	checkcode VAR_FACING
--- a/maps/LakeofRage.asm
+++ b/maps/LakeofRage.asm
@@ -91,7 +91,7 @@
 	pause 15
 	cry GYARADOS
 	closetext
-	scriptedpokedata GYARADOS, 30
+	loadwildmon GYARADOS, 30
 	writecode VAR_BATTLETYPE, BATTLETYPE_SHINY
 	startbattle
 	if_equal $1, UnknownScript_0x7007a
--- a/maps/LancesRoom.asm
+++ b/maps/LancesRoom.asm
@@ -49,12 +49,12 @@
 	end
 
 UnknownScript_0x180e6a:
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	applymovement PLAYER, MovementData_0x180f38
 	jump LanceScript_0x180e7b
 
 UnknownScript_0x180e74:
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	applymovement PLAYER, MovementData_0x180f3c
 LanceScript_0x180e7b:
 	spriteface LANCESROOM_LANCE, LEFT
@@ -64,7 +64,7 @@
 	closetext
 	winlosstext UnknownText_0x1810a4, 0
 	setlasttalked $2
-	scriptedtrainerdata CHAMPION, LANCE
+	loadtrainer CHAMPION, LANCE
 	startbattle
 	reloadmapmusic
 	returnafterbattle
--- a/maps/MahoganyGym.asm
+++ b/maps/MahoganyGym.asm
@@ -23,7 +23,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x199cb3, 0
-	scriptedtrainerdata PRYCE, 1
+	loadtrainer PRYCE, 1
 	startbattle
 	returnafterbattle
 	setevent EVENT_BEAT_PRYCE
--- a/maps/MountMoon.asm
+++ b/maps/MountMoon.asm
@@ -22,7 +22,7 @@
 UnknownScript_0x7408e:
 	spriteface PLAYER, RIGHT
 	showemote EMOTE_SHOCK, PLAYER, 15
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	pause 15
 	applymovement MOUNTMOON_SILVER, MovementData_0x740f9
 	playmusic MUSIC_RIVAL_ENCOUNTER
@@ -36,7 +36,7 @@
 	iftrue UnknownScript_0x740d3
 	winlosstext UnknownText_0x7419d, UnknownText_0x742e0
 	setlasttalked $2
-	scriptedtrainerdata RIVAL2, 3
+	loadtrainer RIVAL2, 3
 	startbattle
 	reloadmapmusic
 	returnafterbattle
@@ -45,7 +45,7 @@
 UnknownScript_0x740c3:
 	winlosstext UnknownText_0x7419d, UnknownText_0x742e0
 	setlasttalked $2
-	scriptedtrainerdata RIVAL2, 1
+	loadtrainer RIVAL2, 1
 	startbattle
 	reloadmapmusic
 	returnafterbattle
@@ -54,7 +54,7 @@
 UnknownScript_0x740d3:
 	winlosstext UnknownText_0x7419d, UnknownText_0x742e0
 	setlasttalked $2
-	scriptedtrainerdata RIVAL2, 2
+	loadtrainer RIVAL2, 2
 	startbattle
 	reloadmapmusic
 	returnafterbattle
--- a/maps/MountMortarB1F.asm
+++ b/maps/MountMortarB1F.asm
@@ -25,7 +25,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x7e2a9, 0
-	scriptedtrainerdata BLACKBELT_T, KIYO
+	loadtrainer BLACKBELT_T, KIYO
 	startbattle
 	returnafterbattle
 	setevent EVENT_BEAT_BLACKBELT_KIYO
--- a/maps/NationalPark.asm
+++ b/maps/NationalPark.asm
@@ -122,7 +122,7 @@
 	checkflag ENGINE_FLYPOINT_OLIVINE
 	iftrue .LoadFight1
 .LoadFight0
-	scriptedtrainerdata SCHOOLBOY, JACK1
+	loadtrainer SCHOOLBOY, JACK1
 	startbattle
 	returnafterbattle
 	loadvar wJackFightCount, 1
@@ -130,7 +130,7 @@
 	end
 
 .LoadFight1
-	scriptedtrainerdata SCHOOLBOY, JACK2
+	loadtrainer SCHOOLBOY, JACK2
 	startbattle
 	returnafterbattle
 	loadvar wJackFightCount, 2
@@ -138,7 +138,7 @@
 	end
 
 .LoadFight2
-	scriptedtrainerdata SCHOOLBOY, JACK3
+	loadtrainer SCHOOLBOY, JACK3
 	startbattle
 	returnafterbattle
 	loadvar wJackFightCount, 3
@@ -146,7 +146,7 @@
 	end
 
 .LoadFight3
-	scriptedtrainerdata SCHOOLBOY, JACK4
+	loadtrainer SCHOOLBOY, JACK4
 	startbattle
 	returnafterbattle
 	loadvar wJackFightCount, 4
@@ -154,7 +154,7 @@
 	end
 
 .LoadFight4
-	scriptedtrainerdata SCHOOLBOY, JACK5
+	loadtrainer SCHOOLBOY, JACK5
 	startbattle
 	returnafterbattle
 	clearflag ENGINE_JACK
--- a/maps/OlivineCity.asm
+++ b/maps/OlivineCity.asm
@@ -31,7 +31,7 @@
 UnknownScript_0x1a8833:
 	spriteface PLAYER, LEFT
 	showemote EMOTE_SHOCK, PLAYER, 15
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	pause 15
 	playsound SFX_ENTER_DOOR
 	appear OLIVINECITY_OLIVINE_RIVAL
@@ -55,7 +55,7 @@
 UnknownScript_0x1a886b:
 	spriteface PLAYER, LEFT
 	showemote EMOTE_SHOCK, PLAYER, 15
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	pause 15
 	playsound SFX_ENTER_DOOR
 	appear OLIVINECITY_OLIVINE_RIVAL
--- a/maps/OlivineGym.asm
+++ b/maps/OlivineGym.asm
@@ -18,7 +18,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x9c2bb, 0
-	scriptedtrainerdata JASMINE, 1
+	loadtrainer JASMINE, 1
 	startbattle
 	returnafterbattle
 	setevent EVENT_BEAT_JASMINE
--- a/maps/OlivineLighthouse2F.asm
+++ b/maps/OlivineLighthouse2F.asm
@@ -65,7 +65,7 @@
 	checkevent EVENT_CLEARED_RADIO_TOWER
 	iftrue .LoadFight1
 .LoadFight0
-	scriptedtrainerdata SAILOR, HUEY1
+	loadtrainer SAILOR, HUEY1
 	startbattle
 	returnafterbattle
 	loadvar wHueyFightCount, 1
@@ -73,7 +73,7 @@
 	end
 
 .LoadFight1
-	scriptedtrainerdata SAILOR, HUEY2
+	loadtrainer SAILOR, HUEY2
 	startbattle
 	returnafterbattle
 	loadvar wHueyFightCount, 2
@@ -81,7 +81,7 @@
 	end
 
 .LoadFight2
-	scriptedtrainerdata SAILOR, HUEY3
+	loadtrainer SAILOR, HUEY3
 	startbattle
 	returnafterbattle
 	loadvar wHueyFightCount, 3
@@ -89,7 +89,7 @@
 	end
 
 .LoadFight3
-	scriptedtrainerdata SAILOR, HUEY4
+	loadtrainer SAILOR, HUEY4
 	startbattle
 	returnafterbattle
 	clearflag ENGINE_HUEY
--- a/maps/PewterGym.asm
+++ b/maps/PewterGym.asm
@@ -19,7 +19,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x1a29bb, 0
-	scriptedtrainerdata BROCK, 1
+	loadtrainer BROCK, 1
 	startbattle
 	returnafterbattle
 	setevent EVENT_BEAT_BROCK
--- a/maps/RadioTower2F.asm
+++ b/maps/RadioTower2F.asm
@@ -153,7 +153,7 @@
 	writetext UnknownText_0x5e054
 	waitbutton
 	closetext
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	pause 20
 	special RestartMapMusic
 	checkcode VAR_BLUECARDBALANCE
@@ -182,7 +182,7 @@
 	waitbutton
 	closetext
 	spriteface RADIOTOWER2F_BUENA, RIGHT
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	pause 20
 	special RestartMapMusic
 	end
@@ -213,7 +213,7 @@
 	waitbutton
 	closetext
 	spriteface RADIOTOWER2F_BUENA, RIGHT
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	pause 20
 	special RestartMapMusic
 	end
--- a/maps/RadioTower5F.asm
+++ b/maps/RadioTower5F.asm
@@ -41,7 +41,7 @@
 	closetext
 	winlosstext UnknownText_0x60223, 0
 	setlasttalked $2
-	scriptedtrainerdata EXECUTIVEM, 3
+	loadtrainer EXECUTIVEM, 3
 	startbattle
 	returnafterbattle
 	loadfont
@@ -90,7 +90,7 @@
 	closetext
 	winlosstext UnknownText_0x604f3, 0
 	setlasttalked $3
-	scriptedtrainerdata EXECUTIVEM, 1
+	loadtrainer EXECUTIVEM, 1
 	startbattle
 	returnafterbattle
 	loadfont
--- a/maps/Route24.asm
+++ b/maps/Route24.asm
@@ -16,7 +16,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x1add67, -1
-	scriptedtrainerdata GRUNTM, 31
+	loadtrainer GRUNTM, 31
 	startbattle
 	reloadmapmusic
 	returnafterbattle
@@ -24,7 +24,7 @@
 	loadfont
 	writetext UnknownText_0x1addc0
 	buttonsound
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	writetext UnknownText_0x1adee1
 	waitbutton
 	closetext
--- a/maps/Route25.asm
+++ b/maps/Route25.asm
@@ -174,7 +174,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x19f4fd, 0
-	scriptedtrainerdata COOLTRAINERM, KEVIN
+	loadtrainer COOLTRAINERM, KEVIN
 	startbattle
 	returnafterbattle
 	setevent EVENT_BEAT_COOLTRAINERM_KEVIN
--- a/maps/Route26.asm
+++ b/maps/Route26.asm
@@ -69,7 +69,7 @@
 	checkevent EVENT_BEAT_ELITE_FOUR
 	iftrue .LoadFight1
 .LoadFight0
-	scriptedtrainerdata COOLTRAINERM, GAVEN3
+	loadtrainer COOLTRAINERM, GAVEN3
 	startbattle
 	returnafterbattle
 	loadvar wGavenFightCount, 1
@@ -77,7 +77,7 @@
 	end
 
 .LoadFight1
-	scriptedtrainerdata COOLTRAINERM, GAVEN1
+	loadtrainer COOLTRAINERM, GAVEN1
 	startbattle
 	returnafterbattle
 	loadvar wGavenFightCount, 2
@@ -85,7 +85,7 @@
 	end
 
 .LoadFight2
-	scriptedtrainerdata COOLTRAINERM, GAVEN2
+	loadtrainer COOLTRAINERM, GAVEN2
 	startbattle
 	returnafterbattle
 	clearflag ENGINE_GAVEN
@@ -173,7 +173,7 @@
 	checkevent EVENT_BEAT_ELITE_FOUR
 	iftrue .LoadFight1
 .LoadFight0
-	scriptedtrainerdata COOLTRAINERF, BETH1
+	loadtrainer COOLTRAINERF, BETH1
 	startbattle
 	returnafterbattle
 	loadvar wBethFightCount, 1
@@ -181,7 +181,7 @@
 	end
 
 .LoadFight1
-	scriptedtrainerdata COOLTRAINERF, BETH2
+	loadtrainer COOLTRAINERF, BETH2
 	startbattle
 	returnafterbattle
 	loadvar wBethFightCount, 2
@@ -189,7 +189,7 @@
 	end
 
 .LoadFight2
-	scriptedtrainerdata COOLTRAINERF, BETH3
+	loadtrainer COOLTRAINERF, BETH3
 	startbattle
 	returnafterbattle
 	clearflag ENGINE_BETH
--- a/maps/Route27.asm
+++ b/maps/Route27.asm
@@ -106,7 +106,7 @@
 	checkevent EVENT_BEAT_ELITE_FOUR
 	iftrue .LoadFight1
 .LoadFight0
-	scriptedtrainerdata BIRD_KEEPER, JOSE2
+	loadtrainer BIRD_KEEPER, JOSE2
 	startbattle
 	returnafterbattle
 	loadvar wJoseFightCount, 1
@@ -114,7 +114,7 @@
 	end
 
 .LoadFight1
-	scriptedtrainerdata BIRD_KEEPER, JOSE1
+	loadtrainer BIRD_KEEPER, JOSE1
 	startbattle
 	returnafterbattle
 	loadvar wJoseFightCount, 2
@@ -122,7 +122,7 @@
 	end
 
 .LoadFight2
-	scriptedtrainerdata BIRD_KEEPER, JOSE3
+	loadtrainer BIRD_KEEPER, JOSE3
 	startbattle
 	returnafterbattle
 	clearflag ENGINE_JOSE
@@ -239,7 +239,7 @@
 	checkevent EVENT_BEAT_ELITE_FOUR
 	iftrue .LoadFight1
 .LoadFight0
-	scriptedtrainerdata COOLTRAINERF, REENA1
+	loadtrainer COOLTRAINERF, REENA1
 	startbattle
 	returnafterbattle
 	loadvar wReenaFightCount, 1
@@ -247,7 +247,7 @@
 	end
 
 .LoadFight1
-	scriptedtrainerdata COOLTRAINERF, REENA2
+	loadtrainer COOLTRAINERF, REENA2
 	startbattle
 	returnafterbattle
 	loadvar wReenaFightCount, 2
@@ -255,7 +255,7 @@
 	end
 
 .LoadFight2
-	scriptedtrainerdata COOLTRAINERF, REENA3
+	loadtrainer COOLTRAINERF, REENA3
 	startbattle
 	returnafterbattle
 	clearflag ENGINE_REENA
--- a/maps/Route29.asm
+++ b/maps/Route29.asm
@@ -57,7 +57,7 @@
 	follow ROUTE29_COOLTRAINER_M1, PLAYER
 	applymovement ROUTE29_COOLTRAINER_M1, MovementData_0x1a109a
 	stopfollow
-	scriptedpokedata RATTATA, 5
+	loadwildmon RATTATA, 5
 	catchtutorial BATTLETYPE_TUTORIAL
 	spriteface ROUTE29_COOLTRAINER_M1, UP
 	loadfont
@@ -82,7 +82,7 @@
 	follow ROUTE29_COOLTRAINER_M1, PLAYER
 	applymovement ROUTE29_COOLTRAINER_M1, MovementData_0x1a10a1
 	stopfollow
-	scriptedpokedata RATTATA, 5
+	loadwildmon RATTATA, 5
 	catchtutorial BATTLETYPE_TUTORIAL
 	spriteface ROUTE29_COOLTRAINER_M1, UP
 	loadfont
@@ -122,7 +122,7 @@
 	yesorno
 	iffalse UnknownScript_0x1a1022
 	closetext
-	scriptedpokedata RATTATA, 5
+	loadwildmon RATTATA, 5
 	catchtutorial BATTLETYPE_TUTORIAL
 	loadfont
 	writetext UnknownText_0x1a114d
--- a/maps/Route30.asm
+++ b/maps/Route30.asm
@@ -89,7 +89,7 @@
 	checkflag ENGINE_FLYPOINT_GOLDENROD
 	iftrue .LoadFight1
 .LoadFight0
-	scriptedtrainerdata YOUNGSTER, JOEY1
+	loadtrainer YOUNGSTER, JOEY1
 	startbattle
 	returnafterbattle
 	loadvar wJoeyFightCount, 1
@@ -97,7 +97,7 @@
 	end
 
 .LoadFight1
-	scriptedtrainerdata YOUNGSTER, JOEY2
+	loadtrainer YOUNGSTER, JOEY2
 	startbattle
 	returnafterbattle
 	loadvar wJoeyFightCount, 2
@@ -105,7 +105,7 @@
 	end
 
 .LoadFight2
-	scriptedtrainerdata YOUNGSTER, JOEY3
+	loadtrainer YOUNGSTER, JOEY3
 	startbattle
 	returnafterbattle
 	loadvar wJoeyFightCount, 3
@@ -113,7 +113,7 @@
 	end
 
 .LoadFight3
-	scriptedtrainerdata YOUNGSTER, JOEY4
+	loadtrainer YOUNGSTER, JOEY4
 	startbattle
 	returnafterbattle
 	loadvar wJoeyFightCount, 4
@@ -121,7 +121,7 @@
 	end
 
 .LoadFight4
-	scriptedtrainerdata YOUNGSTER, JOEY5
+	loadtrainer YOUNGSTER, JOEY5
 	startbattle
 	returnafterbattle
 	clearflag ENGINE_JOEY
--- a/maps/Route31.asm
+++ b/maps/Route31.asm
@@ -80,7 +80,7 @@
 	checkflag ENGINE_FLYPOINT_GOLDENROD
 	iftrue .LoadFight1
 .LoadFight0
-	scriptedtrainerdata BUG_CATCHER, WADE1
+	loadtrainer BUG_CATCHER, WADE1
 	startbattle
 	returnafterbattle
 	loadvar wWadeFightCount, 1
@@ -88,7 +88,7 @@
 	end
 
 .LoadFight1
-	scriptedtrainerdata BUG_CATCHER, WADE2
+	loadtrainer BUG_CATCHER, WADE2
 	startbattle
 	returnafterbattle
 	loadvar wWadeFightCount, 2
@@ -96,7 +96,7 @@
 	end
 
 .LoadFight2
-	scriptedtrainerdata BUG_CATCHER, WADE3
+	loadtrainer BUG_CATCHER, WADE3
 	startbattle
 	returnafterbattle
 	loadvar wWadeFightCount, 3
@@ -104,7 +104,7 @@
 	end
 
 .LoadFight3
-	scriptedtrainerdata BUG_CATCHER, WADE4
+	loadtrainer BUG_CATCHER, WADE4
 	startbattle
 	returnafterbattle
 	loadvar wWadeFightCount, 4
@@ -112,7 +112,7 @@
 	end
 
 .LoadFight4
-	scriptedtrainerdata BUG_CATCHER, WADE5
+	loadtrainer BUG_CATCHER, WADE5
 	startbattle
 	returnafterbattle
 	clearflag ENGINE_WADE
--- a/maps/Route32.asm
+++ b/maps/Route32.asm
@@ -223,7 +223,7 @@
 	checkflag ENGINE_FLYPOINT_ECRUTEAK
 	iftrue .LoadFight1
 .LoadFight0
-	scriptedtrainerdata FISHER, RALPH1
+	loadtrainer FISHER, RALPH1
 	startbattle
 	returnafterbattle
 	loadvar wRalphFightCount, 1
@@ -231,7 +231,7 @@
 	end
 
 .LoadFight1
-	scriptedtrainerdata FISHER, RALPH2
+	loadtrainer FISHER, RALPH2
 	startbattle
 	returnafterbattle
 	loadvar wRalphFightCount, 2
@@ -239,7 +239,7 @@
 	end
 
 .LoadFight2
-	scriptedtrainerdata FISHER, RALPH3
+	loadtrainer FISHER, RALPH3
 	startbattle
 	returnafterbattle
 	loadvar wRalphFightCount, 3
@@ -247,7 +247,7 @@
 	end
 
 .LoadFight3
-	scriptedtrainerdata FISHER, RALPH4
+	loadtrainer FISHER, RALPH4
 	startbattle
 	returnafterbattle
 	loadvar wRalphFightCount, 4
@@ -255,7 +255,7 @@
 	end
 
 .LoadFight4
-	scriptedtrainerdata FISHER, RALPH5
+	loadtrainer FISHER, RALPH5
 	startbattle
 	returnafterbattle
 	clearflag ENGINE_RALPH
@@ -357,7 +357,7 @@
 	checkflag ENGINE_FLYPOINT_ECRUTEAK
 	iftrue .LoadFight1
 .LoadFight0
-	scriptedtrainerdata PICNICKER, LIZ1
+	loadtrainer PICNICKER, LIZ1
 	startbattle
 	returnafterbattle
 	loadvar wLizFightCount, 1
@@ -365,7 +365,7 @@
 	end
 
 .LoadFight1
-	scriptedtrainerdata PICNICKER, LIZ2
+	loadtrainer PICNICKER, LIZ2
 	startbattle
 	returnafterbattle
 	loadvar wLizFightCount, 2
@@ -373,7 +373,7 @@
 	end
 
 .LoadFight2
-	scriptedtrainerdata PICNICKER, LIZ3
+	loadtrainer PICNICKER, LIZ3
 	startbattle
 	returnafterbattle
 	loadvar wLizFightCount, 3
@@ -381,7 +381,7 @@
 	end
 
 .LoadFight3
-	scriptedtrainerdata PICNICKER, LIZ4
+	loadtrainer PICNICKER, LIZ4
 	startbattle
 	returnafterbattle
 	loadvar wLizFightCount, 4
@@ -389,7 +389,7 @@
 	end
 
 .LoadFight4
-	scriptedtrainerdata PICNICKER, LIZ5
+	loadtrainer PICNICKER, LIZ5
 	startbattle
 	returnafterbattle
 	clearflag ENGINE_LIZ
--- a/maps/Route33.asm
+++ b/maps/Route33.asm
@@ -66,7 +66,7 @@
 	checkflag ENGINE_FLYPOINT_OLIVINE
 	iftrue .LoadFight1
 .LoadFight0
-	scriptedtrainerdata HIKER, ANTHONY2
+	loadtrainer HIKER, ANTHONY2
 	startbattle
 	returnafterbattle
 	loadvar wAnthonyFightCount, 1
@@ -74,7 +74,7 @@
 	end
 
 .LoadFight1
-	scriptedtrainerdata HIKER, ANTHONY1
+	loadtrainer HIKER, ANTHONY1
 	startbattle
 	returnafterbattle
 	loadvar wAnthonyFightCount, 2
@@ -82,7 +82,7 @@
 	end
 
 .LoadFight2
-	scriptedtrainerdata HIKER, ANTHONY3
+	loadtrainer HIKER, ANTHONY3
 	startbattle
 	returnafterbattle
 	loadvar wAnthonyFightCount, 3
@@ -90,7 +90,7 @@
 	end
 
 .LoadFight3
-	scriptedtrainerdata HIKER, ANTHONY4
+	loadtrainer HIKER, ANTHONY4
 	startbattle
 	returnafterbattle
 	loadvar wAnthonyFightCount, 4
@@ -98,7 +98,7 @@
 	end
 
 .LoadFight4
-	scriptedtrainerdata HIKER, ANTHONY5
+	loadtrainer HIKER, ANTHONY5
 	startbattle
 	returnafterbattle
 	clearflag ENGINE_ANTHONY
--- a/maps/Route34.asm
+++ b/maps/Route34.asm
@@ -143,7 +143,7 @@
 	checkflag ENGINE_FLYPOINT_CIANWOOD
 	iftrue .LoadFight1
 .LoadFight0
-	scriptedtrainerdata CAMPER, TODD1
+	loadtrainer CAMPER, TODD1
 	startbattle
 	returnafterbattle
 	loadvar wToddFightCount, 1
@@ -151,7 +151,7 @@
 	end
 
 .LoadFight1
-	scriptedtrainerdata CAMPER, TODD2
+	loadtrainer CAMPER, TODD2
 	startbattle
 	returnafterbattle
 	loadvar wToddFightCount, 2
@@ -159,7 +159,7 @@
 	end
 
 .LoadFight2
-	scriptedtrainerdata CAMPER, TODD3
+	loadtrainer CAMPER, TODD3
 	startbattle
 	returnafterbattle
 	loadvar wToddFightCount, 3
@@ -167,7 +167,7 @@
 	end
 
 .LoadFight3
-	scriptedtrainerdata CAMPER, TODD4
+	loadtrainer CAMPER, TODD4
 	startbattle
 	returnafterbattle
 	loadvar wToddFightCount, 4
@@ -175,7 +175,7 @@
 	end
 
 .LoadFight4
-	scriptedtrainerdata CAMPER, TODD5
+	loadtrainer CAMPER, TODD5
 	startbattle
 	returnafterbattle
 	clearflag ENGINE_TODD
@@ -268,7 +268,7 @@
 	checkflag ENGINE_FLYPOINT_MAHOGANY
 	iftrue .LoadFight1
 .LoadFight0
-	scriptedtrainerdata PICNICKER, GINA1
+	loadtrainer PICNICKER, GINA1
 	startbattle
 	returnafterbattle
 	loadvar wGinaFightCount, 1
@@ -276,7 +276,7 @@
 	end
 
 .LoadFight1
-	scriptedtrainerdata PICNICKER, GINA2
+	loadtrainer PICNICKER, GINA2
 	startbattle
 	returnafterbattle
 	loadvar wGinaFightCount, 2
@@ -284,7 +284,7 @@
 	end
 
 .LoadFight2
-	scriptedtrainerdata PICNICKER, GINA3
+	loadtrainer PICNICKER, GINA3
 	startbattle
 	returnafterbattle
 	loadvar wGinaFightCount, 3
@@ -292,7 +292,7 @@
 	end
 
 .LoadFight3
-	scriptedtrainerdata PICNICKER, GINA4
+	loadtrainer PICNICKER, GINA4
 	startbattle
 	returnafterbattle
 	loadvar wGinaFightCount, 4
@@ -300,7 +300,7 @@
 	end
 
 .LoadFight4
-	scriptedtrainerdata PICNICKER, GINA5
+	loadtrainer PICNICKER, GINA5
 	startbattle
 	returnafterbattle
 	clearflag ENGINE_GINA
@@ -365,7 +365,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x78609, 0
-	scriptedtrainerdata OFFICER, KEITH
+	loadtrainer OFFICER, KEITH
 	startbattle
 	returnafterbattle
 	setevent EVENT_BEAT_OFFICER_KEITH
--- a/maps/Route35.asm
+++ b/maps/Route35.asm
@@ -181,7 +181,7 @@
 	checkflag ENGINE_FLYPOINT_LAKE_OF_RAGE
 	iftrue .LoadFight1
 .LoadFight0
-	scriptedtrainerdata BUG_CATCHER, ARNIE1
+	loadtrainer BUG_CATCHER, ARNIE1
 	startbattle
 	returnafterbattle
 	loadvar wArnieFightCount, 1
@@ -189,7 +189,7 @@
 	end
 
 .LoadFight1
-	scriptedtrainerdata BUG_CATCHER, ARNIE2
+	loadtrainer BUG_CATCHER, ARNIE2
 	startbattle
 	returnafterbattle
 	loadvar wArnieFightCount, 2
@@ -197,7 +197,7 @@
 	end
 
 .LoadFight2
-	scriptedtrainerdata BUG_CATCHER, ARNIE3
+	loadtrainer BUG_CATCHER, ARNIE3
 	startbattle
 	returnafterbattle
 	loadvar wArnieFightCount, 3
@@ -205,7 +205,7 @@
 	end
 
 .LoadFight3
-	scriptedtrainerdata BUG_CATCHER, ARNIE4
+	loadtrainer BUG_CATCHER, ARNIE4
 	startbattle
 	returnafterbattle
 	loadvar wArnieFightCount, 4
@@ -213,7 +213,7 @@
 	end
 
 .LoadFight4
-	scriptedtrainerdata BUG_CATCHER, ARNIE5
+	loadtrainer BUG_CATCHER, ARNIE5
 	startbattle
 	returnafterbattle
 	clearflag ENGINE_ARNIE
@@ -248,7 +248,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x19cf06, 0
-	scriptedtrainerdata OFFICER, DIRK
+	loadtrainer OFFICER, DIRK
 	startbattle
 	returnafterbattle
 	setevent EVENT_BEAT_OFFICER_DIRK
--- a/maps/Route36.asm
+++ b/maps/Route36.asm
@@ -82,7 +82,7 @@
 	writetext UnknownText_0x1942aa
 	waitbutton
 	closetext
-	scriptedpokedata SUDOWOODO, 20
+	loadwildmon SUDOWOODO, 20
 	startbattle
 	setevent EVENT_FOUGHT_SUDOWOODO
 	if_equal $2, UnknownScript_0x19407b
@@ -225,7 +225,7 @@
 	checkflag ENGINE_FLYPOINT_OLIVINE
 	iftrue .LoadFight1
 .LoadFight0
-	scriptedtrainerdata SCHOOLBOY, ALAN1
+	loadtrainer SCHOOLBOY, ALAN1
 	startbattle
 	returnafterbattle
 	loadvar wAlanFightCount, 1
@@ -233,7 +233,7 @@
 	end
 
 .LoadFight1
-	scriptedtrainerdata SCHOOLBOY, ALAN2
+	loadtrainer SCHOOLBOY, ALAN2
 	startbattle
 	returnafterbattle
 	loadvar wAlanFightCount, 2
@@ -241,7 +241,7 @@
 	end
 
 .LoadFight2
-	scriptedtrainerdata SCHOOLBOY, ALAN3
+	loadtrainer SCHOOLBOY, ALAN3
 	startbattle
 	returnafterbattle
 	loadvar wAlanFightCount, 3
@@ -249,7 +249,7 @@
 	end
 
 .LoadFight3
-	scriptedtrainerdata SCHOOLBOY, ALAN4
+	loadtrainer SCHOOLBOY, ALAN4
 	startbattle
 	returnafterbattle
 	loadvar wAlanFightCount, 4
@@ -257,7 +257,7 @@
 	end
 
 .LoadFight4
-	scriptedtrainerdata SCHOOLBOY, ALAN5
+	loadtrainer SCHOOLBOY, ALAN5
 	startbattle
 	returnafterbattle
 	clearflag ENGINE_ALAN
--- a/maps/Route38.asm
+++ b/maps/Route38.asm
@@ -89,7 +89,7 @@
 	checkflag ENGINE_FLYPOINT_CIANWOOD
 	iftrue .LoadFight1
 .LoadFight0
-	scriptedtrainerdata LASS, DANA1
+	loadtrainer LASS, DANA1
 	startbattle
 	returnafterbattle
 	loadvar wDanaFightCount, 1
@@ -97,7 +97,7 @@
 	end
 
 .LoadFight1
-	scriptedtrainerdata LASS, DANA2
+	loadtrainer LASS, DANA2
 	startbattle
 	returnafterbattle
 	loadvar wDanaFightCount, 2
@@ -105,7 +105,7 @@
 	end
 
 .LoadFight2
-	scriptedtrainerdata LASS, DANA3
+	loadtrainer LASS, DANA3
 	startbattle
 	returnafterbattle
 	loadvar wDanaFightCount, 3
@@ -113,7 +113,7 @@
 	end
 
 .LoadFight3
-	scriptedtrainerdata LASS, DANA4
+	loadtrainer LASS, DANA4
 	startbattle
 	returnafterbattle
 	loadvar wDanaFightCount, 4
@@ -121,7 +121,7 @@
 	end
 
 .LoadFight4
-	scriptedtrainerdata LASS, DANA5
+	loadtrainer LASS, DANA5
 	startbattle
 	returnafterbattle
 	clearflag ENGINE_DANA
@@ -225,7 +225,7 @@
 	checkflag ENGINE_FLYPOINT_MAHOGANY
 	iftrue .LoadFight1
 .LoadFight0
-	scriptedtrainerdata SCHOOLBOY, CHAD1
+	loadtrainer SCHOOLBOY, CHAD1
 	startbattle
 	returnafterbattle
 	loadvar wChadFightCount, 1
@@ -233,7 +233,7 @@
 	end
 
 .LoadFight1
-	scriptedtrainerdata SCHOOLBOY, CHAD2
+	loadtrainer SCHOOLBOY, CHAD2
 	startbattle
 	returnafterbattle
 	loadvar wChadFightCount, 2
@@ -241,7 +241,7 @@
 	end
 
 .LoadFight2
-	scriptedtrainerdata SCHOOLBOY, CHAD3
+	loadtrainer SCHOOLBOY, CHAD3
 	startbattle
 	returnafterbattle
 	loadvar wChadFightCount, 3
@@ -249,7 +249,7 @@
 	end
 
 .LoadFight3
-	scriptedtrainerdata SCHOOLBOY, CHAD4
+	loadtrainer SCHOOLBOY, CHAD4
 	startbattle
 	returnafterbattle
 	loadvar wChadFightCount, 4
@@ -257,7 +257,7 @@
 	end
 
 .LoadFight4
-	scriptedtrainerdata SCHOOLBOY, CHAD5
+	loadtrainer SCHOOLBOY, CHAD5
 	startbattle
 	returnafterbattle
 	clearflag ENGINE_CHAD
--- a/maps/Route39.asm
+++ b/maps/Route39.asm
@@ -148,7 +148,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x1a5f17, 0
-	scriptedtrainerdata POKEFANF, JAIME
+	loadtrainer POKEFANF, JAIME
 	startbattle
 	returnafterbattle
 	setevent EVENT_BEAT_POKEFANF_JAIME
--- a/maps/Route42.asm
+++ b/maps/Route42.asm
@@ -87,7 +87,7 @@
 	checkevent EVENT_CLEARED_ROCKET_HIDEOUT
 	iftrue .LoadFight1
 .LoadFight0
-	scriptedtrainerdata FISHER, TULLY1
+	loadtrainer FISHER, TULLY1
 	startbattle
 	returnafterbattle
 	loadvar wTullyFightCount, 1
@@ -95,7 +95,7 @@
 	end
 
 .LoadFight1
-	scriptedtrainerdata FISHER, TULLY2
+	loadtrainer FISHER, TULLY2
 	startbattle
 	returnafterbattle
 	loadvar wTullyFightCount, 2
@@ -103,7 +103,7 @@
 	end
 
 .LoadFight2
-	scriptedtrainerdata FISHER, TULLY3
+	loadtrainer FISHER, TULLY3
 	startbattle
 	returnafterbattle
 	loadvar wTullyFightCount, 3
@@ -111,7 +111,7 @@
 	end
 
 .LoadFight3
-	scriptedtrainerdata FISHER, TULLY4
+	loadtrainer FISHER, TULLY4
 	startbattle
 	returnafterbattle
 	clearflag ENGINE_TULLY
--- a/maps/Route43.asm
+++ b/maps/Route43.asm
@@ -98,7 +98,7 @@
 	checkevent EVENT_CLEARED_ROCKET_HIDEOUT
 	iftrue .LoadFight1
 .LoadFight0
-	scriptedtrainerdata POKEMANIAC, BRENT1
+	loadtrainer POKEMANIAC, BRENT1
 	startbattle
 	returnafterbattle
 	loadvar wBrentFightCount, 1
@@ -106,7 +106,7 @@
 	end
 
 .LoadFight1
-	scriptedtrainerdata POKEMANIAC, BRENT2
+	loadtrainer POKEMANIAC, BRENT2
 	startbattle
 	returnafterbattle
 	loadvar wBrentFightCount, 2
@@ -114,7 +114,7 @@
 	end
 
 .LoadFight2
-	scriptedtrainerdata POKEMANIAC, BRENT3
+	loadtrainer POKEMANIAC, BRENT3
 	startbattle
 	returnafterbattle
 	loadvar wBrentFightCount, 3
@@ -122,7 +122,7 @@
 	end
 
 .LoadFight3
-	scriptedtrainerdata POKEMANIAC, BRENT4
+	loadtrainer POKEMANIAC, BRENT4
 	startbattle
 	returnafterbattle
 	clearflag ENGINE_BRENT
@@ -229,7 +229,7 @@
 	checkevent EVENT_CLEARED_RADIO_TOWER
 	iftrue .LoadFight1
 .LoadFight0
-	scriptedtrainerdata PICNICKER, TIFFANY3
+	loadtrainer PICNICKER, TIFFANY3
 	startbattle
 	returnafterbattle
 	loadvar wTiffanyFightCount, 1
@@ -237,7 +237,7 @@
 	end
 
 .LoadFight1
-	scriptedtrainerdata PICNICKER, TIFFANY1
+	loadtrainer PICNICKER, TIFFANY1
 	startbattle
 	returnafterbattle
 	loadvar wTiffanyFightCount, 2
@@ -245,7 +245,7 @@
 	end
 
 .LoadFight2
-	scriptedtrainerdata PICNICKER, TIFFANY2
+	loadtrainer PICNICKER, TIFFANY2
 	startbattle
 	returnafterbattle
 	loadvar wTiffanyFightCount, 3
@@ -253,7 +253,7 @@
 	end
 
 .LoadFight3
-	scriptedtrainerdata PICNICKER, TIFFANY4
+	loadtrainer PICNICKER, TIFFANY4
 	startbattle
 	returnafterbattle
 	clearflag ENGINE_TIFFANY
--- a/maps/Route44.asm
+++ b/maps/Route44.asm
@@ -61,7 +61,7 @@
 	checkevent EVENT_BEAT_ELITE_FOUR
 	iftrue .LoadFight1
 .LoadFight0
-	scriptedtrainerdata BIRD_KEEPER, VANCE1
+	loadtrainer BIRD_KEEPER, VANCE1
 	startbattle
 	returnafterbattle
 	loadvar wVanceFightCount, 1
@@ -69,7 +69,7 @@
 	end
 
 .LoadFight1
-	scriptedtrainerdata BIRD_KEEPER, VANCE2
+	loadtrainer BIRD_KEEPER, VANCE2
 	startbattle
 	returnafterbattle
 	loadvar wVanceFightCount, 2
@@ -77,7 +77,7 @@
 	end
 
 .LoadFight2
-	scriptedtrainerdata BIRD_KEEPER, VANCE3
+	loadtrainer BIRD_KEEPER, VANCE3
 	startbattle
 	returnafterbattle
 	clearflag ENGINE_VANCE
@@ -205,7 +205,7 @@
 	checkevent EVENT_BEAT_ELITE_FOUR
 	iftrue .LoadFight1
 .LoadFight0
-	scriptedtrainerdata FISHER, WILTON1
+	loadtrainer FISHER, WILTON1
 	startbattle
 	returnafterbattle
 	loadvar wWiltonFightCount, 1
@@ -213,7 +213,7 @@
 	end
 
 .LoadFight1
-	scriptedtrainerdata FISHER, WILTON2
+	loadtrainer FISHER, WILTON2
 	startbattle
 	returnafterbattle
 	loadvar wWiltonFightCount, 2
@@ -221,7 +221,7 @@
 	end
 
 .LoadFight2
-	scriptedtrainerdata FISHER, WILTON3
+	loadtrainer FISHER, WILTON3
 	startbattle
 	returnafterbattle
 	clearflag ENGINE_WILTON
--- a/maps/Route45.asm
+++ b/maps/Route45.asm
@@ -189,7 +189,7 @@
 	checkevent EVENT_BEAT_ELITE_FOUR
 	iftrue .LoadFight1
 .LoadFight0
-	scriptedtrainerdata HIKER, PARRY3
+	loadtrainer HIKER, PARRY3
 	startbattle
 	returnafterbattle
 	loadvar wParryFightCount, 1
@@ -197,7 +197,7 @@
 	end
 
 .LoadFight1
-	scriptedtrainerdata HIKER, PARRY1
+	loadtrainer HIKER, PARRY1
 	startbattle
 	returnafterbattle
 	loadvar wParryFightCount, 2
@@ -205,7 +205,7 @@
 	end
 
 .LoadFight2
-	scriptedtrainerdata HIKER, PARRY2
+	loadtrainer HIKER, PARRY2
 	startbattle
 	returnafterbattle
 	clearflag ENGINE_PARRY
@@ -274,7 +274,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x19e899, 0
-	scriptedtrainerdata CAMPER, QUENTIN
+	loadtrainer CAMPER, QUENTIN
 	startbattle
 	returnafterbattle
 	setevent EVENT_BEAT_CAMPER_QUENTIN
--- a/maps/Route46.asm
+++ b/maps/Route46.asm
@@ -67,7 +67,7 @@
 	checkevent EVENT_BEAT_ELITE_FOUR
 	iftrue .LoadFight1
 .LoadFight0
-	scriptedtrainerdata PICNICKER, ERIN1
+	loadtrainer PICNICKER, ERIN1
 	startbattle
 	returnafterbattle
 	loadvar wErinFightCount, 1
@@ -75,7 +75,7 @@
 	end
 
 .LoadFight1
-	scriptedtrainerdata PICNICKER, ERIN2
+	loadtrainer PICNICKER, ERIN2
 	startbattle
 	returnafterbattle
 	loadvar wErinFightCount, 2
@@ -83,7 +83,7 @@
 	end
 
 .LoadFight2
-	scriptedtrainerdata PICNICKER, ERIN3
+	loadtrainer PICNICKER, ERIN3
 	startbattle
 	returnafterbattle
 	clearflag ENGINE_ERIN
--- a/maps/SaffronGym.asm
+++ b/maps/SaffronGym.asm
@@ -22,7 +22,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x189df4, 0
-	scriptedtrainerdata SABRINA, 1
+	loadtrainer SABRINA, 1
 	startbattle
 	returnafterbattle
 	setevent EVENT_BEAT_SABRINA
--- a/maps/SeafoamGym.asm
+++ b/maps/SeafoamGym.asm
@@ -24,7 +24,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x1ab646, 0
-	scriptedtrainerdata BLAINE, 1
+	loadtrainer BLAINE, 1
 	startbattle
 	iftrue .ReturnAfterBattle
 	appear SEAFOAMGYM_GYM_GUY
--- a/maps/SilverCaveRoom3.asm
+++ b/maps/SilverCaveRoom3.asm
@@ -9,7 +9,7 @@
 	db 0
 
 RedScript_0x18c603:
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	faceplayer
 	loadfont
 	writetext UnknownText_0x18c637
@@ -16,11 +16,11 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x18c63c, UnknownText_0x18c63c
-	scriptedtrainerdata RED, 1
+	loadtrainer RED, 1
 	startbattle
 	reloadmapmusic
 	returnafterbattle
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	loadfont
 	writetext UnknownText_0x18c63f
 	waitbutton
--- a/maps/SproutTower3F.asm
+++ b/maps/SproutTower3F.asm
@@ -27,7 +27,7 @@
 UnknownScript_0x184947:
 	spriteface PLAYER, UP
 	showemote EMOTE_SHOCK, PLAYER, 15
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	playsound SFX_TACKLE
 	playsound SFX_ELEVATOR
 	earthquake 79
@@ -74,7 +74,7 @@
 	waitbutton
 	closetext
 	winlosstext SageLiBeatenText, 0
-	scriptedtrainerdata SAGE, LI
+	loadtrainer SAGE, LI
 	startbattle
 	returnafterbattle
 	loadfont
--- a/maps/TeamRocketBaseB1F.asm
+++ b/maps/TeamRocketBaseB1F.asm
@@ -243,7 +243,7 @@
 	closetext
 	winlosstext CameraGrunt1BeatenText, 0
 	setlasttalked $2
-	scriptedtrainerdata GRUNTM, 20
+	loadtrainer GRUNTM, 20
 	startbattle
 	disappear TEAMROCKETBASEB1F_ROCKET1
 	returnafterbattle
@@ -256,7 +256,7 @@
 	closetext
 	winlosstext CameraGrunt2BeatenText, 0
 	setlasttalked $2
-	scriptedtrainerdata GRUNTM, 21
+	loadtrainer GRUNTM, 21
 	startbattle
 	disappear TEAMROCKETBASEB1F_ROCKET1
 	returnafterbattle
@@ -458,7 +458,7 @@
 	special FadeInPalettes
 	setlasttalked $ff
 	writecode VAR_BATTLETYPE, BATTLETYPE_TRAP
-	scriptedpokedata VOLTORB, 23
+	loadwildmon VOLTORB, 23
 	startbattle
 	end
 
@@ -468,7 +468,7 @@
 	special FadeInPalettes
 	setlasttalked $ff
 	writecode VAR_BATTLETYPE, BATTLETYPE_TRAP
-	scriptedpokedata GEODUDE, 21
+	loadwildmon GEODUDE, 21
 	startbattle
 	end
 
@@ -478,7 +478,7 @@
 	special FadeInPalettes
 	setlasttalked $ff
 	writecode VAR_BATTLETYPE, BATTLETYPE_TRAP
-	scriptedpokedata KOFFING, 21
+	loadwildmon KOFFING, 21
 	startbattle
 	end
 
--- a/maps/TeamRocketBaseB2F.asm
+++ b/maps/TeamRocketBaseB2F.asm
@@ -102,7 +102,7 @@
 	applymovement TEAMROCKETBASEB2F_ROCKET_GIRL, MovementData_0x6d248
 	winlosstext UnknownText_0x6d45c, 0
 	setlasttalked $3
-	scriptedtrainerdata EXECUTIVEF, 2
+	loadtrainer EXECUTIVEF, 2
 	startbattle
 	disappear TEAMROCKETBASEB2F_DRAGON
 	setevent EVENT_TEAM_ROCKET_BASE_B2F_EXECUTIVE
@@ -228,7 +228,7 @@
 
 VoltorbScript_0x6d101:
 	cry ELECTRODE
-	scriptedpokedata ELECTRODE, 23
+	loadwildmon ELECTRODE, 23
 	startbattle
 	iftrue UnknownScript_0x6d182
 	disappear TEAMROCKETBASEB2F_VOLTORB1
@@ -246,7 +246,7 @@
 
 VoltorbScript_0x6d12c:
 	cry ELECTRODE
-	scriptedpokedata ELECTRODE, 23
+	loadwildmon ELECTRODE, 23
 	startbattle
 	iftrue UnknownScript_0x6d182
 	disappear TEAMROCKETBASEB2F_VOLTORB2
@@ -264,7 +264,7 @@
 
 VoltorbScript_0x6d157:
 	cry ELECTRODE
-	scriptedpokedata ELECTRODE, 23
+	loadwildmon ELECTRODE, 23
 	startbattle
 	iftrue UnknownScript_0x6d182
 	disappear TEAMROCKETBASEB2F_VOLTORB3
--- a/maps/TeamRocketBaseB3F.asm
+++ b/maps/TeamRocketBaseB3F.asm
@@ -71,7 +71,7 @@
 UnknownScript_0x6e019:
 	spriteface PLAYER, LEFT
 	showemote EMOTE_SHOCK, PLAYER, 15
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	appear TEAMROCKETBASEB3F_SILVER
 	applymovement TEAMROCKETBASEB3F_SILVER, MovementData_0x6e164
 	spriteface PLAYER, LEFT
@@ -109,7 +109,7 @@
 	applymovement TEAMROCKETBASEB3F_ROCKET1, MovementData_0x6e142
 	winlosstext UnknownText_0x6e511, 0
 	setlasttalked $3
-	scriptedtrainerdata EXECUTIVEM, 4
+	loadtrainer EXECUTIVEM, 4
 	startbattle
 	returnafterbattle
 	setevent EVENT_BEAT_ROCKET_EXECUTIVEM_4
--- a/maps/TinTower1F.asm
+++ b/maps/TinTower1F.asm
@@ -124,7 +124,7 @@
 	applymovement TINTOWER1F_SUICUNE, MovementData_0x1851e4
 	cry SUICUNE
 	pause 20
-	scriptedpokedata SUICUNE, 40
+	loadwildmon SUICUNE, 40
 	writecode VAR_BATTLETYPE, BATTLETYPE_SUICUNE
 	startbattle
 	reloadmapmusic
@@ -170,7 +170,7 @@
 	playsound SFX_EXIT_BUILDING
 	disappear TINTOWER1F_SUPER_NERD
 	waitsfx
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	pause 20
 	playmapmusic
 	end
--- a/maps/TinTowerRoof.asm
+++ b/maps/TinTowerRoof.asm
@@ -36,7 +36,7 @@
 	closetext
 	setevent EVENT_FOUGHT_HO_OH
 	writecode VAR_BATTLETYPE, BATTLETYPE_FORCEITEM
-	scriptedpokedata HO_OH, 60
+	loadwildmon HO_OH, 60
 	startbattle
 	disappear TINTOWERROOF_HO_OH
 	returnafterbattle
--- a/maps/TrainerHouseB1F.asm
+++ b/maps/TrainerHouseB1F.asm
@@ -48,7 +48,7 @@
 	iffalse UnknownScript_0x9b3dc
 	winlosstext UnknownText_0x9b578, 0
 	setlasttalked $3
-	scriptedtrainerdata CAL, CAL2
+	loadtrainer CAL, CAL2
 	startbattle
 	returnafterbattle
 	iffalse UnknownScript_0x9b3e8
@@ -55,7 +55,7 @@
 UnknownScript_0x9b3dc:
 	winlosstext UnknownText_0x9b578, 0
 	setlasttalked $3
-	scriptedtrainerdata CAL, CAL3
+	loadtrainer CAL, CAL3
 	startbattle
 	returnafterbattle
 UnknownScript_0x9b3e8:
--- a/maps/UndergroundPathSwitchRoomEntrances.asm
+++ b/maps/UndergroundPathSwitchRoomEntrances.asm
@@ -93,7 +93,7 @@
 UnknownScript_0x7ca80:
 	spriteface PLAYER, RIGHT
 	showemote EMOTE_SHOCK, PLAYER, 15
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	pause 15
 	playsound SFX_EXIT_BUILDING
 	appear UNDERGROUNDPATHSWITCHROOMENTRANCES_SILVER
@@ -112,7 +112,7 @@
 UnknownScript_0x7caaa:
 	spriteface PLAYER, RIGHT
 	showemote EMOTE_SHOCK, PLAYER, 15
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	pause 15
 	playsound SFX_EXIT_BUILDING
 	appear UNDERGROUNDPATHSWITCHROOMENTRANCES_SILVER
@@ -146,7 +146,7 @@
 	iftrue UnknownScript_0x7cb19
 	winlosstext UnknownText_0x7cf5d, UnknownText_0x7d102
 	setlasttalked $c
-	scriptedtrainerdata RIVAL1, RIVAL1_12
+	loadtrainer RIVAL1, RIVAL1_12
 	startbattle
 	reloadmapmusic
 	returnafterbattle
@@ -155,7 +155,7 @@
 UnknownScript_0x7cb09:
 	winlosstext UnknownText_0x7cf5d, UnknownText_0x7d102
 	setlasttalked $c
-	scriptedtrainerdata RIVAL1, RIVAL1_10
+	loadtrainer RIVAL1, RIVAL1_10
 	startbattle
 	reloadmapmusic
 	returnafterbattle
@@ -164,7 +164,7 @@
 UnknownScript_0x7cb19:
 	winlosstext UnknownText_0x7cf5d, UnknownText_0x7d102
 	setlasttalked $c
-	scriptedtrainerdata RIVAL1, RIVAL1_11
+	loadtrainer RIVAL1, RIVAL1_11
 	startbattle
 	reloadmapmusic
 	returnafterbattle
--- a/maps/UnionCaveB2F.asm
+++ b/maps/UnionCaveB2F.asm
@@ -33,7 +33,7 @@
 SurfScript_0x5a31f:
 	faceplayer
 	cry LAPRAS
-	scriptedpokedata LAPRAS, 20
+	loadwildmon LAPRAS, 20
 	startbattle
 	disappear UNIONCAVEB2F_SURF
 	setflag ENGINE_UNION_CAVE_LAPRAS
--- a/maps/VermilionCity.asm
+++ b/maps/VermilionCity.asm
@@ -57,7 +57,7 @@
 	cry SNORLAX
 	closetext
 	writecode VAR_BATTLETYPE, BATTLETYPE_FORCEITEM
-	scriptedpokedata SNORLAX, 50
+	loadwildmon SNORLAX, 50
 	startbattle
 	disappear VERMILIONCITY_BIG_SNORLAX
 	setevent EVENT_FOUGHT_SNORLAX
--- a/maps/VermilionGym.asm
+++ b/maps/VermilionGym.asm
@@ -21,7 +21,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x192238, 0
-	scriptedtrainerdata LT_SURGE, 1
+	loadtrainer LT_SURGE, 1
 	startbattle
 	returnafterbattle
 	setevent EVENT_BEAT_LTSURGE
--- a/maps/VictoryRoad.asm
+++ b/maps/VictoryRoad.asm
@@ -27,7 +27,7 @@
 	moveperson VICTORYROAD_SILVER, $12, $b
 	spriteface PLAYER, DOWN
 	showemote EMOTE_SHOCK, PLAYER, 15
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	pause 15
 	appear VICTORYROAD_SILVER
 	applymovement VICTORYROAD_SILVER, MovementData_0x74539
@@ -41,7 +41,7 @@
 UnknownScript_0x744b5:
 	spriteface PLAYER, DOWN
 	showemote EMOTE_SHOCK, PLAYER, 15
-	special Special_RotatePalettesRightMusic
+	special Special_FadeOutMusic
 	pause 15
 	appear VICTORYROAD_SILVER
 	applymovement VICTORYROAD_SILVER, MovementData_0x74542
@@ -66,7 +66,7 @@
 	iftrue UnknownScript_0x7450f
 	winlosstext UnknownText_0x7463d, UnknownText_0x747aa
 	setlasttalked $2
-	scriptedtrainerdata RIVAL1, RIVAL1_15
+	loadtrainer RIVAL1, RIVAL1_15
 	startbattle
 	reloadmapmusic
 	returnafterbattle
@@ -75,7 +75,7 @@
 UnknownScript_0x744ff:
 	winlosstext UnknownText_0x7463d, UnknownText_0x747aa
 	setlasttalked $2
-	scriptedtrainerdata RIVAL1, RIVAL1_13
+	loadtrainer RIVAL1, RIVAL1_13
 	startbattle
 	reloadmapmusic
 	returnafterbattle
@@ -84,7 +84,7 @@
 UnknownScript_0x7450f:
 	winlosstext UnknownText_0x7463d, UnknownText_0x747aa
 	setlasttalked $2
-	scriptedtrainerdata RIVAL1, RIVAL1_14
+	loadtrainer RIVAL1, RIVAL1_14
 	startbattle
 	reloadmapmusic
 	returnafterbattle
--- a/maps/VioletGym.asm
+++ b/maps/VioletGym.asm
@@ -20,7 +20,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x6854a, 0
-	scriptedtrainerdata FALKNER, 1
+	loadtrainer FALKNER, 1
 	startbattle
 	returnafterbattle
 	setevent EVENT_BEAT_FALKNER
--- a/maps/ViridianGym.asm
+++ b/maps/ViridianGym.asm
@@ -18,7 +18,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x9abae, 0
-	scriptedtrainerdata BLUE, 1
+	loadtrainer BLUE, 1
 	startbattle
 	returnafterbattle
 	setevent EVENT_BEAT_BLUE
--- a/maps/WhirlIslandLugiaChamber.asm
+++ b/maps/WhirlIslandLugiaChamber.asm
@@ -36,7 +36,7 @@
 	closetext
 	setevent EVENT_FOUGHT_LUGIA
 	writecode VAR_BATTLETYPE, BATTLETYPE_FORCEITEM
-	scriptedpokedata LUGIA, 60
+	loadwildmon LUGIA, 60
 	startbattle
 	disappear WHIRLISLANDLUGIACHAMBER_LUGIA
 	returnafterbattle
--- a/maps/WillsRoom.asm
+++ b/maps/WillsRoom.asm
@@ -56,7 +56,7 @@
 	waitbutton
 	closetext
 	winlosstext UnknownText_0x18062c, 0
-	scriptedtrainerdata WILL, 1
+	loadtrainer WILL, 1
 	startbattle
 	returnafterbattle
 	setevent EVENT_BEAT_ELITE_4_WILL
--- a/misc/battle_tower_5c.asm
+++ b/misc/battle_tower_5c.asm
@@ -663,7 +663,7 @@
 	call FadeToMenu
 	call Bank5c_ClearJumptableRAM
 	call .JumptableLoop
-	call ReturnToCallingMenu
+	call CloseSubmenu
 	ret
 ; 1704f1
 
--- a/misc/fixed_words.asm
+++ b/misc/fixed_words.asm
@@ -306,7 +306,7 @@
 	call Decompress
 	call EnableLCD
 	callba ReloadMapPart
-	callba Function8cf53
+	callba ClearSpriteAnims
 	callba LoadPokemonData
 	callba Pokedex_ABCMode
 	ld a, [rSVBK]
@@ -367,7 +367,7 @@
 	jr .loop
 
 .exit
-	callba Function8cf53
+	callba ClearSpriteAnims
 	call ClearSprites
 	ret
 ; 11c2ac
--- a/misc/mobile_40.asm
+++ b/misc/mobile_40.asm
@@ -1674,7 +1674,7 @@
 	ld a, $ff
 	ld [wOtherPlayerLinkAction], a
 .waiting
-	call LinkCommunicationsSendReceive
+	call LinkTransfer
 	call DelayFrame
 	ld a, [wOtherPlayerLinkAction]
 	inc a
@@ -1683,7 +1683,7 @@
 	ld b, 10
 .receive
 	call DelayFrame
-	call LinkCommunicationsSendReceive
+	call LinkTransfer
 	dec b
 	jr nz, .receive
 
@@ -1690,7 +1690,7 @@
 	ld b, 10
 .acknowledge
 	call DelayFrame
-	call LinkCommunicationsSignalDataReceived
+	call LinkDataReceived
 	dec b
 	jr nz, .acknowledge
 
--- a/misc/mobile_42.asm
+++ b/misc/mobile_42.asm
@@ -151,7 +151,7 @@
 	ld [hWX], a
 	ld a, $90
 	ld [hWY], a
-	callba Function8cf53
+	callba ClearSpriteAnims
 	call DelayFrame
 	ld de, TradeBallGFX
 	ld hl, VTiles0
@@ -204,7 +204,7 @@
 	ld [hWX], a
 	ld a, $90
 	ld [hWY], a
-	callba Function8cf53
+	callba ClearSpriteAnims
 	xor a
 	ld hl, wc300
 	ld [hli], a
--- a/misc/mobile_45.asm
+++ b/misc/mobile_45.asm
@@ -7712,7 +7712,7 @@
 	call ClearSprites
 	callba Function171c87
 	callba ReloadMapPart
-	callba Function8cf53
+	callba ClearSpriteAnims
 	ret
 
 Function1176ee: ; 1176ee (45:76ee)
@@ -7725,7 +7725,7 @@
 	callba ReloadMapPart
 	jr Function1176ee
 .asm_117709
-	callba Function8cf53
+	callba ClearSpriteAnims
 	call ClearBGPalettes
 	call ClearScreen
 	call ClearSprites
--- a/misc/mobile_46.asm
+++ b/misc/mobile_46.asm
@@ -5846,9 +5846,9 @@
 Function11ac3e: ; 11ac3e
 	call SpeechTextBox
 	call FadeToMenu
-	callab ClearSpriteAnims
+	callab ClearSpriteAnims2
 	call Function11ac51
-	call ReturnToCallingMenu
+	call CloseSubmenu
 	ret
 ; 11ac51
 
@@ -7703,7 +7703,7 @@
 	ld [de], a
 
 .asm_11b872
-	call ReturnToCallingMenu
+	call CloseSubmenu
 	call RestartMapMusic
 	ret
 ; 11b879
--- a/misc/mobile_5c.asm
+++ b/misc/mobile_5c.asm
@@ -413,7 +413,7 @@
 	call ClearSprites
 	callba Function171d2b
 	callba ReloadMapPart
-	callba Function8cf53
+	callba ClearSpriteAnims
 	ret
 
 Function171a11: ; 171a11 (5c:5a11)
@@ -426,7 +426,7 @@
 	callba ReloadMapPart
 	jr Function171a11
 .asm_171a2c
-	callba Function8cf53
+	callba ClearSpriteAnims
 	call ClearSprites
 	ret
 
--- a/misc/mobile_5f.asm
+++ b/misc/mobile_5f.asm
@@ -326,7 +326,7 @@
 	ld [de], a
 
 .asm_17d180
-	call ReturnToCallingMenu
+	call CloseSubmenu
 	call RestartMapMusic
 	ret
 ; 17d187
@@ -564,7 +564,7 @@
 	ld [MusicFadeIDHi], a
 	call PlayMusic
 	call ReturnToMapFromSubmenu
-	call ReturnToCallingMenu
+	call CloseSubmenu
 	ret
 ; 17d314
 
--- a/sram.asm
+++ b/sram.asm
@@ -135,36 +135,13 @@
 sLinkBattleStatsEnd::
 
 sHallOfFame:: ; b2c0
-sHallOfFame01:: hall_of_fame sHallOfFame01
-sHallOfFame02:: hall_of_fame sHallOfFame02
-sHallOfFame03:: hall_of_fame sHallOfFame03
-sHallOfFame04:: hall_of_fame sHallOfFame04
-sHallOfFame05:: hall_of_fame sHallOfFame05
-sHallOfFame06:: hall_of_fame sHallOfFame06
-sHallOfFame07:: hall_of_fame sHallOfFame07
-sHallOfFame08:: hall_of_fame sHallOfFame08
-sHallOfFame09:: hall_of_fame sHallOfFame09
-sHallOfFame10:: hall_of_fame sHallOfFame10
-sHallOfFame11:: hall_of_fame sHallOfFame11
-sHallOfFame12:: hall_of_fame sHallOfFame12
-sHallOfFame13:: hall_of_fame sHallOfFame13
-sHallOfFame14:: hall_of_fame sHallOfFame14
-sHallOfFame15:: hall_of_fame sHallOfFame15
-sHallOfFame16:: hall_of_fame sHallOfFame16
-sHallOfFame17:: hall_of_fame sHallOfFame17
-sHallOfFame18:: hall_of_fame sHallOfFame18
-sHallOfFame19:: hall_of_fame sHallOfFame19
-sHallOfFame20:: hall_of_fame sHallOfFame20
-sHallOfFame21:: hall_of_fame sHallOfFame21
-sHallOfFame22:: hall_of_fame sHallOfFame22
-sHallOfFame23:: hall_of_fame sHallOfFame23
-sHallOfFame24:: hall_of_fame sHallOfFame24
-sHallOfFame25:: hall_of_fame sHallOfFame25
-sHallOfFame26:: hall_of_fame sHallOfFame26
-sHallOfFame27:: hall_of_fame sHallOfFame27
-sHallOfFame28:: hall_of_fame sHallOfFame28
-sHallOfFame29:: hall_of_fame sHallOfFame29
-sHallOfFame30:: hall_of_fame sHallOfFame30
+rept NUM_HOF_TEAMS
+IF STRLEN("test\@") == 6
+sHallOfFame\@:: hall_of_fame sHallOfFame\@
+ELSE
+sHallOfFame0\@:: hall_of_fame sHallOfFame0\@
+ENDC
+endr
 sHallOfFameEnd::
 
 sMobileEventIndex:: ds 1
--- a/wram.asm
+++ b/wram.asm
@@ -2237,11 +2237,7 @@
 	ds 2
 
 wScriptStackSize:: ds 1
-wScriptStackBA1:: ds 3
-wScriptStackBA2:: ds 3
-wScriptStackBA3:: ds 3
-wScriptStackBA4:: ds 3
-wScriptStackBA5:: ds 3
+wScriptStack:: ds 3 * 5
 	ds 1
 ScriptDelay:: ; d44d
 	ds 1