#define LEVEL_UP_MOVE(lvl, moveLearned) {.move = moveLearned, .level = lvl}
#define LEVEL_UP_END (0xffff)

static const struct LevelUpMove sBulbasaurLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 3, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE( 9, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(13, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(19, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(25, MOVE_GROWTH),
    LEVEL_UP_MOVE(27, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(31, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(33, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(37, MOVE_SEED_BOMB),
    LEVEL_UP_END
};

static const struct LevelUpMove sIvysaurLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE( 3, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE( 9, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(13, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(20, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(23, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(28, MOVE_GROWTH),
    LEVEL_UP_MOVE(31, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(36, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(39, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(44, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sVenusaurLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 3, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE( 9, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(13, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(20, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(23, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(28, MOVE_GROWTH),
    LEVEL_UP_MOVE(31, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(39, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(45, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(50, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE(53, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sCharmanderLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_EMBER),
    LEVEL_UP_MOVE(10, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(16, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE(19, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(25, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(28, MOVE_FLAME_BURST),
    LEVEL_UP_MOVE(34, MOVE_SLASH),
    LEVEL_UP_MOVE(37, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(43, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(46, MOVE_INFERNO),
    LEVEL_UP_END
};

static const struct LevelUpMove sCharmeleonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 7, MOVE_EMBER),
    LEVEL_UP_MOVE(10, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(17, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE(21, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(28, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(32, MOVE_FLAME_BURST),
    LEVEL_UP_MOVE(39, MOVE_SLASH),
    LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(50, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(54, MOVE_INFERNO),
    LEVEL_UP_END
};

static const struct LevelUpMove sCharizardLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE( 1, MOVE_HEAT_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 7, MOVE_EMBER),
    LEVEL_UP_MOVE(10, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(17, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE(21, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(28, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(32, MOVE_FLAME_BURST),
    LEVEL_UP_MOVE(41, MOVE_SLASH),
    LEVEL_UP_MOVE(47, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(56, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(62, MOVE_INFERNO),
    LEVEL_UP_MOVE(71, MOVE_HEAT_WAVE),
    LEVEL_UP_MOVE(77, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sSquirtleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(10, MOVE_WITHDRAW),
    LEVEL_UP_MOVE(13, MOVE_BUBBLE),
    LEVEL_UP_MOVE(16, MOVE_BITE),
    LEVEL_UP_MOVE(19, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(22, MOVE_PROTECT),
    LEVEL_UP_MOVE(25, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(28, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(31, MOVE_SKULL_BASH),
    LEVEL_UP_MOVE(34, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sWartortleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(10, MOVE_WITHDRAW),
    LEVEL_UP_MOVE(13, MOVE_BUBBLE),
    LEVEL_UP_MOVE(17, MOVE_BITE),
    LEVEL_UP_MOVE(21, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(25, MOVE_PROTECT),
    LEVEL_UP_MOVE(29, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(33, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(37, MOVE_SKULL_BASH),
    LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(45, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sBlastoiseLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(10, MOVE_WITHDRAW),
    LEVEL_UP_MOVE(13, MOVE_BUBBLE),
    LEVEL_UP_MOVE(17, MOVE_BITE),
    LEVEL_UP_MOVE(21, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(25, MOVE_PROTECT),
    LEVEL_UP_MOVE(29, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(33, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(40, MOVE_SKULL_BASH),
    LEVEL_UP_MOVE(47, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(54, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sCaterpieLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 9, MOVE_BUG_BITE),
    LEVEL_UP_END
};

static const struct LevelUpMove sMetapodLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_END
};

static const struct LevelUpMove sButterfreeLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE(11, MOVE_CONFUSION),
    LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(13, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(13, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(17, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(19, MOVE_SILVER_WIND),
    LEVEL_UP_MOVE(23, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(25, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(29, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(31, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(35, MOVE_RAGE_POWDER),
    LEVEL_UP_MOVE(37, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(41, MOVE_TAILWIND),
    LEVEL_UP_MOVE(43, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(47, MOVE_QUIVER_DANCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sWeedleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 9, MOVE_BUG_BITE),
    LEVEL_UP_END
};

static const struct LevelUpMove sKakunaLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_END
};

static const struct LevelUpMove sBeedrillLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_TWINEEDLE),
    LEVEL_UP_MOVE( 1, MOVE_TWINEEDLE),
    LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(11, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(14, MOVE_RAGE),
    LEVEL_UP_MOVE(17, MOVE_PURSUIT),
    LEVEL_UP_MOVE(20, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(23, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(26, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(29, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(32, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(35, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(38, MOVE_AGILITY),
    LEVEL_UP_MOVE(41, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(44, MOVE_FELL_STINGER),
    LEVEL_UP_END
};

static const struct LevelUpMove sPidgeyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_GUST),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(21, MOVE_TWISTER),
    LEVEL_UP_MOVE(25, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(29, MOVE_AGILITY),
    LEVEL_UP_MOVE(33, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(37, MOVE_ROOST),
    LEVEL_UP_MOVE(41, MOVE_TAILWIND),
    LEVEL_UP_MOVE(45, MOVE_MIRROR_MOVE),
    LEVEL_UP_MOVE(49, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(53, MOVE_HURRICANE),
    LEVEL_UP_END
};

static const struct LevelUpMove sPidgeottoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_GUST),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(22, MOVE_TWISTER),
    LEVEL_UP_MOVE(27, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(32, MOVE_AGILITY),
    LEVEL_UP_MOVE(37, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(42, MOVE_ROOST),
    LEVEL_UP_MOVE(47, MOVE_TAILWIND),
    LEVEL_UP_MOVE(52, MOVE_MIRROR_MOVE),
    LEVEL_UP_MOVE(57, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(62, MOVE_HURRICANE),
    LEVEL_UP_END
};

static const struct LevelUpMove sPidgeotLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HURRICANE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_GUST),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(22, MOVE_TWISTER),
    LEVEL_UP_MOVE(27, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(32, MOVE_AGILITY),
    LEVEL_UP_MOVE(38, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(44, MOVE_ROOST),
    LEVEL_UP_MOVE(50, MOVE_TAILWIND),
    LEVEL_UP_MOVE(56, MOVE_MIRROR_MOVE),
    LEVEL_UP_MOVE(62, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(68, MOVE_HURRICANE),
    LEVEL_UP_END
};

static const struct LevelUpMove sRattataLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(10, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_PURSUIT),
    LEVEL_UP_MOVE(16, MOVE_HYPER_FANG),
    LEVEL_UP_MOVE(19, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(22, MOVE_CRUNCH),
    LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(28, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(31, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(34, MOVE_ENDEAVOR),
    LEVEL_UP_END
};

static const struct LevelUpMove sRaticateLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(10, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_PURSUIT),
    LEVEL_UP_MOVE(16, MOVE_HYPER_FANG),
    LEVEL_UP_MOVE(19, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(24, MOVE_CRUNCH),
    LEVEL_UP_MOVE(29, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(34, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(44, MOVE_ENDEAVOR),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpearowLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 8, MOVE_PURSUIT),
    LEVEL_UP_MOVE(11, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(18, MOVE_MIRROR_MOVE),
    LEVEL_UP_MOVE(22, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(25, MOVE_AGILITY),
    LEVEL_UP_MOVE(29, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(32, MOVE_ROOST),
    LEVEL_UP_MOVE(36, MOVE_DRILL_PECK),
    LEVEL_UP_END
};

static const struct LevelUpMove sFearowLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DRILL_RUN),
    LEVEL_UP_MOVE( 1, MOVE_PLUCK),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_PURSUIT),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 8, MOVE_PURSUIT),
    LEVEL_UP_MOVE(11, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(18, MOVE_MIRROR_MOVE),
    LEVEL_UP_MOVE(23, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(27, MOVE_AGILITY),
    LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(36, MOVE_ROOST),
    LEVEL_UP_MOVE(41, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(45, MOVE_DRILL_RUN),
    LEVEL_UP_END
};

static const struct LevelUpMove sEkansLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 9, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_GLARE),
    LEVEL_UP_MOVE(17, MOVE_SCREECH),
    LEVEL_UP_MOVE(20, MOVE_ACID),
    LEVEL_UP_MOVE(25, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(25, MOVE_SWALLOW),
    LEVEL_UP_MOVE(25, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(28, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(33, MOVE_MUD_BOMB),
    LEVEL_UP_MOVE(36, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(38, MOVE_BELCH),
    LEVEL_UP_MOVE(41, MOVE_HAZE),
    LEVEL_UP_MOVE(44, MOVE_COIL),
    LEVEL_UP_MOVE(49, MOVE_GUNK_SHOT),
    LEVEL_UP_END
};

static const struct LevelUpMove sArbokLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 4, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 9, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_GLARE),
    LEVEL_UP_MOVE(17, MOVE_SCREECH),
    LEVEL_UP_MOVE(20, MOVE_ACID),
    LEVEL_UP_MOVE(27, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(27, MOVE_SWALLOW),
    LEVEL_UP_MOVE(27, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(32, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(39, MOVE_MUD_BOMB),
    LEVEL_UP_MOVE(44, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(48, MOVE_BELCH),
    LEVEL_UP_MOVE(51, MOVE_HAZE),
    LEVEL_UP_MOVE(56, MOVE_COIL),
    LEVEL_UP_MOVE(63, MOVE_GUNK_SHOT),
    LEVEL_UP_END
};

static const struct LevelUpMove sPikachuLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 5, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(18, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(21, MOVE_FEINT),
    LEVEL_UP_MOVE(23, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(26, MOVE_SPARK),
    LEVEL_UP_MOVE(29, MOVE_NUZZLE),
    LEVEL_UP_MOVE(34, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(37, MOVE_SLAM),
    LEVEL_UP_MOVE(42, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE(45, MOVE_AGILITY),
    LEVEL_UP_MOVE(50, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(53, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(58, MOVE_THUNDER),
    LEVEL_UP_END
};

static const struct LevelUpMove sRaichuLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT),
    LEVEL_UP_END
};

static const struct LevelUpMove sSandshrewLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 7, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(11, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(14, MOVE_MAGNITUDE),
    LEVEL_UP_MOVE(17, MOVE_SWIFT),
    LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(23, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(26, MOVE_SLASH),
    LEVEL_UP_MOVE(30, MOVE_DIG),
    LEVEL_UP_MOVE(34, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(38, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(42, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSandslashLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_CRUSH_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_CRUSH_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 7, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(11, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(14, MOVE_MAGNITUDE),
    LEVEL_UP_MOVE(17, MOVE_SWIFT),
    LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(24, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(28, MOVE_SLASH),
    LEVEL_UP_MOVE(33, MOVE_DIG),
    LEVEL_UP_MOVE(38, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(43, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(48, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(53, MOVE_EARTHQUAKE),
    LEVEL_UP_END
};

static const struct LevelUpMove sNidoranMLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 9, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(13, MOVE_POISON_STING),
    LEVEL_UP_MOVE(19, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(21, MOVE_BITE),
    LEVEL_UP_MOVE(25, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(31, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(33, MOVE_FLATTER),
    LEVEL_UP_MOVE(37, MOVE_CRUNCH),
    LEVEL_UP_MOVE(43, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(45, MOVE_POISON_FANG),
    LEVEL_UP_END
};

static const struct LevelUpMove sNidorinaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 9, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(13, MOVE_POISON_STING),
    LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(23, MOVE_BITE),
    LEVEL_UP_MOVE(28, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(35, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(38, MOVE_FLATTER),
    LEVEL_UP_MOVE(43, MOVE_CRUNCH),
    LEVEL_UP_MOVE(50, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(58, MOVE_POISON_FANG),
    LEVEL_UP_END
};

static const struct LevelUpMove sNidoqueenLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE(23, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(35, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(43, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(58, MOVE_SUPERPOWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sNidoranFLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 9, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(13, MOVE_POISON_STING),
    LEVEL_UP_MOVE(19, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(21, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE(25, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(31, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(33, MOVE_FLATTER),
    LEVEL_UP_MOVE(37, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(43, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(45, MOVE_HORN_DRILL),
    LEVEL_UP_END
};

static const struct LevelUpMove sNidorinoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 9, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(13, MOVE_POISON_STING),
    LEVEL_UP_MOVE(20, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(23, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE(28, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(35, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(38, MOVE_FLATTER),
    LEVEL_UP_MOVE(43, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(50, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(58, MOVE_HORN_DRILL),
    LEVEL_UP_END
};

static const struct LevelUpMove sNidokingLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MEGAHORN),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE(23, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(35, MOVE_THRASH),
    LEVEL_UP_MOVE(43, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(58, MOVE_MEGAHORN),
    LEVEL_UP_END
};

static const struct LevelUpMove sClefairyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPOTLIGHT),
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_ENCORE),
    LEVEL_UP_MOVE( 7, MOVE_SING),
    LEVEL_UP_MOVE(10, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE(16, MOVE_FOLLOW_ME),
    LEVEL_UP_MOVE(19, MOVE_BESTOW),
    LEVEL_UP_MOVE(22, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE(25, MOVE_MINIMIZE),
    LEVEL_UP_MOVE(28, MOVE_STORED_POWER),
    LEVEL_UP_MOVE(31, MOVE_METRONOME),
    LEVEL_UP_MOVE(34, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(37, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(40, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(43, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(46, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(49, MOVE_GRAVITY),
    LEVEL_UP_MOVE(50, MOVE_METEOR_MASH),
    LEVEL_UP_MOVE(55, MOVE_HEALING_WISH),
    LEVEL_UP_MOVE(58, MOVE_AFTER_YOU),
    LEVEL_UP_END
};

static const struct LevelUpMove sClefableLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPOTLIGHT),
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_SING),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_MINIMIZE),
    LEVEL_UP_MOVE( 1, MOVE_METRONOME),
    LEVEL_UP_END
};

static const struct LevelUpMove sVulpixLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_ROAR),
    LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(15, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(18, MOVE_PAYBACK),
    LEVEL_UP_MOVE(20, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(26, MOVE_HEX),
    LEVEL_UP_MOVE(28, MOVE_FLAME_BURST),
    LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(34, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(39, MOVE_IMPRISON),
    LEVEL_UP_MOVE(42, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(44, MOVE_GRUDGE),
    LEVEL_UP_MOVE(47, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(50, MOVE_INFERNO),
    LEVEL_UP_END
};

static const struct LevelUpMove sNinetalesLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_IMPRISON),
    LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE( 1, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD),
    LEVEL_UP_END
};

static const struct LevelUpMove sJigglypuffLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SING),
    LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 5, MOVE_POUND),
    LEVEL_UP_MOVE( 9, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(14, MOVE_DISABLE),
    LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(20, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(22, MOVE_ROUND),
    LEVEL_UP_MOVE(25, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(25, MOVE_SWALLOW),
    LEVEL_UP_MOVE(25, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(27, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE(30, MOVE_REST),
    LEVEL_UP_MOVE(32, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(35, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(38, MOVE_MIMIC),
    LEVEL_UP_MOVE(41, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sWigglytuffLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE( 1, MOVE_SING),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
    LEVEL_UP_END
};

static const struct LevelUpMove sZubatLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 7, MOVE_ASTONISH),
    LEVEL_UP_MOVE(11, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(19, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(23, MOVE_SWIFT),
    LEVEL_UP_MOVE(25, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(29, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(31, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE(35, MOVE_HAZE),
    LEVEL_UP_MOVE(37, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(41, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(43, MOVE_QUICK_GUARD),
    LEVEL_UP_END
};

static const struct LevelUpMove sGolbatLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCREECH),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 7, MOVE_ASTONISH),
    LEVEL_UP_MOVE(11, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(19, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(24, MOVE_SWIFT),
    LEVEL_UP_MOVE(27, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(32, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(35, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE(40, MOVE_HAZE),
    LEVEL_UP_MOVE(43, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(48, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(51, MOVE_QUICK_GUARD),
    LEVEL_UP_END
};

static const struct LevelUpMove sOddishLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 9, MOVE_ACID),
    LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(14, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(19, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(23, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(27, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(31, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(35, MOVE_TOXIC),
    LEVEL_UP_MOVE(39, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(43, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(47, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE(51, MOVE_PETAL_DANCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sGloomLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 9, MOVE_ACID),
    LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(14, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(19, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(24, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(29, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(34, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(39, MOVE_TOXIC),
    LEVEL_UP_MOVE(44, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(49, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE(54, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE(59, MOVE_PETAL_DANCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sVileplumeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(49, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE(59, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE(69, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sParasLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 6, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(11, MOVE_ABSORB),
    LEVEL_UP_MOVE(17, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(22, MOVE_SPORE),
    LEVEL_UP_MOVE(27, MOVE_SLASH),
    LEVEL_UP_MOVE(33, MOVE_GROWTH),
    LEVEL_UP_MOVE(38, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(43, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(49, MOVE_RAGE_POWDER),
    LEVEL_UP_MOVE(54, MOVE_X_SCISSOR),
    LEVEL_UP_END
};

static const struct LevelUpMove sParasectLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CROSS_POISON),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 6, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(11, MOVE_ABSORB),
    LEVEL_UP_MOVE(17, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(22, MOVE_SPORE),
    LEVEL_UP_MOVE(29, MOVE_SLASH),
    LEVEL_UP_MOVE(37, MOVE_GROWTH),
    LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(51, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(59, MOVE_RAGE_POWDER),
    LEVEL_UP_MOVE(66, MOVE_X_SCISSOR),
    LEVEL_UP_END
};

static const struct LevelUpMove sVenonatLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
    LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(11, MOVE_CONFUSION),
    LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(17, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(23, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(25, MOVE_SIGNAL_BEAM),
    LEVEL_UP_MOVE(29, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(35, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(41, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(47, MOVE_PSYCHIC),
    LEVEL_UP_END
};

static const struct LevelUpMove sVenomothLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE( 1, MOVE_SILVER_WIND),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(11, MOVE_CONFUSION),
    LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(17, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(23, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(25, MOVE_SIGNAL_BEAM),
    LEVEL_UP_MOVE(29, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(37, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE(41, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(47, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(55, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(59, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(63, MOVE_QUIVER_DANCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sDiglettLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_ASTONISH),
    LEVEL_UP_MOVE(10, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(14, MOVE_MAGNITUDE),
    LEVEL_UP_MOVE(18, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(25, MOVE_MUD_BOMB),
    LEVEL_UP_MOVE(28, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(31, MOVE_DIG),
    LEVEL_UP_MOVE(35, MOVE_SLASH),
    LEVEL_UP_MOVE(39, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(43, MOVE_FISSURE),
    LEVEL_UP_END
};

static const struct LevelUpMove sDugtrioLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_ASTONISH),
    LEVEL_UP_MOVE(10, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(14, MOVE_MAGNITUDE),
    LEVEL_UP_MOVE(18, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(25, MOVE_MUD_BOMB),
    LEVEL_UP_MOVE(30, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(35, MOVE_DIG),
    LEVEL_UP_MOVE(41, MOVE_SLASH),
    LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(53, MOVE_FISSURE),
    LEVEL_UP_END
};

static const struct LevelUpMove sMeowthLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 6, MOVE_BITE),
    LEVEL_UP_MOVE( 9, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(17, MOVE_SCREECH),
    LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(25, MOVE_TAUNT),
    LEVEL_UP_MOVE(30, MOVE_PAY_DAY),
    LEVEL_UP_MOVE(33, MOVE_SLASH),
    LEVEL_UP_MOVE(38, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(41, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(46, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(50, MOVE_FEINT),
    LEVEL_UP_END
};

static const struct LevelUpMove sPersianLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_SWIFT),
    LEVEL_UP_MOVE( 1, MOVE_SWIFT),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 6, MOVE_BITE),
    LEVEL_UP_MOVE( 9, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(17, MOVE_SCREECH),
    LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(25, MOVE_TAUNT),
    LEVEL_UP_MOVE(32, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(37, MOVE_SLASH),
    LEVEL_UP_MOVE(44, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(49, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(56, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(61, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(65, MOVE_FEINT),
    LEVEL_UP_END
};

static const struct LevelUpMove sPsyduckLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(10, MOVE_CONFUSION),
    LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(16, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(19, MOVE_DISABLE),
    LEVEL_UP_MOVE(22, MOVE_SCREECH),
    LEVEL_UP_MOVE(25, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(28, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(31, MOVE_SOAK),
    LEVEL_UP_MOVE(34, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(37, MOVE_AMNESIA),
    LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(43, MOVE_WONDER_ROOM),
    LEVEL_UP_END
};

static const struct LevelUpMove sGolduckLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ME_FIRST),
    LEVEL_UP_MOVE( 1, MOVE_AQUA_JET),
    LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(10, MOVE_CONFUSION),
    LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(16, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(19, MOVE_DISABLE),
    LEVEL_UP_MOVE(22, MOVE_SCREECH),
    LEVEL_UP_MOVE(25, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(28, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(31, MOVE_SOAK),
    LEVEL_UP_MOVE(36, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(41, MOVE_AMNESIA),
    LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(51, MOVE_WONDER_ROOM),
    LEVEL_UP_END
};

static const struct LevelUpMove sMankeyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_COVET),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 5, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE( 8, MOVE_KARATE_CHOP),
    LEVEL_UP_MOVE(12, MOVE_PURSUIT),
    LEVEL_UP_MOVE(15, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE(19, MOVE_SWAGGER),
    LEVEL_UP_MOVE(22, MOVE_CROSS_CHOP),
    LEVEL_UP_MOVE(26, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(29, MOVE_PUNISHMENT),
    LEVEL_UP_MOVE(33, MOVE_THRASH),
    LEVEL_UP_MOVE(36, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(40, MOVE_SCREECH),
    LEVEL_UP_MOVE(43, MOVE_STOMPING_TANTRUM),
    LEVEL_UP_MOVE(47, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(50, MOVE_FINAL_GAMBIT),
    LEVEL_UP_END
};

static const struct LevelUpMove sPrimeapeLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_RAGE),
    LEVEL_UP_MOVE( 1, MOVE_RAGE),
    LEVEL_UP_MOVE( 1, MOVE_FINAL_GAMBIT),
    LEVEL_UP_MOVE( 1, MOVE_FLING),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 5, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE( 8, MOVE_KARATE_CHOP),
    LEVEL_UP_MOVE(12, MOVE_PURSUIT),
    LEVEL_UP_MOVE(15, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE(19, MOVE_SWAGGER),
    LEVEL_UP_MOVE(22, MOVE_CROSS_CHOP),
    LEVEL_UP_MOVE(26, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(30, MOVE_PUNISHMENT),
    LEVEL_UP_MOVE(35, MOVE_THRASH),
    LEVEL_UP_MOVE(39, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(44, MOVE_SCREECH),
    LEVEL_UP_MOVE(48, MOVE_STOMPING_TANTRUM),
    LEVEL_UP_MOVE(53, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(57, MOVE_FINAL_GAMBIT),
    LEVEL_UP_END
};

static const struct LevelUpMove sGrowlitheLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_ROAR),
    LEVEL_UP_MOVE( 6, MOVE_EMBER),
    LEVEL_UP_MOVE( 8, MOVE_LEER),
    LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(12, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(17, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(19, MOVE_REVERSAL),
    LEVEL_UP_MOVE(21, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(23, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(28, MOVE_FLAME_BURST),
    LEVEL_UP_MOVE(30, MOVE_AGILITY),
    LEVEL_UP_MOVE(32, MOVE_RETALIATE),
    LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(39, MOVE_CRUNCH),
    LEVEL_UP_MOVE(41, MOVE_HEAT_WAVE),
    LEVEL_UP_MOVE(43, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(45, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sArcanineLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_ROAR),
    LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(34, MOVE_EXTREME_SPEED),
    LEVEL_UP_END
};

static const struct LevelUpMove sPoliwagLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 5, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 8, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(11, MOVE_BUBBLE),
    LEVEL_UP_MOVE(15, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(18, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(21, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(28, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(31, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(35, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE(38, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(41, MOVE_MUD_BOMB),
    LEVEL_UP_END
};

static const struct LevelUpMove sPoliwhirlLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 5, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 8, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(11, MOVE_BUBBLE),
    LEVEL_UP_MOVE(15, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(18, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(21, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(27, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(32, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(37, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(43, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(53, MOVE_MUD_BOMB),
    LEVEL_UP_END
};

static const struct LevelUpMove sPoliwrathLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_SUBMISSION),
    LEVEL_UP_MOVE( 1, MOVE_SUBMISSION),
    LEVEL_UP_MOVE( 1, MOVE_CIRCLE_THROW),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(32, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_MOVE(43, MOVE_MIND_READER),
    LEVEL_UP_MOVE(53, MOVE_CIRCLE_THROW),
    LEVEL_UP_END
};

static const struct LevelUpMove sAbraLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
    LEVEL_UP_END
};

static const struct LevelUpMove sKadabraLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_KINESIS),
    LEVEL_UP_MOVE( 1, MOVE_KINESIS),
    LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE(16, MOVE_CONFUSION),
    LEVEL_UP_MOVE(18, MOVE_DISABLE),
    LEVEL_UP_MOVE(21, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(23, MOVE_MIRACLE_EYE),
    LEVEL_UP_MOVE(26, MOVE_REFLECT),
    LEVEL_UP_MOVE(28, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(31, MOVE_RECOVER),
    LEVEL_UP_MOVE(33, MOVE_TELEKINESIS),
    LEVEL_UP_MOVE(36, MOVE_ALLY_SWITCH),
    LEVEL_UP_MOVE(38, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(41, MOVE_ROLE_PLAY),
    LEVEL_UP_MOVE(43, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(46, MOVE_TRICK),
    LEVEL_UP_END
};

static const struct LevelUpMove sAlakazamLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_KINESIS),
    LEVEL_UP_MOVE( 1, MOVE_KINESIS),
    LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE(16, MOVE_CONFUSION),
    LEVEL_UP_MOVE(18, MOVE_DISABLE),
    LEVEL_UP_MOVE(21, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(23, MOVE_MIRACLE_EYE),
    LEVEL_UP_MOVE(26, MOVE_REFLECT),
    LEVEL_UP_MOVE(28, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(31, MOVE_RECOVER),
    LEVEL_UP_MOVE(33, MOVE_TELEKINESIS),
    LEVEL_UP_MOVE(36, MOVE_ALLY_SWITCH),
    LEVEL_UP_MOVE(38, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(41, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(43, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(46, MOVE_TRICK),
    LEVEL_UP_END
};

static const struct LevelUpMove sMachopLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 3, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 7, MOVE_KARATE_CHOP),
    LEVEL_UP_MOVE( 9, MOVE_FORESIGHT),
    LEVEL_UP_MOVE(13, MOVE_LOW_SWEEP),
    LEVEL_UP_MOVE(15, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE(19, MOVE_REVENGE),
    LEVEL_UP_MOVE(21, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(25, MOVE_VITAL_THROW),
    LEVEL_UP_MOVE(27, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE(31, MOVE_DUAL_CHOP),
    LEVEL_UP_MOVE(33, MOVE_SUBMISSION),
    LEVEL_UP_MOVE(37, MOVE_BULK_UP),
    LEVEL_UP_MOVE(39, MOVE_CROSS_CHOP),
    LEVEL_UP_MOVE(43, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(45, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sMachokeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_KARATE_CHOP),
    LEVEL_UP_MOVE( 3, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 7, MOVE_KARATE_CHOP),
    LEVEL_UP_MOVE( 9, MOVE_FORESIGHT),
    LEVEL_UP_MOVE(13, MOVE_LOW_SWEEP),
    LEVEL_UP_MOVE(15, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE(19, MOVE_REVENGE),
    LEVEL_UP_MOVE(21, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(25, MOVE_VITAL_THROW),
    LEVEL_UP_MOVE(27, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE(33, MOVE_DUAL_CHOP),
    LEVEL_UP_MOVE(37, MOVE_SUBMISSION),
    LEVEL_UP_MOVE(43, MOVE_BULK_UP),
    LEVEL_UP_MOVE(47, MOVE_CROSS_CHOP),
    LEVEL_UP_MOVE(53, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(57, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sMachampLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_STRENGTH),
    LEVEL_UP_MOVE( 1, MOVE_STRENGTH),
    LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_KARATE_CHOP),
    LEVEL_UP_MOVE( 3, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 7, MOVE_KARATE_CHOP),
    LEVEL_UP_MOVE( 9, MOVE_FORESIGHT),
    LEVEL_UP_MOVE(13, MOVE_LOW_SWEEP),
    LEVEL_UP_MOVE(15, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE(19, MOVE_REVENGE),
    LEVEL_UP_MOVE(21, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(25, MOVE_VITAL_THROW),
    LEVEL_UP_MOVE(27, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE(33, MOVE_DUAL_CHOP),
    LEVEL_UP_MOVE(37, MOVE_SUBMISSION),
    LEVEL_UP_MOVE(43, MOVE_BULK_UP),
    LEVEL_UP_MOVE(47, MOVE_CROSS_CHOP),
    LEVEL_UP_MOVE(53, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(57, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sBellsproutLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_GROWTH),
    LEVEL_UP_MOVE(11, MOVE_WRAP),
    LEVEL_UP_MOVE(13, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(17, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(23, MOVE_ACID),
    LEVEL_UP_MOVE(27, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(29, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(35, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(39, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(41, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(47, MOVE_SLAM),
    LEVEL_UP_MOVE(50, MOVE_WRING_OUT),
    LEVEL_UP_END
};

static const struct LevelUpMove sWeepinbellLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 7, MOVE_GROWTH),
    LEVEL_UP_MOVE(11, MOVE_WRAP),
    LEVEL_UP_MOVE(13, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(17, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(24, MOVE_ACID),
    LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(32, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(39, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(44, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(47, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(54, MOVE_SLAM),
    LEVEL_UP_MOVE(58, MOVE_WRING_OUT),
    LEVEL_UP_END
};

static const struct LevelUpMove sVictreebelLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_LEAF_TORNADO),
    LEVEL_UP_MOVE( 1, MOVE_LEAF_TORNADO),
    LEVEL_UP_MOVE( 1, MOVE_STOCKPILE),
    LEVEL_UP_MOVE( 1, MOVE_SWALLOW),
    LEVEL_UP_MOVE( 1, MOVE_SPIT_UP),
    LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(32, MOVE_LEAF_STORM),
    LEVEL_UP_MOVE(44, MOVE_LEAF_BLADE),
    LEVEL_UP_END
};

static const struct LevelUpMove sTentacoolLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 7, MOVE_CONSTRICT),
    LEVEL_UP_MOVE(10, MOVE_ACID),
    LEVEL_UP_MOVE(13, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(16, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(19, MOVE_WRAP),
    LEVEL_UP_MOVE(22, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(28, MOVE_BARRIER),
    LEVEL_UP_MOVE(31, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(34, MOVE_BRINE),
    LEVEL_UP_MOVE(37, MOVE_SCREECH),
    LEVEL_UP_MOVE(40, MOVE_HEX),
    LEVEL_UP_MOVE(43, MOVE_SLUDGE_WAVE),
    LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(49, MOVE_WRING_OUT),
    LEVEL_UP_END
};

static const struct LevelUpMove sTentacruelLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_REFLECT_TYPE),
    LEVEL_UP_MOVE( 1, MOVE_WRING_OUT),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 7, MOVE_CONSTRICT),
    LEVEL_UP_MOVE(10, MOVE_ACID),
    LEVEL_UP_MOVE(13, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(16, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(19, MOVE_WRAP),
    LEVEL_UP_MOVE(22, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(28, MOVE_BARRIER),
    LEVEL_UP_MOVE(32, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(36, MOVE_BRINE),
    LEVEL_UP_MOVE(40, MOVE_SCREECH),
    LEVEL_UP_MOVE(44, MOVE_HEX),
    LEVEL_UP_MOVE(48, MOVE_SLUDGE_WAVE),
    LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(56, MOVE_WRING_OUT),
    LEVEL_UP_END
};

static const struct LevelUpMove sGeodudeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 4, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(10, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(12, MOVE_MAGNITUDE),
    LEVEL_UP_MOVE(16, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(22, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(28, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(30, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(34, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(36, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(42, MOVE_STONE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sGravelerLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE( 4, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(10, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(12, MOVE_MAGNITUDE),
    LEVEL_UP_MOVE(16, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(22, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(44, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(54, MOVE_STONE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sGolemLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE( 4, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(10, MOVE_STEAMROLLER),
    LEVEL_UP_MOVE(12, MOVE_MAGNITUDE),
    LEVEL_UP_MOVE(16, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(22, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(44, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(54, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(60, MOVE_HEAVY_SLAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sPonytaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 9, MOVE_EMBER),
    LEVEL_UP_MOVE(13, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(17, MOVE_STOMP),
    LEVEL_UP_MOVE(21, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(33, MOVE_INFERNO),
    LEVEL_UP_MOVE(37, MOVE_AGILITY),
    LEVEL_UP_MOVE(41, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(45, MOVE_BOUNCE),
    LEVEL_UP_MOVE(49, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sRapidashLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_POISON_JAB),
    LEVEL_UP_MOVE( 1, MOVE_MEGAHORN),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 9, MOVE_EMBER),
    LEVEL_UP_MOVE(13, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(17, MOVE_STOMP),
    LEVEL_UP_MOVE(21, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(33, MOVE_INFERNO),
    LEVEL_UP_MOVE(37, MOVE_AGILITY),
    LEVEL_UP_MOVE(41, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(45, MOVE_BOUNCE),
    LEVEL_UP_MOVE(49, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sSlowpokeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CURSE),
    LEVEL_UP_MOVE( 1, MOVE_YAWN),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_GROWL),
    LEVEL_UP_MOVE( 9, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(14, MOVE_CONFUSION),
    LEVEL_UP_MOVE(19, MOVE_DISABLE),
    LEVEL_UP_MOVE(23, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(28, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(36, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE(41, MOVE_AMNESIA),
    LEVEL_UP_MOVE(45, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(49, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(54, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(58, MOVE_HEAL_PULSE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSlowbroLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_CURSE),
    LEVEL_UP_MOVE( 1, MOVE_YAWN),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_GROWL),
    LEVEL_UP_MOVE( 9, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(14, MOVE_CONFUSION),
    LEVEL_UP_MOVE(19, MOVE_DISABLE),
    LEVEL_UP_MOVE(23, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(28, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(36, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE(43, MOVE_AMNESIA),
    LEVEL_UP_MOVE(49, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(55, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(62, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(68, MOVE_HEAL_PULSE),
    LEVEL_UP_END
};

static const struct LevelUpMove sMagnemiteLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 5, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 7, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(11, MOVE_MAGNET_BOMB),
    LEVEL_UP_MOVE(13, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(17, MOVE_SONIC_BOOM),
    LEVEL_UP_MOVE(19, MOVE_SPARK),
    LEVEL_UP_MOVE(23, MOVE_MIRROR_SHOT),
    LEVEL_UP_MOVE(25, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(35, MOVE_SCREECH),
    LEVEL_UP_MOVE(37, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(41, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(43, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(47, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(49, MOVE_ZAP_CANNON),
    LEVEL_UP_END
};

static const struct LevelUpMove sMagnetonLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 5, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 7, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(11, MOVE_MAGNET_BOMB),
    LEVEL_UP_MOVE(13, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(17, MOVE_SONIC_BOOM),
    LEVEL_UP_MOVE(19, MOVE_SPARK),
    LEVEL_UP_MOVE(23, MOVE_MIRROR_SHOT),
    LEVEL_UP_MOVE(25, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(33, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(39, MOVE_SCREECH),
    LEVEL_UP_MOVE(43, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(49, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(53, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(59, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(63, MOVE_ZAP_CANNON),
    LEVEL_UP_END
};

static const struct LevelUpMove sFarfetchdLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE( 1, MOVE_POISON_JAB),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(13, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(19, MOVE_SLASH),
    LEVEL_UP_MOVE(21, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(31, MOVE_AGILITY),
    LEVEL_UP_MOVE(33, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(37, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(43, MOVE_FEINT),
    LEVEL_UP_MOVE(45, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(49, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(55, MOVE_BRAVE_BIRD),
    LEVEL_UP_END
};

static const struct LevelUpMove sDoduoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 8, MOVE_RAGE),
    LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_PURSUIT),
    LEVEL_UP_MOVE(19, MOVE_PLUCK),
    LEVEL_UP_MOVE(22, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(26, MOVE_AGILITY),
    LEVEL_UP_MOVE(29, MOVE_UPROAR),
    LEVEL_UP_MOVE(33, MOVE_ACUPRESSURE),
    LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(40, MOVE_JUMP_KICK),
    LEVEL_UP_MOVE(43, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(47, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(50, MOVE_THRASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sDodrioLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_RAGE),
    LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 8, MOVE_RAGE),
    LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_PURSUIT),
    LEVEL_UP_MOVE(19, MOVE_PLUCK),
    LEVEL_UP_MOVE(22, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(26, MOVE_AGILITY),
    LEVEL_UP_MOVE(29, MOVE_UPROAR),
    LEVEL_UP_MOVE(34, MOVE_ACUPRESSURE),
    LEVEL_UP_MOVE(38, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(43, MOVE_JUMP_KICK),
    LEVEL_UP_MOVE(47, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(52, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(56, MOVE_THRASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sSeelLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
    LEVEL_UP_MOVE( 3, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE(11, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(13, MOVE_ENCORE),
    LEVEL_UP_MOVE(17, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(21, MOVE_REST),
    LEVEL_UP_MOVE(23, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(27, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(31, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(33, MOVE_BRINE),
    LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(41, MOVE_DIVE),
    LEVEL_UP_MOVE(43, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(47, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(51, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(53, MOVE_HAIL),
    LEVEL_UP_END
};

static const struct LevelUpMove sDewgongLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_SHEER_COLD),
    LEVEL_UP_MOVE( 1, MOVE_SHEER_COLD),
    LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_SIGNAL_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_ICY_WIND),
    LEVEL_UP_MOVE( 3, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_SIGNAL_BEAM),
    LEVEL_UP_MOVE(11, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(13, MOVE_ENCORE),
    LEVEL_UP_MOVE(17, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(21, MOVE_REST),
    LEVEL_UP_MOVE(23, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(27, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(31, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(33, MOVE_BRINE),
    LEVEL_UP_MOVE(39, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(45, MOVE_DIVE),
    LEVEL_UP_MOVE(49, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(55, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(61, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(65, MOVE_HAIL),
    LEVEL_UP_END
};

static const struct LevelUpMove sGrimerLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 4, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(12, MOVE_DISABLE),
    LEVEL_UP_MOVE(15, MOVE_SLUDGE),
    LEVEL_UP_MOVE(18, MOVE_MUD_BOMB),
    LEVEL_UP_MOVE(21, MOVE_MINIMIZE),
    LEVEL_UP_MOVE(26, MOVE_FLING),
    LEVEL_UP_MOVE(29, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(32, MOVE_SLUDGE_WAVE),
    LEVEL_UP_MOVE(37, MOVE_SCREECH),
    LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT),
    LEVEL_UP_MOVE(43, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(46, MOVE_BELCH),
    LEVEL_UP_MOVE(48, MOVE_MEMENTO),
    LEVEL_UP_END
};

static const struct LevelUpMove sMukLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 4, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(12, MOVE_DISABLE),
    LEVEL_UP_MOVE(15, MOVE_SLUDGE),
    LEVEL_UP_MOVE(18, MOVE_MUD_BOMB),
    LEVEL_UP_MOVE(21, MOVE_MINIMIZE),
    LEVEL_UP_MOVE(26, MOVE_FLING),
    LEVEL_UP_MOVE(29, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(32, MOVE_SLUDGE_WAVE),
    LEVEL_UP_MOVE(37, MOVE_SCREECH),
    LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT),
    LEVEL_UP_MOVE(46, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(52, MOVE_BELCH),
    LEVEL_UP_MOVE(57, MOVE_MEMENTO),
    LEVEL_UP_END
};

static const struct LevelUpMove sShellderLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 4, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(13, MOVE_ICICLE_SPEAR),
    LEVEL_UP_MOVE(16, MOVE_PROTECT),
    LEVEL_UP_MOVE(20, MOVE_LEER),
    LEVEL_UP_MOVE(25, MOVE_CLAMP),
    LEVEL_UP_MOVE(28, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(32, MOVE_RAZOR_SHELL),
    LEVEL_UP_MOVE(37, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(40, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(44, MOVE_BRINE),
    LEVEL_UP_MOVE(49, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(52, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(56, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE(61, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sCloysterLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(13, MOVE_SPIKE_CANNON),
    LEVEL_UP_MOVE(28, MOVE_SPIKES),
    LEVEL_UP_MOVE(50, MOVE_ICICLE_CRASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sGastlyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 5, MOVE_SPITE),
    LEVEL_UP_MOVE( 8, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(12, MOVE_CURSE),
    LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(26, MOVE_PAYBACK),
    LEVEL_UP_MOVE(29, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(33, MOVE_DREAM_EATER),
    LEVEL_UP_MOVE(36, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(40, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE(43, MOVE_HEX),
    LEVEL_UP_MOVE(47, MOVE_NIGHTMARE),
    LEVEL_UP_END
};

static const struct LevelUpMove sHaunterLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_SHADOW_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_SPITE),
    LEVEL_UP_MOVE( 5, MOVE_SPITE),
    LEVEL_UP_MOVE( 8, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(12, MOVE_CURSE),
    LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(28, MOVE_PAYBACK),
    LEVEL_UP_MOVE(33, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(39, MOVE_DREAM_EATER),
    LEVEL_UP_MOVE(44, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(50, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE(55, MOVE_HEX),
    LEVEL_UP_MOVE(61, MOVE_NIGHTMARE),
    LEVEL_UP_END
};

static const struct LevelUpMove sGengarLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_SHADOW_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_SPITE),
    LEVEL_UP_MOVE( 5, MOVE_SPITE),
    LEVEL_UP_MOVE( 8, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(12, MOVE_CURSE),
    LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(28, MOVE_PAYBACK),
    LEVEL_UP_MOVE(33, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(39, MOVE_DREAM_EATER),
    LEVEL_UP_MOVE(44, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(50, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE(55, MOVE_HEX),
    LEVEL_UP_MOVE(61, MOVE_NIGHTMARE),
    LEVEL_UP_END
};

static const struct LevelUpMove sOnixLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE( 4, MOVE_CURSE),
    LEVEL_UP_MOVE( 7, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(10, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(13, MOVE_RAGE),
    LEVEL_UP_MOVE(16, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(19, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(20, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(22, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(25, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(28, MOVE_SLAM),
    LEVEL_UP_MOVE(31, MOVE_SCREECH),
    LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(37, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(40, MOVE_IRON_TAIL),
    LEVEL_UP_MOVE(43, MOVE_DIG),
    LEVEL_UP_MOVE(46, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(52, MOVE_SANDSTORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sDrowzeeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 5, MOVE_DISABLE),
    LEVEL_UP_MOVE( 9, MOVE_CONFUSION),
    LEVEL_UP_MOVE(13, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(17, MOVE_POISON_GAS),
    LEVEL_UP_MOVE(21, MOVE_MEDITATE),
    LEVEL_UP_MOVE(25, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(29, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE(33, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(37, MOVE_SYNCHRONOISE),
    LEVEL_UP_MOVE(41, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(45, MOVE_SWAGGER),
    LEVEL_UP_MOVE(49, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(53, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(57, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(61, MOVE_FUTURE_SIGHT),
    LEVEL_UP_END
};

static const struct LevelUpMove sHypnoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE( 1, MOVE_NIGHTMARE),
    LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 5, MOVE_DISABLE),
    LEVEL_UP_MOVE( 9, MOVE_CONFUSION),
    LEVEL_UP_MOVE(13, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(17, MOVE_POISON_GAS),
    LEVEL_UP_MOVE(21, MOVE_MEDITATE),
    LEVEL_UP_MOVE(25, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(29, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE(33, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(37, MOVE_SYNCHRONOISE),
    LEVEL_UP_MOVE(41, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(45, MOVE_SWAGGER),
    LEVEL_UP_MOVE(49, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(53, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(57, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(61, MOVE_FUTURE_SIGHT),
    LEVEL_UP_END
};

static const struct LevelUpMove sKrabbyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 5, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE( 9, MOVE_LEER),
    LEVEL_UP_MOVE(11, MOVE_HARDEN),
    LEVEL_UP_MOVE(15, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(19, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(21, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(25, MOVE_STOMP),
    LEVEL_UP_MOVE(29, MOVE_PROTECT),
    LEVEL_UP_MOVE(31, MOVE_GUILLOTINE),
    LEVEL_UP_MOVE(35, MOVE_SLAM),
    LEVEL_UP_MOVE(39, MOVE_BRINE),
    LEVEL_UP_MOVE(41, MOVE_CRABHAMMER),
    LEVEL_UP_MOVE(45, MOVE_FLAIL),
    LEVEL_UP_END
};

static const struct LevelUpMove sKinglerLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE( 9, MOVE_LEER),
    LEVEL_UP_MOVE(11, MOVE_HARDEN),
    LEVEL_UP_MOVE(15, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(19, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(21, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(25, MOVE_STOMP),
    LEVEL_UP_MOVE(32, MOVE_PROTECT),
    LEVEL_UP_MOVE(37, MOVE_GUILLOTINE),
    LEVEL_UP_MOVE(44, MOVE_SLAM),
    LEVEL_UP_MOVE(51, MOVE_BRINE),
    LEVEL_UP_MOVE(56, MOVE_CRABHAMMER),
    LEVEL_UP_MOVE(63, MOVE_FLAIL),
    LEVEL_UP_END
};

static const struct LevelUpMove sVoltorbLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_SONIC_BOOM),
    LEVEL_UP_MOVE( 6, MOVE_EERIE_IMPULSE),
    LEVEL_UP_MOVE( 9, MOVE_SPARK),
    LEVEL_UP_MOVE(11, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(13, MOVE_SCREECH),
    LEVEL_UP_MOVE(16, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE(20, MOVE_SWIFT),
    LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(26, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(29, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(34, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(37, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(41, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(46, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(48, MOVE_MIRROR_COAT),
    LEVEL_UP_END
};

static const struct LevelUpMove sElectrodeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MAGNETIC_FLUX),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM),
    LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE),
    LEVEL_UP_MOVE( 4, MOVE_SONIC_BOOM),
    LEVEL_UP_MOVE( 6, MOVE_EERIE_IMPULSE),
    LEVEL_UP_MOVE( 9, MOVE_SPARK),
    LEVEL_UP_MOVE(11, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(13, MOVE_SCREECH),
    LEVEL_UP_MOVE(16, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE(20, MOVE_SWIFT),
    LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(26, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(29, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(36, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(41, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(47, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(54, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(58, MOVE_MIRROR_COAT),
    LEVEL_UP_END
};

static const struct LevelUpMove sExeggcuteLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BARRAGE),
    LEVEL_UP_MOVE( 1, MOVE_UPROAR),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 7, MOVE_REFLECT),
    LEVEL_UP_MOVE(11, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(17, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(19, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(21, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(23, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(27, MOVE_CONFUSION),
    LEVEL_UP_MOVE(33, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(37, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(47, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(50, MOVE_BESTOW),
    LEVEL_UP_END
};

static const struct LevelUpMove sExeggutorLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_STOMP),
    LEVEL_UP_MOVE( 1, MOVE_STOMP),
    LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE( 1, MOVE_BARRAGE),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE(17, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(27, MOVE_EGG_BOMB),
    LEVEL_UP_MOVE(37, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE(47, MOVE_LEAF_STORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sCuboneLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_BONE_CLUB),
    LEVEL_UP_MOVE(11, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(13, MOVE_LEER),
    LEVEL_UP_MOVE(17, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(21, MOVE_BONEMERANG),
    LEVEL_UP_MOVE(23, MOVE_RAGE),
    LEVEL_UP_MOVE(27, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(31, MOVE_THRASH),
    LEVEL_UP_MOVE(33, MOVE_FLING),
    LEVEL_UP_MOVE(37, MOVE_STOMPING_TANTRUM),
    LEVEL_UP_MOVE(41, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(47, MOVE_RETALIATE),
    LEVEL_UP_MOVE(51, MOVE_BONE_RUSH),
    LEVEL_UP_END
};

static const struct LevelUpMove sMarowakLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB),
    LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
    LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_BONE_CLUB),
    LEVEL_UP_MOVE(11, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(13, MOVE_LEER),
    LEVEL_UP_MOVE(17, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(21, MOVE_BONEMERANG),
    LEVEL_UP_MOVE(23, MOVE_RAGE),
    LEVEL_UP_MOVE(27, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(33, MOVE_THRASH),
    LEVEL_UP_MOVE(37, MOVE_FLING),
    LEVEL_UP_MOVE(43, MOVE_STOMPING_TANTRUM),
    LEVEL_UP_MOVE(49, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(53, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(59, MOVE_RETALIATE),
    LEVEL_UP_MOVE(65, MOVE_BONE_RUSH),
    LEVEL_UP_END
};

static const struct LevelUpMove sHitmonleeLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE( 1, MOVE_REVERSAL),
    LEVEL_UP_MOVE( 1, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE( 1, MOVE_MEGA_KICK),
    LEVEL_UP_MOVE( 1, MOVE_REVENGE),
    LEVEL_UP_MOVE( 1, MOVE_MEDITATE),
    LEVEL_UP_MOVE( 1, MOVE_ROLLING_KICK),
    LEVEL_UP_MOVE( 1, MOVE_JUMP_KICK),
    LEVEL_UP_MOVE( 5, MOVE_MEDITATE),
    LEVEL_UP_MOVE( 9, MOVE_ROLLING_KICK),
    LEVEL_UP_MOVE(13, MOVE_JUMP_KICK),
    LEVEL_UP_MOVE(17, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(25, MOVE_FEINT),
    LEVEL_UP_MOVE(29, MOVE_HIGH_JUMP_KICK),
    LEVEL_UP_MOVE(33, MOVE_MIND_READER),
    LEVEL_UP_MOVE(37, MOVE_FORESIGHT),
    LEVEL_UP_MOVE(41, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(45, MOVE_BLAZE_KICK),
    LEVEL_UP_MOVE(49, MOVE_ENDURE),
    LEVEL_UP_MOVE(53, MOVE_MEGA_KICK),
    LEVEL_UP_MOVE(57, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(61, MOVE_REVERSAL),
    LEVEL_UP_END
};

static const struct LevelUpMove sHitmonchanLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_COMET_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE( 1, MOVE_COUNTER),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_REVENGE),
    LEVEL_UP_MOVE( 1, MOVE_AGILITY),
    LEVEL_UP_MOVE( 1, MOVE_PURSUIT),
    LEVEL_UP_MOVE( 1, MOVE_MACH_PUNCH),
    LEVEL_UP_MOVE( 6, MOVE_AGILITY),
    LEVEL_UP_MOVE(11, MOVE_PURSUIT),
    LEVEL_UP_MOVE(16, MOVE_MACH_PUNCH),
    LEVEL_UP_MOVE(16, MOVE_BULLET_PUNCH),
    LEVEL_UP_MOVE(21, MOVE_FEINT),
    LEVEL_UP_MOVE(26, MOVE_VACUUM_WAVE),
    LEVEL_UP_MOVE(31, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(36, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE(36, MOVE_ICE_PUNCH),
    LEVEL_UP_MOVE(36, MOVE_FIRE_PUNCH),
    LEVEL_UP_MOVE(41, MOVE_SKY_UPPERCUT),
    LEVEL_UP_MOVE(46, MOVE_MEGA_PUNCH),
    LEVEL_UP_MOVE(50, MOVE_DETECT),
    LEVEL_UP_MOVE(56, MOVE_FOCUS_PUNCH),
    LEVEL_UP_MOVE(61, MOVE_COUNTER),
    LEVEL_UP_MOVE(66, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};

static const struct LevelUpMove sLickitungLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE(13, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(17, MOVE_WRAP),
    LEVEL_UP_MOVE(21, MOVE_STOMP),
    LEVEL_UP_MOVE(25, MOVE_DISABLE),
    LEVEL_UP_MOVE(29, MOVE_SLAM),
    LEVEL_UP_MOVE(33, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(37, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(41, MOVE_ME_FIRST),
    LEVEL_UP_MOVE(45, MOVE_REFRESH),
    LEVEL_UP_MOVE(49, MOVE_SCREECH),
    LEVEL_UP_MOVE(53, MOVE_POWER_WHIP),
    LEVEL_UP_MOVE(57, MOVE_WRING_OUT),
    LEVEL_UP_END
};

static const struct LevelUpMove sKoffingLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_SMOG),
    LEVEL_UP_MOVE( 7, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(12, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(15, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(18, MOVE_SLUDGE),
    LEVEL_UP_MOVE(23, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(26, MOVE_HAZE),
    LEVEL_UP_MOVE(29, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(34, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(37, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(40, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE(42, MOVE_BELCH),
    LEVEL_UP_MOVE(45, MOVE_MEMENTO),
    LEVEL_UP_END
};

static const struct LevelUpMove sWeezingLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SMOG),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 4, MOVE_SMOG),
    LEVEL_UP_MOVE( 7, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(12, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(15, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(18, MOVE_SLUDGE),
    LEVEL_UP_MOVE(23, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(26, MOVE_HAZE),
    LEVEL_UP_MOVE(29, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(34, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(40, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(46, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE(51, MOVE_BELCH),
    LEVEL_UP_MOVE(57, MOVE_MEMENTO),
    LEVEL_UP_END
};

static const struct LevelUpMove sRhyhornLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(13, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(17, MOVE_STOMP),
    LEVEL_UP_MOVE(21, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(25, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(29, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(33, MOVE_DRILL_RUN),
    LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(41, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(49, MOVE_MEGAHORN),
    LEVEL_UP_MOVE(53, MOVE_HORN_DRILL),
    LEVEL_UP_END
};

static const struct LevelUpMove sRhydonLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_HORN_DRILL),
    LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(13, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(17, MOVE_STOMP),
    LEVEL_UP_MOVE(21, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(25, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(29, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(33, MOVE_DRILL_RUN),
    LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(41, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(55, MOVE_MEGAHORN),
    LEVEL_UP_MOVE(62, MOVE_HORN_DRILL),
    LEVEL_UP_END
};

static const struct LevelUpMove sChanseyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 9, MOVE_REFRESH),
    LEVEL_UP_MOVE(12, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(16, MOVE_SOFT_BOILED),
    LEVEL_UP_MOVE(20, MOVE_BESTOW),
    LEVEL_UP_MOVE(23, MOVE_MINIMIZE),
    LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(31, MOVE_SING),
    LEVEL_UP_MOVE(35, MOVE_FLING),
    LEVEL_UP_MOVE(39, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(44, MOVE_EGG_BOMB),
    LEVEL_UP_MOVE(50, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(57, MOVE_HEALING_WISH),
    LEVEL_UP_MOVE(65, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sTangelaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_INGRAIN),
    LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
    LEVEL_UP_MOVE( 4, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE(10, MOVE_ABSORB),
    LEVEL_UP_MOVE(14, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(17, MOVE_BIND),
    LEVEL_UP_MOVE(20, MOVE_GROWTH),
    LEVEL_UP_MOVE(23, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(27, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(30, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(33, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(38, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(41, MOVE_SLAM),
    LEVEL_UP_MOVE(44, MOVE_TICKLE),
    LEVEL_UP_MOVE(46, MOVE_WRING_OUT),
    LEVEL_UP_MOVE(48, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE(50, MOVE_POWER_WHIP),
    LEVEL_UP_END
};

static const struct LevelUpMove sKangaskhanLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(10, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE(13, MOVE_BITE),
    LEVEL_UP_MOVE(19, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(22, MOVE_RAGE),
    LEVEL_UP_MOVE(25, MOVE_MEGA_PUNCH),
    LEVEL_UP_MOVE(31, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(34, MOVE_DIZZY_PUNCH),
    LEVEL_UP_MOVE(37, MOVE_CRUNCH),
    LEVEL_UP_MOVE(43, MOVE_ENDURE),
    LEVEL_UP_MOVE(46, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(49, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(50, MOVE_REVERSAL),
    LEVEL_UP_END
};

static const struct LevelUpMove sHorseaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 5, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 9, MOVE_LEER),
    LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(17, MOVE_TWISTER),
    LEVEL_UP_MOVE(21, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(26, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(31, MOVE_BRINE),
    LEVEL_UP_MOVE(36, MOVE_AGILITY),
    LEVEL_UP_MOVE(41, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(46, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sSeadraLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 5, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 9, MOVE_LEER),
    LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(17, MOVE_TWISTER),
    LEVEL_UP_MOVE(21, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(26, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(31, MOVE_BRINE),
    LEVEL_UP_MOVE(38, MOVE_AGILITY),
    LEVEL_UP_MOVE(45, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(52, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sGoldeenLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 8, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_FLAIL),
    LEVEL_UP_MOVE(16, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(21, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(24, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(29, MOVE_AGILITY),
    LEVEL_UP_MOVE(32, MOVE_WATERFALL),
    LEVEL_UP_MOVE(37, MOVE_HORN_DRILL),
    LEVEL_UP_MOVE(40, MOVE_SOAK),
    LEVEL_UP_MOVE(45, MOVE_MEGAHORN),
    LEVEL_UP_END
};

static const struct LevelUpMove sSeakingLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MEGAHORN),
    LEVEL_UP_MOVE( 1, MOVE_POISON_JAB),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 8, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_FLAIL),
    LEVEL_UP_MOVE(16, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(21, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(24, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(29, MOVE_AGILITY),
    LEVEL_UP_MOVE(32, MOVE_WATERFALL),
    LEVEL_UP_MOVE(40, MOVE_HORN_DRILL),
    LEVEL_UP_MOVE(46, MOVE_SOAK),
    LEVEL_UP_MOVE(54, MOVE_MEGAHORN),
    LEVEL_UP_END
};

static const struct LevelUpMove sStaryuLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 4, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 7, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(10, MOVE_RECOVER),
    LEVEL_UP_MOVE(13, MOVE_PSYWAVE),
    LEVEL_UP_MOVE(16, MOVE_SWIFT),
    LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(22, MOVE_CAMOUFLAGE),
    LEVEL_UP_MOVE(24, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(28, MOVE_BRINE),
    LEVEL_UP_MOVE(31, MOVE_MINIMIZE),
    LEVEL_UP_MOVE(35, MOVE_REFLECT_TYPE),
    LEVEL_UP_MOVE(37, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(40, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(42, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(46, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(49, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(53, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sStarmieLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE( 1, MOVE_SPOTLIGHT),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_RECOVER),
    LEVEL_UP_MOVE( 1, MOVE_SWIFT),
    LEVEL_UP_MOVE(40, MOVE_CONFUSE_RAY),
    LEVEL_UP_END
};

static const struct LevelUpMove sMrmimeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP),
    LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP),
    LEVEL_UP_MOVE( 1, MOVE_BARRIER),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 4, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 8, MOVE_MEDITATE),
    LEVEL_UP_MOVE(11, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(15, MOVE_MIMIC),
    LEVEL_UP_MOVE(15, MOVE_PSYWAVE),
    LEVEL_UP_MOVE(18, MOVE_ENCORE),
    LEVEL_UP_MOVE(22, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(22, MOVE_REFLECT),
    LEVEL_UP_MOVE(25, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(29, MOVE_SUBSTITUTE),
    LEVEL_UP_MOVE(32, MOVE_RECYCLE),
    LEVEL_UP_MOVE(36, MOVE_TRICK),
    LEVEL_UP_MOVE(39, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(43, MOVE_ROLE_PLAY),
    LEVEL_UP_MOVE(46, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(50, MOVE_SAFEGUARD),
    LEVEL_UP_END
};

static const struct LevelUpMove sScytherLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_VACUUM_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 9, MOVE_PURSUIT),
    LEVEL_UP_MOVE(13, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(17, MOVE_AGILITY),
    LEVEL_UP_MOVE(21, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(25, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(29, MOVE_SLASH),
    LEVEL_UP_MOVE(33, MOVE_RAZOR_WIND),
    LEVEL_UP_MOVE(37, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(41, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(45, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(49, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(50, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(61, MOVE_FEINT),
    LEVEL_UP_END
};

static const struct LevelUpMove sJynxLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_LOVELY_KISS),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 5, MOVE_LICK),
    LEVEL_UP_MOVE( 8, MOVE_LOVELY_KISS),
    LEVEL_UP_MOVE(11, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE(15, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(18, MOVE_ICE_PUNCH),
    LEVEL_UP_MOVE(21, MOVE_HEART_STAMP),
    LEVEL_UP_MOVE(25, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(33, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE(39, MOVE_AVALANCHE),
    LEVEL_UP_MOVE(44, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(49, MOVE_WRING_OUT),
    LEVEL_UP_MOVE(55, MOVE_PERISH_SONG),
    LEVEL_UP_MOVE(60, MOVE_BLIZZARD),
    LEVEL_UP_END
};

static const struct LevelUpMove sElectabuzzLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 5, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 8, MOVE_LOW_KICK),
    LEVEL_UP_MOVE(12, MOVE_SWIFT),
    LEVEL_UP_MOVE(15, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE(19, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(26, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(29, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE(36, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(42, MOVE_SCREECH),
    LEVEL_UP_MOVE(49, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE(55, MOVE_THUNDER),
    LEVEL_UP_END
};

static const struct LevelUpMove sMagmarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SMOG),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 5, MOVE_EMBER),
    LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(12, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(19, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(22, MOVE_FLAME_BURST),
    LEVEL_UP_MOVE(26, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(29, MOVE_FIRE_PUNCH),
    LEVEL_UP_MOVE(36, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(42, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(55, MOVE_FIRE_BLAST),
    LEVEL_UP_END
};

static const struct LevelUpMove sPinsirLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 4, MOVE_BIND),
    LEVEL_UP_MOVE( 8, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE(11, MOVE_HARDEN),
    LEVEL_UP_MOVE(15, MOVE_REVENGE),
    LEVEL_UP_MOVE(18, MOVE_VITAL_THROW),
    LEVEL_UP_MOVE(22, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(26, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(29, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(33, MOVE_SUBMISSION),
    LEVEL_UP_MOVE(36, MOVE_STORM_THROW),
    LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(43, MOVE_THRASH),
    LEVEL_UP_MOVE(47, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(50, MOVE_GUILLOTINE),
    LEVEL_UP_END
};

static const struct LevelUpMove sTaurosLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_RAGE),
    LEVEL_UP_MOVE( 8, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE(11, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(15, MOVE_PURSUIT),
    LEVEL_UP_MOVE(19, MOVE_REST),
    LEVEL_UP_MOVE(24, MOVE_PAYBACK),
    LEVEL_UP_MOVE(29, MOVE_WORK_UP),
    LEVEL_UP_MOVE(35, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(41, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(48, MOVE_SWAGGER),
    LEVEL_UP_MOVE(55, MOVE_THRASH),
    LEVEL_UP_MOVE(63, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(71, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};

static const struct LevelUpMove sMagikarpLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE(15, MOVE_TACKLE),
    LEVEL_UP_MOVE(30, MOVE_FLAIL),
    LEVEL_UP_END
};

static const struct LevelUpMove sGyaradosLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_THRASH),
    LEVEL_UP_MOVE(21, MOVE_LEER),
    LEVEL_UP_MOVE(24, MOVE_TWISTER),
    LEVEL_UP_MOVE(27, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(30, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(33, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(36, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE(39, MOVE_CRUNCH),
    LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(45, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(48, MOVE_HURRICANE),
    LEVEL_UP_MOVE(51, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(54, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sLaprasLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SING),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 4, MOVE_MIST),
    LEVEL_UP_MOVE( 7, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(10, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(14, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(18, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(22, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(27, MOVE_PERISH_SONG),
    LEVEL_UP_MOVE(32, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(37, MOVE_BRINE),
    LEVEL_UP_MOVE(43, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(47, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(50, MOVE_SHEER_COLD),
    LEVEL_UP_END
};

static const struct LevelUpMove sDittoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TRANSFORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sEeveeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_COVET),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_BITE),
    LEVEL_UP_MOVE(17, MOVE_SWIFT),
    LEVEL_UP_MOVE(20, MOVE_REFRESH),
    LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(29, MOVE_CHARM),
    LEVEL_UP_MOVE(33, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(41, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(45, MOVE_TRUMP_CARD),
    LEVEL_UP_END
};

static const struct LevelUpMove sVaporeonLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(20, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(25, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(29, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(33, MOVE_HAZE),
    LEVEL_UP_MOVE(37, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(41, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sJolteonLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(20, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE(25, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(29, MOVE_AGILITY),
    LEVEL_UP_MOVE(33, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(37, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(41, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(45, MOVE_THUNDER),
    LEVEL_UP_END
};

static const struct LevelUpMove sFlareonLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_BITE),
    LEVEL_UP_MOVE(20, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(29, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(33, MOVE_SMOG),
    LEVEL_UP_MOVE(37, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(41, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(45, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sPorygon2LevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_CONVERSION),
    LEVEL_UP_MOVE( 1, MOVE_SHARPEN),
    LEVEL_UP_MOVE( 7, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(12, MOVE_AGILITY),
    LEVEL_UP_MOVE(18, MOVE_RECOVER),
    LEVEL_UP_MOVE(23, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(29, MOVE_SIGNAL_BEAM),
    LEVEL_UP_MOVE(34, MOVE_RECYCLE),
    LEVEL_UP_MOVE(40, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(45, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(50, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE(56, MOVE_MAGIC_COAT),
    LEVEL_UP_MOVE(62, MOVE_ZAP_CANNON),
    LEVEL_UP_END
};

static const struct LevelUpMove sOmanyteLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(16, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(19, MOVE_LEER),
    LEVEL_UP_MOVE(25, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(28, MOVE_BRINE),
    LEVEL_UP_MOVE(34, MOVE_PROTECT),
    LEVEL_UP_MOVE(37, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(43, MOVE_TICKLE),
    LEVEL_UP_MOVE(46, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(50, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sOmastarLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_SPIKE_CANNON),
    LEVEL_UP_MOVE( 1, MOVE_SPIKE_CANNON),
    LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(16, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(19, MOVE_LEER),
    LEVEL_UP_MOVE(25, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(28, MOVE_BRINE),
    LEVEL_UP_MOVE(34, MOVE_PROTECT),
    LEVEL_UP_MOVE(37, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(48, MOVE_TICKLE),
    LEVEL_UP_MOVE(56, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(67, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE(75, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sKabutoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 6, MOVE_ABSORB),
    LEVEL_UP_MOVE(11, MOVE_LEER),
    LEVEL_UP_MOVE(16, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(26, MOVE_ENDURE),
    LEVEL_UP_MOVE(31, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(36, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(41, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(46, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(50, MOVE_WRING_OUT),
    LEVEL_UP_END
};

static const struct LevelUpMove sKabutopsLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_FEINT),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 6, MOVE_ABSORB),
    LEVEL_UP_MOVE(11, MOVE_LEER),
    LEVEL_UP_MOVE(16, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(26, MOVE_ENDURE),
    LEVEL_UP_MOVE(31, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(36, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(45, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(54, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(63, MOVE_WRING_OUT),
    LEVEL_UP_MOVE(72, MOVE_NIGHT_SLASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sAerodactylLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 9, MOVE_ROAR),
    LEVEL_UP_MOVE(17, MOVE_AGILITY),
    LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(33, MOVE_CRUNCH),
    LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(49, MOVE_SKY_DROP),
    LEVEL_UP_MOVE(57, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(73, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(81, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};

static const struct LevelUpMove sSnorlaxLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 9, MOVE_AMNESIA),
    LEVEL_UP_MOVE(12, MOVE_LICK),
    LEVEL_UP_MOVE(17, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(20, MOVE_YAWN),
    LEVEL_UP_MOVE(25, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(28, MOVE_REST),
    LEVEL_UP_MOVE(28, MOVE_SNORE),
    LEVEL_UP_MOVE(33, MOVE_SLEEP_TALK),
    LEVEL_UP_MOVE(35, MOVE_GIGA_IMPACT),
    LEVEL_UP_MOVE(36, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(41, MOVE_BLOCK),
    LEVEL_UP_MOVE(44, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(49, MOVE_CRUNCH),
    LEVEL_UP_MOVE(50, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(57, MOVE_HIGH_HORSEPOWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sArticunoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 8, MOVE_MIST),
    LEVEL_UP_MOVE(15, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(22, MOVE_MIND_READER),
    LEVEL_UP_MOVE(29, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(36, MOVE_AGILITY),
    LEVEL_UP_MOVE(43, MOVE_FREEZE_DRY),
    LEVEL_UP_MOVE(50, MOVE_REFLECT),
    LEVEL_UP_MOVE(57, MOVE_HAIL),
    LEVEL_UP_MOVE(64, MOVE_TAILWIND),
    LEVEL_UP_MOVE(71, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(78, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(85, MOVE_ROOST),
    LEVEL_UP_MOVE(92, MOVE_HURRICANE),
    LEVEL_UP_MOVE(99, MOVE_SHEER_COLD),
    LEVEL_UP_END
};

static const struct LevelUpMove sZapdosLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(15, MOVE_DETECT),
    LEVEL_UP_MOVE(22, MOVE_PLUCK),
    LEVEL_UP_MOVE(29, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(36, MOVE_CHARGE),
    LEVEL_UP_MOVE(43, MOVE_AGILITY),
    LEVEL_UP_MOVE(50, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(57, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(64, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(71, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(78, MOVE_THUNDER),
    LEVEL_UP_MOVE(85, MOVE_ROOST),
    LEVEL_UP_MOVE(92, MOVE_MAGNETIC_FLUX),
    LEVEL_UP_MOVE(99, MOVE_ZAP_CANNON),
    LEVEL_UP_END
};

static const struct LevelUpMove sMoltresLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 8, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(15, MOVE_AGILITY),
    LEVEL_UP_MOVE(22, MOVE_ENDURE),
    LEVEL_UP_MOVE(29, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(43, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(50, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(57, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(64, MOVE_HEAT_WAVE),
    LEVEL_UP_MOVE(71, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(78, MOVE_SKY_ATTACK),
    LEVEL_UP_MOVE(85, MOVE_ROOST),
    LEVEL_UP_MOVE(92, MOVE_HURRICANE),
    LEVEL_UP_MOVE(99, MOVE_BURN_UP),
    LEVEL_UP_END
};

static const struct LevelUpMove sDratiniLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(11, MOVE_TWISTER),
    LEVEL_UP_MOVE(15, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE(21, MOVE_SLAM),
    LEVEL_UP_MOVE(25, MOVE_AGILITY),
    LEVEL_UP_MOVE(31, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(41, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(45, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(51, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(55, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(61, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sDragonairLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_TWISTER),
    LEVEL_UP_MOVE( 5, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(11, MOVE_TWISTER),
    LEVEL_UP_MOVE(15, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE(21, MOVE_SLAM),
    LEVEL_UP_MOVE(25, MOVE_AGILITY),
    LEVEL_UP_MOVE(33, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(47, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(53, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(61, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(67, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sDragoniteLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_HURRICANE),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_ROOST),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_TWISTER),
    LEVEL_UP_MOVE( 5, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(11, MOVE_TWISTER),
    LEVEL_UP_MOVE(15, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE(21, MOVE_SLAM),
    LEVEL_UP_MOVE(25, MOVE_AGILITY),
    LEVEL_UP_MOVE(33, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(47, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(53, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(61, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(67, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(81, MOVE_HURRICANE),
    LEVEL_UP_END
};

static const struct LevelUpMove sMewtwoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE( 8, MOVE_SWIFT),
    LEVEL_UP_MOVE(15, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(22, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(29, MOVE_MIRACLE_EYE),
    LEVEL_UP_MOVE(36, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(43, MOVE_POWER_SWAP),
    LEVEL_UP_MOVE(43, MOVE_GUARD_SWAP),
    LEVEL_UP_MOVE(50, MOVE_RECOVER),
    LEVEL_UP_MOVE(57, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(64, MOVE_BARRIER),
    LEVEL_UP_MOVE(70, MOVE_AURA_SPHERE),
    LEVEL_UP_MOVE(79, MOVE_AMNESIA),
    LEVEL_UP_MOVE(86, MOVE_MIST),
    LEVEL_UP_MOVE(93, MOVE_ME_FIRST),
    LEVEL_UP_END
};

static const struct LevelUpMove sMewLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_REFLECT_TYPE),
    LEVEL_UP_MOVE( 1, MOVE_TRANSFORM),
    LEVEL_UP_MOVE(10, MOVE_MEGA_PUNCH),
    LEVEL_UP_MOVE(20, MOVE_METRONOME),
    LEVEL_UP_MOVE(30, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(40, MOVE_BARRIER),
    LEVEL_UP_MOVE(50, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(60, MOVE_AMNESIA),
    LEVEL_UP_MOVE(70, MOVE_ME_FIRST),
    LEVEL_UP_MOVE(80, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(90, MOVE_NASTY_PLOT),
    LEVEL_UP_END
};

static const struct LevelUpMove sChikoritaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 6, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 9, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(12, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(17, MOVE_REFLECT),
    LEVEL_UP_MOVE(20, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(23, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(28, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(34, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(39, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(42, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(45, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sBayleefLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE( 6, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 9, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(12, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(18, MOVE_REFLECT),
    LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(26, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(32, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(40, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(46, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(50, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(54, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sMeganiumLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE( 6, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 9, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(12, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(18, MOVE_REFLECT),
    LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(26, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(34, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(40, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(46, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(54, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(60, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(66, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(70, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_END
};

static const struct LevelUpMove sCyndaquilLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(10, MOVE_EMBER),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(19, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(22, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE(28, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(31, MOVE_SWIFT),
    LEVEL_UP_MOVE(37, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(46, MOVE_INFERNO),
    LEVEL_UP_MOVE(49, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(58, MOVE_BURN_UP),
    LEVEL_UP_MOVE(64, MOVE_ERUPTION),
    LEVEL_UP_END
};

static const struct LevelUpMove sQuilavaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(10, MOVE_EMBER),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(24, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE(31, MOVE_SWIFT),
    LEVEL_UP_MOVE(35, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(42, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(46, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(53, MOVE_INFERNO),
    LEVEL_UP_MOVE(57, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(64, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(68, MOVE_BURN_UP),
    LEVEL_UP_MOVE(75, MOVE_ERUPTION),
    LEVEL_UP_END
};

static const struct LevelUpMove sTyphlosionLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ERUPTION),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE( 1, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(10, MOVE_EMBER),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(24, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE(31, MOVE_SWIFT),
    LEVEL_UP_MOVE(35, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(43, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(56, MOVE_INFERNO),
    LEVEL_UP_MOVE(61, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(69, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(74, MOVE_BURN_UP),
    LEVEL_UP_MOVE(82, MOVE_ERUPTION),
    LEVEL_UP_END
};

static const struct LevelUpMove sTotodileLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 6, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 8, MOVE_RAGE),
    LEVEL_UP_MOVE(13, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(20, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(22, MOVE_FLAIL),
    LEVEL_UP_MOVE(27, MOVE_CRUNCH),
    LEVEL_UP_MOVE(29, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(34, MOVE_SLASH),
    LEVEL_UP_MOVE(36, MOVE_SCREECH),
    LEVEL_UP_MOVE(41, MOVE_THRASH),
    LEVEL_UP_MOVE(43, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(48, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sCroconawLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 6, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 8, MOVE_RAGE),
    LEVEL_UP_MOVE(13, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(21, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(24, MOVE_FLAIL),
    LEVEL_UP_MOVE(30, MOVE_CRUNCH),
    LEVEL_UP_MOVE(33, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(39, MOVE_SLASH),
    LEVEL_UP_MOVE(42, MOVE_SCREECH),
    LEVEL_UP_MOVE(48, MOVE_THRASH),
    LEVEL_UP_MOVE(51, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(57, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sFeraligatrLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_AGILITY),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_RAGE),
    LEVEL_UP_MOVE( 6, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 8, MOVE_RAGE),
    LEVEL_UP_MOVE(13, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(21, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(24, MOVE_FLAIL),
    LEVEL_UP_MOVE(32, MOVE_CRUNCH),
    LEVEL_UP_MOVE(37, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(45, MOVE_SLASH),
    LEVEL_UP_MOVE(50, MOVE_SCREECH),
    LEVEL_UP_MOVE(58, MOVE_THRASH),
    LEVEL_UP_MOVE(63, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(71, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(76, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sSentretLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
    LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(16, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(19, MOVE_FOLLOW_ME),
    LEVEL_UP_MOVE(25, MOVE_SLAM),
    LEVEL_UP_MOVE(28, MOVE_REST),
    LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(36, MOVE_AMNESIA),
    LEVEL_UP_MOVE(39, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(42, MOVE_ME_FIRST),
    LEVEL_UP_MOVE(47, MOVE_HYPER_VOICE),
    LEVEL_UP_END
};

static const struct LevelUpMove sFurretLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_AGILITY),
    LEVEL_UP_MOVE( 1, MOVE_AGILITY),
    LEVEL_UP_MOVE( 1, MOVE_COIL),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(17, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(21, MOVE_FOLLOW_ME),
    LEVEL_UP_MOVE(28, MOVE_SLAM),
    LEVEL_UP_MOVE(32, MOVE_REST),
    LEVEL_UP_MOVE(36, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(42, MOVE_AMNESIA),
    LEVEL_UP_MOVE(46, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(50, MOVE_ME_FIRST),
    LEVEL_UP_MOVE(56, MOVE_HYPER_VOICE),
    LEVEL_UP_END
};

static const struct LevelUpMove sHoothootLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
    LEVEL_UP_MOVE( 4, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 7, MOVE_PECK),
    LEVEL_UP_MOVE(10, MOVE_CONFUSION),
    LEVEL_UP_MOVE(13, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(16, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(19, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE(22, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(28, MOVE_REFLECT),
    LEVEL_UP_MOVE(31, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(34, MOVE_UPROAR),
    LEVEL_UP_MOVE(37, MOVE_ROOST),
    LEVEL_UP_MOVE(40, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(43, MOVE_SYNCHRONOISE),
    LEVEL_UP_MOVE(46, MOVE_DREAM_EATER),
    LEVEL_UP_END
};

static const struct LevelUpMove sNoctowlLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DREAM_EATER),
    LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 4, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 7, MOVE_PECK),
    LEVEL_UP_MOVE(10, MOVE_CONFUSION),
    LEVEL_UP_MOVE(13, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(16, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(19, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE(23, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(31, MOVE_REFLECT),
    LEVEL_UP_MOVE(35, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(39, MOVE_UPROAR),
    LEVEL_UP_MOVE(43, MOVE_ROOST),
    LEVEL_UP_MOVE(47, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(51, MOVE_SYNCHRONOISE),
    LEVEL_UP_MOVE(55, MOVE_DREAM_EATER),
    LEVEL_UP_END
};

static const struct LevelUpMove sLedybaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 8, MOVE_SWIFT),
    LEVEL_UP_MOVE(12, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(12, MOVE_REFLECT),
    LEVEL_UP_MOVE(12, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(15, MOVE_MACH_PUNCH),
    LEVEL_UP_MOVE(19, MOVE_SILVER_WIND),
    LEVEL_UP_MOVE(22, MOVE_COMET_PUNCH),
    LEVEL_UP_MOVE(26, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(29, MOVE_AGILITY),
    LEVEL_UP_MOVE(33, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(36, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sLedianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_SWIFT),
    LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 8, MOVE_SWIFT),
    LEVEL_UP_MOVE(12, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(12, MOVE_REFLECT),
    LEVEL_UP_MOVE(12, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(15, MOVE_MACH_PUNCH),
    LEVEL_UP_MOVE(20, MOVE_SILVER_WIND),
    LEVEL_UP_MOVE(24, MOVE_COMET_PUNCH),
    LEVEL_UP_MOVE(29, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(33, MOVE_AGILITY),
    LEVEL_UP_MOVE(38, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(42, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpinarakLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
    LEVEL_UP_MOVE( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 8, MOVE_INFESTATION),
    LEVEL_UP_MOVE(12, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(19, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(22, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(26, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(29, MOVE_SPIDER_WEB),
    LEVEL_UP_MOVE(33, MOVE_AGILITY),
    LEVEL_UP_MOVE(36, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(43, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(47, MOVE_CROSS_POISON),
    LEVEL_UP_MOVE(50, MOVE_STICKY_WEB),
    LEVEL_UP_MOVE(54, MOVE_TOXIC_THREAD),
    LEVEL_UP_END
};

static const struct LevelUpMove sAriadosLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE( 1, MOVE_FELL_STINGER),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 8, MOVE_INFESTATION),
    LEVEL_UP_MOVE(12, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(19, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(23, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(32, MOVE_SPIDER_WEB),
    LEVEL_UP_MOVE(37, MOVE_AGILITY),
    LEVEL_UP_MOVE(41, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(46, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(50, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(55, MOVE_CROSS_POISON),
    LEVEL_UP_MOVE(58, MOVE_STICKY_WEB),
    LEVEL_UP_MOVE(63, MOVE_TOXIC_THREAD),
    LEVEL_UP_END
};

static const struct LevelUpMove sCrobatLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_CROSS_POISON),
    LEVEL_UP_MOVE( 1, MOVE_CROSS_POISON),
    LEVEL_UP_MOVE( 1, MOVE_SCREECH),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 7, MOVE_ASTONISH),
    LEVEL_UP_MOVE(11, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(19, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(24, MOVE_SWIFT),
    LEVEL_UP_MOVE(27, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(32, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(35, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE(40, MOVE_HAZE),
    LEVEL_UP_MOVE(43, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(48, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(51, MOVE_QUICK_GUARD),
    LEVEL_UP_END
};

static const struct LevelUpMove sChinchouLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 6, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 9, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(12, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(23, MOVE_SPARK),
    LEVEL_UP_MOVE(28, MOVE_SIGNAL_BEAM),
    LEVEL_UP_MOVE(31, MOVE_FLAIL),
    LEVEL_UP_MOVE(34, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(39, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(42, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(47, MOVE_ION_DELUGE),
    LEVEL_UP_MOVE(50, MOVE_CHARGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sLanturnLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_STOCKPILE),
    // LEVEL_UP_MOVE( 0, MOVE_SWALLOW),
    // LEVEL_UP_MOVE( 0, MOVE_SPIT_UP),
    LEVEL_UP_MOVE( 1, MOVE_STOCKPILE),
    LEVEL_UP_MOVE( 1, MOVE_SWALLOW),
    LEVEL_UP_MOVE( 1, MOVE_SPIT_UP),
    LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE),
    LEVEL_UP_MOVE( 1, MOVE_SPOTLIGHT),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE( 6, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 9, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(12, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(23, MOVE_SPARK),
    LEVEL_UP_MOVE(29, MOVE_SIGNAL_BEAM),
    LEVEL_UP_MOVE(33, MOVE_FLAIL),
    LEVEL_UP_MOVE(37, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(47, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(54, MOVE_ION_DELUGE),
    LEVEL_UP_MOVE(58, MOVE_CHARGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sPichuLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE(10, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(13, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(18, MOVE_THUNDER_WAVE),
    LEVEL_UP_END
};

static const struct LevelUpMove sCleffaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 4, MOVE_ENCORE),
    LEVEL_UP_MOVE( 7, MOVE_SING),
    LEVEL_UP_MOVE(10, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(13, MOVE_COPYCAT),
    LEVEL_UP_MOVE(16, MOVE_MAGICAL_LEAF),
    LEVEL_UP_END
};

static const struct LevelUpMove sIgglybuffLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SING),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 5, MOVE_POUND),
    LEVEL_UP_MOVE( 9, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(11, MOVE_COPYCAT),
    LEVEL_UP_END
};

static const struct LevelUpMove sTogepiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 5, MOVE_METRONOME),
    LEVEL_UP_MOVE( 9, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(13, MOVE_YAWN),
    LEVEL_UP_MOVE(17, MOVE_ENCORE),
    LEVEL_UP_MOVE(21, MOVE_FOLLOW_ME),
    LEVEL_UP_MOVE(25, MOVE_BESTOW),
    LEVEL_UP_MOVE(29, MOVE_WISH),
    LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(37, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(41, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(49, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(53, MOVE_AFTER_YOU),
    LEVEL_UP_END
};

static const struct LevelUpMove sTogeticLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_METRONOME),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE( 5, MOVE_METRONOME),
    LEVEL_UP_MOVE( 9, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(13, MOVE_YAWN),
    LEVEL_UP_MOVE(14, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE(17, MOVE_ENCORE),
    LEVEL_UP_MOVE(21, MOVE_FOLLOW_ME),
    LEVEL_UP_MOVE(25, MOVE_BESTOW),
    LEVEL_UP_MOVE(29, MOVE_WISH),
    LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(37, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(41, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(49, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(53, MOVE_AFTER_YOU),
    LEVEL_UP_END
};

static const struct LevelUpMove sNatuLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 6, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE( 9, MOVE_TELEPORT),
    LEVEL_UP_MOVE(12, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(17, MOVE_STORED_POWER),
    LEVEL_UP_MOVE(20, MOVE_OMINOUS_WIND),
    LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(28, MOVE_WISH),
    LEVEL_UP_MOVE(33, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(36, MOVE_MIRACLE_EYE),
    LEVEL_UP_MOVE(39, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE(44, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(47, MOVE_POWER_SWAP),
    LEVEL_UP_MOVE(47, MOVE_GUARD_SWAP),
    LEVEL_UP_MOVE(50, MOVE_ME_FIRST),
    LEVEL_UP_END
};

static const struct LevelUpMove sXatuLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_TAILWIND),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
    LEVEL_UP_MOVE( 6, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE( 9, MOVE_TELEPORT),
    LEVEL_UP_MOVE(12, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(17, MOVE_STORED_POWER),
    LEVEL_UP_MOVE(20, MOVE_OMINOUS_WIND),
    LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(29, MOVE_WISH),
    LEVEL_UP_MOVE(35, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(39, MOVE_MIRACLE_EYE),
    LEVEL_UP_MOVE(43, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE(49, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(53, MOVE_POWER_SWAP),
    LEVEL_UP_MOVE(53, MOVE_GUARD_SWAP),
    LEVEL_UP_MOVE(57, MOVE_ME_FIRST),
    LEVEL_UP_END
};

static const struct LevelUpMove sMareepLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 8, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(11, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE(15, MOVE_CHARGE),
    LEVEL_UP_MOVE(18, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(29, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(32, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(36, MOVE_COTTON_GUARD),
    LEVEL_UP_MOVE(39, MOVE_SIGNAL_BEAM),
    LEVEL_UP_MOVE(43, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(46, MOVE_THUNDER),
    LEVEL_UP_END
};

static const struct LevelUpMove sFlaaffyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 8, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(11, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE(16, MOVE_CHARGE),
    LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(25, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(34, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(38, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(43, MOVE_COTTON_GUARD),
    LEVEL_UP_MOVE(47, MOVE_SIGNAL_BEAM),
    LEVEL_UP_MOVE(52, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(56, MOVE_THUNDER),
    LEVEL_UP_END
};

static const struct LevelUpMove sAmpharosLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE( 1, MOVE_MAGNETIC_FLUX),
    LEVEL_UP_MOVE( 1, MOVE_ION_DELUGE),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 8, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(11, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE(16, MOVE_CHARGE),
    LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(25, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(35, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(40, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(46, MOVE_COTTON_GUARD),
    LEVEL_UP_MOVE(51, MOVE_SIGNAL_BEAM),
    LEVEL_UP_MOVE(57, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(62, MOVE_THUNDER),
    LEVEL_UP_MOVE(65, MOVE_DRAGON_PULSE),
    LEVEL_UP_END
};

static const struct LevelUpMove sBellossomLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM),
    LEVEL_UP_MOVE( 1, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(39, MOVE_QUIVER_DANCE),
    LEVEL_UP_MOVE(49, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE(59, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE(69, MOVE_LEAF_STORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sMarillLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 2, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 7, MOVE_BUBBLE),
    LEVEL_UP_MOVE(10, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE(10, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(16, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(20, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(23, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(28, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(31, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(40, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(47, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sAzumarillLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 2, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 7, MOVE_BUBBLE),
    LEVEL_UP_MOVE(10, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE(10, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(16, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(21, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(25, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(31, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(35, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(46, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sSudowoodoLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_SLAM),
    LEVEL_UP_MOVE( 1, MOVE_SLAM),
    LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 1, MOVE_FLAIL),
    LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 5, MOVE_FLAIL),
    LEVEL_UP_MOVE( 8, MOVE_LOW_KICK),
    LEVEL_UP_MOVE(12, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(15, MOVE_MIMIC),
    LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(22, MOVE_TEARFUL_LOOK),
    LEVEL_UP_MOVE(26, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(29, MOVE_BLOCK),
    LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(36, MOVE_COUNTER),
    LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(47, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(50, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(54, MOVE_HEAD_SMASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sPolitoedLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG),
    LEVEL_UP_MOVE(27, MOVE_SWAGGER),
    LEVEL_UP_MOVE(37, MOVE_BOUNCE),
    LEVEL_UP_MOVE(48, MOVE_HYPER_VOICE),
    LEVEL_UP_END
};

static const struct LevelUpMove sHoppipLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 4, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 8, MOVE_TACKLE),
    LEVEL_UP_MOVE(10, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE(12, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(14, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(16, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(19, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(22, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(28, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(31, MOVE_RAGE_POWDER),
    LEVEL_UP_MOVE(34, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE(37, MOVE_U_TURN),
    LEVEL_UP_MOVE(40, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(43, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(46, MOVE_BOUNCE),
    LEVEL_UP_MOVE(49, MOVE_MEMENTO),
    LEVEL_UP_END
};

static const struct LevelUpMove sSkiploomLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 4, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 8, MOVE_TACKLE),
    LEVEL_UP_MOVE(10, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE(12, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(14, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(16, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(20, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(24, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(28, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(32, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(36, MOVE_RAGE_POWDER),
    LEVEL_UP_MOVE(40, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE(44, MOVE_U_TURN),
    LEVEL_UP_MOVE(48, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(52, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(56, MOVE_BOUNCE),
    LEVEL_UP_MOVE(60, MOVE_MEMENTO),
    LEVEL_UP_END
};

static const struct LevelUpMove sJumpluffLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 4, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 8, MOVE_TACKLE),
    LEVEL_UP_MOVE(10, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE(12, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(14, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(16, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(20, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(24, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(29, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(34, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(39, MOVE_RAGE_POWDER),
    LEVEL_UP_MOVE(44, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE(49, MOVE_U_TURN),
    LEVEL_UP_MOVE(54, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(59, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(64, MOVE_BOUNCE),
    LEVEL_UP_MOVE(69, MOVE_MEMENTO),
    LEVEL_UP_END
};

static const struct LevelUpMove sAipomLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 8, MOVE_ASTONISH),
    LEVEL_UP_MOVE(11, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(15, MOVE_TICKLE),
    LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(22, MOVE_SWIFT),
    LEVEL_UP_MOVE(25, MOVE_SCREECH),
    LEVEL_UP_MOVE(29, MOVE_AGILITY),
    LEVEL_UP_MOVE(32, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(36, MOVE_FLING),
    LEVEL_UP_MOVE(39, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(43, MOVE_LAST_RESORT),
    LEVEL_UP_END
};

static const struct LevelUpMove sSunkernLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 4, MOVE_INGRAIN),
    LEVEL_UP_MOVE( 7, MOVE_GRASS_WHISTLE),
    LEVEL_UP_MOVE(10, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(13, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(16, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(19, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(22, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(25, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(28, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(31, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(34, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(40, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(43, MOVE_SEED_BOMB),
    LEVEL_UP_END
};

static const struct LevelUpMove sSunfloraLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FLOWER_SHIELD),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 4, MOVE_INGRAIN),
    LEVEL_UP_MOVE( 7, MOVE_GRASS_WHISTLE),
    LEVEL_UP_MOVE(10, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(13, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(16, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(19, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(22, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(25, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(28, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE(31, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(34, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(40, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(43, MOVE_LEAF_STORM),
    LEVEL_UP_MOVE(50, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_END
};

static const struct LevelUpMove sYanmaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
    LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(14, MOVE_SONIC_BOOM),
    LEVEL_UP_MOVE(17, MOVE_DETECT),
    LEVEL_UP_MOVE(22, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(27, MOVE_UPROAR),
    LEVEL_UP_MOVE(30, MOVE_PURSUIT),
    LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(38, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(43, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(46, MOVE_SCREECH),
    LEVEL_UP_MOVE(49, MOVE_U_TURN),
    LEVEL_UP_MOVE(54, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(57, MOVE_BUG_BUZZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sWooperLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 9, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(15, MOVE_SLAM),
    LEVEL_UP_MOVE(19, MOVE_MUD_BOMB),
    LEVEL_UP_MOVE(23, MOVE_AMNESIA),
    LEVEL_UP_MOVE(29, MOVE_YAWN),
    LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(43, MOVE_MIST),
    LEVEL_UP_MOVE(43, MOVE_HAZE),
    LEVEL_UP_MOVE(47, MOVE_MUDDY_WATER),
    LEVEL_UP_END
};

static const struct LevelUpMove sQuagsireLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 5, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 9, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(15, MOVE_SLAM),
    LEVEL_UP_MOVE(19, MOVE_MUD_BOMB),
    LEVEL_UP_MOVE(24, MOVE_AMNESIA),
    LEVEL_UP_MOVE(31, MOVE_YAWN),
    LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(41, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(48, MOVE_MIST),
    LEVEL_UP_MOVE(48, MOVE_HAZE),
    LEVEL_UP_MOVE(53, MOVE_MUDDY_WATER),
    LEVEL_UP_END
};

static const struct LevelUpMove sEspeonLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_SWIFT),
    LEVEL_UP_MOVE(20, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(25, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(29, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(33, MOVE_MORNING_SUN),
    LEVEL_UP_MOVE(37, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(41, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(45, MOVE_POWER_SWAP),
    LEVEL_UP_END
};

static const struct LevelUpMove sUmbreonLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_PURSUIT),
    LEVEL_UP_MOVE( 1, MOVE_PURSUIT),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(20, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(25, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(29, MOVE_SCREECH),
    LEVEL_UP_MOVE(33, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(37, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(41, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(45, MOVE_GUARD_SWAP),
    LEVEL_UP_END
};

static const struct LevelUpMove sMurkrowLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 5, MOVE_PURSUIT),
    LEVEL_UP_MOVE(11, MOVE_HAZE),
    LEVEL_UP_MOVE(15, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(25, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(31, MOVE_TAUNT),
    LEVEL_UP_MOVE(35, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(41, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(45, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(50, MOVE_TAILWIND),
    LEVEL_UP_MOVE(55, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(61, MOVE_TORMENT),
    LEVEL_UP_MOVE(65, MOVE_QUASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sSlowkingLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_POWER_GEM),
    LEVEL_UP_MOVE( 1, MOVE_HIDDEN_POWER),
    LEVEL_UP_MOVE( 1, MOVE_CURSE),
    LEVEL_UP_MOVE( 1, MOVE_YAWN),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_GROWL),
    LEVEL_UP_MOVE( 9, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(14, MOVE_CONFUSION),
    LEVEL_UP_MOVE(19, MOVE_DISABLE),
    LEVEL_UP_MOVE(23, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(28, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(36, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(41, MOVE_SWAGGER),
    LEVEL_UP_MOVE(45, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(49, MOVE_TRUMP_CARD),
    LEVEL_UP_MOVE(54, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(58, MOVE_HEAL_PULSE),
    LEVEL_UP_END
};

static const struct LevelUpMove sMisdreavusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
    LEVEL_UP_MOVE( 5, MOVE_SPITE),
    LEVEL_UP_MOVE(10, MOVE_ASTONISH),
    LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(19, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(23, MOVE_HEX),
    LEVEL_UP_MOVE(28, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(32, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(37, MOVE_PAYBACK),
    LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(46, MOVE_PERISH_SONG),
    LEVEL_UP_MOVE(50, MOVE_GRUDGE),
    LEVEL_UP_MOVE(55, MOVE_POWER_GEM),
    LEVEL_UP_END
};

static const struct LevelUpMove sUnownLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HIDDEN_POWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sWobbuffetLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_COUNTER),
    LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND),
    LEVEL_UP_END
};

static const struct LevelUpMove sGirafarigLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP),
    LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 5, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(10, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(14, MOVE_STOMP),
    LEVEL_UP_MOVE(19, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(23, MOVE_AGILITY),
    LEVEL_UP_MOVE(28, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(37, MOVE_CRUNCH),
    LEVEL_UP_MOVE(41, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(50, MOVE_PSYCHIC),
    LEVEL_UP_END
};

static const struct LevelUpMove sPinecoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 6, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE( 9, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(12, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(17, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(20, MOVE_BIDE),
    LEVEL_UP_MOVE(23, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(28, MOVE_SPIKES),
    LEVEL_UP_MOVE(31, MOVE_PAYBACK),
    LEVEL_UP_MOVE(34, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(39, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(42, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sForretressLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_MIRROR_SHOT),
    // LEVEL_UP_MOVE( 0, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE( 1, MOVE_MIRROR_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE( 6, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE( 9, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(12, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(17, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(20, MOVE_BIDE),
    LEVEL_UP_MOVE(23, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(28, MOVE_SPIKES),
    LEVEL_UP_MOVE(32, MOVE_PAYBACK),
    LEVEL_UP_MOVE(36, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(42, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(46, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(56, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(60, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(64, MOVE_HEAVY_SLAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sDunsparceLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_RAGE),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 3, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 6, MOVE_SPITE),
    LEVEL_UP_MOVE( 8, MOVE_PURSUIT),
    LEVEL_UP_MOVE(11, MOVE_SCREECH),
    LEVEL_UP_MOVE(13, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(16, MOVE_YAWN),
    LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(21, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(23, MOVE_DRILL_RUN),
    LEVEL_UP_MOVE(26, MOVE_ROOST),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(31, MOVE_COIL),
    LEVEL_UP_MOVE(33, MOVE_DIG),
    LEVEL_UP_MOVE(36, MOVE_GLARE),
    LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(41, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(43, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(46, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(48, MOVE_ENDURE),
    LEVEL_UP_MOVE(51, MOVE_FLAIL),
    LEVEL_UP_END
};

static const struct LevelUpMove sGligarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_HARDEN),
    LEVEL_UP_MOVE(10, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(22, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(27, MOVE_SLASH),
    LEVEL_UP_MOVE(30, MOVE_U_TURN),
    LEVEL_UP_MOVE(35, MOVE_SCREECH),
    LEVEL_UP_MOVE(40, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(45, MOVE_SKY_UPPERCUT),
    LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(55, MOVE_GUILLOTINE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSteelixLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE( 4, MOVE_CURSE),
    LEVEL_UP_MOVE( 7, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(10, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(13, MOVE_RAGE),
    LEVEL_UP_MOVE(16, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(19, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(20, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(22, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(25, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(28, MOVE_SLAM),
    LEVEL_UP_MOVE(31, MOVE_SCREECH),
    LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(37, MOVE_CRUNCH),
    LEVEL_UP_MOVE(40, MOVE_IRON_TAIL),
    LEVEL_UP_MOVE(43, MOVE_DIG),
    LEVEL_UP_MOVE(46, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(52, MOVE_SANDSTORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sSnubbullLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_LICK),
    LEVEL_UP_MOVE(19, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(25, MOVE_ROAR),
    LEVEL_UP_MOVE(31, MOVE_RAGE),
    LEVEL_UP_MOVE(37, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(43, MOVE_PAYBACK),
    LEVEL_UP_MOVE(49, MOVE_CRUNCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sGranbullLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_OUTRAGE),
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_LICK),
    LEVEL_UP_MOVE(19, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(27, MOVE_ROAR),
    LEVEL_UP_MOVE(35, MOVE_RAGE),
    LEVEL_UP_MOVE(43, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(51, MOVE_PAYBACK),
    LEVEL_UP_MOVE(59, MOVE_CRUNCH),
    LEVEL_UP_MOVE(67, MOVE_OUTRAGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sQwilfishLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FELL_STINGER),
    LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_SPIKES),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 9, MOVE_HARDEN),
    LEVEL_UP_MOVE( 9, MOVE_MINIMIZE),
    LEVEL_UP_MOVE(13, MOVE_BUBBLE),
    LEVEL_UP_MOVE(17, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(21, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(25, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(25, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(29, MOVE_REVENGE),
    LEVEL_UP_MOVE(33, MOVE_BRINE),
    LEVEL_UP_MOVE(37, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(45, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(49, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(53, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE(57, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(60, MOVE_FELL_STINGER),
    LEVEL_UP_END
};

static const struct LevelUpMove sScizorLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FEINT),
    LEVEL_UP_MOVE( 1, MOVE_BULLET_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 9, MOVE_PURSUIT),
    LEVEL_UP_MOVE(13, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(17, MOVE_AGILITY),
    LEVEL_UP_MOVE(21, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(25, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(29, MOVE_SLASH),
    LEVEL_UP_MOVE(33, MOVE_RAZOR_WIND),
    LEVEL_UP_MOVE(37, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(41, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(45, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(49, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(50, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(61, MOVE_FEINT),
    LEVEL_UP_END
};

static const struct LevelUpMove sShuckleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_STICKY_WEB),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
    LEVEL_UP_MOVE( 1, MOVE_BIDE),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 5, MOVE_ENCORE),
    LEVEL_UP_MOVE( 9, MOVE_WRAP),
    LEVEL_UP_MOVE(12, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(16, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(20, MOVE_REST),
    LEVEL_UP_MOVE(23, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(27, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(31, MOVE_POWER_TRICK),
    LEVEL_UP_MOVE(34, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE(38, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(42, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(45, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(45, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(49, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(53, MOVE_STICKY_WEB),
    LEVEL_UP_END
};

static const struct LevelUpMove sHeracrossLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST),
    LEVEL_UP_MOVE( 1, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_ENDURE),
    LEVEL_UP_MOVE( 7, MOVE_FEINT),
    LEVEL_UP_MOVE(10, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(16, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(19, MOVE_COUNTER),
    LEVEL_UP_MOVE(25, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(28, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(31, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(34, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(37, MOVE_MEGAHORN),
    LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(46, MOVE_REVERSAL),
    LEVEL_UP_END
};

static const struct LevelUpMove sSneaselLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(14, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(20, MOVE_AGILITY),
    LEVEL_UP_MOVE(22, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(25, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(28, MOVE_BEAT_UP),
    LEVEL_UP_MOVE(32, MOVE_SCREECH),
    LEVEL_UP_MOVE(35, MOVE_SLASH),
    LEVEL_UP_MOVE(40, MOVE_SNATCH),
    LEVEL_UP_MOVE(44, MOVE_PUNISHMENT),
    LEVEL_UP_MOVE(47, MOVE_ICE_SHARD),
    LEVEL_UP_END
};

static const struct LevelUpMove sTeddiursaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FLING),
    LEVEL_UP_MOVE( 1, MOVE_COVET),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(15, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(22, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(25, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE(29, MOVE_SLASH),
    LEVEL_UP_MOVE(36, MOVE_CHARM),
    LEVEL_UP_MOVE(43, MOVE_REST),
    LEVEL_UP_MOVE(43, MOVE_SNORE),
    LEVEL_UP_MOVE(50, MOVE_THRASH),
    LEVEL_UP_MOVE(57, MOVE_FLING),
    LEVEL_UP_END
};

static const struct LevelUpMove sUrsaringLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_COVET),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(15, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(22, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(25, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE(29, MOVE_SLASH),
    LEVEL_UP_MOVE(38, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(47, MOVE_REST),
    LEVEL_UP_MOVE(49, MOVE_SNORE),
    LEVEL_UP_MOVE(58, MOVE_THRASH),
    LEVEL_UP_MOVE(67, MOVE_HAMMER_ARM),
    LEVEL_UP_END
};

static const struct LevelUpMove sSlugmaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_YAWN),
    LEVEL_UP_MOVE( 1, MOVE_SMOG),
    LEVEL_UP_MOVE( 6, MOVE_EMBER),
    LEVEL_UP_MOVE( 8, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(13, MOVE_HARDEN),
    LEVEL_UP_MOVE(15, MOVE_INCINERATE),
    LEVEL_UP_MOVE(20, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(22, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(27, MOVE_FLAME_BURST),
    LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(34, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(36, MOVE_AMNESIA),
    LEVEL_UP_MOVE(41, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(43, MOVE_RECOVER),
    LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(50, MOVE_EARTH_POWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sMagcargoLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE( 1, MOVE_YAWN),
    LEVEL_UP_MOVE( 1, MOVE_SMOG),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 6, MOVE_EMBER),
    LEVEL_UP_MOVE( 8, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(13, MOVE_HARDEN),
    LEVEL_UP_MOVE(15, MOVE_INCINERATE),
    LEVEL_UP_MOVE(20, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(22, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(27, MOVE_FLAME_BURST),
    LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(34, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(36, MOVE_AMNESIA),
    LEVEL_UP_MOVE(43, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(47, MOVE_RECOVER),
    LEVEL_UP_MOVE(54, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(58, MOVE_EARTH_POWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sSwinubLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE( 5, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 8, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE(11, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(14, MOVE_ENDURE),
    LEVEL_UP_MOVE(18, MOVE_MUD_BOMB),
    LEVEL_UP_MOVE(21, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(24, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(35, MOVE_MIST),
    LEVEL_UP_MOVE(37, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(40, MOVE_FLAIL),
    LEVEL_UP_MOVE(44, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(48, MOVE_AMNESIA),
    LEVEL_UP_END
};

static const struct LevelUpMove sPiloswineLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 5, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 8, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE(11, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(14, MOVE_ENDURE),
    LEVEL_UP_MOVE(18, MOVE_MUD_BOMB),
    LEVEL_UP_MOVE(21, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(24, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(37, MOVE_MIST),
    LEVEL_UP_MOVE(41, MOVE_THRASH),
    LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(52, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(58, MOVE_AMNESIA),
    LEVEL_UP_END
};

static const struct LevelUpMove sCorsolaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 4, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 8, MOVE_RECOVER),
    LEVEL_UP_MOVE(10, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(13, MOVE_REFRESH),
    LEVEL_UP_MOVE(17, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(20, MOVE_SPIKE_CANNON),
    LEVEL_UP_MOVE(23, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(27, MOVE_BRINE),
    LEVEL_UP_MOVE(29, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(31, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(35, MOVE_ENDURE),
    LEVEL_UP_MOVE(38, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(41, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(45, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE(47, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(50, MOVE_FLAIL),
    LEVEL_UP_END
};

static const struct LevelUpMove sRemoraidLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 6, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(10, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(14, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(22, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(26, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(30, MOVE_SIGNAL_BEAM),
    LEVEL_UP_MOVE(34, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(38, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(46, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(50, MOVE_SOAK),
    LEVEL_UP_END
};

static const struct LevelUpMove sOctilleryLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_OCTAZOOKA),
    LEVEL_UP_MOVE( 1, MOVE_OCTAZOOKA),
    LEVEL_UP_MOVE( 1, MOVE_GUNK_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
    LEVEL_UP_MOVE( 1, MOVE_PSYBEAM),
    LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE( 6, MOVE_CONSTRICT),
    LEVEL_UP_MOVE(10, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(14, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(22, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(28, MOVE_WRING_OUT),
    LEVEL_UP_MOVE(34, MOVE_SIGNAL_BEAM),
    LEVEL_UP_MOVE(40, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(46, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(58, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(64, MOVE_SOAK),
    LEVEL_UP_END
};

static const struct LevelUpMove sDelibirdLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PRESENT),
    LEVEL_UP_MOVE(25, MOVE_DRILL_PECK),
    LEVEL_UP_END
};

static const struct LevelUpMove sMantineLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PSYBEAM),
    LEVEL_UP_MOVE( 1, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE( 1, MOVE_SIGNAL_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_ROOST),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE( 3, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 7, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(11, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(14, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(19, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(23, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(32, MOVE_AGILITY),
    LEVEL_UP_MOVE(36, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(39, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(46, MOVE_BOUNCE),
    LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sSkarmoryLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(12, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_FEINT),
    LEVEL_UP_MOVE(23, MOVE_SWIFT),
    LEVEL_UP_MOVE(28, MOVE_SPIKES),
    LEVEL_UP_MOVE(31, MOVE_AGILITY),
    LEVEL_UP_MOVE(34, MOVE_STEEL_WING),
    LEVEL_UP_MOVE(39, MOVE_SLASH),
    LEVEL_UP_MOVE(42, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(45, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(50, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(53, MOVE_NIGHT_SLASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sHoundourLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 4, MOVE_HOWL),
    LEVEL_UP_MOVE( 8, MOVE_SMOG),
    LEVEL_UP_MOVE(13, MOVE_ROAR),
    LEVEL_UP_MOVE(16, MOVE_BITE),
    LEVEL_UP_MOVE(20, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(25, MOVE_BEAT_UP),
    LEVEL_UP_MOVE(28, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(32, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(37, MOVE_EMBARGO),
    LEVEL_UP_MOVE(40, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(44, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(49, MOVE_CRUNCH),
    LEVEL_UP_MOVE(52, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(56, MOVE_INFERNO),
    LEVEL_UP_END
};

static const struct LevelUpMove sHoundoomLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_INFERNO),
    LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_HOWL),
    LEVEL_UP_MOVE( 1, MOVE_SMOG),
    LEVEL_UP_MOVE( 4, MOVE_HOWL),
    LEVEL_UP_MOVE( 8, MOVE_SMOG),
    LEVEL_UP_MOVE(13, MOVE_ROAR),
    LEVEL_UP_MOVE(16, MOVE_BITE),
    LEVEL_UP_MOVE(20, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(26, MOVE_BEAT_UP),
    LEVEL_UP_MOVE(30, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(35, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(41, MOVE_EMBARGO),
    LEVEL_UP_MOVE(45, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(50, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(56, MOVE_CRUNCH),
    LEVEL_UP_MOVE(60, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(65, MOVE_INFERNO),
    LEVEL_UP_END
};

static const struct LevelUpMove sKingdraLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE( 1, MOVE_YAWN),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 5, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 9, MOVE_LEER),
    LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(17, MOVE_TWISTER),
    LEVEL_UP_MOVE(21, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(26, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(31, MOVE_BRINE),
    LEVEL_UP_MOVE(38, MOVE_AGILITY),
    LEVEL_UP_MOVE(45, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(52, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sPhanpyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 6, MOVE_FLAIL),
    LEVEL_UP_MOVE(10, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(15, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(19, MOVE_ENDURE),
    LEVEL_UP_MOVE(24, MOVE_SLAM),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(33, MOVE_CHARM),
    LEVEL_UP_MOVE(37, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sDonphanLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_BULLDOZE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 6, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(10, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(15, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(24, MOVE_SLAM),
    LEVEL_UP_MOVE(30, MOVE_MAGNITUDE),
    LEVEL_UP_MOVE(37, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(43, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(50, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};

static const struct LevelUpMove sPorygonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE( 1, MOVE_MAGIC_COAT),
    LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_CONVERSION),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 7, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(12, MOVE_AGILITY),
    LEVEL_UP_MOVE(18, MOVE_RECOVER),
    LEVEL_UP_MOVE(23, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(29, MOVE_SIGNAL_BEAM),
    LEVEL_UP_MOVE(34, MOVE_RECYCLE),
    LEVEL_UP_MOVE(40, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(45, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(50, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE(56, MOVE_MAGIC_COAT),
    LEVEL_UP_MOVE(62, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sStantlerLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ME_FIRST),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 3, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_ASTONISH),
    LEVEL_UP_MOVE(10, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(13, MOVE_STOMP),
    LEVEL_UP_MOVE(16, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(27, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(33, MOVE_ROLE_PLAY),
    LEVEL_UP_MOVE(38, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(43, MOVE_JUMP_KICK),
    LEVEL_UP_MOVE(49, MOVE_IMPRISON),
    LEVEL_UP_MOVE(50, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(55, MOVE_ME_FIRST),
    LEVEL_UP_END
};

static const struct LevelUpMove sSmeargleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SKETCH),
    LEVEL_UP_MOVE(11, MOVE_SKETCH),
    LEVEL_UP_MOVE(21, MOVE_SKETCH),
    LEVEL_UP_MOVE(31, MOVE_SKETCH),
    LEVEL_UP_MOVE(41, MOVE_SKETCH),
    LEVEL_UP_MOVE(51, MOVE_SKETCH),
    LEVEL_UP_MOVE(61, MOVE_SKETCH),
    LEVEL_UP_MOVE(71, MOVE_SKETCH),
    LEVEL_UP_MOVE(81, MOVE_SKETCH),
    LEVEL_UP_MOVE(91, MOVE_SKETCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sTyrogueLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
    LEVEL_UP_END
};

static const struct LevelUpMove sHitmontopLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_ROLLING_KICK),
    LEVEL_UP_MOVE( 1, MOVE_ROLLING_KICK),
    LEVEL_UP_MOVE( 1, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE( 1, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE( 1, MOVE_DETECT),
    LEVEL_UP_MOVE( 1, MOVE_REVENGE),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_PURSUIT),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(10, MOVE_PURSUIT),
    LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(19, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(24, MOVE_FEINT),
    LEVEL_UP_MOVE(28, MOVE_COUNTER),
    LEVEL_UP_MOVE(33, MOVE_TRIPLE_KICK),
    LEVEL_UP_MOVE(37, MOVE_AGILITY),
    LEVEL_UP_MOVE(42, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(46, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(46, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(50, MOVE_DETECT),
    LEVEL_UP_MOVE(55, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(60, MOVE_ENDEAVOR),
    LEVEL_UP_END
};

static const struct LevelUpMove sSmoochumLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 5, MOVE_LICK),
    LEVEL_UP_MOVE( 8, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(11, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE(15, MOVE_CONFUSION),
    LEVEL_UP_MOVE(18, MOVE_SING),
    LEVEL_UP_MOVE(21, MOVE_HEART_STAMP),
    LEVEL_UP_MOVE(25, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(31, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(35, MOVE_AVALANCHE),
    LEVEL_UP_MOVE(38, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(41, MOVE_COPYCAT),
    LEVEL_UP_MOVE(45, MOVE_PERISH_SONG),
    LEVEL_UP_MOVE(48, MOVE_BLIZZARD),
    LEVEL_UP_END
};

static const struct LevelUpMove sElekidLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 8, MOVE_LOW_KICK),
    LEVEL_UP_MOVE(12, MOVE_SWIFT),
    LEVEL_UP_MOVE(15, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE(19, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(26, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(29, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE(33, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(36, MOVE_SCREECH),
    LEVEL_UP_MOVE(40, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE(43, MOVE_THUNDER),
    LEVEL_UP_END
};

static const struct LevelUpMove sMagbyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SMOG),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_EMBER),
    LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(12, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(19, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(22, MOVE_FLAME_BURST),
    LEVEL_UP_MOVE(26, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(29, MOVE_FIRE_PUNCH),
    LEVEL_UP_MOVE(33, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(36, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(43, MOVE_FIRE_BLAST),
    LEVEL_UP_END
};

static const struct LevelUpMove sMiltankLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 3, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 8, MOVE_STOMP),
    LEVEL_UP_MOVE(11, MOVE_MILK_DRINK),
    LEVEL_UP_MOVE(15, MOVE_BIDE),
    LEVEL_UP_MOVE(19, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(24, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(29, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(35, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(41, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(48, MOVE_HEAL_BELL),
    LEVEL_UP_MOVE(50, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_END
};

static const struct LevelUpMove sBlisseyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 9, MOVE_REFRESH),
    LEVEL_UP_MOVE(12, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(16, MOVE_SOFT_BOILED),
    LEVEL_UP_MOVE(20, MOVE_BESTOW),
    LEVEL_UP_MOVE(23, MOVE_MINIMIZE),
    LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(31, MOVE_SING),
    LEVEL_UP_MOVE(34, MOVE_FLING),
    LEVEL_UP_MOVE(39, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(44, MOVE_EGG_BOMB),
    LEVEL_UP_MOVE(50, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(57, MOVE_HEALING_WISH),
    LEVEL_UP_MOVE(65, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sRaikouLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE( 1, MOVE_DISCHARGE),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 8, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(15, MOVE_ROAR),
    LEVEL_UP_MOVE(22, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(29, MOVE_SPARK),
    LEVEL_UP_MOVE(36, MOVE_REFLECT),
    LEVEL_UP_MOVE(43, MOVE_CRUNCH),
    LEVEL_UP_MOVE(50, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE(57, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(64, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(71, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(78, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(85, MOVE_THUNDER),
    LEVEL_UP_END
};

static const struct LevelUpMove sEnteiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SACRED_FIRE),
    LEVEL_UP_MOVE( 1, MOVE_ERUPTION),
    LEVEL_UP_MOVE( 1, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE( 1, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 8, MOVE_EMBER),
    LEVEL_UP_MOVE(15, MOVE_ROAR),
    LEVEL_UP_MOVE(22, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(29, MOVE_STOMP),
    LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(43, MOVE_SWAGGER),
    LEVEL_UP_MOVE(50, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(57, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(64, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(71, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(78, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(85, MOVE_ERUPTION),
    LEVEL_UP_END
};

static const struct LevelUpMove sSuicuneLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SHEER_COLD),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE( 8, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(15, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(22, MOVE_GUST),
    LEVEL_UP_MOVE(29, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(36, MOVE_MIST),
    LEVEL_UP_MOVE(43, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE(50, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(57, MOVE_TAILWIND),
    LEVEL_UP_MOVE(64, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(71, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(78, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(85, MOVE_BLIZZARD),
    LEVEL_UP_END
};

static const struct LevelUpMove sLarvitarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(10, MOVE_SCREECH),
    LEVEL_UP_MOVE(14, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(19, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(23, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(28, MOVE_THRASH),
    LEVEL_UP_MOVE(32, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(37, MOVE_PAYBACK),
    LEVEL_UP_MOVE(41, MOVE_CRUNCH),
    LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(50, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(55, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sPupitarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_SANDSTORM),
    LEVEL_UP_MOVE( 1, MOVE_SCREECH),
    LEVEL_UP_MOVE( 5, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(10, MOVE_SCREECH),
    LEVEL_UP_MOVE(14, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(19, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(23, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(28, MOVE_THRASH),
    LEVEL_UP_MOVE(34, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(41, MOVE_PAYBACK),
    LEVEL_UP_MOVE(47, MOVE_CRUNCH),
    LEVEL_UP_MOVE(54, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(60, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sTyranitarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_SANDSTORM),
    LEVEL_UP_MOVE( 1, MOVE_SCREECH),
    LEVEL_UP_MOVE( 5, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(10, MOVE_SCREECH),
    LEVEL_UP_MOVE(14, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(19, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(23, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(28, MOVE_THRASH),
    LEVEL_UP_MOVE(34, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(41, MOVE_PAYBACK),
    LEVEL_UP_MOVE(47, MOVE_CRUNCH),
    LEVEL_UP_MOVE(54, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(63, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(82, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};

static const struct LevelUpMove sLugiaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL),
    LEVEL_UP_MOVE( 9, MOVE_GUST),
    LEVEL_UP_MOVE(15, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(23, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(29, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(37, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(43, MOVE_AEROBLAST),
    LEVEL_UP_MOVE(50, MOVE_PUNISHMENT),
    LEVEL_UP_MOVE(57, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(65, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(71, MOVE_RECOVER),
    LEVEL_UP_MOVE(79, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(85, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(93, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(99, MOVE_SKY_ATTACK),
    LEVEL_UP_END
};

static const struct LevelUpMove sHoOhLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL),
    LEVEL_UP_MOVE( 9, MOVE_GUST),
    LEVEL_UP_MOVE(15, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(23, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(29, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(37, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(43, MOVE_SACRED_FIRE),
    LEVEL_UP_MOVE(50, MOVE_PUNISHMENT),
    LEVEL_UP_MOVE(57, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(65, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(71, MOVE_RECOVER),
    LEVEL_UP_MOVE(79, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(85, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(93, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(99, MOVE_SKY_ATTACK),
    LEVEL_UP_END
};

static const struct LevelUpMove sCelebiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_RECOVER),
    LEVEL_UP_MOVE( 1, MOVE_HEAL_BELL),
    LEVEL_UP_MOVE(10, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(37, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(46, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(55, MOVE_HEAL_BLOCK),
    LEVEL_UP_MOVE(64, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(73, MOVE_HEALING_WISH),
    LEVEL_UP_MOVE(82, MOVE_LEAF_STORM),
    LEVEL_UP_MOVE(91, MOVE_PERISH_SONG),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpecies252LevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpecies253LevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpecies254LevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpecies255LevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpecies256LevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpecies257LevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpecies258LevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpecies259LevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpecies260LevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpecies261LevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpecies262LevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpecies263LevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpecies264LevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpecies265LevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpecies266LevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpecies267LevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpecies268LevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpecies269LevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpecies270LevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpecies271LevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpecies272LevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpecies273LevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpecies274LevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpecies275LevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpecies276LevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sTreeckoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 9, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(17, MOVE_PURSUIT),
    LEVEL_UP_MOVE(21, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(25, MOVE_AGILITY),
    LEVEL_UP_MOVE(29, MOVE_SLAM),
    LEVEL_UP_MOVE(33, MOVE_DETECT),
    LEVEL_UP_MOVE(37, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(41, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(45, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(49, MOVE_SCREECH),
    LEVEL_UP_END
};

static const struct LevelUpMove sGrovyleLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 9, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(18, MOVE_PURSUIT),
    LEVEL_UP_MOVE(23, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(28, MOVE_AGILITY),
    LEVEL_UP_MOVE(33, MOVE_SLAM),
    LEVEL_UP_MOVE(38, MOVE_DETECT),
    LEVEL_UP_MOVE(43, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(48, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(53, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(58, MOVE_LEAF_STORM),
    LEVEL_UP_MOVE(63, MOVE_SCREECH),
    LEVEL_UP_END
};

static const struct LevelUpMove sSceptileLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_DUAL_CHOP),
    LEVEL_UP_MOVE( 1, MOVE_DUAL_CHOP),
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 9, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(18, MOVE_PURSUIT),
    LEVEL_UP_MOVE(23, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(28, MOVE_AGILITY),
    LEVEL_UP_MOVE(33, MOVE_SLAM),
    LEVEL_UP_MOVE(39, MOVE_DETECT),
    LEVEL_UP_MOVE(45, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(51, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(57, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(63, MOVE_LEAF_STORM),
    LEVEL_UP_MOVE(69, MOVE_SCREECH),
    LEVEL_UP_END
};

static const struct LevelUpMove sTorchicLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_EMBER),
    LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(14, MOVE_PECK),
    LEVEL_UP_MOVE(19, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(28, MOVE_FLAME_BURST),
    LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(37, MOVE_SLASH),
    LEVEL_UP_MOVE(41, MOVE_MIRROR_MOVE),
    LEVEL_UP_MOVE(46, MOVE_FLAMETHROWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sCombuskenLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_EMBER),
    LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(14, MOVE_PECK),
    LEVEL_UP_MOVE(20, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(25, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(31, MOVE_BULK_UP),
    LEVEL_UP_MOVE(36, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(42, MOVE_SLASH),
    LEVEL_UP_MOVE(47, MOVE_MIRROR_MOVE),
    LEVEL_UP_MOVE(53, MOVE_SKY_UPPERCUT),
    LEVEL_UP_MOVE(58, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sBlazikenLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_BLAZE_KICK),
    LEVEL_UP_MOVE( 1, MOVE_BLAZE_KICK),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_HIGH_JUMP_KICK),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_EMBER),
    LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(14, MOVE_PECK),
    LEVEL_UP_MOVE(20, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(25, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(31, MOVE_BULK_UP),
    LEVEL_UP_MOVE(37, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(44, MOVE_SLASH),
    LEVEL_UP_MOVE(50, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(57, MOVE_SKY_UPPERCUT),
    LEVEL_UP_MOVE(63, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sMudkipLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 4, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 9, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(12, MOVE_FORESIGHT),
    LEVEL_UP_MOVE(17, MOVE_BIDE),
    LEVEL_UP_MOVE(20, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE(25, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(28, MOVE_PROTECT),
    LEVEL_UP_MOVE(33, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(41, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(44, MOVE_ENDEAVOR),
    LEVEL_UP_END
};

static const struct LevelUpMove sMarshtompLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 4, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 9, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(12, MOVE_FORESIGHT),
    LEVEL_UP_MOVE(18, MOVE_BIDE),
    LEVEL_UP_MOVE(22, MOVE_MUD_BOMB),
    LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(32, MOVE_PROTECT),
    LEVEL_UP_MOVE(38, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(52, MOVE_ENDEAVOR),
    LEVEL_UP_END
};

static const struct LevelUpMove sSwampertLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 4, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 9, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(12, MOVE_FORESIGHT),
    LEVEL_UP_MOVE(18, MOVE_BIDE),
    LEVEL_UP_MOVE(22, MOVE_MUD_BOMB),
    LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(32, MOVE_PROTECT),
    LEVEL_UP_MOVE(39, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(44, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(51, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(56, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(63, MOVE_HAMMER_ARM),
    LEVEL_UP_END
};

static const struct LevelUpMove sPoochyenaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_HOWL),
    LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(16, MOVE_ROAR),
    LEVEL_UP_MOVE(19, MOVE_SWAGGER),
    LEVEL_UP_MOVE(22, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(25, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(28, MOVE_EMBARGO),
    LEVEL_UP_MOVE(31, MOVE_TAUNT),
    LEVEL_UP_MOVE(34, MOVE_CRUNCH),
    LEVEL_UP_MOVE(37, MOVE_YAWN),
    LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(43, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(46, MOVE_PLAY_ROUGH),
    LEVEL_UP_END
};

static const struct LevelUpMove sMightyenaLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_SNARL),
    LEVEL_UP_MOVE( 1, MOVE_SNARL),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_THIEF),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HOWL),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 4, MOVE_HOWL),
    LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(16, MOVE_ROAR),
    LEVEL_UP_MOVE(20, MOVE_SWAGGER),
    LEVEL_UP_MOVE(24, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(28, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(32, MOVE_EMBARGO),
    LEVEL_UP_MOVE(36, MOVE_TAUNT),
    LEVEL_UP_MOVE(40, MOVE_CRUNCH),
    LEVEL_UP_MOVE(44, MOVE_YAWN),
    LEVEL_UP_MOVE(48, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(52, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(56, MOVE_PLAY_ROUGH),
    LEVEL_UP_END
};

static const struct LevelUpMove sZigzagoonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(11, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(12, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(13, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(17, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE(19, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(23, MOVE_COVET),
    LEVEL_UP_MOVE(25, MOVE_BESTOW),
    LEVEL_UP_MOVE(29, MOVE_FLAIL),
    LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(35, MOVE_REST),
    LEVEL_UP_MOVE(37, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(41, MOVE_FLING),
    LEVEL_UP_END
};

static const struct LevelUpMove sLinooneLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER),
    LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(11, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(13, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(17, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE(19, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(24, MOVE_COVET),
    LEVEL_UP_MOVE(27, MOVE_BESTOW),
    LEVEL_UP_MOVE(32, MOVE_SLASH),
    LEVEL_UP_MOVE(35, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(40, MOVE_REST),
    LEVEL_UP_MOVE(43, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(48, MOVE_FLING),
    LEVEL_UP_END
};

static const struct LevelUpMove sWurmpleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 5, MOVE_POISON_STING),
    LEVEL_UP_MOVE(15, MOVE_BUG_BITE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSilcoonLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_END
};

static const struct LevelUpMove sBeautiflyLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE(12, MOVE_ABSORB),
    LEVEL_UP_MOVE(15, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(17, MOVE_MORNING_SUN),
    LEVEL_UP_MOVE(20, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(22, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(25, MOVE_SILVER_WIND),
    LEVEL_UP_MOVE(27, MOVE_ATTRACT),
    LEVEL_UP_MOVE(30, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(32, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(35, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(37, MOVE_RAGE),
    LEVEL_UP_MOVE(40, MOVE_QUIVER_DANCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sCascoonLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_END
};

static const struct LevelUpMove sDustoxLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE(12, MOVE_CONFUSION),
    LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(17, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(20, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(22, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(25, MOVE_SILVER_WIND),
    LEVEL_UP_MOVE(27, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(30, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(32, MOVE_TOXIC),
    LEVEL_UP_MOVE(35, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(37, MOVE_PROTECT),
    LEVEL_UP_MOVE(40, MOVE_QUIVER_DANCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sLotadLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 3, MOVE_GROWL),
    LEVEL_UP_MOVE( 6, MOVE_ABSORB),
    LEVEL_UP_MOVE( 9, MOVE_BUBBLE),
    LEVEL_UP_MOVE(12, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(15, MOVE_MIST),
    LEVEL_UP_MOVE(18, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(21, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(24, MOVE_NATURE_POWER),
    LEVEL_UP_MOVE(27, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(30, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(33, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(36, MOVE_ENERGY_BALL),
    LEVEL_UP_END
};

static const struct LevelUpMove sLombreLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 3, MOVE_GROWL),
    LEVEL_UP_MOVE( 6, MOVE_ABSORB),
    LEVEL_UP_MOVE( 9, MOVE_BUBBLE),
    LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(16, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(20, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(28, MOVE_NATURE_POWER),
    LEVEL_UP_MOVE(32, MOVE_UPROAR),
    LEVEL_UP_MOVE(36, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(40, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(44, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sLudicoloLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_NATURE_POWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sSeedotLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BIDE),
    LEVEL_UP_MOVE( 3, MOVE_HARDEN),
    LEVEL_UP_MOVE( 9, MOVE_GROWTH),
    LEVEL_UP_MOVE(15, MOVE_NATURE_POWER),
    LEVEL_UP_MOVE(21, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(27, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(33, MOVE_EXPLOSION),
    LEVEL_UP_END
};

static const struct LevelUpMove sNuzleafLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 3, MOVE_HARDEN),
    LEVEL_UP_MOVE( 6, MOVE_GROWTH),
    LEVEL_UP_MOVE( 9, MOVE_TORMENT),
    LEVEL_UP_MOVE(12, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(16, MOVE_NATURE_POWER),
    LEVEL_UP_MOVE(20, MOVE_RAZOR_WIND),
    LEVEL_UP_MOVE(24, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(28, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(32, MOVE_SWAGGER),
    LEVEL_UP_MOVE(36, MOVE_EXTRASENSORY),
    LEVEL_UP_END
};

static const struct LevelUpMove sShiftryLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(20, MOVE_LEAF_TORNADO),
    LEVEL_UP_MOVE(32, MOVE_HURRICANE),
    LEVEL_UP_MOVE(44, MOVE_LEAF_STORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sNincadaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(17, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(21, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(25, MOVE_MIND_READER),
    LEVEL_UP_MOVE(29, MOVE_BIDE),
    LEVEL_UP_MOVE(33, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(37, MOVE_DIG),
    LEVEL_UP_END
};

static const struct LevelUpMove sNinjaskLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_DOUBLE_TEAM),
    // LEVEL_UP_MOVE( 0, MOVE_SCREECH),
    // LEVEL_UP_MOVE( 0, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE( 1, MOVE_SCREECH),
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(17, MOVE_AGILITY),
    LEVEL_UP_MOVE(23, MOVE_SLASH),
    LEVEL_UP_MOVE(29, MOVE_MIND_READER),
    LEVEL_UP_MOVE(35, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(41, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(47, MOVE_X_SCISSOR),
    LEVEL_UP_END
};

static const struct LevelUpMove sShedinjaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(17, MOVE_SPITE),
    LEVEL_UP_MOVE(21, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(25, MOVE_MIND_READER),
    LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(33, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(37, MOVE_GRUDGE),
    LEVEL_UP_MOVE(41, MOVE_HEAL_BLOCK),
    LEVEL_UP_MOVE(45, MOVE_PHANTOM_FORCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sTaillowLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 9, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(21, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(25, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(29, MOVE_AGILITY),
    LEVEL_UP_MOVE(33, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(37, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(41, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(45, MOVE_REVERSAL),
    LEVEL_UP_END
};

static const struct LevelUpMove sSwellowLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_PLUCK),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 9, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(21, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(27, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(33, MOVE_AGILITY),
    LEVEL_UP_MOVE(39, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(45, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(51, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(57, MOVE_REVERSAL),
    LEVEL_UP_END
};

static const struct LevelUpMove sShroomishLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(15, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(19, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(22, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(29, MOVE_GROWTH),
    LEVEL_UP_MOVE(33, MOVE_TOXIC),
    LEVEL_UP_MOVE(36, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(40, MOVE_SPORE),
    LEVEL_UP_END
};

static const struct LevelUpMove sBreloomLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_MACH_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_MACH_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE( 5, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(15, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(19, MOVE_FEINT),
    LEVEL_UP_MOVE(22, MOVE_COUNTER),
    LEVEL_UP_MOVE(28, MOVE_FORCE_PALM),
    LEVEL_UP_MOVE(33, MOVE_MIND_READER),
    LEVEL_UP_MOVE(39, MOVE_SKY_UPPERCUT),
    LEVEL_UP_MOVE(44, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(50, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpindaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_COPYCAT),
    LEVEL_UP_MOVE(10, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(14, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(19, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(23, MOVE_DIZZY_PUNCH),
    LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(32, MOVE_TEETER_DANCE),
    LEVEL_UP_MOVE(37, MOVE_UPROAR),
    LEVEL_UP_MOVE(41, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(50, MOVE_FLAIL),
    LEVEL_UP_MOVE(55, MOVE_THRASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sWingullLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 8, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_MIST),
    LEVEL_UP_MOVE(15, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(19, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(22, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(26, MOVE_PURSUIT),
    LEVEL_UP_MOVE(29, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(33, MOVE_ROOST),
    LEVEL_UP_MOVE(36, MOVE_AGILITY),
    LEVEL_UP_MOVE(40, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(43, MOVE_HURRICANE),
    LEVEL_UP_END
};

static const struct LevelUpMove sPelipperLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_HURRICANE),
    LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE( 1, MOVE_TAILWIND),
    LEVEL_UP_MOVE( 1, MOVE_SOAK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 8, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_MIST),
    LEVEL_UP_MOVE(15, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(19, MOVE_PAYBACK),
    LEVEL_UP_MOVE(22, MOVE_BRINE),
    LEVEL_UP_MOVE(28, MOVE_FLING),
    LEVEL_UP_MOVE(33, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(33, MOVE_SWALLOW),
    LEVEL_UP_MOVE(33, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(39, MOVE_ROOST),
    LEVEL_UP_MOVE(44, MOVE_TAILWIND),
    LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(55, MOVE_HURRICANE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSurskitLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(14, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE(17, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(22, MOVE_AGILITY),
    LEVEL_UP_MOVE(25, MOVE_MIST),
    LEVEL_UP_MOVE(25, MOVE_HAZE),
    LEVEL_UP_MOVE(30, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(35, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(38, MOVE_STICKY_WEB),
    LEVEL_UP_END
};

static const struct LevelUpMove sMasquerainLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE( 1, MOVE_OMINOUS_WIND),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(14, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE(17, MOVE_GUST),
    LEVEL_UP_MOVE(22, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(22, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(26, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(32, MOVE_SILVER_WIND),
    LEVEL_UP_MOVE(38, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(42, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(48, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(52, MOVE_QUIVER_DANCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sWailmerLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(10, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(13, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(16, MOVE_ASTONISH),
    LEVEL_UP_MOVE(19, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(22, MOVE_MIST),
    LEVEL_UP_MOVE(25, MOVE_BRINE),
    LEVEL_UP_MOVE(29, MOVE_REST),
    LEVEL_UP_MOVE(33, MOVE_WATER_SPOUT),
    LEVEL_UP_MOVE(37, MOVE_AMNESIA),
    LEVEL_UP_MOVE(41, MOVE_DIVE),
    LEVEL_UP_MOVE(45, MOVE_BOUNCE),
    LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(53, MOVE_HEAVY_SLAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sWailordLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SOAK),
    LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(10, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(13, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(16, MOVE_ASTONISH),
    LEVEL_UP_MOVE(19, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(22, MOVE_MIST),
    LEVEL_UP_MOVE(25, MOVE_BRINE),
    LEVEL_UP_MOVE(29, MOVE_REST),
    LEVEL_UP_MOVE(33, MOVE_WATER_SPOUT),
    LEVEL_UP_MOVE(37, MOVE_AMNESIA),
    LEVEL_UP_MOVE(44, MOVE_DIVE),
    LEVEL_UP_MOVE(51, MOVE_BOUNCE),
    LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(65, MOVE_HEAVY_SLAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sSkittyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_FORESIGHT),
    LEVEL_UP_MOVE( 7, MOVE_SING),
    LEVEL_UP_MOVE(10, MOVE_ATTRACT),
    LEVEL_UP_MOVE(13, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(16, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(19, MOVE_COPYCAT),
    LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(25, MOVE_CHARM),
    LEVEL_UP_MOVE(28, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE(31, MOVE_ASSIST),
    LEVEL_UP_MOVE(34, MOVE_COVET),
    LEVEL_UP_MOVE(37, MOVE_HEAL_BELL),
    LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(43, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(46, MOVE_PLAY_ROUGH),
    LEVEL_UP_END
};

static const struct LevelUpMove sDelcattyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_SING),
    LEVEL_UP_MOVE( 1, MOVE_ATTRACT),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
    LEVEL_UP_END
};

static const struct LevelUpMove sKecleonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THIEF),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 4, MOVE_BIND),
    LEVEL_UP_MOVE( 7, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(10, MOVE_FEINT),
    LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(16, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(18, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(25, MOVE_SLASH),
    LEVEL_UP_MOVE(30, MOVE_CAMOUFLAGE),
    LEVEL_UP_MOVE(33, MOVE_SHADOW_CLAW),
    LEVEL_UP_MOVE(38, MOVE_SCREECH),
    LEVEL_UP_MOVE(42, MOVE_SUBSTITUTE),
    LEVEL_UP_MOVE(46, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(50, MOVE_SYNCHRONOISE),
    LEVEL_UP_END
};

static const struct LevelUpMove sBaltoyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 4, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(10, MOVE_HEAL_BLOCK),
    LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(16, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(19, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(22, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(25, MOVE_POWER_TRICK),
    LEVEL_UP_MOVE(28, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(34, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(34, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(37, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(40, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(43, MOVE_IMPRISON),
    LEVEL_UP_MOVE(46, MOVE_EXPLOSION),
    LEVEL_UP_END
};

static const struct LevelUpMove sClaydolLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 4, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(10, MOVE_HEAL_BLOCK),
    LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(16, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(19, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(22, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(25, MOVE_POWER_TRICK),
    LEVEL_UP_MOVE(28, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(34, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(34, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(40, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(46, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(52, MOVE_IMPRISON),
    LEVEL_UP_MOVE(58, MOVE_EXPLOSION),
    LEVEL_UP_END
};

static const struct LevelUpMove sNosepassLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_BLOCK),
    LEVEL_UP_MOVE(10, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(13, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(16, MOVE_REST),
    LEVEL_UP_MOVE(19, MOVE_SPARK),
    LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(25, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(28, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(31, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(34, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(37, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(40, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(43, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(43, MOVE_ZAP_CANNON),
    LEVEL_UP_END
};

static const struct LevelUpMove sTorkoalLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 4, MOVE_SMOG),
    LEVEL_UP_MOVE( 7, MOVE_WITHDRAW),
    LEVEL_UP_MOVE(10, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(13, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(15, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(18, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(22, MOVE_CURSE),
    LEVEL_UP_MOVE(25, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(27, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(30, MOVE_PROTECT),
    LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(40, MOVE_AMNESIA),
    LEVEL_UP_MOVE(42, MOVE_FLAIL),
    LEVEL_UP_MOVE(45, MOVE_HEAT_WAVE),
    LEVEL_UP_MOVE(47, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE(50, MOVE_INFERNO),
    LEVEL_UP_END
};

static const struct LevelUpMove sSableyeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 4, MOVE_FORESIGHT),
    LEVEL_UP_MOVE( 6, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE( 9, MOVE_ASTONISH),
    LEVEL_UP_MOVE(11, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(14, MOVE_DETECT),
    LEVEL_UP_MOVE(16, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(21, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(24, MOVE_PUNISHMENT),
    LEVEL_UP_MOVE(26, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(29, MOVE_SHADOW_CLAW),
    LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(34, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(36, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(39, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(41, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(44, MOVE_QUASH),
    LEVEL_UP_MOVE(46, MOVE_MEAN_LOOK),
    LEVEL_UP_END
};

static const struct LevelUpMove sBarboachLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 9, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(13, MOVE_MUD_BOMB),
    LEVEL_UP_MOVE(15, MOVE_AMNESIA),
    LEVEL_UP_MOVE(17, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(20, MOVE_MAGNITUDE),
    LEVEL_UP_MOVE(25, MOVE_REST),
    LEVEL_UP_MOVE(25, MOVE_SNORE),
    LEVEL_UP_MOVE(28, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(32, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(35, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(39, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(44, MOVE_FISSURE),
    LEVEL_UP_END
};

static const struct LevelUpMove sWhiscashLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_THRASH),
    LEVEL_UP_MOVE( 1, MOVE_THRASH),
    LEVEL_UP_MOVE( 1, MOVE_BELCH),
    LEVEL_UP_MOVE( 1, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE( 1, MOVE_TICKLE),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 9, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(13, MOVE_MUD_BOMB),
    LEVEL_UP_MOVE(15, MOVE_AMNESIA),
    LEVEL_UP_MOVE(17, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(20, MOVE_MAGNITUDE),
    LEVEL_UP_MOVE(25, MOVE_REST),
    LEVEL_UP_MOVE(25, MOVE_SNORE),
    LEVEL_UP_MOVE(28, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(34, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(39, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(45, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(52, MOVE_FISSURE),
    LEVEL_UP_END
};

static const struct LevelUpMove sLuvdiscLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 4, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 7, MOVE_AGILITY),
    LEVEL_UP_MOVE( 9, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(13, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(17, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(20, MOVE_ATTRACT),
    LEVEL_UP_MOVE(22, MOVE_HEART_STAMP),
    LEVEL_UP_MOVE(26, MOVE_FLAIL),
    LEVEL_UP_MOVE(31, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(34, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(37, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(40, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(42, MOVE_SOAK),
    LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(49, MOVE_SAFEGUARD),
    LEVEL_UP_END
};

static const struct LevelUpMove sCorphishLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 5, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE(10, MOVE_LEER),
    LEVEL_UP_MOVE(14, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(17, MOVE_PROTECT),
    LEVEL_UP_MOVE(20, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(23, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(26, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(31, MOVE_RAZOR_SHELL),
    LEVEL_UP_MOVE(34, MOVE_TAUNT),
    LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(39, MOVE_CRUNCH),
    LEVEL_UP_MOVE(43, MOVE_CRABHAMMER),
    LEVEL_UP_MOVE(48, MOVE_GUILLOTINE),
    LEVEL_UP_END
};

static const struct LevelUpMove sCrawdauntLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_SWIFT),
    LEVEL_UP_MOVE( 1, MOVE_SWIFT),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE(10, MOVE_LEER),
    LEVEL_UP_MOVE(14, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(17, MOVE_PROTECT),
    LEVEL_UP_MOVE(20, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(23, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(26, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(32, MOVE_RAZOR_SHELL),
    LEVEL_UP_MOVE(36, MOVE_TAUNT),
    LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(43, MOVE_CRUNCH),
    LEVEL_UP_MOVE(48, MOVE_CRABHAMMER),
    LEVEL_UP_MOVE(54, MOVE_GUILLOTINE),
    LEVEL_UP_END
};

static const struct LevelUpMove sFeebasLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE(15, MOVE_TACKLE),
    LEVEL_UP_MOVE(30, MOVE_FLAIL),
    LEVEL_UP_END
};

static const struct LevelUpMove sMiloticLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 1, MOVE_REFRESH),
    LEVEL_UP_MOVE( 4, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 7, MOVE_REFRESH),
    LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(14, MOVE_TWISTER),
    LEVEL_UP_MOVE(17, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(21, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(24, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(27, MOVE_RECOVER),
    LEVEL_UP_MOVE(31, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(34, MOVE_ATTRACT),
    LEVEL_UP_MOVE(37, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(41, MOVE_COIL),
    LEVEL_UP_MOVE(44, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(47, MOVE_RAIN_DANCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sCarvanhaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 4, MOVE_RAGE),
    LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(11, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(15, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(18, MOVE_SCREECH),
    LEVEL_UP_MOVE(22, MOVE_SWAGGER),
    LEVEL_UP_MOVE(25, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(29, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(32, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(36, MOVE_CRUNCH),
    LEVEL_UP_MOVE(39, MOVE_AGILITY),
    LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN),
    LEVEL_UP_END
};

static const struct LevelUpMove sSharpedoLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_FEINT),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_RAGE),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 4, MOVE_RAGE),
    LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(11, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(15, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(18, MOVE_SCREECH),
    LEVEL_UP_MOVE(22, MOVE_SWAGGER),
    LEVEL_UP_MOVE(25, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(29, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(34, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(40, MOVE_CRUNCH),
    LEVEL_UP_MOVE(45, MOVE_AGILITY),
    LEVEL_UP_MOVE(51, MOVE_SKULL_BASH),
    LEVEL_UP_MOVE(56, MOVE_TAUNT),
    LEVEL_UP_MOVE(62, MOVE_NIGHT_SLASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sTrapinchLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_BIDE),
    LEVEL_UP_MOVE( 5, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 8, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(12, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(15, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(19, MOVE_DIG),
    LEVEL_UP_MOVE(22, MOVE_CRUNCH),
    LEVEL_UP_MOVE(26, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(29, MOVE_FEINT),
    LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(36, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(40, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(43, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(47, MOVE_FISSURE),
    LEVEL_UP_END
};

static const struct LevelUpMove sVibravaLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM),
    LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_BIDE),
    LEVEL_UP_MOVE( 5, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 8, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(12, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(15, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(19, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(22, MOVE_SCREECH),
    LEVEL_UP_MOVE(26, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(29, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(36, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(40, MOVE_UPROAR),
    LEVEL_UP_MOVE(43, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(47, MOVE_BOOMBURST),
    LEVEL_UP_END
};

static const struct LevelUpMove sFlygonLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM),
    LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_BIDE),
    LEVEL_UP_MOVE( 5, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 8, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(12, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(15, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(19, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(22, MOVE_SCREECH),
    LEVEL_UP_MOVE(26, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(29, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(36, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(40, MOVE_UPROAR),
    LEVEL_UP_MOVE(43, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(47, MOVE_DRAGON_RUSH),
    LEVEL_UP_END
};

static const struct LevelUpMove sMakuhitaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST),
    LEVEL_UP_MOVE(10, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(13, MOVE_FORCE_PALM),
    LEVEL_UP_MOVE(16, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(22, MOVE_VITAL_THROW),
    LEVEL_UP_MOVE(25, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(28, MOVE_SMELLING_SALTS),
    LEVEL_UP_MOVE(31, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE(34, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE(37, MOVE_ENDURE),
    LEVEL_UP_MOVE(40, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(43, MOVE_REVERSAL),
    LEVEL_UP_MOVE(46, MOVE_HEAVY_SLAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sHariyamaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BRINE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST),
    LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST),
    LEVEL_UP_MOVE(10, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(13, MOVE_FORCE_PALM),
    LEVEL_UP_MOVE(16, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(22, MOVE_VITAL_THROW),
    LEVEL_UP_MOVE(26, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(30, MOVE_SMELLING_SALTS),
    LEVEL_UP_MOVE(34, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE(38, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE(42, MOVE_ENDURE),
    LEVEL_UP_MOVE(46, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(50, MOVE_REVERSAL),
    LEVEL_UP_MOVE(54, MOVE_HEAVY_SLAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sElectrikeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_HOWL),
    LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_SPARK),
    LEVEL_UP_MOVE(16, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(19, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE(24, MOVE_BITE),
    LEVEL_UP_MOVE(29, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(34, MOVE_ROAR),
    LEVEL_UP_MOVE(39, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(44, MOVE_CHARGE),
    LEVEL_UP_MOVE(49, MOVE_THUNDER),
    LEVEL_UP_END
};

static const struct LevelUpMove sManectricLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_HOWL),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_HOWL),
    LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_SPARK),
    LEVEL_UP_MOVE(16, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(19, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE(24, MOVE_BITE),
    LEVEL_UP_MOVE(30, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(36, MOVE_ROAR),
    LEVEL_UP_MOVE(42, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(48, MOVE_CHARGE),
    LEVEL_UP_MOVE(54, MOVE_THUNDER),
    LEVEL_UP_MOVE(60, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_END
};

static const struct LevelUpMove sNumelLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_EMBER),
    LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(12, MOVE_MAGNITUDE),
    LEVEL_UP_MOVE(15, MOVE_FLAME_BURST),
    LEVEL_UP_MOVE(19, MOVE_AMNESIA),
    LEVEL_UP_MOVE(22, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(26, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(29, MOVE_CURSE),
    LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(36, MOVE_YAWN),
    LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sCameruptLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE( 1, MOVE_FISSURE),
    LEVEL_UP_MOVE( 1, MOVE_ERUPTION),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 8, MOVE_EMBER),
    LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(12, MOVE_MAGNITUDE),
    LEVEL_UP_MOVE(15, MOVE_FLAME_BURST),
    LEVEL_UP_MOVE(19, MOVE_AMNESIA),
    LEVEL_UP_MOVE(22, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(26, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(29, MOVE_CURSE),
    LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(39, MOVE_YAWN),
    LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(52, MOVE_ERUPTION),
    LEVEL_UP_MOVE(59, MOVE_FISSURE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSphealLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 5, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 9, MOVE_ENCORE),
    LEVEL_UP_MOVE(13, MOVE_ICE_BALL),
    LEVEL_UP_MOVE(17, MOVE_BRINE),
    LEVEL_UP_MOVE(21, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(26, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(31, MOVE_REST),
    LEVEL_UP_MOVE(31, MOVE_SNORE),
    LEVEL_UP_MOVE(36, MOVE_HAIL),
    LEVEL_UP_MOVE(41, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(46, MOVE_SHEER_COLD),
    LEVEL_UP_END
};

static const struct LevelUpMove sSealeoLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_SWAGGER),
    LEVEL_UP_MOVE( 1, MOVE_SWAGGER),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 5, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 9, MOVE_ENCORE),
    LEVEL_UP_MOVE(13, MOVE_ICE_BALL),
    LEVEL_UP_MOVE(17, MOVE_BRINE),
    LEVEL_UP_MOVE(21, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(26, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(31, MOVE_REST),
    LEVEL_UP_MOVE(31, MOVE_SNORE),
    LEVEL_UP_MOVE(38, MOVE_HAIL),
    LEVEL_UP_MOVE(45, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(52, MOVE_SHEER_COLD),
    LEVEL_UP_END
};

static const struct LevelUpMove sWalreinLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_SWAGGER),
    LEVEL_UP_MOVE( 1, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 7, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 7, MOVE_ENCORE),
    LEVEL_UP_MOVE(13, MOVE_ICE_BALL),
    LEVEL_UP_MOVE(19, MOVE_BRINE),
    LEVEL_UP_MOVE(19, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(25, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(31, MOVE_REST),
    LEVEL_UP_MOVE(31, MOVE_SNORE),
    LEVEL_UP_MOVE(38, MOVE_HAIL),
    LEVEL_UP_MOVE(49, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(60, MOVE_SHEER_COLD),
    LEVEL_UP_END
};

static const struct LevelUpMove sCacneaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_ABSORB),
    LEVEL_UP_MOVE( 7, MOVE_GROWTH),
    LEVEL_UP_MOVE(10, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_NEEDLE_ARM),
    LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(22, MOVE_INGRAIN),
    LEVEL_UP_MOVE(26, MOVE_PAYBACK),
    LEVEL_UP_MOVE(30, MOVE_SPIKES),
    LEVEL_UP_MOVE(34, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(38, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(42, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(46, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE(50, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(54, MOVE_DESTINY_BOND),
    LEVEL_UP_END
};

static const struct LevelUpMove sCacturneLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_SPIKY_SHIELD),
    LEVEL_UP_MOVE( 1, MOVE_SPIKY_SHIELD),
    LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE( 1, MOVE_REVENGE),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 4, MOVE_ABSORB),
    LEVEL_UP_MOVE( 7, MOVE_GROWTH),
    LEVEL_UP_MOVE(10, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_NEEDLE_ARM),
    LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(22, MOVE_INGRAIN),
    LEVEL_UP_MOVE(26, MOVE_PAYBACK),
    LEVEL_UP_MOVE(30, MOVE_SPIKES),
    LEVEL_UP_MOVE(35, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(38, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(44, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(49, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE(54, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(59, MOVE_DESTINY_BOND),
    LEVEL_UP_END
};

static const struct LevelUpMove sSnoruntLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(10, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(14, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(19, MOVE_BITE),
    LEVEL_UP_MOVE(23, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(28, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(32, MOVE_PROTECT),
    LEVEL_UP_MOVE(37, MOVE_FROST_BREATH),
    LEVEL_UP_MOVE(41, MOVE_CRUNCH),
    LEVEL_UP_MOVE(46, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(50, MOVE_HAIL),
    LEVEL_UP_END
};

static const struct LevelUpMove sGlalieLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_FREEZE_DRY),
    LEVEL_UP_MOVE( 1, MOVE_FREEZE_DRY),
    LEVEL_UP_MOVE( 1, MOVE_SHEER_COLD),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(10, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(14, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(19, MOVE_BITE),
    LEVEL_UP_MOVE(23, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(28, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(32, MOVE_PROTECT),
    LEVEL_UP_MOVE(37, MOVE_FROST_BREATH),
    LEVEL_UP_MOVE(41, MOVE_CRUNCH),
    LEVEL_UP_MOVE(48, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(54, MOVE_HAIL),
    LEVEL_UP_MOVE(61, MOVE_SHEER_COLD),
    LEVEL_UP_END
};

static const struct LevelUpMove sLunatoneLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWER_GEM),
    LEVEL_UP_MOVE( 1, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE( 1, MOVE_MOONBLAST),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 5, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 9, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(13, MOVE_PSYWAVE),
    LEVEL_UP_MOVE(17, MOVE_EMBARGO),
    LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(25, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(29, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(33, MOVE_HEAL_BLOCK),
    LEVEL_UP_MOVE(37, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(41, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(45, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(49, MOVE_MAGIC_ROOM),
    LEVEL_UP_END
};

static const struct LevelUpMove sSolrockLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 5, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE( 9, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(13, MOVE_PSYWAVE),
    LEVEL_UP_MOVE(17, MOVE_EMBARGO),
    LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(25, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(29, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(33, MOVE_HEAL_BLOCK),
    LEVEL_UP_MOVE(37, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(41, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(45, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(49, MOVE_WONDER_ROOM),
    LEVEL_UP_END
};

static const struct LevelUpMove sAzurillLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 2, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 7, MOVE_BUBBLE),
    LEVEL_UP_MOVE(10, MOVE_CHARM),
    LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(16, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(20, MOVE_SLAM),
    LEVEL_UP_MOVE(23, MOVE_BOUNCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpoinkLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 7, MOVE_PSYWAVE),
    LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(14, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(15, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(18, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(21, MOVE_MAGIC_COAT),
    LEVEL_UP_MOVE(26, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(29, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(29, MOVE_REST),
    LEVEL_UP_MOVE(33, MOVE_SNORE),
    LEVEL_UP_MOVE(38, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(40, MOVE_PAYBACK),
    LEVEL_UP_MOVE(44, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(50, MOVE_BOUNCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sGrumpigLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_TEETER_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_TEETER_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_BELCH),
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
    LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE( 1, MOVE_PSYBEAM),
    LEVEL_UP_MOVE( 7, MOVE_PSYWAVE),
    LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(14, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(15, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(18, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(21, MOVE_MAGIC_COAT),
    LEVEL_UP_MOVE(26, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(29, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(35, MOVE_REST),
    LEVEL_UP_MOVE(35, MOVE_SNORE),
    LEVEL_UP_MOVE(42, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(46, MOVE_PAYBACK),
    LEVEL_UP_MOVE(52, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(60, MOVE_BOUNCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sPlusleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_NUZZLE),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 4, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 7, MOVE_SPARK),
    LEVEL_UP_MOVE(10, MOVE_ENCORE),
    LEVEL_UP_MOVE(13, MOVE_BESTOW),
    LEVEL_UP_MOVE(16, MOVE_SWIFT),
    LEVEL_UP_MOVE(19, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(22, MOVE_COPYCAT),
    LEVEL_UP_MOVE(25, MOVE_CHARM),
    LEVEL_UP_MOVE(28, MOVE_CHARGE),
    LEVEL_UP_MOVE(31, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(34, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(37, MOVE_AGILITY),
    LEVEL_UP_MOVE(40, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(43, MOVE_THUNDER),
    LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(49, MOVE_ENTRAINMENT),
    LEVEL_UP_END
};

static const struct LevelUpMove sMinunLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_NUZZLE),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 4, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 7, MOVE_SPARK),
    LEVEL_UP_MOVE(10, MOVE_ENCORE),
    LEVEL_UP_MOVE(13, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE(16, MOVE_SWIFT),
    LEVEL_UP_MOVE(19, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(22, MOVE_COPYCAT),
    LEVEL_UP_MOVE(25, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(28, MOVE_CHARGE),
    LEVEL_UP_MOVE(31, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(34, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(37, MOVE_AGILITY),
    LEVEL_UP_MOVE(40, MOVE_TRUMP_CARD),
    LEVEL_UP_MOVE(43, MOVE_THUNDER),
    LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(49, MOVE_ENTRAINMENT),
    LEVEL_UP_END
};

static const struct LevelUpMove sMawileLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 5, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE( 9, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(17, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE(21, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(25, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(29, MOVE_CRUNCH),
    LEVEL_UP_MOVE(33, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(37, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(41, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(41, MOVE_SWALLOW),
    LEVEL_UP_MOVE(41, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(45, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(49, MOVE_PLAY_ROUGH),
    LEVEL_UP_END
};

static const struct LevelUpMove sMedititeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BIDE),
    LEVEL_UP_MOVE( 4, MOVE_MEDITATE),
    LEVEL_UP_MOVE( 7, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 9, MOVE_DETECT),
    LEVEL_UP_MOVE(12, MOVE_ENDURE),
    LEVEL_UP_MOVE(15, MOVE_FEINT),
    LEVEL_UP_MOVE(17, MOVE_FORCE_PALM),
    LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER),
    LEVEL_UP_MOVE(23, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(25, MOVE_MIND_READER),
    LEVEL_UP_MOVE(28, MOVE_HIGH_JUMP_KICK),
    LEVEL_UP_MOVE(31, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(33, MOVE_ACUPRESSURE),
    LEVEL_UP_MOVE(36, MOVE_POWER_TRICK),
    LEVEL_UP_MOVE(39, MOVE_REVERSAL),
    LEVEL_UP_MOVE(41, MOVE_RECOVER),
    LEVEL_UP_MOVE(44, MOVE_COUNTER),
    LEVEL_UP_END
};

static const struct LevelUpMove sMedichamLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_BIDE),
    LEVEL_UP_MOVE( 1, MOVE_MEDITATE),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_DETECT),
    LEVEL_UP_MOVE( 4, MOVE_MEDITATE),
    LEVEL_UP_MOVE( 7, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 9, MOVE_DETECT),
    LEVEL_UP_MOVE(12, MOVE_ENDURE),
    LEVEL_UP_MOVE(15, MOVE_FEINT),
    LEVEL_UP_MOVE(17, MOVE_FORCE_PALM),
    LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER),
    LEVEL_UP_MOVE(23, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(25, MOVE_MIND_READER),
    LEVEL_UP_MOVE(28, MOVE_HIGH_JUMP_KICK),
    LEVEL_UP_MOVE(31, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(33, MOVE_ACUPRESSURE),
    LEVEL_UP_MOVE(36, MOVE_POWER_TRICK),
    LEVEL_UP_MOVE(42, MOVE_REVERSAL),
    LEVEL_UP_MOVE(47, MOVE_RECOVER),
    LEVEL_UP_MOVE(53, MOVE_COUNTER),
    LEVEL_UP_END
};

static const struct LevelUpMove sSwabluLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 3, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 5, MOVE_SING),
    LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(14, MOVE_MIST),
    LEVEL_UP_MOVE(17, MOVE_ROUND),
    LEVEL_UP_MOVE(20, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(23, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(26, MOVE_REFRESH),
    LEVEL_UP_MOVE(30, MOVE_MIRROR_MOVE),
    LEVEL_UP_MOVE(34, MOVE_COTTON_GUARD),
    LEVEL_UP_MOVE(38, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(42, MOVE_PERISH_SONG),
    LEVEL_UP_MOVE(46, MOVE_MOONBLAST),
    LEVEL_UP_END
};

static const struct LevelUpMove sAltariaLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_PLUCK),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_SING),
    LEVEL_UP_MOVE( 3, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 5, MOVE_SING),
    LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(14, MOVE_MIST),
    LEVEL_UP_MOVE(17, MOVE_ROUND),
    LEVEL_UP_MOVE(20, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(23, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(26, MOVE_REFRESH),
    LEVEL_UP_MOVE(30, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(34, MOVE_COTTON_GUARD),
    LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(46, MOVE_PERISH_SONG),
    LEVEL_UP_MOVE(52, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(59, MOVE_SKY_ATTACK),
    LEVEL_UP_END
};

static const struct LevelUpMove sWynautLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_ENCORE),
    LEVEL_UP_MOVE(15, MOVE_COUNTER),
    LEVEL_UP_MOVE(15, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE(15, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(15, MOVE_DESTINY_BOND),
    LEVEL_UP_END
};

static const struct LevelUpMove sDuskullLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE( 6, MOVE_DISABLE),
    LEVEL_UP_MOVE( 9, MOVE_ASTONISH),
    LEVEL_UP_MOVE(14, MOVE_FORESIGHT),
    LEVEL_UP_MOVE(17, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(22, MOVE_PURSUIT),
    LEVEL_UP_MOVE(25, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(33, MOVE_CURSE),
    LEVEL_UP_MOVE(38, MOVE_HEX),
    LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(46, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(49, MOVE_PAYBACK),
    LEVEL_UP_MOVE(54, MOVE_FUTURE_SIGHT),
    LEVEL_UP_END
};

static const struct LevelUpMove sDusclopsLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_SHADOW_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_GRAVITY),
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 6, MOVE_DISABLE),
    LEVEL_UP_MOVE( 9, MOVE_ASTONISH),
    LEVEL_UP_MOVE(14, MOVE_FORESIGHT),
    LEVEL_UP_MOVE(17, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(22, MOVE_PURSUIT),
    LEVEL_UP_MOVE(25, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(33, MOVE_CURSE),
    LEVEL_UP_MOVE(40, MOVE_HEX),
    LEVEL_UP_MOVE(45, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(52, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(57, MOVE_PAYBACK),
    LEVEL_UP_MOVE(64, MOVE_FUTURE_SIGHT),
    LEVEL_UP_END
};

static const struct LevelUpMove sRoseliaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 4, MOVE_GROWTH),
    LEVEL_UP_MOVE( 7, MOVE_POISON_STING),
    LEVEL_UP_MOVE(10, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(16, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(22, MOVE_GRASS_WHISTLE),
    LEVEL_UP_MOVE(25, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(28, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(31, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(34, MOVE_INGRAIN),
    LEVEL_UP_MOVE(37, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE(40, MOVE_TOXIC),
    LEVEL_UP_MOVE(43, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(46, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(50, MOVE_PETAL_DANCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSlakothLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_YAWN),
    LEVEL_UP_MOVE( 6, MOVE_ENCORE),
    LEVEL_UP_MOVE( 9, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE(14, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_AMNESIA),
    LEVEL_UP_MOVE(22, MOVE_COVET),
    LEVEL_UP_MOVE(25, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(30, MOVE_COUNTER),
    LEVEL_UP_MOVE(33, MOVE_FLAIL),
    LEVEL_UP_MOVE(38, MOVE_PLAY_ROUGH),
    LEVEL_UP_END
};

static const struct LevelUpMove sVigorothLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_REVERSAL),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_ENCORE),
    LEVEL_UP_MOVE( 1, MOVE_UPROAR),
    LEVEL_UP_MOVE( 6, MOVE_ENCORE),
    LEVEL_UP_MOVE( 9, MOVE_UPROAR),
    LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(17, MOVE_ENDURE),
    LEVEL_UP_MOVE(23, MOVE_SLASH),
    LEVEL_UP_MOVE(27, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(33, MOVE_COUNTER),
    LEVEL_UP_MOVE(37, MOVE_FOCUS_PUNCH),
    LEVEL_UP_MOVE(43, MOVE_REVERSAL),
    LEVEL_UP_END
};

static const struct LevelUpMove sSlakingLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_SWAGGER),
    LEVEL_UP_MOVE( 1, MOVE_SWAGGER),
    LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_PUNISHMENT),
    LEVEL_UP_MOVE( 1, MOVE_FLING),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_YAWN),
    LEVEL_UP_MOVE( 1, MOVE_ENCORE),
    LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE( 6, MOVE_ENCORE),
    LEVEL_UP_MOVE( 9, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE(14, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_AMNESIA),
    LEVEL_UP_MOVE(23, MOVE_COVET),
    LEVEL_UP_MOVE(27, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(33, MOVE_COUNTER),
    LEVEL_UP_MOVE(39, MOVE_FLAIL),
    LEVEL_UP_MOVE(47, MOVE_FLING),
    LEVEL_UP_MOVE(53, MOVE_PUNISHMENT),
    LEVEL_UP_MOVE(61, MOVE_HAMMER_ARM),
    LEVEL_UP_END
};

static const struct LevelUpMove sGulpinLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 5, MOVE_YAWN),
    LEVEL_UP_MOVE( 8, MOVE_POISON_GAS),
    LEVEL_UP_MOVE(10, MOVE_SLUDGE),
    LEVEL_UP_MOVE(12, MOVE_AMNESIA),
    LEVEL_UP_MOVE(17, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(20, MOVE_ENCORE),
    LEVEL_UP_MOVE(25, MOVE_TOXIC),
    LEVEL_UP_MOVE(28, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(28, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(28, MOVE_SWALLOW),
    LEVEL_UP_MOVE(33, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(36, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(41, MOVE_BELCH),
    LEVEL_UP_MOVE(44, MOVE_WRING_OUT),
    LEVEL_UP_MOVE(49, MOVE_GUNK_SHOT),
    LEVEL_UP_END
};

static const struct LevelUpMove sSwalotLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE( 1, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE( 1, MOVE_GUNK_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_WRING_OUT),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_YAWN),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 1, MOVE_SLUDGE),
    LEVEL_UP_MOVE( 5, MOVE_YAWN),
    LEVEL_UP_MOVE( 8, MOVE_POISON_GAS),
    LEVEL_UP_MOVE(10, MOVE_SLUDGE),
    LEVEL_UP_MOVE(12, MOVE_AMNESIA),
    LEVEL_UP_MOVE(17, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(20, MOVE_ENCORE),
    LEVEL_UP_MOVE(25, MOVE_TOXIC),
    LEVEL_UP_MOVE(30, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(30, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(30, MOVE_SWALLOW),
    LEVEL_UP_MOVE(37, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(42, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(49, MOVE_BELCH),
    LEVEL_UP_MOVE(54, MOVE_WRING_OUT),
    LEVEL_UP_MOVE(61, MOVE_GUNK_SHOT),
    LEVEL_UP_END
};

static const struct LevelUpMove sTropiusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 6, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(10, MOVE_STOMP),
    LEVEL_UP_MOVE(16, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(21, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(26, MOVE_LEAF_TORNADO),
    LEVEL_UP_MOVE(30, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(36, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(41, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(46, MOVE_BESTOW),
    LEVEL_UP_MOVE(50, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(56, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(61, MOVE_LEAF_STORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sWhismurLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 4, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 8, MOVE_ASTONISH),
    LEVEL_UP_MOVE(11, MOVE_HOWL),
    LEVEL_UP_MOVE(15, MOVE_SCREECH),
    LEVEL_UP_MOVE(18, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(22, MOVE_STOMP),
    LEVEL_UP_MOVE(25, MOVE_UPROAR),
    LEVEL_UP_MOVE(29, MOVE_ROAR),
    LEVEL_UP_MOVE(32, MOVE_REST),
    LEVEL_UP_MOVE(36, MOVE_SLEEP_TALK),
    LEVEL_UP_MOVE(39, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(43, MOVE_SYNCHRONOISE),
    LEVEL_UP_END
};

static const struct LevelUpMove sLoudredLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_HOWL),
    LEVEL_UP_MOVE( 4, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 9, MOVE_ASTONISH),
    LEVEL_UP_MOVE(11, MOVE_HOWL),
    LEVEL_UP_MOVE(15, MOVE_SCREECH),
    LEVEL_UP_MOVE(18, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(23, MOVE_STOMP),
    LEVEL_UP_MOVE(27, MOVE_UPROAR),
    LEVEL_UP_MOVE(32, MOVE_ROAR),
    LEVEL_UP_MOVE(36, MOVE_REST),
    LEVEL_UP_MOVE(41, MOVE_SLEEP_TALK),
    LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(50, MOVE_SYNCHRONOISE),
    LEVEL_UP_END
};

static const struct LevelUpMove sExploudLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_BOOMBURST),
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_HOWL),
    LEVEL_UP_MOVE( 4, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 9, MOVE_ASTONISH),
    LEVEL_UP_MOVE(11, MOVE_HOWL),
    LEVEL_UP_MOVE(15, MOVE_SCREECH),
    LEVEL_UP_MOVE(18, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(23, MOVE_STOMP),
    LEVEL_UP_MOVE(27, MOVE_UPROAR),
    LEVEL_UP_MOVE(32, MOVE_ROAR),
    LEVEL_UP_MOVE(36, MOVE_REST),
    LEVEL_UP_MOVE(42, MOVE_SLEEP_TALK),
    LEVEL_UP_MOVE(47, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(53, MOVE_SYNCHRONOISE),
    LEVEL_UP_MOVE(58, MOVE_BOOMBURST),
    LEVEL_UP_MOVE(64, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sClamperlLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CLAMP),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(50, MOVE_SHELL_SMASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sHuntailLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 5, MOVE_SCREECH),
    LEVEL_UP_MOVE( 9, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(11, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(14, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(16, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(19, MOVE_BRINE),
    LEVEL_UP_MOVE(23, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(26, MOVE_DIVE),
    LEVEL_UP_MOVE(29, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(34, MOVE_CRUNCH),
    LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(45, MOVE_COIL),
    LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sGorebyssLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 5, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 9, MOVE_AGILITY),
    LEVEL_UP_MOVE(11, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(14, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(16, MOVE_AMNESIA),
    LEVEL_UP_MOVE(19, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(23, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(26, MOVE_DIVE),
    LEVEL_UP_MOVE(29, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(34, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(45, MOVE_COIL),
    LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sAbsolLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG),
    LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_FEINT),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_PURSUIT),
    LEVEL_UP_MOVE(13, MOVE_TAUNT),
    LEVEL_UP_MOVE(16, MOVE_BITE),
    LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(22, MOVE_SLASH),
    LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(29, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(33, MOVE_DETECT),
    LEVEL_UP_MOVE(37, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(41, MOVE_ME_FIRST),
    LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(49, MOVE_RAZOR_WIND),
    LEVEL_UP_MOVE(53, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(57, MOVE_PERISH_SONG),
    LEVEL_UP_END
};

static const struct LevelUpMove sShuppetLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE( 4, MOVE_SCREECH),
    LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(10, MOVE_SPITE),
    LEVEL_UP_MOVE(13, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(22, MOVE_HEX),
    LEVEL_UP_MOVE(26, MOVE_CURSE),
    LEVEL_UP_MOVE(30, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(34, MOVE_EMBARGO),
    LEVEL_UP_MOVE(38, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(42, MOVE_SNATCH),
    LEVEL_UP_MOVE(46, MOVE_GRUDGE),
    LEVEL_UP_MOVE(50, MOVE_TRICK),
    LEVEL_UP_MOVE(54, MOVE_PHANTOM_FORCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sBanetteLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE( 1, MOVE_SCREECH),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE( 1, MOVE_SPITE),
    LEVEL_UP_MOVE( 4, MOVE_SCREECH),
    LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(10, MOVE_SPITE),
    LEVEL_UP_MOVE(13, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(22, MOVE_HEX),
    LEVEL_UP_MOVE(26, MOVE_CURSE),
    LEVEL_UP_MOVE(30, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(34, MOVE_EMBARGO),
    LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(46, MOVE_SNATCH),
    LEVEL_UP_MOVE(52, MOVE_GRUDGE),
    LEVEL_UP_MOVE(58, MOVE_TRICK),
    LEVEL_UP_MOVE(64, MOVE_PHANTOM_FORCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSeviperLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_SWAGGER),
    LEVEL_UP_MOVE( 4, MOVE_BITE),
    LEVEL_UP_MOVE( 6, MOVE_LICK),
    LEVEL_UP_MOVE( 9, MOVE_POISON_TAIL),
    LEVEL_UP_MOVE(11, MOVE_FEINT),
    LEVEL_UP_MOVE(14, MOVE_SCREECH),
    LEVEL_UP_MOVE(16, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(19, MOVE_GLARE),
    LEVEL_UP_MOVE(21, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(24, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE(26, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(29, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(31, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(34, MOVE_HAZE),
    LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(39, MOVE_CRUNCH),
    LEVEL_UP_MOVE(41, MOVE_BELCH),
    LEVEL_UP_MOVE(44, MOVE_COIL),
    LEVEL_UP_MOVE(46, MOVE_WRING_OUT),
    LEVEL_UP_END
};

static const struct LevelUpMove sZangooseLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 8, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(12, MOVE_PURSUIT),
    LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(19, MOVE_SLASH),
    LEVEL_UP_MOVE(22, MOVE_REVENGE),
    LEVEL_UP_MOVE(26, MOVE_CRUSH_CLAW),
    LEVEL_UP_MOVE(29, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(33, MOVE_EMBARGO),
    LEVEL_UP_MOVE(36, MOVE_DETECT),
    LEVEL_UP_MOVE(40, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(43, MOVE_TAUNT),
    LEVEL_UP_MOVE(47, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(50, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};

static const struct LevelUpMove sRelicanthLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FLAIL),
    LEVEL_UP_MOVE( 1, MOVE_HEAD_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(26, MOVE_DIVE),
    LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(35, MOVE_YAWN),
    LEVEL_UP_MOVE(41, MOVE_REST),
    LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(56, MOVE_HEAD_SMASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sAronLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 7, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(10, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(16, MOVE_PROTECT),
    LEVEL_UP_MOVE(19, MOVE_ROAR),
    LEVEL_UP_MOVE(22, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(31, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(34, MOVE_IRON_TAIL),
    LEVEL_UP_MOVE(37, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(43, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(46, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(49, MOVE_METAL_BURST),
    LEVEL_UP_END
};

static const struct LevelUpMove sLaironLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
    LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 7, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(10, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(16, MOVE_PROTECT),
    LEVEL_UP_MOVE(19, MOVE_ROAR),
    LEVEL_UP_MOVE(22, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(31, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(35, MOVE_IRON_TAIL),
    LEVEL_UP_MOVE(39, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(47, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(51, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(55, MOVE_METAL_BURST),
    LEVEL_UP_END
};

static const struct LevelUpMove sAggronLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
    LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 7, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(10, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(16, MOVE_PROTECT),
    LEVEL_UP_MOVE(19, MOVE_ROAR),
    LEVEL_UP_MOVE(22, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(31, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(35, MOVE_IRON_TAIL),
    LEVEL_UP_MOVE(39, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(51, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(57, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(63, MOVE_METAL_BURST),
    LEVEL_UP_END
};

static const struct LevelUpMove sCastformLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(10, MOVE_EMBER),
    LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE(15, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(20, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(20, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(20, MOVE_HAIL),
    LEVEL_UP_MOVE(25, MOVE_WEATHER_BALL),
    LEVEL_UP_MOVE(35, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(35, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(35, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(45, MOVE_HURRICANE),
    LEVEL_UP_END
};

static const struct LevelUpMove sVolbeatLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FLASH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE( 8, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(19, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(22, MOVE_TAIL_GLOW),
    LEVEL_UP_MOVE(26, MOVE_SIGNAL_BEAM),
    LEVEL_UP_MOVE(29, MOVE_PROTECT),
    LEVEL_UP_MOVE(33, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(36, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(40, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(43, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(50, MOVE_INFESTATION),
    LEVEL_UP_END
};

static const struct LevelUpMove sIllumiseLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 9, MOVE_CHARM),
    LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(19, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(22, MOVE_WISH),
    LEVEL_UP_MOVE(26, MOVE_ENCORE),
    LEVEL_UP_MOVE(29, MOVE_FLATTER),
    LEVEL_UP_MOVE(33, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(36, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(40, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(43, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(47, MOVE_COVET),
    LEVEL_UP_MOVE(50, MOVE_INFESTATION),
    LEVEL_UP_END
};

static const struct LevelUpMove sLileepLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
    LEVEL_UP_MOVE( 5, MOVE_ACID),
    LEVEL_UP_MOVE( 9, MOVE_INGRAIN),
    LEVEL_UP_MOVE(13, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(17, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(21, MOVE_BRINE),
    LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(31, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(36, MOVE_AMNESIA),
    LEVEL_UP_MOVE(41, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(46, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(46, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(46, MOVE_SWALLOW),
    LEVEL_UP_MOVE(52, MOVE_WRING_OUT),
    LEVEL_UP_END
};

static const struct LevelUpMove sCradilyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WRING_OUT),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_MOVE( 1, MOVE_INGRAIN),
    LEVEL_UP_MOVE( 5, MOVE_ACID),
    LEVEL_UP_MOVE( 9, MOVE_INGRAIN),
    LEVEL_UP_MOVE(13, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(17, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(21, MOVE_BRINE),
    LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(31, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(36, MOVE_AMNESIA),
    LEVEL_UP_MOVE(44, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(52, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(52, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(52, MOVE_SWALLOW),
    LEVEL_UP_MOVE(61, MOVE_WRING_OUT),
    LEVEL_UP_END
};

static const struct LevelUpMove sAnorithLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 4, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 7, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(13, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(17, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(25, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(29, MOVE_BRINE),
    LEVEL_UP_MOVE(34, MOVE_SLASH),
    LEVEL_UP_MOVE(39, MOVE_CRUSH_CLAW),
    LEVEL_UP_MOVE(44, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(49, MOVE_PROTECT),
    LEVEL_UP_MOVE(55, MOVE_ROCK_BLAST),
    LEVEL_UP_END
};

static const struct LevelUpMove sArmaldoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 4, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 7, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(13, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(17, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(25, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(29, MOVE_BRINE),
    LEVEL_UP_MOVE(34, MOVE_SLASH),
    LEVEL_UP_MOVE(39, MOVE_CRUSH_CLAW),
    LEVEL_UP_MOVE(46, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(53, MOVE_PROTECT),
    LEVEL_UP_MOVE(61, MOVE_ROCK_BLAST),
    LEVEL_UP_END
};

static const struct LevelUpMove sRaltsLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 4, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 6, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE( 9, MOVE_TELEPORT),
    LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(14, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(17, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(19, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(22, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(24, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(27, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(29, MOVE_IMPRISON),
    LEVEL_UP_MOVE(32, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(34, MOVE_CHARM),
    LEVEL_UP_MOVE(37, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(39, MOVE_DREAM_EATER),
    LEVEL_UP_MOVE(42, MOVE_STORED_POWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sKirliaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
    LEVEL_UP_MOVE( 4, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 6, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE( 9, MOVE_TELEPORT),
    LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(14, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(17, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(19, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(23, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(26, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(30, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(33, MOVE_IMPRISON),
    LEVEL_UP_MOVE(37, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(40, MOVE_CHARM),
    LEVEL_UP_MOVE(44, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(47, MOVE_DREAM_EATER),
    LEVEL_UP_MOVE(51, MOVE_STORED_POWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sGardevoirLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MOONBLAST),
    LEVEL_UP_MOVE( 1, MOVE_STORED_POWER),
    LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_HEALING_WISH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
    LEVEL_UP_MOVE( 4, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 6, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE( 9, MOVE_TELEPORT),
    LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(14, MOVE_WISH),
    LEVEL_UP_MOVE(17, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(19, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(23, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(26, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(31, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(35, MOVE_IMPRISON),
    LEVEL_UP_MOVE(40, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(44, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(49, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(53, MOVE_DREAM_EATER),
    LEVEL_UP_MOVE(58, MOVE_STORED_POWER),
    LEVEL_UP_MOVE(62, MOVE_MOONBLAST),
    LEVEL_UP_END
};

static const struct LevelUpMove sBagonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_RAGE),
    LEVEL_UP_MOVE( 4, MOVE_EMBER),
    LEVEL_UP_MOVE( 7, MOVE_LEER),
    LEVEL_UP_MOVE(10, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(17, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(25, MOVE_CRUNCH),
    LEVEL_UP_MOVE(29, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(34, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(39, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(44, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sShelgonLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_RAGE),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 4, MOVE_EMBER),
    LEVEL_UP_MOVE( 7, MOVE_LEER),
    LEVEL_UP_MOVE(10, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(17, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(25, MOVE_CRUNCH),
    LEVEL_UP_MOVE(29, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(42, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSalamenceLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_FLY),
    LEVEL_UP_MOVE( 1, MOVE_FLY),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_RAGE),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 4, MOVE_EMBER),
    LEVEL_UP_MOVE( 7, MOVE_LEER),
    LEVEL_UP_MOVE(10, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(17, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(25, MOVE_CRUNCH),
    LEVEL_UP_MOVE(29, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(42, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(63, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sBeldumLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
    LEVEL_UP_END
};

static const struct LevelUpMove sMetangLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_CONFUSION),
    // LEVEL_UP_MOVE( 0, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(23, MOVE_PURSUIT),
    LEVEL_UP_MOVE(26, MOVE_BULLET_PUNCH),
    LEVEL_UP_MOVE(29, MOVE_MIRACLE_EYE),
    LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(35, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(38, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(41, MOVE_AGILITY),
    LEVEL_UP_MOVE(44, MOVE_METEOR_MASH),
    LEVEL_UP_MOVE(47, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(50, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sMetagrossLevelUpLearnset[] = {
    // LEVEL_UP_MOVE( 0, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(23, MOVE_PURSUIT),
    LEVEL_UP_MOVE(26, MOVE_BULLET_PUNCH),
    LEVEL_UP_MOVE(29, MOVE_MIRACLE_EYE),
    LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(35, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(38, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(41, MOVE_AGILITY),
    LEVEL_UP_MOVE(44, MOVE_METEOR_MASH),
    LEVEL_UP_MOVE(52, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(60, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sRegirockLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EXPLOSION),
    LEVEL_UP_MOVE( 1, MOVE_STOMP),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_BULLDOZE),
    LEVEL_UP_MOVE( 7, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(13, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE(19, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(25, MOVE_CURSE),
    LEVEL_UP_MOVE(31, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(37, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(43, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(49, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(55, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(55, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(61, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sRegiceLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EXPLOSION),
    LEVEL_UP_MOVE( 1, MOVE_STOMP),
    LEVEL_UP_MOVE( 1, MOVE_ICY_WIND),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_BULLDOZE),
    LEVEL_UP_MOVE( 7, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(13, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE(19, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(25, MOVE_CURSE),
    LEVEL_UP_MOVE(31, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(37, MOVE_AMNESIA),
    LEVEL_UP_MOVE(43, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(49, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(55, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(55, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(61, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sRegisteelLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EXPLOSION),
    LEVEL_UP_MOVE( 1, MOVE_STOMP),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_BULLDOZE),
    LEVEL_UP_MOVE( 7, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(13, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE(19, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(25, MOVE_CURSE),
    LEVEL_UP_MOVE(31, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(37, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(37, MOVE_AMNESIA),
    LEVEL_UP_MOVE(43, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(43, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(49, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(55, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(55, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(61, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sKyogreLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(15, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(20, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(30, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(35, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(45, MOVE_ORIGIN_PULSE),
    LEVEL_UP_MOVE(50, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(60, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(65, MOVE_SHEER_COLD),
    LEVEL_UP_MOVE(75, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(80, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(90, MOVE_WATER_SPOUT),
    LEVEL_UP_END
};

static const struct LevelUpMove sGroudonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(15, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(20, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(30, MOVE_REST),
    LEVEL_UP_MOVE(35, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(45, MOVE_PRECIPICE_BLADES),
    LEVEL_UP_MOVE(50, MOVE_BULK_UP),
    LEVEL_UP_MOVE(60, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(65, MOVE_FISSURE),
    LEVEL_UP_MOVE(75, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(80, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(90, MOVE_ERUPTION),
    LEVEL_UP_END
};

static const struct LevelUpMove sRayquazaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TWISTER),
    LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(20, MOVE_CRUNCH),
    LEVEL_UP_MOVE(30, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(35, MOVE_REST),
    LEVEL_UP_MOVE(45, MOVE_EXTREME_SPEED),
    LEVEL_UP_MOVE(50, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(60, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(65, MOVE_FLY),
    LEVEL_UP_MOVE(75, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(80, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(90, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sLatiasLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HEALING_WISH),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_WISH),
    LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
    LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE( 4, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 7, MOVE_CHARM),
    LEVEL_UP_MOVE(10, MOVE_STORED_POWER),
    LEVEL_UP_MOVE(13, MOVE_REFRESH),
    LEVEL_UP_MOVE(16, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(24, MOVE_MIST_BALL),
    LEVEL_UP_MOVE(28, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE(32, MOVE_RECOVER),
    LEVEL_UP_MOVE(36, MOVE_REFLECT_TYPE),
    LEVEL_UP_MOVE(41, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(46, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(51, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(56, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(61, MOVE_HEALING_WISH),
    LEVEL_UP_END
};

static const struct LevelUpMove sLatiosLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MEMENTO),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_HEAL_BLOCK),
    LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
    LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE( 4, MOVE_PROTECT),
    LEVEL_UP_MOVE( 7, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(10, MOVE_STORED_POWER),
    LEVEL_UP_MOVE(13, MOVE_REFRESH),
    LEVEL_UP_MOVE(16, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(24, MOVE_LUSTER_PURGE),
    LEVEL_UP_MOVE(28, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE(32, MOVE_RECOVER),
    LEVEL_UP_MOVE(36, MOVE_TELEKINESIS),
    LEVEL_UP_MOVE(41, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(46, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(51, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(56, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(61, MOVE_MEMENTO),
    LEVEL_UP_END
};

static const struct LevelUpMove sJirachiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WISH),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 5, MOVE_REST),
    LEVEL_UP_MOVE(10, MOVE_SWIFT),
    LEVEL_UP_MOVE(15, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(20, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(25, MOVE_REFRESH),
    LEVEL_UP_MOVE(30, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(45, MOVE_GRAVITY),
    LEVEL_UP_MOVE(50, MOVE_HEALING_WISH),
    LEVEL_UP_MOVE(55, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(60, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(65, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(70, MOVE_DOOM_DESIRE),
    LEVEL_UP_END
};

static const struct LevelUpMove sDeoxysLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(13, MOVE_TELEPORT),
    LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(25, MOVE_PURSUIT),
    LEVEL_UP_MOVE(31, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(37, MOVE_SNATCH),
    LEVEL_UP_MOVE(43, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(55, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(61, MOVE_RECOVER),
    LEVEL_UP_MOVE(67, MOVE_PSYCHO_BOOST),
    LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sChimechoLevelUpLearnset[] = {
	LEVEL_UP_MOVE( 1, MOVE_HEALING_WISH),
	LEVEL_UP_MOVE( 1, MOVE_SYNCHRONOISE),
	LEVEL_UP_MOVE( 1, MOVE_WRAP),
	LEVEL_UP_MOVE( 1, MOVE_GROWL),
	LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
	LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
	LEVEL_UP_MOVE( 4, MOVE_GROWL),
	LEVEL_UP_MOVE( 7, MOVE_ASTONISH),
	LEVEL_UP_MOVE(10, MOVE_CONFUSION),
	LEVEL_UP_MOVE(13, MOVE_YAWN),
	LEVEL_UP_MOVE(16, MOVE_PSYWAVE),
	LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN),
	LEVEL_UP_MOVE(22, MOVE_EXTRASENSORY),
	LEVEL_UP_MOVE(27, MOVE_HEAL_BELL),
	LEVEL_UP_MOVE(32, MOVE_UPROAR),
	LEVEL_UP_MOVE(37, MOVE_SAFEGUARD),
	LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE),
	LEVEL_UP_MOVE(47, MOVE_HEAL_PULSE),
	LEVEL_UP_MOVE(52, MOVE_SYNCHRONOISE),
	LEVEL_UP_MOVE(57, MOVE_HEALING_WISH),
	LEVEL_UP_END
};
