shithub: pokecrystal

Download patch

ref: 63798d56d05cf87ada77bd26727ea7725630b0b2
parent: 624864307e4e7a5055c01d7f06145feec35527a7
parent: 0345e4fb0e3f39a038e9eced72380a5a1ab6694f
author: Rangi <35663410+Rangi42@users.noreply.github.com>
date: Mon Mar 23 17:05:39 EDT 2020

Merge pull request #699 from Rangi42/master

Resolve some miscellaneous issues

--- a/audio/engine.asm
+++ b/audio/engine.asm
@@ -1294,7 +1294,7 @@
 ; load ptr to sample header in wNoiseSampleAddress
 	; are we on the last channel?
 	ld a, [wCurChannel]
-	and NUM_MUSIC_CHANS + -1
+	and NUM_MUSIC_CHANS - 1
 	cp CHAN4
 	; ret if not
 	ret nz
--- a/constants/battle_constants.asm
+++ b/constants/battle_constants.asm
@@ -61,10 +61,10 @@
 	const STAT_DEF
 	const STAT_SPD
 	const STAT_SATK
-NUM_EXP_STATS EQU const_value + -1
+NUM_EXP_STATS EQU const_value - 1
 	const STAT_SDEF
-NUM_STATS EQU const_value + -1
-NUM_BATTLE_STATS EQU NUM_STATS + -1 ; don't count HP
+NUM_STATS EQU const_value - 1
+NUM_BATTLE_STATS EQU NUM_STATS - 1 ; don't count HP
 
 ; stat formula constants
 STAT_MIN_NORMAL EQU 5
--- a/constants/deco_constants.asm
+++ b/constants/deco_constants.asm
@@ -13,7 +13,7 @@
 	const MAGNAPLANT
 	const TROPICPLANT
 	const JUMBOPLANT
-	const TOWN_MAP_D
+	const TOWN_MAP_POSTER
 	const FAMICOM
 	const SUPER_NES
 	const NINTENDO_64
--- a/constants/event_flags.asm
+++ b/constants/event_flags.asm
@@ -701,10 +701,10 @@
 	const EVENT_DECO_PLANT_1
 	const EVENT_DECO_PLANT_2
 	const EVENT_DECO_PLANT_3
-	const EVENT_DECO_PLANT_4
-	const EVENT_DECO_POSTER_1 ; 2b0
-	const EVENT_DECO_POSTER_2
+	const EVENT_DECO_POSTER_1
+	const EVENT_DECO_POSTER_2 ; 2b0
 	const EVENT_DECO_POSTER_3
+	const EVENT_DECO_POSTER_4
 	const EVENT_DECO_FAMICOM
 	const EVENT_DECO_SNES
 	const EVENT_DECO_N64
--- a/constants/item_constants.asm
+++ b/constants/item_constants.asm
@@ -103,7 +103,7 @@
 	const MYSTIC_WATER ; 5f
 	const TWISTEDSPOON ; 60
 	const WHT_APRICORN ; 61
-	const BLACKBELT    ; 62
+	const BLACKBELT_I  ; 62
 	const BLK_APRICORN ; 63
 	const ITEM_64      ; 64
 	const PNK_APRICORN ; 65
@@ -287,7 +287,7 @@
 	add_mt FLAMETHROWER
 	add_mt THUNDERBOLT
 	add_mt ICE_BEAM
-NUM_TM_HM_TUTOR EQU __enum__ + -1
+NUM_TM_HM_TUTOR EQU __enum__ - 1
 
 	const ITEM_FA       ; fa
 
--- a/constants/move_constants.asm
+++ b/constants/move_constants.asm
@@ -257,7 +257,7 @@
 	const ROCK_SMASH   ; f9
 	const WHIRLPOOL    ; fa
 	const BEAT_UP      ; fb
-NUM_ATTACKS EQU const_value + -1
+NUM_ATTACKS EQU const_value - 1
 
 	const MOVE_OR_ANIM_FC ; fc
 	const MOVE_OR_ANIM_FD ; fd
--- a/constants/pokemon_constants.asm
+++ b/constants/pokemon_constants.asm
@@ -271,7 +271,7 @@
 	const LUGIA      ; f9
 	const HO_OH      ; fa
 	const CELEBI     ; fb
-NUM_POKEMON EQU const_value + -1
+NUM_POKEMON EQU const_value - 1
 	const MON_FC     ; fc
 	const EGG        ; fd
 	const MON_FE     ; fe
@@ -311,4 +311,4 @@
 	const UNOWN_X ; 24
 	const UNOWN_Y ; 25
 	const UNOWN_Z ; 26
-NUM_UNOWN EQU const_value + -1 ; 26
+NUM_UNOWN EQU const_value - 1 ; 26
--- a/constants/pokemon_data_constants.asm
+++ b/constants/pokemon_data_constants.asm
@@ -124,7 +124,7 @@
 NUM_BOXES    EQU 14
 
 ; hall of fame
-HOF_MON_LENGTH EQU 1 + 2 + 2 + 1 + (MON_NAME_LENGTH + -1) ; species, id, dvs, level, nick
+HOF_MON_LENGTH EQU 1 + 2 + 2 + 1 + (MON_NAME_LENGTH - 1) ; species, id, dvs, level, nick
 HOF_LENGTH EQU 1 + HOF_MON_LENGTH * PARTY_LENGTH + 1 ; win count, party, terminator
 NUM_HOF_TEAMS EQU 30
 
--- a/constants/script_constants.asm
+++ b/constants/script_constants.asm
@@ -224,7 +224,7 @@
 	const FRUITTREE_PEWTER_CITY_1 ; 1c
 	const FRUITTREE_PEWTER_CITY_2 ; 1d
 	const FRUITTREE_FUCHSIA_CITY  ; 1e
-NUM_FRUIT_TREES EQU const_value + -1
+NUM_FRUIT_TREES EQU const_value - 1
 
 ; describedecoration arguments
 ; DescribeDecoration.JumpTable indexes (see engine/overworld/decorations.asm)
--- a/constants/type_constants.asm
+++ b/constants/type_constants.asm
@@ -28,7 +28,7 @@
 	const TYPE_16
 	const TYPE_17
 	const TYPE_18
-	const CURSE_T
+	const CURSE_TYPE
 UNUSED_TYPES_END EQU const_value
 
 SPECIAL EQU const_value
@@ -36,7 +36,7 @@
 	const WATER
 	const GRASS
 	const ELECTRIC
-	const PSYCHIC
+	const PSYCHIC_TYPE
 	const ICE
 	const DRAGON
 	const DARK
--- a/data/decorations/attributes.asm
+++ b/data/decorations/attributes.asm
@@ -7,56 +7,56 @@
 
 DecorationAttributes:
 ; entries correspond to deco constants
-	decoration DECO_PLANT,   $00,            $0,                EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1,       $00
-	decoration DECO_PLANT,   PUT_IT_AWAY,    PUT_AWAY_BED,      EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1,       $00
-	decoration DECO_BED,     FEATHERY_BED,   SET_UP_BED,        EVENT_DECO_BED_1,                $1b
-	decoration DECO_BED,     PINK_BED,       SET_UP_BED,        EVENT_DECO_BED_2,                $1c
-	decoration DECO_BED,     POLKADOT_BED,   SET_UP_BED,        EVENT_DECO_BED_3,                $1d
-	decoration DECO_BED,     PIKACHU_BED,    SET_UP_BED,        EVENT_DECO_BED_4,                $1e
-	decoration DECO_PLANT,   PUT_IT_AWAY,    PUT_AWAY_CARPET,   EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1,       $00
-	decoration DECO_CARPET,  RED_CARPET,     SET_UP_CARPET,     EVENT_DECO_CARPET_1,             $08
-	decoration DECO_CARPET,  BLUE_CARPET,    SET_UP_CARPET,     EVENT_DECO_CARPET_2,             $0b
-	decoration DECO_CARPET,  YELLOW_CARPET,  SET_UP_CARPET,     EVENT_DECO_CARPET_3,             $0e
-	decoration DECO_CARPET,  GREEN_CARPET,   SET_UP_CARPET,     EVENT_DECO_CARPET_4,             $11
-	decoration DECO_PLANT,   PUT_IT_AWAY,    PUT_AWAY_PLANT,    EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1,       $00
-	decoration DECO_PLANT,   MAGNAPLANT,     SET_UP_PLANT,      EVENT_DECO_PLANT_1,              $20
-	decoration DECO_PLANT,   TROPICPLANT,    SET_UP_PLANT,      EVENT_DECO_PLANT_2,              $21
-	decoration DECO_PLANT,   JUMBOPLANT,     SET_UP_PLANT,      EVENT_DECO_PLANT_3,              $22
-	decoration DECO_PLANT,   PUT_IT_AWAY,    PUT_AWAY_POSTER,   EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1,       $00
-	decoration DECO_PLANT,   TOWN_MAP_D,     SET_UP_POSTER,     EVENT_DECO_PLANT_4,              $1f
-	decoration DECO_POSTER,  PIKACHU,        SET_UP_POSTER,     EVENT_DECO_POSTER_1,             $23
-	decoration DECO_POSTER,  CLEFAIRY,       SET_UP_POSTER,     EVENT_DECO_POSTER_2,             $24
-	decoration DECO_POSTER,  JIGGLYPUFF,     SET_UP_POSTER,     EVENT_DECO_POSTER_3,             $25
-	decoration DECO_PLANT,   PUT_IT_AWAY,    PUT_AWAY_CONSOLE,  EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1,       $00
-	decoration DECO_PLANT,   FAMICOM,        SET_UP_CONSOLE,    EVENT_DECO_FAMICOM,              SPRITE_FAMICOM
-	decoration DECO_PLANT,   SUPER_NES,      SET_UP_CONSOLE,    EVENT_DECO_SNES,                 SPRITE_SNES
-	decoration DECO_PLANT,   NINTENDO_64,    SET_UP_CONSOLE,    EVENT_DECO_N64,                  SPRITE_N64
-	decoration DECO_PLANT,   VIRTUAL_BOY,    SET_UP_CONSOLE,    EVENT_DECO_VIRTUAL_BOY,          SPRITE_VIRTUAL_BOY
-	decoration DECO_PLANT,   PUT_IT_AWAY,    PUT_AWAY_BIG_DOLL, EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1,       $00
-	decoration DECO_BIGDOLL, SNORLAX,        SET_UP_BIG_DOLL,   EVENT_DECO_BIG_SNORLAX_DOLL,     SPRITE_BIG_SNORLAX
-	decoration DECO_BIGDOLL, ONIX,           SET_UP_BIG_DOLL,   EVENT_DECO_BIG_ONIX_DOLL,        SPRITE_BIG_ONIX
-	decoration DECO_BIGDOLL, LAPRAS,         SET_UP_BIG_DOLL,   EVENT_DECO_BIG_LAPRAS_DOLL,      SPRITE_BIG_LAPRAS
-	decoration DECO_PLANT,   PUT_IT_AWAY,    PUT_AWAY_DOLL,     EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1,       $00
-	decoration DECO_DOLL,    PIKACHU,        SET_UP_DOLL,       EVENT_DECO_PIKACHU_DOLL,         SPRITE_PIKACHU
-	decoration DECO_PLANT,   SURF_PIKA_DOLL, SET_UP_DOLL,       EVENT_DECO_SURFING_PIKACHU_DOLL, SPRITE_SURFING_PIKACHU
-	decoration DECO_DOLL,    CLEFAIRY,       SET_UP_DOLL,       EVENT_DECO_CLEFAIRY_DOLL,        SPRITE_CLEFAIRY
-	decoration DECO_DOLL,    JIGGLYPUFF,     SET_UP_DOLL,       EVENT_DECO_JIGGLYPUFF_DOLL,      SPRITE_JIGGLYPUFF
-	decoration DECO_DOLL,    BULBASAUR,      SET_UP_DOLL,       EVENT_DECO_BULBASAUR_DOLL,       SPRITE_BULBASAUR
-	decoration DECO_DOLL,    CHARMANDER,     SET_UP_DOLL,       EVENT_DECO_CHARMANDER_DOLL,      SPRITE_CHARMANDER
-	decoration DECO_DOLL,    SQUIRTLE,       SET_UP_DOLL,       EVENT_DECO_SQUIRTLE_DOLL,        SPRITE_SQUIRTLE
-	decoration DECO_DOLL,    POLIWAG,        SET_UP_DOLL,       EVENT_DECO_POLIWAG_DOLL,         SPRITE_POLIWAG
-	decoration DECO_DOLL,    DIGLETT,        SET_UP_DOLL,       EVENT_DECO_DIGLETT_DOLL,         SPRITE_DIGLETT
-	decoration DECO_DOLL,    STARYU,         SET_UP_DOLL,       EVENT_DECO_STARMIE_DOLL,         SPRITE_STARMIE
-	decoration DECO_DOLL,    MAGIKARP,       SET_UP_DOLL,       EVENT_DECO_MAGIKARP_DOLL,        SPRITE_MAGIKARP
-	decoration DECO_DOLL,    ODDISH,         SET_UP_DOLL,       EVENT_DECO_ODDISH_DOLL,          SPRITE_ODDISH
-	decoration DECO_DOLL,    GENGAR,         SET_UP_DOLL,       EVENT_DECO_GENGAR_DOLL,          SPRITE_GENGAR
-	decoration DECO_DOLL,    SHELLDER,       SET_UP_DOLL,       EVENT_DECO_SHELLDER_DOLL,        SPRITE_SHELLDER
-	decoration DECO_DOLL,    GRIMER,         SET_UP_DOLL,       EVENT_DECO_GRIMER_DOLL,          SPRITE_GRIMER
-	decoration DECO_DOLL,    VOLTORB,        SET_UP_DOLL,       EVENT_DECO_VOLTORB_DOLL,         SPRITE_VOLTORB
-	decoration DECO_DOLL,    WEEDLE,         SET_UP_DOLL,       EVENT_DECO_WEEDLE_DOLL,          SPRITE_WEEDLE
-	decoration DECO_DOLL,    UNOWN,          SET_UP_DOLL,       EVENT_DECO_UNOWN_DOLL,           SPRITE_UNOWN
-	decoration DECO_DOLL,    GEODUDE,        SET_UP_DOLL,       EVENT_DECO_GEODUDE_DOLL,         SPRITE_GEODUDE
-	decoration DECO_DOLL,    MACHOP,         SET_UP_DOLL,       EVENT_DECO_MACHOP_DOLL,          SPRITE_MACHOP
-	decoration DECO_DOLL,    TENTACOOL,      SET_UP_DOLL,       EVENT_DECO_TENTACOOL_DOLL,       SPRITE_TENTACOOL
-	decoration DECO_PLANT,   GOLD_TROPHY,    SET_UP_DOLL,       EVENT_DECO_GOLD_TROPHY,          SPRITE_GOLD_TROPHY
-	decoration DECO_PLANT,   SILVER_TROPHY,  SET_UP_DOLL,       EVENT_DECO_SILVER_TROPHY,        SPRITE_SILVER_TROPHY
+	decoration DECO_PLANT,   0,               0,                 EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1, 0
+	decoration DECO_PLANT,   PUT_IT_AWAY,     PUT_AWAY_BED,      EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1, 0
+	decoration DECO_BED,     FEATHERY_BED,    SET_UP_BED,        EVENT_DECO_BED_1,                   $1b
+	decoration DECO_BED,     PINK_BED,        SET_UP_BED,        EVENT_DECO_BED_2,                   $1c
+	decoration DECO_BED,     POLKADOT_BED,    SET_UP_BED,        EVENT_DECO_BED_3,                   $1d
+	decoration DECO_BED,     PIKACHU_BED,     SET_UP_BED,        EVENT_DECO_BED_4,                   $1e
+	decoration DECO_PLANT,   PUT_IT_AWAY,     PUT_AWAY_CARPET,   EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1, 0
+	decoration DECO_CARPET,  RED_CARPET,      SET_UP_CARPET,     EVENT_DECO_CARPET_1,                $08
+	decoration DECO_CARPET,  BLUE_CARPET,     SET_UP_CARPET,     EVENT_DECO_CARPET_2,                $0b
+	decoration DECO_CARPET,  YELLOW_CARPET,   SET_UP_CARPET,     EVENT_DECO_CARPET_3,                $0e
+	decoration DECO_CARPET,  GREEN_CARPET,    SET_UP_CARPET,     EVENT_DECO_CARPET_4,                $11
+	decoration DECO_PLANT,   PUT_IT_AWAY,     PUT_AWAY_PLANT,    EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1, 0
+	decoration DECO_PLANT,   MAGNAPLANT,      SET_UP_PLANT,      EVENT_DECO_PLANT_1,                 $20
+	decoration DECO_PLANT,   TROPICPLANT,     SET_UP_PLANT,      EVENT_DECO_PLANT_2,                 $21
+	decoration DECO_PLANT,   JUMBOPLANT,      SET_UP_PLANT,      EVENT_DECO_PLANT_3,                 $22
+	decoration DECO_PLANT,   PUT_IT_AWAY,     PUT_AWAY_POSTER,   EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1, 0
+	decoration DECO_PLANT,   TOWN_MAP_POSTER, SET_UP_POSTER,     EVENT_DECO_POSTER_1,                $1f
+	decoration DECO_POSTER,  PIKACHU,         SET_UP_POSTER,     EVENT_DECO_POSTER_2,                $23
+	decoration DECO_POSTER,  CLEFAIRY,        SET_UP_POSTER,     EVENT_DECO_POSTER_3,                $24
+	decoration DECO_POSTER,  JIGGLYPUFF,      SET_UP_POSTER,     EVENT_DECO_POSTER_4,                $25
+	decoration DECO_PLANT,   PUT_IT_AWAY,     PUT_AWAY_CONSOLE,  EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1, 0
+	decoration DECO_PLANT,   FAMICOM,         SET_UP_CONSOLE,    EVENT_DECO_FAMICOM,                 SPRITE_FAMICOM
+	decoration DECO_PLANT,   SUPER_NES,       SET_UP_CONSOLE,    EVENT_DECO_SNES,                    SPRITE_SNES
+	decoration DECO_PLANT,   NINTENDO_64,     SET_UP_CONSOLE,    EVENT_DECO_N64,                     SPRITE_N64
+	decoration DECO_PLANT,   VIRTUAL_BOY,     SET_UP_CONSOLE,    EVENT_DECO_VIRTUAL_BOY,             SPRITE_VIRTUAL_BOY
+	decoration DECO_PLANT,   PUT_IT_AWAY,     PUT_AWAY_BIG_DOLL, EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1, 0
+	decoration DECO_BIGDOLL, SNORLAX,         SET_UP_BIG_DOLL,   EVENT_DECO_BIG_SNORLAX_DOLL,        SPRITE_BIG_SNORLAX
+	decoration DECO_BIGDOLL, ONIX,            SET_UP_BIG_DOLL,   EVENT_DECO_BIG_ONIX_DOLL,           SPRITE_BIG_ONIX
+	decoration DECO_BIGDOLL, LAPRAS,          SET_UP_BIG_DOLL,   EVENT_DECO_BIG_LAPRAS_DOLL,         SPRITE_BIG_LAPRAS
+	decoration DECO_PLANT,   PUT_IT_AWAY,     PUT_AWAY_DOLL,     EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1, 0
+	decoration DECO_DOLL,    PIKACHU,         SET_UP_DOLL,       EVENT_DECO_PIKACHU_DOLL,            SPRITE_PIKACHU
+	decoration DECO_PLANT,   SURF_PIKA_DOLL,  SET_UP_DOLL,       EVENT_DECO_SURFING_PIKACHU_DOLL,    SPRITE_SURFING_PIKACHU
+	decoration DECO_DOLL,    CLEFAIRY,        SET_UP_DOLL,       EVENT_DECO_CLEFAIRY_DOLL,           SPRITE_CLEFAIRY
+	decoration DECO_DOLL,    JIGGLYPUFF,      SET_UP_DOLL,       EVENT_DECO_JIGGLYPUFF_DOLL,         SPRITE_JIGGLYPUFF
+	decoration DECO_DOLL,    BULBASAUR,       SET_UP_DOLL,       EVENT_DECO_BULBASAUR_DOLL,          SPRITE_BULBASAUR
+	decoration DECO_DOLL,    CHARMANDER,      SET_UP_DOLL,       EVENT_DECO_CHARMANDER_DOLL,         SPRITE_CHARMANDER
+	decoration DECO_DOLL,    SQUIRTLE,        SET_UP_DOLL,       EVENT_DECO_SQUIRTLE_DOLL,           SPRITE_SQUIRTLE
+	decoration DECO_DOLL,    POLIWAG,         SET_UP_DOLL,       EVENT_DECO_POLIWAG_DOLL,            SPRITE_POLIWAG
+	decoration DECO_DOLL,    DIGLETT,         SET_UP_DOLL,       EVENT_DECO_DIGLETT_DOLL,            SPRITE_DIGLETT
+	decoration DECO_DOLL,    STARYU,          SET_UP_DOLL,       EVENT_DECO_STARMIE_DOLL,            SPRITE_STARMIE
+	decoration DECO_DOLL,    MAGIKARP,        SET_UP_DOLL,       EVENT_DECO_MAGIKARP_DOLL,           SPRITE_MAGIKARP
+	decoration DECO_DOLL,    ODDISH,          SET_UP_DOLL,       EVENT_DECO_ODDISH_DOLL,             SPRITE_ODDISH
+	decoration DECO_DOLL,    GENGAR,          SET_UP_DOLL,       EVENT_DECO_GENGAR_DOLL,             SPRITE_GENGAR
+	decoration DECO_DOLL,    SHELLDER,        SET_UP_DOLL,       EVENT_DECO_SHELLDER_DOLL,           SPRITE_SHELLDER
+	decoration DECO_DOLL,    GRIMER,          SET_UP_DOLL,       EVENT_DECO_GRIMER_DOLL,             SPRITE_GRIMER
+	decoration DECO_DOLL,    VOLTORB,         SET_UP_DOLL,       EVENT_DECO_VOLTORB_DOLL,            SPRITE_VOLTORB
+	decoration DECO_DOLL,    WEEDLE,          SET_UP_DOLL,       EVENT_DECO_WEEDLE_DOLL,             SPRITE_WEEDLE
+	decoration DECO_DOLL,    UNOWN,           SET_UP_DOLL,       EVENT_DECO_UNOWN_DOLL,              SPRITE_UNOWN
+	decoration DECO_DOLL,    GEODUDE,         SET_UP_DOLL,       EVENT_DECO_GEODUDE_DOLL,            SPRITE_GEODUDE
+	decoration DECO_DOLL,    MACHOP,          SET_UP_DOLL,       EVENT_DECO_MACHOP_DOLL,             SPRITE_MACHOP
+	decoration DECO_DOLL,    TENTACOOL,       SET_UP_DOLL,       EVENT_DECO_TENTACOOL_DOLL,          SPRITE_TENTACOOL
+	decoration DECO_PLANT,   GOLD_TROPHY,     SET_UP_DOLL,       EVENT_DECO_GOLD_TROPHY,             SPRITE_GOLD_TROPHY
+	decoration DECO_PLANT,   SILVER_TROPHY,   SET_UP_DOLL,       EVENT_DECO_SILVER_TROPHY,           SPRITE_SILVER_TROPHY
--- a/data/items/attributes.asm
+++ b/data/items/attributes.asm
@@ -201,7 +201,7 @@
 	item_attribute 100, HELD_PSYCHIC_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; WHT_APRICORN
 	item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BLACKBELT
+; BLACKBELT_I
 	item_attribute 100, HELD_FIGHTING_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; BLK_APRICORN
 	item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
--- a/data/items/descriptions.asm
+++ b/data/items/descriptions.asm
@@ -188,7 +188,7 @@
 	dw MorphMailDesc
 	dw BlueSkyMailDesc
 	dw MusicMailDesc
-	dw MewMailDesc
+	dw MirageMailDesc
 	dw TeruSama25Desc
 	dw TeruSama26Desc
 	dw TeruSama26Desc
@@ -978,7 +978,7 @@
 	db   "NATU-print MAIL."
 	next "(HOLD)@"
 
-MewMailDesc:
+MirageMailDesc:
 	db   "MEW-print MAIL."
 	next "(HOLD)@"
 
--- a/data/maps/attributes.asm
+++ b/data/maps/attributes.asm
@@ -38,7 +38,7 @@
 endc
 
 if "\1" == "north"
-_blk = \3_WIDTH * (\3_HEIGHT + -3) + _src
+_blk = \3_WIDTH * (\3_HEIGHT - 3) + _src
 _map = _tgt
 _win = (\3_WIDTH + 6) * \3_HEIGHT + 1
 _y = \3_HEIGHT * 2 - 1
@@ -60,9 +60,9 @@
 endc
 
 elif "\1" == "west"
-_blk = (\3_WIDTH * _src) + \3_WIDTH + -3
+_blk = (\3_WIDTH * _src) + \3_WIDTH - 3
 _map = (CURRENT_MAP_WIDTH + 6) * _tgt
-_win = (\3_WIDTH + 6) * 2 + -6
+_win = (\3_WIDTH + 6) * 2 - 6
 _y = (\4) * -2
 _x = \3_WIDTH * 2 - 1
 _len = CURRENT_MAP_HEIGHT + 3 - (\4)
--- a/data/moves/moves.asm
+++ b/data/moves/moves.asm
@@ -12,254 +12,254 @@
 
 Moves:
 ; entries correspond to constants/move_constants.asm
-	move POUND,        EFFECT_NORMAL_HIT,         40, NORMAL,   100, 35,   0
-	move KARATE_CHOP,  EFFECT_NORMAL_HIT,         50, FIGHTING, 100, 25,   0
-	move DOUBLESLAP,   EFFECT_MULTI_HIT,          15, NORMAL,    85, 10,   0
-	move COMET_PUNCH,  EFFECT_MULTI_HIT,          18, NORMAL,    85, 15,   0
-	move MEGA_PUNCH,   EFFECT_NORMAL_HIT,         80, NORMAL,    85, 20,   0
-	move PAY_DAY,      EFFECT_PAY_DAY,            40, NORMAL,   100, 20,   0
-	move FIRE_PUNCH,   EFFECT_BURN_HIT,           75, FIRE,     100, 15,  10
-	move ICE_PUNCH,    EFFECT_FREEZE_HIT,         75, ICE,      100, 15,  10
-	move THUNDERPUNCH, EFFECT_PARALYZE_HIT,       75, ELECTRIC, 100, 15,  10
-	move SCRATCH,      EFFECT_NORMAL_HIT,         40, NORMAL,   100, 35,   0
-	move VICEGRIP,     EFFECT_NORMAL_HIT,         55, NORMAL,   100, 30,   0
-	move GUILLOTINE,   EFFECT_OHKO,                0, NORMAL,    30,  5,   0
-	move RAZOR_WIND,   EFFECT_RAZOR_WIND,         80, NORMAL,    75, 10,   0
-	move SWORDS_DANCE, EFFECT_ATTACK_UP_2,         0, NORMAL,   100, 30,   0
-	move CUT,          EFFECT_NORMAL_HIT,         50, NORMAL,    95, 30,   0
-	move GUST,         EFFECT_GUST,               40, FLYING,   100, 35,   0
-	move WING_ATTACK,  EFFECT_NORMAL_HIT,         60, FLYING,   100, 35,   0
-	move WHIRLWIND,    EFFECT_FORCE_SWITCH,        0, NORMAL,   100, 20,   0
-	move FLY,          EFFECT_FLY,                70, FLYING,    95, 15,   0
-	move BIND,         EFFECT_TRAP_TARGET,        15, NORMAL,    75, 20,   0
-	move SLAM,         EFFECT_NORMAL_HIT,         80, NORMAL,    75, 20,   0
-	move VINE_WHIP,    EFFECT_NORMAL_HIT,         35, GRASS,    100, 10,   0
-	move STOMP,        EFFECT_STOMP,              65, NORMAL,   100, 20,  30
-	move DOUBLE_KICK,  EFFECT_DOUBLE_HIT,         30, FIGHTING, 100, 30,   0
-	move MEGA_KICK,    EFFECT_NORMAL_HIT,        120, NORMAL,    75,  5,   0
-	move JUMP_KICK,    EFFECT_JUMP_KICK,          70, FIGHTING,  95, 25,   0
-	move ROLLING_KICK, EFFECT_FLINCH_HIT,         60, FIGHTING,  85, 15,  30
-	move SAND_ATTACK,  EFFECT_ACCURACY_DOWN,       0, GROUND,   100, 15,   0
-	move HEADBUTT,     EFFECT_FLINCH_HIT,         70, NORMAL,   100, 15,  30
-	move HORN_ATTACK,  EFFECT_NORMAL_HIT,         65, NORMAL,   100, 25,   0
-	move FURY_ATTACK,  EFFECT_MULTI_HIT,          15, NORMAL,    85, 20,   0
-	move HORN_DRILL,   EFFECT_OHKO,                1, NORMAL,    30,  5,   0
-	move TACKLE,       EFFECT_NORMAL_HIT,         35, NORMAL,    95, 35,   0
-	move BODY_SLAM,    EFFECT_PARALYZE_HIT,       85, NORMAL,   100, 15,  30
-	move WRAP,         EFFECT_TRAP_TARGET,        15, NORMAL,    85, 20,   0
-	move TAKE_DOWN,    EFFECT_RECOIL_HIT,         90, NORMAL,    85, 20,   0
-	move THRASH,       EFFECT_RAMPAGE,            90, NORMAL,   100, 20,   0
-	move DOUBLE_EDGE,  EFFECT_RECOIL_HIT,        120, NORMAL,   100, 15,   0
-	move TAIL_WHIP,    EFFECT_DEFENSE_DOWN,        0, NORMAL,   100, 30,   0
-	move POISON_STING, EFFECT_POISON_HIT,         15, POISON,   100, 35,  30
-	move TWINEEDLE,    EFFECT_POISON_MULTI_HIT,   25, BUG,      100, 20,  20
-	move PIN_MISSILE,  EFFECT_MULTI_HIT,          14, BUG,       85, 20,   0
-	move LEER,         EFFECT_DEFENSE_DOWN,        0, NORMAL,   100, 30,   0
-	move BITE,         EFFECT_FLINCH_HIT,         60, DARK,     100, 25,  30
-	move GROWL,        EFFECT_ATTACK_DOWN,         0, NORMAL,   100, 40,   0
-	move ROAR,         EFFECT_FORCE_SWITCH,        0, NORMAL,   100, 20,   0
-	move SING,         EFFECT_SLEEP,               0, NORMAL,    55, 15,   0
-	move SUPERSONIC,   EFFECT_CONFUSE,             0, NORMAL,    55, 20,   0
-	move SONICBOOM,    EFFECT_STATIC_DAMAGE,      20, NORMAL,    90, 20,   0
-	move DISABLE,      EFFECT_DISABLE,             0, NORMAL,    55, 20,   0
-	move ACID,         EFFECT_DEFENSE_DOWN_HIT,   40, POISON,   100, 30,  10
-	move EMBER,        EFFECT_BURN_HIT,           40, FIRE,     100, 25,  10
-	move FLAMETHROWER, EFFECT_BURN_HIT,           95, FIRE,     100, 15,  10
-	move MIST,         EFFECT_MIST,                0, ICE,      100, 30,   0
-	move WATER_GUN,    EFFECT_NORMAL_HIT,         40, WATER,    100, 25,   0
-	move HYDRO_PUMP,   EFFECT_NORMAL_HIT,        120, WATER,     80,  5,   0
-	move SURF,         EFFECT_NORMAL_HIT,         95, WATER,    100, 15,   0
-	move ICE_BEAM,     EFFECT_FREEZE_HIT,         95, ICE,      100, 10,  10
-	move BLIZZARD,     EFFECT_FREEZE_HIT,        120, ICE,       70,  5,  10
-	move PSYBEAM,      EFFECT_CONFUSE_HIT,        65, PSYCHIC,  100, 20,  10
-	move BUBBLEBEAM,   EFFECT_SPEED_DOWN_HIT,     65, WATER,    100, 20,  10
-	move AURORA_BEAM,  EFFECT_ATTACK_DOWN_HIT,    65, ICE,      100, 20,  10
-	move HYPER_BEAM,   EFFECT_HYPER_BEAM,        150, NORMAL,    90,  5,   0
-	move PECK,         EFFECT_NORMAL_HIT,         35, FLYING,   100, 35,   0
-	move DRILL_PECK,   EFFECT_NORMAL_HIT,         80, FLYING,   100, 20,   0
-	move SUBMISSION,   EFFECT_RECOIL_HIT,         80, FIGHTING,  80, 25,   0
-	move LOW_KICK,     EFFECT_FLINCH_HIT,         50, FIGHTING,  90, 20,  30
-	move COUNTER,      EFFECT_COUNTER,             1, FIGHTING, 100, 20,   0
-	move SEISMIC_TOSS, EFFECT_LEVEL_DAMAGE,        1, FIGHTING, 100, 20,   0
-	move STRENGTH,     EFFECT_NORMAL_HIT,         80, NORMAL,   100, 15,   0
-	move ABSORB,       EFFECT_LEECH_HIT,          20, GRASS,    100, 20,   0
-	move MEGA_DRAIN,   EFFECT_LEECH_HIT,          40, GRASS,    100, 10,   0
-	move LEECH_SEED,   EFFECT_LEECH_SEED,          0, GRASS,     90, 10,   0
-	move GROWTH,       EFFECT_SP_ATK_UP,           0, NORMAL,   100, 40,   0
-	move RAZOR_LEAF,   EFFECT_NORMAL_HIT,         55, GRASS,     95, 25,   0
-	move SOLARBEAM,    EFFECT_SOLARBEAM,         120, GRASS,    100, 10,   0
-	move POISONPOWDER, EFFECT_POISON,              0, POISON,    75, 35,   0
-	move STUN_SPORE,   EFFECT_PARALYZE,            0, GRASS,     75, 30,   0
-	move SLEEP_POWDER, EFFECT_SLEEP,               0, GRASS,     75, 15,   0
-	move PETAL_DANCE,  EFFECT_RAMPAGE,            70, GRASS,    100, 20,   0
-	move STRING_SHOT,  EFFECT_SPEED_DOWN,          0, BUG,       95, 40,   0
-	move DRAGON_RAGE,  EFFECT_STATIC_DAMAGE,      40, DRAGON,   100, 10,   0
-	move FIRE_SPIN,    EFFECT_TRAP_TARGET,        15, FIRE,      70, 15,   0
-	move THUNDERSHOCK, EFFECT_PARALYZE_HIT,       40, ELECTRIC, 100, 30,  10
-	move THUNDERBOLT,  EFFECT_PARALYZE_HIT,       95, ELECTRIC, 100, 15,  10
-	move THUNDER_WAVE, EFFECT_PARALYZE,            0, ELECTRIC, 100, 20,   0
-	move THUNDER,      EFFECT_THUNDER,           120, ELECTRIC,  70, 10,  30
-	move ROCK_THROW,   EFFECT_NORMAL_HIT,         50, ROCK,      90, 15,   0
-	move EARTHQUAKE,   EFFECT_EARTHQUAKE,        100, GROUND,   100, 10,   0
-	move FISSURE,      EFFECT_OHKO,                1, GROUND,    30,  5,   0
-	move DIG,          EFFECT_FLY,                60, GROUND,   100, 10,   0
-	move TOXIC,        EFFECT_TOXIC,               0, POISON,    85, 10,   0
-	move CONFUSION,    EFFECT_CONFUSE_HIT,        50, PSYCHIC,  100, 25,  10
-	move PSYCHIC_M,    EFFECT_SP_DEF_DOWN_HIT,    90, PSYCHIC,  100, 10,  10
-	move HYPNOSIS,     EFFECT_SLEEP,               0, PSYCHIC,   60, 20,   0
-	move MEDITATE,     EFFECT_ATTACK_UP,           0, PSYCHIC,  100, 40,   0
-	move AGILITY,      EFFECT_SPEED_UP_2,          0, PSYCHIC,  100, 30,   0
-	move QUICK_ATTACK, EFFECT_PRIORITY_HIT,       40, NORMAL,   100, 30,   0
-	move RAGE,         EFFECT_RAGE,               20, NORMAL,   100, 20,   0
-	move TELEPORT,     EFFECT_TELEPORT,            0, PSYCHIC,  100, 20,   0
-	move NIGHT_SHADE,  EFFECT_LEVEL_DAMAGE,        1, GHOST,    100, 15,   0
-	move MIMIC,        EFFECT_MIMIC,               0, NORMAL,   100, 10,   0
-	move SCREECH,      EFFECT_DEFENSE_DOWN_2,      0, NORMAL,    85, 40,   0
-	move DOUBLE_TEAM,  EFFECT_EVASION_UP,          0, NORMAL,   100, 15,   0
-	move RECOVER,      EFFECT_HEAL,                0, NORMAL,   100, 20,   0
-	move HARDEN,       EFFECT_DEFENSE_UP,          0, NORMAL,   100, 30,   0
-	move MINIMIZE,     EFFECT_EVASION_UP,          0, NORMAL,   100, 20,   0
-	move SMOKESCREEN,  EFFECT_ACCURACY_DOWN,       0, NORMAL,   100, 20,   0
-	move CONFUSE_RAY,  EFFECT_CONFUSE,             0, GHOST,    100, 10,   0
-	move WITHDRAW,     EFFECT_DEFENSE_UP,          0, WATER,    100, 40,   0
-	move DEFENSE_CURL, EFFECT_DEFENSE_CURL,        0, NORMAL,   100, 40,   0
-	move BARRIER,      EFFECT_DEFENSE_UP_2,        0, PSYCHIC,  100, 30,   0
-	move LIGHT_SCREEN, EFFECT_LIGHT_SCREEN,        0, PSYCHIC,  100, 30,   0
-	move HAZE,         EFFECT_RESET_STATS,         0, ICE,      100, 30,   0
-	move REFLECT,      EFFECT_REFLECT,             0, PSYCHIC,  100, 20,   0
-	move FOCUS_ENERGY, EFFECT_FOCUS_ENERGY,        0, NORMAL,   100, 30,   0
-	move BIDE,         EFFECT_BIDE,                0, NORMAL,   100, 10,   0
-	move METRONOME,    EFFECT_METRONOME,           0, NORMAL,   100, 10,   0
-	move MIRROR_MOVE,  EFFECT_MIRROR_MOVE,         0, FLYING,   100, 20,   0
-	move SELFDESTRUCT, EFFECT_SELFDESTRUCT,      200, NORMAL,   100,  5,   0
-	move EGG_BOMB,     EFFECT_NORMAL_HIT,        100, NORMAL,    75, 10,   0
-	move LICK,         EFFECT_PARALYZE_HIT,       20, GHOST,    100, 30,  30
-	move SMOG,         EFFECT_POISON_HIT,         20, POISON,    70, 20,  40
-	move SLUDGE,       EFFECT_POISON_HIT,         65, POISON,   100, 20,  30
-	move BONE_CLUB,    EFFECT_FLINCH_HIT,         65, GROUND,    85, 20,  10
-	move FIRE_BLAST,   EFFECT_BURN_HIT,          120, FIRE,      85,  5,  10
-	move WATERFALL,    EFFECT_NORMAL_HIT,         80, WATER,    100, 15,   0
-	move CLAMP,        EFFECT_TRAP_TARGET,        35, WATER,     75, 10,   0
-	move SWIFT,        EFFECT_ALWAYS_HIT,         60, NORMAL,   100, 20,   0
-	move SKULL_BASH,   EFFECT_SKULL_BASH,        100, NORMAL,   100, 15,   0
-	move SPIKE_CANNON, EFFECT_MULTI_HIT,          20, NORMAL,   100, 15,   0
-	move CONSTRICT,    EFFECT_SPEED_DOWN_HIT,     10, NORMAL,   100, 35,  10
-	move AMNESIA,      EFFECT_SP_DEF_UP_2,         0, PSYCHIC,  100, 20,   0
-	move KINESIS,      EFFECT_ACCURACY_DOWN,       0, PSYCHIC,   80, 15,   0
-	move SOFTBOILED,   EFFECT_HEAL,                0, NORMAL,   100, 10,   0
-	move HI_JUMP_KICK, EFFECT_JUMP_KICK,          85, FIGHTING,  90, 20,   0
-	move GLARE,        EFFECT_PARALYZE,            0, NORMAL,    75, 30,   0
-	move DREAM_EATER,  EFFECT_DREAM_EATER,       100, PSYCHIC,  100, 15,   0
-	move POISON_GAS,   EFFECT_POISON,              0, POISON,    55, 40,   0
-	move BARRAGE,      EFFECT_MULTI_HIT,          15, NORMAL,    85, 20,   0
-	move LEECH_LIFE,   EFFECT_LEECH_HIT,          20, BUG,      100, 15,   0
-	move LOVELY_KISS,  EFFECT_SLEEP,               0, NORMAL,    75, 10,   0
-	move SKY_ATTACK,   EFFECT_SKY_ATTACK,        140, FLYING,    90,  5,   0
-	move TRANSFORM,    EFFECT_TRANSFORM,           0, NORMAL,   100, 10,   0
-	move BUBBLE,       EFFECT_SPEED_DOWN_HIT,     20, WATER,    100, 30,  10
-	move DIZZY_PUNCH,  EFFECT_CONFUSE_HIT,        70, NORMAL,   100, 10,  20
-	move SPORE,        EFFECT_SLEEP,               0, GRASS,    100, 15,   0
-	move FLASH,        EFFECT_ACCURACY_DOWN,       0, NORMAL,    70, 20,   0
-	move PSYWAVE,      EFFECT_PSYWAVE,             1, PSYCHIC,   80, 15,   0
-	move SPLASH,       EFFECT_SPLASH,              0, NORMAL,   100, 40,   0
-	move ACID_ARMOR,   EFFECT_DEFENSE_UP_2,        0, POISON,   100, 40,   0
-	move CRABHAMMER,   EFFECT_NORMAL_HIT,         90, WATER,     85, 10,   0
-	move EXPLOSION,    EFFECT_SELFDESTRUCT,      250, NORMAL,   100,  5,   0
-	move FURY_SWIPES,  EFFECT_MULTI_HIT,          18, NORMAL,    80, 15,   0
-	move BONEMERANG,   EFFECT_DOUBLE_HIT,         50, GROUND,    90, 10,   0
-	move REST,         EFFECT_HEAL,                0, PSYCHIC,  100, 10,   0
-	move ROCK_SLIDE,   EFFECT_FLINCH_HIT,         75, ROCK,      90, 10,  30
-	move HYPER_FANG,   EFFECT_FLINCH_HIT,         80, NORMAL,    90, 15,  10
-	move SHARPEN,      EFFECT_ATTACK_UP,           0, NORMAL,   100, 30,   0
-	move CONVERSION,   EFFECT_CONVERSION,          0, NORMAL,   100, 30,   0
-	move TRI_ATTACK,   EFFECT_TRI_ATTACK,         80, NORMAL,   100, 10,  20
-	move SUPER_FANG,   EFFECT_SUPER_FANG,          1, NORMAL,    90, 10,   0
-	move SLASH,        EFFECT_NORMAL_HIT,         70, NORMAL,   100, 20,   0
-	move SUBSTITUTE,   EFFECT_SUBSTITUTE,          0, NORMAL,   100, 10,   0
-	move STRUGGLE,     EFFECT_RECOIL_HIT,         50, NORMAL,   100,  1,   0
-	move SKETCH,       EFFECT_SKETCH,              0, NORMAL,   100,  1,   0
-	move TRIPLE_KICK,  EFFECT_TRIPLE_KICK,        10, FIGHTING,  90, 10,   0
-	move THIEF,        EFFECT_THIEF,              40, DARK,     100, 10, 100
-	move SPIDER_WEB,   EFFECT_MEAN_LOOK,           0, BUG,      100, 10,   0
-	move MIND_READER,  EFFECT_LOCK_ON,             0, NORMAL,   100,  5,   0
-	move NIGHTMARE,    EFFECT_NIGHTMARE,           0, GHOST,    100, 15,   0
-	move FLAME_WHEEL,  EFFECT_FLAME_WHEEL,        60, FIRE,     100, 25,  10
-	move SNORE,        EFFECT_SNORE,              40, NORMAL,   100, 15,  30
-	move CURSE,        EFFECT_CURSE,               0, CURSE_T,  100, 10,   0
-	move FLAIL,        EFFECT_REVERSAL,            1, NORMAL,   100, 15,   0
-	move CONVERSION2,  EFFECT_CONVERSION2,         0, NORMAL,   100, 30,   0
-	move AEROBLAST,    EFFECT_NORMAL_HIT,        100, FLYING,    95,  5,   0
-	move COTTON_SPORE, EFFECT_SPEED_DOWN_2,        0, GRASS,     85, 40,   0
-	move REVERSAL,     EFFECT_REVERSAL,            1, FIGHTING, 100, 15,   0
-	move SPITE,        EFFECT_SPITE,               0, GHOST,    100, 10,   0
-	move POWDER_SNOW,  EFFECT_FREEZE_HIT,         40, ICE,      100, 25,  10
-	move PROTECT,      EFFECT_PROTECT,             0, NORMAL,   100, 10,   0
-	move MACH_PUNCH,   EFFECT_PRIORITY_HIT,       40, FIGHTING, 100, 30,   0
-	move SCARY_FACE,   EFFECT_SPEED_DOWN_2,        0, NORMAL,    90, 10,   0
-	move FAINT_ATTACK, EFFECT_ALWAYS_HIT,         60, DARK,     100, 20,   0
-	move SWEET_KISS,   EFFECT_CONFUSE,             0, NORMAL,    75, 10,   0
-	move BELLY_DRUM,   EFFECT_BELLY_DRUM,          0, NORMAL,   100, 10,   0
-	move SLUDGE_BOMB,  EFFECT_POISON_HIT,         90, POISON,   100, 10,  30
-	move MUD_SLAP,     EFFECT_ACCURACY_DOWN_HIT,  20, GROUND,   100, 10, 100
-	move OCTAZOOKA,    EFFECT_ACCURACY_DOWN_HIT,  65, WATER,     85, 10,  50
-	move SPIKES,       EFFECT_SPIKES,              0, GROUND,   100, 20,   0
-	move ZAP_CANNON,   EFFECT_PARALYZE_HIT,      100, ELECTRIC,  50,  5, 100
-	move FORESIGHT,    EFFECT_FORESIGHT,           0, NORMAL,   100, 40,   0
-	move DESTINY_BOND, EFFECT_DESTINY_BOND,        0, GHOST,    100,  5,   0
-	move PERISH_SONG,  EFFECT_PERISH_SONG,         0, NORMAL,   100,  5,   0
-	move ICY_WIND,     EFFECT_SPEED_DOWN_HIT,     55, ICE,       95, 15, 100
-	move DETECT,       EFFECT_PROTECT,             0, FIGHTING, 100,  5,   0
-	move BONE_RUSH,    EFFECT_MULTI_HIT,          25, GROUND,    80, 10,   0
-	move LOCK_ON,      EFFECT_LOCK_ON,             0, NORMAL,   100,  5,   0
-	move OUTRAGE,      EFFECT_RAMPAGE,            90, DRAGON,   100, 15,   0
-	move SANDSTORM,    EFFECT_SANDSTORM,           0, ROCK,     100, 10,   0
-	move GIGA_DRAIN,   EFFECT_LEECH_HIT,          60, GRASS,    100,  5,   0
-	move ENDURE,       EFFECT_ENDURE,              0, NORMAL,   100, 10,   0
-	move CHARM,        EFFECT_ATTACK_DOWN_2,       0, NORMAL,   100, 20,   0
-	move ROLLOUT,      EFFECT_ROLLOUT,            30, ROCK,      90, 20,   0
-	move FALSE_SWIPE,  EFFECT_FALSE_SWIPE,        40, NORMAL,   100, 40,   0
-	move SWAGGER,      EFFECT_SWAGGER,             0, NORMAL,    90, 15, 100
-	move MILK_DRINK,   EFFECT_HEAL,                0, NORMAL,   100, 10,   0
-	move SPARK,        EFFECT_PARALYZE_HIT,       65, ELECTRIC, 100, 20,  30
-	move FURY_CUTTER,  EFFECT_FURY_CUTTER,        10, BUG,       95, 20,   0
-	move STEEL_WING,   EFFECT_DEFENSE_UP_HIT,     70, STEEL,     90, 25,  10
-	move MEAN_LOOK,    EFFECT_MEAN_LOOK,           0, NORMAL,   100,  5,   0
-	move ATTRACT,      EFFECT_ATTRACT,             0, NORMAL,   100, 15,   0
-	move SLEEP_TALK,   EFFECT_SLEEP_TALK,          0, NORMAL,   100, 10,   0
-	move HEAL_BELL,    EFFECT_HEAL_BELL,           0, NORMAL,   100,  5,   0
-	move RETURN,       EFFECT_RETURN,              1, NORMAL,   100, 20,   0
-	move PRESENT,      EFFECT_PRESENT,             1, NORMAL,    90, 15,   0
-	move FRUSTRATION,  EFFECT_FRUSTRATION,         1, NORMAL,   100, 20,   0
-	move SAFEGUARD,    EFFECT_SAFEGUARD,           0, NORMAL,   100, 25,   0
-	move PAIN_SPLIT,   EFFECT_PAIN_SPLIT,          0, NORMAL,   100, 20,   0
-	move SACRED_FIRE,  EFFECT_SACRED_FIRE,       100, FIRE,      95,  5,  50
-	move MAGNITUDE,    EFFECT_MAGNITUDE,           1, GROUND,   100, 30,   0
-	move DYNAMICPUNCH, EFFECT_CONFUSE_HIT,       100, FIGHTING,  50,  5, 100
-	move MEGAHORN,     EFFECT_NORMAL_HIT,        120, BUG,       85, 10,   0
-	move DRAGONBREATH, EFFECT_PARALYZE_HIT,       60, DRAGON,   100, 20,  30
-	move BATON_PASS,   EFFECT_BATON_PASS,          0, NORMAL,   100, 40,   0
-	move ENCORE,       EFFECT_ENCORE,              0, NORMAL,   100,  5,   0
-	move PURSUIT,      EFFECT_PURSUIT,            40, DARK,     100, 20,   0
-	move RAPID_SPIN,   EFFECT_RAPID_SPIN,         20, NORMAL,   100, 40,   0
-	move SWEET_SCENT,  EFFECT_EVASION_DOWN,        0, NORMAL,   100, 20,   0
-	move IRON_TAIL,    EFFECT_DEFENSE_DOWN_HIT,  100, STEEL,     75, 15,  30
-	move METAL_CLAW,   EFFECT_ATTACK_UP_HIT,      50, STEEL,     95, 35,  10
-	move VITAL_THROW,  EFFECT_ALWAYS_HIT,         70, FIGHTING, 100, 10,   0
-	move MORNING_SUN,  EFFECT_MORNING_SUN,         0, NORMAL,   100,  5,   0
-	move SYNTHESIS,    EFFECT_SYNTHESIS,           0, GRASS,    100,  5,   0
-	move MOONLIGHT,    EFFECT_MOONLIGHT,           0, NORMAL,   100,  5,   0
-	move HIDDEN_POWER, EFFECT_HIDDEN_POWER,        1, NORMAL,   100, 15,   0
-	move CROSS_CHOP,   EFFECT_NORMAL_HIT,        100, FIGHTING,  80,  5,   0
-	move TWISTER,      EFFECT_TWISTER,            40, DRAGON,   100, 20,  20
-	move RAIN_DANCE,   EFFECT_RAIN_DANCE,          0, WATER,     90,  5,   0
-	move SUNNY_DAY,    EFFECT_SUNNY_DAY,           0, FIRE,      90,  5,   0
-	move CRUNCH,       EFFECT_SP_DEF_DOWN_HIT,    80, DARK,     100, 15,  20
-	move MIRROR_COAT,  EFFECT_MIRROR_COAT,         1, PSYCHIC,  100, 20,   0
-	move PSYCH_UP,     EFFECT_PSYCH_UP,            0, NORMAL,   100, 10,   0
-	move EXTREMESPEED, EFFECT_PRIORITY_HIT,       80, NORMAL,   100,  5,   0
-	move ANCIENTPOWER, EFFECT_ALL_UP_HIT,         60, ROCK,     100,  5,  10
-	move SHADOW_BALL,  EFFECT_SP_DEF_DOWN_HIT,    80, GHOST,    100, 15,  20
-	move FUTURE_SIGHT, EFFECT_FUTURE_SIGHT,       80, PSYCHIC,   90, 15,   0
-	move ROCK_SMASH,   EFFECT_DEFENSE_DOWN_HIT,   20, FIGHTING, 100, 15,  50
-	move WHIRLPOOL,    EFFECT_TRAP_TARGET,        15, WATER,     70, 15,   0
-	move BEAT_UP,      EFFECT_BEAT_UP,            10, DARK,     100, 10,   0
+	move POUND,        EFFECT_NORMAL_HIT,         40, NORMAL,       100, 35,   0
+	move KARATE_CHOP,  EFFECT_NORMAL_HIT,         50, FIGHTING,     100, 25,   0
+	move DOUBLESLAP,   EFFECT_MULTI_HIT,          15, NORMAL,        85, 10,   0
+	move COMET_PUNCH,  EFFECT_MULTI_HIT,          18, NORMAL,        85, 15,   0
+	move MEGA_PUNCH,   EFFECT_NORMAL_HIT,         80, NORMAL,        85, 20,   0
+	move PAY_DAY,      EFFECT_PAY_DAY,            40, NORMAL,       100, 20,   0
+	move FIRE_PUNCH,   EFFECT_BURN_HIT,           75, FIRE,         100, 15,  10
+	move ICE_PUNCH,    EFFECT_FREEZE_HIT,         75, ICE,          100, 15,  10
+	move THUNDERPUNCH, EFFECT_PARALYZE_HIT,       75, ELECTRIC,     100, 15,  10
+	move SCRATCH,      EFFECT_NORMAL_HIT,         40, NORMAL,       100, 35,   0
+	move VICEGRIP,     EFFECT_NORMAL_HIT,         55, NORMAL,       100, 30,   0
+	move GUILLOTINE,   EFFECT_OHKO,                0, NORMAL,        30,  5,   0
+	move RAZOR_WIND,   EFFECT_RAZOR_WIND,         80, NORMAL,        75, 10,   0
+	move SWORDS_DANCE, EFFECT_ATTACK_UP_2,         0, NORMAL,       100, 30,   0
+	move CUT,          EFFECT_NORMAL_HIT,         50, NORMAL,        95, 30,   0
+	move GUST,         EFFECT_GUST,               40, FLYING,       100, 35,   0
+	move WING_ATTACK,  EFFECT_NORMAL_HIT,         60, FLYING,       100, 35,   0
+	move WHIRLWIND,    EFFECT_FORCE_SWITCH,        0, NORMAL,       100, 20,   0
+	move FLY,          EFFECT_FLY,                70, FLYING,        95, 15,   0
+	move BIND,         EFFECT_TRAP_TARGET,        15, NORMAL,        75, 20,   0
+	move SLAM,         EFFECT_NORMAL_HIT,         80, NORMAL,        75, 20,   0
+	move VINE_WHIP,    EFFECT_NORMAL_HIT,         35, GRASS,        100, 10,   0
+	move STOMP,        EFFECT_STOMP,              65, NORMAL,       100, 20,  30
+	move DOUBLE_KICK,  EFFECT_DOUBLE_HIT,         30, FIGHTING,     100, 30,   0
+	move MEGA_KICK,    EFFECT_NORMAL_HIT,        120, NORMAL,        75,  5,   0
+	move JUMP_KICK,    EFFECT_JUMP_KICK,          70, FIGHTING,      95, 25,   0
+	move ROLLING_KICK, EFFECT_FLINCH_HIT,         60, FIGHTING,      85, 15,  30
+	move SAND_ATTACK,  EFFECT_ACCURACY_DOWN,       0, GROUND,       100, 15,   0
+	move HEADBUTT,     EFFECT_FLINCH_HIT,         70, NORMAL,       100, 15,  30
+	move HORN_ATTACK,  EFFECT_NORMAL_HIT,         65, NORMAL,       100, 25,   0
+	move FURY_ATTACK,  EFFECT_MULTI_HIT,          15, NORMAL,        85, 20,   0
+	move HORN_DRILL,   EFFECT_OHKO,                1, NORMAL,        30,  5,   0
+	move TACKLE,       EFFECT_NORMAL_HIT,         35, NORMAL,        95, 35,   0
+	move BODY_SLAM,    EFFECT_PARALYZE_HIT,       85, NORMAL,       100, 15,  30
+	move WRAP,         EFFECT_TRAP_TARGET,        15, NORMAL,        85, 20,   0
+	move TAKE_DOWN,    EFFECT_RECOIL_HIT,         90, NORMAL,        85, 20,   0
+	move THRASH,       EFFECT_RAMPAGE,            90, NORMAL,       100, 20,   0
+	move DOUBLE_EDGE,  EFFECT_RECOIL_HIT,        120, NORMAL,       100, 15,   0
+	move TAIL_WHIP,    EFFECT_DEFENSE_DOWN,        0, NORMAL,       100, 30,   0
+	move POISON_STING, EFFECT_POISON_HIT,         15, POISON,       100, 35,  30
+	move TWINEEDLE,    EFFECT_POISON_MULTI_HIT,   25, BUG,          100, 20,  20
+	move PIN_MISSILE,  EFFECT_MULTI_HIT,          14, BUG,           85, 20,   0
+	move LEER,         EFFECT_DEFENSE_DOWN,        0, NORMAL,       100, 30,   0
+	move BITE,         EFFECT_FLINCH_HIT,         60, DARK,         100, 25,  30
+	move GROWL,        EFFECT_ATTACK_DOWN,         0, NORMAL,       100, 40,   0
+	move ROAR,         EFFECT_FORCE_SWITCH,        0, NORMAL,       100, 20,   0
+	move SING,         EFFECT_SLEEP,               0, NORMAL,        55, 15,   0
+	move SUPERSONIC,   EFFECT_CONFUSE,             0, NORMAL,        55, 20,   0
+	move SONICBOOM,    EFFECT_STATIC_DAMAGE,      20, NORMAL,        90, 20,   0
+	move DISABLE,      EFFECT_DISABLE,             0, NORMAL,        55, 20,   0
+	move ACID,         EFFECT_DEFENSE_DOWN_HIT,   40, POISON,       100, 30,  10
+	move EMBER,        EFFECT_BURN_HIT,           40, FIRE,         100, 25,  10
+	move FLAMETHROWER, EFFECT_BURN_HIT,           95, FIRE,         100, 15,  10
+	move MIST,         EFFECT_MIST,                0, ICE,          100, 30,   0
+	move WATER_GUN,    EFFECT_NORMAL_HIT,         40, WATER,        100, 25,   0
+	move HYDRO_PUMP,   EFFECT_NORMAL_HIT,        120, WATER,         80,  5,   0
+	move SURF,         EFFECT_NORMAL_HIT,         95, WATER,        100, 15,   0
+	move ICE_BEAM,     EFFECT_FREEZE_HIT,         95, ICE,          100, 10,  10
+	move BLIZZARD,     EFFECT_FREEZE_HIT,        120, ICE,           70,  5,  10
+	move PSYBEAM,      EFFECT_CONFUSE_HIT,        65, PSYCHIC_TYPE, 100, 20,  10
+	move BUBBLEBEAM,   EFFECT_SPEED_DOWN_HIT,     65, WATER,        100, 20,  10
+	move AURORA_BEAM,  EFFECT_ATTACK_DOWN_HIT,    65, ICE,          100, 20,  10
+	move HYPER_BEAM,   EFFECT_HYPER_BEAM,        150, NORMAL,        90,  5,   0
+	move PECK,         EFFECT_NORMAL_HIT,         35, FLYING,       100, 35,   0
+	move DRILL_PECK,   EFFECT_NORMAL_HIT,         80, FLYING,       100, 20,   0
+	move SUBMISSION,   EFFECT_RECOIL_HIT,         80, FIGHTING,      80, 25,   0
+	move LOW_KICK,     EFFECT_FLINCH_HIT,         50, FIGHTING,      90, 20,  30
+	move COUNTER,      EFFECT_COUNTER,             1, FIGHTING,     100, 20,   0
+	move SEISMIC_TOSS, EFFECT_LEVEL_DAMAGE,        1, FIGHTING,     100, 20,   0
+	move STRENGTH,     EFFECT_NORMAL_HIT,         80, NORMAL,       100, 15,   0
+	move ABSORB,       EFFECT_LEECH_HIT,          20, GRASS,        100, 20,   0
+	move MEGA_DRAIN,   EFFECT_LEECH_HIT,          40, GRASS,        100, 10,   0
+	move LEECH_SEED,   EFFECT_LEECH_SEED,          0, GRASS,         90, 10,   0
+	move GROWTH,       EFFECT_SP_ATK_UP,           0, NORMAL,       100, 40,   0
+	move RAZOR_LEAF,   EFFECT_NORMAL_HIT,         55, GRASS,         95, 25,   0
+	move SOLARBEAM,    EFFECT_SOLARBEAM,         120, GRASS,        100, 10,   0
+	move POISONPOWDER, EFFECT_POISON,              0, POISON,        75, 35,   0
+	move STUN_SPORE,   EFFECT_PARALYZE,            0, GRASS,         75, 30,   0
+	move SLEEP_POWDER, EFFECT_SLEEP,               0, GRASS,         75, 15,   0
+	move PETAL_DANCE,  EFFECT_RAMPAGE,            70, GRASS,        100, 20,   0
+	move STRING_SHOT,  EFFECT_SPEED_DOWN,          0, BUG,           95, 40,   0
+	move DRAGON_RAGE,  EFFECT_STATIC_DAMAGE,      40, DRAGON,       100, 10,   0
+	move FIRE_SPIN,    EFFECT_TRAP_TARGET,        15, FIRE,          70, 15,   0
+	move THUNDERSHOCK, EFFECT_PARALYZE_HIT,       40, ELECTRIC,     100, 30,  10
+	move THUNDERBOLT,  EFFECT_PARALYZE_HIT,       95, ELECTRIC,     100, 15,  10
+	move THUNDER_WAVE, EFFECT_PARALYZE,            0, ELECTRIC,     100, 20,   0
+	move THUNDER,      EFFECT_THUNDER,           120, ELECTRIC,      70, 10,  30
+	move ROCK_THROW,   EFFECT_NORMAL_HIT,         50, ROCK,          90, 15,   0
+	move EARTHQUAKE,   EFFECT_EARTHQUAKE,        100, GROUND,       100, 10,   0
+	move FISSURE,      EFFECT_OHKO,                1, GROUND,        30,  5,   0
+	move DIG,          EFFECT_FLY,                60, GROUND,       100, 10,   0
+	move TOXIC,        EFFECT_TOXIC,               0, POISON,        85, 10,   0
+	move CONFUSION,    EFFECT_CONFUSE_HIT,        50, PSYCHIC_TYPE, 100, 25,  10
+	move PSYCHIC_M,    EFFECT_SP_DEF_DOWN_HIT,    90, PSYCHIC_TYPE, 100, 10,  10
+	move HYPNOSIS,     EFFECT_SLEEP,               0, PSYCHIC_TYPE,  60, 20,   0
+	move MEDITATE,     EFFECT_ATTACK_UP,           0, PSYCHIC_TYPE, 100, 40,   0
+	move AGILITY,      EFFECT_SPEED_UP_2,          0, PSYCHIC_TYPE, 100, 30,   0
+	move QUICK_ATTACK, EFFECT_PRIORITY_HIT,       40, NORMAL,       100, 30,   0
+	move RAGE,         EFFECT_RAGE,               20, NORMAL,       100, 20,   0
+	move TELEPORT,     EFFECT_TELEPORT,            0, PSYCHIC_TYPE, 100, 20,   0
+	move NIGHT_SHADE,  EFFECT_LEVEL_DAMAGE,        1, GHOST,        100, 15,   0
+	move MIMIC,        EFFECT_MIMIC,               0, NORMAL,       100, 10,   0
+	move SCREECH,      EFFECT_DEFENSE_DOWN_2,      0, NORMAL,        85, 40,   0
+	move DOUBLE_TEAM,  EFFECT_EVASION_UP,          0, NORMAL,       100, 15,   0
+	move RECOVER,      EFFECT_HEAL,                0, NORMAL,       100, 20,   0
+	move HARDEN,       EFFECT_DEFENSE_UP,          0, NORMAL,       100, 30,   0
+	move MINIMIZE,     EFFECT_EVASION_UP,          0, NORMAL,       100, 20,   0
+	move SMOKESCREEN,  EFFECT_ACCURACY_DOWN,       0, NORMAL,       100, 20,   0
+	move CONFUSE_RAY,  EFFECT_CONFUSE,             0, GHOST,        100, 10,   0
+	move WITHDRAW,     EFFECT_DEFENSE_UP,          0, WATER,        100, 40,   0
+	move DEFENSE_CURL, EFFECT_DEFENSE_CURL,        0, NORMAL,       100, 40,   0
+	move BARRIER,      EFFECT_DEFENSE_UP_2,        0, PSYCHIC_TYPE, 100, 30,   0
+	move LIGHT_SCREEN, EFFECT_LIGHT_SCREEN,        0, PSYCHIC_TYPE, 100, 30,   0
+	move HAZE,         EFFECT_RESET_STATS,         0, ICE,          100, 30,   0
+	move REFLECT,      EFFECT_REFLECT,             0, PSYCHIC_TYPE, 100, 20,   0
+	move FOCUS_ENERGY, EFFECT_FOCUS_ENERGY,        0, NORMAL,       100, 30,   0
+	move BIDE,         EFFECT_BIDE,                0, NORMAL,       100, 10,   0
+	move METRONOME,    EFFECT_METRONOME,           0, NORMAL,       100, 10,   0
+	move MIRROR_MOVE,  EFFECT_MIRROR_MOVE,         0, FLYING,       100, 20,   0
+	move SELFDESTRUCT, EFFECT_SELFDESTRUCT,      200, NORMAL,       100,  5,   0
+	move EGG_BOMB,     EFFECT_NORMAL_HIT,        100, NORMAL,        75, 10,   0
+	move LICK,         EFFECT_PARALYZE_HIT,       20, GHOST,        100, 30,  30
+	move SMOG,         EFFECT_POISON_HIT,         20, POISON,        70, 20,  40
+	move SLUDGE,       EFFECT_POISON_HIT,         65, POISON,       100, 20,  30
+	move BONE_CLUB,    EFFECT_FLINCH_HIT,         65, GROUND,        85, 20,  10
+	move FIRE_BLAST,   EFFECT_BURN_HIT,          120, FIRE,          85,  5,  10
+	move WATERFALL,    EFFECT_NORMAL_HIT,         80, WATER,        100, 15,   0
+	move CLAMP,        EFFECT_TRAP_TARGET,        35, WATER,         75, 10,   0
+	move SWIFT,        EFFECT_ALWAYS_HIT,         60, NORMAL,       100, 20,   0
+	move SKULL_BASH,   EFFECT_SKULL_BASH,        100, NORMAL,       100, 15,   0
+	move SPIKE_CANNON, EFFECT_MULTI_HIT,          20, NORMAL,       100, 15,   0
+	move CONSTRICT,    EFFECT_SPEED_DOWN_HIT,     10, NORMAL,       100, 35,  10
+	move AMNESIA,      EFFECT_SP_DEF_UP_2,         0, PSYCHIC_TYPE, 100, 20,   0
+	move KINESIS,      EFFECT_ACCURACY_DOWN,       0, PSYCHIC_TYPE,  80, 15,   0
+	move SOFTBOILED,   EFFECT_HEAL,                0, NORMAL,       100, 10,   0
+	move HI_JUMP_KICK, EFFECT_JUMP_KICK,          85, FIGHTING,      90, 20,   0
+	move GLARE,        EFFECT_PARALYZE,            0, NORMAL,        75, 30,   0
+	move DREAM_EATER,  EFFECT_DREAM_EATER,       100, PSYCHIC_TYPE, 100, 15,   0
+	move POISON_GAS,   EFFECT_POISON,              0, POISON,        55, 40,   0
+	move BARRAGE,      EFFECT_MULTI_HIT,          15, NORMAL,        85, 20,   0
+	move LEECH_LIFE,   EFFECT_LEECH_HIT,          20, BUG,          100, 15,   0
+	move LOVELY_KISS,  EFFECT_SLEEP,               0, NORMAL,        75, 10,   0
+	move SKY_ATTACK,   EFFECT_SKY_ATTACK,        140, FLYING,        90,  5,   0
+	move TRANSFORM,    EFFECT_TRANSFORM,           0, NORMAL,       100, 10,   0
+	move BUBBLE,       EFFECT_SPEED_DOWN_HIT,     20, WATER,        100, 30,  10
+	move DIZZY_PUNCH,  EFFECT_CONFUSE_HIT,        70, NORMAL,       100, 10,  20
+	move SPORE,        EFFECT_SLEEP,               0, GRASS,        100, 15,   0
+	move FLASH,        EFFECT_ACCURACY_DOWN,       0, NORMAL,        70, 20,   0
+	move PSYWAVE,      EFFECT_PSYWAVE,             1, PSYCHIC_TYPE,  80, 15,   0
+	move SPLASH,       EFFECT_SPLASH,              0, NORMAL,       100, 40,   0
+	move ACID_ARMOR,   EFFECT_DEFENSE_UP_2,        0, POISON,       100, 40,   0
+	move CRABHAMMER,   EFFECT_NORMAL_HIT,         90, WATER,         85, 10,   0
+	move EXPLOSION,    EFFECT_SELFDESTRUCT,      250, NORMAL,       100,  5,   0
+	move FURY_SWIPES,  EFFECT_MULTI_HIT,          18, NORMAL,        80, 15,   0
+	move BONEMERANG,   EFFECT_DOUBLE_HIT,         50, GROUND,        90, 10,   0
+	move REST,         EFFECT_HEAL,                0, PSYCHIC_TYPE, 100, 10,   0
+	move ROCK_SLIDE,   EFFECT_FLINCH_HIT,         75, ROCK,          90, 10,  30
+	move HYPER_FANG,   EFFECT_FLINCH_HIT,         80, NORMAL,        90, 15,  10
+	move SHARPEN,      EFFECT_ATTACK_UP,           0, NORMAL,       100, 30,   0
+	move CONVERSION,   EFFECT_CONVERSION,          0, NORMAL,       100, 30,   0
+	move TRI_ATTACK,   EFFECT_TRI_ATTACK,         80, NORMAL,       100, 10,  20
+	move SUPER_FANG,   EFFECT_SUPER_FANG,          1, NORMAL,        90, 10,   0
+	move SLASH,        EFFECT_NORMAL_HIT,         70, NORMAL,       100, 20,   0
+	move SUBSTITUTE,   EFFECT_SUBSTITUTE,          0, NORMAL,       100, 10,   0
+	move STRUGGLE,     EFFECT_RECOIL_HIT,         50, NORMAL,       100,  1,   0
+	move SKETCH,       EFFECT_SKETCH,              0, NORMAL,       100,  1,   0
+	move TRIPLE_KICK,  EFFECT_TRIPLE_KICK,        10, FIGHTING,      90, 10,   0
+	move THIEF,        EFFECT_THIEF,              40, DARK,         100, 10, 100
+	move SPIDER_WEB,   EFFECT_MEAN_LOOK,           0, BUG,          100, 10,   0
+	move MIND_READER,  EFFECT_LOCK_ON,             0, NORMAL,       100,  5,   0
+	move NIGHTMARE,    EFFECT_NIGHTMARE,           0, GHOST,        100, 15,   0
+	move FLAME_WHEEL,  EFFECT_FLAME_WHEEL,        60, FIRE,         100, 25,  10
+	move SNORE,        EFFECT_SNORE,              40, NORMAL,       100, 15,  30
+	move CURSE,        EFFECT_CURSE,               0, CURSE_TYPE,   100, 10,   0
+	move FLAIL,        EFFECT_REVERSAL,            1, NORMAL,       100, 15,   0
+	move CONVERSION2,  EFFECT_CONVERSION2,         0, NORMAL,       100, 30,   0
+	move AEROBLAST,    EFFECT_NORMAL_HIT,        100, FLYING,        95,  5,   0
+	move COTTON_SPORE, EFFECT_SPEED_DOWN_2,        0, GRASS,         85, 40,   0
+	move REVERSAL,     EFFECT_REVERSAL,            1, FIGHTING,     100, 15,   0
+	move SPITE,        EFFECT_SPITE,               0, GHOST,        100, 10,   0
+	move POWDER_SNOW,  EFFECT_FREEZE_HIT,         40, ICE,          100, 25,  10
+	move PROTECT,      EFFECT_PROTECT,             0, NORMAL,       100, 10,   0
+	move MACH_PUNCH,   EFFECT_PRIORITY_HIT,       40, FIGHTING,     100, 30,   0
+	move SCARY_FACE,   EFFECT_SPEED_DOWN_2,        0, NORMAL,        90, 10,   0
+	move FAINT_ATTACK, EFFECT_ALWAYS_HIT,         60, DARK,         100, 20,   0
+	move SWEET_KISS,   EFFECT_CONFUSE,             0, NORMAL,        75, 10,   0
+	move BELLY_DRUM,   EFFECT_BELLY_DRUM,          0, NORMAL,       100, 10,   0
+	move SLUDGE_BOMB,  EFFECT_POISON_HIT,         90, POISON,       100, 10,  30
+	move MUD_SLAP,     EFFECT_ACCURACY_DOWN_HIT,  20, GROUND,       100, 10, 100
+	move OCTAZOOKA,    EFFECT_ACCURACY_DOWN_HIT,  65, WATER,         85, 10,  50
+	move SPIKES,       EFFECT_SPIKES,              0, GROUND,       100, 20,   0
+	move ZAP_CANNON,   EFFECT_PARALYZE_HIT,      100, ELECTRIC,      50,  5, 100
+	move FORESIGHT,    EFFECT_FORESIGHT,           0, NORMAL,       100, 40,   0
+	move DESTINY_BOND, EFFECT_DESTINY_BOND,        0, GHOST,        100,  5,   0
+	move PERISH_SONG,  EFFECT_PERISH_SONG,         0, NORMAL,       100,  5,   0
+	move ICY_WIND,     EFFECT_SPEED_DOWN_HIT,     55, ICE,           95, 15, 100
+	move DETECT,       EFFECT_PROTECT,             0, FIGHTING,     100,  5,   0
+	move BONE_RUSH,    EFFECT_MULTI_HIT,          25, GROUND,        80, 10,   0
+	move LOCK_ON,      EFFECT_LOCK_ON,             0, NORMAL,       100,  5,   0
+	move OUTRAGE,      EFFECT_RAMPAGE,            90, DRAGON,       100, 15,   0
+	move SANDSTORM,    EFFECT_SANDSTORM,           0, ROCK,         100, 10,   0
+	move GIGA_DRAIN,   EFFECT_LEECH_HIT,          60, GRASS,        100,  5,   0
+	move ENDURE,       EFFECT_ENDURE,              0, NORMAL,       100, 10,   0
+	move CHARM,        EFFECT_ATTACK_DOWN_2,       0, NORMAL,       100, 20,   0
+	move ROLLOUT,      EFFECT_ROLLOUT,            30, ROCK,          90, 20,   0
+	move FALSE_SWIPE,  EFFECT_FALSE_SWIPE,        40, NORMAL,       100, 40,   0
+	move SWAGGER,      EFFECT_SWAGGER,             0, NORMAL,        90, 15, 100
+	move MILK_DRINK,   EFFECT_HEAL,                0, NORMAL,       100, 10,   0
+	move SPARK,        EFFECT_PARALYZE_HIT,       65, ELECTRIC,     100, 20,  30
+	move FURY_CUTTER,  EFFECT_FURY_CUTTER,        10, BUG,           95, 20,   0
+	move STEEL_WING,   EFFECT_DEFENSE_UP_HIT,     70, STEEL,         90, 25,  10
+	move MEAN_LOOK,    EFFECT_MEAN_LOOK,           0, NORMAL,       100,  5,   0
+	move ATTRACT,      EFFECT_ATTRACT,             0, NORMAL,       100, 15,   0
+	move SLEEP_TALK,   EFFECT_SLEEP_TALK,          0, NORMAL,       100, 10,   0
+	move HEAL_BELL,    EFFECT_HEAL_BELL,           0, NORMAL,       100,  5,   0
+	move RETURN,       EFFECT_RETURN,              1, NORMAL,       100, 20,   0
+	move PRESENT,      EFFECT_PRESENT,             1, NORMAL,        90, 15,   0
+	move FRUSTRATION,  EFFECT_FRUSTRATION,         1, NORMAL,       100, 20,   0
+	move SAFEGUARD,    EFFECT_SAFEGUARD,           0, NORMAL,       100, 25,   0
+	move PAIN_SPLIT,   EFFECT_PAIN_SPLIT,          0, NORMAL,       100, 20,   0
+	move SACRED_FIRE,  EFFECT_SACRED_FIRE,       100, FIRE,          95,  5,  50
+	move MAGNITUDE,    EFFECT_MAGNITUDE,           1, GROUND,       100, 30,   0
+	move DYNAMICPUNCH, EFFECT_CONFUSE_HIT,       100, FIGHTING,      50,  5, 100
+	move MEGAHORN,     EFFECT_NORMAL_HIT,        120, BUG,           85, 10,   0
+	move DRAGONBREATH, EFFECT_PARALYZE_HIT,       60, DRAGON,       100, 20,  30
+	move BATON_PASS,   EFFECT_BATON_PASS,          0, NORMAL,       100, 40,   0
+	move ENCORE,       EFFECT_ENCORE,              0, NORMAL,       100,  5,   0
+	move PURSUIT,      EFFECT_PURSUIT,            40, DARK,         100, 20,   0
+	move RAPID_SPIN,   EFFECT_RAPID_SPIN,         20, NORMAL,       100, 40,   0
+	move SWEET_SCENT,  EFFECT_EVASION_DOWN,        0, NORMAL,       100, 20,   0
+	move IRON_TAIL,    EFFECT_DEFENSE_DOWN_HIT,  100, STEEL,         75, 15,  30
+	move METAL_CLAW,   EFFECT_ATTACK_UP_HIT,      50, STEEL,         95, 35,  10
+	move VITAL_THROW,  EFFECT_ALWAYS_HIT,         70, FIGHTING,     100, 10,   0
+	move MORNING_SUN,  EFFECT_MORNING_SUN,         0, NORMAL,       100,  5,   0
+	move SYNTHESIS,    EFFECT_SYNTHESIS,           0, GRASS,        100,  5,   0
+	move MOONLIGHT,    EFFECT_MOONLIGHT,           0, NORMAL,       100,  5,   0
+	move HIDDEN_POWER, EFFECT_HIDDEN_POWER,        1, NORMAL,       100, 15,   0
+	move CROSS_CHOP,   EFFECT_NORMAL_HIT,        100, FIGHTING,      80,  5,   0
+	move TWISTER,      EFFECT_TWISTER,            40, DRAGON,       100, 20,  20
+	move RAIN_DANCE,   EFFECT_RAIN_DANCE,          0, WATER,         90,  5,   0
+	move SUNNY_DAY,    EFFECT_SUNNY_DAY,           0, FIRE,          90,  5,   0
+	move CRUNCH,       EFFECT_SP_DEF_DOWN_HIT,    80, DARK,         100, 15,  20
+	move MIRROR_COAT,  EFFECT_MIRROR_COAT,         1, PSYCHIC_TYPE, 100, 20,   0
+	move PSYCH_UP,     EFFECT_PSYCH_UP,            0, NORMAL,       100, 10,   0
+	move EXTREMESPEED, EFFECT_PRIORITY_HIT,       80, NORMAL,       100,  5,   0
+	move ANCIENTPOWER, EFFECT_ALL_UP_HIT,         60, ROCK,         100,  5,  10
+	move SHADOW_BALL,  EFFECT_SP_DEF_DOWN_HIT,    80, GHOST,        100, 15,  20
+	move FUTURE_SIGHT, EFFECT_FUTURE_SIGHT,       80, PSYCHIC_TYPE,  90, 15,   0
+	move ROCK_SMASH,   EFFECT_DEFENSE_DOWN_HIT,   20, FIGHTING,     100, 15,  50
+	move WHIRLPOOL,    EFFECT_TRAP_TARGET,        15, WATER,         70, 15,   0
+	move BEAT_UP,      EFFECT_BEAT_UP,            10, DARK,         100, 10,   0
--- a/data/pokemon/base_stats/abra.asm
+++ b/data/pokemon/base_stats/abra.asm
@@ -3,7 +3,7 @@
 	db  25,  20,  15,  90, 105,  55
 	;   hp  atk  def  spd  sat  sdf
 
-	db PSYCHIC, PSYCHIC ; type
+	db PSYCHIC_TYPE, PSYCHIC_TYPE ; type
 	db 200 ; catch rate
 	db 73 ; base exp
 	db NO_ITEM, NO_ITEM ; items
--- a/data/pokemon/base_stats/alakazam.asm
+++ b/data/pokemon/base_stats/alakazam.asm
@@ -3,7 +3,7 @@
 	db  55,  50,  45, 120, 135,  85
 	;   hp  atk  def  spd  sat  sdf
 
-	db PSYCHIC, PSYCHIC ; type
+	db PSYCHIC_TYPE, PSYCHIC_TYPE ; type
 	db 50 ; catch rate
 	db 186 ; base exp
 	db NO_ITEM, NO_ITEM ; items
--- a/data/pokemon/base_stats/celebi.asm
+++ b/data/pokemon/base_stats/celebi.asm
@@ -3,7 +3,7 @@
 	db 100, 100, 100, 100, 100, 100
 	;   hp  atk  def  spd  sat  sdf
 
-	db PSYCHIC, GRASS ; type
+	db PSYCHIC_TYPE, GRASS ; type
 	db 45 ; catch rate
 	db 64 ; base exp
 	db NO_ITEM, MIRACLEBERRY ; items
--- a/data/pokemon/base_stats/drowzee.asm
+++ b/data/pokemon/base_stats/drowzee.asm
@@ -3,7 +3,7 @@
 	db  60,  48,  45,  42,  43,  90
 	;   hp  atk  def  spd  sat  sdf
 
-	db PSYCHIC, PSYCHIC ; type
+	db PSYCHIC_TYPE, PSYCHIC_TYPE ; type
 	db 190 ; catch rate
 	db 102 ; base exp
 	db NO_ITEM, NO_ITEM ; items
--- a/data/pokemon/base_stats/espeon.asm
+++ b/data/pokemon/base_stats/espeon.asm
@@ -3,7 +3,7 @@
 	db  65,  65,  60, 110, 130,  95
 	;   hp  atk  def  spd  sat  sdf
 
-	db PSYCHIC, PSYCHIC ; type
+	db PSYCHIC_TYPE, PSYCHIC_TYPE ; type
 	db 45 ; catch rate
 	db 197 ; base exp
 	db NO_ITEM, NO_ITEM ; items
--- a/data/pokemon/base_stats/exeggcute.asm
+++ b/data/pokemon/base_stats/exeggcute.asm
@@ -3,7 +3,7 @@
 	db  60,  40,  80,  40,  60,  45
 	;   hp  atk  def  spd  sat  sdf
 
-	db GRASS, PSYCHIC ; type
+	db GRASS, PSYCHIC_TYPE ; type
 	db 90 ; catch rate
 	db 98 ; base exp
 	db NO_ITEM, NO_ITEM ; items
--- a/data/pokemon/base_stats/exeggutor.asm
+++ b/data/pokemon/base_stats/exeggutor.asm
@@ -3,7 +3,7 @@
 	db  95,  95,  85,  55, 125,  65
 	;   hp  atk  def  spd  sat  sdf
 
-	db GRASS, PSYCHIC ; type
+	db GRASS, PSYCHIC_TYPE ; type
 	db 45 ; catch rate
 	db 212 ; base exp
 	db NO_ITEM, NO_ITEM ; items
--- a/data/pokemon/base_stats/girafarig.asm
+++ b/data/pokemon/base_stats/girafarig.asm
@@ -3,7 +3,7 @@
 	db  70,  80,  65,  85,  90,  65
 	;   hp  atk  def  spd  sat  sdf
 
-	db NORMAL, PSYCHIC ; type
+	db NORMAL, PSYCHIC_TYPE ; type
 	db 60 ; catch rate
 	db 149 ; base exp
 	db NO_ITEM, NO_ITEM ; items
--- a/data/pokemon/base_stats/hypno.asm
+++ b/data/pokemon/base_stats/hypno.asm
@@ -3,7 +3,7 @@
 	db  85,  73,  70,  67,  73, 115
 	;   hp  atk  def  spd  sat  sdf
 
-	db PSYCHIC, PSYCHIC ; type
+	db PSYCHIC_TYPE, PSYCHIC_TYPE ; type
 	db 75 ; catch rate
 	db 165 ; base exp
 	db NO_ITEM, NO_ITEM ; items
--- a/data/pokemon/base_stats/jynx.asm
+++ b/data/pokemon/base_stats/jynx.asm
@@ -3,7 +3,7 @@
 	db  65,  50,  35,  95, 115,  95
 	;   hp  atk  def  spd  sat  sdf
 
-	db ICE, PSYCHIC ; type
+	db ICE, PSYCHIC_TYPE ; type
 	db 45 ; catch rate
 	db 137 ; base exp
 	db ICE_BERRY, ICE_BERRY ; items
--- a/data/pokemon/base_stats/kadabra.asm
+++ b/data/pokemon/base_stats/kadabra.asm
@@ -3,7 +3,7 @@
 	db  40,  35,  30, 105, 120,  70
 	;   hp  atk  def  spd  sat  sdf
 
-	db PSYCHIC, PSYCHIC ; type
+	db PSYCHIC_TYPE, PSYCHIC_TYPE ; type
 	db 100 ; catch rate
 	db 145 ; base exp
 	db NO_ITEM, NO_ITEM ; items
--- a/data/pokemon/base_stats/lugia.asm
+++ b/data/pokemon/base_stats/lugia.asm
@@ -3,7 +3,7 @@
 	db 106,  90, 130, 110,  90, 154
 	;   hp  atk  def  spd  sat  sdf
 
-	db PSYCHIC, FLYING ; type
+	db PSYCHIC_TYPE, FLYING ; type
 	db 3 ; catch rate
 	db 220 ; base exp
 	db NO_ITEM, NO_ITEM ; items
--- a/data/pokemon/base_stats/mew.asm
+++ b/data/pokemon/base_stats/mew.asm
@@ -3,7 +3,7 @@
 	db 100, 100, 100, 100, 100, 100
 	;   hp  atk  def  spd  sat  sdf
 
-	db PSYCHIC, PSYCHIC ; type
+	db PSYCHIC_TYPE, PSYCHIC_TYPE ; type
 	db 45 ; catch rate
 	db 64 ; base exp
 	db NO_ITEM, MIRACLEBERRY ; items
--- a/data/pokemon/base_stats/mewtwo.asm
+++ b/data/pokemon/base_stats/mewtwo.asm
@@ -3,7 +3,7 @@
 	db 106, 110,  90, 130, 154,  90
 	;   hp  atk  def  spd  sat  sdf
 
-	db PSYCHIC, PSYCHIC ; type
+	db PSYCHIC_TYPE, PSYCHIC_TYPE ; type
 	db 3 ; catch rate
 	db 220 ; base exp
 	db NO_ITEM, BERSERK_GENE ; items
--- a/data/pokemon/base_stats/mr__mime.asm
+++ b/data/pokemon/base_stats/mr__mime.asm
@@ -3,7 +3,7 @@
 	db  40,  45,  65,  90, 100, 120
 	;   hp  atk  def  spd  sat  sdf
 
-	db PSYCHIC, PSYCHIC ; type
+	db PSYCHIC_TYPE, PSYCHIC_TYPE ; type
 	db 45 ; catch rate
 	db 136 ; base exp
 	db NO_ITEM, MYSTERYBERRY ; items
--- a/data/pokemon/base_stats/natu.asm
+++ b/data/pokemon/base_stats/natu.asm
@@ -3,7 +3,7 @@
 	db  40,  50,  45,  70,  70,  45
 	;   hp  atk  def  spd  sat  sdf
 
-	db PSYCHIC, FLYING ; type
+	db PSYCHIC_TYPE, FLYING ; type
 	db 190 ; catch rate
 	db 73 ; base exp
 	db NO_ITEM, NO_ITEM ; items
--- a/data/pokemon/base_stats/slowbro.asm
+++ b/data/pokemon/base_stats/slowbro.asm
@@ -3,7 +3,7 @@
 	db  95,  75, 110,  30, 100,  80
 	;   hp  atk  def  spd  sat  sdf
 
-	db WATER, PSYCHIC ; type
+	db WATER, PSYCHIC_TYPE ; type
 	db 75 ; catch rate
 	db 164 ; base exp
 	db NO_ITEM, KINGS_ROCK ; items
--- a/data/pokemon/base_stats/slowking.asm
+++ b/data/pokemon/base_stats/slowking.asm
@@ -3,7 +3,7 @@
 	db  95,  75,  80,  30, 100, 110
 	;   hp  atk  def  spd  sat  sdf
 
-	db WATER, PSYCHIC ; type
+	db WATER, PSYCHIC_TYPE ; type
 	db 70 ; catch rate
 	db 164 ; base exp
 	db NO_ITEM, KINGS_ROCK ; items
--- a/data/pokemon/base_stats/slowpoke.asm
+++ b/data/pokemon/base_stats/slowpoke.asm
@@ -3,7 +3,7 @@
 	db  90,  65,  65,  15,  40,  40
 	;   hp  atk  def  spd  sat  sdf
 
-	db WATER, PSYCHIC ; type
+	db WATER, PSYCHIC_TYPE ; type
 	db 190 ; catch rate
 	db 99 ; base exp
 	db NO_ITEM, KINGS_ROCK ; items
--- a/data/pokemon/base_stats/smoochum.asm
+++ b/data/pokemon/base_stats/smoochum.asm
@@ -3,7 +3,7 @@
 	db  45,  30,  15,  65,  85,  65
 	;   hp  atk  def  spd  sat  sdf
 
-	db ICE, PSYCHIC ; type
+	db ICE, PSYCHIC_TYPE ; type
 	db 45 ; catch rate
 	db 87 ; base exp
 	db ICE_BERRY, ICE_BERRY ; items
--- a/data/pokemon/base_stats/starmie.asm
+++ b/data/pokemon/base_stats/starmie.asm
@@ -3,7 +3,7 @@
 	db  60,  75,  85, 115, 100,  85
 	;   hp  atk  def  spd  sat  sdf
 
-	db WATER, PSYCHIC ; type
+	db WATER, PSYCHIC_TYPE ; type
 	db 60 ; catch rate
 	db 207 ; base exp
 	db STARDUST, STAR_PIECE ; items
--- a/data/pokemon/base_stats/unown.asm
+++ b/data/pokemon/base_stats/unown.asm
@@ -3,7 +3,7 @@
 	db  48,  72,  48,  48,  72,  48
 	;   hp  atk  def  spd  sat  sdf
 
-	db PSYCHIC, PSYCHIC ; type
+	db PSYCHIC_TYPE, PSYCHIC_TYPE ; type
 	db 225 ; catch rate
 	db 61 ; base exp
 	db NO_ITEM, NO_ITEM ; items
--- a/data/pokemon/base_stats/wobbuffet.asm
+++ b/data/pokemon/base_stats/wobbuffet.asm
@@ -3,7 +3,7 @@
 	db 190,  33,  58,  33,  33,  58
 	;   hp  atk  def  spd  sat  sdf
 
-	db PSYCHIC, PSYCHIC ; type
+	db PSYCHIC_TYPE, PSYCHIC_TYPE ; type
 	db 45 ; catch rate
 	db 177 ; base exp
 	db NO_ITEM, NO_ITEM ; items
--- a/data/pokemon/base_stats/xatu.asm
+++ b/data/pokemon/base_stats/xatu.asm
@@ -3,7 +3,7 @@
 	db  65,  75,  70,  95,  95,  70
 	;   hp  atk  def  spd  sat  sdf
 
-	db PSYCHIC, FLYING ; type
+	db PSYCHIC_TYPE, FLYING ; type
 	db 75 ; catch rate
 	db 171 ; base exp
 	db NO_ITEM, NO_ITEM ; items
--- a/data/types/badge_type_boosts.asm
+++ b/data/types/badge_type_boosts.asm
@@ -1,21 +1,21 @@
 BadgeTypeBoosts:
 ; entries correspond to wJohtoBadges constants
-	db FLYING   ; ZEPHYRBADGE
-	db BUG      ; HIVEBADGE
-	db NORMAL   ; PLAINBADGE
-	db GHOST    ; FOGBADGE
-	db STEEL    ; MINERALBADGE
-	db FIGHTING ; STORMBADGE
-	db ICE      ; GLACIERBADGE
-	db DRAGON   ; RISINGBADGE
+	db FLYING       ; ZEPHYRBADGE
+	db BUG          ; HIVEBADGE
+	db NORMAL       ; PLAINBADGE
+	db GHOST        ; FOGBADGE
+	db STEEL        ; MINERALBADGE
+	db FIGHTING     ; STORMBADGE
+	db ICE          ; GLACIERBADGE
+	db DRAGON       ; RISINGBADGE
 	; fallthrough
 ; entries correspond to wKantoBadges constants
-	db ROCK     ; BOULDERBADGE
-	db WATER    ; CASCADEBADGE
-	db ELECTRIC ; THUNDERBADGE
-	db GRASS    ; RAINBOWBADGE
-	db POISON   ; SOULBADGE
-	db PSYCHIC  ; MARSHBADGE
-	db FIRE     ; VOLCANOBADGE
-	db GROUND   ; EARTHBADGE
+	db ROCK         ; BOULDERBADGE
+	db WATER        ; CASCADEBADGE
+	db ELECTRIC     ; THUNDERBADGE
+	db GRASS        ; RAINBOWBADGE
+	db POISON       ; SOULBADGE
+	db PSYCHIC_TYPE ; MARSHBADGE
+	db FIRE         ; VOLCANOBADGE
+	db GROUND       ; EARTHBADGE
 	db -1 ; end
--- a/data/types/search_types.asm
+++ b/data/types/search_types.asm
@@ -10,7 +10,7 @@
 	db POISON
 	db GROUND
 	db FLYING
-	db PSYCHIC
+	db PSYCHIC_TYPE
 	db BUG
 	db ROCK
 	db GHOST
--- a/data/types/type_boost_items.asm
+++ b/data/types/type_boost_items.asm
@@ -1,19 +1,19 @@
 TypeBoostItems:
-	db HELD_NORMAL_BOOST,   NORMAL   ; PINK_BOW/POLKADOT_BOW
-	db HELD_FIGHTING_BOOST, FIGHTING ; BLACKBELT
-	db HELD_FLYING_BOOST,   FLYING   ; SHARP_BEAK
-	db HELD_POISON_BOOST,   POISON   ; POISON BARB
-	db HELD_GROUND_BOOST,   GROUND   ; SOFT_SAND
-	db HELD_ROCK_BOOST,     ROCK     ; HARD_STONE
-	db HELD_BUG_BOOST,      BUG      ; SILVERPOWDER
-	db HELD_GHOST_BOOST,    GHOST    ; SPELL_TAG
-	db HELD_FIRE_BOOST,     FIRE     ; CHARCOAL
-	db HELD_WATER_BOOST,    WATER    ; MYSTIC WATER
-	db HELD_GRASS_BOOST,    GRASS    ; MIRACLE_SEED
-	db HELD_ELECTRIC_BOOST, ELECTRIC ; MAGNET
-	db HELD_PSYCHIC_BOOST,  PSYCHIC  ; TWISTEDSPOON
-	db HELD_ICE_BOOST,      ICE      ; NEVERMELTICE
-	db HELD_DRAGON_BOOST,   DRAGON   ; DRAGON_SCALE
-	db HELD_DARK_BOOST,     DARK     ; BLACKGLASSES
-	db HELD_STEEL_BOOST,    STEEL    ; METAL_COAT
+	db HELD_NORMAL_BOOST,   NORMAL       ; PINK_BOW/POLKADOT_BOW
+	db HELD_FIGHTING_BOOST, FIGHTING     ; BLACKBELT_I
+	db HELD_FLYING_BOOST,   FLYING       ; SHARP_BEAK
+	db HELD_POISON_BOOST,   POISON       ; POISON BARB
+	db HELD_GROUND_BOOST,   GROUND       ; SOFT_SAND
+	db HELD_ROCK_BOOST,     ROCK         ; HARD_STONE
+	db HELD_BUG_BOOST,      BUG          ; SILVERPOWDER
+	db HELD_GHOST_BOOST,    GHOST        ; SPELL_TAG
+	db HELD_FIRE_BOOST,     FIRE         ; CHARCOAL
+	db HELD_WATER_BOOST,    WATER        ; MYSTIC WATER
+	db HELD_GRASS_BOOST,    GRASS        ; MIRACLE_SEED
+	db HELD_ELECTRIC_BOOST, ELECTRIC     ; MAGNET
+	db HELD_PSYCHIC_BOOST,  PSYCHIC_TYPE ; TWISTEDSPOON
+	db HELD_ICE_BOOST,      ICE          ; NEVERMELTICE
+	db HELD_DRAGON_BOOST,   DRAGON       ; DRAGON_SCALE
+	db HELD_DARK_BOOST,     DARK         ; BLACKGLASSES
+	db HELD_STEEL_BOOST,    STEEL        ; METAL_COAT
 	db -1
--- a/data/types/type_matchups.asm
+++ b/data/types/type_matchups.asm
@@ -1,118 +1,118 @@
 TypeMatchups:
-	;  attacker,  defender,  *=
-	db NORMAL,    ROCK,      NOT_VERY_EFFECTIVE
-	db NORMAL,    STEEL,     NOT_VERY_EFFECTIVE
-	db FIRE,      FIRE,      NOT_VERY_EFFECTIVE
-	db FIRE,      WATER,     NOT_VERY_EFFECTIVE
-	db FIRE,      GRASS,     SUPER_EFFECTIVE
-	db FIRE,      ICE,       SUPER_EFFECTIVE
-	db FIRE,      BUG,       SUPER_EFFECTIVE
-	db FIRE,      ROCK,      NOT_VERY_EFFECTIVE
-	db FIRE,      DRAGON,    NOT_VERY_EFFECTIVE
-	db FIRE,      STEEL,     SUPER_EFFECTIVE
-	db WATER,     FIRE,      SUPER_EFFECTIVE
-	db WATER,     WATER,     NOT_VERY_EFFECTIVE
-	db WATER,     GRASS,     NOT_VERY_EFFECTIVE
-	db WATER,     GROUND,    SUPER_EFFECTIVE
-	db WATER,     ROCK,      SUPER_EFFECTIVE
-	db WATER,     DRAGON,    NOT_VERY_EFFECTIVE
-	db ELECTRIC,  WATER,     SUPER_EFFECTIVE
-	db ELECTRIC,  ELECTRIC,  NOT_VERY_EFFECTIVE
-	db ELECTRIC,  GRASS,     NOT_VERY_EFFECTIVE
-	db ELECTRIC,  GROUND,    NO_EFFECT
-	db ELECTRIC,  FLYING,    SUPER_EFFECTIVE
-	db ELECTRIC,  DRAGON,    NOT_VERY_EFFECTIVE
-	db GRASS,     FIRE,      NOT_VERY_EFFECTIVE
-	db GRASS,     WATER,     SUPER_EFFECTIVE
-	db GRASS,     GRASS,     NOT_VERY_EFFECTIVE
-	db GRASS,     POISON,    NOT_VERY_EFFECTIVE
-	db GRASS,     GROUND,    SUPER_EFFECTIVE
-	db GRASS,     FLYING,    NOT_VERY_EFFECTIVE
-	db GRASS,     BUG,       NOT_VERY_EFFECTIVE
-	db GRASS,     ROCK,      SUPER_EFFECTIVE
-	db GRASS,     DRAGON,    NOT_VERY_EFFECTIVE
-	db GRASS,     STEEL,     NOT_VERY_EFFECTIVE
-	db ICE,       WATER,     NOT_VERY_EFFECTIVE
-	db ICE,       GRASS,     SUPER_EFFECTIVE
-	db ICE,       ICE,       NOT_VERY_EFFECTIVE
-	db ICE,       GROUND,    SUPER_EFFECTIVE
-	db ICE,       FLYING,    SUPER_EFFECTIVE
-	db ICE,       DRAGON,    SUPER_EFFECTIVE
-	db ICE,       STEEL,     NOT_VERY_EFFECTIVE
-	db ICE,       FIRE,      NOT_VERY_EFFECTIVE
-	db FIGHTING,  NORMAL,    SUPER_EFFECTIVE
-	db FIGHTING,  ICE,       SUPER_EFFECTIVE
-	db FIGHTING,  POISON,    NOT_VERY_EFFECTIVE
-	db FIGHTING,  FLYING,    NOT_VERY_EFFECTIVE
-	db FIGHTING,  PSYCHIC,   NOT_VERY_EFFECTIVE
-	db FIGHTING,  BUG,       NOT_VERY_EFFECTIVE
-	db FIGHTING,  ROCK,      SUPER_EFFECTIVE
-	db FIGHTING,  DARK,      SUPER_EFFECTIVE
-	db FIGHTING,  STEEL,     SUPER_EFFECTIVE
-	db POISON,    GRASS,     SUPER_EFFECTIVE
-	db POISON,    POISON,    NOT_VERY_EFFECTIVE
-	db POISON,    GROUND,    NOT_VERY_EFFECTIVE
-	db POISON,    ROCK,      NOT_VERY_EFFECTIVE
-	db POISON,    GHOST,     NOT_VERY_EFFECTIVE
-	db POISON,    STEEL,     NO_EFFECT
-	db GROUND,    FIRE,      SUPER_EFFECTIVE
-	db GROUND,    ELECTRIC,  SUPER_EFFECTIVE
-	db GROUND,    GRASS,     NOT_VERY_EFFECTIVE
-	db GROUND,    POISON,    SUPER_EFFECTIVE
-	db GROUND,    FLYING,    NO_EFFECT
-	db GROUND,    BUG,       NOT_VERY_EFFECTIVE
-	db GROUND,    ROCK,      SUPER_EFFECTIVE
-	db GROUND,    STEEL,     SUPER_EFFECTIVE
-	db FLYING,    ELECTRIC,  NOT_VERY_EFFECTIVE
-	db FLYING,    GRASS,     SUPER_EFFECTIVE
-	db FLYING,    FIGHTING,  SUPER_EFFECTIVE
-	db FLYING,    BUG,       SUPER_EFFECTIVE
-	db FLYING,    ROCK,      NOT_VERY_EFFECTIVE
-	db FLYING,    STEEL,     NOT_VERY_EFFECTIVE
-	db PSYCHIC,   FIGHTING,  SUPER_EFFECTIVE
-	db PSYCHIC,   POISON,    SUPER_EFFECTIVE
-	db PSYCHIC,   PSYCHIC,   NOT_VERY_EFFECTIVE
-	db PSYCHIC,   DARK,      NO_EFFECT
-	db PSYCHIC,   STEEL,     NOT_VERY_EFFECTIVE
-	db BUG,       FIRE,      NOT_VERY_EFFECTIVE
-	db BUG,       GRASS,     SUPER_EFFECTIVE
-	db BUG,       FIGHTING,  NOT_VERY_EFFECTIVE
-	db BUG,       POISON,    NOT_VERY_EFFECTIVE
-	db BUG,       FLYING,    NOT_VERY_EFFECTIVE
-	db BUG,       PSYCHIC,   SUPER_EFFECTIVE
-	db BUG,       GHOST,     NOT_VERY_EFFECTIVE
-	db BUG,       DARK,      SUPER_EFFECTIVE
-	db BUG,       STEEL,     NOT_VERY_EFFECTIVE
-	db ROCK,      FIRE,      SUPER_EFFECTIVE
-	db ROCK,      ICE,       SUPER_EFFECTIVE
-	db ROCK,      FIGHTING,  NOT_VERY_EFFECTIVE
-	db ROCK,      GROUND,    NOT_VERY_EFFECTIVE
-	db ROCK,      FLYING,    SUPER_EFFECTIVE
-	db ROCK,      BUG,       SUPER_EFFECTIVE
-	db ROCK,      STEEL,     NOT_VERY_EFFECTIVE
-	db GHOST,     NORMAL,    NO_EFFECT
-	db GHOST,     PSYCHIC,   SUPER_EFFECTIVE
-	db GHOST,     DARK,      NOT_VERY_EFFECTIVE
-	db GHOST,     STEEL,     NOT_VERY_EFFECTIVE
-	db GHOST,     GHOST,     SUPER_EFFECTIVE
-	db DRAGON,    DRAGON,    SUPER_EFFECTIVE
-	db DRAGON,    STEEL,     NOT_VERY_EFFECTIVE
-	db DARK,      FIGHTING,  NOT_VERY_EFFECTIVE
-	db DARK,      PSYCHIC,   SUPER_EFFECTIVE
-	db DARK,      GHOST,     SUPER_EFFECTIVE
-	db DARK,      DARK,      NOT_VERY_EFFECTIVE
-	db DARK,      STEEL,     NOT_VERY_EFFECTIVE
-	db STEEL,     FIRE,      NOT_VERY_EFFECTIVE
-	db STEEL,     WATER,     NOT_VERY_EFFECTIVE
-	db STEEL,     ELECTRIC,  NOT_VERY_EFFECTIVE
-	db STEEL,     ICE,       SUPER_EFFECTIVE
-	db STEEL,     ROCK,      SUPER_EFFECTIVE
-	db STEEL,     STEEL,     NOT_VERY_EFFECTIVE
+	;  attacker,     defender,     *=
+	db NORMAL,       ROCK,         NOT_VERY_EFFECTIVE
+	db NORMAL,       STEEL,        NOT_VERY_EFFECTIVE
+	db FIRE,         FIRE,         NOT_VERY_EFFECTIVE
+	db FIRE,         WATER,        NOT_VERY_EFFECTIVE
+	db FIRE,         GRASS,        SUPER_EFFECTIVE
+	db FIRE,         ICE,          SUPER_EFFECTIVE
+	db FIRE,         BUG,          SUPER_EFFECTIVE
+	db FIRE,         ROCK,         NOT_VERY_EFFECTIVE
+	db FIRE,         DRAGON,       NOT_VERY_EFFECTIVE
+	db FIRE,         STEEL,        SUPER_EFFECTIVE
+	db WATER,        FIRE,         SUPER_EFFECTIVE
+	db WATER,        WATER,        NOT_VERY_EFFECTIVE
+	db WATER,        GRASS,        NOT_VERY_EFFECTIVE
+	db WATER,        GROUND,       SUPER_EFFECTIVE
+	db WATER,        ROCK,         SUPER_EFFECTIVE
+	db WATER,        DRAGON,       NOT_VERY_EFFECTIVE
+	db ELECTRIC,     WATER,        SUPER_EFFECTIVE
+	db ELECTRIC,     ELECTRIC,     NOT_VERY_EFFECTIVE
+	db ELECTRIC,     GRASS,        NOT_VERY_EFFECTIVE
+	db ELECTRIC,     GROUND,       NO_EFFECT
+	db ELECTRIC,     FLYING,       SUPER_EFFECTIVE
+	db ELECTRIC,     DRAGON,       NOT_VERY_EFFECTIVE
+	db GRASS,        FIRE,         NOT_VERY_EFFECTIVE
+	db GRASS,        WATER,        SUPER_EFFECTIVE
+	db GRASS,        GRASS,        NOT_VERY_EFFECTIVE
+	db GRASS,        POISON,       NOT_VERY_EFFECTIVE
+	db GRASS,        GROUND,       SUPER_EFFECTIVE
+	db GRASS,        FLYING,       NOT_VERY_EFFECTIVE
+	db GRASS,        BUG,          NOT_VERY_EFFECTIVE
+	db GRASS,        ROCK,         SUPER_EFFECTIVE
+	db GRASS,        DRAGON,       NOT_VERY_EFFECTIVE
+	db GRASS,        STEEL,        NOT_VERY_EFFECTIVE
+	db ICE,          WATER,        NOT_VERY_EFFECTIVE
+	db ICE,          GRASS,        SUPER_EFFECTIVE
+	db ICE,          ICE,          NOT_VERY_EFFECTIVE
+	db ICE,          GROUND,       SUPER_EFFECTIVE
+	db ICE,          FLYING,       SUPER_EFFECTIVE
+	db ICE,          DRAGON,       SUPER_EFFECTIVE
+	db ICE,          STEEL,        NOT_VERY_EFFECTIVE
+	db ICE,          FIRE,         NOT_VERY_EFFECTIVE
+	db FIGHTING,     NORMAL,       SUPER_EFFECTIVE
+	db FIGHTING,     ICE,          SUPER_EFFECTIVE
+	db FIGHTING,     POISON,       NOT_VERY_EFFECTIVE
+	db FIGHTING,     FLYING,       NOT_VERY_EFFECTIVE
+	db FIGHTING,     PSYCHIC_TYPE, NOT_VERY_EFFECTIVE
+	db FIGHTING,     BUG,          NOT_VERY_EFFECTIVE
+	db FIGHTING,     ROCK,         SUPER_EFFECTIVE
+	db FIGHTING,     DARK,         SUPER_EFFECTIVE
+	db FIGHTING,     STEEL,        SUPER_EFFECTIVE
+	db POISON,       GRASS,        SUPER_EFFECTIVE
+	db POISON,       POISON,       NOT_VERY_EFFECTIVE
+	db POISON,       GROUND,       NOT_VERY_EFFECTIVE
+	db POISON,       ROCK,         NOT_VERY_EFFECTIVE
+	db POISON,       GHOST,        NOT_VERY_EFFECTIVE
+	db POISON,       STEEL,        NO_EFFECT
+	db GROUND,       FIRE,         SUPER_EFFECTIVE
+	db GROUND,       ELECTRIC,     SUPER_EFFECTIVE
+	db GROUND,       GRASS,        NOT_VERY_EFFECTIVE
+	db GROUND,       POISON,       SUPER_EFFECTIVE
+	db GROUND,       FLYING,       NO_EFFECT
+	db GROUND,       BUG,          NOT_VERY_EFFECTIVE
+	db GROUND,       ROCK,         SUPER_EFFECTIVE
+	db GROUND,       STEEL,        SUPER_EFFECTIVE
+	db FLYING,       ELECTRIC,     NOT_VERY_EFFECTIVE
+	db FLYING,       GRASS,        SUPER_EFFECTIVE
+	db FLYING,       FIGHTING,     SUPER_EFFECTIVE
+	db FLYING,       BUG,          SUPER_EFFECTIVE
+	db FLYING,       ROCK,         NOT_VERY_EFFECTIVE
+	db FLYING,       STEEL,        NOT_VERY_EFFECTIVE
+	db PSYCHIC_TYPE, FIGHTING,     SUPER_EFFECTIVE
+	db PSYCHIC_TYPE, POISON,       SUPER_EFFECTIVE
+	db PSYCHIC_TYPE, PSYCHIC_TYPE, NOT_VERY_EFFECTIVE
+	db PSYCHIC_TYPE, DARK,         NO_EFFECT
+	db PSYCHIC_TYPE, STEEL,        NOT_VERY_EFFECTIVE
+	db BUG,          FIRE,         NOT_VERY_EFFECTIVE
+	db BUG,          GRASS,        SUPER_EFFECTIVE
+	db BUG,          FIGHTING,     NOT_VERY_EFFECTIVE
+	db BUG,          POISON,       NOT_VERY_EFFECTIVE
+	db BUG,          FLYING,       NOT_VERY_EFFECTIVE
+	db BUG,          PSYCHIC_TYPE, SUPER_EFFECTIVE
+	db BUG,          GHOST,        NOT_VERY_EFFECTIVE
+	db BUG,          DARK,         SUPER_EFFECTIVE
+	db BUG,          STEEL,        NOT_VERY_EFFECTIVE
+	db ROCK,         FIRE,         SUPER_EFFECTIVE
+	db ROCK,         ICE,          SUPER_EFFECTIVE
+	db ROCK,         FIGHTING,     NOT_VERY_EFFECTIVE
+	db ROCK,         GROUND,       NOT_VERY_EFFECTIVE
+	db ROCK,         FLYING,       SUPER_EFFECTIVE
+	db ROCK,         BUG,          SUPER_EFFECTIVE
+	db ROCK,         STEEL,        NOT_VERY_EFFECTIVE
+	db GHOST,        NORMAL,       NO_EFFECT
+	db GHOST,        PSYCHIC_TYPE, SUPER_EFFECTIVE
+	db GHOST,        DARK,         NOT_VERY_EFFECTIVE
+	db GHOST,        STEEL,        NOT_VERY_EFFECTIVE
+	db GHOST,        GHOST,        SUPER_EFFECTIVE
+	db DRAGON,       DRAGON,       SUPER_EFFECTIVE
+	db DRAGON,       STEEL,        NOT_VERY_EFFECTIVE
+	db DARK,         FIGHTING,     NOT_VERY_EFFECTIVE
+	db DARK,         PSYCHIC_TYPE, SUPER_EFFECTIVE
+	db DARK,         GHOST,        SUPER_EFFECTIVE
+	db DARK,         DARK,         NOT_VERY_EFFECTIVE
+	db DARK,         STEEL,        NOT_VERY_EFFECTIVE
+	db STEEL,        FIRE,         NOT_VERY_EFFECTIVE
+	db STEEL,        WATER,        NOT_VERY_EFFECTIVE
+	db STEEL,        ELECTRIC,     NOT_VERY_EFFECTIVE
+	db STEEL,        ICE,          SUPER_EFFECTIVE
+	db STEEL,        ROCK,         SUPER_EFFECTIVE
+	db STEEL,        STEEL,        NOT_VERY_EFFECTIVE
 
 	db -2 ; end (with Foresight)
 
 ; Foresight removes Ghost's immunities.
-	db NORMAL,    GHOST,     NO_EFFECT
-	db FIGHTING,  GHOST,     NO_EFFECT
+	db NORMAL,       GHOST,        NO_EFFECT
+	db FIGHTING,     GHOST,        NO_EFFECT
 
 	db -1 ; end
--- a/data/wild/roammon_maps.asm
+++ b/data/wild/roammon_maps.asm
@@ -4,7 +4,7 @@
 roam_map: MACRO
 	map_id \1
 	db _NARG - 1
-rept _NARG + -1
+rept _NARG - 1
 	map_id \2
 	shift
 endr
--- a/docs/bugs_and_glitches.md
+++ b/docs/bugs_and_glitches.md
@@ -901,8 +901,12 @@
  	ld hl, wEnemyMonType1
  	ldh a, [hBattleTurn]
  	and a
-	jr z, CheckTypeMatchup
+-	jr z, CheckTypeMatchup
++	jr z, .get_type
  	ld hl, wBattleMonType1
++.get_type
++	ld a, BATTLE_VARS_MOVE_TYPE
++	call GetBattleVar ; preserves hl, de, and bc
  CheckTypeMatchup:
 -; There is an incorrect assumption about this function made in the AI related code: when
 -; the AI calls CheckTypeMatchup (not BattleCheckTypeMatchup), it assumes that placing the
@@ -910,8 +914,6 @@
 -; this assumption is incorrect. A simple fix would be to load the move type for the
 -; current move into a in BattleCheckTypeMatchup, before falling through, which is
 -; consistent with how the rest of the code assumes this code works like.
-+	ld a, BATTLE_VARS_MOVE_TYPE
-+	call GetBattleVar ; preserves hl, de, and bc
  	push hl
  	push de
  	push bc
@@ -1840,8 +1842,8 @@
 
  	ld hl, wPlayerName
 
--rept NAME_LENGTH_JAPANESE + -2 ; should be PLAYER_NAME_LENGTH + -2
-+rept PLAYER_NAME_LENGTH + -2
+-rept NAME_LENGTH_JAPANESE - 2 ; should be PLAYER_NAME_LENGTH - 2
++rept PLAYER_NAME_LENGTH - 2
  	ld a, [de]
  	cp [hl]
  	jr nz, .notfound
--- a/engine/battle/move_effects/conversion.asm
+++ b/engine/battle/move_effects/conversion.asm
@@ -46,7 +46,7 @@
 	ld a, [hl]
 	cp -1
 	jr z, .fail
-	cp CURSE_T
+	cp CURSE_TYPE
 	jr z, .next
 	ld a, [de]
 	cp [hl]
@@ -75,7 +75,7 @@
 	ld a, [hl]
 	cp -1
 	jr z, .loop3
-	cp CURSE_T
+	cp CURSE_TYPE
 	jr z, .loop3
 	ld a, [de]
 	cp [hl]
--- a/engine/battle/move_effects/conversion2.asm
+++ b/engine/battle/move_effects/conversion2.asm
@@ -20,7 +20,7 @@
 	call GetMoveAttr
 	ld d, a
 	pop hl
-	cp CURSE_T
+	cp CURSE_TYPE
 	jr z, .failed
 	call AnimateCurrentMove
 	call BattleCommand_SwitchTurn
--- a/engine/battle_anims/anim_commands.asm
+++ b/engine/battle_anims/anim_commands.asm
@@ -237,14 +237,14 @@
 	bit BATTLEANIM_KEEPSPRITES_F, a
 	jr z, .delete
 
-	; Instead of deleting the sprites, make them all use palette 0 (monochrome)
+	; Instead of deleting the sprites, make them all use PAL_BATTLE_OB_ENEMY
 	ld hl, wVirtualOAMSprite00Attributes
 	ld c, NUM_SPRITE_OAM_STRUCTS
 .loop
 	ld a, [hl]
-	and $ff ^ (PALETTE_MASK | VRAM_BANK_1)
+	and $ff ^ (PALETTE_MASK | VRAM_BANK_1) ; PAL_BATTLE_OB_ENEMY (0)
 	ld [hli], a
-rept SPRITEOAMSTRUCT_LENGTH + -1
+rept SPRITEOAMSTRUCT_LENGTH - 1
 	inc hl
 endr
 	dec c
--- a/engine/events/battle_tower/battle_tower.asm
+++ b/engine/events/battle_tower/battle_tower.asm
@@ -395,10 +395,10 @@
 	ld a, [hl]
 	and a
 x = $ff
-rept ($ff + -NUM_POKEMON)
+rept ($ff - NUM_POKEMON)
 	jr z, .invalid
 	cp x
-x = x + -1
+x = x - 1
 endr
 	jr nz, .valid
 
--- a/engine/events/bug_contest/judging.asm
+++ b/engine/events/bug_contest/judging.asm
@@ -211,7 +211,7 @@
 CopyTempContestant:
 ; Could've just called CopyBytes.
 	ld de, wBugContestTempWinnerID
-rept BUG_CONTESTANT_SIZE + -1
+rept BUG_CONTESTANT_SIZE - 1
 	ld a, [de]
 	inc de
 	ld [hli], a
--- a/engine/events/celebi.asm
+++ b/engine/events/celebi.asm
@@ -57,7 +57,7 @@
 	ld c, 4
 .OAMloop:
 	ld [hli], a ; tile id
-rept SPRITEOAMSTRUCT_LENGTH + -1
+rept SPRITEOAMSTRUCT_LENGTH - 1
 	inc hl
 endr
 	inc a
--- a/engine/events/field_moves.asm
+++ b/engine/events/field_moves.asm
@@ -383,7 +383,7 @@
 	ld c, 4
 .OAMloop
 	ld [hli], a ; tile id
-rept SPRITEOAMSTRUCT_LENGTH + -1
+rept SPRITEOAMSTRUCT_LENGTH - 1
 	inc hl
 endr
 	inc a
--- a/engine/events/print_unown_2.asm
+++ b/engine/events/print_unown_2.asm
@@ -98,10 +98,10 @@
 gbprinterrect: MACRO
 y = 0
 rept \1
-x = \1 * (\2 + -1) + y
+x = \1 * (\2 - 1) + y
 rept \2
 	dw wGameboyPrinterRAM tile x
-x = x + -\2
+x = x - \2
 endr
 y = y + 1
 endr
--- a/engine/events/std_scripts.asm
+++ b/engine/events/std_scripts.asm
@@ -535,7 +535,7 @@
 	setevent EVENT_PLAYERS_HOUSE_2F_DOLL_2
 	setevent EVENT_PLAYERS_HOUSE_2F_BIG_DOLL
 	setevent EVENT_DECO_BED_1
-	setevent EVENT_DECO_PLANT_4
+	setevent EVENT_DECO_POSTER_1
 	setevent EVENT_GOLDENROD_TRAIN_STATION_GENTLEMAN
 	setevent EVENT_OLIVINE_GYM_JASMINE
 	setevent EVENT_BLACKTHORN_CITY_GRAMPS_NOT_BLOCKING_DRAGONS_DEN
--- a/engine/games/slot_machine.asm
+++ b/engine/games/slot_machine.asm
@@ -261,7 +261,7 @@
 	ld a, [hl]
 	xor %00100000
 	ld [hli], a ; tile id
-rept SPRITEOAMSTRUCT_LENGTH + -1
+rept SPRITEOAMSTRUCT_LENGTH - 1
 	inc hl
 endr
 	dec c
--- a/engine/gfx/pic_animation.asm
+++ b/engine/gfx/pic_animation.asm
@@ -538,7 +538,7 @@
 poke_anim_box: MACRO
 y = 7
 rept \1
-x = 7 + -\1
+x = 7 - \1
 rept \1
 	db x + y
 x = x + 1
--- a/engine/items/item_effects.asm
+++ b/engine/items/item_effects.asm
@@ -110,7 +110,7 @@
 	dw NoEffect            ; MYSTIC_WATER
 	dw NoEffect            ; TWISTEDSPOON
 	dw NoEffect            ; WHT_APRICORN
-	dw NoEffect            ; BLACKBELT
+	dw NoEffect            ; BLACKBELT_I
 	dw NoEffect            ; BLK_APRICORN
 	dw NoEffect            ; ITEM_64
 	dw NoEffect            ; PNK_APRICORN
--- a/engine/menus/options_menu.asm
+++ b/engine/menus/options_menu.asm
@@ -114,7 +114,7 @@
 	ld a, c ; right pressed
 	cp OPT_TEXT_SPEED_SLOW
 	jr c, .Increase
-	ld c, OPT_TEXT_SPEED_FAST + -1
+	ld c, OPT_TEXT_SPEED_FAST - 1
 
 .Increase:
 	inc c
--- a/engine/movie/crystal_intro.asm
+++ b/engine/movie/crystal_intro.asm
@@ -1796,9 +1796,9 @@
 hue = 31
 rept 8
 	RGB hue, hue, hue
-hue = hue + -1
+hue = hue - 1
 	RGB hue, hue, hue
-hue = hue + -2
+hue = hue - 2
 endr
 
 .SlowFadePalettes:
@@ -1805,7 +1805,7 @@
 hue = 31
 rept 16
 	RGB hue, hue, hue
-hue = hue + -1
+hue = hue - 1
 endr
 
 Intro_LoadTilemap:
--- a/engine/movie/evolution_animation.asm
+++ b/engine/movie/evolution_animation.asm
@@ -339,7 +339,7 @@
 	ld a, [hl]
 	or b
 	ld [hli], a ; attributes
-rept SPRITEOAMSTRUCT_LENGTH + -1
+rept SPRITEOAMSTRUCT_LENGTH - 1
 	inc hl
 endr
 	dec c
--- a/engine/movie/title.asm
+++ b/engine/movie/title.asm
@@ -356,7 +356,7 @@
 	ld a, [hl]
 	add 2
 	ld [hli], a ; y
-rept SPRITEOAMSTRUCT_LENGTH + -1
+rept SPRITEOAMSTRUCT_LENGTH - 1
 	inc hl
 endr
 	dec c
--- a/engine/pokemon/bills_pc.asm
+++ b/engine/pokemon/bills_pc.asm
@@ -1472,7 +1472,7 @@
 	inc hl
 	ld [de], a ; y
 	inc de
-rept SPRITEOAMSTRUCT_LENGTH + -1
+rept SPRITEOAMSTRUCT_LENGTH - 1
 	ld a, [hli]
 	ld [de], a
 	inc de
@@ -1520,7 +1520,7 @@
 	inc hl
 	ld [de], a ; y
 	inc de
-rept SPRITEOAMSTRUCT_LENGTH + -1
+rept SPRITEOAMSTRUCT_LENGTH - 1
 	ld a, [hli]
 	ld [de], a
 	inc de
--- a/engine/pokemon/move_mon.asm
+++ b/engine/pokemon/move_mon.asm
@@ -117,7 +117,7 @@
 	and a
 	jr nz, .randomlygeneratemoves
 	ld de, wEnemyMonMoves
-rept NUM_MOVES + -1
+rept NUM_MOVES - 1
 	ld a, [de]
 	inc de
 	ld [hli], a
@@ -128,7 +128,7 @@
 
 .randomlygeneratemoves
 	xor a
-rept NUM_MOVES + -1
+rept NUM_MOVES - 1
 	ld [hli], a
 endr
 	ld [hl], a
--- a/engine/pokemon/search.asm
+++ b/engine/pokemon/search.asm
@@ -216,7 +216,7 @@
 
 	ld hl, wPlayerName
 
-rept NAME_LENGTH_JAPANESE + -2 ; should be PLAYER_NAME_LENGTH + -2
+rept NAME_LENGTH_JAPANESE - 2 ; should be PLAYER_NAME_LENGTH - 2
 	ld a, [de]
 	cp [hl]
 	jr nz, .notfound
--- a/engine/pokemon/stats_screen.asm
+++ b/engine/pokemon/stats_screen.asm
@@ -2,8 +2,10 @@
 	const PINK_PAGE  ; 1
 	const GREEN_PAGE ; 2
 	const BLUE_PAGE  ; 3
-NUM_STAT_PAGES EQU const_value + -1
+NUM_STAT_PAGES EQU const_value - 1
 
+STAT_PAGE_MASK EQU %00000011
+
 BattleStatsScreenInit:
 	ld a, [wLinkMode]
 	cp LINK_MOBILE
@@ -63,8 +65,8 @@
 ; ???
 	ld [wcf64], a
 	ld a, [wcf64]
-	and %11111100
-	or 1
+	and $ff ^ STAT_PAGE_MASK
+	or PINK_PAGE ; first_page
 	ld [wcf64], a
 .loop
 	ld a, [wJumptableIndex]
@@ -71,7 +73,7 @@
 	and $ff ^ (1 << 7)
 	ld hl, StatsScreenPointerTable
 	rst JumpTable
-	call StatsScreen_WaitAnim ; check for keys?
+	call StatsScreen_WaitAnim
 	ld a, [wJumptableIndex]
 	bit 7, a
 	jr z, .loop
@@ -83,13 +85,13 @@
 ; ???
 	ld [wcf64], a
 	ld a, [wcf64]
-	and %11111100
-	or 1
+	and $ff ^ STAT_PAGE_MASK
+	or PINK_PAGE ; first_page
 	ld [wcf64], a
 .loop
 	farcall Mobile_SetOverworldDelay
 	ld a, [wJumptableIndex]
-	and $ff ^ (1 << 7)
+	and $7f
 	ld hl, StatsScreenPointerTable
 	rst JumpTable
 	call StatsScreen_WaitAnim
@@ -355,7 +357,7 @@
 
 .set_page
 	ld a, [wcf64]
-	and %11111100
+	and $ff ^ STAT_PAGE_MASK
 	or c
 	ld [wcf64], a
 	ld h, 4
@@ -759,7 +761,7 @@
 	jr z, .done
 	cp $7f
 	jr z, .done
-	and $80
+	and CAUGHT_GENDER_MASK
 	ld a, "♂"
 	jr z, .got_gender
 	ld a, "♀"
--- a/gfx/tileset_palette_maps.asm
+++ b/gfx/tileset_palette_maps.asm
@@ -2,7 +2,7 @@
 ; used in gfx/tilesets/*_palette_map.asm
 ; vram bank, pals
 x = \1 << OAM_TILE_BANK
-rept (_NARG + -1) / 2
+rept (_NARG - 1) / 2
 	dn (x | PAL_BG_\3), (x | PAL_BG_\2)
 	shift
 	shift
--- a/home/map.asm
+++ b/home/map.asm
@@ -163,7 +163,7 @@
 	ld h, a
 
 	; copy the 4x4 metatile
-rept METATILE_WIDTH + -1
+rept METATILE_WIDTH - 1
 rept METATILE_WIDTH
 	ld a, [hli]
 	ld [de], a
--- a/macros/data.asm
+++ b/macros/data.asm
@@ -51,7 +51,7 @@
 x = 8 * ((\1) - 1)
 rept \1
 	db ((\2) >> x) & $ff
-x = x + -8
+x = x - 8
 endr
 ENDM
 
--- a/macros/enum.asm
+++ b/macros/enum.asm
@@ -9,7 +9,7 @@
 if _NARG >= 2
 __enumdir__ = \2
 else
-__enumdir__ = +1
+__enumdir__ = 1
 endc
 ENDM
 
--- a/macros/scripts/audio.asm
+++ b/macros/scripts/audio.asm
@@ -41,7 +41,7 @@
 ENDM
 
 ; MusicCommands indexes (see audio/engine.asm)
-	enum_start $d0, +8
+	enum_start $d0, 8
 FIRST_MUSIC_CMD EQU __enum__
 
 	enum octave_cmd ; $d0
@@ -49,7 +49,7 @@
 	db octave_cmd | 8 - (\1) ; octave
 ENDM
 
-__enumdir__ = +1
+__enumdir__ = 1
 
 	enum note_type_cmd ; $d8
 note_type: MACRO
--- a/macros/scripts/gfx_anims.asm
+++ b/macros/scripts/gfx_anims.asm
@@ -4,7 +4,7 @@
 	db \1
 x = \2
 if _NARG > 2
-rept _NARG + -2
+rept _NARG - 2
 x = x | (1 << (\3 + 1))
 	shift
 endr
--- a/macros/scripts/movement.asm
+++ b/macros/scripts/movement.asm
@@ -1,5 +1,5 @@
 ; MovementPointers indexes (see engine/overworld/movement.asm)
-	enum_start 0, +4
+	enum_start 0, 4
 
 ; Directional movements
 
@@ -73,7 +73,7 @@
 	db movement_fast_jump_step | \1
 ENDM
 
-__enumdir__ = +1
+__enumdir__ = 1
 
 ; Control
 	enum movement_remove_sliding ; $38
--- a/macros/wram.asm
+++ b/macros/wram.asm
@@ -106,7 +106,7 @@
 \1Species::         ds MONS_PER_BOX + 1
 \1Mons::
 \1Mon1::            box_struct \1Mon1
-\1Mon2::            ds BOXMON_STRUCT_LENGTH * (MONS_PER_BOX + -1)
+\1Mon2::            ds BOXMON_STRUCT_LENGTH * (MONS_PER_BOX - 1)
 \1MonOT::           ds NAME_LENGTH * MONS_PER_BOX
 \1MonNicknames::    ds MON_NAME_LENGTH * MONS_PER_BOX
 \1MonNicknamesEnd::
@@ -171,7 +171,7 @@
 ENDM
 
 battle_tower_struct: MACRO
-\1Name:: ds NAME_LENGTH + -1
+\1Name:: ds NAME_LENGTH - 1
 \1TrainerClass:: ds 1
 \1Mon1:: party_struct \1Mon1
 \1Mon1Name:: ds MON_NAME_LENGTH
@@ -217,7 +217,7 @@
 \1ID::       dw
 \1DVs::      dw
 \1Level::    db
-\1Nickname:: ds MON_NAME_LENGTH + -1
+\1Nickname:: ds MON_NAME_LENGTH - 1
 \1End::
 ENDM
 
@@ -233,7 +233,7 @@
 ENDM
 
 link_battle_record: MACRO
-\1Name::   ds NAME_LENGTH + -1
+\1Name::   ds NAME_LENGTH - 1
 \1ID::     dw
 \1Wins::   dw
 \1Losses:: dw
--- a/maps/LakeOfRage.asm
+++ b/maps/LakeOfRage.asm
@@ -202,7 +202,7 @@
 .MetWesley:
 	writetext WesleyGivesGiftText
 	promptbutton
-	verbosegiveitem BLACKBELT
+	verbosegiveitem BLACKBELT_I
 	iffalse WesleyDoneScript
 	setevent EVENT_GOT_BLACKBELT_FROM_WESLEY
 	writetext WesleyGaveGiftText
--- a/mobile/fixed_words.asm
+++ b/mobile/fixed_words.asm
@@ -4059,7 +4059,7 @@
 ; 12 words per page (0-based indexing)
 x = \1 / 12
 if \1 % 12 == 0
-x = x + -1
+x = x - 1
 endc
 	db x
 ENDM
--- a/wram.asm
+++ b/wram.asm
@@ -2399,9 +2399,9 @@
 ; bit 2: female player has been transformed into male
 ; bits 0-1: direction facing
 	db
-wMapReentryScriptQueueFlag:: db ; d45c MemScriptFlag
-wMapReentryScriptBank:: db ; d45d MemScriptBank
-wMapReentryScriptAddress:: dw ; d45e MemScriptAddr
+wMapReentryScriptQueueFlag:: db ; d45c
+wMapReentryScriptBank:: db ; d45d
+wMapReentryScriptAddress:: dw ; d45e
 	ds 4
 wTimeCyclesSinceLastCall:: db ; d464
 wReceiveCallDelay_MinsRemaining:: db ; d465
@@ -2868,10 +2868,10 @@
 wLastSpawnMapNumber:: db
 
 wWarpNumber:: db ; dcb4
-wMapGroup:: db ; dcb5 ; map group of current map
-wMapNumber:: db ; dcb6 ; map number of current map
-wYCoord:: db ; dcb7 ; current y coordinate relative to top-left corner of current map
-wXCoord:: db ; dcb8 ; current x coordinate relative to top-left corner of current map
+wMapGroup:: db ; dcb5
+wMapNumber:: db ; dcb6
+wYCoord:: db ; dcb7
+wXCoord:: db ; dcb8
 wScreenSave:: ds SCREEN_META_WIDTH * SCREEN_META_HEIGHT
 
 wCurMapDataEnd::
@@ -2881,8 +2881,8 @@
 
 wPokemonData::
 
-wPartyCount::   db ; dcd7 ; number of Pokémon in party
-wPartySpecies:: ds PARTY_LENGTH ; dcd8 ; species of each Pokémon in party
+wPartyCount::   db ; dcd7
+wPartySpecies:: ds PARTY_LENGTH ; dcd8
 wPartyEnd::     db ; dcde ; older code doesn't check wPartyCount
 
 wPartyMons::