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

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

#if P_FAMILY_BULBASAUR
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( 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(32, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE(39, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(45, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(53, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_BULBASAUR

#if P_FAMILY_CHARMANDER
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( 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( 1, MOVE_SMOKESCREEN),
    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(36, MOVE_WING_ATTACK),
    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
};
#endif //P_FAMILY_CHARMANDER

#if P_FAMILY_SQUIRTLE
static const struct LevelUpMove sSquirtleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_BUBBLE),
    LEVEL_UP_MOVE(10, MOVE_WITHDRAW),
    LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
    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_BUBBLE),
    LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_BUBBLE),
    LEVEL_UP_MOVE(10, MOVE_WITHDRAW),
    LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(16, MOVE_BITE),
    LEVEL_UP_MOVE(20, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(24, MOVE_PROTECT),
    LEVEL_UP_MOVE(28, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(32, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(36, MOVE_SKULL_BASH),
    LEVEL_UP_MOVE(40, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(44, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(48, 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_BUBBLE),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_BUBBLE),
    LEVEL_UP_MOVE(10, MOVE_WITHDRAW),
    LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(16, MOVE_BITE),
    LEVEL_UP_MOVE(20, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(24, MOVE_PROTECT),
    LEVEL_UP_MOVE(28, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(32, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(39, MOVE_SKULL_BASH),
    LEVEL_UP_MOVE(46, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(53, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_SQUIRTLE

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

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

static const struct LevelUpMove sButterfreeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE(10, MOVE_CONFUSION),
    LEVEL_UP_MOVE(12, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(12, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(12, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(16, MOVE_GUST),
    LEVEL_UP_MOVE(18, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(22, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(24, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(28, MOVE_SILVER_WIND),
    LEVEL_UP_MOVE(30, MOVE_TAILWIND),
    LEVEL_UP_MOVE(34, MOVE_RAGE_POWDER),
    LEVEL_UP_MOVE(36, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(40, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(42, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(46, MOVE_QUIVER_DANCE),
    LEVEL_UP_END
};
#endif //P_FAMILY_CATERPIE

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

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

static const struct LevelUpMove sBeedrillLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(16, MOVE_TWINEEDLE),
    LEVEL_UP_MOVE(19, MOVE_RAGE),
    LEVEL_UP_MOVE(22, MOVE_PURSUIT),
    LEVEL_UP_MOVE(25, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(28, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(31, MOVE_AGILITY),
    LEVEL_UP_MOVE(34, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(37, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(40, MOVE_ENDEAVOR),
    LEVEL_UP_END
};
#endif //P_FAMILY_WEEDLE

#if P_FAMILY_PIDGEY
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_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
};
#endif //P_FAMILY_PIDGEY

#if P_FAMILY_RATTATA
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_SUCKER_PUNCH),
    LEVEL_UP_MOVE(22, MOVE_CRUNCH),
    LEVEL_UP_MOVE(25, MOVE_ASSURANCE),
    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( 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_SUCKER_PUNCH),
    LEVEL_UP_MOVE(20, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(24, MOVE_CRUNCH),
    LEVEL_UP_MOVE(29, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(34, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(44, MOVE_ENDEAVOR),
    LEVEL_UP_END
};

#if P_ALOLAN_FORMS
static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = {
    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 sRaticateAlolanLevelUpLearnset[] = {
    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
};
#endif //P_ALOLAN_FORMS
#endif //P_FAMILY_RATTATA

#if P_FAMILY_SPEAROW
static const struct LevelUpMove sSpearowLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_LEER),
    LEVEL_UP_MOVE( 9, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_PURSUIT),
    LEVEL_UP_MOVE(17, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(21, MOVE_MIRROR_MOVE),
    LEVEL_UP_MOVE(25, MOVE_AGILITY),
    LEVEL_UP_MOVE(29, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(33, MOVE_ROOST),
    LEVEL_UP_MOVE(37, MOVE_DRILL_PECK),
    LEVEL_UP_END
};

static const struct LevelUpMove sFearowLevelUpLearnset[] = {
    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_FURY_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_LEER),
    LEVEL_UP_MOVE( 9, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_PURSUIT),
    LEVEL_UP_MOVE(17, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(23, MOVE_MIRROR_MOVE),
    LEVEL_UP_MOVE(29, MOVE_AGILITY),
    LEVEL_UP_MOVE(35, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(41, MOVE_ROOST),
    LEVEL_UP_MOVE(47, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(53, MOVE_DRILL_RUN),
    LEVEL_UP_END
};
#endif //P_FAMILY_SPEAROW

#if P_FAMILY_EKANS
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(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( 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(22, MOVE_CRUNCH),
    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(51, MOVE_HAZE),
    LEVEL_UP_MOVE(56, MOVE_COIL),
    LEVEL_UP_MOVE(63, MOVE_GUNK_SHOT),
    LEVEL_UP_END
};
#endif //P_FAMILY_EKANS

#if P_FAMILY_PIKACHU
#if P_GEN_2_CROSS_EVOS
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_THUNDER_WAVE),
    LEVEL_UP_MOVE(13, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(18, MOVE_NASTY_PLOT),
    LEVEL_UP_END
};
#endif //P_GEN_2_CROSS_EVOS

static const struct LevelUpMove sPikachuLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE(10, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(18, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(21, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(26, MOVE_SLAM),
    LEVEL_UP_MOVE(29, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE(34, MOVE_FEINT),
    LEVEL_UP_MOVE(37, MOVE_AGILITY),
    LEVEL_UP_MOVE(42, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(45, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(50, 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
};

#if P_ALOLAN_FORMS
static const struct LevelUpMove sRaichuAlolanLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_PSYCHIC),
    LEVEL_UP_MOVE( 1, MOVE_PSYCHIC),
    LEVEL_UP_MOVE( 1, MOVE_SPEED_SWAP),
    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
};
#endif //P_ALOLAN_FORMS
#endif //P_FAMILY_PIKACHU

#if P_FAMILY_SANDSHREW
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_SWIFT),
    LEVEL_UP_MOVE(14, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(17, MOVE_MAGNITUDE),
    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( 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_SWIFT),
    LEVEL_UP_MOVE(14, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(17, MOVE_MAGNITUDE),
    LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(22, MOVE_CRUSH_CLAW),
    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
};

#if P_ALOLAN_FORMS
static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 3, MOVE_BIDE),
    LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 7, MOVE_ICE_BALL),
    LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(11, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(14, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(17, MOVE_SWIFT),
    LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(23, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(26, MOVE_SLASH),
    LEVEL_UP_MOVE(30, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(34, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(38, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(42, MOVE_HAIL),
    LEVEL_UP_MOVE(46, MOVE_BLIZZARD),
    LEVEL_UP_END
};

static const struct LevelUpMove sSandslashAlolanLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ICICLE_SPEAR),
    LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR),
    LEVEL_UP_MOVE( 1, MOVE_METAL_BURST),
    LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH),
    LEVEL_UP_MOVE( 1, MOVE_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_ICE_BALL),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_END
};
#endif //P_ALOLAN_FORMS
#endif //P_FAMILY_SANDSHREW

#if P_FAMILY_NIDORAN
static const struct LevelUpMove sNidoranFLevelUpLearnset[] = {
    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_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 sNidoranMLevelUpLearnset[] = {
    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_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
};
#endif //P_FAMILY_NIDORAN

#if P_FAMILY_CLEFAIRY
#if P_GEN_2_CROSS_EVOS
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
};
#endif //P_GEN_2_CROSS_EVOS

static const struct LevelUpMove sClefairyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 4, 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_LIGHT_SCREEN),
    LEVEL_UP_MOVE(49, MOVE_GRAVITY),
    LEVEL_UP_MOVE(52, 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_SING),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_MINIMIZE),
    LEVEL_UP_MOVE( 1, MOVE_METRONOME),
    LEVEL_UP_END
};
#endif //P_FAMILY_CLEFAIRY

#if P_FAMILY_VULPIX
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(10, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(15, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(18, MOVE_IMPRISON),
    LEVEL_UP_MOVE(20, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(23, MOVE_FLAME_BURST),
    LEVEL_UP_MOVE(26, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(28, MOVE_HEX),
    LEVEL_UP_MOVE(31, MOVE_PAYBACK),
    LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(36, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(39, MOVE_EXTRASENSORY),
    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_NASTY_PLOT),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD),
    LEVEL_UP_END
};

#if P_ALOLAN_FORMS
static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    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_ICE_SHARD),
    LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(15, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(18, MOVE_PAYBACK),
    LEVEL_UP_MOVE(20, MOVE_MIST),
    LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(26, MOVE_HEX),
    LEVEL_UP_MOVE(28, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(34, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(36, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(39, MOVE_IMPRISON),
    LEVEL_UP_MOVE(42, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(44, MOVE_GRUDGE),
    LEVEL_UP_MOVE(47, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(50, MOVE_SHEER_COLD),
    LEVEL_UP_END
};

static const struct LevelUpMove sNinetalesAlolanLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE( 1, MOVE_IMPRISON),
    LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE( 1, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD),
    LEVEL_UP_END
};
#endif //P_ALOLAN_FORMS
#endif //P_FAMILY_VULPIX

#if P_FAMILY_JIGGLYPUFF
#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sIgglybuffLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SING),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 9, MOVE_POUND),
    LEVEL_UP_MOVE(13, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(17, MOVE_COPYCAT),
    LEVEL_UP_END
};
#endif //P_GEN_2_CROSS_EVOS

static const struct LevelUpMove sJigglypuffLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SING),
    LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 9, MOVE_POUND),
    LEVEL_UP_MOVE(13, MOVE_DISABLE),
    LEVEL_UP_MOVE(17, MOVE_ROUND),
    LEVEL_UP_MOVE(21, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(25, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(29, MOVE_REST),
    LEVEL_UP_MOVE(33, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(37, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(41, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE(45, MOVE_MIMIC),
    LEVEL_UP_MOVE(49, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(53, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sWigglytuffLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SING),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
    LEVEL_UP_END
};
#endif //P_FAMILY_JIGGLYPUFF

#if P_FAMILY_ZUBAT
static const struct LevelUpMove sZubatLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 8, MOVE_ASTONISH),
    LEVEL_UP_MOVE(12, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(23, MOVE_SWIFT),
    LEVEL_UP_MOVE(26, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(30, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(34, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(37, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(41, MOVE_HAZE),
    LEVEL_UP_MOVE(45, MOVE_AIR_SLASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sGolbatLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCREECH),
    LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 8, MOVE_ASTONISH),
    LEVEL_UP_MOVE(12, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(24, MOVE_SWIFT),
    LEVEL_UP_MOVE(28, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(33, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(38, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(42, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(47, MOVE_HAZE),
    LEVEL_UP_MOVE(52, MOVE_AIR_SLASH),
    LEVEL_UP_END
};

#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sCrobatLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CROSS_POISON),
    LEVEL_UP_MOVE( 1, MOVE_SCREECH),
    LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 8, MOVE_ASTONISH),
    LEVEL_UP_MOVE(12, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(24, MOVE_SWIFT),
    LEVEL_UP_MOVE(28, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(33, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(38, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(42, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(47, MOVE_HAZE),
    LEVEL_UP_MOVE(52, MOVE_AIR_SLASH),
    LEVEL_UP_END
};
#endif //P_GEN_2_CROSS_EVOS
#endif //P_FAMILY_ZUBAT

#if P_FAMILY_ODDISH
static const struct LevelUpMove sOddishLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 9, MOVE_ACID),
    LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(15, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(21, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(25, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(29, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(33, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(41, MOVE_PETAL_DANCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sGloomLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    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(15, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(23, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(29, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(35, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(41, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(47, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(53, 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_STUN_SPORE),
    LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(53, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE(65, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};

#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sBellossomLevelUpLearnset[] = {
    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(23, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(53, MOVE_LEAF_STORM),
    LEVEL_UP_END
};
#endif //P_GEN_2_CROSS_EVOS
#endif //P_FAMILY_ODDISH

#if P_FAMILY_PARAS
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_LEECH_LIFE),
    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_LEECH_LIFE),
    LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 6, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(11, MOVE_LEECH_LIFE),
    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
};
#endif //P_FAMILY_PARAS

#if P_FAMILY_VENONAT
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_LEECH_LIFE),
    LEVEL_UP_MOVE(23, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(25, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(29, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(35, MOVE_SIGNAL_BEAM),
    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( 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_LEECH_LIFE),
    LEVEL_UP_MOVE(23, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(25, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(29, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(31, MOVE_GUST),
    LEVEL_UP_MOVE(37, MOVE_SIGNAL_BEAM),
    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
};
#endif //P_FAMILY_VENONAT

#if P_FAMILY_DIGLETT
static const struct LevelUpMove sDiglettLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_ASTONISH),
    LEVEL_UP_MOVE(12, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(15, MOVE_MAGNITUDE),
    LEVEL_UP_MOVE(18, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(23, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(26, MOVE_MUD_BOMB),
    LEVEL_UP_MOVE(29, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(34, MOVE_DIG),
    LEVEL_UP_MOVE(37, MOVE_SLASH),
    LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(45, MOVE_FISSURE),
    LEVEL_UP_END
};

static const struct LevelUpMove sDugtrioLevelUpLearnset[] = {
    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(12, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(15, MOVE_MAGNITUDE),
    LEVEL_UP_MOVE(18, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(23, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(26, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(28, MOVE_MUD_BOMB),
    LEVEL_UP_MOVE(33, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(40, MOVE_DIG),
    LEVEL_UP_MOVE(45, MOVE_SLASH),
    LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(57, MOVE_FISSURE),
    LEVEL_UP_END
};

#if P_ALOLAN_FORMS
static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    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_IRON_HEAD),
    LEVEL_UP_MOVE(39, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(43, MOVE_FISSURE),
    LEVEL_UP_END
};

static const struct LevelUpMove sDugtrioAlolanLevelUpLearnset[] = {
    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_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    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_IRON_HEAD),
    LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(53, MOVE_FISSURE),
    LEVEL_UP_END
};
#endif //P_ALOLAN_FORMS
#endif //P_FAMILY_DIGLETT

#if P_FAMILY_MEOWTH
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(54, MOVE_FEINT),
    LEVEL_UP_END
};

static const struct LevelUpMove sPersianLevelUpLearnset[] = {
    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(28, MOVE_SWIFT),
    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(68, MOVE_FEINT),
    LEVEL_UP_END
};

#if P_ALOLAN_FORMS
static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = {
    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_MOVE(55, MOVE_DARK_PULSE),
    LEVEL_UP_END
};

static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SWIFT),
    LEVEL_UP_MOVE( 1, MOVE_SWIFT),
    LEVEL_UP_MOVE( 1, MOVE_QUASH),
    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_MOVE(69, MOVE_DARK_PULSE),
    LEVEL_UP_END
};
#endif //P_ALOLAN_FORMS

#if P_GALARIAN_FORMS
static const struct LevelUpMove sMeowthGalarianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 4, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE( 8, MOVE_SCRATCH),
    LEVEL_UP_MOVE(12, MOVE_PAY_DAY),
    LEVEL_UP_MOVE(16, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(20, MOVE_TAUNT),
    LEVEL_UP_MOVE(24, MOVE_SWAGGER),
    LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(32, MOVE_SCREECH),
    LEVEL_UP_MOVE(36, MOVE_SLASH),
    LEVEL_UP_MOVE(40, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(44, MOVE_THRASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sPerrserkerLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE( 1, MOVE_METAL_BURST),
    LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE(12, MOVE_PAY_DAY),
    LEVEL_UP_MOVE(16, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(20, MOVE_TAUNT),
    LEVEL_UP_MOVE(24, MOVE_SWAGGER),
    LEVEL_UP_MOVE(31, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(36, MOVE_SCREECH),
    LEVEL_UP_MOVE(42, MOVE_SLASH),
    LEVEL_UP_MOVE(48, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(54, MOVE_THRASH),
    LEVEL_UP_END
};
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_MEOWTH

#if P_FAMILY_PSYDUCK
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( 8, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(11, MOVE_DISABLE),
    LEVEL_UP_MOVE(15, MOVE_CONFUSION),
    LEVEL_UP_MOVE(18, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(22, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(25, MOVE_SCREECH),
    LEVEL_UP_MOVE(29, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(32, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(36, MOVE_SOAK),
    LEVEL_UP_MOVE(39, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(43, MOVE_AMNESIA),
    LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(50, MOVE_WONDER_ROOM),
    LEVEL_UP_END
};

static const struct LevelUpMove sGolduckLevelUpLearnset[] = {
    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( 8, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(11, MOVE_DISABLE),
    LEVEL_UP_MOVE(15, MOVE_CONFUSION),
    LEVEL_UP_MOVE(18, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(22, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(25, MOVE_SCREECH),
    LEVEL_UP_MOVE(29, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(32, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(38, MOVE_SOAK),
    LEVEL_UP_MOVE(43, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(49, MOVE_AMNESIA),
    LEVEL_UP_MOVE(54, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(60, MOVE_WONDER_ROOM),
    LEVEL_UP_END
};
#endif //P_FAMILY_PSYDUCK

#if P_FAMILY_MANKEY
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( 9, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(13, MOVE_KARATE_CHOP),
    LEVEL_UP_MOVE(17, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE(21, MOVE_SCREECH),
    LEVEL_UP_MOVE(25, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(33, MOVE_SWAGGER),
    LEVEL_UP_MOVE(37, MOVE_CROSS_CHOP),
    LEVEL_UP_MOVE(41, MOVE_THRASH),
    LEVEL_UP_MOVE(45, MOVE_PUNISHMENT),
    LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(53, MOVE_FINAL_GAMBIT),
    LEVEL_UP_END
};

static const struct LevelUpMove sPrimeapeLevelUpLearnset[] = {
    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( 9, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(13, MOVE_KARATE_CHOP),
    LEVEL_UP_MOVE(17, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE(21, MOVE_SCREECH),
    LEVEL_UP_MOVE(25, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(28, MOVE_RAGE),
    LEVEL_UP_MOVE(35, MOVE_SWAGGER),
    LEVEL_UP_MOVE(41, MOVE_CROSS_CHOP),
    LEVEL_UP_MOVE(47, MOVE_THRASH),
    LEVEL_UP_MOVE(53, MOVE_PUNISHMENT),
    LEVEL_UP_MOVE(59, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(63, MOVE_FINAL_GAMBIT),
    LEVEL_UP_END
};

#if P_GEN_9_CROSS_EVOS
static const struct LevelUpMove sAnnihilapeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SHADOW_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_COUNTER),
    LEVEL_UP_MOVE( 1, MOVE_FLING),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 5, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE( 8, MOVE_LOW_KICK),
    LEVEL_UP_MOVE(12, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE(17, MOVE_SWAGGER),
    LEVEL_UP_MOVE(22, MOVE_CROSS_CHOP),
    LEVEL_UP_MOVE(26, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(30, MOVE_THRASH),
    LEVEL_UP_MOVE(35, MOVE_RAGE_FIST),
    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
};
#endif //P_GEN_9_CROSS_EVOS
#endif //P_FAMILY_MANKEY

#if P_FAMILY_GROWLITHE
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_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(34, MOVE_EXTREME_SPEED),
    LEVEL_UP_END
};

#if P_HISUIAN_FORMS
static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_EMBER),
    LEVEL_UP_MOVE( 9, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(29, MOVE_CRUNCH),
    LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(47, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sArcanineHisuianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_EMBER),
    LEVEL_UP_MOVE( 9, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(29, MOVE_CRUNCH),
    LEVEL_UP_MOVE(29, MOVE_RAGING_FURY),
    LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(47, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};
#endif //P_HISUIAN_FORMS
#endif //P_FAMILY_GROWLITHE

#if P_FAMILY_POLIWAG
static const struct LevelUpMove sPoliwagLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 5, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 8, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(11, MOVE_WATER_GUN),
    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_BUBBLE),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 5, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 8, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(11, MOVE_WATER_GUN),
    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( 1, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_SUBMISSION),
    LEVEL_UP_MOVE(32, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_MOVE(43, MOVE_MIND_READER),
    LEVEL_UP_MOVE(53, MOVE_CIRCLE_THROW),
    LEVEL_UP_END
};

#if P_GEN_2_CROSS_EVOS
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
};
#endif //P_GEN_2_CROSS_EVOS
#endif //P_FAMILY_POLIWAG

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

static const struct LevelUpMove sKadabraLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
    LEVEL_UP_MOVE( 1, MOVE_KINESIS),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE(16, MOVE_CONFUSION),
    LEVEL_UP_MOVE(18, MOVE_DISABLE),
    LEVEL_UP_MOVE(22, MOVE_MIRACLE_EYE),
    LEVEL_UP_MOVE(24, MOVE_ALLY_SWITCH),
    LEVEL_UP_MOVE(28, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(30, MOVE_REFLECT),
    LEVEL_UP_MOVE(34, MOVE_TELEKINESIS),
    LEVEL_UP_MOVE(36, MOVE_RECOVER),
    LEVEL_UP_MOVE(40, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(42, MOVE_ROLE_PLAY),
    LEVEL_UP_MOVE(46, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(48, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(52, MOVE_TRICK),
    LEVEL_UP_END
};

static const struct LevelUpMove sAlakazamLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
    LEVEL_UP_MOVE( 1, MOVE_KINESIS),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE(16, MOVE_CONFUSION),
    LEVEL_UP_MOVE(18, MOVE_DISABLE),
    LEVEL_UP_MOVE(22, MOVE_MIRACLE_EYE),
    LEVEL_UP_MOVE(24, MOVE_ALLY_SWITCH),
    LEVEL_UP_MOVE(28, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(30, MOVE_REFLECT),
    LEVEL_UP_MOVE(34, MOVE_TELEKINESIS),
    LEVEL_UP_MOVE(36, MOVE_RECOVER),
    LEVEL_UP_MOVE(40, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(42, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(46, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(48, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(52, MOVE_TRICK),
    LEVEL_UP_END
};
#endif //P_FAMILY_ABRA

#if P_FAMILY_MACHOP
static const struct LevelUpMove sMachopLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(10, MOVE_KARATE_CHOP),
    LEVEL_UP_MOVE(13, MOVE_LOW_SWEEP),
    LEVEL_UP_MOVE(19, MOVE_FORESIGHT),
    LEVEL_UP_MOVE(22, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE(25, MOVE_REVENGE),
    LEVEL_UP_MOVE(31, MOVE_VITAL_THROW),
    LEVEL_UP_MOVE(34, MOVE_SUBMISSION),
    LEVEL_UP_MOVE(37, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE(43, MOVE_CROSS_CHOP),
    LEVEL_UP_MOVE(46, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(49, 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( 7, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(10, MOVE_KARATE_CHOP),
    LEVEL_UP_MOVE(13, MOVE_LOW_SWEEP),
    LEVEL_UP_MOVE(19, MOVE_FORESIGHT),
    LEVEL_UP_MOVE(22, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE(25, MOVE_REVENGE),
    LEVEL_UP_MOVE(32, MOVE_VITAL_THROW),
    LEVEL_UP_MOVE(36, MOVE_SUBMISSION),
    LEVEL_UP_MOVE(40, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE(44, MOVE_CROSS_CHOP),
    LEVEL_UP_MOVE(51, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(55, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sMachampLevelUpLearnset[] = {
    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( 7, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(10, MOVE_KARATE_CHOP),
    LEVEL_UP_MOVE(13, MOVE_LOW_SWEEP),
    LEVEL_UP_MOVE(19, MOVE_FORESIGHT),
    LEVEL_UP_MOVE(22, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE(25, MOVE_REVENGE),
    LEVEL_UP_MOVE(32, MOVE_VITAL_THROW),
    LEVEL_UP_MOVE(36, MOVE_SUBMISSION),
    LEVEL_UP_MOVE(40, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE(44, MOVE_CROSS_CHOP),
    LEVEL_UP_MOVE(51, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(55, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_END
};
#endif //P_FAMILY_MACHOP

#if P_FAMILY_BELLSPROUT
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_SLAM),
    LEVEL_UP_MOVE(47, 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(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_SLAM),
    LEVEL_UP_MOVE(47, MOVE_WRING_OUT),
    LEVEL_UP_END
};

static const struct LevelUpMove sVictreebelLevelUpLearnset[] = {
    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(27, MOVE_LEAF_TORNADO),
    LEVEL_UP_MOVE(47, MOVE_LEAF_STORM),
    LEVEL_UP_MOVE(47, MOVE_LEAF_BLADE),
    LEVEL_UP_END
};
#endif //P_FAMILY_BELLSPROUT

#if P_FAMILY_TENTACOOL
static const struct LevelUpMove sTentacoolLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 8, MOVE_CONSTRICT),
    LEVEL_UP_MOVE(12, MOVE_ACID),
    LEVEL_UP_MOVE(15, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(22, MOVE_WRAP),
    LEVEL_UP_MOVE(26, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(29, MOVE_BARRIER),
    LEVEL_UP_MOVE(33, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(36, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(40, MOVE_SCREECH),
    LEVEL_UP_MOVE(43, MOVE_HEX),
    LEVEL_UP_MOVE(47, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(50, MOVE_SLUDGE_WAVE),
    LEVEL_UP_MOVE(54, MOVE_WRING_OUT),
    LEVEL_UP_END
};

static const struct LevelUpMove sTentacruelLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
    LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 8, MOVE_CONSTRICT),
    LEVEL_UP_MOVE(12, MOVE_ACID),
    LEVEL_UP_MOVE(15, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(22, MOVE_WRAP),
    LEVEL_UP_MOVE(26, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(29, MOVE_BARRIER),
    LEVEL_UP_MOVE(34, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(38, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(43, MOVE_SCREECH),
    LEVEL_UP_MOVE(47, MOVE_HEX),
    LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(56, MOVE_SLUDGE_WAVE),
    LEVEL_UP_MOVE(61, MOVE_WRING_OUT),
    LEVEL_UP_END
};
#endif //P_FAMILY_TENTACOOL

#if P_FAMILY_GEODUDE
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( 8, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(11, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(15, MOVE_MAGNITUDE),
    LEVEL_UP_MOVE(18, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(22, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(25, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(32, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(36, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(39, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(43, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(50, 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( 8, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(11, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(15, MOVE_MAGNITUDE),
    LEVEL_UP_MOVE(18, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(22, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(27, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(31, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(36, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(42, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(53, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(58, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(64, MOVE_STONE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sGolemLevelUpLearnset[] = {
    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( 8, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(11, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(15, MOVE_MAGNITUDE),
    LEVEL_UP_MOVE(18, MOVE_STEAMROLLER),
    LEVEL_UP_MOVE(22, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(27, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(31, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(36, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(42, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(53, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(58, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(64, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(69, MOVE_HEAVY_SLAM),
    LEVEL_UP_END
};

#if P_ALOLAN_FORMS
static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 4, MOVE_CHARGE),
    LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(10, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(12, MOVE_SPARK),
    LEVEL_UP_MOVE(16, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH),
    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_DISCHARGE),
    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 sGravelerAlolanLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE( 4, MOVE_CHARGE),
    LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(10, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(12, MOVE_SPARK),
    LEVEL_UP_MOVE(16, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH),
    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_DISCHARGE),
    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 sGolemAlolanLevelUpLearnset[] = {
    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_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE( 4, MOVE_CHARGE),
    LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(10, MOVE_STEAMROLLER),
    LEVEL_UP_MOVE(12, MOVE_SPARK),
    LEVEL_UP_MOVE(16, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH),
    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_DISCHARGE),
    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
};
#endif //P_ALOLAN_FORMS
#endif //P_FAMILY_GEODUDE

#if P_FAMILY_PONYTA
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( 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(40, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(41, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(45, MOVE_BOUNCE),
    LEVEL_UP_MOVE(49, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};

#if P_GALARIAN_FORMS
static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE(10, MOVE_CONFUSION),
    LEVEL_UP_MOVE(15, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE(20, MOVE_AGILITY),
    LEVEL_UP_MOVE(25, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(30, MOVE_STOMP),
    LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(45, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE(50, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(55, MOVE_HEALING_WISH),
    LEVEL_UP_END
};

static const struct LevelUpMove sRapidashGalarianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE( 1, MOVE_MEGAHORN),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE(15, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE(20, MOVE_AGILITY),
    LEVEL_UP_MOVE(25, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(30, MOVE_STOMP),
    LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(49, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE(56, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(63, MOVE_HEALING_WISH),
    LEVEL_UP_END
};
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_PONYTA

#if P_FAMILY_SLOWPOKE
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( 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(37, MOVE_WITHDRAW),
    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
};

#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sSlowkingLevelUpLearnset[] = {
    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
};
#endif //P_GEN_2_CROSS_EVOS

#if P_GALARIAN_FORMS
static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_CURSE),
    LEVEL_UP_MOVE( 3, MOVE_GROWL),
    LEVEL_UP_MOVE( 6, MOVE_ACID),
    LEVEL_UP_MOVE( 9, MOVE_YAWN),
    LEVEL_UP_MOVE(12, MOVE_CONFUSION),
    LEVEL_UP_MOVE(15, MOVE_DISABLE),
    LEVEL_UP_MOVE(18, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(21, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(27, MOVE_AMNESIA),
    LEVEL_UP_MOVE(30, MOVE_SURF),
    LEVEL_UP_MOVE(33, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE(36, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(39, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SHELL_SIDE_ARM),
    LEVEL_UP_MOVE( 1, MOVE_SHELL_SIDE_ARM),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_CURSE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_MOVE( 9, MOVE_YAWN),
    LEVEL_UP_MOVE(12, MOVE_CONFUSION),
    LEVEL_UP_MOVE(15, MOVE_DISABLE),
    LEVEL_UP_MOVE(18, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(21, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(27, MOVE_AMNESIA),
    LEVEL_UP_MOVE(30, MOVE_SURF),
    LEVEL_UP_MOVE(33, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE(36, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(39, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE),
    LEVEL_UP_END
};

#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sSlowkingGalarianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_EERIE_SPELL),
    LEVEL_UP_MOVE( 1, MOVE_EERIE_SPELL),
    LEVEL_UP_MOVE( 1, MOVE_POWER_GEM),
    LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE( 1, MOVE_SWAGGER),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_CURSE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_MOVE( 9, MOVE_YAWN),
    LEVEL_UP_MOVE(12, MOVE_CONFUSION),
    LEVEL_UP_MOVE(15, MOVE_DISABLE),
    LEVEL_UP_MOVE(18, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(21, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(27, MOVE_AMNESIA),
    LEVEL_UP_MOVE(30, MOVE_SURF),
    LEVEL_UP_MOVE(33, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE(36, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(39, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE),
    LEVEL_UP_END
};
#endif //P_GEN_2_CROSS_EVOS
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_SLOWPOKE

#if P_FAMILY_MAGNEMITE
static const struct LevelUpMove sMagnemiteLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(11, MOVE_SONIC_BOOM),
    LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(18, MOVE_MAGNET_BOMB),
    LEVEL_UP_MOVE(21, MOVE_SPARK),
    LEVEL_UP_MOVE(25, MOVE_MIRROR_SHOT),
    LEVEL_UP_MOVE(29, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(32, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(35, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(39, MOVE_SCREECH),
    LEVEL_UP_MOVE(43, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(46, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(49, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(53, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(57, MOVE_ZAP_CANNON),
    LEVEL_UP_END
};

static const struct LevelUpMove sMagnetonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM),
    LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(11, MOVE_SONIC_BOOM),
    LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(18, MOVE_MAGNET_BOMB),
    LEVEL_UP_MOVE(21, MOVE_SPARK),
    LEVEL_UP_MOVE(25, MOVE_MIRROR_SHOT),
    LEVEL_UP_MOVE(29, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(34, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(39, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(45, MOVE_SCREECH),
    LEVEL_UP_MOVE(51, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(56, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(62, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(67, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(73, MOVE_ZAP_CANNON),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sMagnezoneLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE( 1, MOVE_BARRIER),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM),
    LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(11, MOVE_SONIC_BOOM),
    LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(18, MOVE_MAGNET_BOMB),
    LEVEL_UP_MOVE(21, MOVE_SPARK),
    LEVEL_UP_MOVE(25, MOVE_MIRROR_SHOT),
    LEVEL_UP_MOVE(29, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(34, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(39, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(45, MOVE_SCREECH),
    LEVEL_UP_MOVE(51, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(56, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(62, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(67, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(73, MOVE_ZAP_CANNON),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_MAGNEMITE

#if P_FAMILY_FARFETCHD
static const struct LevelUpMove sFarfetchdLevelUpLearnset[] = {
    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_KNOCK_OFF),
    LEVEL_UP_MOVE(13, MOVE_AERIAL_ACE),
    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
};

#if P_GALARIAN_FORMS
static const struct LevelUpMove sFarfetchdGalarianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_LEER),
    LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(15, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(20, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE(25, MOVE_DETECT),
    LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(35, MOVE_DEFOG),
    LEVEL_UP_MOVE(40, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(50, MOVE_SLAM),
    LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(60, MOVE_FINAL_GAMBIT),
    LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD),
    LEVEL_UP_END
};

static const struct LevelUpMove sSirfetchdLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 1, MOVE_FIRST_IMPRESSION),
    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(15, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(20, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE(25, MOVE_DETECT),
    LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(35, MOVE_DEFOG),
    LEVEL_UP_MOVE(40, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(50, MOVE_SLAM),
    LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(60, MOVE_FINAL_GAMBIT),
    LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(70, MOVE_METEOR_ASSAULT),
    LEVEL_UP_END
};
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_FARFETCHD

#if P_FAMILY_DODUO
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(10, MOVE_RAGE),
    LEVEL_UP_MOVE(14, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(19, MOVE_PURSUIT),
    LEVEL_UP_MOVE(23, MOVE_UPROAR),
    LEVEL_UP_MOVE(28, MOVE_ACUPRESSURE),
    LEVEL_UP_MOVE(32, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(37, MOVE_AGILITY),
    LEVEL_UP_MOVE(41, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(46, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(50, MOVE_THRASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sDodrioLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PLUCK),
    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(10, MOVE_RAGE),
    LEVEL_UP_MOVE(14, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(19, MOVE_PURSUIT),
    LEVEL_UP_MOVE(23, MOVE_UPROAR),
    LEVEL_UP_MOVE(28, MOVE_ACUPRESSURE),
    LEVEL_UP_MOVE(34, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE(41, MOVE_AGILITY),
    LEVEL_UP_MOVE(47, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(54, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(60, MOVE_THRASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_DODUO

#if P_FAMILY_SEEL
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( 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(34, MOVE_SHEER_COLD),
    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
};
#endif //P_FAMILY_SEEL

#if P_FAMILY_GRIMER
static const struct LevelUpMove sGrimerLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    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_MINIMIZE),
    LEVEL_UP_MOVE(21, MOVE_MUD_BOMB),
    LEVEL_UP_MOVE(26, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(29, MOVE_FLING),
    LEVEL_UP_MOVE(32, MOVE_SCREECH),
    LEVEL_UP_MOVE(37, MOVE_SLUDGE_WAVE),
    LEVEL_UP_MOVE(40, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(43, MOVE_GUNK_SHOT),
    LEVEL_UP_MOVE(48, MOVE_MEMENTO),
    LEVEL_UP_END
};

static const struct LevelUpMove sMukLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    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_MINIMIZE),
    LEVEL_UP_MOVE(21, MOVE_MUD_BOMB),
    LEVEL_UP_MOVE(26, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(29, MOVE_FLING),
    LEVEL_UP_MOVE(32, MOVE_SCREECH),
    LEVEL_UP_MOVE(37, MOVE_SLUDGE_WAVE),
    LEVEL_UP_MOVE(43, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(49, MOVE_GUNK_SHOT),
    LEVEL_UP_MOVE(57, MOVE_MEMENTO),
    LEVEL_UP_END
};

#if P_ALOLAN_FORMS
static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 4, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_DISABLE),
    LEVEL_UP_MOVE(15, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(18, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(21, MOVE_MINIMIZE),
    LEVEL_UP_MOVE(26, MOVE_FLING),
    LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(32, MOVE_CRUNCH),
    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 sMukAlolanLevelUpLearnset[] = {
    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_BITE),
    LEVEL_UP_MOVE( 4, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_DISABLE),
    LEVEL_UP_MOVE(15, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(18, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(21, MOVE_MINIMIZE),
    LEVEL_UP_MOVE(26, MOVE_FLING),
    LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(32, MOVE_CRUNCH),
    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
};
#endif //P_ALOLAN_FORMS
#endif //P_FAMILY_GRIMER

#if P_FAMILY_SHELLDER
static const struct LevelUpMove sShellderLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    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_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(52, MOVE_ICICLE_CRASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_SHELLDER

#if P_FAMILY_GASTLY
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( 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(25, MOVE_SHADOW_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( 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(25, MOVE_SHADOW_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
};
#endif //P_FAMILY_GASTLY

#if P_FAMILY_ONIX
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_RAGE),
    LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(16, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(19, MOVE_ROCK_POLISH),
    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
};

#if P_GEN_2_CROSS_EVOS
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_RAGE),
    LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(16, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(19, MOVE_AUTOTOMIZE),
    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
};
#endif //P_GEN_2_CROSS_EVOS
#endif //P_FAMILY_ONIX

#if P_FAMILY_DROWZEE
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(17, MOVE_POISON_GAS),
    LEVEL_UP_MOVE(21, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(21, MOVE_MEDITATE),
    LEVEL_UP_MOVE(25, MOVE_PSYBEAM),
    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_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(17, MOVE_POISON_GAS),
    LEVEL_UP_MOVE(21, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(21, MOVE_MEDITATE),
    LEVEL_UP_MOVE(25, MOVE_PSYBEAM),
    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
};
#endif //P_FAMILY_DROWZEE

#if P_FAMILY_KRABBY
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
};
#endif //P_FAMILY_KRABBY

#if P_FAMILY_VOLTORB
static const struct LevelUpMove sVoltorbLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CHARGE),
    LEVEL_UP_MOVE( 5, MOVE_TACKLE),
    LEVEL_UP_MOVE( 8, MOVE_SONIC_BOOM),
    LEVEL_UP_MOVE(12, MOVE_SPARK),
    LEVEL_UP_MOVE(15, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(19, MOVE_SCREECH),
    LEVEL_UP_MOVE(22, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE(26, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(33, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(36, MOVE_SWIFT),
    LEVEL_UP_MOVE(40, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(43, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(47, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(50, MOVE_MIRROR_COAT),
    LEVEL_UP_END
};

static const struct LevelUpMove sElectrodeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM),
    LEVEL_UP_MOVE( 1, MOVE_SPARK),
    LEVEL_UP_MOVE( 5, MOVE_TACKLE),
    LEVEL_UP_MOVE( 8, MOVE_SONIC_BOOM),
    LEVEL_UP_MOVE(12, MOVE_SPARK),
    LEVEL_UP_MOVE(15, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(19, MOVE_SCREECH),
    LEVEL_UP_MOVE(22, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE(26, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(35, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(40, MOVE_SWIFT),
    LEVEL_UP_MOVE(46, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(51, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(57, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(62, MOVE_MIRROR_COAT),
    LEVEL_UP_END
};

#if P_HISUIAN_FORMS
static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 5, MOVE_TACKLE),
    LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(15, MOVE_SPARK),
    LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(29, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE(37, MOVE_THUNDER),
    LEVEL_UP_MOVE(47, MOVE_SELF_DESTRUCT),
    LEVEL_UP_END
};

static const struct LevelUpMove sElectrodeHisuianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 5, MOVE_TACKLE),
    LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(15, MOVE_SPARK),
    LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(29, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE(37, MOVE_THUNDER),
    LEVEL_UP_MOVE(47, MOVE_CHLOROBLAST),
    LEVEL_UP_MOVE(47, MOVE_SELF_DESTRUCT),
    LEVEL_UP_END
};
#endif //P_HISUIAN_FORMS
#endif //P_FAMILY_VOLTORB

#if P_FAMILY_EXEGGCUTE
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(53, MOVE_BESTOW),
    LEVEL_UP_END
};

static const struct LevelUpMove sExeggutorLevelUpLearnset[] = {
    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( 1, MOVE_STOMP),
    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
};

#if P_ALOLAN_FORMS
static const struct LevelUpMove sExeggutorAlolanLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DRAGON_HAMMER),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_HAMMER),
    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
};
#endif //P_ALOLAN_FORMS
#endif //P_FAMILY_EXEGGCUTE

#if P_FAMILY_CUBONE
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_BONE_RUSH),
    LEVEL_UP_MOVE(41, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(47, MOVE_RETALIATE),
    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_BONE_RUSH),
    LEVEL_UP_MOVE(49, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(53, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(59, MOVE_RETALIATE),
    LEVEL_UP_END
};

#if P_ALOLAN_FORMS
static const struct LevelUpMove sMarowakAlolanLevelUpLearnset[] = {
    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_FLAME_WHEEL),
    LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_BONE_CLUB),
    LEVEL_UP_MOVE(11, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(13, MOVE_LEER),
    LEVEL_UP_MOVE(17, MOVE_HEX),
    LEVEL_UP_MOVE(21, MOVE_BONEMERANG),
    LEVEL_UP_MOVE(23, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(27, MOVE_SHADOW_BONE),
    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_FLARE_BLITZ),
    LEVEL_UP_MOVE(59, MOVE_RETALIATE),
    LEVEL_UP_MOVE(65, MOVE_BONE_RUSH),
    LEVEL_UP_END
};
#endif //P_ALOLAN_FORMS
#endif //P_FAMILY_CUBONE

#if P_FAMILY_HITMONS
#if P_GEN_2_CROSS_EVOS
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
};
#endif //P_GEN_2_CROSS_EVOS

static const struct LevelUpMove sHitmonleeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_REVENGE),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_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( 1, MOVE_REVENGE),
    LEVEL_UP_MOVE( 1, MOVE_COMET_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(51, 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
};

#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sHitmontopLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_REVENGE),
    LEVEL_UP_MOVE( 1, MOVE_ROLLING_KICK),
    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_TRIPLE_KICK),
    LEVEL_UP_MOVE(24, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(28, MOVE_COUNTER),
    LEVEL_UP_MOVE(33, MOVE_FEINT),
    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(51, MOVE_DETECT),
    LEVEL_UP_MOVE(55, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(60, MOVE_ENDEAVOR),
    LEVEL_UP_END
};
#endif //P_GEN_2_CROSS_EVOS
#endif //P_FAMILY_HITMONS

#if P_FAMILY_LICKITUNG
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
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sLickilickyLevelUpLearnset[] = {
    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_MOVE(61, MOVE_GYRO_BALL),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_LICKITUNG

#if P_FAMILY_KOFFING
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(45, MOVE_MEMENTO),
    LEVEL_UP_END
};

static const struct LevelUpMove sWeezingLevelUpLearnset[] = {
    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_DOUBLE_HIT),
    LEVEL_UP_MOVE(34, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(40, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(46, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE(54, MOVE_MEMENTO),
    LEVEL_UP_END
};

#if P_GALARIAN_FORMS
static const struct LevelUpMove sWeezingGalarianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE( 1, MOVE_STRANGE_STEAM),
    LEVEL_UP_MOVE( 1, MOVE_DEFOG),
    LEVEL_UP_MOVE( 1, MOVE_HEAT_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_SMOG),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 1, MOVE_HAZE),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST),
    LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(16, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(20, MOVE_SLUDGE),
    LEVEL_UP_MOVE(24, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(28, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(32, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(38, MOVE_TOXIC),
    LEVEL_UP_MOVE(44, MOVE_BELCH),
    LEVEL_UP_MOVE(50, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(56, MOVE_MEMENTO),
    LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE(68, MOVE_MISTY_TERRAIN),
    LEVEL_UP_END
};
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_KOFFING

#if P_FAMILY_RHYHORN
static const struct LevelUpMove sRhyhornLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 8, MOVE_STOMP),
    LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(19, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(23, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(30, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(34, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(45, MOVE_DRILL_RUN),
    LEVEL_UP_MOVE(52, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(56, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(63, MOVE_HORN_DRILL),
    LEVEL_UP_MOVE(67, MOVE_MEGAHORN),
    LEVEL_UP_END
};

static const struct LevelUpMove sRhydonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_STOMP),
    LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_STOMP),
    LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(19, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(23, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(30, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(34, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(47, MOVE_DRILL_RUN),
    LEVEL_UP_MOVE(56, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(62, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(71, MOVE_HORN_DRILL),
    LEVEL_UP_MOVE(77, MOVE_MEGAHORN),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sRhyperiorLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_JAB),
    LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_STOMP),
    LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_STOMP),
    LEVEL_UP_MOVE(19, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(19, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(23, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(30, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(47, MOVE_DRILL_RUN),
    LEVEL_UP_MOVE(56, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(62, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(71, MOVE_HORN_DRILL),
    LEVEL_UP_MOVE(77, MOVE_MEGAHORN),
    LEVEL_UP_MOVE(86, MOVE_ROCK_WRECKER),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_RHYHORN

#if P_FAMILY_CHANSEY
#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sHappinyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 5, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 9, MOVE_REFRESH),
    LEVEL_UP_MOVE(12, MOVE_SWEET_KISS),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS

static const struct LevelUpMove sChanseyLevelUpLearnset[] = {
    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(38, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(42, MOVE_EGG_BOMB),
    LEVEL_UP_MOVE(46, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(50, MOVE_HEALING_WISH),
    LEVEL_UP_MOVE(54, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sBlisseyLevelUpLearnset[] = {
    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(38, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(42, MOVE_EGG_BOMB),
    LEVEL_UP_MOVE(46, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(50, MOVE_HEALING_WISH),
    LEVEL_UP_MOVE(54, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};
#endif //P_GEN_2_CROSS_EVOS
#endif //P_FAMILY_CHANSEY

#if P_FAMILY_TANGELA
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(40, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(43, MOVE_SLAM),
    LEVEL_UP_MOVE(46, MOVE_TICKLE),
    LEVEL_UP_MOVE(49, MOVE_WRING_OUT),
    LEVEL_UP_MOVE(53, MOVE_POWER_WHIP),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sTangrowthLevelUpLearnset[] = {
    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(40, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(43, MOVE_SLAM),
    LEVEL_UP_MOVE(46, MOVE_TICKLE),
    LEVEL_UP_MOVE(49, MOVE_WRING_OUT),
    LEVEL_UP_MOVE(53, MOVE_POWER_WHIP),
    LEVEL_UP_MOVE(56, MOVE_BLOCK),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_TANGELA

#if P_FAMILY_KANGASKHAN
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(55, MOVE_REVERSAL),
    LEVEL_UP_END
};
#endif //P_FAMILY_KANGASKHAN

#if P_FAMILY_HORSEA
static const struct LevelUpMove sHorseaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 4, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 8, MOVE_LEER),
    LEVEL_UP_MOVE(11, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(14, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(23, MOVE_AGILITY),
    LEVEL_UP_MOVE(26, MOVE_TWISTER),
    LEVEL_UP_MOVE(30, MOVE_BRINE),
    LEVEL_UP_MOVE(35, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(38, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSeadraLevelUpLearnset[] = {
    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( 4, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 8, MOVE_LEER),
    LEVEL_UP_MOVE(11, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(14, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(23, MOVE_AGILITY),
    LEVEL_UP_MOVE(26, MOVE_TWISTER),
    LEVEL_UP_MOVE(30, MOVE_BRINE),
    LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(48, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE),
    LEVEL_UP_END
};

#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sKingdraLevelUpLearnset[] = {
    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( 4, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 8, MOVE_LEER),
    LEVEL_UP_MOVE(11, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(14, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(23, MOVE_AGILITY),
    LEVEL_UP_MOVE(26, MOVE_TWISTER),
    LEVEL_UP_MOVE(30, MOVE_BRINE),
    LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(48, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE),
    LEVEL_UP_END
};
#endif //P_GEN_2_CROSS_EVOS
#endif //P_FAMILY_HORSEA

#if P_FAMILY_GOLDEEN
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( 7, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(11, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(21, MOVE_FLAIL),
    LEVEL_UP_MOVE(27, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(31, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(37, MOVE_WATERFALL),
    LEVEL_UP_MOVE(41, MOVE_HORN_DRILL),
    LEVEL_UP_MOVE(47, MOVE_AGILITY),
    LEVEL_UP_MOVE(51, MOVE_SOAK),
    LEVEL_UP_MOVE(57, MOVE_MEGAHORN),
    LEVEL_UP_END
};

static const struct LevelUpMove sSeakingLevelUpLearnset[] = {
    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( 7, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(11, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(21, MOVE_FLAIL),
    LEVEL_UP_MOVE(27, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(31, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(40, MOVE_WATERFALL),
    LEVEL_UP_MOVE(47, MOVE_HORN_DRILL),
    LEVEL_UP_MOVE(56, MOVE_AGILITY),
    LEVEL_UP_MOVE(63, MOVE_SOAK),
    LEVEL_UP_MOVE(72, MOVE_MEGAHORN),
    LEVEL_UP_END
};
#endif //P_FAMILY_GOLDEEN

#if P_FAMILY_STARYU
static const struct LevelUpMove sStaryuLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 6, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(10, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(12, MOVE_RECOVER),
    LEVEL_UP_MOVE(15, MOVE_CAMOUFLAGE),
    LEVEL_UP_MOVE(18, MOVE_SWIFT),
    LEVEL_UP_MOVE(22, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(25, MOVE_MINIMIZE),
    LEVEL_UP_MOVE(30, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(33, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(36, MOVE_BRINE),
    LEVEL_UP_MOVE(40, MOVE_REFLECT_TYPE),
    LEVEL_UP_MOVE(43, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(48, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sStarmieLevelUpLearnset[] = {
    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(22, MOVE_CONFUSE_RAY),
    LEVEL_UP_END
};
#endif //P_FAMILY_STARYU

#if P_FAMILY_MR_MIME
#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sMimeJrLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TICKLE),
    LEVEL_UP_MOVE( 1, MOVE_BARRIER),
    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(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
};
#endif //P_GEN_4_CROSS_EVOS

static const struct LevelUpMove sMrMimeLevelUpLearnset[] = {
    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_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
};

#if P_GALARIAN_FORMS
static const struct LevelUpMove sMrMimeGalarianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 1, MOVE_ENCORE),
    LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_RECYCLE),
    LEVEL_UP_MOVE( 1, MOVE_MIMIC),
    LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE( 1, MOVE_REFLECT),
    LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_BATON_PASS),
    LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(12, MOVE_CONFUSION),
    LEVEL_UP_MOVE(16, MOVE_ALLY_SWITCH),
    LEVEL_UP_MOVE(20, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(24, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(28, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(32, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(36, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(44, MOVE_FREEZE_DRY),
    LEVEL_UP_MOVE(48, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sMrRimeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE( 1, MOVE_BLOCK),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 1, MOVE_ENCORE),
    LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_RECYCLE),
    LEVEL_UP_MOVE( 1, MOVE_MIMIC),
    LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE( 1, MOVE_REFLECT),
    LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_BATON_PASS),
    LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(12, MOVE_CONFUSION),
    LEVEL_UP_MOVE(16, MOVE_ALLY_SWITCH),
    LEVEL_UP_MOVE(20, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(24, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(28, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(32, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(36, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(44, MOVE_FREEZE_DRY),
    LEVEL_UP_MOVE(48, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE),
    LEVEL_UP_END
};
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_MR_MIME

#if P_FAMILY_SCYTHER
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(53, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(61, MOVE_FEINT),
    LEVEL_UP_END
};

#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sScizorLevelUpLearnset[] = {
    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(53, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(61, MOVE_FEINT),
    LEVEL_UP_END
};
#endif //P_GEN_2_CROSS_EVOS

#if P_GEN_8_CROSS_EVOS
static const struct LevelUpMove sKleavorLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 6, MOVE_SILVER_WIND),
    LEVEL_UP_MOVE(11, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(14, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(18, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(29, MOVE_STONE_AXE),
    LEVEL_UP_MOVE(34, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};
#endif //P_GEN_8_CROSS_EVOS
#endif //P_FAMILY_SCYTHER

#if P_FAMILY_JYNX
#if P_GEN_2_CROSS_EVOS
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
};
#endif //P_GEN_2_CROSS_EVOS

static const struct LevelUpMove sJynxLevelUpLearnset[] = {
    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
};
#endif //P_FAMILY_JYNX

#if P_FAMILY_ELECTABUZZ
#if P_GEN_2_CROSS_EVOS
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
};
#endif //P_GEN_2_CROSS_EVOS

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
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sElectivireLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
    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_MOVE(62, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_ELECTABUZZ

#if P_FAMILY_MAGMAR
#if P_GEN_2_CROSS_EVOS
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
};
#endif //P_GEN_2_CROSS_EVOS

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
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sMagmortarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_SMOG),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    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_MOVE(62, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_MAGMAR

#if P_FAMILY_PINSIR
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_BRICK_BREAK),
    LEVEL_UP_MOVE(22, MOVE_VITAL_THROW),
    LEVEL_UP_MOVE(26, MOVE_SUBMISSION),
    LEVEL_UP_MOVE(29, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(33, MOVE_STORM_THROW),
    LEVEL_UP_MOVE(36, MOVE_THRASH),
    LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(43, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(47, MOVE_GUILLOTINE),
    LEVEL_UP_END
};
#endif //P_FAMILY_PINSIR

#if P_FAMILY_TAUROS
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_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(48, MOVE_SWAGGER),
    LEVEL_UP_MOVE(55, MOVE_THRASH),
    LEVEL_UP_MOVE(63, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};

#if P_PALDEAN_FORMS
static const struct LevelUpMove sTaurosPaldeanCombatBreedLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_WORK_UP),
    LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(15, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(20, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(25, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(35, MOVE_RAGING_BULL),
    LEVEL_UP_MOVE(40, MOVE_REST),
    LEVEL_UP_MOVE(45, MOVE_SWAGGER),
    LEVEL_UP_MOVE(50, MOVE_THRASH),
    LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};

static const struct LevelUpMove sTaurosPaldeanBlazeBreedLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_WORK_UP),
    LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(20, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(25, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(35, MOVE_RAGING_BULL),
    LEVEL_UP_MOVE(40, MOVE_REST),
    LEVEL_UP_MOVE(45, MOVE_SWAGGER),
    LEVEL_UP_MOVE(50, MOVE_THRASH),
    LEVEL_UP_MOVE(55, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};

static const struct LevelUpMove sTaurosPaldeanAquaBreedLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_WORK_UP),
    LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(15, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(20, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(25, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(35, MOVE_RAGING_BULL),
    LEVEL_UP_MOVE(40, MOVE_REST),
    LEVEL_UP_MOVE(45, MOVE_SWAGGER),
    LEVEL_UP_MOVE(50, MOVE_THRASH),
    LEVEL_UP_MOVE(55, MOVE_WAVE_CRASH),
    LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};
#endif //P_PALDEAN_FORMS
#endif //P_FAMILY_TAUROS

#if P_FAMILY_MAGIKARP
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( 1, MOVE_THRASH),
    LEVEL_UP_MOVE(20, MOVE_BITE),
    LEVEL_UP_MOVE(23, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE(26, MOVE_LEER),
    LEVEL_UP_MOVE(29, MOVE_TWISTER),
    LEVEL_UP_MOVE(32, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(38, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(41, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(44, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(47, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_MAGIKARP

#if P_FAMILY_LAPRAS
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(49, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(55, MOVE_SHEER_COLD),
    LEVEL_UP_END
};
#endif //P_FAMILY_LAPRAS

#if P_FAMILY_DITTO
static const struct LevelUpMove sDittoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TRANSFORM),
    LEVEL_UP_END
};
#endif //P_FAMILY_DITTO

#if P_FAMILY_EEVEE
static const struct LevelUpMove sEeveeLevelUpLearnset[] = {
    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_GROWL),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_BITE),
    LEVEL_UP_MOVE(21, MOVE_COVET),
    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( 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_WATER_GUN),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(21, 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( 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_THUNDER_SHOCK),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(21, 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( 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_EMBER),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_BITE),
    LEVEL_UP_MOVE(21, 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_FIRE_BLAST),
    LEVEL_UP_END
};

#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sEspeonLevelUpLearnset[] = {
    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_CONFUSION),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_SWIFT),
    LEVEL_UP_MOVE(21, 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( 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_PURSUIT),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(21, 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
};
#endif //P_GEN_2_CROSS_EVOS

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sLeafeonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_GRASS_WHISTLE),
    LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(25, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(29, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(33, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(37, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(41, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(45, MOVE_LEAF_BLADE),
    LEVEL_UP_END
};

static const struct LevelUpMove sGlaceonLevelUpLearnset[] = {
    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_ICY_WIND),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_BITE),
    LEVEL_UP_MOVE(21, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(25, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(29, MOVE_BARRIER),
    LEVEL_UP_MOVE(33, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE(37, MOVE_HAIL),
    LEVEL_UP_MOVE(41, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(45, MOVE_BLIZZARD),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS

#if P_GEN_6_CROSS_EVOS
static const struct LevelUpMove sSylveonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_SWIFT),
    LEVEL_UP_MOVE(20, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP),
    LEVEL_UP_MOVE(29, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE(33, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(37, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(41, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(45, MOVE_PSYCH_UP),
    LEVEL_UP_END
};
#endif //P_GEN_6_CROSS_EVOS
#endif //P_FAMILY_EEVEE

#if P_FAMILY_PORYGON
static const struct LevelUpMove sPorygonLevelUpLearnset[] = {
    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(51, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE(56, MOVE_MAGIC_COAT),
    LEVEL_UP_MOVE(62, MOVE_ZAP_CANNON),
    LEVEL_UP_END
};

#if P_GEN_2_CROSS_EVOS
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_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(51, 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
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sPorygonZLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TRICK_ROOM),
    LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_CONVERSION),
    LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT),
    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_EMBARGO),
    LEVEL_UP_MOVE(40, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(45, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(51, 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
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_GEN_2_CROSS_EVOS
#endif //P_FAMILY_PORYGON

#if P_FAMILY_OMANYTE
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(52, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sOmastarLevelUpLearnset[] = {
    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(40, MOVE_SPIKE_CANNON),
    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
};
#endif //P_FAMILY_OMANYTE

#if P_FAMILY_KABUTO
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(51, MOVE_WRING_OUT),
    LEVEL_UP_END
};

static const struct LevelUpMove sKabutopsLevelUpLearnset[] = {
    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(40, MOVE_SLASH),
    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
};
#endif //P_FAMILY_KABUTO

#if P_FAMILY_AERODACTYL
static const struct LevelUpMove sAerodactylLevelUpLearnset[] = {
    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
};
#endif //P_FAMILY_AERODACTYL

#if P_FAMILY_SNORLAX
#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sMunchlaxLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_METRONOME),
    LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
    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_RECYCLE),
    LEVEL_UP_MOVE(20, MOVE_SCREECH),
    LEVEL_UP_MOVE(25, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(28, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(33, MOVE_SWALLOW),
    LEVEL_UP_MOVE(36, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(41, MOVE_FLING),
    LEVEL_UP_MOVE(44, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(49, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(52, MOVE_SNATCH),
    LEVEL_UP_MOVE(57, MOVE_LAST_RESORT),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS

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_BELLY_DRUM),
    LEVEL_UP_MOVE(20, MOVE_YAWN),
    LEVEL_UP_MOVE(25, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(28, MOVE_REST),
    LEVEL_UP_MOVE(28, MOVE_SNORE),
    LEVEL_UP_MOVE(33, MOVE_SLEEP_TALK),
    LEVEL_UP_MOVE(36, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(41, MOVE_BLOCK),
    LEVEL_UP_MOVE(44, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(49, MOVE_CRUNCH),
    LEVEL_UP_MOVE(52, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(57, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_SNORLAX

#if P_FAMILY_ARTICUNO
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_ICE_BEAM),
    LEVEL_UP_MOVE(50, MOVE_REFLECT),
    LEVEL_UP_MOVE(57, MOVE_ROOST),
    LEVEL_UP_MOVE(64, MOVE_TAILWIND),
    LEVEL_UP_MOVE(71, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(78, MOVE_SHEER_COLD),
    LEVEL_UP_MOVE(85, MOVE_HAIL),
    LEVEL_UP_MOVE(92, MOVE_HURRICANE),
    LEVEL_UP_END
};

#if P_GALARIAN_FORMS
static const struct LevelUpMove sArticunoGalarianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE( 5, MOVE_CONFUSION),
    LEVEL_UP_MOVE(10, MOVE_REFLECT),
    LEVEL_UP_MOVE(15, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(20, MOVE_AGILITY),
    LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(30, MOVE_TAILWIND),
    LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(40, MOVE_RECOVER),
    LEVEL_UP_MOVE(45, MOVE_FREEZING_GLARE),
    LEVEL_UP_MOVE(50, MOVE_DREAM_EATER),
    LEVEL_UP_MOVE(55, MOVE_HURRICANE),
    LEVEL_UP_MOVE(60, MOVE_MIND_READER),
    LEVEL_UP_MOVE(65, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(70, MOVE_TRICK_ROOM),
    LEVEL_UP_END
};
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_ARTICUNO

#if P_FAMILY_ZAPDOS
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_ROOST),
    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_RAIN_DANCE),
    LEVEL_UP_MOVE(92, MOVE_ZAP_CANNON),
    LEVEL_UP_END
};

#if P_GALARIAN_FORMS
static const struct LevelUpMove sZapdosGalarianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(10, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(15, MOVE_PLUCK),
    LEVEL_UP_MOVE(20, MOVE_AGILITY),
    LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(30, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(35, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(40, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(45, MOVE_THUNDEROUS_KICK),
    LEVEL_UP_MOVE(50, MOVE_BULK_UP),
    LEVEL_UP_MOVE(55, MOVE_COUNTER),
    LEVEL_UP_MOVE(60, MOVE_DETECT),
    LEVEL_UP_MOVE(65, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(70, MOVE_REVERSAL),
    LEVEL_UP_END
};
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_ZAPDOS

#if P_FAMILY_MOLTRES
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_ROOST),
    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_SUNNY_DAY),
    LEVEL_UP_MOVE(92, MOVE_HURRICANE),
    LEVEL_UP_END
};

#if P_GALARIAN_FORMS
static const struct LevelUpMove sMoltresGalarianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_PAYBACK),
    LEVEL_UP_MOVE(10, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(15, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_AGILITY),
    LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(30, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(35, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(40, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE(45, MOVE_FIERY_WRATH),
    LEVEL_UP_MOVE(50, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(55, MOVE_HURRICANE),
    LEVEL_UP_MOVE(60, MOVE_ENDURE),
    LEVEL_UP_MOVE(65, MOVE_MEMENTO),
    LEVEL_UP_MOVE(70, MOVE_SKY_ATTACK),
    LEVEL_UP_END
};
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_MOLTRES

#if P_FAMILY_DRATINI
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( 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(55, MOVE_WING_ATTACK),
    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
};
#endif //P_FAMILY_DRATINI

#if P_FAMILY_MEWTWO
static const struct LevelUpMove sMewtwoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 1, MOVE_BARRIER),
    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_MIST),
    LEVEL_UP_MOVE(43, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(50, MOVE_AMNESIA),
    LEVEL_UP_MOVE(57, MOVE_POWER_SWAP),
    LEVEL_UP_MOVE(57, MOVE_GUARD_SWAP),
    LEVEL_UP_MOVE(64, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(71, MOVE_ME_FIRST),
    LEVEL_UP_MOVE(79, MOVE_RECOVER),
    LEVEL_UP_MOVE(86, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(93, MOVE_AURA_SPHERE),
    LEVEL_UP_MOVE(100, MOVE_PSYSTRIKE),
    LEVEL_UP_END
};
#endif //P_FAMILY_MEWTWO

#if P_FAMILY_MEW
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_MOVE(100, MOVE_AURA_SPHERE),
    LEVEL_UP_END
};
#endif //P_FAMILY_MEW

#if P_FAMILY_CHIKORITA
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( 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_PETAL_DANCE),
    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_END
};
#endif //P_FAMILY_CHIKORITA

#if P_FAMILY_CYNDAQUIL
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_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_ERUPTION),
    LEVEL_UP_END
};

static const struct LevelUpMove sTyphlosionLevelUpLearnset[] = {
    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_ERUPTION),
    LEVEL_UP_END
};

#if P_HISUIAN_FORMS
static const struct LevelUpMove sTyphlosionHisuianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_HEX),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 6, MOVE_EMBER),
    LEVEL_UP_MOVE(11, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(18, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(25, MOVE_SWIFT),
    LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(40, MOVE_INFERNAL_PARADE),
    LEVEL_UP_MOVE(43, MOVE_OVERHEAT),
    LEVEL_UP_MOVE(43, MOVE_SHADOW_BALL),
    LEVEL_UP_END
};
#endif //P_HISUIAN_FORMS
#endif //P_FAMILY_CYNDAQUIL

#if P_FAMILY_TOTODILE
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_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(30, MOVE_AGILITY),
    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
};
#endif //P_FAMILY_TOTODILE

#if P_FAMILY_SENTRET
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( 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
};
#endif //P_FAMILY_SENTRET

#if P_FAMILY_HOOTHOOT
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( 5, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 9, MOVE_PECK),
    LEVEL_UP_MOVE(13, MOVE_UPROAR),
    LEVEL_UP_MOVE(17, MOVE_REFLECT),
    LEVEL_UP_MOVE(21, MOVE_CONFUSION),
    LEVEL_UP_MOVE(25, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(33, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(41, MOVE_SYNCHRONOISE),
    LEVEL_UP_MOVE(45, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(49, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE(53, MOVE_ROOST),
    LEVEL_UP_MOVE(57, MOVE_DREAM_EATER),
    LEVEL_UP_END
};

static const struct LevelUpMove sNoctowlLevelUpLearnset[] = {
    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( 5, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 9, MOVE_PECK),
    LEVEL_UP_MOVE(13, MOVE_UPROAR),
    LEVEL_UP_MOVE(17, MOVE_REFLECT),
    LEVEL_UP_MOVE(22, MOVE_CONFUSION),
    LEVEL_UP_MOVE(27, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(32, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(37, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(42, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(47, MOVE_SYNCHRONOISE),
    LEVEL_UP_MOVE(52, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(57, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE(62, MOVE_ROOST),
    LEVEL_UP_MOVE(67, MOVE_DREAM_EATER),
    LEVEL_UP_END
};
#endif //P_FAMILY_HOOTHOOT

#if P_FAMILY_LEDYBA
static const struct LevelUpMove sLedybaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 9, MOVE_COMET_PUNCH),
    LEVEL_UP_MOVE(14, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(14, MOVE_REFLECT),
    LEVEL_UP_MOVE(14, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(17, MOVE_MACH_PUNCH),
    LEVEL_UP_MOVE(22, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(25, MOVE_SILVER_WIND),
    LEVEL_UP_MOVE(30, MOVE_AGILITY),
    LEVEL_UP_MOVE(33, MOVE_SWIFT),
    LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(41, MOVE_BUG_BUZZ),
    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_COMET_PUNCH),
    LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 9, MOVE_COMET_PUNCH),
    LEVEL_UP_MOVE(14, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(14, MOVE_REFLECT),
    LEVEL_UP_MOVE(14, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(17, MOVE_MACH_PUNCH),
    LEVEL_UP_MOVE(24, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(29, MOVE_SILVER_WIND),
    LEVEL_UP_MOVE(36, MOVE_AGILITY),
    LEVEL_UP_MOVE(41, MOVE_SWIFT),
    LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(53, MOVE_BUG_BUZZ),
    LEVEL_UP_END
};
#endif //P_FAMILY_LEDYBA

#if P_FAMILY_SPINARAK
static const struct LevelUpMove sSpinarakLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 8, MOVE_CONSTRICT),
    LEVEL_UP_MOVE(12, MOVE_LEECH_LIFE),
    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_END
};

static const struct LevelUpMove sAriadosLevelUpLearnset[] = {
    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_SCARY_FACE),
    LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
    LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 8, MOVE_CONSTRICT),
    LEVEL_UP_MOVE(12, MOVE_LEECH_LIFE),
    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_END
};
#endif //P_FAMILY_SPINARAK

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

static const struct LevelUpMove sLanturnLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 6, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 9, MOVE_FLAIL),
    LEVEL_UP_MOVE(12, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(20, MOVE_SPARK),
    LEVEL_UP_MOVE(23, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(27, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(27, MOVE_SWALLOW),
    LEVEL_UP_MOVE(27, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(30, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(35, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(40, MOVE_SIGNAL_BEAM),
    LEVEL_UP_MOVE(47, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(52, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(57, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(64, MOVE_CHARGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_CHINCHOU

#if P_FAMILY_TOGEPI
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(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
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sTogekissLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_EXTREME_SPEED),
    LEVEL_UP_MOVE( 1, MOVE_AURA_SPHERE),
    LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_TOGEPI

#if P_FAMILY_NATU
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_MIRACLE_EYE),
    LEVEL_UP_MOVE(20, MOVE_ME_FIRST),
    LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(28, MOVE_WISH),
    LEVEL_UP_MOVE(33, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(39, MOVE_STORED_POWER),
    LEVEL_UP_MOVE(44, MOVE_OMINOUS_WIND),
    LEVEL_UP_MOVE(47, MOVE_POWER_SWAP),
    LEVEL_UP_MOVE(47, MOVE_GUARD_SWAP),
    LEVEL_UP_MOVE(50, MOVE_PSYCHIC),
    LEVEL_UP_END
};

static const struct LevelUpMove sXatuLevelUpLearnset[] = {
    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_MIRACLE_EYE),
    LEVEL_UP_MOVE(20, MOVE_ME_FIRST),
    LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(27, MOVE_TAILWIND),
    LEVEL_UP_MOVE(30, MOVE_WISH),
    LEVEL_UP_MOVE(37, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE(42, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(47, MOVE_STORED_POWER),
    LEVEL_UP_MOVE(54, MOVE_OMINOUS_WIND),
    LEVEL_UP_MOVE(54, MOVE_POWER_SWAP),
    LEVEL_UP_MOVE(59, MOVE_GUARD_SWAP),
    LEVEL_UP_MOVE(66, MOVE_PSYCHIC),
    LEVEL_UP_END
};
#endif //P_FAMILY_NATU

#if P_FAMILY_MAREEP
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( 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(30, MOVE_THUNDER_PUNCH),
    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_END
};
#endif //P_FAMILY_MAREEP

#if P_FAMILY_MARILL
#if P_GEN_3_CROSS_EVOS
static const struct LevelUpMove sAzurillLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 2, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 7, MOVE_WATER_GUN),
    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
};
#endif //P_GEN_3_CROSS_EVOS

static const struct LevelUpMove sMarillLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 2, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 7, MOVE_WATER_GUN),
    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_DOUBLE_EDGE),
    LEVEL_UP_MOVE(28, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(31, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(37, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sAzumarillLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    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_WATER_GUN),
    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_DOUBLE_EDGE),
    LEVEL_UP_MOVE(31, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(35, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(42, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_MARILL

#if P_FAMILY_SUDOWOODO
#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sBonslyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    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_SLAM),
    LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(22, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(26, MOVE_BLOCK),
    LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(33, MOVE_MIMIC),
    LEVEL_UP_MOVE(36, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS

static const struct LevelUpMove sSudowoodoLevelUpLearnset[] = {
    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(15, MOVE_SLAM),
    LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(22, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(26, MOVE_BLOCK),
    LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(33, MOVE_COUNTER),
    LEVEL_UP_MOVE(36, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(43, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(47, MOVE_HAMMER_ARM),
    LEVEL_UP_END
};
#endif //P_FAMILY_SUDOWOODO

#if P_FAMILY_HOPPIP
static const struct LevelUpMove sHoppipLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 4, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE(10, MOVE_TACKLE),
    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_SYNTHESIS),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE(10, MOVE_TACKLE),
    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_SYNTHESIS),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE(10, MOVE_TACKLE),
    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
};
#endif //P_FAMILY_HOPPIP

#if P_FAMILY_AIPOM
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
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sAmbipomLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    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
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_AIPOM

#if P_FAMILY_SUNKERN
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_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_END
};
#endif //P_FAMILY_SUNKERN

#if P_FAMILY_YANMA
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
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sYanmegaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
    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_FEINT),
    LEVEL_UP_MOVE(43, MOVE_SLASH),
    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
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_YANMA

#if P_FAMILY_WOOPER
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
};

#if P_PALDEAN_FORMS
static const struct LevelUpMove sWooperPaldeanLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE( 4, MOVE_TACKLE),
    LEVEL_UP_MOVE( 8, MOVE_POISON_TAIL),
    LEVEL_UP_MOVE(12, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(16, MOVE_SLAM),
    LEVEL_UP_MOVE(21, MOVE_YAWN),
    LEVEL_UP_MOVE(24, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(28, MOVE_SLUDGE_WAVE),
    LEVEL_UP_MOVE(32, MOVE_AMNESIA),
    LEVEL_UP_MOVE(36, MOVE_TOXIC),
    LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE),
    LEVEL_UP_END
};

static const struct LevelUpMove sClodsireLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_AMNESIA),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 4, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE( 8, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(12, MOVE_POISON_TAIL),
    LEVEL_UP_MOVE(16, MOVE_SLAM),
    LEVEL_UP_MOVE(21, MOVE_YAWN),
    LEVEL_UP_MOVE(24, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(30, MOVE_SLUDGE_WAVE),
    LEVEL_UP_MOVE(36, MOVE_MEGAHORN),
    LEVEL_UP_MOVE(40, MOVE_TOXIC),
    LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE),
    LEVEL_UP_END
};
#endif //P_PALDEAN_FORMS
#endif //P_FAMILY_WOOPER

#if P_FAMILY_MURKROW
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(51, MOVE_TAILWIND),
    LEVEL_UP_MOVE(55, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(61, MOVE_TORMENT),
    LEVEL_UP_MOVE(65, MOVE_QUASH),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sHonchkrowLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_PURSUIT),
    LEVEL_UP_MOVE( 1, MOVE_HAZE),
    LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(25, MOVE_SWAGGER),
    LEVEL_UP_MOVE(35, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(45, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(55, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(65, MOVE_QUASH),
    LEVEL_UP_MOVE(75, MOVE_DARK_PULSE),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_MURKROW

#if P_FAMILY_MISDREAVUS
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
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sMismagiusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
    LEVEL_UP_MOVE( 1, MOVE_SPITE),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_MISDREAVUS

#if P_FAMILY_UNOWN
static const struct LevelUpMove sUnownLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HIDDEN_POWER),
    LEVEL_UP_END
};
#endif //P_FAMILY_UNOWN

#if P_FAMILY_WOBBUFFET
#if P_GEN_3_CROSS_EVOS
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
};
#endif //P_GEN_3_CROSS_EVOS

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
};
#endif //P_FAMILY_WOBBUFFET

#if P_FAMILY_GIRAFARIG
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_STOMP),
    LEVEL_UP_MOVE(14, MOVE_AGILITY),
    LEVEL_UP_MOVE(19, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(23, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(28, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(32, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(37, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(41, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(46, MOVE_CRUNCH),
    LEVEL_UP_END
};

#if P_GEN_9_CROSS_EVOS
static const struct LevelUpMove sFarigirafLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP),
    LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP),
    LEVEL_UP_MOVE( 5, MOVE_CONFUSION),
    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_TWIN_BEAM),
    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
};
#endif //P_GEN_9_CROSS_EVOS
#endif //P_FAMILY_GIRAFARIG

#if P_FAMILY_PINECO
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( 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(31, MOVE_MIRROR_SHOT),
    LEVEL_UP_MOVE(32, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(36, MOVE_PAYBACK),
    LEVEL_UP_MOVE(42, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(46, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(50, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(60, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(64, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(70, MOVE_HEAVY_SLAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_PINECO

#if P_FAMILY_DUNSPARCE
static const struct LevelUpMove sDunsparceLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_RAGE),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 4, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 7, MOVE_SPITE),
    LEVEL_UP_MOVE(10, MOVE_PURSUIT),
    LEVEL_UP_MOVE(13, MOVE_SCREECH),
    LEVEL_UP_MOVE(16, MOVE_YAWN),
    LEVEL_UP_MOVE(19, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(25, MOVE_ROOST),
    LEVEL_UP_MOVE(28, MOVE_GLARE),
    LEVEL_UP_MOVE(31, MOVE_DIG),
    LEVEL_UP_MOVE(34, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(37, MOVE_COIL),
    LEVEL_UP_MOVE(40, MOVE_ENDURE),
    LEVEL_UP_MOVE(43, MOVE_DRILL_RUN),
    LEVEL_UP_MOVE(46, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(49, MOVE_FLAIL),
    LEVEL_UP_END
};

#if P_GEN_9_CROSS_EVOS
static const struct LevelUpMove sDudunsparceLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_FLAIL),
    LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 8, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(12, MOVE_GLARE),
    LEVEL_UP_MOVE(16, MOVE_SCREECH),
    LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(24, MOVE_DRILL_RUN),
    LEVEL_UP_MOVE(28, MOVE_YAWN),
    LEVEL_UP_MOVE(32, MOVE_HYPER_DRILL),
    LEVEL_UP_MOVE(36, MOVE_ROOST),
    LEVEL_UP_MOVE(40, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(44, MOVE_COIL),
    LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(52, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(56, MOVE_HURRICANE),
    LEVEL_UP_MOVE(62, MOVE_BOOMBURST),
    LEVEL_UP_END
};
#endif //P_GEN_9_CROSS_EVOS
#endif //P_FAMILY_DUNSPARCE

#if P_FAMILY_GLIGAR
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
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sGliscorLevelUpLearnset[] = {
    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_POISON_JAB),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF),
    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_NIGHT_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
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_GLIGAR

#if P_FAMILY_SNUBBULL
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_TAKE_DOWN),
    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_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_TAKE_DOWN),
    LEVEL_UP_MOVE(51, MOVE_PAYBACK),
    LEVEL_UP_MOVE(59, MOVE_CRUNCH),
    LEVEL_UP_MOVE(67, MOVE_OUTRAGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_SNUBBULL

#if P_FAMILY_QWILFISH
static const struct LevelUpMove sQwilfishLevelUpLearnset[] = {
    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_WATER_GUN),
    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_END
};

#if P_HISUIAN_FORMS
static const struct LevelUpMove sQwilfishHisuianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 5, MOVE_SPIKES),
    LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(15, MOVE_BARB_BARRAGE),
    LEVEL_UP_MOVE(21, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(26, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(29, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(57, MOVE_SELF_DESTRUCT),
    LEVEL_UP_END
};

static const struct LevelUpMove sOverqwilLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 5, MOVE_SPIKES),
    LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(15, MOVE_BARB_BARRAGE),
    LEVEL_UP_MOVE(21, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(26, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(29, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(57, MOVE_SELF_DESTRUCT),
    LEVEL_UP_END
};
#endif //P_HISUIAN_FORMS
#endif //P_FAMILY_QWILFISH

#if P_FAMILY_SHUCKLE
static const struct LevelUpMove sShuckleLevelUpLearnset[] = {
    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_END
};
#endif //P_FAMILY_SHUCKLE

#if P_FAMILY_HERACROSS
static const struct LevelUpMove sHeracrossLevelUpLearnset[] = {
    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_FURY_ATTACK),
    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_BRICK_BREAK),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(34, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(37, MOVE_FEINT),
    LEVEL_UP_MOVE(43, MOVE_REVERSAL),
    LEVEL_UP_MOVE(46, MOVE_MEGAHORN),
    LEVEL_UP_END
};
#endif //P_FAMILY_HERACROSS

#if P_FAMILY_SNEASEL
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
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sWeavileLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EMBARGO),
    LEVEL_UP_MOVE( 1, MOVE_REVENGE),
    LEVEL_UP_MOVE( 1, MOVE_ASSURANCE),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    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_NASTY_PLOT),
    LEVEL_UP_MOVE(22, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(25, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(28, MOVE_FLING),
    LEVEL_UP_MOVE(32, MOVE_SCREECH),
    LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(40, MOVE_SNATCH),
    LEVEL_UP_MOVE(44, MOVE_PUNISHMENT),
    LEVEL_UP_MOVE(47, MOVE_DARK_PULSE),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS

#if P_HISUIAN_FORMS
static const struct LevelUpMove sSneaselHisuianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(11, MOVE_SWIFT),
    LEVEL_UP_MOVE(18, MOVE_SLASH),
    LEVEL_UP_MOVE(25, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};

static const struct LevelUpMove sSneaslerLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(11, MOVE_DIRE_CLAW),
    LEVEL_UP_MOVE(11, MOVE_SWIFT),
    LEVEL_UP_MOVE(18, MOVE_SLASH),
    LEVEL_UP_MOVE(25, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};
#endif //P_HISUIAN_FORMS
#endif //P_FAMILY_SNEASEL

#if P_FAMILY_TEDDIURSA
static const struct LevelUpMove sTeddiursaLevelUpLearnset[] = {
    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(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_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(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
};

#if P_GEN_8_CROSS_EVOS
static const struct LevelUpMove sUrsalunaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 6, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(11, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(18, MOVE_SLASH),
    LEVEL_UP_MOVE(25, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(34, MOVE_HIGH_HORSEPOWER),
    LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(43, MOVE_HEADLONG_RUSH),
    LEVEL_UP_END
};

static const struct LevelUpMove sUrsalunaBloodmoonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_HEADLONG_RUSH),
    LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(13, MOVE_PAYBACK),
    LEVEL_UP_MOVE(17, MOVE_HARDEN),
    LEVEL_UP_MOVE(22, MOVE_SLASH),
    LEVEL_UP_MOVE(25, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE(35, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(41, MOVE_REST),
    LEVEL_UP_MOVE(41, MOVE_SNORE),
    LEVEL_UP_MOVE(48, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(56, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(64, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(70, MOVE_BLOOD_MOON),
    LEVEL_UP_END
};
#endif //P_GEN_8_CROSS_EVOS
#endif //P_FAMILY_TEDDIURSA

#if P_FAMILY_SLUGMA
static const struct LevelUpMove sSlugmaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_YAWN),
    LEVEL_UP_MOVE( 1, MOVE_SMOG),
    LEVEL_UP_MOVE( 5, MOVE_EMBER),
    LEVEL_UP_MOVE(10, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(14, MOVE_HARDEN),
    LEVEL_UP_MOVE(19, MOVE_RECOVER),
    LEVEL_UP_MOVE(23, MOVE_FLAME_BURST),
    LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(32, MOVE_AMNESIA),
    LEVEL_UP_MOVE(37, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(41, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(46, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(50, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(55, MOVE_EARTH_POWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sMagcargoLevelUpLearnset[] = {
    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( 5, MOVE_EMBER),
    LEVEL_UP_MOVE(10, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(14, MOVE_HARDEN),
    LEVEL_UP_MOVE(19, MOVE_RECOVER),
    LEVEL_UP_MOVE(23, MOVE_FLAME_BURST),
    LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(32, MOVE_AMNESIA),
    LEVEL_UP_MOVE(37, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(38, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE(44, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(52, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(59, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(67, MOVE_EARTH_POWER),
    LEVEL_UP_END
};
#endif //P_FAMILY_SLUGMA

#if P_FAMILY_SWINUB
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( 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(33, MOVE_FURY_ATTACK),
    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
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sMamoswineLevelUpLearnset[] = {
    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_HAIL),
    LEVEL_UP_MOVE(24, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(33, MOVE_DOUBLE_HIT),
    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_SCARY_FACE),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_SWINUB

#if P_FAMILY_CORSOLA
static const struct LevelUpMove sCorsolaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_HARDEN),
    LEVEL_UP_MOVE( 8, MOVE_BUBBLE),
    LEVEL_UP_MOVE(10, MOVE_RECOVER),
    LEVEL_UP_MOVE(13, MOVE_REFRESH),
    LEVEL_UP_MOVE(17, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(23, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(27, MOVE_SPIKE_CANNON),
    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(52, MOVE_FLAIL),
    LEVEL_UP_END
};

#if P_GALARIAN_FORMS
static const struct LevelUpMove sCorsolaGalarianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 5, MOVE_ASTONISH),
    LEVEL_UP_MOVE(10, MOVE_DISABLE),
    LEVEL_UP_MOVE(15, MOVE_SPITE),
    LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(25, MOVE_HEX),
    LEVEL_UP_MOVE(30, MOVE_CURSE),
    LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP),
    LEVEL_UP_MOVE(40, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(45, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(50, MOVE_GRUDGE),
    LEVEL_UP_MOVE(55, MOVE_MIRROR_COAT),
    LEVEL_UP_END
};

static const struct LevelUpMove sCursolaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE(15, MOVE_SPITE),
    LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(25, MOVE_HEX),
    LEVEL_UP_MOVE(30, MOVE_CURSE),
    LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP),
    LEVEL_UP_MOVE(40, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(45, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(50, MOVE_GRUDGE),
    LEVEL_UP_MOVE(55, MOVE_MIRROR_COAT),
    LEVEL_UP_END
};
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_CORSOLA

#if P_FAMILY_REMORAID
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( 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(25, MOVE_OCTAZOOKA),
    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
};
#endif //P_FAMILY_REMORAID

#if P_FAMILY_DELIBIRD
static const struct LevelUpMove sDelibirdLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PRESENT),
    LEVEL_UP_END
};
#endif //P_FAMILY_DELIBIRD

#if P_FAMILY_MANTINE
#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sMantykeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    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
};
#endif //P_GEN_4_CROSS_EVOS

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_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
};
#endif //P_FAMILY_MANTINE

#if P_FAMILY_SKARMORY
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_SWIFT),
    LEVEL_UP_MOVE(12, MOVE_AGILITY),
    LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_FEINT),
    LEVEL_UP_MOVE(23, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(28, MOVE_SPIKES),
    LEVEL_UP_MOVE(31, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(34, MOVE_STEEL_WING),
    LEVEL_UP_MOVE(39, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(42, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(45, MOVE_SLASH),
    LEVEL_UP_MOVE(50, MOVE_NIGHT_SLASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_SKARMORY

#if P_FAMILY_HOUNDOUR
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_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
};
#endif //P_FAMILY_HOUNDOUR

#if P_FAMILY_PHANPY
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_TAKE_DOWN),
    LEVEL_UP_MOVE(15, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(19, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(24, MOVE_SLAM),
    LEVEL_UP_MOVE(28, MOVE_ENDURE),
    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( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_BULLDOZE),
    LEVEL_UP_MOVE( 6, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(10, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(15, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(19, MOVE_MAGNITUDE),
    LEVEL_UP_MOVE(24, MOVE_SLAM),
    LEVEL_UP_MOVE(25, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(31, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(39, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(54, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_PHANPY

#if P_FAMILY_STANTLER
static const struct LevelUpMove sStantlerLevelUpLearnset[] = {
    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(53, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(55, MOVE_ME_FIRST),
    LEVEL_UP_END
};

#if P_GEN_8_CROSS_EVOS
static const struct LevelUpMove sWyrdeerLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 9, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(15, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(21, MOVE_PSYSHIELD_BASH),
    LEVEL_UP_MOVE(29, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};
#endif //P_GEN_8_CROSS_EVOS
#endif //P_FAMILY_STANTLER

#if P_FAMILY_SMEARGLE
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
};
#endif //P_FAMILY_SMEARGLE

#if P_FAMILY_MILTANK
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(55, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_END
};
#endif //P_FAMILY_MILTANK

#if P_FAMILY_RAIKOU
static const struct LevelUpMove sRaikouLevelUpLearnset[] = {
    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
};
#endif //P_FAMILY_RAIKOU

#if P_FAMILY_ENTEI
static const struct LevelUpMove sEnteiLevelUpLearnset[] = {
    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
};
#endif //P_FAMILY_ENTEI

#if P_FAMILY_SUICUNE
static const struct LevelUpMove sSuicuneLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    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
};
#endif //P_FAMILY_SUICUNE

#if P_FAMILY_LARVITAR
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
};
#endif //P_FAMILY_LARVITAR

#if P_FAMILY_LUGIA
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
};
#endif //P_FAMILY_LUGIA

#if P_FAMILY_HO_OH
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
};
#endif //P_FAMILY_HO_OH

#if P_FAMILY_CELEBI
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
};
#endif //P_FAMILY_CELEBI

#if P_FAMILY_TREECKO
static const struct LevelUpMove sTreeckoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 6, MOVE_ABSORB),
    LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_PURSUIT),
    LEVEL_UP_MOVE(21, MOVE_SCREECH),
    LEVEL_UP_MOVE(26, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(31, MOVE_AGILITY),
    LEVEL_UP_MOVE(36, MOVE_SLAM),
    LEVEL_UP_MOVE(41, MOVE_DETECT),
    LEVEL_UP_MOVE(46, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(51, MOVE_ENERGY_BALL),
    LEVEL_UP_END
};

static const struct LevelUpMove sGrovyleLevelUpLearnset[] = {
    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( 6, MOVE_ABSORB),
    LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(17, MOVE_PURSUIT),
    LEVEL_UP_MOVE(23, MOVE_SCREECH),
    LEVEL_UP_MOVE(29, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(35, MOVE_AGILITY),
    LEVEL_UP_MOVE(41, MOVE_SLAM),
    LEVEL_UP_MOVE(47, MOVE_DETECT),
    LEVEL_UP_MOVE(53, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(59, MOVE_LEAF_STORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sSceptileLevelUpLearnset[] = {
    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( 6, MOVE_ABSORB),
    LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(17, MOVE_PURSUIT),
    LEVEL_UP_MOVE(23, MOVE_SCREECH),
    LEVEL_UP_MOVE(29, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(35, MOVE_AGILITY),
    LEVEL_UP_MOVE(43, MOVE_SLAM),
    LEVEL_UP_MOVE(51, MOVE_DETECT),
    LEVEL_UP_MOVE(59, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(67, MOVE_LEAF_STORM),
    LEVEL_UP_END
};
#endif //P_FAMILY_TREECKO

#if P_FAMILY_TORCHIC
static const struct LevelUpMove sTorchicLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(10, MOVE_EMBER),
    LEVEL_UP_MOVE(16, MOVE_PECK),
    LEVEL_UP_MOVE(19, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(28, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(34, MOVE_SLASH),
    LEVEL_UP_MOVE(37, MOVE_MIRROR_MOVE),
    LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sCombuskenLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(13, MOVE_EMBER),
    LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(17, MOVE_PECK),
    LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(28, MOVE_BULK_UP),
    LEVEL_UP_MOVE(32, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(39, MOVE_SLASH),
    LEVEL_UP_MOVE(43, MOVE_MIRROR_MOVE),
    LEVEL_UP_MOVE(50, MOVE_SKY_UPPERCUT),
    LEVEL_UP_MOVE(54, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sBlazikenLevelUpLearnset[] = {
    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_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(13, MOVE_EMBER),
    LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(17, MOVE_PECK),
    LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(28, MOVE_BULK_UP),
    LEVEL_UP_MOVE(32, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(36, MOVE_BLAZE_KICK),
    LEVEL_UP_MOVE(42, MOVE_SLASH),
    LEVEL_UP_MOVE(49, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(59, MOVE_SKY_UPPERCUT),
    LEVEL_UP_MOVE(66, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};
#endif //P_FAMILY_TORCHIC

#if P_FAMILY_MUDKIP
static const struct LevelUpMove sMudkipLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(15, MOVE_BIDE),
    LEVEL_UP_MOVE(19, MOVE_FORESIGHT),
    LEVEL_UP_MOVE(24, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(33, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(37, MOVE_PROTECT),
    LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(46, MOVE_ENDEAVOR),
    LEVEL_UP_END
};

static const struct LevelUpMove sMarshtompLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(15, MOVE_BIDE),
    LEVEL_UP_MOVE(16, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(20, MOVE_FORESIGHT),
    LEVEL_UP_MOVE(25, MOVE_MUD_BOMB),
    LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(37, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(42, MOVE_PROTECT),
    LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(53, MOVE_ENDEAVOR),
    LEVEL_UP_END
};

static const struct LevelUpMove sSwampertLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(15, MOVE_BIDE),
    LEVEL_UP_MOVE(16, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(20, MOVE_FORESIGHT),
    LEVEL_UP_MOVE(25, MOVE_MUD_BOMB),
    LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(39, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(46, MOVE_PROTECT),
    LEVEL_UP_MOVE(52, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(61, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(69, MOVE_HAMMER_ARM),
    LEVEL_UP_END
};
#endif //P_FAMILY_MUDKIP

#if P_FAMILY_POOCHYENA
static const struct LevelUpMove sPoochyenaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_HOWL),
    LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_BITE),
    LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(21, MOVE_ROAR),
    LEVEL_UP_MOVE(25, MOVE_SWAGGER),
    LEVEL_UP_MOVE(29, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(33, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(37, MOVE_TAUNT),
    LEVEL_UP_MOVE(41, MOVE_EMBARGO),
    LEVEL_UP_MOVE(45, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(49, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(53, MOVE_CRUNCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sMightyenaLevelUpLearnset[] = {
    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( 5, MOVE_HOWL),
    LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_BITE),
    LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(22, MOVE_ROAR),
    LEVEL_UP_MOVE(27, MOVE_SWAGGER),
    LEVEL_UP_MOVE(32, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(37, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(42, MOVE_TAUNT),
    LEVEL_UP_MOVE(47, MOVE_EMBARGO),
    LEVEL_UP_MOVE(52, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(57, MOVE_THIEF),
    LEVEL_UP_MOVE(62, MOVE_SUCKER_PUNCH),
    LEVEL_UP_END
};
#endif //P_FAMILY_POOCHYENA

#if P_FAMILY_ZIGZAGOON
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( 9, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(21, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE(25, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(29, MOVE_COVET),
    LEVEL_UP_MOVE(33, MOVE_BESTOW),
    LEVEL_UP_MOVE(37, MOVE_FLAIL),
    LEVEL_UP_MOVE(41, MOVE_REST),
    LEVEL_UP_MOVE(45, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(49, MOVE_FLING),
    LEVEL_UP_END
};

static const struct LevelUpMove sLinooneLevelUpLearnset[] = {
    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_HEADBUTT),
    LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 9, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(23, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(35, MOVE_COVET),
    LEVEL_UP_MOVE(41, MOVE_BESTOW),
    LEVEL_UP_MOVE(47, MOVE_SLASH),
    LEVEL_UP_MOVE(53, MOVE_REST),
    LEVEL_UP_MOVE(59, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(65, MOVE_FLING),
    LEVEL_UP_END
};

#if P_GALARIAN_FORMS
static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 6, MOVE_LICK),
    LEVEL_UP_MOVE( 9, MOVE_SNARL),
    LEVEL_UP_MOVE(12, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(21, MOVE_REST),
    LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(27, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(30, MOVE_COUNTER),
    LEVEL_UP_MOVE(33, MOVE_TAUNT),
    LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sLinooneGalarianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 9, MOVE_SNARL),
    LEVEL_UP_MOVE(12, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(23, MOVE_REST),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(33, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(38, MOVE_COUNTER),
    LEVEL_UP_MOVE(43, MOVE_TAUNT),
    LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sObstagoonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_OBSTRUCT),
    LEVEL_UP_MOVE( 1, MOVE_OBSTRUCT),
    LEVEL_UP_MOVE( 1, MOVE_CROSS_CHOP),
    LEVEL_UP_MOVE( 1, MOVE_SUBMISSION),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 9, MOVE_SNARL),
    LEVEL_UP_MOVE(12, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(23, MOVE_REST),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(35, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(42, MOVE_COUNTER),
    LEVEL_UP_MOVE(49, MOVE_TAUNT),
    LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_ZIGZAGOON

#if P_FAMILY_WURMPLE
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( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_HARDEN),
    LEVEL_UP_END
};

static const struct LevelUpMove sBeautiflyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE(10, MOVE_ABSORB),
    LEVEL_UP_MOVE(13, MOVE_GUST),
    LEVEL_UP_MOVE(17, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(20, MOVE_MORNING_SUN),
    LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(27, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(31, MOVE_ATTRACT),
    LEVEL_UP_MOVE(34, MOVE_SILVER_WIND),
    LEVEL_UP_MOVE(38, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(41, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(45, MOVE_QUIVER_DANCE),
    LEVEL_UP_END
};

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

static const struct LevelUpMove sDustoxLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE(10, MOVE_CONFUSION),
    LEVEL_UP_MOVE(13, MOVE_GUST),
    LEVEL_UP_MOVE(17, MOVE_PROTECT),
    LEVEL_UP_MOVE(20, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(24, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(27, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(34, MOVE_SILVER_WIND),
    LEVEL_UP_MOVE(38, MOVE_TOXIC),
    LEVEL_UP_MOVE(41, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(45, MOVE_QUIVER_DANCE),
    LEVEL_UP_END
};
#endif //P_FAMILY_WURMPLE

#if P_FAMILY_LOTAD
static const struct LevelUpMove sLotadLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 3, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 7, MOVE_NATURE_POWER),
    LEVEL_UP_MOVE(11, MOVE_MIST),
    LEVEL_UP_MOVE(15, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(19, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(31, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(45, 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( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 7, MOVE_NATURE_POWER),
    LEVEL_UP_MOVE(11, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(19, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(31, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(37, MOVE_UPROAR),
    LEVEL_UP_MOVE(45, 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
};
#endif //P_FAMILY_LOTAD

#if P_FAMILY_SEEDOT
static const struct LevelUpMove sSeedotLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BIDE),
    LEVEL_UP_MOVE( 3, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_GROWTH),
    LEVEL_UP_MOVE(13, MOVE_NATURE_POWER),
    LEVEL_UP_MOVE(21, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(31, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(43, MOVE_EXPLOSION),
    LEVEL_UP_END
};

static const struct LevelUpMove sNuzleafLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 3, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_GROWTH),
    LEVEL_UP_MOVE(13, MOVE_NATURE_POWER),
    LEVEL_UP_MOVE(19, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(25, MOVE_TORMENT),
    LEVEL_UP_MOVE(31, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(37, MOVE_RAZOR_WIND),
    LEVEL_UP_MOVE(43, MOVE_SWAGGER),
    LEVEL_UP_MOVE(49, MOVE_EXTRASENSORY),
    LEVEL_UP_END
};

static const struct LevelUpMove sShiftryLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(19, MOVE_LEAF_TORNADO),
    LEVEL_UP_MOVE(49, MOVE_LEAF_STORM),
    LEVEL_UP_END
};
#endif //P_FAMILY_SEEDOT

#if P_FAMILY_TAILLOW
static const struct LevelUpMove sTaillowLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(26, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(34, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(43, MOVE_AGILITY),
    LEVEL_UP_MOVE(53, MOVE_AIR_SLASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sSwellowLevelUpLearnset[] = {
    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( 4, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(28, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(38, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(49, MOVE_AGILITY),
    LEVEL_UP_MOVE(61, MOVE_AIR_SLASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_TAILLOW

#if P_FAMILY_WINGULL
static const struct LevelUpMove sWingullLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(14, MOVE_MIST),
    LEVEL_UP_MOVE(17, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(22, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(26, MOVE_ROOST),
    LEVEL_UP_MOVE(30, MOVE_PURSUIT),
    LEVEL_UP_MOVE(33, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(38, MOVE_AGILITY),
    LEVEL_UP_MOVE(42, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(46, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(49, MOVE_HURRICANE),
    LEVEL_UP_END
};

static const struct LevelUpMove sPelipperLevelUpLearnset[] = {
    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( 6, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(14, MOVE_MIST),
    LEVEL_UP_MOVE(17, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(22, MOVE_PAYBACK),
    LEVEL_UP_MOVE(25, MOVE_PROTECT),
    LEVEL_UP_MOVE(28, MOVE_ROOST),
    LEVEL_UP_MOVE(34, MOVE_BRINE),
    LEVEL_UP_MOVE(39, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(39, MOVE_SWALLOW),
    LEVEL_UP_MOVE(39, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(46, MOVE_FLING),
    LEVEL_UP_MOVE(52, MOVE_TAILWIND),
    LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(63, MOVE_HURRICANE),
    LEVEL_UP_END
};
#endif //P_FAMILY_WINGULL

#if P_FAMILY_RALTS
static const struct LevelUpMove sRaltsLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 6, MOVE_CONFUSION),
    LEVEL_UP_MOVE(10, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(12, MOVE_TELEPORT),
    LEVEL_UP_MOVE(17, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(23, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(28, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(32, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(34, MOVE_IMPRISON),
    LEVEL_UP_MOVE(39, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(43, MOVE_CHARM),
    LEVEL_UP_MOVE(45, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(50, MOVE_DREAM_EATER),
    LEVEL_UP_MOVE(54, 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( 6, MOVE_CONFUSION),
    LEVEL_UP_MOVE(10, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(12, MOVE_TELEPORT),
    LEVEL_UP_MOVE(17, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(31, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(36, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(39, MOVE_IMPRISON),
    LEVEL_UP_MOVE(45, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(50, MOVE_CHARM),
    LEVEL_UP_MOVE(53, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(59, MOVE_DREAM_EATER),
    LEVEL_UP_MOVE(64, MOVE_STORED_POWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sGardevoirLevelUpLearnset[] = {
    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( 6, MOVE_CONFUSION),
    LEVEL_UP_MOVE(10, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(12, MOVE_TELEPORT),
    LEVEL_UP_MOVE(17, MOVE_WISH),
    LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(33, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(45, MOVE_IMPRISON),
    LEVEL_UP_MOVE(53, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(60, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(65, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(73, MOVE_DREAM_EATER),
    LEVEL_UP_MOVE(80, MOVE_STORED_POWER),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sGalladeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
    LEVEL_UP_MOVE( 6, MOVE_CONFUSION),
    LEVEL_UP_MOVE(10, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(12, MOVE_TELEPORT),
    LEVEL_UP_MOVE(17, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(22, MOVE_SLASH),
    LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(31, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(36, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(39, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(45, MOVE_FEINT),
    LEVEL_UP_MOVE(50, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(53, MOVE_PROTECT),
    LEVEL_UP_MOVE(59, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(64, MOVE_STORED_POWER),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_RALTS

#if P_FAMILY_SURSKIT
static const struct LevelUpMove sSurskitLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(19, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(31, MOVE_AGILITY),
    LEVEL_UP_MOVE(37, MOVE_MIST),
    LEVEL_UP_MOVE(37, MOVE_HAZE),
    LEVEL_UP_MOVE(43, MOVE_BATON_PASS),
    LEVEL_UP_END
};

static const struct LevelUpMove sMasquerainLevelUpLearnset[] = {
    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( 7, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(19, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE(22, MOVE_GUST),
    LEVEL_UP_MOVE(26, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(33, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(40, MOVE_SILVER_WIND),
    LEVEL_UP_MOVE(47, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(54, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(61, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(68, MOVE_QUIVER_DANCE),
    LEVEL_UP_END
};
#endif //P_FAMILY_SURSKIT

#if P_FAMILY_SHROOMISH
static const struct LevelUpMove sShroomishLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 5, MOVE_TACKLE),
    LEVEL_UP_MOVE( 9, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(13, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(17, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(21, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(25, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(29, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(33, MOVE_GROWTH),
    LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(41, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(45, MOVE_SPORE),
    LEVEL_UP_END
};

static const struct LevelUpMove sBreloomLevelUpLearnset[] = {
    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_TACKLE),
    LEVEL_UP_MOVE( 9, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(13, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(17, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(21, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(23, MOVE_MACH_PUNCH),
    LEVEL_UP_MOVE(25, MOVE_COUNTER),
    LEVEL_UP_MOVE(29, MOVE_FORCE_PALM),
    LEVEL_UP_MOVE(33, MOVE_SKY_UPPERCUT),
    LEVEL_UP_MOVE(37, MOVE_MIND_READER),
    LEVEL_UP_MOVE(41, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(45, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_END
};
#endif //P_FAMILY_SHROOMISH

#if P_FAMILY_SLAKOTH
static const struct LevelUpMove sSlakothLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_YAWN),
    LEVEL_UP_MOVE( 7, MOVE_ENCORE),
    LEVEL_UP_MOVE(13, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(25, MOVE_AMNESIA),
    LEVEL_UP_MOVE(31, MOVE_COVET),
    LEVEL_UP_MOVE(37, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(43, MOVE_COUNTER),
    LEVEL_UP_MOVE(49, MOVE_FLAIL),
    LEVEL_UP_END
};

static const struct LevelUpMove sVigorothLevelUpLearnset[] = {
    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( 7, MOVE_ENCORE),
    LEVEL_UP_MOVE(13, MOVE_UPROAR),
    LEVEL_UP_MOVE(19, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(25, MOVE_ENDURE),
    LEVEL_UP_MOVE(31, MOVE_SLASH),
    LEVEL_UP_MOVE(37, MOVE_COUNTER),
    LEVEL_UP_MOVE(43, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(49, MOVE_FOCUS_PUNCH),
    LEVEL_UP_MOVE(55, MOVE_REVERSAL),
    LEVEL_UP_END
};

static const struct LevelUpMove sSlakingLevelUpLearnset[] = {
    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( 7, MOVE_ENCORE),
    LEVEL_UP_MOVE(13, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(25, MOVE_AMNESIA),
    LEVEL_UP_MOVE(31, MOVE_COVET),
    LEVEL_UP_MOVE(36, MOVE_SWAGGER),
    LEVEL_UP_MOVE(37, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(43, MOVE_COUNTER),
    LEVEL_UP_MOVE(49, MOVE_FLAIL),
    LEVEL_UP_MOVE(55, MOVE_FLING),
    LEVEL_UP_MOVE(61, MOVE_PUNISHMENT),
    LEVEL_UP_MOVE(67, MOVE_HAMMER_ARM),
    LEVEL_UP_END
};
#endif //P_FAMILY_SLAKOTH

#if P_FAMILY_NINCADA
static const struct LevelUpMove sNincadaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(19, MOVE_MIND_READER),
    LEVEL_UP_MOVE(25, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(31, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(38, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(45, MOVE_DIG),
    LEVEL_UP_END
};

static const struct LevelUpMove sNinjaskLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(19, MOVE_MIND_READER),
    LEVEL_UP_MOVE(20, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(20, MOVE_SCREECH),
    LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(31, MOVE_SLASH),
    LEVEL_UP_MOVE(38, MOVE_AGILITY),
    LEVEL_UP_MOVE(45, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(52, 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( 5, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(19, MOVE_MIND_READER),
    LEVEL_UP_MOVE(25, MOVE_SPITE),
    LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(38, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(45, MOVE_GRUDGE),
    LEVEL_UP_MOVE(52, MOVE_HEAL_BLOCK),
    LEVEL_UP_MOVE(59, MOVE_SHADOW_BALL),
    LEVEL_UP_END
};
#endif //P_FAMILY_NINCADA

#if P_FAMILY_WHISMUR
static const struct LevelUpMove sWhismurLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 5, MOVE_UPROAR),
    LEVEL_UP_MOVE(11, MOVE_ASTONISH),
    LEVEL_UP_MOVE(15, MOVE_HOWL),
    LEVEL_UP_MOVE(21, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(25, MOVE_STOMP),
    LEVEL_UP_MOVE(31, MOVE_SCREECH),
    LEVEL_UP_MOVE(35, MOVE_ROAR),
    LEVEL_UP_MOVE(41, MOVE_SYNCHRONOISE),
    LEVEL_UP_MOVE(45, MOVE_REST),
    LEVEL_UP_MOVE(45, MOVE_SLEEP_TALK),
    LEVEL_UP_MOVE(51, MOVE_HYPER_VOICE),
    LEVEL_UP_END
};

static const struct LevelUpMove sLoudredLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_UPROAR),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_HOWL),
    LEVEL_UP_MOVE( 5, MOVE_UPROAR),
    LEVEL_UP_MOVE(11, MOVE_ASTONISH),
    LEVEL_UP_MOVE(15, MOVE_HOWL),
    LEVEL_UP_MOVE(20, MOVE_BITE),
    LEVEL_UP_MOVE(23, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(29, MOVE_STOMP),
    LEVEL_UP_MOVE(37, MOVE_SCREECH),
    LEVEL_UP_MOVE(43, MOVE_ROAR),
    LEVEL_UP_MOVE(51, MOVE_SYNCHRONOISE),
    LEVEL_UP_MOVE(57, MOVE_REST),
    LEVEL_UP_MOVE(57, MOVE_SLEEP_TALK),
    LEVEL_UP_MOVE(65, MOVE_HYPER_VOICE),
    LEVEL_UP_END
};

static const struct LevelUpMove sExploudLevelUpLearnset[] = {
    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_UPROAR),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_HOWL),
    LEVEL_UP_MOVE( 5, MOVE_UPROAR),
    LEVEL_UP_MOVE(11, MOVE_ASTONISH),
    LEVEL_UP_MOVE(15, MOVE_HOWL),
    LEVEL_UP_MOVE(20, MOVE_BITE),
    LEVEL_UP_MOVE(23, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(29, MOVE_STOMP),
    LEVEL_UP_MOVE(37, MOVE_SCREECH),
    LEVEL_UP_MOVE(40, MOVE_CRUNCH),
    LEVEL_UP_MOVE(45, MOVE_ROAR),
    LEVEL_UP_MOVE(55, MOVE_SYNCHRONOISE),
    LEVEL_UP_MOVE(55, MOVE_REST),
    LEVEL_UP_MOVE(63, MOVE_SLEEP_TALK),
    LEVEL_UP_MOVE(71, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(79, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_WHISMUR

#if P_FAMILY_MAKUHITA
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_VITAL_THROW),
    LEVEL_UP_MOVE(13, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(16, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(22, MOVE_SMELLING_SALTS),
    LEVEL_UP_MOVE(25, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(28, MOVE_FORCE_PALM),
    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_VITAL_THROW),
    LEVEL_UP_MOVE(13, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(16, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(22, MOVE_SMELLING_SALTS),
    LEVEL_UP_MOVE(27, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(32, MOVE_FORCE_PALM),
    LEVEL_UP_MOVE(37, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE(42, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE(47, MOVE_ENDURE),
    LEVEL_UP_MOVE(52, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(57, MOVE_REVERSAL),
    LEVEL_UP_MOVE(62, MOVE_HEAVY_SLAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_MAKUHITA

#if P_FAMILY_NOSEPASS
static const struct LevelUpMove sNosepassLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_HARDEN),
    LEVEL_UP_MOVE( 8, MOVE_BLOCK),
    LEVEL_UP_MOVE(11, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(18, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(22, MOVE_REST),
    LEVEL_UP_MOVE(25, MOVE_SPARK),
    LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(32, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(36, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(39, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(43, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(46, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(50, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sProbopassLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE( 1, MOVE_GRAVITY),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 1, MOVE_BLOCK),
    LEVEL_UP_MOVE( 1, MOVE_MAGNET_BOMB),
    LEVEL_UP_MOVE( 4, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 8, MOVE_BLOCK),
    LEVEL_UP_MOVE(11, MOVE_MAGNET_BOMB),
    LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(18, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(22, MOVE_REST),
    LEVEL_UP_MOVE(25, MOVE_SPARK),
    LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(32, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(36, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(39, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(43, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(46, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(50, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_NOSEPASS

#if P_FAMILY_SKITTY
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( 8, MOVE_ATTRACT),
    LEVEL_UP_MOVE(11, MOVE_SING),
    LEVEL_UP_MOVE(15, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(18, MOVE_COPYCAT),
    LEVEL_UP_MOVE(22, MOVE_ASSIST),
    LEVEL_UP_MOVE(25, MOVE_CHARM),
    LEVEL_UP_MOVE(29, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(32, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE(36, MOVE_COVET),
    LEVEL_UP_MOVE(39, MOVE_HEAL_BELL),
    LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(46, MOVE_CAPTIVATE),
    LEVEL_UP_END
};

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

#if P_FAMILY_SABLEYE
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( 8, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(11, MOVE_ASTONISH),
    LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(18, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(22, MOVE_DETECT),
    LEVEL_UP_MOVE(25, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(32, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(36, MOVE_PUNISHMENT),
    LEVEL_UP_MOVE(39, MOVE_SHADOW_CLAW),
    LEVEL_UP_MOVE(43, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(46, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(50, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(53, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(57, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(60, MOVE_MEAN_LOOK),
    LEVEL_UP_END
};
#endif //P_FAMILY_SABLEYE

#if P_FAMILY_MAWILE
static const struct LevelUpMove sMawileLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 6, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(11, MOVE_BITE),
    LEVEL_UP_MOVE(16, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(21, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE(26, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(31, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(36, MOVE_CRUNCH),
    LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(46, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(51, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(51, MOVE_SWALLOW),
    LEVEL_UP_MOVE(51, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(56, MOVE_IRON_HEAD),
    LEVEL_UP_END
};
#endif //P_FAMILY_MAWILE

#if P_FAMILY_ARON
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( 8, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(11, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(15, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(18, MOVE_ROAR),
    LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(25, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(29, MOVE_PROTECT),
    LEVEL_UP_MOVE(32, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(36, MOVE_IRON_TAIL),
    LEVEL_UP_MOVE(39, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(43, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(50, 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( 8, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(11, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(15, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(18, MOVE_ROAR),
    LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(25, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(29, MOVE_PROTECT),
    LEVEL_UP_MOVE(34, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(40, MOVE_IRON_TAIL),
    LEVEL_UP_MOVE(45, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(51, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(62, 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( 8, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(11, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(15, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(18, MOVE_ROAR),
    LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(25, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(29, MOVE_PROTECT),
    LEVEL_UP_MOVE(34, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(40, MOVE_IRON_TAIL),
    LEVEL_UP_MOVE(48, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(57, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(65, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(74, MOVE_METAL_BURST),
    LEVEL_UP_END
};
#endif //P_FAMILY_ARON

#if P_FAMILY_MEDITITE
static const struct LevelUpMove sMedititeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BIDE),
    LEVEL_UP_MOVE( 4, MOVE_MEDITATE),
    LEVEL_UP_MOVE( 8, MOVE_CONFUSION),
    LEVEL_UP_MOVE(11, MOVE_DETECT),
    LEVEL_UP_MOVE(15, MOVE_HIDDEN_POWER),
    LEVEL_UP_MOVE(18, MOVE_MIND_READER),
    LEVEL_UP_MOVE(22, MOVE_FEINT),
    LEVEL_UP_MOVE(25, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(29, MOVE_FORCE_PALM),
    LEVEL_UP_MOVE(32, MOVE_HIGH_JUMP_KICK),
    LEVEL_UP_MOVE(36, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(39, MOVE_ACUPRESSURE),
    LEVEL_UP_MOVE(43, MOVE_POWER_TRICK),
    LEVEL_UP_MOVE(46, MOVE_REVERSAL),
    LEVEL_UP_MOVE(50, MOVE_RECOVER),
    LEVEL_UP_END
};

static const struct LevelUpMove sMedichamLevelUpLearnset[] = {
    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( 8, MOVE_CONFUSION),
    LEVEL_UP_MOVE(11, MOVE_DETECT),
    LEVEL_UP_MOVE(15, MOVE_HIDDEN_POWER),
    LEVEL_UP_MOVE(18, MOVE_MIND_READER),
    LEVEL_UP_MOVE(22, MOVE_FEINT),
    LEVEL_UP_MOVE(25, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(29, MOVE_FORCE_PALM),
    LEVEL_UP_MOVE(32, MOVE_HIGH_JUMP_KICK),
    LEVEL_UP_MOVE(36, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(42, MOVE_ACUPRESSURE),
    LEVEL_UP_MOVE(49, MOVE_POWER_TRICK),
    LEVEL_UP_MOVE(55, MOVE_REVERSAL),
    LEVEL_UP_MOVE(62, MOVE_RECOVER),
    LEVEL_UP_END
};
#endif //P_FAMILY_MEDITITE

#if P_FAMILY_ELECTRIKE
static const struct LevelUpMove sElectrikeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 9, MOVE_LEER),
    LEVEL_UP_MOVE(12, MOVE_HOWL),
    LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_SPARK),
    LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(28, MOVE_BITE),
    LEVEL_UP_MOVE(33, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE(36, MOVE_ROAR),
    LEVEL_UP_MOVE(41, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(44, MOVE_CHARGE),
    LEVEL_UP_MOVE(49, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(52, MOVE_THUNDER),
    LEVEL_UP_END
};

static const struct LevelUpMove sManectricLevelUpLearnset[] = {
    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_THUNDER_WAVE),
    LEVEL_UP_MOVE( 9, MOVE_LEER),
    LEVEL_UP_MOVE(12, MOVE_HOWL),
    LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_SPARK),
    LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(30, MOVE_BITE),
    LEVEL_UP_MOVE(37, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE(42, MOVE_ROAR),
    LEVEL_UP_MOVE(49, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(54, MOVE_CHARGE),
    LEVEL_UP_MOVE(61, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(66, MOVE_THUNDER),
    LEVEL_UP_END
};
#endif //P_FAMILY_ELECTRIKE

#if P_FAMILY_PLUSLE
static const struct LevelUpMove sPlusleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 3, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(15, MOVE_SPARK),
    LEVEL_UP_MOVE(17, MOVE_ENCORE),
    LEVEL_UP_MOVE(24, MOVE_COPYCAT),
    LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(31, MOVE_SWIFT),
    LEVEL_UP_MOVE(38, MOVE_CHARGE),
    LEVEL_UP_MOVE(42, MOVE_THUNDER),
    LEVEL_UP_MOVE(44, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(48, MOVE_AGILITY),
    LEVEL_UP_MOVE(51, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(56, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(63, MOVE_ENTRAINMENT),
    LEVEL_UP_END
};
#endif //P_FAMILY_PLUSLE

#if P_FAMILY_MINUN
static const struct LevelUpMove sMinunLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 3, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(15, MOVE_SPARK),
    LEVEL_UP_MOVE(17, MOVE_ENCORE),
    LEVEL_UP_MOVE(21, MOVE_CHARM),
    LEVEL_UP_MOVE(24, MOVE_COPYCAT),
    LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(31, MOVE_SWIFT),
    LEVEL_UP_MOVE(35, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(38, MOVE_CHARGE),
    LEVEL_UP_MOVE(42, MOVE_THUNDER),
    LEVEL_UP_MOVE(44, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(48, MOVE_AGILITY),
    LEVEL_UP_MOVE(51, MOVE_TRUMP_CARD),
    LEVEL_UP_MOVE(56, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(63, MOVE_ENTRAINMENT),
    LEVEL_UP_END
};
#endif //P_FAMILY_MINUN

#if P_FAMILY_VOLBEAT_ILLUMISE
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( 9, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(13, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(21, MOVE_TAIL_GLOW),
    LEVEL_UP_MOVE(25, MOVE_SIGNAL_BEAM),
    LEVEL_UP_MOVE(29, MOVE_PROTECT),
    LEVEL_UP_MOVE(33, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(41, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sIllumiseLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 9, MOVE_CHARM),
    LEVEL_UP_MOVE(13, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(21, MOVE_WISH),
    LEVEL_UP_MOVE(25, MOVE_ENCORE),
    LEVEL_UP_MOVE(29, MOVE_FLATTER),
    LEVEL_UP_MOVE(33, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(41, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(45, MOVE_COVET),
    LEVEL_UP_END
};
#endif //P_FAMILY_VOLBEAT_ILLUMISE

#if P_FAMILY_ROSELIA
#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sBudewLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 4, MOVE_GROWTH),
    LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE(10, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(16, MOVE_WORRY_SEED),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS

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_DANCE),
    LEVEL_UP_MOVE(40, MOVE_TOXIC),
    LEVEL_UP_MOVE(43, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(46, MOVE_SYNTHESIS),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sRoseradeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_ROSELIA

#if P_FAMILY_GULPIN
static const struct LevelUpMove sGulpinLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 6, MOVE_YAWN),
    LEVEL_UP_MOVE( 9, MOVE_POISON_GAS),
    LEVEL_UP_MOVE(14, MOVE_SLUDGE),
    LEVEL_UP_MOVE(17, MOVE_AMNESIA),
    LEVEL_UP_MOVE(23, MOVE_ENCORE),
    LEVEL_UP_MOVE(28, MOVE_TOXIC),
    LEVEL_UP_MOVE(34, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(39, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(39, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(39, MOVE_SWALLOW),
    LEVEL_UP_MOVE(44, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(49, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(54, MOVE_WRING_OUT),
    LEVEL_UP_MOVE(59, MOVE_GUNK_SHOT),
    LEVEL_UP_END
};

static const struct LevelUpMove sSwalotLevelUpLearnset[] = {
    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( 6, MOVE_YAWN),
    LEVEL_UP_MOVE( 9, MOVE_POISON_GAS),
    LEVEL_UP_MOVE(14, MOVE_SLUDGE),
    LEVEL_UP_MOVE(17, MOVE_AMNESIA),
    LEVEL_UP_MOVE(23, MOVE_ENCORE),
    LEVEL_UP_MOVE(26, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(30, MOVE_TOXIC),
    LEVEL_UP_MOVE(38, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(45, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(45, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(45, MOVE_SWALLOW),
    LEVEL_UP_MOVE(52, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(59, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(66, MOVE_WRING_OUT),
    LEVEL_UP_MOVE(73, MOVE_GUNK_SHOT),
    LEVEL_UP_END
};
#endif //P_FAMILY_GULPIN

#if P_FAMILY_CARVANHA
static const struct LevelUpMove sCarvanhaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 6, MOVE_RAGE),
    LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(11, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(16, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(18, MOVE_SCREECH),
    LEVEL_UP_MOVE(21, MOVE_SWAGGER),
    LEVEL_UP_MOVE(26, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(28, MOVE_CRUNCH),
    LEVEL_UP_MOVE(31, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(36, MOVE_AGILITY),
    LEVEL_UP_MOVE(38, MOVE_TAKE_DOWN),
    LEVEL_UP_END
};

static const struct LevelUpMove sSharpedoLevelUpLearnset[] = {
    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( 6, MOVE_RAGE),
    LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(11, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(16, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(18, MOVE_SCREECH),
    LEVEL_UP_MOVE(21, MOVE_SWAGGER),
    LEVEL_UP_MOVE(26, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(28, MOVE_CRUNCH),
    LEVEL_UP_MOVE(30, MOVE_SLASH),
    LEVEL_UP_MOVE(34, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(40, MOVE_TAUNT),
    LEVEL_UP_MOVE(45, MOVE_AGILITY),
    LEVEL_UP_MOVE(50, MOVE_SKULL_BASH),
    LEVEL_UP_MOVE(56, MOVE_NIGHT_SLASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_CARVANHA

#if P_FAMILY_WAILMER
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(11, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(14, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(17, MOVE_ASTONISH),
    LEVEL_UP_MOVE(21, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(24, MOVE_MIST),
    LEVEL_UP_MOVE(27, MOVE_REST),
    LEVEL_UP_MOVE(31, MOVE_BRINE),
    LEVEL_UP_MOVE(34, MOVE_WATER_SPOUT),
    LEVEL_UP_MOVE(37, MOVE_AMNESIA),
    LEVEL_UP_MOVE(41, MOVE_DIVE),
    LEVEL_UP_MOVE(44, MOVE_BOUNCE),
    LEVEL_UP_MOVE(47, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(50, MOVE_HEAVY_SLAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sWailordLevelUpLearnset[] = {
    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(11, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(14, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(17, MOVE_ASTONISH),
    LEVEL_UP_MOVE(21, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(24, MOVE_MIST),
    LEVEL_UP_MOVE(27, MOVE_REST),
    LEVEL_UP_MOVE(31, MOVE_BRINE),
    LEVEL_UP_MOVE(34, MOVE_WATER_SPOUT),
    LEVEL_UP_MOVE(37, MOVE_AMNESIA),
    LEVEL_UP_MOVE(46, MOVE_DIVE),
    LEVEL_UP_MOVE(54, MOVE_BOUNCE),
    LEVEL_UP_MOVE(62, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(70, MOVE_HEAVY_SLAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_WAILMER

#if P_FAMILY_NUMEL
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_MAGNITUDE),
    LEVEL_UP_MOVE(12, MOVE_FOCUS_ENERGY),
    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( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_MAGNITUDE),
    LEVEL_UP_MOVE( 5, MOVE_EMBER),
    LEVEL_UP_MOVE( 8, MOVE_MAGNITUDE),
    LEVEL_UP_MOVE(12, MOVE_FOCUS_ENERGY),
    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(33, MOVE_ROCK_SLIDE),
    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
};
#endif //P_FAMILY_NUMEL

#if P_FAMILY_TORKOAL
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(12, MOVE_CURSE),
    LEVEL_UP_MOVE(17, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(20, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(23, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(28, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(33, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(36, MOVE_PROTECT),
    LEVEL_UP_MOVE(39, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(44, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(49, MOVE_AMNESIA),
    LEVEL_UP_MOVE(52, MOVE_FLAIL),
    LEVEL_UP_MOVE(55, MOVE_HEAT_WAVE),
    LEVEL_UP_MOVE(60, MOVE_INFERNO),
    LEVEL_UP_MOVE(65, MOVE_SHELL_SMASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_TORKOAL

#if P_FAMILY_SPOINK
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_REST),
    LEVEL_UP_MOVE(29, MOVE_SNORE),
    LEVEL_UP_MOVE(33, MOVE_POWER_GEM),
    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( 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_REST),
    LEVEL_UP_MOVE(29, MOVE_SNORE),
    LEVEL_UP_MOVE(35, MOVE_POWER_GEM),
    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
};
#endif //P_FAMILY_SPOINK

#if P_FAMILY_SPINDA
static const struct LevelUpMove sSpindaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_UPROAR),
    LEVEL_UP_MOVE(10, MOVE_COPYCAT),
    LEVEL_UP_MOVE(14, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(19, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(23, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(28, MOVE_DIZZY_PUNCH),
    LEVEL_UP_MOVE(32, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(37, MOVE_TEETER_DANCE),
    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
};
#endif //P_FAMILY_SPINDA

#if P_FAMILY_TRAPINCH
static const struct LevelUpMove sTrapinchLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(13, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(17, MOVE_BIDE),
    LEVEL_UP_MOVE(21, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(29, MOVE_DIG),
    LEVEL_UP_MOVE(34, MOVE_CRUNCH),
    LEVEL_UP_MOVE(39, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(44, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(49, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(55, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(61, MOVE_FEINT),
    LEVEL_UP_MOVE(67, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(73, MOVE_FISSURE),
    LEVEL_UP_END
};

static const struct LevelUpMove sVibravaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(13, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(17, MOVE_BIDE),
    LEVEL_UP_MOVE(21, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(29, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(34, MOVE_SCREECH),
    LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(39, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(44, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(49, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sFlygonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(13, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(17, MOVE_BIDE),
    LEVEL_UP_MOVE(21, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(29, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(34, MOVE_SCREECH),
    LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(39, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(44, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(45, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(49, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(55, MOVE_DRAGON_CLAW),
    LEVEL_UP_END
};
#endif //P_FAMILY_TRAPINCH

#if P_FAMILY_CACNEA
static const struct LevelUpMove sCacneaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 9, MOVE_GROWTH),
    LEVEL_UP_MOVE(13, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(17, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(21, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(25, MOVE_INGRAIN),
    LEVEL_UP_MOVE(29, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(33, MOVE_SPIKES),
    LEVEL_UP_MOVE(37, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(41, MOVE_PAYBACK),
    LEVEL_UP_MOVE(45, MOVE_NEEDLE_ARM),
    LEVEL_UP_MOVE(49, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE(53, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(57, MOVE_DESTINY_BOND),
    LEVEL_UP_END
};

static const struct LevelUpMove sCacturneLevelUpLearnset[] = {
    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( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 9, MOVE_GROWTH),
    LEVEL_UP_MOVE(13, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(17, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(21, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(25, MOVE_INGRAIN),
    LEVEL_UP_MOVE(29, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(35, MOVE_SPIKES),
    LEVEL_UP_MOVE(41, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(47, MOVE_PAYBACK),
    LEVEL_UP_MOVE(53, MOVE_NEEDLE_ARM),
    LEVEL_UP_MOVE(59, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE(65, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(71, MOVE_DESTINY_BOND),
    LEVEL_UP_END
};
#endif //P_FAMILY_CACNEA

#if P_FAMILY_SWABLU
static const struct LevelUpMove sSwabluLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 4, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 8, MOVE_SING),
    LEVEL_UP_MOVE(10, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(15, MOVE_MIST),
    LEVEL_UP_MOVE(18, MOVE_ROUND),
    LEVEL_UP_MOVE(21, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(29, MOVE_REFRESH),
    LEVEL_UP_MOVE(34, MOVE_MIRROR_MOVE),
    LEVEL_UP_MOVE(39, MOVE_COTTON_GUARD),
    LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(48, MOVE_PERISH_SONG),
    LEVEL_UP_END
};

static const struct LevelUpMove sAltariaLevelUpLearnset[] = {
    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( 4, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 8, MOVE_SING),
    LEVEL_UP_MOVE(10, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(15, MOVE_MIST),
    LEVEL_UP_MOVE(18, MOVE_ROUND),
    LEVEL_UP_MOVE(21, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(29, MOVE_REFRESH),
    LEVEL_UP_MOVE(34, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(42, MOVE_COTTON_GUARD),
    LEVEL_UP_MOVE(48, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(57, MOVE_PERISH_SONG),
    LEVEL_UP_MOVE(64, MOVE_SKY_ATTACK),
    LEVEL_UP_END
};
#endif //P_FAMILY_SWABLU

#if P_FAMILY_ZANGOOSE
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_SLASH),
    LEVEL_UP_MOVE(19, MOVE_EMBARGO),
    LEVEL_UP_MOVE(22, MOVE_CRUSH_CLAW),
    LEVEL_UP_MOVE(26, MOVE_REVENGE),
    LEVEL_UP_MOVE(29, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(33, MOVE_DETECT),
    LEVEL_UP_MOVE(36, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(40, MOVE_TAUNT),
    LEVEL_UP_MOVE(43, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(47, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_ZANGOOSE

#if P_FAMILY_SEVIPER
static const struct LevelUpMove sSeviperLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 5, MOVE_BITE),
    LEVEL_UP_MOVE( 9, MOVE_SWAGGER),
    LEVEL_UP_MOVE(12, MOVE_POISON_TAIL),
    LEVEL_UP_MOVE(16, MOVE_SCREECH),
    LEVEL_UP_MOVE(20, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(23, MOVE_GLARE),
    LEVEL_UP_MOVE(27, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(31, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(34, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(38, MOVE_HAZE),
    LEVEL_UP_MOVE(42, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(45, MOVE_CRUNCH),
    LEVEL_UP_MOVE(49, MOVE_COIL),
    LEVEL_UP_MOVE(53, MOVE_WRING_OUT),
    LEVEL_UP_END
};
#endif //P_FAMILY_SEVIPER

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

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

#if P_FAMILY_BARBOACH
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(10, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(14, MOVE_MUD_BOMB),
    LEVEL_UP_MOVE(18, MOVE_AMNESIA),
    LEVEL_UP_MOVE(22, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(26, MOVE_MAGNITUDE),
    LEVEL_UP_MOVE(31, MOVE_REST),
    LEVEL_UP_MOVE(31, MOVE_SNORE),
    LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(39, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(43, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(47, MOVE_FISSURE),
    LEVEL_UP_END
};

static const struct LevelUpMove sWhiscashLevelUpLearnset[] = {
    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( 6, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(14, MOVE_MUD_BOMB),
    LEVEL_UP_MOVE(18, MOVE_AMNESIA),
    LEVEL_UP_MOVE(22, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(26, MOVE_MAGNITUDE),
    LEVEL_UP_MOVE(33, MOVE_REST),
    LEVEL_UP_MOVE(33, MOVE_SNORE),
    LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(51, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(57, MOVE_FISSURE),
    LEVEL_UP_END
};
#endif //P_FAMILY_BARBOACH

#if P_FAMILY_CORPHISH
static const struct LevelUpMove sCorphishLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 7, MOVE_HARDEN),
    LEVEL_UP_MOVE(10, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE(13, MOVE_LEER),
    LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(23, MOVE_PROTECT),
    LEVEL_UP_MOVE(26, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(32, MOVE_TAUNT),
    LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(38, MOVE_CRABHAMMER),
    LEVEL_UP_MOVE(44, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(47, MOVE_CRUNCH),
    LEVEL_UP_MOVE(53, MOVE_GUILLOTINE),
    LEVEL_UP_END
};

static const struct LevelUpMove sCrawdauntLevelUpLearnset[] = {
    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( 7, MOVE_HARDEN),
    LEVEL_UP_MOVE(10, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE(13, MOVE_LEER),
    LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(23, MOVE_PROTECT),
    LEVEL_UP_MOVE(26, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(30, MOVE_SWIFT),
    LEVEL_UP_MOVE(34, MOVE_TAUNT),
    LEVEL_UP_MOVE(39, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(44, MOVE_CRABHAMMER),
    LEVEL_UP_MOVE(52, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(57, MOVE_CRUNCH),
    LEVEL_UP_MOVE(65, MOVE_GUILLOTINE),
    LEVEL_UP_END
};
#endif //P_FAMILY_CORPHISH

#if P_FAMILY_BALTOY
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_ROCK_TOMB),
    LEVEL_UP_MOVE(13, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(17, MOVE_POWER_TRICK),
    LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(25, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(28, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(31, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(34, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(34, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(37, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(41, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(45, MOVE_HEAL_BLOCK),
    LEVEL_UP_MOVE(49, MOVE_EXPLOSION),
    LEVEL_UP_END
};

static const struct LevelUpMove sClaydolLevelUpLearnset[] = {
    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_ROCK_TOMB),
    LEVEL_UP_MOVE(13, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(17, MOVE_POWER_TRICK),
    LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(25, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(28, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(31, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(34, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(34, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(36, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(40, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(47, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(54, MOVE_HEAL_BLOCK),
    LEVEL_UP_MOVE(61, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_BALTOY

#if P_FAMILY_LILEEP
static const struct LevelUpMove sLileepLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
    LEVEL_UP_MOVE( 8, MOVE_ACID),
    LEVEL_UP_MOVE(15, MOVE_INGRAIN),
    LEVEL_UP_MOVE(22, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(29, MOVE_AMNESIA),
    LEVEL_UP_MOVE(36, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(43, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(50, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(57, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(57, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(57, MOVE_SWALLOW),
    LEVEL_UP_MOVE(64, MOVE_WRING_OUT),
    LEVEL_UP_END
};

static const struct LevelUpMove sCradilyLevelUpLearnset[] = {
    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( 8, MOVE_ACID),
    LEVEL_UP_MOVE(15, MOVE_INGRAIN),
    LEVEL_UP_MOVE(22, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(29, MOVE_AMNESIA),
    LEVEL_UP_MOVE(36, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(46, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(56, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(66, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(66, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(66, MOVE_SWALLOW),
    LEVEL_UP_MOVE(76, MOVE_WRING_OUT),
    LEVEL_UP_END
};
#endif //P_FAMILY_LILEEP

#if P_FAMILY_ANORITH
static const struct LevelUpMove sAnorithLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(19, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(25, MOVE_PROTECT),
    LEVEL_UP_MOVE(31, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(37, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(43, MOVE_SLASH),
    LEVEL_UP_MOVE(49, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(55, MOVE_CRUSH_CLAW),
    LEVEL_UP_MOVE(61, MOVE_X_SCISSOR),
    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( 7, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(19, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(25, MOVE_PROTECT),
    LEVEL_UP_MOVE(31, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(37, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(46, MOVE_SLASH),
    LEVEL_UP_MOVE(55, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(67, MOVE_CRUSH_CLAW),
    LEVEL_UP_MOVE(73, MOVE_X_SCISSOR),
    LEVEL_UP_END
};
#endif //P_FAMILY_ANORITH

#if P_FAMILY_FEEBAS
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( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 5, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 9, MOVE_REFRESH),
    LEVEL_UP_MOVE(13, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(17, MOVE_TWISTER),
    LEVEL_UP_MOVE(21, MOVE_RECOVER),
    LEVEL_UP_MOVE(25, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(29, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(33, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(37, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(41, MOVE_ATTRACT),
    LEVEL_UP_MOVE(45, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(49, MOVE_AQUA_RING),
    LEVEL_UP_END
};
#endif //P_FAMILY_FEEBAS

#if P_FAMILY_CASTFORM
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(30, MOVE_WEATHER_BALL),
    LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(40, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(40, MOVE_BLIZZARD),
    LEVEL_UP_END
};
#endif //P_FAMILY_CASTFORM

#if P_FAMILY_KECLEON
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_FEINT_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(14, MOVE_FEINT),
    LEVEL_UP_MOVE(18, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(22, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(27, MOVE_SLASH),
    LEVEL_UP_MOVE(32, MOVE_SCREECH),
    LEVEL_UP_MOVE(37, MOVE_SUBSTITUTE),
    LEVEL_UP_MOVE(43, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(49, MOVE_SHADOW_CLAW),
    LEVEL_UP_MOVE(55, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(58, MOVE_SYNCHRONOISE),
    LEVEL_UP_END
};
#endif //P_FAMILY_KECLEON

#if P_FAMILY_SHUPPET
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_WILL_O_WISP),
    LEVEL_UP_MOVE(16, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(19, MOVE_CURSE),
    LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(26, MOVE_HEX),
    LEVEL_UP_MOVE(30, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(34, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(38, MOVE_EMBARGO),
    LEVEL_UP_MOVE(42, MOVE_SNATCH),
    LEVEL_UP_MOVE(46, MOVE_GRUDGE),
    LEVEL_UP_MOVE(50, MOVE_TRICK),
    LEVEL_UP_END
};

static const struct LevelUpMove sBanetteLevelUpLearnset[] = {
    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_CURSE),
    LEVEL_UP_MOVE( 4, MOVE_SCREECH),
    LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(10, MOVE_SPITE),
    LEVEL_UP_MOVE(13, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(16, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(19, MOVE_CURSE),
    LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(26, MOVE_HEX),
    LEVEL_UP_MOVE(30, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(34, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(40, MOVE_EMBARGO),
    LEVEL_UP_MOVE(46, MOVE_SNATCH),
    LEVEL_UP_MOVE(52, MOVE_GRUDGE),
    LEVEL_UP_MOVE(58, MOVE_TRICK),
    LEVEL_UP_END
};
#endif //P_FAMILY_SHUPPET

#if P_FAMILY_DUSKULL
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_FORESIGHT),
    LEVEL_UP_MOVE(14, MOVE_ASTONISH),
    LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(22, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(25, MOVE_PURSUIT),
    LEVEL_UP_MOVE(30, MOVE_CURSE),
    LEVEL_UP_MOVE(33, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(38, MOVE_HEX),
    LEVEL_UP_MOVE(41, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(46, MOVE_PAYBACK),
    LEVEL_UP_MOVE(49, MOVE_FUTURE_SIGHT),
    LEVEL_UP_END
};

static const struct LevelUpMove sDusclopsLevelUpLearnset[] = {
    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( 6, MOVE_DISABLE),
    LEVEL_UP_MOVE( 9, MOVE_FORESIGHT),
    LEVEL_UP_MOVE(14, MOVE_ASTONISH),
    LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(22, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(25, MOVE_PURSUIT),
    LEVEL_UP_MOVE(30, MOVE_CURSE),
    LEVEL_UP_MOVE(33, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(37, MOVE_SHADOW_PUNCH),
    LEVEL_UP_MOVE(42, MOVE_HEX),
    LEVEL_UP_MOVE(49, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(58, MOVE_PAYBACK),
    LEVEL_UP_MOVE(61, MOVE_FUTURE_SIGHT),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sDusknoirLevelUpLearnset[] = {
    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( 6, MOVE_DISABLE),
    LEVEL_UP_MOVE( 9, MOVE_FORESIGHT),
    LEVEL_UP_MOVE(14, MOVE_ASTONISH),
    LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(22, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(25, MOVE_PURSUIT),
    LEVEL_UP_MOVE(30, MOVE_CURSE),
    LEVEL_UP_MOVE(33, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(37, MOVE_SHADOW_PUNCH),
    LEVEL_UP_MOVE(42, MOVE_HEX),
    LEVEL_UP_MOVE(49, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(58, MOVE_PAYBACK),
    LEVEL_UP_MOVE(61, MOVE_FUTURE_SIGHT),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_DUSKULL

#if P_FAMILY_TROPIUS
static const struct LevelUpMove sTropiusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 7, MOVE_GROWTH),
    LEVEL_UP_MOVE(11, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(17, MOVE_STOMP),
    LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(27, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(31, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(37, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(41, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(47, MOVE_LEAF_TORNADO),
    LEVEL_UP_MOVE(51, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(57, MOVE_BESTOW),
    LEVEL_UP_MOVE(61, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(67, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(71, MOVE_LEAF_STORM),
    LEVEL_UP_END
};
#endif //P_FAMILY_TROPIUS

#if P_FAMILY_CHIMECHO
#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sChinglingLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 6, MOVE_GROWL),
    LEVEL_UP_MOVE( 9, MOVE_ASTONISH),
    LEVEL_UP_MOVE(14, MOVE_CONFUSION),
    LEVEL_UP_MOVE(17, MOVE_UPROAR),
    LEVEL_UP_MOVE(22, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(25, MOVE_ENTRAINMENT),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS

static const struct LevelUpMove sChimechoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 6, MOVE_GROWL),
    LEVEL_UP_MOVE( 9, MOVE_ASTONISH),
    LEVEL_UP_MOVE(14, MOVE_CONFUSION),
    LEVEL_UP_MOVE(17, MOVE_UPROAR),
    LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(25, MOVE_YAWN),
    LEVEL_UP_MOVE(30, MOVE_PSYWAVE),
    LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(38, MOVE_HEAL_BELL),
    LEVEL_UP_MOVE(41, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(46, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(49, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(54, MOVE_SYNCHRONOISE),
    LEVEL_UP_MOVE(57, MOVE_HEALING_WISH),
    LEVEL_UP_END
};
#endif //P_FAMILY_CHIMECHO

#if P_FAMILY_ABSOL
static const struct LevelUpMove sAbsolLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_FEINT),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 9, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_PURSUIT),
    LEVEL_UP_MOVE(17, MOVE_TAUNT),
    LEVEL_UP_MOVE(20, MOVE_BITE),
    LEVEL_UP_MOVE(25, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(28, MOVE_SLASH),
    LEVEL_UP_MOVE(33, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(41, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(44, MOVE_DETECT),
    LEVEL_UP_MOVE(49, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(52, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(57, MOVE_RAZOR_WIND),
    LEVEL_UP_MOVE(60, MOVE_ME_FIRST),
    LEVEL_UP_MOVE(65, MOVE_PERISH_SONG),
    LEVEL_UP_END
};
#endif //P_FAMILY_ABSOL

#if P_FAMILY_SNORUNT
static const struct LevelUpMove sSnoruntLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(10, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(19, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(22, MOVE_PROTECT),
    LEVEL_UP_MOVE(28, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(31, MOVE_CRUNCH),
    LEVEL_UP_MOVE(37, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(40, MOVE_HAIL),
    LEVEL_UP_MOVE(46, MOVE_BLIZZARD),
    LEVEL_UP_END
};

static const struct LevelUpMove sGlalieLevelUpLearnset[] = {
    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_BITE),
    LEVEL_UP_MOVE( 4, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(10, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(19, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(22, MOVE_PROTECT),
    LEVEL_UP_MOVE(28, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(31, MOVE_CRUNCH),
    LEVEL_UP_MOVE(37, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(40, MOVE_HAIL),
    LEVEL_UP_MOVE(51, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(59, MOVE_SHEER_COLD),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sFroslassLevelUpLearnset[] = {
    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_ASTONISH),
    LEVEL_UP_MOVE( 4, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(10, MOVE_ASTONISH),
    LEVEL_UP_MOVE(13, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(22, MOVE_OMINOUS_WIND),
    LEVEL_UP_MOVE(28, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE(31, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(37, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(40, MOVE_HAIL),
    LEVEL_UP_MOVE(51, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(59, MOVE_DESTINY_BOND),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_SNORUNT

#if P_FAMILY_SPHEAL
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( 7, MOVE_ENCORE),
    LEVEL_UP_MOVE(13, MOVE_ICE_BALL),
    LEVEL_UP_MOVE(19, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(31, MOVE_HAIL),
    LEVEL_UP_MOVE(37, MOVE_REST),
    LEVEL_UP_MOVE(37, MOVE_SNORE),
    LEVEL_UP_MOVE(43, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(49, MOVE_SHEER_COLD),
    LEVEL_UP_END
};

static const struct LevelUpMove sSealeoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ENCORE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 7, MOVE_ENCORE),
    LEVEL_UP_MOVE(13, MOVE_ICE_BALL),
    LEVEL_UP_MOVE(19, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(31, MOVE_HAIL),
    LEVEL_UP_MOVE(32, MOVE_SWAGGER),
    LEVEL_UP_MOVE(39, MOVE_REST),
    LEVEL_UP_MOVE(39, MOVE_SNORE),
    LEVEL_UP_MOVE(47, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(55, MOVE_SHEER_COLD),
    LEVEL_UP_END
};

static const struct LevelUpMove sWalreinLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_ENCORE),
    LEVEL_UP_MOVE( 7, MOVE_ENCORE),
    LEVEL_UP_MOVE(13, MOVE_ICE_BALL),
    LEVEL_UP_MOVE(19, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(31, MOVE_HAIL),
    LEVEL_UP_MOVE(32, MOVE_SWAGGER),
    LEVEL_UP_MOVE(39, MOVE_REST),
    LEVEL_UP_MOVE(39, MOVE_SNORE),
    LEVEL_UP_MOVE(44, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(52, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(65, MOVE_SHEER_COLD),
    LEVEL_UP_END
};
#endif //P_FAMILY_SPHEAL

#if P_FAMILY_CLAMPERL
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(51, MOVE_SHELL_SMASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sHuntailLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE( 6, MOVE_BITE),
    LEVEL_UP_MOVE(10, MOVE_SCREECH),
    LEVEL_UP_MOVE(15, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(19, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(24, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(28, MOVE_BRINE),
    LEVEL_UP_MOVE(33, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(37, MOVE_DIVE),
    LEVEL_UP_MOVE(42, MOVE_CRUNCH),
    LEVEL_UP_MOVE(46, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sGorebyssLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE( 6, MOVE_CONFUSION),
    LEVEL_UP_MOVE(10, MOVE_AGILITY),
    LEVEL_UP_MOVE(15, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(19, MOVE_AMNESIA),
    LEVEL_UP_MOVE(24, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(28, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(33, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(37, MOVE_DIVE),
    LEVEL_UP_MOVE(42, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(46, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_CLAMPERL

#if P_FAMILY_RELICANTH
static const struct LevelUpMove sRelicanthLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 8, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(22, MOVE_YAWN),
    LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(36, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE(43, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(57, MOVE_DIVE),
    LEVEL_UP_MOVE(64, MOVE_REST),
    LEVEL_UP_MOVE(71, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(78, MOVE_HEAD_SMASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_RELICANTH

#if P_FAMILY_LUVDISC
static const struct LevelUpMove sLuvdiscLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_CHARM),
    LEVEL_UP_MOVE( 7, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 9, MOVE_AGILITY),
    LEVEL_UP_MOVE(14, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(17, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(22, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(27, MOVE_ATTRACT),
    LEVEL_UP_MOVE(31, MOVE_FLAIL),
    LEVEL_UP_MOVE(37, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(46, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(51, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(55, MOVE_SAFEGUARD),
    LEVEL_UP_END
};
#endif //P_FAMILY_LUVDISC

#if P_FAMILY_BAGON
static const struct LevelUpMove sBagonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_RAGE),
    LEVEL_UP_MOVE( 5, MOVE_BITE),
    LEVEL_UP_MOVE(10, MOVE_LEER),
    LEVEL_UP_MOVE(16, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(20, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(25, MOVE_EMBER),
    LEVEL_UP_MOVE(31, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(40, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(46, MOVE_CRUNCH),
    LEVEL_UP_MOVE(50, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sShelgonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_RAGE),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
    LEVEL_UP_MOVE( 5, MOVE_BITE),
    LEVEL_UP_MOVE(10, MOVE_LEER),
    LEVEL_UP_MOVE(16, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(20, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(25, MOVE_EMBER),
    LEVEL_UP_MOVE(30, MOVE_PROTECT),
    LEVEL_UP_MOVE(32, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(43, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(50, MOVE_CRUNCH),
    LEVEL_UP_MOVE(55, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(61, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSalamenceLevelUpLearnset[] = {
    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_BITE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
    LEVEL_UP_MOVE( 5, MOVE_BITE),
    LEVEL_UP_MOVE(10, MOVE_LEER),
    LEVEL_UP_MOVE(16, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(20, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(25, MOVE_EMBER),
    LEVEL_UP_MOVE(30, MOVE_PROTECT),
    LEVEL_UP_MOVE(32, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(43, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(50, MOVE_FLY),
    LEVEL_UP_MOVE(53, MOVE_CRUNCH),
    LEVEL_UP_MOVE(61, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(80, MOVE_DRAGON_TAIL),
    LEVEL_UP_END
};
#endif //P_FAMILY_BAGON

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

static const struct LevelUpMove sMetangLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE(20, MOVE_CONFUSION),
    LEVEL_UP_MOVE(20, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(23, MOVE_PURSUIT),
    LEVEL_UP_MOVE(26, MOVE_MIRACLE_EYE),
    LEVEL_UP_MOVE(29, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(32, MOVE_BULLET_PUNCH),
    LEVEL_UP_MOVE(35, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(38, MOVE_AGILITY),
    LEVEL_UP_MOVE(41, MOVE_PSYCHIC),
    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( 1, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE(20, MOVE_CONFUSION),
    LEVEL_UP_MOVE(20, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(23, MOVE_PURSUIT),
    LEVEL_UP_MOVE(26, MOVE_MIRACLE_EYE),
    LEVEL_UP_MOVE(29, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(32, MOVE_BULLET_PUNCH),
    LEVEL_UP_MOVE(35, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(38, MOVE_AGILITY),
    LEVEL_UP_MOVE(41, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(44, MOVE_METEOR_MASH),
    LEVEL_UP_MOVE(45, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(53, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(62, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_BELDUM

#if P_FAMILY_REGIROCK
static const struct LevelUpMove sRegirockLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EXPLOSION),
    LEVEL_UP_MOVE( 1, MOVE_STOMP),
    LEVEL_UP_MOVE( 9, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(17, MOVE_CURSE),
    LEVEL_UP_MOVE(25, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(49, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE(57, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(65, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(73, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(81, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(89, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_REGIROCK

#if P_FAMILY_REGICE
static const struct LevelUpMove sRegiceLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EXPLOSION),
    LEVEL_UP_MOVE( 1, MOVE_STOMP),
    LEVEL_UP_MOVE( 9, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(17, MOVE_CURSE),
    LEVEL_UP_MOVE(25, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(41, MOVE_AMNESIA),
    LEVEL_UP_MOVE(49, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE(57, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(65, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(73, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(81, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(89, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_REGICE

#if P_FAMILY_REGISTEEL
static const struct LevelUpMove sRegisteelLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EXPLOSION),
    LEVEL_UP_MOVE( 1, MOVE_STOMP),
    LEVEL_UP_MOVE( 9, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(17, MOVE_CURSE),
    LEVEL_UP_MOVE(25, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(41, MOVE_AMNESIA),
    LEVEL_UP_MOVE(49, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE(57, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(65, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(73, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(73, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(81, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(89, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_REGISTEEL

#if P_FAMILY_LATIAS
static const struct LevelUpMove sLatiasLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
    LEVEL_UP_MOVE( 5, MOVE_WISH),
    LEVEL_UP_MOVE(10, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(15, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(25, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE(30, MOVE_REFRESH),
    LEVEL_UP_MOVE(35, MOVE_MIST_BALL),
    LEVEL_UP_MOVE(40, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(45, MOVE_RECOVER),
    LEVEL_UP_MOVE(50, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE(55, MOVE_CHARM),
    LEVEL_UP_MOVE(60, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(65, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(70, MOVE_REFLECT_TYPE),
    LEVEL_UP_MOVE(75, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(80, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(85, MOVE_HEALING_WISH),
    LEVEL_UP_END
};
#endif //P_FAMILY_LATIAS

#if P_FAMILY_LATIOS
static const struct LevelUpMove sLatiosLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
    LEVEL_UP_MOVE( 5, MOVE_HEAL_BLOCK),
    LEVEL_UP_MOVE(10, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(15, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(25, MOVE_PROTECT),
    LEVEL_UP_MOVE(30, MOVE_REFRESH),
    LEVEL_UP_MOVE(35, MOVE_LUSTER_PURGE),
    LEVEL_UP_MOVE(40, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(45, MOVE_RECOVER),
    LEVEL_UP_MOVE(50, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE(55, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(60, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(65, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(70, MOVE_TELEKINESIS),
    LEVEL_UP_MOVE(75, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(80, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(85, MOVE_MEMENTO),
    LEVEL_UP_END
};
#endif //P_FAMILY_LATIOS

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

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

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

#if P_FAMILY_JIRACHI
static const struct LevelUpMove sJirachiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WISH),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE(10, MOVE_SWIFT),
    LEVEL_UP_MOVE(15, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(17, MOVE_REST),
    LEVEL_UP_MOVE(20, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(25, MOVE_REFRESH),
    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
};
#endif //P_FAMILY_JIRACHI

#if P_FAMILY_DEOXYS
static const struct LevelUpMove sDeoxysNormalLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(17, MOVE_TELEPORT),
    LEVEL_UP_MOVE(25, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(33, MOVE_PURSUIT),
    LEVEL_UP_MOVE(41, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(49, MOVE_SNATCH),
    LEVEL_UP_MOVE(57, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE(65, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(73, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(81, MOVE_RECOVER),
    LEVEL_UP_MOVE(89, MOVE_PSYCHO_BOOST),
    LEVEL_UP_MOVE(97, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sDeoxysAttackLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(17, MOVE_TELEPORT),
    LEVEL_UP_MOVE(25, MOVE_TAUNT),
    LEVEL_UP_MOVE(33, MOVE_PURSUIT),
    LEVEL_UP_MOVE(41, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(49, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(57, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE(65, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(73, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(81, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(89, MOVE_PSYCHO_BOOST),
    LEVEL_UP_MOVE(97, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sDeoxysDefenseLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(17, MOVE_TELEPORT),
    LEVEL_UP_MOVE(25, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(33, MOVE_SPIKES),
    LEVEL_UP_MOVE(41, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(49, MOVE_SNATCH),
    LEVEL_UP_MOVE(57, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE(65, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(73, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(73, MOVE_AMNESIA),
    LEVEL_UP_MOVE(81, MOVE_RECOVER),
    LEVEL_UP_MOVE(89, MOVE_PSYCHO_BOOST),
    LEVEL_UP_MOVE(97, MOVE_COUNTER),
    LEVEL_UP_MOVE(97, MOVE_MIRROR_COAT),
    LEVEL_UP_END
};

static const struct LevelUpMove sDeoxysSpeedLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(17, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(25, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(33, MOVE_PURSUIT),
    LEVEL_UP_MOVE(41, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(49, MOVE_SWIFT),
    LEVEL_UP_MOVE(57, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE(65, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(73, MOVE_AGILITY),
    LEVEL_UP_MOVE(81, MOVE_RECOVER),
    LEVEL_UP_MOVE(89, MOVE_PSYCHO_BOOST),
    LEVEL_UP_MOVE(97, MOVE_EXTREME_SPEED),
    LEVEL_UP_END
};
#endif //P_FAMILY_DEOXYS

#if P_FAMILY_TURTWIG
static const struct LevelUpMove sTurtwigLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 9, MOVE_ABSORB),
    LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(17, MOVE_CURSE),
    LEVEL_UP_MOVE(21, MOVE_BITE),
    LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(29, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(33, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(37, MOVE_CRUNCH),
    LEVEL_UP_MOVE(41, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(45, MOVE_LEAF_STORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sGrotleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 5, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 9, MOVE_ABSORB),
    LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(17, MOVE_CURSE),
    LEVEL_UP_MOVE(22, MOVE_BITE),
    LEVEL_UP_MOVE(27, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(32, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(37, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(42, MOVE_CRUNCH),
    LEVEL_UP_MOVE(47, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(52, MOVE_LEAF_STORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sTorterraLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 5, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 9, MOVE_ABSORB),
    LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(17, MOVE_CURSE),
    LEVEL_UP_MOVE(22, MOVE_BITE),
    LEVEL_UP_MOVE(27, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(32, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(33, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(39, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(45, MOVE_CRUNCH),
    LEVEL_UP_MOVE(51, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(57, MOVE_LEAF_STORM),
    LEVEL_UP_END
};
#endif //P_FAMILY_TURTWIG

#if P_FAMILY_CHIMCHAR
static const struct LevelUpMove sChimcharLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_EMBER),
    LEVEL_UP_MOVE( 9, MOVE_TAUNT),
    LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(17, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(23, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(25, MOVE_TORMENT),
    LEVEL_UP_MOVE(31, MOVE_FACADE),
    LEVEL_UP_MOVE(33, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(39, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(41, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE(47, MOVE_FLAMETHROWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sMonfernoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 7, MOVE_EMBER),
    LEVEL_UP_MOVE( 9, MOVE_TAUNT),
    LEVEL_UP_MOVE(14, MOVE_MACH_PUNCH),
    LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(19, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(26, MOVE_FEINT),
    LEVEL_UP_MOVE(29, MOVE_TORMENT),
    LEVEL_UP_MOVE(36, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(39, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(46, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(49, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE(56, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sInfernapeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE( 7, MOVE_EMBER),
    LEVEL_UP_MOVE( 9, MOVE_TAUNT),
    LEVEL_UP_MOVE(14, MOVE_MACH_PUNCH),
    LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(19, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(26, MOVE_FEINT),
    LEVEL_UP_MOVE(29, MOVE_PUNISHMENT),
    LEVEL_UP_MOVE(36, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(42, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(52, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(58, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(68, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};
#endif //P_FAMILY_CHIMCHAR

#if P_FAMILY_PIPLUP
static const struct LevelUpMove sPiplupLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 8, MOVE_BUBBLE),
    LEVEL_UP_MOVE(11, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE(15, MOVE_PECK),
    LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(22, MOVE_BIDE),
    LEVEL_UP_MOVE(25, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(29, MOVE_BRINE),
    LEVEL_UP_MOVE(32, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(36, MOVE_MIST),
    LEVEL_UP_MOVE(39, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sPrinplupLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 8, MOVE_BUBBLE),
    LEVEL_UP_MOVE(11, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE(15, MOVE_PECK),
    LEVEL_UP_MOVE(16, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(24, MOVE_BIDE),
    LEVEL_UP_MOVE(28, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(33, MOVE_BRINE),
    LEVEL_UP_MOVE(37, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(42, MOVE_MIST),
    LEVEL_UP_MOVE(46, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sEmpoleonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 8, MOVE_BUBBLE),
    LEVEL_UP_MOVE(11, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(15, MOVE_PECK),
    LEVEL_UP_MOVE(16, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(24, MOVE_SWAGGER),
    LEVEL_UP_MOVE(28, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(33, MOVE_BRINE),
    LEVEL_UP_MOVE(36, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(46, MOVE_MIST),
    LEVEL_UP_MOVE(52, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(59, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_PIPLUP

#if P_FAMILY_STARLY
static const struct LevelUpMove sStarlyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(17, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(21, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(25, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(33, MOVE_AGILITY),
    LEVEL_UP_MOVE(37, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(41, MOVE_FINAL_GAMBIT),
    LEVEL_UP_END
};

static const struct LevelUpMove sStaraviaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(18, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(23, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(28, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(38, MOVE_AGILITY),
    LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(48, MOVE_FINAL_GAMBIT),
    LEVEL_UP_END
};

static const struct LevelUpMove sStaraptorLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(18, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(23, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(28, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(34, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(41, MOVE_AGILITY),
    LEVEL_UP_MOVE(49, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(57, MOVE_FINAL_GAMBIT),
    LEVEL_UP_END
};
#endif //P_FAMILY_STARLY

#if P_FAMILY_BIDOOF
static const struct LevelUpMove sBidoofLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_GROWL),
    LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE(13, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(17, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(21, MOVE_HYPER_FANG),
    LEVEL_UP_MOVE(25, MOVE_YAWN),
    LEVEL_UP_MOVE(29, MOVE_AMNESIA),
    LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(37, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(41, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(45, MOVE_CURSE),
    LEVEL_UP_END
};

static const struct LevelUpMove sBibarelLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_GROWL),
    LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE(13, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(15, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(18, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(23, MOVE_HYPER_FANG),
    LEVEL_UP_MOVE(28, MOVE_YAWN),
    LEVEL_UP_MOVE(33, MOVE_AMNESIA),
    LEVEL_UP_MOVE(38, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(43, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(48, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(53, MOVE_CURSE),
    LEVEL_UP_END
};
#endif //P_FAMILY_BIDOOF

#if P_FAMILY_KRICKETOT
static const struct LevelUpMove sKricketotLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_BIDE),
    LEVEL_UP_MOVE( 6, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(16, MOVE_BUG_BITE),
    LEVEL_UP_END
};

static const struct LevelUpMove sKricketuneLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_BIDE),
    LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(14, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE(18, MOVE_SING),
    LEVEL_UP_MOVE(22, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(26, MOVE_SLASH),
    LEVEL_UP_MOVE(30, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(34, MOVE_SCREECH),
    LEVEL_UP_MOVE(38, MOVE_TAUNT),
    LEVEL_UP_MOVE(42, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(46, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(50, MOVE_PERISH_SONG),
    LEVEL_UP_END
};
#endif //P_FAMILY_KRICKETOT

#if P_FAMILY_SHINX
static const struct LevelUpMove sShinxLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_LEER),
    LEVEL_UP_MOVE( 9, MOVE_CHARGE),
    LEVEL_UP_MOVE(13, MOVE_SPARK),
    LEVEL_UP_MOVE(17, MOVE_BITE),
    LEVEL_UP_MOVE(21, MOVE_ROAR),
    LEVEL_UP_MOVE(25, MOVE_SWAGGER),
    LEVEL_UP_MOVE(29, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE(33, MOVE_CRUNCH),
    LEVEL_UP_MOVE(37, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(41, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(45, MOVE_WILD_CHARGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sLuxioLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_LEER),
    LEVEL_UP_MOVE( 9, MOVE_CHARGE),
    LEVEL_UP_MOVE(13, MOVE_SPARK),
    LEVEL_UP_MOVE(18, MOVE_BITE),
    LEVEL_UP_MOVE(23, MOVE_ROAR),
    LEVEL_UP_MOVE(28, MOVE_SWAGGER),
    LEVEL_UP_MOVE(33, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE(38, MOVE_CRUNCH),
    LEVEL_UP_MOVE(43, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(48, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(53, MOVE_WILD_CHARGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sLuxrayLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE),
    LEVEL_UP_MOVE( 5, MOVE_LEER),
    LEVEL_UP_MOVE( 9, MOVE_CHARGE),
    LEVEL_UP_MOVE(13, MOVE_SPARK),
    LEVEL_UP_MOVE(18, MOVE_BITE),
    LEVEL_UP_MOVE(23, MOVE_ROAR),
    LEVEL_UP_MOVE(28, MOVE_SWAGGER),
    LEVEL_UP_MOVE(35, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE(42, MOVE_CRUNCH),
    LEVEL_UP_MOVE(49, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(56, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(63, MOVE_WILD_CHARGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_SHINX

#if P_FAMILY_CRANIDOS
static const struct LevelUpMove sCranidosLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(10, MOVE_PURSUIT),
    LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(19, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(24, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(28, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(42, MOVE_SCREECH),
    LEVEL_UP_MOVE(46, MOVE_HEAD_SMASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sRampardosLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(10, MOVE_PURSUIT),
    LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(19, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(24, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(28, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(30, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(36, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(43, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(51, MOVE_SCREECH),
    LEVEL_UP_MOVE(58, MOVE_HEAD_SMASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_CRANIDOS

#if P_FAMILY_SHIELDON
static const struct LevelUpMove sShieldonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 6, MOVE_TAUNT),
    LEVEL_UP_MOVE(10, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(19, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(24, MOVE_SWAGGER),
    LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(33, MOVE_ENDURE),
    LEVEL_UP_MOVE(37, MOVE_METAL_BURST),
    LEVEL_UP_MOVE(42, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(46, MOVE_HEAVY_SLAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sBastiodonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE( 6, MOVE_TAUNT),
    LEVEL_UP_MOVE(10, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(19, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(24, MOVE_SWAGGER),
    LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(30, MOVE_BLOCK),
    LEVEL_UP_MOVE(36, MOVE_ENDURE),
    LEVEL_UP_MOVE(43, MOVE_METAL_BURST),
    LEVEL_UP_MOVE(51, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(58, MOVE_HEAVY_SLAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_SHIELDON

#if P_FAMILY_BURMY
static const struct LevelUpMove sBurmyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE(10, MOVE_TACKLE),
    LEVEL_UP_MOVE(15, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sWormadamPlantCloakLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE(10, MOVE_PROTECT),
    LEVEL_UP_MOVE(15, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER),
    LEVEL_UP_MOVE(23, MOVE_CONFUSION),
    LEVEL_UP_MOVE(26, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(29, MOVE_GROWTH),
    LEVEL_UP_MOVE(32, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(35, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(38, MOVE_FLAIL),
    LEVEL_UP_MOVE(41, MOVE_ATTRACT),
    LEVEL_UP_MOVE(44, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(47, MOVE_LEAF_STORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE(10, MOVE_PROTECT),
    LEVEL_UP_MOVE(15, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER),
    LEVEL_UP_MOVE(23, MOVE_CONFUSION),
    LEVEL_UP_MOVE(26, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(29, MOVE_HARDEN),
    LEVEL_UP_MOVE(32, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(35, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(38, MOVE_FLAIL),
    LEVEL_UP_MOVE(41, MOVE_ATTRACT),
    LEVEL_UP_MOVE(44, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(47, MOVE_FISSURE),
    LEVEL_UP_END
};

static const struct LevelUpMove sWormadamTrashCloakLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE(10, MOVE_PROTECT),
    LEVEL_UP_MOVE(15, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER),
    LEVEL_UP_MOVE(23, MOVE_CONFUSION),
    LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT),
    LEVEL_UP_MOVE(29, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(32, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(35, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(38, MOVE_FLAIL),
    LEVEL_UP_MOVE(41, MOVE_ATTRACT),
    LEVEL_UP_MOVE(44, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(47, MOVE_IRON_HEAD),
    LEVEL_UP_END
};

static const struct LevelUpMove sMothimLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE(10, MOVE_PROTECT),
    LEVEL_UP_MOVE(15, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER),
    LEVEL_UP_MOVE(23, MOVE_CONFUSION),
    LEVEL_UP_MOVE(26, MOVE_GUST),
    LEVEL_UP_MOVE(29, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(32, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(35, MOVE_CAMOUFLAGE),
    LEVEL_UP_MOVE(38, MOVE_SILVER_WIND),
    LEVEL_UP_MOVE(41, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(44, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(47, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(50, MOVE_QUIVER_DANCE),
    LEVEL_UP_END
};
#endif //P_FAMILY_BURMY

#if P_FAMILY_COMBEE
static const struct LevelUpMove sCombeeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE(13, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(29, MOVE_BUG_BUZZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sVespiquenLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 5, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 9, MOVE_PURSUIT),
    LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(17, MOVE_DEFEND_ORDER),
    LEVEL_UP_MOVE(21, MOVE_SLASH),
    LEVEL_UP_MOVE(25, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(29, MOVE_HEAL_ORDER),
    LEVEL_UP_MOVE(33, MOVE_TOXIC),
    LEVEL_UP_MOVE(37, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(41, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(45, MOVE_ATTACK_ORDER),
    LEVEL_UP_MOVE(49, MOVE_SWAGGER),
    LEVEL_UP_MOVE(53, MOVE_DESTINY_BOND),
    LEVEL_UP_END
};
#endif //P_FAMILY_COMBEE

#if P_FAMILY_PACHIRISU
static const struct LevelUpMove sPachirisuLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_BIDE),
    LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_CHARM),
    LEVEL_UP_MOVE(13, MOVE_SPARK),
    LEVEL_UP_MOVE(17, MOVE_ENDURE),
    LEVEL_UP_MOVE(21, MOVE_SWIFT),
    LEVEL_UP_MOVE(25, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(29, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(33, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(37, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(41, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(45, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(49, MOVE_HYPER_FANG),
    LEVEL_UP_END
};
#endif //P_FAMILY_PACHIRISU

#if P_FAMILY_BUIZEL
static const struct LevelUpMove sBuizelLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(18, MOVE_PURSUIT),
    LEVEL_UP_MOVE(21, MOVE_SWIFT),
    LEVEL_UP_MOVE(24, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(27, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(31, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(35, MOVE_RAZOR_WIND),
    LEVEL_UP_MOVE(38, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(41, MOVE_AGILITY),
    LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sFloatzelLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(18, MOVE_PURSUIT),
    LEVEL_UP_MOVE(21, MOVE_SWIFT),
    LEVEL_UP_MOVE(24, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(29, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(35, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(41, MOVE_RAZOR_WIND),
    LEVEL_UP_MOVE(46, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(51, MOVE_AGILITY),
    LEVEL_UP_MOVE(57, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_BUIZEL

#if P_FAMILY_CHERUBI
static const struct LevelUpMove sCherubiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MORNING_SUN),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 7, MOVE_GROWTH),
    LEVEL_UP_MOVE(10, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(13, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(22, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(28, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(37, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(40, MOVE_LUCKY_CHANT),
    LEVEL_UP_END
};

static const struct LevelUpMove sCherrimLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MORNING_SUN),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 7, MOVE_GROWTH),
    LEVEL_UP_MOVE(10, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(13, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(22, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(25, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE(30, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(35, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(48, MOVE_LUCKY_CHANT),
    LEVEL_UP_END
};
#endif //P_FAMILY_CHERUBI

#if P_FAMILY_SHELLOS
static const struct LevelUpMove sShellosLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 2, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 4, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(11, MOVE_MUD_BOMB),
    LEVEL_UP_MOVE(16, MOVE_HIDDEN_POWER),
    LEVEL_UP_MOVE(22, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(29, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(37, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(46, MOVE_RECOVER),
    LEVEL_UP_END
};

static const struct LevelUpMove sGastrodonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE( 2, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 4, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(11, MOVE_MUD_BOMB),
    LEVEL_UP_MOVE(16, MOVE_HIDDEN_POWER),
    LEVEL_UP_MOVE(22, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(29, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(41, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(54, MOVE_RECOVER),
    LEVEL_UP_END
};
#endif //P_FAMILY_SHELLOS

#if P_FAMILY_DRIFLOON
static const struct LevelUpMove sDrifloonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
    LEVEL_UP_MOVE( 1, MOVE_MINIMIZE),
    LEVEL_UP_MOVE( 4, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 8, MOVE_GUST),
    LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(16, MOVE_PAYBACK),
    LEVEL_UP_MOVE(20, MOVE_OMINOUS_WIND),
    LEVEL_UP_MOVE(25, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(27, MOVE_HEX),
    LEVEL_UP_MOVE(32, MOVE_SWALLOW),
    LEVEL_UP_MOVE(32, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(40, MOVE_AMNESIA),
    LEVEL_UP_MOVE(44, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(50, MOVE_EXPLOSION),
    LEVEL_UP_END
};

static const struct LevelUpMove sDrifblimLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
    LEVEL_UP_MOVE( 1, MOVE_MINIMIZE),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 4, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 8, MOVE_GUST),
    LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(16, MOVE_PAYBACK),
    LEVEL_UP_MOVE(20, MOVE_OMINOUS_WIND),
    LEVEL_UP_MOVE(25, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(27, MOVE_HEX),
    LEVEL_UP_MOVE(34, MOVE_SWALLOW),
    LEVEL_UP_MOVE(34, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(46, MOVE_AMNESIA),
    LEVEL_UP_MOVE(52, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(60, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_DRIFLOON

#if P_FAMILY_BUNEARY
static const struct LevelUpMove sBunearyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
    LEVEL_UP_MOVE( 6, MOVE_ENDURE),
    LEVEL_UP_MOVE(13, MOVE_FRUSTRATION),
    LEVEL_UP_MOVE(16, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(23, MOVE_JUMP_KICK),
    LEVEL_UP_MOVE(26, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(33, MOVE_AGILITY),
    LEVEL_UP_MOVE(36, MOVE_DIZZY_PUNCH),
    LEVEL_UP_MOVE(43, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE(46, MOVE_CHARM),
    LEVEL_UP_MOVE(53, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE(56, MOVE_BOUNCE),
    LEVEL_UP_MOVE(63, MOVE_HEALING_WISH),
    LEVEL_UP_END
};

static const struct LevelUpMove sLopunnyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE( 1, MOVE_MAGIC_COAT),
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
    LEVEL_UP_MOVE( 6, MOVE_ENDURE),
    LEVEL_UP_MOVE(13, MOVE_RETURN),
    LEVEL_UP_MOVE(16, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(23, MOVE_JUMP_KICK),
    LEVEL_UP_MOVE(26, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(33, MOVE_AGILITY),
    LEVEL_UP_MOVE(36, MOVE_DIZZY_PUNCH),
    LEVEL_UP_MOVE(43, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE(46, MOVE_CHARM),
    LEVEL_UP_MOVE(53, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE(56, MOVE_BOUNCE),
    LEVEL_UP_MOVE(63, MOVE_HEALING_WISH),
    LEVEL_UP_END
};
#endif //P_FAMILY_BUNEARY

#if P_FAMILY_GLAMEOW
static const struct LevelUpMove sGlameowLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 5, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 8, MOVE_GROWL),
    LEVEL_UP_MOVE(13, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(25, MOVE_CHARM),
    LEVEL_UP_MOVE(29, MOVE_ASSIST),
    LEVEL_UP_MOVE(32, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(37, MOVE_SLASH),
    LEVEL_UP_MOVE(41, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(44, MOVE_ATTRACT),
    LEVEL_UP_MOVE(48, MOVE_HONE_CLAWS),
    LEVEL_UP_END
};

static const struct LevelUpMove sPuruglyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 8, MOVE_GROWL),
    LEVEL_UP_MOVE(13, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(25, MOVE_CHARM),
    LEVEL_UP_MOVE(29, MOVE_ASSIST),
    LEVEL_UP_MOVE(32, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(37, MOVE_SLASH),
    LEVEL_UP_MOVE(38, MOVE_SWAGGER),
    LEVEL_UP_MOVE(45, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(52, MOVE_ATTRACT),
    LEVEL_UP_MOVE(60, MOVE_HONE_CLAWS),
    LEVEL_UP_END
};
#endif //P_FAMILY_GLAMEOW

#if P_FAMILY_STUNKY
static const struct LevelUpMove sStunkyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 4, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 7, MOVE_SCREECH),
    LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(14, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(18, MOVE_FEINT),
    LEVEL_UP_MOVE(22, MOVE_SLASH),
    LEVEL_UP_MOVE(27, MOVE_TOXIC),
    LEVEL_UP_MOVE(32, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(37, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(43, MOVE_MEMENTO),
    LEVEL_UP_MOVE(49, MOVE_EXPLOSION),
    LEVEL_UP_END
};

static const struct LevelUpMove sSkuntankLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 4, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 7, MOVE_SCREECH),
    LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(14, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(18, MOVE_FEINT),
    LEVEL_UP_MOVE(22, MOVE_SLASH),
    LEVEL_UP_MOVE(27, MOVE_TOXIC),
    LEVEL_UP_MOVE(32, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(41, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(51, MOVE_MEMENTO),
    LEVEL_UP_MOVE(61, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_STUNKY

#if P_FAMILY_BRONZOR
static const struct LevelUpMove sBronzorLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 5, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 9, MOVE_IMPRISON),
    LEVEL_UP_MOVE(11, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(15, MOVE_PSYWAVE),
    LEVEL_UP_MOVE(19, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(21, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(25, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(29, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(31, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(35, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(39, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(41, MOVE_PAYBACK),
    LEVEL_UP_MOVE(45, MOVE_HEAL_BLOCK),
    LEVEL_UP_MOVE(49, MOVE_HEAVY_SLAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sBronzongLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE( 1, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 1, MOVE_IMPRISON),
    LEVEL_UP_MOVE( 5, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 9, MOVE_IMPRISON),
    LEVEL_UP_MOVE(11, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(15, MOVE_PSYWAVE),
    LEVEL_UP_MOVE(19, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(21, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(25, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(29, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(31, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(33, MOVE_BLOCK),
    LEVEL_UP_MOVE(36, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(42, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(46, MOVE_PAYBACK),
    LEVEL_UP_MOVE(52, MOVE_HEAL_BLOCK),
    LEVEL_UP_MOVE(58, MOVE_HEAVY_SLAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_BRONZOR

#if P_FAMILY_CHATOT
static const struct LevelUpMove sChatotLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 5, MOVE_GROWL),
    LEVEL_UP_MOVE( 9, MOVE_MIRROR_MOVE),
    LEVEL_UP_MOVE(13, MOVE_SING),
    LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(21, MOVE_CHATTER),
    LEVEL_UP_MOVE(25, MOVE_TAUNT),
    LEVEL_UP_MOVE(29, MOVE_ROUND),
    LEVEL_UP_MOVE(33, MOVE_MIMIC),
    LEVEL_UP_MOVE(37, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(41, MOVE_ROOST),
    LEVEL_UP_MOVE(45, MOVE_UPROAR),
    LEVEL_UP_MOVE(49, MOVE_SYNCHRONOISE),
    LEVEL_UP_MOVE(53, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(57, MOVE_HYPER_VOICE),
    LEVEL_UP_END
};
#endif //P_FAMILY_CHATOT

#if P_FAMILY_SPIRITOMB
static const struct LevelUpMove sSpiritombLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CURSE),
    LEVEL_UP_MOVE( 1, MOVE_PURSUIT),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 1, MOVE_SPITE),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE( 7, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(19, MOVE_DREAM_EATER),
    LEVEL_UP_MOVE(25, MOVE_OMINOUS_WIND),
    LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(37, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(43, MOVE_MEMENTO),
    LEVEL_UP_MOVE(49, MOVE_DARK_PULSE),
    LEVEL_UP_END
};
#endif //P_FAMILY_SPIRITOMB

#if P_FAMILY_GIBLE
static const struct LevelUpMove sGibleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE(13, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(19, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(25, MOVE_SLASH),
    LEVEL_UP_MOVE(27, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(31, MOVE_DIG),
    LEVEL_UP_MOVE(37, MOVE_DRAGON_RUSH),
    LEVEL_UP_END
};

static const struct LevelUpMove sGabiteLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE(13, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(19, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(24, MOVE_DUAL_CHOP),
    LEVEL_UP_MOVE(28, MOVE_SLASH),
    LEVEL_UP_MOVE(33, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(40, MOVE_DIG),
    LEVEL_UP_MOVE(49, MOVE_DRAGON_RUSH),
    LEVEL_UP_END
};

static const struct LevelUpMove sGarchompLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE( 1, MOVE_SANDSTORM),
    LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE(13, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(19, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(24, MOVE_DUAL_CHOP),
    LEVEL_UP_MOVE(28, MOVE_SLASH),
    LEVEL_UP_MOVE(33, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(40, MOVE_DIG),
    LEVEL_UP_MOVE(48, MOVE_CRUNCH),
    LEVEL_UP_MOVE(55, MOVE_DRAGON_RUSH),
    LEVEL_UP_END
};
#endif //P_FAMILY_GIBLE

#if P_FAMILY_RIOLU
static const struct LevelUpMove sRioluLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_ENDURE),
    LEVEL_UP_MOVE( 6, MOVE_COUNTER),
    LEVEL_UP_MOVE(11, MOVE_FEINT),
    LEVEL_UP_MOVE(15, MOVE_FORCE_PALM),
    LEVEL_UP_MOVE(19, MOVE_COPYCAT),
    LEVEL_UP_MOVE(24, MOVE_SCREECH),
    LEVEL_UP_MOVE(29, MOVE_REVERSAL),
    LEVEL_UP_MOVE(47, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(55, MOVE_FINAL_GAMBIT),
    LEVEL_UP_END
};

static const struct LevelUpMove sLucarioLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_DETECT),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 6, MOVE_COUNTER),
    LEVEL_UP_MOVE(11, MOVE_FEINT),
    LEVEL_UP_MOVE(15, MOVE_FORCE_PALM),
    LEVEL_UP_MOVE(19, MOVE_ME_FIRST),
    LEVEL_UP_MOVE(24, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(29, MOVE_BONE_RUSH),
    LEVEL_UP_MOVE(33, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(42, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(47, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(51, MOVE_AURA_SPHERE),
    LEVEL_UP_MOVE(55, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(60, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(65, MOVE_EXTREME_SPEED),
    LEVEL_UP_END
};
#endif //P_FAMILY_RIOLU

#if P_FAMILY_HIPPOPOTAS
static const struct LevelUpMove sHippopotasLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_YAWN),
    LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(19, MOVE_DIG),
    LEVEL_UP_MOVE(25, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(31, MOVE_CRUNCH),
    LEVEL_UP_MOVE(37, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(50, MOVE_FISSURE),
    LEVEL_UP_END
};

static const struct LevelUpMove sHippowdonLevelUpLearnset[] = {
    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_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_YAWN),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_YAWN),
    LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(19, MOVE_DIG),
    LEVEL_UP_MOVE(25, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(31, MOVE_CRUNCH),
    LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(60, MOVE_FISSURE),
    LEVEL_UP_END
};
#endif //P_FAMILY_HIPPOPOTAS

#if P_FAMILY_SKORUPI
static const struct LevelUpMove sSkorupiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(13, MOVE_ACUPRESSURE),
    LEVEL_UP_MOVE(16, MOVE_PURSUIT),
    LEVEL_UP_MOVE(20, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(23, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(27, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(30, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(34, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(38, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(41, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(45, MOVE_CRUNCH),
    LEVEL_UP_MOVE(49, MOVE_CROSS_POISON),
    LEVEL_UP_END
};

static const struct LevelUpMove sDrapionLevelUpLearnset[] = {
    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_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE( 5, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(13, MOVE_ACUPRESSURE),
    LEVEL_UP_MOVE(16, MOVE_PURSUIT),
    LEVEL_UP_MOVE(20, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(23, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(27, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(30, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(34, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(38, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(43, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(49, MOVE_CRUNCH),
    LEVEL_UP_MOVE(57, MOVE_CROSS_POISON),
    LEVEL_UP_END
};
#endif //P_FAMILY_SKORUPI

#if P_FAMILY_CROAGUNK
static const struct LevelUpMove sCroagunkLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 3, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 8, MOVE_POISON_STING),
    LEVEL_UP_MOVE(10, MOVE_TAUNT),
    LEVEL_UP_MOVE(15, MOVE_PURSUIT),
    LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(22, MOVE_REVENGE),
    LEVEL_UP_MOVE(24, MOVE_SWAGGER),
    LEVEL_UP_MOVE(29, MOVE_MUD_BOMB),
    LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(36, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(38, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(43, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(45, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(50, MOVE_FLATTER),
    LEVEL_UP_END
};

static const struct LevelUpMove sToxicroakLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 3, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 8, MOVE_POISON_STING),
    LEVEL_UP_MOVE(10, MOVE_TAUNT),
    LEVEL_UP_MOVE(15, MOVE_PURSUIT),
    LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(22, MOVE_REVENGE),
    LEVEL_UP_MOVE(24, MOVE_SWAGGER),
    LEVEL_UP_MOVE(29, MOVE_MUD_BOMB),
    LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(36, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(41, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(49, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(54, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(62, MOVE_FLATTER),
    LEVEL_UP_END
};
#endif //P_FAMILY_CROAGUNK

#if P_FAMILY_CARNIVINE
static const struct LevelUpMove sCarnivineLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(11, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(21, MOVE_INGRAIN),
    LEVEL_UP_MOVE(27, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(31, MOVE_LEAF_TORNADO),
    LEVEL_UP_MOVE(37, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(37, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(37, MOVE_SWALLOW),
    LEVEL_UP_MOVE(41, MOVE_CRUNCH),
    LEVEL_UP_MOVE(47, MOVE_WRING_OUT),
    LEVEL_UP_MOVE(51, MOVE_POWER_WHIP),
    LEVEL_UP_END
};
#endif //P_FAMILY_CARNIVINE

#if P_FAMILY_FINNEON
static const struct LevelUpMove sFinneonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 6, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(10, MOVE_ATTRACT),
    LEVEL_UP_MOVE(13, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(17, MOVE_GUST),
    LEVEL_UP_MOVE(22, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(26, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(29, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(33, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(38, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(42, MOVE_U_TURN),
    LEVEL_UP_MOVE(45, MOVE_BOUNCE),
    LEVEL_UP_MOVE(49, MOVE_SILVER_WIND),
    LEVEL_UP_MOVE(54, MOVE_SOAK),
    LEVEL_UP_END
};

static const struct LevelUpMove sLumineonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_ATTRACT),
    LEVEL_UP_MOVE( 6, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(10, MOVE_ATTRACT),
    LEVEL_UP_MOVE(13, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(17, MOVE_GUST),
    LEVEL_UP_MOVE(22, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(26, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(29, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(35, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(42, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(48, MOVE_U_TURN),
    LEVEL_UP_MOVE(53, MOVE_BOUNCE),
    LEVEL_UP_MOVE(59, MOVE_SILVER_WIND),
    LEVEL_UP_MOVE(66, MOVE_SOAK),
    LEVEL_UP_END
};
#endif //P_FAMILY_FINNEON

#if P_FAMILY_SNOVER
static const struct LevelUpMove sSnoverLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 9, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(13, MOVE_GRASS_WHISTLE),
    LEVEL_UP_MOVE(17, MOVE_SWAGGER),
    LEVEL_UP_MOVE(21, MOVE_MIST),
    LEVEL_UP_MOVE(26, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(31, MOVE_INGRAIN),
    LEVEL_UP_MOVE(36, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE(41, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(46, MOVE_SHEER_COLD),
    LEVEL_UP_END
};

static const struct LevelUpMove sAbomasnowLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_ICY_WIND),
    LEVEL_UP_MOVE( 5, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 9, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(13, MOVE_GRASS_WHISTLE),
    LEVEL_UP_MOVE(17, MOVE_SWAGGER),
    LEVEL_UP_MOVE(21, MOVE_MIST),
    LEVEL_UP_MOVE(26, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(31, MOVE_INGRAIN),
    LEVEL_UP_MOVE(36, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE(47, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(58, MOVE_SHEER_COLD),
    LEVEL_UP_END
};
#endif //P_FAMILY_SNOVER

#if P_FAMILY_ROTOM
static const struct LevelUpMove sRotomLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TRICK),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 8, MOVE_UPROAR),
    LEVEL_UP_MOVE(15, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(22, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE(29, MOVE_OMINOUS_WIND),
    LEVEL_UP_MOVE(36, MOVE_SUBSTITUTE),
    LEVEL_UP_MOVE(43, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(50, MOVE_HEX),
    LEVEL_UP_MOVE(57, MOVE_CHARGE),
    LEVEL_UP_MOVE(64, MOVE_DISCHARGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_ROTOM

#if P_FAMILY_UXIE
static const struct LevelUpMove sUxieLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_REST),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 6, MOVE_IMPRISON),
    LEVEL_UP_MOVE(16, MOVE_ENDURE),
    LEVEL_UP_MOVE(21, MOVE_SWIFT),
    LEVEL_UP_MOVE(31, MOVE_YAWN),
    LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(46, MOVE_AMNESIA),
    LEVEL_UP_MOVE(51, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(61, MOVE_FLAIL),
    LEVEL_UP_MOVE(66, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(76, MOVE_MEMENTO),
    LEVEL_UP_END
};
#endif //P_FAMILY_UXIE

#if P_FAMILY_MESPRIT
static const struct LevelUpMove sMespritLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_REST),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 6, MOVE_IMPRISON),
    LEVEL_UP_MOVE(16, MOVE_PROTECT),
    LEVEL_UP_MOVE(21, MOVE_SWIFT),
    LEVEL_UP_MOVE(31, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(46, MOVE_CHARM),
    LEVEL_UP_MOVE(51, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(61, MOVE_COPYCAT),
    LEVEL_UP_MOVE(66, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(76, MOVE_HEALING_WISH),
    LEVEL_UP_END
};
#endif //P_FAMILY_MESPRIT

#if P_FAMILY_AZELF
static const struct LevelUpMove sAzelfLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_REST),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 6, MOVE_IMPRISON),
    LEVEL_UP_MOVE(16, MOVE_DETECT),
    LEVEL_UP_MOVE(21, MOVE_SWIFT),
    LEVEL_UP_MOVE(31, MOVE_UPROAR),
    LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(51, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(61, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(66, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(76, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_AZELF

#if P_FAMILY_DIALGA
static const struct LevelUpMove sDialgaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 6, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(15, MOVE_SLASH),
    LEVEL_UP_MOVE(19, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(24, MOVE_METAL_BURST),
    LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(33, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(37, MOVE_AURA_SPHERE),
    LEVEL_UP_MOVE(42, MOVE_IRON_TAIL),
    LEVEL_UP_MOVE(46, MOVE_ROAR_OF_TIME),
    LEVEL_UP_MOVE(50, MOVE_FLASH_CANNON),
    LEVEL_UP_END
};
#endif //P_FAMILY_DIALGA

#if P_FAMILY_PALKIA
static const struct LevelUpMove sPalkiaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 6, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(15, MOVE_SLASH),
    LEVEL_UP_MOVE(19, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(33, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(33, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(37, MOVE_AURA_SPHERE),
    LEVEL_UP_MOVE(46, MOVE_SPACIAL_REND),
    LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_PALKIA

#if P_FAMILY_HEATRAN
static const struct LevelUpMove sHeatranLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE( 9, MOVE_LEER),
    LEVEL_UP_MOVE(17, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(25, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(33, MOVE_CRUNCH),
    LEVEL_UP_MOVE(41, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(49, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(57, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(65, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(73, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(81, MOVE_HEAT_WAVE),
    LEVEL_UP_MOVE(88, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(96, MOVE_MAGMA_STORM),
    LEVEL_UP_END
};
#endif //P_FAMILY_HEATRAN

#if P_FAMILY_REGIGIGAS
static const struct LevelUpMove sRegigigasLevelUpLearnset[] = {
    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_DIZZY_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
    LEVEL_UP_MOVE(25, MOVE_REVENGE),
    LEVEL_UP_MOVE(40, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(50, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(65, MOVE_PAYBACK),
    LEVEL_UP_MOVE(75, MOVE_CRUSH_GRIP),
    LEVEL_UP_MOVE(90, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(100, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_REGIGIGAS

#if P_FAMILY_GIRATINA
static const struct LevelUpMove sGiratinaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 6, MOVE_OMINOUS_WIND),
    LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(15, MOVE_SLASH),
    LEVEL_UP_MOVE(19, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(24, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(33, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(37, MOVE_AURA_SPHERE),
    LEVEL_UP_MOVE(42, MOVE_SHADOW_CLAW),
    LEVEL_UP_MOVE(46, MOVE_SHADOW_FORCE),
    LEVEL_UP_MOVE(50, MOVE_HEX),
    LEVEL_UP_END
};
#endif //P_FAMILY_GIRATINA

#if P_FAMILY_CRESSELIA
static const struct LevelUpMove sCresseliaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(11, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(20, MOVE_MIST),
    LEVEL_UP_MOVE(29, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(38, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(47, MOVE_SLASH),
    LEVEL_UP_MOVE(57, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(66, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(75, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE(84, MOVE_LUNAR_DANCE),
    LEVEL_UP_MOVE(93, MOVE_PSYCHIC),
    LEVEL_UP_END
};
#endif //P_FAMILY_CRESSELIA

#if P_FAMILY_MANAPHY
static const struct LevelUpMove sPhioneLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 9, MOVE_CHARM),
    LEVEL_UP_MOVE(16, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(46, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(54, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(61, MOVE_DIVE),
    LEVEL_UP_MOVE(69, MOVE_RAIN_DANCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sManaphyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TAIL_GLOW),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 9, MOVE_CHARM),
    LEVEL_UP_MOVE(16, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(46, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(54, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(61, MOVE_DIVE),
    LEVEL_UP_MOVE(69, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(76, MOVE_HEART_SWAP),
    LEVEL_UP_END
};
#endif //P_FAMILY_MANAPHY

#if P_FAMILY_DARKRAI
static const struct LevelUpMove sDarkraiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_OMINOUS_WIND),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(29, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(38, MOVE_NIGHTMARE),
    LEVEL_UP_MOVE(47, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(57, MOVE_HAZE),
    LEVEL_UP_MOVE(66, MOVE_DARK_VOID),
    LEVEL_UP_MOVE(75, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(84, MOVE_DREAM_EATER),
    LEVEL_UP_MOVE(93, MOVE_DARK_PULSE),
    LEVEL_UP_END
};
#endif //P_FAMILY_DARKRAI

#if P_FAMILY_SHAYMIN
static const struct LevelUpMove sShayminLandLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(19, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(28, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(46, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(55, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(64, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(73, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(82, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(91, MOVE_HEALING_WISH),
    LEVEL_UP_MOVE(100, MOVE_SEED_FLARE),
    LEVEL_UP_END
};

static const struct LevelUpMove sShayminSkyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(19, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(28, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(46, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(55, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(64, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(73, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(82, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(91, MOVE_LEAF_STORM),
    LEVEL_UP_MOVE(100, MOVE_SEED_FLARE),
    LEVEL_UP_END
};
#endif //P_FAMILY_SHAYMIN

#if P_FAMILY_ARCEUS
static const struct LevelUpMove sArceusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE( 1, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE( 1, MOVE_PUNISHMENT),
    LEVEL_UP_MOVE(10, MOVE_GRAVITY),
    LEVEL_UP_MOVE(20, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(30, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(40, MOVE_EXTREME_SPEED),
    LEVEL_UP_MOVE(50, MOVE_REFRESH),
    LEVEL_UP_MOVE(60, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(70, MOVE_RECOVER),
    LEVEL_UP_MOVE(80, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(90, MOVE_PERISH_SONG),
    LEVEL_UP_MOVE(100, MOVE_JUDGMENT),
    LEVEL_UP_END
};
#endif //P_FAMILY_ARCEUS

#if P_FAMILY_VICTINI
static const struct LevelUpMove sVictiniLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SEARING_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_INCINERATE),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_ENDURE),
    LEVEL_UP_MOVE(17, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(25, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(33, MOVE_REVERSAL),
    LEVEL_UP_MOVE(41, MOVE_FLAME_BURST),
    LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(57, MOVE_INFERNO),
    LEVEL_UP_MOVE(65, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(73, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE(81, MOVE_FINAL_GAMBIT),
    LEVEL_UP_MOVE(89, MOVE_STORED_POWER),
    LEVEL_UP_MOVE(97, MOVE_OVERHEAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_VICTINI

#if P_FAMILY_SNIVY
static const struct LevelUpMove sSnivyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE(10, MOVE_WRAP),
    LEVEL_UP_MOVE(13, MOVE_GROWTH),
    LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO),
    LEVEL_UP_MOVE(19, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(22, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(25, MOVE_SLAM),
    LEVEL_UP_MOVE(28, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(31, MOVE_COIL),
    LEVEL_UP_MOVE(34, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(37, MOVE_WRING_OUT),
    LEVEL_UP_MOVE(40, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(43, MOVE_LEAF_STORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sServineLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE(10, MOVE_WRAP),
    LEVEL_UP_MOVE(13, MOVE_GROWTH),
    LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO),
    LEVEL_UP_MOVE(20, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(28, MOVE_SLAM),
    LEVEL_UP_MOVE(32, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(36, MOVE_COIL),
    LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(44, MOVE_WRING_OUT),
    LEVEL_UP_MOVE(48, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(52, MOVE_LEAF_STORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sSerperiorLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE(10, MOVE_WRAP),
    LEVEL_UP_MOVE(13, MOVE_GROWTH),
    LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO),
    LEVEL_UP_MOVE(20, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(28, MOVE_SLAM),
    LEVEL_UP_MOVE(32, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(38, MOVE_COIL),
    LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(50, MOVE_WRING_OUT),
    LEVEL_UP_MOVE(56, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(62, MOVE_LEAF_STORM),
    LEVEL_UP_END
};
#endif //P_FAMILY_SNIVY

#if P_FAMILY_TEPIG
static const struct LevelUpMove sTepigLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_EMBER),
    LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(19, MOVE_SMOG),
    LEVEL_UP_MOVE(21, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(27, MOVE_HEAT_CRASH),
    LEVEL_UP_MOVE(31, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(33, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(37, MOVE_HEAD_SMASH),
    LEVEL_UP_MOVE(39, MOVE_ROAR),
    LEVEL_UP_MOVE(43, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sPigniteLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_EMBER),
    LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(17, MOVE_ARM_THRUST),
    LEVEL_UP_MOVE(20, MOVE_SMOG),
    LEVEL_UP_MOVE(23, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(31, MOVE_HEAT_CRASH),
    LEVEL_UP_MOVE(36, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(39, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(44, MOVE_HEAD_SMASH),
    LEVEL_UP_MOVE(47, MOVE_ROAR),
    LEVEL_UP_MOVE(52, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sEmboarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_EMBER),
    LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(17, MOVE_ARM_THRUST),
    LEVEL_UP_MOVE(20, MOVE_SMOG),
    LEVEL_UP_MOVE(23, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(31, MOVE_HEAT_CRASH),
    LEVEL_UP_MOVE(38, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(50, MOVE_HEAD_SMASH),
    LEVEL_UP_MOVE(55, MOVE_ROAR),
    LEVEL_UP_MOVE(62, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};
#endif //P_FAMILY_TEPIG

#if P_FAMILY_OSHAWOTT
static const struct LevelUpMove sOshawottLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(11, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(17, MOVE_RAZOR_SHELL),
    LEVEL_UP_MOVE(19, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(23, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(25, MOVE_REVENGE),
    LEVEL_UP_MOVE(29, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(31, MOVE_ENCORE),
    LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(37, MOVE_RETALIATE),
    LEVEL_UP_MOVE(41, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sDewottLevelUpLearnset[] = {
    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_WATER_SPORT),
    LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(11, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(17, MOVE_RAZOR_SHELL),
    LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(25, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(28, MOVE_REVENGE),
    LEVEL_UP_MOVE(33, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(36, MOVE_ENCORE),
    LEVEL_UP_MOVE(41, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(44, MOVE_RETALIATE),
    LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sSamurottLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MEGAHORN),
    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_WATER_SPORT),
    LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(11, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(17, MOVE_RAZOR_SHELL),
    LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(25, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(28, MOVE_REVENGE),
    LEVEL_UP_MOVE(33, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(36, MOVE_SLASH),
    LEVEL_UP_MOVE(38, MOVE_ENCORE),
    LEVEL_UP_MOVE(45, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(50, MOVE_RETALIATE),
    LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(62, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

#if P_HISUIAN_FORMS
static const struct LevelUpMove sSamurottHisuianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 6, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(11, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(18, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(21, MOVE_CEASELESS_EDGE),
    LEVEL_UP_MOVE(25, MOVE_SLASH),
    LEVEL_UP_MOVE(34, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(40, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_HISUIAN_FORMS
#endif //P_FAMILY_OSHAWOTT

#if P_FAMILY_PATRAT
static const struct LevelUpMove sPatratLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 3, MOVE_LEER),
    LEVEL_UP_MOVE( 6, MOVE_BITE),
    LEVEL_UP_MOVE( 8, MOVE_BIDE),
    LEVEL_UP_MOVE(11, MOVE_DETECT),
    LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_CRUNCH),
    LEVEL_UP_MOVE(18, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(21, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(23, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE(26, MOVE_WORK_UP),
    LEVEL_UP_MOVE(28, MOVE_HYPER_FANG),
    LEVEL_UP_MOVE(31, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(33, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(36, MOVE_SLAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sWatchogLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
    LEVEL_UP_MOVE( 3, MOVE_LEER),
    LEVEL_UP_MOVE( 6, MOVE_BITE),
    LEVEL_UP_MOVE( 8, MOVE_BIDE),
    LEVEL_UP_MOVE(11, MOVE_DETECT),
    LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_CRUNCH),
    LEVEL_UP_MOVE(18, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(20, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(22, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(25, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE(29, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(32, MOVE_HYPER_FANG),
    LEVEL_UP_MOVE(36, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(39, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(43, MOVE_SLAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_PATRAT

#if P_FAMILY_LILLIPUP
static const struct LevelUpMove sLillipupLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE( 8, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(19, MOVE_WORK_UP),
    LEVEL_UP_MOVE(22, MOVE_CRUNCH),
    LEVEL_UP_MOVE(26, MOVE_ROAR),
    LEVEL_UP_MOVE(29, MOVE_RETALIATE),
    LEVEL_UP_MOVE(33, MOVE_REVERSAL),
    LEVEL_UP_MOVE(36, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(40, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};

static const struct LevelUpMove sHerdierLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 5, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE( 8, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(20, MOVE_WORK_UP),
    LEVEL_UP_MOVE(24, MOVE_CRUNCH),
    LEVEL_UP_MOVE(29, MOVE_ROAR),
    LEVEL_UP_MOVE(33, MOVE_RETALIATE),
    LEVEL_UP_MOVE(38, MOVE_REVERSAL),
    LEVEL_UP_MOVE(42, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(47, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};

static const struct LevelUpMove sStoutlandLevelUpLearnset[] = {
    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_LEER),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 5, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE( 8, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(20, MOVE_WORK_UP),
    LEVEL_UP_MOVE(24, MOVE_CRUNCH),
    LEVEL_UP_MOVE(29, MOVE_ROAR),
    LEVEL_UP_MOVE(36, MOVE_RETALIATE),
    LEVEL_UP_MOVE(42, MOVE_REVERSAL),
    LEVEL_UP_MOVE(51, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(59, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_LILLIPUP

#if P_FAMILY_PURRLOIN
static const struct LevelUpMove sPurrloinLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 3, MOVE_GROWL),
    LEVEL_UP_MOVE( 6, MOVE_ASSIST),
    LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(15, MOVE_PURSUIT),
    LEVEL_UP_MOVE(19, MOVE_TORMENT),
    LEVEL_UP_MOVE(21, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(24, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(28, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(30, MOVE_SLASH),
    LEVEL_UP_MOVE(33, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(37, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(39, MOVE_SNATCH),
    LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(46, MOVE_SUCKER_PUNCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sLiepardLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_ASSIST),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 3, MOVE_GROWL),
    LEVEL_UP_MOVE( 6, MOVE_ASSIST),
    LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(15, MOVE_PURSUIT),
    LEVEL_UP_MOVE(19, MOVE_TORMENT),
    LEVEL_UP_MOVE(22, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(26, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(31, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(34, MOVE_SLASH),
    LEVEL_UP_MOVE(38, MOVE_TAUNT),
    LEVEL_UP_MOVE(43, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(47, MOVE_SNATCH),
    LEVEL_UP_MOVE(50, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(55, MOVE_SUCKER_PUNCH),
    LEVEL_UP_END
};
#endif //P_FAMILY_PURRLOIN

#if P_FAMILY_PANSAGE
static const struct LevelUpMove sPansageLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_LICK),
    LEVEL_UP_MOVE(10, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(16, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(19, MOVE_BITE),
    LEVEL_UP_MOVE(22, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(25, MOVE_TORMENT),
    LEVEL_UP_MOVE(28, MOVE_FLING),
    LEVEL_UP_MOVE(31, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(34, MOVE_GRASS_KNOT),
    LEVEL_UP_MOVE(37, MOVE_RECYCLE),
    LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(43, MOVE_CRUNCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sSimisageLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB),
    LEVEL_UP_END
};
#endif //P_FAMILY_PANSAGE

#if P_FAMILY_PANSEAR
static const struct LevelUpMove sPansearLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_LICK),
    LEVEL_UP_MOVE(10, MOVE_INCINERATE),
    LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(16, MOVE_YAWN),
    LEVEL_UP_MOVE(19, MOVE_BITE),
    LEVEL_UP_MOVE(22, MOVE_FLAME_BURST),
    LEVEL_UP_MOVE(25, MOVE_AMNESIA),
    LEVEL_UP_MOVE(28, MOVE_FLING),
    LEVEL_UP_MOVE(31, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(34, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(37, MOVE_RECYCLE),
    LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(43, MOVE_CRUNCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sSimisearLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE( 1, MOVE_FLAME_BURST),
    LEVEL_UP_END
};
#endif //P_FAMILY_PANSEAR

#if P_FAMILY_PANPOUR
static const struct LevelUpMove sPanpourLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_LICK),
    LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(16, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE(19, MOVE_BITE),
    LEVEL_UP_MOVE(22, MOVE_SCALD),
    LEVEL_UP_MOVE(25, MOVE_TAUNT),
    LEVEL_UP_MOVE(28, MOVE_FLING),
    LEVEL_UP_MOVE(31, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(34, MOVE_BRINE),
    LEVEL_UP_MOVE(37, MOVE_RECYCLE),
    LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(43, MOVE_CRUNCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sSimipourLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE( 1, MOVE_SCALD),
    LEVEL_UP_END
};
#endif //P_FAMILY_PANPOUR

#if P_FAMILY_MUNNA
static const struct LevelUpMove sMunnaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 5, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE( 7, MOVE_YAWN),
    LEVEL_UP_MOVE(11, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(13, MOVE_IMPRISON),
    LEVEL_UP_MOVE(17, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(19, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(23, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(25, MOVE_SYNCHRONOISE),
    LEVEL_UP_MOVE(29, MOVE_NIGHTMARE),
    LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(35, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(37, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(41, MOVE_DREAM_EATER),
    LEVEL_UP_MOVE(43, MOVE_TELEKINESIS),
    LEVEL_UP_MOVE(47, MOVE_STORED_POWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sMusharnaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE( 1, MOVE_PSYBEAM),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_END
};
#endif //P_FAMILY_MUNNA

#if P_FAMILY_PIDOVE
static const struct LevelUpMove sPidoveLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 8, MOVE_LEER),
    LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(18, MOVE_ROOST),
    LEVEL_UP_MOVE(22, MOVE_DETECT),
    LEVEL_UP_MOVE(25, MOVE_TAUNT),
    LEVEL_UP_MOVE(29, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(32, MOVE_RAZOR_WIND),
    LEVEL_UP_MOVE(36, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(39, MOVE_SWAGGER),
    LEVEL_UP_MOVE(43, MOVE_FACADE),
    LEVEL_UP_MOVE(46, MOVE_TAILWIND),
    LEVEL_UP_MOVE(50, MOVE_SKY_ATTACK),
    LEVEL_UP_END
};

static const struct LevelUpMove sTranquillLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 8, MOVE_LEER),
    LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(18, MOVE_ROOST),
    LEVEL_UP_MOVE(23, MOVE_DETECT),
    LEVEL_UP_MOVE(27, MOVE_TAUNT),
    LEVEL_UP_MOVE(32, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(36, MOVE_RAZOR_WIND),
    LEVEL_UP_MOVE(41, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(45, MOVE_SWAGGER),
    LEVEL_UP_MOVE(50, MOVE_FACADE),
    LEVEL_UP_MOVE(54, MOVE_TAILWIND),
    LEVEL_UP_MOVE(59, MOVE_SKY_ATTACK),
    LEVEL_UP_END
};

static const struct LevelUpMove sUnfezantLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 8, MOVE_LEER),
    LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(18, MOVE_ROOST),
    LEVEL_UP_MOVE(23, MOVE_DETECT),
    LEVEL_UP_MOVE(27, MOVE_TAUNT),
    LEVEL_UP_MOVE(33, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(38, MOVE_RAZOR_WIND),
    LEVEL_UP_MOVE(44, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(49, MOVE_SWAGGER),
    LEVEL_UP_MOVE(55, MOVE_FACADE),
    LEVEL_UP_MOVE(60, MOVE_TAILWIND),
    LEVEL_UP_MOVE(66, MOVE_SKY_ATTACK),
    LEVEL_UP_END
};
#endif //P_FAMILY_PIDOVE

#if P_FAMILY_BLITZLE
static const struct LevelUpMove sBlitzleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 8, MOVE_CHARGE),
    LEVEL_UP_MOVE(11, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(22, MOVE_PURSUIT),
    LEVEL_UP_MOVE(25, MOVE_SPARK),
    LEVEL_UP_MOVE(29, MOVE_STOMP),
    LEVEL_UP_MOVE(32, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(36, MOVE_AGILITY),
    LEVEL_UP_MOVE(39, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(43, MOVE_THRASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sZebstrikaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 8, MOVE_CHARGE),
    LEVEL_UP_MOVE(11, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(22, MOVE_PURSUIT),
    LEVEL_UP_MOVE(25, MOVE_SPARK),
    LEVEL_UP_MOVE(31, MOVE_STOMP),
    LEVEL_UP_MOVE(36, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(42, MOVE_AGILITY),
    LEVEL_UP_MOVE(47, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(53, MOVE_THRASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_BLITZLE

#if P_FAMILY_ROGGENROLA
static const struct LevelUpMove sRoggenrolaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(14, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(17, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(23, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(27, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(33, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(36, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(40, MOVE_EXPLOSION),
    LEVEL_UP_END
};

static const struct LevelUpMove sBoldoreLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
    LEVEL_UP_MOVE( 4, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(14, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(17, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(23, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(25, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(36, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(42, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(48, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(55, MOVE_EXPLOSION),
    LEVEL_UP_END
};

static const struct LevelUpMove sGigalithLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
    LEVEL_UP_MOVE( 4, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(14, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(17, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(23, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(25, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(36, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(42, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(48, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(55, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_ROGGENROLA

#if P_FAMILY_WOOBAT
static const struct LevelUpMove sWoobatLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 4, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE( 8, MOVE_GUST),
    LEVEL_UP_MOVE(12, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(15, MOVE_HEART_STAMP),
    LEVEL_UP_MOVE(19, MOVE_IMPRISON),
    LEVEL_UP_MOVE(21, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(25, MOVE_ATTRACT),
    LEVEL_UP_MOVE(29, MOVE_AMNESIA),
    LEVEL_UP_MOVE(29, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(32, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(41, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(47, MOVE_ENDEAVOR),
    LEVEL_UP_END
};

static const struct LevelUpMove sSwoobatLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_ASSURANCE),
    LEVEL_UP_MOVE( 4, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE( 8, MOVE_GUST),
    LEVEL_UP_MOVE(12, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(15, MOVE_HEART_STAMP),
    LEVEL_UP_MOVE(19, MOVE_IMPRISON),
    LEVEL_UP_MOVE(21, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(25, MOVE_ATTRACT),
    LEVEL_UP_MOVE(29, MOVE_AMNESIA),
    LEVEL_UP_MOVE(29, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(32, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(41, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(47, MOVE_ENDEAVOR),
    LEVEL_UP_END
};
#endif //P_FAMILY_WOOBAT

#if P_FAMILY_DRILBUR
static const struct LevelUpMove sDrilburLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(15, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(19, MOVE_DIG),
    LEVEL_UP_MOVE(22, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(26, MOVE_SLASH),
    LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(40, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(43, MOVE_DRILL_RUN),
    LEVEL_UP_MOVE(47, MOVE_FISSURE),
    LEVEL_UP_END
};

static const struct LevelUpMove sExcadrillLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(15, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(19, MOVE_DIG),
    LEVEL_UP_MOVE(22, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(26, MOVE_SLASH),
    LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(31, MOVE_HORN_DRILL),
    LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(42, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(49, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(55, MOVE_DRILL_RUN),
    LEVEL_UP_MOVE(62, MOVE_FISSURE),
    LEVEL_UP_END
};
#endif //P_FAMILY_DRILBUR

#if P_FAMILY_AUDINO
static const struct LevelUpMove sAudinoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 5, MOVE_REFRESH),
    LEVEL_UP_MOVE(10, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(15, MOVE_ATTRACT),
    LEVEL_UP_MOVE(20, MOVE_SECRET_POWER),
    LEVEL_UP_MOVE(25, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(40, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE(45, MOVE_SIMPLE_BEAM),
    LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(55, MOVE_LAST_RESORT),
    LEVEL_UP_END
};
#endif //P_FAMILY_AUDINO

#if P_FAMILY_TIMBURR
static const struct LevelUpMove sTimburrLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 8, MOVE_BIDE),
    LEVEL_UP_MOVE(12, MOVE_LOW_KICK),
    LEVEL_UP_MOVE(16, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(20, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE(24, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(28, MOVE_BULK_UP),
    LEVEL_UP_MOVE(31, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(34, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_MOVE(37, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(40, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(43, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(46, MOVE_FOCUS_PUNCH),
    LEVEL_UP_MOVE(49, MOVE_SUPERPOWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sGurdurrLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_BIDE),
    LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 8, MOVE_BIDE),
    LEVEL_UP_MOVE(12, MOVE_LOW_KICK),
    LEVEL_UP_MOVE(16, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(20, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE(24, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(29, MOVE_BULK_UP),
    LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(37, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_MOVE(41, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(45, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(49, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(53, MOVE_FOCUS_PUNCH),
    LEVEL_UP_MOVE(57, MOVE_SUPERPOWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sConkeldurrLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_BIDE),
    LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 8, MOVE_BIDE),
    LEVEL_UP_MOVE(12, MOVE_LOW_KICK),
    LEVEL_UP_MOVE(16, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(20, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE(24, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(29, MOVE_BULK_UP),
    LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(37, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_MOVE(41, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(45, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(49, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(53, MOVE_FOCUS_PUNCH),
    LEVEL_UP_MOVE(57, MOVE_SUPERPOWER),
    LEVEL_UP_END
};
#endif //P_FAMILY_TIMBURR

#if P_FAMILY_TYMPOLE
static const struct LevelUpMove sTympoleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 9, MOVE_ROUND),
    LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(16, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(20, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(23, MOVE_UPROAR),
    LEVEL_UP_MOVE(27, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(31, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(34, MOVE_FLAIL),
    LEVEL_UP_MOVE(38, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE),
    LEVEL_UP_END
};

static const struct LevelUpMove sPalpitoadLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_ROUND),
    LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 9, MOVE_ROUND),
    LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(16, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(20, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(23, MOVE_UPROAR),
    LEVEL_UP_MOVE(28, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(33, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(37, MOVE_FLAIL),
    LEVEL_UP_MOVE(42, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(47, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(51, MOVE_HYPER_VOICE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSeismitoadLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_ROUND),
    LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 9, MOVE_ROUND),
    LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(16, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(20, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(23, MOVE_UPROAR),
    LEVEL_UP_MOVE(28, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(33, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(36, MOVE_ACID),
    LEVEL_UP_MOVE(39, MOVE_FLAIL),
    LEVEL_UP_MOVE(44, MOVE_DRAIN_PUNCH),
    LEVEL_UP_MOVE(49, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(53, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(59, MOVE_HYPER_VOICE),
    LEVEL_UP_END
};
#endif //P_FAMILY_TYMPOLE

#if P_FAMILY_THROH
static const struct LevelUpMove sThrohLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_BIDE),
    LEVEL_UP_MOVE( 9, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(13, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE(17, MOVE_VITAL_THROW),
    LEVEL_UP_MOVE(21, MOVE_REVENGE),
    LEVEL_UP_MOVE(25, MOVE_STORM_THROW),
    LEVEL_UP_MOVE(29, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(33, MOVE_BULK_UP),
    LEVEL_UP_MOVE(37, MOVE_CIRCLE_THROW),
    LEVEL_UP_MOVE(41, MOVE_ENDURE),
    LEVEL_UP_MOVE(45, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(49, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(53, MOVE_REVERSAL),
    LEVEL_UP_END
};
#endif //P_FAMILY_THROH

#if P_FAMILY_SAWK
static const struct LevelUpMove sSawkLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_BIDE),
    LEVEL_UP_MOVE( 9, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(13, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(17, MOVE_LOW_SWEEP),
    LEVEL_UP_MOVE(21, MOVE_COUNTER),
    LEVEL_UP_MOVE(25, MOVE_KARATE_CHOP),
    LEVEL_UP_MOVE(29, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(33, MOVE_BULK_UP),
    LEVEL_UP_MOVE(37, MOVE_RETALIATE),
    LEVEL_UP_MOVE(41, MOVE_ENDURE),
    LEVEL_UP_MOVE(45, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(53, MOVE_REVERSAL),
    LEVEL_UP_END
};
#endif //P_FAMILY_SAWK

#if P_FAMILY_SEWADDLE
static const struct LevelUpMove sSewaddleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 8, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(22, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(29, MOVE_ENDURE),
    LEVEL_UP_MOVE(36, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(43, MOVE_FLAIL),
    LEVEL_UP_END
};

static const struct LevelUpMove sSwadloonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GRASS_WHISTLE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(20, MOVE_PROTECT),
    LEVEL_UP_END
};

static const struct LevelUpMove sLeavannyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 8, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(22, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(29, MOVE_SLASH),
    LEVEL_UP_MOVE(32, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(36, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(39, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(43, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE(46, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(50, MOVE_LEAF_STORM),
    LEVEL_UP_END
};
#endif //P_FAMILY_SEWADDLE

#if P_FAMILY_VENIPEDE
static const struct LevelUpMove sVenipedeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 5, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 8, MOVE_SCREECH),
    LEVEL_UP_MOVE(12, MOVE_PURSUIT),
    LEVEL_UP_MOVE(15, MOVE_PROTECT),
    LEVEL_UP_MOVE(19, MOVE_POISON_TAIL),
    LEVEL_UP_MOVE(22, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(26, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(29, MOVE_AGILITY),
    LEVEL_UP_MOVE(33, MOVE_STEAMROLLER),
    LEVEL_UP_MOVE(36, MOVE_TOXIC),
    LEVEL_UP_MOVE(40, MOVE_ROCK_CLIMB),
    LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sWhirlipedeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_SCREECH),
    LEVEL_UP_MOVE( 5, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 8, MOVE_SCREECH),
    LEVEL_UP_MOVE(12, MOVE_PURSUIT),
    LEVEL_UP_MOVE(15, MOVE_PROTECT),
    LEVEL_UP_MOVE(19, MOVE_POISON_TAIL),
    LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(23, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(28, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(32, MOVE_AGILITY),
    LEVEL_UP_MOVE(37, MOVE_STEAMROLLER),
    LEVEL_UP_MOVE(41, MOVE_TOXIC),
    LEVEL_UP_MOVE(46, MOVE_ROCK_CLIMB),
    LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sScolipedeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MEGAHORN),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_SCREECH),
    LEVEL_UP_MOVE( 5, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 8, MOVE_SCREECH),
    LEVEL_UP_MOVE(12, MOVE_PURSUIT),
    LEVEL_UP_MOVE(15, MOVE_PROTECT),
    LEVEL_UP_MOVE(19, MOVE_POISON_TAIL),
    LEVEL_UP_MOVE(23, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(28, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(30, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(33, MOVE_AGILITY),
    LEVEL_UP_MOVE(39, MOVE_STEAMROLLER),
    LEVEL_UP_MOVE(44, MOVE_TOXIC),
    LEVEL_UP_MOVE(50, MOVE_ROCK_CLIMB),
    LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_VENIPEDE

#if P_FAMILY_COTTONEE
static const struct LevelUpMove sCottoneeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 4, MOVE_GROWTH),
    LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(10, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(17, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE(19, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(22, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(28, MOVE_CHARM),
    LEVEL_UP_MOVE(31, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(35, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(37, MOVE_COTTON_GUARD),
    LEVEL_UP_MOVE(40, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(44, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(46, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sWhimsicottLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE(10, MOVE_GUST),
    LEVEL_UP_MOVE(28, MOVE_TAILWIND),
    LEVEL_UP_MOVE(46, MOVE_HURRICANE),
    LEVEL_UP_END
};
#endif //P_FAMILY_COTTONEE

#if P_FAMILY_PETILIL
static const struct LevelUpMove sPetililLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 4, MOVE_GROWTH),
    LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(10, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(17, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(22, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(28, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(31, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(35, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(37, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE(40, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(44, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE(46, MOVE_LEAF_STORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sLilligantLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(10, MOVE_TEETER_DANCE),
    LEVEL_UP_MOVE(28, MOVE_QUIVER_DANCE),
    LEVEL_UP_MOVE(46, MOVE_PETAL_DANCE),
    LEVEL_UP_END
};

#if P_HISUIAN_FORMS
static const struct LevelUpMove sLilligantHisuianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 5, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 9, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(29, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(34, MOVE_DRAIN_PUNCH),
    LEVEL_UP_MOVE(37, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(37, MOVE_RECOVER),
    LEVEL_UP_MOVE(42, MOVE_VICTORY_DANCE),
    LEVEL_UP_MOVE(47, MOVE_LEAF_STORM),
    LEVEL_UP_MOVE(53, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE(57, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};
#endif //P_HISUIAN_FORMS
#endif //P_FAMILY_PETILIL

#if P_FAMILY_BASCULIN
static const struct LevelUpMove sBasculinLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 4, MOVE_UPROAR),
    LEVEL_UP_MOVE( 7, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(10, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(16, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(24, MOVE_CRUNCH),
    LEVEL_UP_MOVE(28, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(32, MOVE_SOAK),
    LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(41, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(46, MOVE_FLAIL),
    LEVEL_UP_MOVE(51, MOVE_FINAL_GAMBIT),
    LEVEL_UP_MOVE(56, MOVE_THRASH),
    LEVEL_UP_END
};

#if P_HISUIAN_FORMS
static const struct LevelUpMove sBasculinWhiteStripedLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 6, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(11, MOVE_BITE),
    LEVEL_UP_MOVE(18, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(25, MOVE_CRUNCH),
    LEVEL_UP_MOVE(34, MOVE_WAVE_CRASH),
    LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sBasculegionLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 6, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(11, MOVE_BITE),
    LEVEL_UP_MOVE(11, MOVE_HEX),
    LEVEL_UP_MOVE(18, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(25, MOVE_CRUNCH),
    LEVEL_UP_MOVE(25, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(34, MOVE_WAVE_CRASH),
    LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};
#endif //P_HISUIAN_FORMS
#endif //P_FAMILY_BASCULIN

#if P_FAMILY_SANDILE
static const struct LevelUpMove sSandileLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_RAGE),
    LEVEL_UP_MOVE( 4, MOVE_BITE),
    LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_TORMENT),
    LEVEL_UP_MOVE(13, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(16, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(19, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(22, MOVE_EMBARGO),
    LEVEL_UP_MOVE(25, MOVE_SWAGGER),
    LEVEL_UP_MOVE(28, MOVE_CRUNCH),
    LEVEL_UP_MOVE(31, MOVE_DIG),
    LEVEL_UP_MOVE(34, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(37, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(40, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(43, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(46, MOVE_THRASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sKrokorokLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_RAGE),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 4, MOVE_BITE),
    LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_TORMENT),
    LEVEL_UP_MOVE(13, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(16, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(19, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(22, MOVE_EMBARGO),
    LEVEL_UP_MOVE(25, MOVE_SWAGGER),
    LEVEL_UP_MOVE(28, MOVE_CRUNCH),
    LEVEL_UP_MOVE(32, MOVE_DIG),
    LEVEL_UP_MOVE(36, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(40, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(44, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(52, MOVE_THRASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sKrookodileLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_RAGE),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 4, MOVE_BITE),
    LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_TORMENT),
    LEVEL_UP_MOVE(13, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(16, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(19, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(22, MOVE_EMBARGO),
    LEVEL_UP_MOVE(25, MOVE_SWAGGER),
    LEVEL_UP_MOVE(28, MOVE_CRUNCH),
    LEVEL_UP_MOVE(32, MOVE_DIG),
    LEVEL_UP_MOVE(36, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(42, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(48, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(54, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(60, MOVE_OUTRAGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_SANDILE

#if P_FAMILY_DARUMAKA
static const struct LevelUpMove sDarumakaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 3, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 6, MOVE_INCINERATE),
    LEVEL_UP_MOVE( 9, MOVE_RAGE),
    LEVEL_UP_MOVE(11, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(14, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(17, MOVE_UPROAR),
    LEVEL_UP_MOVE(19, MOVE_FACADE),
    LEVEL_UP_MOVE(22, MOVE_FIRE_PUNCH),
    LEVEL_UP_MOVE(25, MOVE_WORK_UP),
    LEVEL_UP_MOVE(27, MOVE_THRASH),
    LEVEL_UP_MOVE(30, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(33, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE(35, MOVE_TAUNT),
    LEVEL_UP_MOVE(39, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(42, MOVE_OVERHEAT),
    LEVEL_UP_END
};

static const struct LevelUpMove sDarmanitanLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 1, MOVE_INCINERATE),
    LEVEL_UP_MOVE( 1, MOVE_RAGE),
    LEVEL_UP_MOVE( 3, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 6, MOVE_INCINERATE),
    LEVEL_UP_MOVE( 9, MOVE_RAGE),
    LEVEL_UP_MOVE(11, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(14, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(17, MOVE_SWAGGER),
    LEVEL_UP_MOVE(19, MOVE_FACADE),
    LEVEL_UP_MOVE(22, MOVE_FIRE_PUNCH),
    LEVEL_UP_MOVE(25, MOVE_WORK_UP),
    LEVEL_UP_MOVE(27, MOVE_THRASH),
    LEVEL_UP_MOVE(30, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(33, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE(35, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(39, MOVE_TAUNT),
    LEVEL_UP_MOVE(47, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(54, MOVE_OVERHEAT),
    LEVEL_UP_END
};

#if P_GALARIAN_FORMS
static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_TAUNT),
    LEVEL_UP_MOVE( 8, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_AVALANCHE),
    LEVEL_UP_MOVE(16, MOVE_WORK_UP),
    LEVEL_UP_MOVE(20, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(24, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH),
    LEVEL_UP_MOVE(32, MOVE_UPROAR),
    LEVEL_UP_MOVE(36, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(40, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(44, MOVE_THRASH),
    LEVEL_UP_MOVE(48, MOVE_SUPERPOWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sDarmanitanGalarianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ICICLE_CRASH),
    LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_AVALANCHE),
    LEVEL_UP_MOVE(16, MOVE_WORK_UP),
    LEVEL_UP_MOVE(20, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(24, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH),
    LEVEL_UP_MOVE(32, MOVE_UPROAR),
    LEVEL_UP_MOVE(38, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(44, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(50, MOVE_THRASH),
    LEVEL_UP_MOVE(56, MOVE_SUPERPOWER),
    LEVEL_UP_END
};
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_DARUMAKA

#if P_FAMILY_MARACTUS
static const struct LevelUpMove sMaractusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 3, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 6, MOVE_GROWTH),
    LEVEL_UP_MOVE(10, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(15, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(18, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE(22, MOVE_NEEDLE_ARM),
    LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(29, MOVE_ACUPRESSURE),
    LEVEL_UP_MOVE(33, MOVE_INGRAIN),
    LEVEL_UP_MOVE(38, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE(42, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(45, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(50, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(55, MOVE_COTTON_GUARD),
    LEVEL_UP_MOVE(57, MOVE_AFTER_YOU),
    LEVEL_UP_END
};
#endif //P_FAMILY_MARACTUS

#if P_FAMILY_DWEBBLE
static const struct LevelUpMove sDwebbleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 5, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE( 7, MOVE_WITHDRAW),
    LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(19, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(23, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(24, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(31, MOVE_SLASH),
    LEVEL_UP_MOVE(35, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(37, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE(41, MOVE_FLAIL),
    LEVEL_UP_MOVE(43, MOVE_ROCK_WRECKER),
    LEVEL_UP_END
};

static const struct LevelUpMove sCrustleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE( 7, MOVE_WITHDRAW),
    LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(19, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(23, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(24, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(31, MOVE_SLASH),
    LEVEL_UP_MOVE(38, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(43, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE(50, MOVE_FLAIL),
    LEVEL_UP_MOVE(55, MOVE_ROCK_WRECKER),
    LEVEL_UP_END
};
#endif //P_FAMILY_DWEBBLE

#if P_FAMILY_SCRAGGY
static const struct LevelUpMove sScraggyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
    LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(16, MOVE_SWAGGER),
    LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(23, MOVE_PAYBACK),
    LEVEL_UP_MOVE(27, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(31, MOVE_HIGH_JUMP_KICK),
    LEVEL_UP_MOVE(34, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(38, MOVE_CRUNCH),
    LEVEL_UP_MOVE(42, MOVE_FACADE),
    LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB),
    LEVEL_UP_MOVE(49, MOVE_FOCUS_PUNCH),
    LEVEL_UP_MOVE(53, MOVE_HEAD_SMASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sScraftyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(16, MOVE_SWAGGER),
    LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(23, MOVE_PAYBACK),
    LEVEL_UP_MOVE(27, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(31, MOVE_HIGH_JUMP_KICK),
    LEVEL_UP_MOVE(34, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(38, MOVE_CRUNCH),
    LEVEL_UP_MOVE(45, MOVE_FACADE),
    LEVEL_UP_MOVE(51, MOVE_ROCK_CLIMB),
    LEVEL_UP_MOVE(58, MOVE_FOCUS_PUNCH),
    LEVEL_UP_MOVE(65, MOVE_HEAD_SMASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_SCRAGGY

#if P_FAMILY_SIGILYPH
static const struct LevelUpMove sSigilyphLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_MIRACLE_EYE),
    LEVEL_UP_MOVE( 4, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 8, MOVE_PSYWAVE),
    LEVEL_UP_MOVE(11, MOVE_TAILWIND),
    LEVEL_UP_MOVE(14, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(18, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(21, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(24, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(28, MOVE_REFLECT),
    LEVEL_UP_MOVE(31, MOVE_SYNCHRONOISE),
    LEVEL_UP_MOVE(34, MOVE_MIRROR_MOVE),
    LEVEL_UP_MOVE(38, MOVE_GRAVITY),
    LEVEL_UP_MOVE(41, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(44, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(48, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(51, MOVE_SKY_ATTACK),
    LEVEL_UP_END
};
#endif //P_FAMILY_SIGILYPH

#if P_FAMILY_YAMASK
static const struct LevelUpMove sYamaskLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 5, MOVE_DISABLE),
    LEVEL_UP_MOVE( 9, MOVE_HAZE),
    LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(17, MOVE_HEX),
    LEVEL_UP_MOVE(21, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(25, MOVE_OMINOUS_WIND),
    LEVEL_UP_MOVE(29, MOVE_CURSE),
    LEVEL_UP_MOVE(33, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(33, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(37, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(41, MOVE_GRUDGE),
    LEVEL_UP_MOVE(45, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(49, MOVE_DESTINY_BOND),
    LEVEL_UP_END
};

static const struct LevelUpMove sCofagrigusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 1, MOVE_HAZE),
    LEVEL_UP_MOVE( 5, MOVE_DISABLE),
    LEVEL_UP_MOVE( 9, MOVE_HAZE),
    LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(17, MOVE_HEX),
    LEVEL_UP_MOVE(21, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(25, MOVE_OMINOUS_WIND),
    LEVEL_UP_MOVE(29, MOVE_CURSE),
    LEVEL_UP_MOVE(33, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(33, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(34, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(39, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(45, MOVE_GRUDGE),
    LEVEL_UP_MOVE(51, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(57, MOVE_DESTINY_BOND),
    LEVEL_UP_END
};

#if P_GALARIAN_FORMS
static const struct LevelUpMove sYamaskGalarianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 4, MOVE_HAZE),
    LEVEL_UP_MOVE( 8, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(12, MOVE_DISABLE),
    LEVEL_UP_MOVE(16, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD),
    LEVEL_UP_MOVE(24, MOVE_HEX),
    LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(32, MOVE_SLAM),
    LEVEL_UP_MOVE(36, MOVE_CURSE),
    LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(48, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(48, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(52, MOVE_DESTINY_BOND),
    LEVEL_UP_END
};

static const struct LevelUpMove sRunerigusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_HAZE),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(12, MOVE_DISABLE),
    LEVEL_UP_MOVE(16, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD),
    LEVEL_UP_MOVE(24, MOVE_HEX),
    LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(32, MOVE_SLAM),
    LEVEL_UP_MOVE(38, MOVE_CURSE),
    LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(56, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(56, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND),
    LEVEL_UP_END
};
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_YAMASK

#if P_FAMILY_TIRTOUGA
static const struct LevelUpMove sTirtougaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BIDE),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 5, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 8, MOVE_BITE),
    LEVEL_UP_MOVE(11, MOVE_PROTECT),
    LEVEL_UP_MOVE(15, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(21, MOVE_CRUNCH),
    LEVEL_UP_MOVE(25, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(28, MOVE_BRINE),
    LEVEL_UP_MOVE(31, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(35, MOVE_CURSE),
    LEVEL_UP_MOVE(38, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE(41, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(45, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(48, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sCarracostaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BIDE),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 5, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 8, MOVE_BITE),
    LEVEL_UP_MOVE(11, MOVE_PROTECT),
    LEVEL_UP_MOVE(15, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(21, MOVE_CRUNCH),
    LEVEL_UP_MOVE(25, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(28, MOVE_BRINE),
    LEVEL_UP_MOVE(31, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(35, MOVE_CURSE),
    LEVEL_UP_MOVE(40, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE(45, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(51, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(56, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(61, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_TIRTOUGA

#if P_FAMILY_ARCHEN
static const struct LevelUpMove sArchenLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 8, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(11, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(15, MOVE_PLUCK),
    LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(21, MOVE_AGILITY),
    LEVEL_UP_MOVE(25, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(28, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(31, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(35, MOVE_CRUNCH),
    LEVEL_UP_MOVE(38, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(41, MOVE_U_TURN),
    LEVEL_UP_MOVE(45, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(51, MOVE_THRASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sArcheopsLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 8, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(11, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(15, MOVE_PLUCK),
    LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(21, MOVE_AGILITY),
    LEVEL_UP_MOVE(25, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(28, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(31, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(35, MOVE_CRUNCH),
    LEVEL_UP_MOVE(40, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(45, MOVE_U_TURN),
    LEVEL_UP_MOVE(51, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(56, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(61, MOVE_THRASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_ARCHEN

#if P_FAMILY_TRUBBISH
static const struct LevelUpMove sTrubbishLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 3, MOVE_RECYCLE),
    LEVEL_UP_MOVE( 7, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(12, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(18, MOVE_SLUDGE),
    LEVEL_UP_MOVE(23, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(23, MOVE_SWALLOW),
    LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(29, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(34, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(36, MOVE_TOXIC),
    LEVEL_UP_MOVE(40, MOVE_AMNESIA),
    LEVEL_UP_MOVE(45, MOVE_GUNK_SHOT),
    LEVEL_UP_MOVE(47, MOVE_EXPLOSION),
    LEVEL_UP_END
};

static const struct LevelUpMove sGarbodorLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 1, MOVE_RECYCLE),
    LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE( 3, MOVE_RECYCLE),
    LEVEL_UP_MOVE( 7, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(12, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(18, MOVE_SLUDGE),
    LEVEL_UP_MOVE(23, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(23, MOVE_SWALLOW),
    LEVEL_UP_MOVE(25, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(29, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(34, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(39, MOVE_TOXIC),
    LEVEL_UP_MOVE(46, MOVE_AMNESIA),
    LEVEL_UP_MOVE(54, MOVE_GUNK_SHOT),
    LEVEL_UP_MOVE(59, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_TRUBBISH

#if P_FAMILY_ZORUA
static const struct LevelUpMove sZoruaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_PURSUIT),
    LEVEL_UP_MOVE( 9, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(21, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(25, MOVE_TAUNT),
    LEVEL_UP_MOVE(29, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(33, MOVE_TORMENT),
    LEVEL_UP_MOVE(37, MOVE_AGILITY),
    LEVEL_UP_MOVE(41, MOVE_EMBARGO),
    LEVEL_UP_MOVE(45, MOVE_PUNISHMENT),
    LEVEL_UP_MOVE(49, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(53, MOVE_IMPRISON),
    LEVEL_UP_MOVE(57, MOVE_NIGHT_DAZE),
    LEVEL_UP_END
};

static const struct LevelUpMove sZoroarkLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_U_TURN),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_PURSUIT),
    LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE( 5, MOVE_PURSUIT),
    LEVEL_UP_MOVE( 9, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(21, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(25, MOVE_TAUNT),
    LEVEL_UP_MOVE(29, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(30, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(34, MOVE_TORMENT),
    LEVEL_UP_MOVE(39, MOVE_AGILITY),
    LEVEL_UP_MOVE(44, MOVE_EMBARGO),
    LEVEL_UP_MOVE(49, MOVE_PUNISHMENT),
    LEVEL_UP_MOVE(54, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(59, MOVE_IMPRISON),
    LEVEL_UP_MOVE(64, MOVE_NIGHT_DAZE),
    LEVEL_UP_END
};

#if P_HISUIAN_FORMS
static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE( 6, MOVE_SNARL),
    LEVEL_UP_MOVE(11, MOVE_SWIFT),
    LEVEL_UP_MOVE(18, MOVE_BITTER_MALICE),
    LEVEL_UP_MOVE(25, MOVE_SLASH),
    LEVEL_UP_MOVE(34, MOVE_SHADOW_CLAW),
    LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT),
    LEVEL_UP_END
};

static const struct LevelUpMove sZoroarkHisuianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE( 6, MOVE_SNARL),
    LEVEL_UP_MOVE(11, MOVE_SWIFT),
    LEVEL_UP_MOVE(18, MOVE_BITTER_MALICE),
    LEVEL_UP_MOVE(25, MOVE_SLASH),
    LEVEL_UP_MOVE(34, MOVE_SHADOW_CLAW),
    LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(52, MOVE_EXTRASENSORY),
    LEVEL_UP_END
};
#endif //P_HISUIAN_FORMS
#endif //P_FAMILY_ZORUA

#if P_FAMILY_MINCCINO
static const struct LevelUpMove sMinccinoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 3, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 9, MOVE_TICKLE),
    LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(15, MOVE_ENCORE),
    LEVEL_UP_MOVE(19, MOVE_SWIFT),
    LEVEL_UP_MOVE(21, MOVE_SING),
    LEVEL_UP_MOVE(25, MOVE_TAIL_SLAP),
    LEVEL_UP_MOVE(27, MOVE_CHARM),
    LEVEL_UP_MOVE(31, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE(33, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(37, MOVE_SLAM),
    LEVEL_UP_MOVE(39, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(43, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(45, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(49, MOVE_AFTER_YOU),
    LEVEL_UP_END
};

static const struct LevelUpMove sCinccinoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_TICKLE),
    LEVEL_UP_MOVE( 1, MOVE_SING),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_SLAP),
    LEVEL_UP_END
};
#endif //P_FAMILY_MINCCINO

#if P_FAMILY_GOTHITA
static const struct LevelUpMove sGothitaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 3, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 7, MOVE_TICKLE),
    LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(16, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(19, MOVE_EMBARGO),
    LEVEL_UP_MOVE(24, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(25, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(28, MOVE_FLATTER),
    LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(33, MOVE_HEAL_BLOCK),
    LEVEL_UP_MOVE(37, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(40, MOVE_TELEKINESIS),
    LEVEL_UP_MOVE(46, MOVE_CHARM),
    LEVEL_UP_MOVE(48, MOVE_MAGIC_ROOM),
    LEVEL_UP_END
};

static const struct LevelUpMove sGothoritaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_TICKLE),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE( 3, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 7, MOVE_TICKLE),
    LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(16, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(19, MOVE_EMBARGO),
    LEVEL_UP_MOVE(24, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(25, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(28, MOVE_FLATTER),
    LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(34, MOVE_HEAL_BLOCK),
    LEVEL_UP_MOVE(39, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(43, MOVE_TELEKINESIS),
    LEVEL_UP_MOVE(50, MOVE_CHARM),
    LEVEL_UP_MOVE(53, MOVE_MAGIC_ROOM),
    LEVEL_UP_END
};

static const struct LevelUpMove sGothitelleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_TICKLE),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE( 3, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 7, MOVE_TICKLE),
    LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(14, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(16, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(19, MOVE_EMBARGO),
    LEVEL_UP_MOVE(24, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(25, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(28, MOVE_FLATTER),
    LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(34, MOVE_HEAL_BLOCK),
    LEVEL_UP_MOVE(39, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(45, MOVE_TELEKINESIS),
    LEVEL_UP_MOVE(54, MOVE_CHARM),
    LEVEL_UP_MOVE(59, MOVE_MAGIC_ROOM),
    LEVEL_UP_END
};
#endif //P_FAMILY_GOTHITA

#if P_FAMILY_SOLOSIS
static const struct LevelUpMove sSolosisLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
    LEVEL_UP_MOVE( 3, MOVE_REFLECT),
    LEVEL_UP_MOVE( 7, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(10, MOVE_SNATCH),
    LEVEL_UP_MOVE(14, MOVE_HIDDEN_POWER),
    LEVEL_UP_MOVE(16, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(19, MOVE_CHARM),
    LEVEL_UP_MOVE(24, MOVE_RECOVER),
    LEVEL_UP_MOVE(25, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(28, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(33, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(37, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP),
    LEVEL_UP_MOVE(46, MOVE_HEAL_BLOCK),
    LEVEL_UP_MOVE(48, MOVE_WONDER_ROOM),
    LEVEL_UP_END
};

static const struct LevelUpMove sDuosionLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
    LEVEL_UP_MOVE( 1, MOVE_REFLECT),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 1, MOVE_SNATCH),
    LEVEL_UP_MOVE( 3, MOVE_REFLECT),
    LEVEL_UP_MOVE( 7, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(10, MOVE_SNATCH),
    LEVEL_UP_MOVE(14, MOVE_HIDDEN_POWER),
    LEVEL_UP_MOVE(16, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(19, MOVE_CHARM),
    LEVEL_UP_MOVE(24, MOVE_RECOVER),
    LEVEL_UP_MOVE(25, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(28, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(34, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(39, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(43, MOVE_SKILL_SWAP),
    LEVEL_UP_MOVE(50, MOVE_HEAL_BLOCK),
    LEVEL_UP_MOVE(53, MOVE_WONDER_ROOM),
    LEVEL_UP_END
};

static const struct LevelUpMove sReuniclusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
    LEVEL_UP_MOVE( 1, MOVE_REFLECT),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 1, MOVE_SNATCH),
    LEVEL_UP_MOVE( 3, MOVE_REFLECT),
    LEVEL_UP_MOVE( 7, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(10, MOVE_SNATCH),
    LEVEL_UP_MOVE(14, MOVE_HIDDEN_POWER),
    LEVEL_UP_MOVE(16, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(19, MOVE_CHARM),
    LEVEL_UP_MOVE(24, MOVE_RECOVER),
    LEVEL_UP_MOVE(25, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(28, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(31, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(34, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(39, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(41, MOVE_DIZZY_PUNCH),
    LEVEL_UP_MOVE(45, MOVE_SKILL_SWAP),
    LEVEL_UP_MOVE(54, MOVE_HEAL_BLOCK),
    LEVEL_UP_MOVE(59, MOVE_WONDER_ROOM),
    LEVEL_UP_END
};
#endif //P_FAMILY_SOLOSIS

#if P_FAMILY_DUCKLETT
static const struct LevelUpMove sDucklettLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 3, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 6, MOVE_DEFOG),
    LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(24, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(27, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(30, MOVE_ROOST),
    LEVEL_UP_MOVE(34, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(37, MOVE_TAILWIND),
    LEVEL_UP_MOVE(41, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(46, MOVE_HURRICANE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSwannaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 1, MOVE_DEFOG),
    LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE( 3, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 6, MOVE_DEFOG),
    LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(24, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(27, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(30, MOVE_ROOST),
    LEVEL_UP_MOVE(34, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(40, MOVE_TAILWIND),
    LEVEL_UP_MOVE(47, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(55, MOVE_HURRICANE),
    LEVEL_UP_END
};
#endif //P_FAMILY_DUCKLETT

#if P_FAMILY_VANILLITE
static const struct LevelUpMove sVanilliteLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR),
    LEVEL_UP_MOVE( 4, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_ASTONISH),
    LEVEL_UP_MOVE(10, MOVE_UPROAR),
    LEVEL_UP_MOVE(13, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(16, MOVE_MIST),
    LEVEL_UP_MOVE(19, MOVE_AVALANCHE),
    LEVEL_UP_MOVE(22, MOVE_TAUNT),
    LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT),
    LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(35, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(40, MOVE_HAIL),
    LEVEL_UP_MOVE(44, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE(49, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(53, MOVE_SHEER_COLD),
    LEVEL_UP_END
};

static const struct LevelUpMove sVanillishLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_UPROAR),
    LEVEL_UP_MOVE( 4, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_ASTONISH),
    LEVEL_UP_MOVE(10, MOVE_UPROAR),
    LEVEL_UP_MOVE(13, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(16, MOVE_MIST),
    LEVEL_UP_MOVE(19, MOVE_AVALANCHE),
    LEVEL_UP_MOVE(22, MOVE_TAUNT),
    LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT),
    LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(36, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(42, MOVE_HAIL),
    LEVEL_UP_MOVE(47, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE(53, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(58, MOVE_SHEER_COLD),
    LEVEL_UP_END
};

static const struct LevelUpMove sVanilluxeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL),
    LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_UPROAR),
    LEVEL_UP_MOVE( 4, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_ASTONISH),
    LEVEL_UP_MOVE(10, MOVE_UPROAR),
    LEVEL_UP_MOVE(13, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(16, MOVE_MIST),
    LEVEL_UP_MOVE(19, MOVE_AVALANCHE),
    LEVEL_UP_MOVE(22, MOVE_TAUNT),
    LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT),
    LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(36, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(42, MOVE_HAIL),
    LEVEL_UP_MOVE(50, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE(59, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(67, MOVE_SHEER_COLD),
    LEVEL_UP_END
};
#endif //P_FAMILY_VANILLITE

#if P_FAMILY_DEERLING
static const struct LevelUpMove sDeerlingLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_CAMOUFLAGE),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(13, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(16, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(24, MOVE_JUMP_KICK),
    LEVEL_UP_MOVE(28, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(36, MOVE_CHARM),
    LEVEL_UP_MOVE(41, MOVE_NATURE_POWER),
    LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(51, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sSawsbuckLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MEGAHORN),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_CAMOUFLAGE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(13, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(16, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(24, MOVE_JUMP_KICK),
    LEVEL_UP_MOVE(28, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(36, MOVE_CHARM),
    LEVEL_UP_MOVE(37, MOVE_HORN_LEECH),
    LEVEL_UP_MOVE(44, MOVE_NATURE_POWER),
    LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(60, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_DEERLING

#if P_FAMILY_EMOLGA
static const struct LevelUpMove sEmolgaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE(10, MOVE_CHARGE),
    LEVEL_UP_MOVE(13, MOVE_SPARK),
    LEVEL_UP_MOVE(16, MOVE_PURSUIT),
    LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(22, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE(26, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(30, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(34, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(38, MOVE_ENCORE),
    LEVEL_UP_MOVE(42, MOVE_VOLT_SWITCH),
    LEVEL_UP_MOVE(46, MOVE_AGILITY),
    LEVEL_UP_MOVE(50, MOVE_DISCHARGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_EMOLGA

#if P_FAMILY_KARRABLAST
static const struct LevelUpMove sKarrablastLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 8, MOVE_ENDURE),
    LEVEL_UP_MOVE(13, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(16, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(25, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(32, MOVE_SLASH),
    LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(40, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(44, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(49, MOVE_FLAIL),
    LEVEL_UP_MOVE(52, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sEscavalierLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_TWINEEDLE),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 8, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(13, MOVE_TWINEEDLE),
    LEVEL_UP_MOVE(16, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(25, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(32, MOVE_SLASH),
    LEVEL_UP_MOVE(37, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(40, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(44, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(49, MOVE_REVERSAL),
    LEVEL_UP_MOVE(52, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(56, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_KARRABLAST

#if P_FAMILY_FOONGUS
static const struct LevelUpMove sFoongusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 6, MOVE_GROWTH),
    LEVEL_UP_MOVE( 8, MOVE_ASTONISH),
    LEVEL_UP_MOVE(12, MOVE_BIDE),
    LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(18, MOVE_INGRAIN),
    LEVEL_UP_MOVE(20, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(24, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(32, MOVE_TOXIC),
    LEVEL_UP_MOVE(35, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(39, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(45, MOVE_RAGE_POWDER),
    LEVEL_UP_MOVE(50, MOVE_SPORE),
    LEVEL_UP_END
};

static const struct LevelUpMove sAmoongussLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_BIDE),
    LEVEL_UP_MOVE( 6, MOVE_GROWTH),
    LEVEL_UP_MOVE( 8, MOVE_ASTONISH),
    LEVEL_UP_MOVE(12, MOVE_BIDE),
    LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(18, MOVE_INGRAIN),
    LEVEL_UP_MOVE(20, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(24, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(32, MOVE_TOXIC),
    LEVEL_UP_MOVE(35, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(43, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(49, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(54, MOVE_RAGE_POWDER),
    LEVEL_UP_MOVE(62, MOVE_SPORE),
    LEVEL_UP_END
};
#endif //P_FAMILY_FOONGUS

#if P_FAMILY_FRILLISH
static const struct LevelUpMove sFrillishLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(17, MOVE_RECOVER),
    LEVEL_UP_MOVE(22, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(27, MOVE_OMINOUS_WIND),
    LEVEL_UP_MOVE(32, MOVE_BRINE),
    LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(43, MOVE_HEX),
    LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(55, MOVE_WRING_OUT),
    LEVEL_UP_MOVE(61, MOVE_WATER_SPOUT),
    LEVEL_UP_END
};

static const struct LevelUpMove sJellicentLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(17, MOVE_RECOVER),
    LEVEL_UP_MOVE(22, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(27, MOVE_OMINOUS_WIND),
    LEVEL_UP_MOVE(32, MOVE_BRINE),
    LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(45, MOVE_HEX),
    LEVEL_UP_MOVE(53, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(61, MOVE_WRING_OUT),
    LEVEL_UP_MOVE(69, MOVE_WATER_SPOUT),
    LEVEL_UP_END
};
#endif //P_FAMILY_FRILLISH

#if P_FAMILY_ALOMOMOLA
static const struct LevelUpMove sAlomomolaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 5, MOVE_AQUA_RING),
    LEVEL_UP_MOVE( 9, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(17, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(21, MOVE_PROTECT),
    LEVEL_UP_MOVE(25, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(29, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE(33, MOVE_SOAK),
    LEVEL_UP_MOVE(37, MOVE_WISH),
    LEVEL_UP_MOVE(41, MOVE_BRINE),
    LEVEL_UP_MOVE(45, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(49, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(53, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(57, MOVE_HEALING_WISH),
    LEVEL_UP_MOVE(61, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_ALOMOMOLA

#if P_FAMILY_JOLTIK
static const struct LevelUpMove sJoltikLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE( 1, MOVE_SPIDER_WEB),
    LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 7, MOVE_SCREECH),
    LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(15, MOVE_ELECTROWEB),
    LEVEL_UP_MOVE(18, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(23, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(26, MOVE_SLASH),
    LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(34, MOVE_SIGNAL_BEAM),
    LEVEL_UP_MOVE(37, MOVE_AGILITY),
    LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(45, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(48, MOVE_BUG_BUZZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sGalvantulaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE( 1, MOVE_SPIDER_WEB),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 7, MOVE_SCREECH),
    LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(15, MOVE_ELECTROWEB),
    LEVEL_UP_MOVE(18, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(23, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(26, MOVE_SLASH),
    LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(34, MOVE_SIGNAL_BEAM),
    LEVEL_UP_MOVE(40, MOVE_AGILITY),
    LEVEL_UP_MOVE(46, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(54, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(60, MOVE_BUG_BUZZ),
    LEVEL_UP_END
};
#endif //P_FAMILY_JOLTIK

#if P_FAMILY_FERROSEED
static const struct LevelUpMove sFerroseedLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 6, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 9, MOVE_CURSE),
    LEVEL_UP_MOVE(14, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(21, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(26, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(30, MOVE_MIRROR_SHOT),
    LEVEL_UP_MOVE(35, MOVE_INGRAIN),
    LEVEL_UP_MOVE(38, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(43, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(47, MOVE_PAYBACK),
    LEVEL_UP_MOVE(52, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(55, MOVE_EXPLOSION),
    LEVEL_UP_END
};

static const struct LevelUpMove sFerrothornLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ROCK_CLIMB),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 1, MOVE_CURSE),
    LEVEL_UP_MOVE( 6, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 9, MOVE_CURSE),
    LEVEL_UP_MOVE(14, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(21, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(26, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(30, MOVE_MIRROR_SHOT),
    LEVEL_UP_MOVE(35, MOVE_INGRAIN),
    LEVEL_UP_MOVE(38, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(40, MOVE_POWER_WHIP),
    LEVEL_UP_MOVE(46, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(53, MOVE_PAYBACK),
    LEVEL_UP_MOVE(61, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(67, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_FERROSEED

#if P_FAMILY_KLINK
static const struct LevelUpMove sKlinkLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE( 6, MOVE_CHARGE),
    LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(16, MOVE_GEAR_GRIND),
    LEVEL_UP_MOVE(21, MOVE_BIND),
    LEVEL_UP_MOVE(26, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(36, MOVE_MIRROR_SHOT),
    LEVEL_UP_MOVE(39, MOVE_SCREECH),
    LEVEL_UP_MOVE(42, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(45, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(48, MOVE_SHIFT_GEAR),
    LEVEL_UP_MOVE(51, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(54, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sKlangLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_GEAR_GRIND),
    LEVEL_UP_MOVE( 6, MOVE_CHARGE),
    LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(16, MOVE_GEAR_GRIND),
    LEVEL_UP_MOVE(21, MOVE_BIND),
    LEVEL_UP_MOVE(26, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(36, MOVE_MIRROR_SHOT),
    LEVEL_UP_MOVE(40, MOVE_SCREECH),
    LEVEL_UP_MOVE(44, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(48, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(52, MOVE_SHIFT_GEAR),
    LEVEL_UP_MOVE(56, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(60, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(64, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sKlinklangLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_GEAR_GRIND),
    LEVEL_UP_MOVE( 6, MOVE_CHARGE),
    LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(16, MOVE_GEAR_GRIND),
    LEVEL_UP_MOVE(21, MOVE_BIND),
    LEVEL_UP_MOVE(25, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(36, MOVE_MIRROR_SHOT),
    LEVEL_UP_MOVE(40, MOVE_SCREECH),
    LEVEL_UP_MOVE(44, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(48, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(54, MOVE_SHIFT_GEAR),
    LEVEL_UP_MOVE(60, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_KLINK

#if P_FAMILY_TYNAMO
static const struct LevelUpMove sTynamoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_SPARK),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sEelektrikLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_SPARK),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE( 9, MOVE_BIND),
    LEVEL_UP_MOVE(19, MOVE_ACID),
    LEVEL_UP_MOVE(29, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(39, MOVE_CRUNCH),
    LEVEL_UP_MOVE(44, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE(49, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(54, MOVE_COIL),
    LEVEL_UP_MOVE(59, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(64, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(69, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(74, MOVE_THRASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sEelektrossLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CRUSH_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_MOVE( 1, MOVE_DISCHARGE),
    LEVEL_UP_MOVE( 1, MOVE_CRUNCH),
    LEVEL_UP_END
};
#endif //P_FAMILY_TYNAMO

#if P_FAMILY_ELGYEM
static const struct LevelUpMove sElgyemLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 8, MOVE_HEAL_BLOCK),
    LEVEL_UP_MOVE(11, MOVE_MIRACLE_EYE),
    LEVEL_UP_MOVE(15, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(18, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(22, MOVE_HIDDEN_POWER),
    LEVEL_UP_MOVE(25, MOVE_IMPRISON),
    LEVEL_UP_MOVE(29, MOVE_SIMPLE_BEAM),
    LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(36, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(39, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(43, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(46, MOVE_RECOVER),
    LEVEL_UP_MOVE(50, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(50, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(53, MOVE_SYNCHRONOISE),
    LEVEL_UP_MOVE(56, MOVE_WONDER_ROOM),
    LEVEL_UP_END
};

static const struct LevelUpMove sBeheeyemLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_HEAL_BLOCK),
    LEVEL_UP_MOVE( 1, MOVE_MIRACLE_EYE),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 8, MOVE_HEAL_BLOCK),
    LEVEL_UP_MOVE(11, MOVE_MIRACLE_EYE),
    LEVEL_UP_MOVE(15, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(18, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(22, MOVE_HIDDEN_POWER),
    LEVEL_UP_MOVE(25, MOVE_IMPRISON),
    LEVEL_UP_MOVE(29, MOVE_SIMPLE_BEAM),
    LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(36, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(39, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(45, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(50, MOVE_RECOVER),
    LEVEL_UP_MOVE(56, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(58, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(63, MOVE_SYNCHRONOISE),
    LEVEL_UP_MOVE(68, MOVE_WONDER_ROOM),
    LEVEL_UP_END
};
#endif //P_FAMILY_ELGYEM

#if P_FAMILY_LITWICK
static const struct LevelUpMove sLitwickLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 3, MOVE_MINIMIZE),
    LEVEL_UP_MOVE( 5, MOVE_SMOG),
    LEVEL_UP_MOVE( 7, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(10, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(20, MOVE_FLAME_BURST),
    LEVEL_UP_MOVE(24, MOVE_IMPRISON),
    LEVEL_UP_MOVE(28, MOVE_HEX),
    LEVEL_UP_MOVE(33, MOVE_MEMENTO),
    LEVEL_UP_MOVE(38, MOVE_INFERNO),
    LEVEL_UP_MOVE(43, MOVE_CURSE),
    LEVEL_UP_MOVE(49, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(55, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(61, MOVE_OVERHEAT),
    LEVEL_UP_END
};

static const struct LevelUpMove sLampentLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_MINIMIZE),
    LEVEL_UP_MOVE( 1, MOVE_SMOG),
    LEVEL_UP_MOVE( 3, MOVE_MINIMIZE),
    LEVEL_UP_MOVE( 5, MOVE_SMOG),
    LEVEL_UP_MOVE( 7, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(10, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(20, MOVE_FLAME_BURST),
    LEVEL_UP_MOVE(24, MOVE_IMPRISON),
    LEVEL_UP_MOVE(28, MOVE_HEX),
    LEVEL_UP_MOVE(33, MOVE_MEMENTO),
    LEVEL_UP_MOVE(38, MOVE_INFERNO),
    LEVEL_UP_MOVE(45, MOVE_CURSE),
    LEVEL_UP_MOVE(53, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(61, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(69, MOVE_OVERHEAT),
    LEVEL_UP_END
};

static const struct LevelUpMove sChandelureLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SMOG),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 1, MOVE_FLAME_BURST),
    LEVEL_UP_MOVE( 1, MOVE_HEX),
    LEVEL_UP_END
};
#endif //P_FAMILY_LITWICK

#if P_FAMILY_AXEW
static const struct LevelUpMove sAxewLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(10, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE(13, MOVE_DUAL_CHOP),
    LEVEL_UP_MOVE(16, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(20, MOVE_SLASH),
    LEVEL_UP_MOVE(24, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(32, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(36, MOVE_TAUNT),
    LEVEL_UP_MOVE(41, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(46, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(51, MOVE_GUILLOTINE),
    LEVEL_UP_MOVE(56, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(61, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};

static const struct LevelUpMove sFraxureLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_ASSURANCE),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(10, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE(13, MOVE_DUAL_CHOP),
    LEVEL_UP_MOVE(16, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(20, MOVE_SLASH),
    LEVEL_UP_MOVE(24, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(32, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(36, MOVE_TAUNT),
    LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(48, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(54, MOVE_GUILLOTINE),
    LEVEL_UP_MOVE(60, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(66, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};

static const struct LevelUpMove sHaxorusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_ASSURANCE),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(10, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE(13, MOVE_DUAL_CHOP),
    LEVEL_UP_MOVE(16, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(20, MOVE_SLASH),
    LEVEL_UP_MOVE(24, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(32, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(36, MOVE_TAUNT),
    LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(58, MOVE_GUILLOTINE),
    LEVEL_UP_MOVE(66, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(74, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_AXEW

#if P_FAMILY_CUBCHOO
static const struct LevelUpMove sCubchooLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 5, MOVE_GROWL),
    LEVEL_UP_MOVE( 9, MOVE_BIDE),
    LEVEL_UP_MOVE(13, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(17, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(21, MOVE_BRINE),
    LEVEL_UP_MOVE(25, MOVE_ENDURE),
    LEVEL_UP_MOVE(29, MOVE_CHARM),
    LEVEL_UP_MOVE(33, MOVE_SLASH),
    LEVEL_UP_MOVE(36, MOVE_FLAIL),
    LEVEL_UP_MOVE(41, MOVE_REST),
    LEVEL_UP_MOVE(45, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(49, MOVE_HAIL),
    LEVEL_UP_MOVE(53, MOVE_THRASH),
    LEVEL_UP_MOVE(57, MOVE_SHEER_COLD),
    LEVEL_UP_END
};

static const struct LevelUpMove sBearticLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE( 1, MOVE_AQUA_JET),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_BIDE),
    LEVEL_UP_MOVE( 1, MOVE_ICY_WIND),
    LEVEL_UP_MOVE( 5, MOVE_GROWL),
    LEVEL_UP_MOVE( 9, MOVE_BIDE),
    LEVEL_UP_MOVE(13, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(17, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(21, MOVE_BRINE),
    LEVEL_UP_MOVE(25, MOVE_ENDURE),
    LEVEL_UP_MOVE(29, MOVE_SWAGGER),
    LEVEL_UP_MOVE(33, MOVE_SLASH),
    LEVEL_UP_MOVE(36, MOVE_FLAIL),
    LEVEL_UP_MOVE(37, MOVE_ICICLE_CRASH),
    LEVEL_UP_MOVE(41, MOVE_REST),
    LEVEL_UP_MOVE(45, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(53, MOVE_HAIL),
    LEVEL_UP_MOVE(59, MOVE_THRASH),
    LEVEL_UP_MOVE(66, MOVE_SHEER_COLD),
    LEVEL_UP_END
};
#endif //P_FAMILY_CUBCHOO

#if P_FAMILY_CRYOGONAL
static const struct LevelUpMove sCryogonalLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE( 5, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE( 9, MOVE_SHARPEN),
    LEVEL_UP_MOVE(13, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(17, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(21, MOVE_MIST),
    LEVEL_UP_MOVE(21, MOVE_HAZE),
    LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(29, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(33, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(37, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(37, MOVE_REFLECT),
    LEVEL_UP_MOVE(41, MOVE_SLASH),
    LEVEL_UP_MOVE(45, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(49, MOVE_RECOVER),
    LEVEL_UP_MOVE(53, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(57, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(61, MOVE_SHEER_COLD),
    LEVEL_UP_END
};
#endif //P_FAMILY_CRYOGONAL

#if P_FAMILY_SHELMET
static const struct LevelUpMove sShelmetLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE( 4, MOVE_ACID),
    LEVEL_UP_MOVE( 8, MOVE_BIDE),
    LEVEL_UP_MOVE(13, MOVE_CURSE),
    LEVEL_UP_MOVE(16, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(25, MOVE_YAWN),
    LEVEL_UP_MOVE(28, MOVE_PROTECT),
    LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(40, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(44, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(49, MOVE_RECOVER),
    LEVEL_UP_MOVE(52, MOVE_GUARD_SWAP),
    LEVEL_UP_MOVE(56, MOVE_FINAL_GAMBIT),
    LEVEL_UP_END
};

static const struct LevelUpMove sAccelgorLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 4, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE( 8, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(25, MOVE_SWIFT),
    LEVEL_UP_MOVE(28, MOVE_ME_FIRST),
    LEVEL_UP_MOVE(32, MOVE_AGILITY),
    LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(40, MOVE_U_TURN),
    LEVEL_UP_MOVE(44, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(49, MOVE_RECOVER),
    LEVEL_UP_MOVE(52, MOVE_POWER_SWAP),
    LEVEL_UP_MOVE(56, MOVE_FINAL_GAMBIT),
    LEVEL_UP_END
};
#endif //P_FAMILY_SHELMET

#if P_FAMILY_STUNFISK
static const struct LevelUpMove sStunfiskLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 5, MOVE_BIDE),
    LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(13, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(17, MOVE_CAMOUFLAGE),
    LEVEL_UP_MOVE(21, MOVE_MUD_BOMB),
    LEVEL_UP_MOVE(25, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(30, MOVE_ENDURE),
    LEVEL_UP_MOVE(35, MOVE_BOUNCE),
    LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(45, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE(50, MOVE_REVENGE),
    LEVEL_UP_MOVE(55, MOVE_FLAIL),
    LEVEL_UP_MOVE(61, MOVE_FISSURE),
    LEVEL_UP_END
};

#if P_GALARIAN_FORMS
static const struct LevelUpMove sStunfiskGalarianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 5, MOVE_ENDURE),
    LEVEL_UP_MOVE(10, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(15, MOVE_REVENGE),
    LEVEL_UP_MOVE(20, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(30, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(35, MOVE_BOUNCE),
    LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(45, MOVE_SNAP_TRAP),
    LEVEL_UP_MOVE(50, MOVE_FLAIL),
    LEVEL_UP_MOVE(55, MOVE_FISSURE),
    LEVEL_UP_END
};
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_STUNFISK

#if P_FAMILY_MIENFOO
static const struct LevelUpMove sMienfooLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 5, MOVE_MEDITATE),
    LEVEL_UP_MOVE( 9, MOVE_DETECT),
    LEVEL_UP_MOVE(13, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(21, MOVE_SWIFT),
    LEVEL_UP_MOVE(25, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(29, MOVE_FORCE_PALM),
    LEVEL_UP_MOVE(33, MOVE_DRAIN_PUNCH),
    LEVEL_UP_MOVE(37, MOVE_JUMP_KICK),
    LEVEL_UP_MOVE(41, MOVE_U_TURN),
    LEVEL_UP_MOVE(45, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(49, MOVE_BOUNCE),
    LEVEL_UP_MOVE(53, MOVE_HIGH_JUMP_KICK),
    LEVEL_UP_MOVE(57, MOVE_REVERSAL),
    LEVEL_UP_MOVE(61, MOVE_AURA_SPHERE),
    LEVEL_UP_END
};

static const struct LevelUpMove sMienshaoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_MEDITATE),
    LEVEL_UP_MOVE( 1, MOVE_DETECT),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 5, MOVE_MEDITATE),
    LEVEL_UP_MOVE( 9, MOVE_DETECT),
    LEVEL_UP_MOVE(13, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(21, MOVE_SWIFT),
    LEVEL_UP_MOVE(25, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(29, MOVE_FORCE_PALM),
    LEVEL_UP_MOVE(33, MOVE_DRAIN_PUNCH),
    LEVEL_UP_MOVE(37, MOVE_JUMP_KICK),
    LEVEL_UP_MOVE(41, MOVE_U_TURN),
    LEVEL_UP_MOVE(45, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(49, MOVE_BOUNCE),
    LEVEL_UP_MOVE(56, MOVE_HIGH_JUMP_KICK),
    LEVEL_UP_MOVE(63, MOVE_REVERSAL),
    LEVEL_UP_MOVE(70, MOVE_AURA_SPHERE),
    LEVEL_UP_END
};
#endif //P_FAMILY_MIENFOO

#if P_FAMILY_DRUDDIGON
static const struct LevelUpMove sDruddigonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 5, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE( 9, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(18, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE(21, MOVE_SLASH),
    LEVEL_UP_MOVE(25, MOVE_CRUNCH),
    LEVEL_UP_MOVE(27, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(31, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(35, MOVE_REVENGE),
    LEVEL_UP_MOVE(40, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(45, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(49, MOVE_ROCK_CLIMB),
    LEVEL_UP_MOVE(55, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(62, MOVE_OUTRAGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_DRUDDIGON

#if P_FAMILY_GOLETT
static const struct LevelUpMove sGolettLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 5, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 9, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(13, MOVE_SHADOW_PUNCH),
    LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(21, MOVE_MEGA_PUNCH),
    LEVEL_UP_MOVE(25, MOVE_MAGNITUDE),
    LEVEL_UP_MOVE(30, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_MOVE(35, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(40, MOVE_CURSE),
    LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(50, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(55, MOVE_FOCUS_PUNCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sGolurkLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 5, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 9, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(13, MOVE_SHADOW_PUNCH),
    LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(21, MOVE_MEGA_PUNCH),
    LEVEL_UP_MOVE(25, MOVE_MAGNITUDE),
    LEVEL_UP_MOVE(30, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_MOVE(35, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(40, MOVE_CURSE),
    LEVEL_UP_MOVE(43, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(60, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(70, MOVE_FOCUS_PUNCH),
    LEVEL_UP_END
};
#endif //P_FAMILY_GOLETT

#if P_FAMILY_PAWNIARD
static const struct LevelUpMove sPawniardLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 6, MOVE_LEER),
    LEVEL_UP_MOVE( 9, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(14, MOVE_TORMENT),
    LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(22, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(25, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(30, MOVE_SLASH),
    LEVEL_UP_MOVE(33, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(38, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(41, MOVE_EMBARGO),
    LEVEL_UP_MOVE(46, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(54, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(62, MOVE_GUILLOTINE),
    LEVEL_UP_END
};

static const struct LevelUpMove sBisharpLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_METAL_BURST),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_TORMENT),
    LEVEL_UP_MOVE( 6, MOVE_LEER),
    LEVEL_UP_MOVE( 9, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(14, MOVE_TORMENT),
    LEVEL_UP_MOVE(17, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(22, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(25, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(30, MOVE_SLASH),
    LEVEL_UP_MOVE(33, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(38, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(41, MOVE_EMBARGO),
    LEVEL_UP_MOVE(46, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(57, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(63, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(71, MOVE_GUILLOTINE),
    LEVEL_UP_END
};

#if P_GEN_9_CROSS_EVOS
static const struct LevelUpMove sKingambitLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_KOWTOW_CLEAVE),
    LEVEL_UP_MOVE( 1, MOVE_METAL_BURST),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE(15, MOVE_TORMENT),
    LEVEL_UP_MOVE(20, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(25, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(30, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(35, MOVE_SLASH),
    LEVEL_UP_MOVE(40, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(45, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(50, MOVE_RETALIATE),
    LEVEL_UP_MOVE(57, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(64, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(71, MOVE_GUILLOTINE),
    LEVEL_UP_END
};
#endif //P_GEN_9_CROSS_EVOS
#endif //P_FAMILY_PAWNIARD

#if P_FAMILY_BOUFFALANT
static const struct LevelUpMove sBouffalantLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PURSUIT),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 6, MOVE_RAGE),
    LEVEL_UP_MOVE(11, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE(21, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(26, MOVE_REVENGE),
    LEVEL_UP_MOVE(31, MOVE_HEAD_CHARGE),
    LEVEL_UP_MOVE(36, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(41, MOVE_MEGAHORN),
    LEVEL_UP_MOVE(46, MOVE_REVERSAL),
    LEVEL_UP_MOVE(51, MOVE_THRASH),
    LEVEL_UP_MOVE(56, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(61, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_BOUFFALANT

#if P_FAMILY_RUFFLET
static const struct LevelUpMove sRuffletLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(14, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(19, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(23, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(28, MOVE_SLASH),
    LEVEL_UP_MOVE(32, MOVE_DEFOG),
    LEVEL_UP_MOVE(37, MOVE_TAILWIND),
    LEVEL_UP_MOVE(41, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(46, MOVE_CRUSH_CLAW),
    LEVEL_UP_MOVE(50, MOVE_SKY_DROP),
    LEVEL_UP_MOVE(55, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(59, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(64, MOVE_THRASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sBraviaryLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(14, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(19, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(23, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(28, MOVE_SLASH),
    LEVEL_UP_MOVE(32, MOVE_DEFOG),
    LEVEL_UP_MOVE(37, MOVE_TAILWIND),
    LEVEL_UP_MOVE(41, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(46, MOVE_CRUSH_CLAW),
    LEVEL_UP_MOVE(50, MOVE_SKY_DROP),
    LEVEL_UP_MOVE(51, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(57, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(63, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(70, MOVE_THRASH),
    LEVEL_UP_END
};

#if P_HISUIAN_FORMS
static const struct LevelUpMove sBraviaryHisuianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 6, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(11, MOVE_TWISTER),
    LEVEL_UP_MOVE(18, MOVE_SLASH),
    LEVEL_UP_MOVE(20, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(25, MOVE_ESPER_WING),
    LEVEL_UP_MOVE(25, MOVE_ROOST),
    LEVEL_UP_MOVE(34, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(52, MOVE_HURRICANE),
    LEVEL_UP_END
};
#endif //P_HISUIAN_FORMS
#endif //P_FAMILY_RUFFLET

#if P_FAMILY_VULLABY
static const struct LevelUpMove sVullabyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_PLUCK),
    LEVEL_UP_MOVE(14, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(19, MOVE_FLATTER),
    LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(28, MOVE_PUNISHMENT),
    LEVEL_UP_MOVE(32, MOVE_DEFOG),
    LEVEL_UP_MOVE(37, MOVE_TAILWIND),
    LEVEL_UP_MOVE(41, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(46, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(50, MOVE_EMBARGO),
    LEVEL_UP_MOVE(55, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(59, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(64, MOVE_MIRROR_MOVE),
    LEVEL_UP_END
};

static const struct LevelUpMove sMandibuzzLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_PLUCK),
    LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_PLUCK),
    LEVEL_UP_MOVE(14, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(19, MOVE_FLATTER),
    LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(28, MOVE_PUNISHMENT),
    LEVEL_UP_MOVE(32, MOVE_DEFOG),
    LEVEL_UP_MOVE(37, MOVE_TAILWIND),
    LEVEL_UP_MOVE(41, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(46, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(50, MOVE_EMBARGO),
    LEVEL_UP_MOVE(51, MOVE_BONE_RUSH),
    LEVEL_UP_MOVE(57, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(63, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(70, MOVE_MIRROR_MOVE),
    LEVEL_UP_END
};
#endif //P_FAMILY_VULLABY

#if P_FAMILY_HEATMOR
static const struct LevelUpMove sHeatmorLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_INCINERATE),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 6, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(11, MOVE_BIND),
    LEVEL_UP_MOVE(16, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(21, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(26, MOVE_SNATCH),
    LEVEL_UP_MOVE(31, MOVE_FLAME_BURST),
    LEVEL_UP_MOVE(36, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(41, MOVE_SLASH),
    LEVEL_UP_MOVE(46, MOVE_AMNESIA),
    LEVEL_UP_MOVE(51, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(56, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(56, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(56, MOVE_SWALLOW),
    LEVEL_UP_MOVE(61, MOVE_INFERNO),
    LEVEL_UP_END
};
#endif //P_FAMILY_HEATMOR

#if P_FAMILY_DURANT
static const struct LevelUpMove sDurantLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 6, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(11, MOVE_BITE),
    LEVEL_UP_MOVE(16, MOVE_AGILITY),
    LEVEL_UP_MOVE(21, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(26, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(31, MOVE_CRUNCH),
    LEVEL_UP_MOVE(36, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(41, MOVE_DIG),
    LEVEL_UP_MOVE(46, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE(51, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(56, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(61, MOVE_GUILLOTINE),
    LEVEL_UP_MOVE(66, MOVE_METAL_SOUND),
    LEVEL_UP_END
};
#endif //P_FAMILY_DURANT

#if P_FAMILY_DEINO
static const struct LevelUpMove sDeinoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 9, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(17, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(20, MOVE_ROAR),
    LEVEL_UP_MOVE(25, MOVE_CRUNCH),
    LEVEL_UP_MOVE(28, MOVE_SLAM),
    LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(38, MOVE_WORK_UP),
    LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(48, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(52, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(58, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(62, MOVE_OUTRAGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sZweilousLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 9, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(17, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(20, MOVE_ROAR),
    LEVEL_UP_MOVE(25, MOVE_CRUNCH),
    LEVEL_UP_MOVE(28, MOVE_SLAM),
    LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(38, MOVE_WORK_UP),
    LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(48, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(55, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(64, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(71, MOVE_OUTRAGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sHydreigonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 9, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(17, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(20, MOVE_ROAR),
    LEVEL_UP_MOVE(25, MOVE_CRUNCH),
    LEVEL_UP_MOVE(28, MOVE_SLAM),
    LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(38, MOVE_WORK_UP),
    LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(48, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(55, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(68, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(79, MOVE_OUTRAGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_DEINO

#if P_FAMILY_LARVESTA
static const struct LevelUpMove sLarvestaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE(10, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(30, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(40, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(60, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(70, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(80, MOVE_AMNESIA),
    LEVEL_UP_MOVE(90, MOVE_THRASH),
    LEVEL_UP_MOVE(100, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sVolcaronaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE(10, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE(20, MOVE_GUST),
    LEVEL_UP_MOVE(30, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(40, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(50, MOVE_SILVER_WIND),
    LEVEL_UP_MOVE(59, MOVE_QUIVER_DANCE),
    LEVEL_UP_MOVE(60, MOVE_HEAT_WAVE),
    LEVEL_UP_MOVE(70, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(80, MOVE_RAGE_POWDER),
    LEVEL_UP_MOVE(90, MOVE_HURRICANE),
    LEVEL_UP_MOVE(100, MOVE_FIERY_DANCE),
    LEVEL_UP_END
};
#endif //P_FAMILY_LARVESTA

#if P_FAMILY_COBALION
static const struct LevelUpMove sCobalionLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(13, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(25, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(31, MOVE_RETALIATE),
    LEVEL_UP_MOVE(37, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD),
    LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(55, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(61, MOVE_WORK_UP),
    LEVEL_UP_MOVE(67, MOVE_METAL_BURST),
    LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_COBALION

#if P_FAMILY_TERRAKION
static const struct LevelUpMove sTerrakionLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(13, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(25, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(31, MOVE_RETALIATE),
    LEVEL_UP_MOVE(37, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD),
    LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(55, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(61, MOVE_WORK_UP),
    LEVEL_UP_MOVE(67, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_TERRAKION

#if P_FAMILY_VIRIZION
static const struct LevelUpMove sVirizionLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(25, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(31, MOVE_RETALIATE),
    LEVEL_UP_MOVE(37, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD),
    LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(55, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(61, MOVE_WORK_UP),
    LEVEL_UP_MOVE(67, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_VIRIZION

#if P_FAMILY_TORNADUS
static const struct LevelUpMove sTornadusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_UPROAR),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 7, MOVE_SWAGGER),
    LEVEL_UP_MOVE(13, MOVE_BITE),
    LEVEL_UP_MOVE(19, MOVE_REVENGE),
    LEVEL_UP_MOVE(25, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(37, MOVE_AGILITY),
    LEVEL_UP_MOVE(43, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(49, MOVE_CRUNCH),
    LEVEL_UP_MOVE(55, MOVE_TAILWIND),
    LEVEL_UP_MOVE(61, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(67, MOVE_HURRICANE),
    LEVEL_UP_MOVE(73, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(79, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(85, MOVE_THRASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_TORNADUS

#if P_FAMILY_THUNDURUS
static const struct LevelUpMove sThundurusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_UPROAR),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 7, MOVE_SWAGGER),
    LEVEL_UP_MOVE(13, MOVE_BITE),
    LEVEL_UP_MOVE(19, MOVE_REVENGE),
    LEVEL_UP_MOVE(25, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE(31, MOVE_HEAL_BLOCK),
    LEVEL_UP_MOVE(37, MOVE_AGILITY),
    LEVEL_UP_MOVE(43, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(49, MOVE_CRUNCH),
    LEVEL_UP_MOVE(55, MOVE_CHARGE),
    LEVEL_UP_MOVE(61, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(67, MOVE_THUNDER),
    LEVEL_UP_MOVE(73, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(79, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(85, MOVE_THRASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_THUNDURUS

#if P_FAMILY_RESHIRAM
static const struct LevelUpMove sReshiramLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(22, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(36, MOVE_IMPRISON),
    LEVEL_UP_MOVE(36, MOVE_SLASH),
    LEVEL_UP_MOVE(43, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(50, MOVE_FUSION_FLARE),
    LEVEL_UP_MOVE(54, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(71, MOVE_CRUNCH),
    LEVEL_UP_MOVE(78, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(85, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(100, MOVE_BLUE_FLARE),
    LEVEL_UP_END
};
#endif //P_FAMILY_RESHIRAM

#if P_FAMILY_ZEKROM
static const struct LevelUpMove sZekromLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(22, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(36, MOVE_IMPRISON),
    LEVEL_UP_MOVE(36, MOVE_SLASH),
    LEVEL_UP_MOVE(43, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(50, MOVE_FUSION_BOLT),
    LEVEL_UP_MOVE(54, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(71, MOVE_CRUNCH),
    LEVEL_UP_MOVE(78, MOVE_THUNDER),
    LEVEL_UP_MOVE(85, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(100, MOVE_BOLT_STRIKE),
    LEVEL_UP_END
};
#endif //P_FAMILY_ZEKROM

#if P_FAMILY_LANDORUS
static const struct LevelUpMove sLandorusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BLOCK),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE( 7, MOVE_IMPRISON),
    LEVEL_UP_MOVE(13, MOVE_PUNISHMENT),
    LEVEL_UP_MOVE(19, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(25, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(43, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(49, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(55, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(61, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(67, MOVE_FISSURE),
    LEVEL_UP_MOVE(73, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(79, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(85, MOVE_OUTRAGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_LANDORUS

#if P_FAMILY_KYUREM
static const struct LevelUpMove sKyuremLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ICY_WIND),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(22, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(36, MOVE_IMPRISON),
    LEVEL_UP_MOVE(36, MOVE_SLASH),
    LEVEL_UP_MOVE(43, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(50, MOVE_GLACIATE),
    LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(71, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(78, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(85, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE),
    LEVEL_UP_END
};

#if P_FUSION_FORMS
static const struct LevelUpMove sKyuremWhiteLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ICY_WIND),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(22, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(36, MOVE_IMPRISON),
    LEVEL_UP_MOVE(36, MOVE_SLASH),
    LEVEL_UP_MOVE(43, MOVE_FUSION_FLARE),
    LEVEL_UP_MOVE(50, MOVE_ICE_BURN),
    LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(71, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(78, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(85, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE),
    LEVEL_UP_END
};
#endif //P_FUSION_FORMS

#if P_FUSION_FORMS
static const struct LevelUpMove sKyuremBlackLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ICY_WIND),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(22, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(36, MOVE_IMPRISON),
    LEVEL_UP_MOVE(36, MOVE_SLASH),
    LEVEL_UP_MOVE(43, MOVE_FUSION_BOLT),
    LEVEL_UP_MOVE(50, MOVE_FREEZE_SHOCK),
    LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(71, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(78, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(85, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE),
    LEVEL_UP_END
};
#endif //P_FUSION_FORMS
#endif //P_FAMILY_KYUREM

#if P_FAMILY_KELDEO
static const struct LevelUpMove sKeldeoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_AQUA_JET),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(25, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(31, MOVE_RETALIATE),
    LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(43, MOVE_SACRED_SWORD),
    LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(55, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(61, MOVE_WORK_UP),
    LEVEL_UP_MOVE(67, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_KELDEO

#if P_FAMILY_MELOETTA
static const struct LevelUpMove sMeloettaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ROUND),
    LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(11, MOVE_CONFUSION),
    LEVEL_UP_MOVE(16, MOVE_SING),
    LEVEL_UP_MOVE(21, MOVE_TEETER_DANCE),
    LEVEL_UP_MOVE(26, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(31, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(36, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(43, MOVE_U_TURN),
    LEVEL_UP_MOVE(50, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE(57, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(64, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(71, MOVE_ROLE_PLAY),
    LEVEL_UP_MOVE(78, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(85, MOVE_PERISH_SONG),
    LEVEL_UP_END
};
#endif //P_FAMILY_MELOETTA

#if P_FAMILY_GENESECT
static const struct LevelUpMove sGenesectLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TECHNO_BLAST),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_SCREECH),
    LEVEL_UP_MOVE( 7, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(11, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(22, MOVE_MAGNET_BOMB),
    LEVEL_UP_MOVE(29, MOVE_SLASH),
    LEVEL_UP_MOVE(33, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(40, MOVE_SIGNAL_BEAM),
    LEVEL_UP_MOVE(44, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE(51, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(55, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(62, MOVE_SIMPLE_BEAM),
    LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(77, MOVE_SELF_DESTRUCT),
    LEVEL_UP_END
};
#endif //P_FAMILY_GENESECT

#if P_FAMILY_CHESPIN
static const struct LevelUpMove sChespinLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 8, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(11, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(32, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(35, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(39, MOVE_BULK_UP),
    LEVEL_UP_MOVE(42, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(45, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(48, MOVE_WOOD_HAMMER),
    LEVEL_UP_END
};

static const struct LevelUpMove sQuilladinLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 8, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(11, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(20, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(26, MOVE_NEEDLE_ARM),
    LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(35, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(39, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(44, MOVE_BULK_UP),
    LEVEL_UP_MOVE(48, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(52, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(55, MOVE_WOOD_HAMMER),
    LEVEL_UP_END
};

static const struct LevelUpMove sChesnaughtLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FEINT),
    LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 8, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(11, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(20, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(26, MOVE_NEEDLE_ARM),
    LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(35, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(41, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(44, MOVE_BULK_UP),
    LEVEL_UP_MOVE(48, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(52, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(55, MOVE_SPIKY_SHIELD),
    LEVEL_UP_MOVE(55, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE(60, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(70, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_CHESPIN

#if P_FAMILY_FENNEKIN
static const struct LevelUpMove sFennekinLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_EMBER),
    LEVEL_UP_MOVE(11, MOVE_HOWL),
    LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(17, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(20, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(25, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(27, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(31, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(35, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(38, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(41, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(43, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(46, MOVE_MAGIC_ROOM),
    LEVEL_UP_MOVE(48, MOVE_FIRE_BLAST),
    LEVEL_UP_END
};

static const struct LevelUpMove sBraixenLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_EMBER),
    LEVEL_UP_MOVE(11, MOVE_HOWL),
    LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(18, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(22, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(27, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(30, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(34, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(45, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(48, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(51, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(53, MOVE_MAGIC_ROOM),
    LEVEL_UP_MOVE(55, MOVE_FIRE_BLAST),
    LEVEL_UP_END
};

static const struct LevelUpMove sDelphoxLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY),
    LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_EMBER),
    LEVEL_UP_MOVE(11, MOVE_HOWL),
    LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(18, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(22, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(27, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(30, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(34, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(47, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(51, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(55, MOVE_MYSTICAL_FIRE),
    LEVEL_UP_MOVE(55, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(58, MOVE_MAGIC_ROOM),
    LEVEL_UP_MOVE(61, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(69, MOVE_FUTURE_SIGHT),
    LEVEL_UP_END
};
#endif //P_FAMILY_FENNEKIN

#if P_FAMILY_FROAKIE
static const struct LevelUpMove sFroakieLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_LICK),
    LEVEL_UP_MOVE(14, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(18, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(21, MOVE_ROUND),
    LEVEL_UP_MOVE(25, MOVE_FLING),
    LEVEL_UP_MOVE(29, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(35, MOVE_SUBSTITUTE),
    LEVEL_UP_MOVE(39, MOVE_BOUNCE),
    LEVEL_UP_MOVE(43, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sFrogadierLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_LICK),
    LEVEL_UP_MOVE(14, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(20, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(23, MOVE_ROUND),
    LEVEL_UP_MOVE(28, MOVE_FLING),
    LEVEL_UP_MOVE(33, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(38, MOVE_SUBSTITUTE),
    LEVEL_UP_MOVE(44, MOVE_BOUNCE),
    LEVEL_UP_MOVE(48, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sGreninjaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY),
    LEVEL_UP_MOVE( 1, MOVE_MAT_BLOCK),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_LICK),
    LEVEL_UP_MOVE(14, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(20, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(23, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(28, MOVE_SPIKES),
    LEVEL_UP_MOVE(33, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(43, MOVE_SUBSTITUTE),
    LEVEL_UP_MOVE(49, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(52, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(55, MOVE_WATER_SHURIKEN),
    LEVEL_UP_MOVE(56, MOVE_HAZE),
    LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(70, MOVE_NIGHT_SLASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_FROAKIE

#if P_FAMILY_BUNNELBY
static const struct LevelUpMove sBunnelbyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_AGILITY),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(13, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(18, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(20, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(29, MOVE_FLAIL),
    LEVEL_UP_MOVE(33, MOVE_DIG),
    LEVEL_UP_MOVE(38, MOVE_BOUNCE),
    LEVEL_UP_MOVE(42, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(47, MOVE_FACADE),
    LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE),
    LEVEL_UP_END
};

static const struct LevelUpMove sDiggersbyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER),
    LEVEL_UP_MOVE( 1, MOVE_BULLDOZE),
    LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_AGILITY),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(18, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(20, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(26, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(31, MOVE_FLAIL),
    LEVEL_UP_MOVE(37, MOVE_DIG),
    LEVEL_UP_MOVE(42, MOVE_BOUNCE),
    LEVEL_UP_MOVE(48, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(53, MOVE_FACADE),
    LEVEL_UP_MOVE(57, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(60, MOVE_HAMMER_ARM),
    LEVEL_UP_END
};
#endif //P_FAMILY_BUNNELBY

#if P_FAMILY_FLETCHLING
static const struct LevelUpMove sFletchlingLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_PECK),
    LEVEL_UP_MOVE(13, MOVE_AGILITY),
    LEVEL_UP_MOVE(16, MOVE_FLAIL),
    LEVEL_UP_MOVE(21, MOVE_ROOST),
    LEVEL_UP_MOVE(25, MOVE_RAZOR_WIND),
    LEVEL_UP_MOVE(29, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(34, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(39, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(41, MOVE_ME_FIRST),
    LEVEL_UP_MOVE(45, MOVE_TAILWIND),
    LEVEL_UP_MOVE(48, MOVE_STEEL_WING),
    LEVEL_UP_END
};

static const struct LevelUpMove sFletchinderLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_PECK),
    LEVEL_UP_MOVE(13, MOVE_AGILITY),
    LEVEL_UP_MOVE(16, MOVE_FLAIL),
    LEVEL_UP_MOVE(17, MOVE_EMBER),
    LEVEL_UP_MOVE(25, MOVE_ROOST),
    LEVEL_UP_MOVE(27, MOVE_RAZOR_WIND),
    LEVEL_UP_MOVE(31, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(38, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(42, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(46, MOVE_ME_FIRST),
    LEVEL_UP_MOVE(51, MOVE_TAILWIND),
    LEVEL_UP_MOVE(55, MOVE_STEEL_WING),
    LEVEL_UP_END
};

static const struct LevelUpMove sTalonflameLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_PECK),
    LEVEL_UP_MOVE(13, MOVE_AGILITY),
    LEVEL_UP_MOVE(16, MOVE_FLAIL),
    LEVEL_UP_MOVE(17, MOVE_EMBER),
    LEVEL_UP_MOVE(25, MOVE_ROOST),
    LEVEL_UP_MOVE(27, MOVE_RAZOR_WIND),
    LEVEL_UP_MOVE(31, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(39, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(44, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(49, MOVE_ME_FIRST),
    LEVEL_UP_MOVE(55, MOVE_TAILWIND),
    LEVEL_UP_MOVE(60, MOVE_STEEL_WING),
    LEVEL_UP_MOVE(64, MOVE_BRAVE_BIRD),
    LEVEL_UP_END
};
#endif //P_FAMILY_FLETCHLING

#if P_FAMILY_SCATTERBUG
static const struct LevelUpMove sScatterbugLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(15, MOVE_BUG_BITE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpewpaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 9, MOVE_PROTECT),
    LEVEL_UP_END
};

static const struct LevelUpMove sVivillonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE( 1, MOVE_POWDER),
    LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(12, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(17, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(21, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(25, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(31, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(35, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(41, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(45, MOVE_QUIVER_DANCE),
    LEVEL_UP_MOVE(50, MOVE_HURRICANE),
    LEVEL_UP_MOVE(55, MOVE_POWDER),
    LEVEL_UP_END
};
#endif //P_FAMILY_SCATTERBUG

#if P_FAMILY_LITLEO
static const struct LevelUpMove sLitleoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_EMBER),
    LEVEL_UP_MOVE( 8, MOVE_WORK_UP),
    LEVEL_UP_MOVE(11, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(15, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(23, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(28, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(33, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(39, MOVE_CRUNCH),
    LEVEL_UP_MOVE(43, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(46, MOVE_INCINERATE),
    LEVEL_UP_MOVE(50, MOVE_OVERHEAT),
    LEVEL_UP_END
};

static const struct LevelUpMove sPyroarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_EMBER),
    LEVEL_UP_MOVE( 8, MOVE_WORK_UP),
    LEVEL_UP_MOVE(11, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(15, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(23, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(28, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(33, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(38, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(42, MOVE_CRUNCH),
    LEVEL_UP_MOVE(48, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(51, MOVE_INCINERATE),
    LEVEL_UP_MOVE(57, MOVE_OVERHEAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_LITLEO

#if P_FAMILY_FLABEBE
static const struct LevelUpMove sFlabebeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(20, MOVE_WISH),
    LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(24, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE(28, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE(33, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(37, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE(41, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(45, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sFloetteLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(20, MOVE_WISH),
    LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(27, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE(33, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE(38, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(43, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE(46, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(51, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE(58, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sFloetteEternalFlowerLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(20, MOVE_WISH),
    LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(27, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE(33, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE(38, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(43, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE(46, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(51, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE(58, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sFlorgesLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE( 1, MOVE_WISH),
    LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_FLOWER_SHIELD),
    LEVEL_UP_MOVE( 1, MOVE_GRASS_KNOT),
    LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_MOONBLAST),
    LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY),
    LEVEL_UP_END
};
#endif //P_FAMILY_FLABEBE

#if P_FAMILY_SKIDDO
static const struct LevelUpMove sSkiddoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE(12, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(16, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(20, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(26, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(30, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(34, MOVE_BULK_UP),
    LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(42, MOVE_HORN_LEECH),
    LEVEL_UP_MOVE(45, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(50, MOVE_MILK_DRINK),
    LEVEL_UP_END
};

static const struct LevelUpMove sGogoatLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE(12, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(16, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(20, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(26, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(30, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(34, MOVE_BULK_UP),
    LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(47, MOVE_HORN_LEECH),
    LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(58, MOVE_MILK_DRINK),
    LEVEL_UP_MOVE(60, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(65, MOVE_AERIAL_ACE),
    LEVEL_UP_END
};
#endif //P_FAMILY_SKIDDO

#if P_FAMILY_PANCHAM
static const struct LevelUpMove sPanchamLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST),
    LEVEL_UP_MOVE(10, MOVE_WORK_UP),
    LEVEL_UP_MOVE(12, MOVE_KARATE_CHOP),
    LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH),
    LEVEL_UP_MOVE(20, MOVE_SLASH),
    LEVEL_UP_MOVE(25, MOVE_CIRCLE_THROW),
    LEVEL_UP_MOVE(27, MOVE_VITAL_THROW),
    LEVEL_UP_MOVE(33, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(39, MOVE_CRUNCH),
    LEVEL_UP_MOVE(42, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE(45, MOVE_PARTING_SHOT),
    LEVEL_UP_MOVE(48, MOVE_SKY_UPPERCUT),
    LEVEL_UP_END
};

static const struct LevelUpMove sPangoroLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST),
    LEVEL_UP_MOVE(10, MOVE_WORK_UP),
    LEVEL_UP_MOVE(12, MOVE_KARATE_CHOP),
    LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH),
    LEVEL_UP_MOVE(20, MOVE_SLASH),
    LEVEL_UP_MOVE(25, MOVE_CIRCLE_THROW),
    LEVEL_UP_MOVE(27, MOVE_VITAL_THROW),
    LEVEL_UP_MOVE(35, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(42, MOVE_CRUNCH),
    LEVEL_UP_MOVE(45, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE(48, MOVE_PARTING_SHOT),
    LEVEL_UP_MOVE(52, MOVE_SKY_UPPERCUT),
    LEVEL_UP_MOVE(57, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(65, MOVE_TAUNT),
    LEVEL_UP_MOVE(70, MOVE_LOW_SWEEP),
    LEVEL_UP_END
};
#endif //P_FAMILY_PANCHAM

#if P_FAMILY_FURFROU
static const struct LevelUpMove sFurfrouLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(12, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(15, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE(22, MOVE_BITE),
    LEVEL_UP_MOVE(27, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(33, MOVE_RETALIATE),
    LEVEL_UP_MOVE(35, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(38, MOVE_CHARM),
    LEVEL_UP_MOVE(42, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(48, MOVE_COTTON_GUARD),
    LEVEL_UP_END
};
#endif //P_FAMILY_FURFROU

#if P_FAMILY_ESPURR
static const struct LevelUpMove sEspurrLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_COVET),
    LEVEL_UP_MOVE( 9, MOVE_CONFUSION),
    LEVEL_UP_MOVE(13, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(17, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(19, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(22, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(25, MOVE_PSYSHOCK),
    LEVEL_UP_END
};

static const struct LevelUpMove sMeowsticMaleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_COVET),
    LEVEL_UP_MOVE( 9, MOVE_CONFUSION),
    LEVEL_UP_MOVE(13, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(17, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(19, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(22, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(25, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(28, MOVE_CHARM),
    LEVEL_UP_MOVE(31, MOVE_MIRACLE_EYE),
    LEVEL_UP_MOVE(35, MOVE_REFLECT),
    LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(43, MOVE_ROLE_PLAY),
    LEVEL_UP_MOVE(45, MOVE_IMPRISON),
    LEVEL_UP_MOVE(48, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(50, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE(53, MOVE_QUICK_GUARD),
    LEVEL_UP_END
};

static const struct LevelUpMove sMeowsticFemaleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_STORED_POWER),
    LEVEL_UP_MOVE( 1, MOVE_ME_FIRST),
    LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_COVET),
    LEVEL_UP_MOVE( 9, MOVE_CONFUSION),
    LEVEL_UP_MOVE(13, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(17, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(19, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(22, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(25, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(28, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE(31, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(35, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(43, MOVE_ROLE_PLAY),
    LEVEL_UP_MOVE(45, MOVE_SIGNAL_BEAM),
    LEVEL_UP_MOVE(48, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(50, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(53, MOVE_STORED_POWER),
    LEVEL_UP_END
};
#endif //P_FAMILY_ESPURR

#if P_FAMILY_HONEDGE
static const struct LevelUpMove sHonedgeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE( 5, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 8, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(13, MOVE_PURSUIT),
    LEVEL_UP_MOVE(18, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(20, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(22, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(26, MOVE_RETALIATE),
    LEVEL_UP_MOVE(29, MOVE_SLASH),
    LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(39, MOVE_POWER_TRICK),
    LEVEL_UP_MOVE(42, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(47, MOVE_SACRED_SWORD),
    LEVEL_UP_END
};

static const struct LevelUpMove sDoubladeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE( 5, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 8, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(13, MOVE_PURSUIT),
    LEVEL_UP_MOVE(18, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(20, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(22, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(26, MOVE_RETALIATE),
    LEVEL_UP_MOVE(29, MOVE_SLASH),
    LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(36, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(41, MOVE_POWER_TRICK),
    LEVEL_UP_MOVE(45, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(51, MOVE_SACRED_SWORD),
    LEVEL_UP_END
};

static const struct LevelUpMove sAegislashLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_PURSUIT),
    LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE( 1, MOVE_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_POWER_TRICK),
    LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE( 1, MOVE_HEAD_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE( 1, MOVE_KINGS_SHIELD),
    LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD),
    LEVEL_UP_END
};
#endif //P_FAMILY_HONEDGE

#if P_FAMILY_SPRITZEE
static const struct LevelUpMove sSpritzeeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 6, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE( 8, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(13, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(17, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(21, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(25, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(29, MOVE_ATTRACT),
    LEVEL_UP_MOVE(31, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(35, MOVE_CHARM),
    LEVEL_UP_MOVE(38, MOVE_FLAIL),
    LEVEL_UP_MOVE(42, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE(44, MOVE_SKILL_SWAP),
    LEVEL_UP_MOVE(48, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(50, MOVE_DISARMING_VOICE),
    LEVEL_UP_END
};

static const struct LevelUpMove sAromatisseLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST),
    LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 6, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE( 8, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(13, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(17, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(21, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(25, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(29, MOVE_ATTRACT),
    LEVEL_UP_MOVE(31, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(35, MOVE_CHARM),
    LEVEL_UP_MOVE(38, MOVE_FLAIL),
    LEVEL_UP_MOVE(42, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE(44, MOVE_SKILL_SWAP),
    LEVEL_UP_MOVE(48, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(53, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(57, MOVE_REFLECT),
    LEVEL_UP_MOVE(64, MOVE_PSYCH_UP),
    LEVEL_UP_END
};
#endif //P_FAMILY_SPRITZEE

#if P_FAMILY_SWIRLIX
static const struct LevelUpMove sSwirlixLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 8, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(13, MOVE_ROUND),
    LEVEL_UP_MOVE(17, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE(21, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(26, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(31, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(36, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(41, MOVE_COTTON_GUARD),
    LEVEL_UP_MOVE(45, MOVE_WISH),
    LEVEL_UP_MOVE(49, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(58, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(67, MOVE_SAFEGUARD),
    LEVEL_UP_END
};

static const struct LevelUpMove sSlurpuffLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 8, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE(10, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(13, MOVE_ROUND),
    LEVEL_UP_MOVE(17, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE(21, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(26, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(31, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(36, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(41, MOVE_COTTON_GUARD),
    LEVEL_UP_MOVE(45, MOVE_WISH),
    LEVEL_UP_MOVE(49, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(58, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(67, MOVE_SAFEGUARD),
    LEVEL_UP_END
};
#endif //P_FAMILY_SWIRLIX

#if P_FAMILY_INKAY
static const struct LevelUpMove sInkayLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
    LEVEL_UP_MOVE( 4, MOVE_REFLECT),
    LEVEL_UP_MOVE( 8, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(12, MOVE_SWAGGER),
    LEVEL_UP_MOVE(13, MOVE_PSYWAVE),
    LEVEL_UP_MOVE(15, MOVE_TOPSY_TURVY),
    LEVEL_UP_MOVE(18, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(21, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(23, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE(27, MOVE_PAYBACK),
    LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(35, MOVE_PLUCK),
    LEVEL_UP_MOVE(39, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(43, MOVE_SLASH),
    LEVEL_UP_MOVE(46, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(48, MOVE_SUPERPOWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sMalamarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE( 1, MOVE_REVERSAL),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
    LEVEL_UP_MOVE( 4, MOVE_REFLECT),
    LEVEL_UP_MOVE( 8, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(12, MOVE_SWAGGER),
    LEVEL_UP_MOVE(13, MOVE_PSYWAVE),
    LEVEL_UP_MOVE(15, MOVE_TOPSY_TURVY),
    LEVEL_UP_MOVE(18, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(21, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(23, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE(27, MOVE_PAYBACK),
    LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(35, MOVE_PLUCK),
    LEVEL_UP_MOVE(39, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(43, MOVE_SLASH),
    LEVEL_UP_MOVE(46, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(48, MOVE_SUPERPOWER),
    LEVEL_UP_END
};
#endif //P_FAMILY_INKAY

#if P_FAMILY_BINACLE
static const struct LevelUpMove sBinacleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 4, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 7, MOVE_WITHDRAW),
    LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(13, MOVE_SLASH),
    LEVEL_UP_MOVE(18, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(20, MOVE_CLAMP),
    LEVEL_UP_MOVE(24, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(32, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(37, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(41, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(45, MOVE_RAZOR_SHELL),
    LEVEL_UP_MOVE(49, MOVE_CROSS_CHOP),
    LEVEL_UP_END
};

static const struct LevelUpMove sBarbaracleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SKULL_BASH),
    LEVEL_UP_MOVE( 1, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 4, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 7, MOVE_WITHDRAW),
    LEVEL_UP_MOVE(10, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(13, MOVE_SLASH),
    LEVEL_UP_MOVE(18, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(20, MOVE_CLAMP),
    LEVEL_UP_MOVE(24, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(32, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(37, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(44, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(48, MOVE_RAZOR_SHELL),
    LEVEL_UP_MOVE(55, MOVE_CROSS_CHOP),
    LEVEL_UP_MOVE(60, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(65, MOVE_SKULL_BASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_BINACLE

#if P_FAMILY_SKRELP
static const struct LevelUpMove sSkrelpLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 5, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE(12, MOVE_BUBBLE),
    LEVEL_UP_MOVE(15, MOVE_ACID),
    LEVEL_UP_MOVE(19, MOVE_CAMOUFLAGE),
    LEVEL_UP_MOVE(23, MOVE_POISON_TAIL),
    LEVEL_UP_MOVE(25, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(28, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(32, MOVE_TOXIC),
    LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(38, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(49, MOVE_DRAGON_PULSE),
    LEVEL_UP_END
};

static const struct LevelUpMove sDragalgeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE( 1, MOVE_TWISTER),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 5, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE(12, MOVE_BUBBLE),
    LEVEL_UP_MOVE(15, MOVE_ACID),
    LEVEL_UP_MOVE(19, MOVE_CAMOUFLAGE),
    LEVEL_UP_MOVE(23, MOVE_POISON_TAIL),
    LEVEL_UP_MOVE(25, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(28, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(32, MOVE_TOXIC),
    LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(38, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(53, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(59, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(67, MOVE_TWISTER),
    LEVEL_UP_END
};
#endif //P_FAMILY_SKRELP

#if P_FAMILY_CLAUNCHER
static const struct LevelUpMove sClauncherLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 9, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE(12, MOVE_BUBBLE),
    LEVEL_UP_MOVE(16, MOVE_FLAIL),
    LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(30, MOVE_CRABHAMMER),
    LEVEL_UP_MOVE(34, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(39, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(43, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(48, MOVE_MUDDY_WATER),
    LEVEL_UP_END
};

static const struct LevelUpMove sClawitzerLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_AURA_SPHERE),
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 9, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE(12, MOVE_BUBBLE),
    LEVEL_UP_MOVE(16, MOVE_FLAIL),
    LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(30, MOVE_CRABHAMMER),
    LEVEL_UP_MOVE(34, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(42, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(47, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(53, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(57, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(63, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(67, MOVE_AURA_SPHERE),
    LEVEL_UP_END
};
#endif //P_FAMILY_CLAUNCHER

#if P_FAMILY_HELIOPTILE
static const struct LevelUpMove sHelioptileLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(11, MOVE_CHARGE),
    LEVEL_UP_MOVE(13, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(22, MOVE_RAZOR_WIND),
    LEVEL_UP_MOVE(25, MOVE_PARABOLIC_CHARGE),
    LEVEL_UP_MOVE(31, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(35, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(40, MOVE_VOLT_SWITCH),
    LEVEL_UP_MOVE(45, MOVE_ELECTRIFY),
    LEVEL_UP_MOVE(49, MOVE_THUNDERBOLT),
    LEVEL_UP_END
};

static const struct LevelUpMove sHelioliskLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE),
    LEVEL_UP_MOVE( 1, MOVE_ELECTRIFY),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_WIND),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_PARABOLIC_CHARGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_HELIOPTILE

#if P_FAMILY_TYRUNT
static const struct LevelUpMove sTyruntLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 6, MOVE_ROAR),
    LEVEL_UP_MOVE(10, MOVE_STOMP),
    LEVEL_UP_MOVE(12, MOVE_BIDE),
    LEVEL_UP_MOVE(15, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(17, MOVE_BITE),
    LEVEL_UP_MOVE(20, MOVE_CHARM),
    LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(34, MOVE_CRUNCH),
    LEVEL_UP_MOVE(37, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(40, MOVE_THRASH),
    LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(49, MOVE_HORN_DRILL),
    LEVEL_UP_END
};

static const struct LevelUpMove sTyrantrumLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HEAD_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 6, MOVE_ROAR),
    LEVEL_UP_MOVE(10, MOVE_STOMP),
    LEVEL_UP_MOVE(12, MOVE_BIDE),
    LEVEL_UP_MOVE(15, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(17, MOVE_BITE),
    LEVEL_UP_MOVE(20, MOVE_CHARM),
    LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(34, MOVE_CRUNCH),
    LEVEL_UP_MOVE(37, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(42, MOVE_THRASH),
    LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(53, MOVE_HORN_DRILL),
    LEVEL_UP_MOVE(58, MOVE_HEAD_SMASH),
    LEVEL_UP_MOVE(68, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(75, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_TYRUNT

#if P_FAMILY_AMAURA
static const struct LevelUpMove sAmauraLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 5, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(10, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(13, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(18, MOVE_MIST),
    LEVEL_UP_MOVE(20, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(30, MOVE_ROUND),
    LEVEL_UP_MOVE(34, MOVE_AVALANCHE),
    LEVEL_UP_MOVE(38, MOVE_HAIL),
    LEVEL_UP_MOVE(41, MOVE_NATURE_POWER),
    LEVEL_UP_MOVE(44, MOVE_ENCORE),
    LEVEL_UP_MOVE(47, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(50, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(65, MOVE_BLIZZARD),
    LEVEL_UP_END
};

static const struct LevelUpMove sAurorusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FREEZE_DRY),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 5, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(10, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(13, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(18, MOVE_MIST),
    LEVEL_UP_MOVE(20, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(26, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(30, MOVE_ROUND),
    LEVEL_UP_MOVE(34, MOVE_AVALANCHE),
    LEVEL_UP_MOVE(38, MOVE_HAIL),
    LEVEL_UP_MOVE(43, MOVE_NATURE_POWER),
    LEVEL_UP_MOVE(46, MOVE_ENCORE),
    LEVEL_UP_MOVE(50, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(56, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(63, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(74, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(77, MOVE_FREEZE_DRY),
    LEVEL_UP_END
};
#endif //P_FAMILY_AMAURA

#if P_FAMILY_HAWLUCHA
static const struct LevelUpMove sHawluchaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DETECT),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE( 4, MOVE_KARATE_CHOP),
    LEVEL_UP_MOVE( 8, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_ROOST),
    LEVEL_UP_MOVE(16, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(20, MOVE_ENCORE),
    LEVEL_UP_MOVE(24, MOVE_FLING),
    LEVEL_UP_MOVE(28, MOVE_FLYING_PRESS),
    LEVEL_UP_MOVE(32, MOVE_BOUNCE),
    LEVEL_UP_MOVE(36, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(40, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(44, MOVE_HIGH_JUMP_KICK),
    LEVEL_UP_MOVE(48, MOVE_SKY_ATTACK),
    LEVEL_UP_MOVE(55, MOVE_SKY_DROP),
    LEVEL_UP_MOVE(60, MOVE_SWORDS_DANCE),
    LEVEL_UP_END
};
#endif //P_FAMILY_HAWLUCHA

#if P_FAMILY_DEDENNE
static const struct LevelUpMove sDedenneLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(11, MOVE_CHARGE),
    LEVEL_UP_MOVE(14, MOVE_CHARM),
    LEVEL_UP_MOVE(17, MOVE_PARABOLIC_CHARGE),
    LEVEL_UP_MOVE(20, MOVE_NUZZLE),
    LEVEL_UP_MOVE(23, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(26, MOVE_VOLT_SWITCH),
    LEVEL_UP_MOVE(30, MOVE_REST),
    LEVEL_UP_MOVE(31, MOVE_SNORE),
    LEVEL_UP_MOVE(34, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE(39, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(45, MOVE_THUNDER),
    LEVEL_UP_MOVE(50, MOVE_DISCHARGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_DEDENNE

#if P_FAMILY_CARBINK
static const struct LevelUpMove sCarbinkLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 8, MOVE_SHARPEN),
    LEVEL_UP_MOVE(12, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(18, MOVE_REFLECT),
    LEVEL_UP_MOVE(21, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(27, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(31, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(35, MOVE_FLAIL),
    LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP),
    LEVEL_UP_MOVE(46, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(49, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(50, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(60, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(70, MOVE_SAFEGUARD),
    LEVEL_UP_END
};
#endif //P_FAMILY_CARBINK

#if P_FAMILY_GOOMY
static const struct LevelUpMove sGoomyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 9, MOVE_PROTECT),
    LEVEL_UP_MOVE(13, MOVE_BIDE),
    LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(28, MOVE_FLAIL),
    LEVEL_UP_MOVE(32, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(38, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSliggooLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 9, MOVE_PROTECT),
    LEVEL_UP_MOVE(13, MOVE_BIDE),
    LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(28, MOVE_FLAIL),
    LEVEL_UP_MOVE(32, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(38, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(47, MOVE_DRAGON_PULSE),
    LEVEL_UP_END
};

static const struct LevelUpMove sGoodraLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_OUTRAGE),
    LEVEL_UP_MOVE( 1, MOVE_FEINT),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 9, MOVE_PROTECT),
    LEVEL_UP_MOVE(13, MOVE_BIDE),
    LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(28, MOVE_FLAIL),
    LEVEL_UP_MOVE(32, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(38, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(47, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(50, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(55, MOVE_POWER_WHIP),
    LEVEL_UP_MOVE(63, MOVE_OUTRAGE),
    LEVEL_UP_END
};

#if P_HISUIAN_FORMS
static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(18, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(25, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(25, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(34, MOVE_SHELTER),
    LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sGoodraHisuianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(18, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(25, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(25, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(34, MOVE_SHELTER),
    LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_HISUIAN_FORMS
#endif //P_FAMILY_GOOMY

#if P_FAMILY_KLEFKI
static const struct LevelUpMove sKlefkiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FAIRY_LOCK),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 8, MOVE_ASTONISH),
    LEVEL_UP_MOVE(12, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(15, MOVE_SPIKES),
    LEVEL_UP_MOVE(18, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(23, MOVE_CRAFTY_SHIELD),
    LEVEL_UP_MOVE(27, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(32, MOVE_TORMENT),
    LEVEL_UP_MOVE(34, MOVE_MIRROR_SHOT),
    LEVEL_UP_MOVE(36, MOVE_IMPRISON),
    LEVEL_UP_MOVE(40, MOVE_RECYCLE),
    LEVEL_UP_MOVE(43, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(44, MOVE_MAGIC_ROOM),
    LEVEL_UP_MOVE(50, MOVE_HEAL_BLOCK),
    LEVEL_UP_END
};
#endif //P_FAMILY_KLEFKI

#if P_FAMILY_PHANTUMP
static const struct LevelUpMove sPhantumpLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 5, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 8, MOVE_GROWTH),
    LEVEL_UP_MOVE(13, MOVE_INGRAIN),
    LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(23, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(28, MOVE_CURSE),
    LEVEL_UP_MOVE(31, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(35, MOVE_FORESTS_CURSE),
    LEVEL_UP_MOVE(39, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE(45, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(49, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE(54, MOVE_HORN_LEECH),
    LEVEL_UP_END
};

static const struct LevelUpMove sTrevenantLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HORN_LEECH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 5, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 8, MOVE_GROWTH),
    LEVEL_UP_MOVE(13, MOVE_INGRAIN),
    LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(23, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(28, MOVE_CURSE),
    LEVEL_UP_MOVE(31, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(35, MOVE_FORESTS_CURSE),
    LEVEL_UP_MOVE(39, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE(45, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(49, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE(55, MOVE_SHADOW_CLAW),
    LEVEL_UP_MOVE(62, MOVE_HORN_LEECH),
    LEVEL_UP_END
};
#endif //P_FAMILY_PHANTUMP

#if P_FAMILY_PUMPKABOO
static const struct LevelUpMove sPumpkabooLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TRICK),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 4, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(11, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(16, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(20, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(23, MOVE_TRICK_OR_TREAT),
    LEVEL_UP_MOVE(26, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(30, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(42, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(48, MOVE_SEED_BOMB),
    LEVEL_UP_END
};

static const struct LevelUpMove sGourgeistLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EXPLOSION),
    LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE( 1, MOVE_TRICK),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 4, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(11, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(16, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(20, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(26, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(30, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(33, MOVE_TRICK_OR_TREAT),
    LEVEL_UP_MOVE(42, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(48, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(53, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(57, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(75, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_PUMPKABOO

#if P_FAMILY_BERGMITE
static const struct LevelUpMove sBergmiteLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE(10, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(20, MOVE_SHARPEN),
    LEVEL_UP_MOVE(22, MOVE_CURSE),
    LEVEL_UP_MOVE(26, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(30, MOVE_ICE_BALL),
    LEVEL_UP_MOVE(35, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(39, MOVE_AVALANCHE),
    LEVEL_UP_MOVE(43, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(47, MOVE_RECOVER),
    LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sAvaluggLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 1, MOVE_SKULL_BASH),
    LEVEL_UP_MOVE( 1, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE(10, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(20, MOVE_SHARPEN),
    LEVEL_UP_MOVE(22, MOVE_CURSE),
    LEVEL_UP_MOVE(26, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(30, MOVE_ICE_BALL),
    LEVEL_UP_MOVE(35, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(42, MOVE_AVALANCHE),
    LEVEL_UP_MOVE(46, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(51, MOVE_RECOVER),
    LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(60, MOVE_SKULL_BASH),
    LEVEL_UP_MOVE(65, MOVE_CRUNCH),
    LEVEL_UP_END
};

#if P_HISUIAN_FORMS
static const struct LevelUpMove sAvaluggHisuianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 9, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(15, MOVE_BITE),
    LEVEL_UP_MOVE(21, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(29, MOVE_CRUNCH),
    LEVEL_UP_MOVE(29, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(37, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(37, MOVE_MOUNTAIN_GALE),
    LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};
#endif //P_HISUIAN_FORMS
#endif //P_FAMILY_BERGMITE

#if P_FAMILY_NOIBAT
static const struct LevelUpMove sNoibatLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCREECH),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE(11, MOVE_GUST),
    LEVEL_UP_MOVE(13, MOVE_BITE),
    LEVEL_UP_MOVE(16, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(18, MOVE_AGILITY),
    LEVEL_UP_MOVE(23, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(27, MOVE_ROOST),
    LEVEL_UP_MOVE(31, MOVE_RAZOR_WIND),
    LEVEL_UP_MOVE(35, MOVE_TAILWIND),
    LEVEL_UP_MOVE(40, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(43, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(48, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(58, MOVE_HURRICANE),
    LEVEL_UP_END
};

static const struct LevelUpMove sNoivernLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE( 1, MOVE_BOOMBURST),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_HURRICANE),
    LEVEL_UP_MOVE( 1, MOVE_SCREECH),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE(11, MOVE_GUST),
    LEVEL_UP_MOVE(13, MOVE_BITE),
    LEVEL_UP_MOVE(16, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(18, MOVE_AGILITY),
    LEVEL_UP_MOVE(23, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(27, MOVE_ROOST),
    LEVEL_UP_MOVE(31, MOVE_RAZOR_WIND),
    LEVEL_UP_MOVE(35, MOVE_TAILWIND),
    LEVEL_UP_MOVE(40, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(43, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(53, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(62, MOVE_HURRICANE),
    LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(75, MOVE_BOOMBURST),
    LEVEL_UP_END
};
#endif //P_FAMILY_NOIBAT

#if P_FAMILY_XERNEAS
static const struct LevelUpMove sXerneasLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE( 1, MOVE_INGRAIN),
    LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE( 5, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(10, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(18, MOVE_GRAVITY),
    LEVEL_UP_MOVE(26, MOVE_GEOMANCY),
    LEVEL_UP_MOVE(35, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(44, MOVE_MEGAHORN),
    LEVEL_UP_MOVE(51, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(55, MOVE_HORN_LEECH),
    LEVEL_UP_MOVE(59, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(63, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE(72, MOVE_NATURE_POWER),
    LEVEL_UP_MOVE(80, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT),
    LEVEL_UP_MOVE(93, MOVE_OUTRAGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_XERNEAS

#if P_FAMILY_YVELTAL
static const struct LevelUpMove sYveltalLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HURRICANE),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_WIND),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE( 1, MOVE_ROOST),
    LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(10, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(18, MOVE_SNARL),
    LEVEL_UP_MOVE(26, MOVE_OBLIVION_WING),
    LEVEL_UP_MOVE(35, MOVE_DISABLE),
    LEVEL_UP_MOVE(44, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(51, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(55, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(59, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(63, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(72, MOVE_FOCUS_BLAST),
    LEVEL_UP_MOVE(80, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(88, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(93, MOVE_SKY_ATTACK),
    LEVEL_UP_END
};
#endif //P_FAMILY_YVELTAL

#if P_FAMILY_ZYGARDE
static const struct LevelUpMove sZygardeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GLARE),
    LEVEL_UP_MOVE( 1, MOVE_BULLDOZE),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 5, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(10, MOVE_DIG),
    LEVEL_UP_MOVE(18, MOVE_BIND),
    LEVEL_UP_MOVE(26, MOVE_LANDS_WRATH),
    LEVEL_UP_MOVE(35, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(44, MOVE_HAZE),
    LEVEL_UP_MOVE(51, MOVE_CRUNCH),
    LEVEL_UP_MOVE(55, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(59, MOVE_CAMOUFLAGE),
    LEVEL_UP_MOVE(63, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(72, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(80, MOVE_COIL),
    LEVEL_UP_MOVE(88, MOVE_EXTREME_SPEED),
    LEVEL_UP_MOVE(93, MOVE_OUTRAGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_ZYGARDE

#if P_FAMILY_DIANCIE
static const struct LevelUpMove sDiancieLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 8, MOVE_SHARPEN),
    LEVEL_UP_MOVE(12, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(18, MOVE_REFLECT),
    LEVEL_UP_MOVE(21, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(27, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(31, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(35, MOVE_FLAIL),
    LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP),
    LEVEL_UP_MOVE(46, MOVE_TRICK_ROOM),
    LEVEL_UP_MOVE(49, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(50, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(50, MOVE_DIAMOND_STORM),
    LEVEL_UP_MOVE(60, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(70, MOVE_SAFEGUARD),
    LEVEL_UP_END
};
#endif //P_FAMILY_DIANCIE

#if P_FAMILY_HOOPA
static const struct LevelUpMove sHoopaConfinedLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HYPERSPACE_HOLE),
    LEVEL_UP_MOVE( 1, MOVE_TRICK),
    LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE( 1, MOVE_ALLY_SWITCH),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 6, MOVE_ASTONISH),
    LEVEL_UP_MOVE(10, MOVE_MAGIC_COAT),
    LEVEL_UP_MOVE(15, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(19, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP),
    LEVEL_UP_MOVE(29, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(35, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(46, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(50, MOVE_WONDER_ROOM),
    LEVEL_UP_MOVE(55, MOVE_TRICK_ROOM),
    LEVEL_UP_MOVE(68, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(75, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(85, MOVE_HYPERSPACE_HOLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sHoopaUnboundLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HYPERSPACE_FURY),
    LEVEL_UP_MOVE( 1, MOVE_TRICK),
    LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE( 1, MOVE_ALLY_SWITCH),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 6, MOVE_ASTONISH),
    LEVEL_UP_MOVE(10, MOVE_MAGIC_COAT),
    LEVEL_UP_MOVE(15, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(19, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP),
    LEVEL_UP_MOVE(29, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(29, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(46, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(50, MOVE_WONDER_ROOM),
    LEVEL_UP_MOVE(50, MOVE_TRICK_ROOM),
    LEVEL_UP_MOVE(55, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(75, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(85, MOVE_HYPERSPACE_FURY),
    LEVEL_UP_END
};
#endif //P_FAMILY_HOOPA

#if P_FAMILY_VOLCANION
static const struct LevelUpMove sVolcanionLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_STEAM_ERUPTION),
    LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE( 8, MOVE_MIST),
    LEVEL_UP_MOVE(11, MOVE_HAZE),
    LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(21, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(28, MOVE_STOMP),
    LEVEL_UP_MOVE(32, MOVE_SCALD),
    LEVEL_UP_MOVE(40, MOVE_WEATHER_BALL),
    LEVEL_UP_MOVE(46, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(58, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE(65, MOVE_OVERHEAT),
    LEVEL_UP_MOVE(76, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(85, MOVE_STEAM_ERUPTION),
    LEVEL_UP_END
};
#endif //P_FAMILY_VOLCANION

#if P_FAMILY_ROWLET
static const struct LevelUpMove sRowletLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 8, MOVE_PECK),
    LEVEL_UP_MOVE(11, MOVE_ASTONISH),
    LEVEL_UP_MOVE(14, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(16, MOVE_OMINOUS_WIND),
    LEVEL_UP_MOVE(18, MOVE_FORESIGHT),
    LEVEL_UP_MOVE(22, MOVE_PLUCK),
    LEVEL_UP_MOVE(25, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(29, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(32, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(36, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(39, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT),
    LEVEL_UP_END
};

static const struct LevelUpMove sDartrixLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 8, MOVE_PECK),
    LEVEL_UP_MOVE(11, MOVE_ASTONISH),
    LEVEL_UP_MOVE(14, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(16, MOVE_OMINOUS_WIND),
    LEVEL_UP_MOVE(19, MOVE_FORESIGHT),
    LEVEL_UP_MOVE(24, MOVE_PLUCK),
    LEVEL_UP_MOVE(28, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(33, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(37, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(42, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(46, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(51, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(55, MOVE_NASTY_PLOT),
    LEVEL_UP_END
};

static const struct LevelUpMove sDecidueyeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SPIRIT_SHACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SPIRIT_SHACKLE),
    LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM),
    LEVEL_UP_MOVE( 1, MOVE_U_TURN),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 8, MOVE_PECK),
    LEVEL_UP_MOVE(11, MOVE_ASTONISH),
    LEVEL_UP_MOVE(14, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(16, MOVE_OMINOUS_WIND),
    LEVEL_UP_MOVE(19, MOVE_FORESIGHT),
    LEVEL_UP_MOVE(24, MOVE_PLUCK),
    LEVEL_UP_MOVE(28, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(33, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(38, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(44, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(49, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(55, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(60, MOVE_NASTY_PLOT),
    LEVEL_UP_END
};

#if P_HISUIAN_FORMS
static const struct LevelUpMove sDecidueyeHisuianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 6, MOVE_LEAFAGE),
    LEVEL_UP_MOVE(11, MOVE_ROOST),
    LEVEL_UP_MOVE(18, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(25, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(30, MOVE_AURA_SPHERE),
    LEVEL_UP_MOVE(34, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(34, MOVE_TRIPLE_ARROWS),
    LEVEL_UP_MOVE(40, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(43, MOVE_LEAF_STORM),
    LEVEL_UP_END
};
#endif //P_HISUIAN_FORMS
#endif //P_FAMILY_ROWLET

#if P_FAMILY_LITTEN
static const struct LevelUpMove sLittenLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 8, MOVE_LICK),
    LEVEL_UP_MOVE(11, MOVE_LEER),
    LEVEL_UP_MOVE(14, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(18, MOVE_ROAR),
    LEVEL_UP_MOVE(22, MOVE_BITE),
    LEVEL_UP_MOVE(25, MOVE_SWAGGER),
    LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(32, MOVE_THRASH),
    LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(39, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(43, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE(46, MOVE_OUTRAGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sTorracatLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 8, MOVE_LICK),
    LEVEL_UP_MOVE(11, MOVE_LEER),
    LEVEL_UP_MOVE(14, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(19, MOVE_ROAR),
    LEVEL_UP_MOVE(24, MOVE_BITE),
    LEVEL_UP_MOVE(28, MOVE_SWAGGER),
    LEVEL_UP_MOVE(33, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(37, MOVE_THRASH),
    LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(46, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(51, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE(55, MOVE_OUTRAGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sIncineroarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DARKEST_LARIAT),
    LEVEL_UP_MOVE( 1, MOVE_DARKEST_LARIAT),
    LEVEL_UP_MOVE( 1, MOVE_BULK_UP),
    LEVEL_UP_MOVE( 1, MOVE_THROAT_CHOP),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 8, MOVE_LICK),
    LEVEL_UP_MOVE(11, MOVE_LEER),
    LEVEL_UP_MOVE(14, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(19, MOVE_ROAR),
    LEVEL_UP_MOVE(24, MOVE_BITE),
    LEVEL_UP_MOVE(28, MOVE_SWAGGER),
    LEVEL_UP_MOVE(33, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(38, MOVE_THRASH),
    LEVEL_UP_MOVE(44, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(49, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(55, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE(60, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(66, MOVE_CROSS_CHOP),
    LEVEL_UP_END
};
#endif //P_FAMILY_LITTEN

#if P_FAMILY_POPPLIO
static const struct LevelUpMove sPopplioLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 8, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(11, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(14, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(16, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(18, MOVE_ENCORE),
    LEVEL_UP_MOVE(22, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(25, MOVE_SING),
    LEVEL_UP_MOVE(29, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(32, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(36, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(39, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(46, MOVE_MISTY_TERRAIN),
    LEVEL_UP_END
};

static const struct LevelUpMove sBrionneLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 8, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(11, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(14, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(16, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(19, MOVE_ENCORE),
    LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(28, MOVE_SING),
    LEVEL_UP_MOVE(33, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(37, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(42, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(46, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(55, MOVE_MISTY_TERRAIN),
    LEVEL_UP_END
};

static const struct LevelUpMove sPrimarinaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SPARKLING_ARIA),
    LEVEL_UP_MOVE( 1, MOVE_SPARKLING_ARIA),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 9, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(11, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(14, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(16, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(19, MOVE_ENCORE),
    LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(28, MOVE_SING),
    LEVEL_UP_MOVE(33, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(38, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(44, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(49, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(60, MOVE_MISTY_TERRAIN),
    LEVEL_UP_END
};
#endif //P_FAMILY_POPPLIO

#if P_FAMILY_PIKIPEK
static const struct LevelUpMove sPikipekLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 3, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(13, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(15, MOVE_PLUCK),
    LEVEL_UP_MOVE(19, MOVE_ROOST),
    LEVEL_UP_MOVE(21, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(25, MOVE_SCREECH),
    LEVEL_UP_MOVE(27, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(31, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(33, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(37, MOVE_HYPER_VOICE),
    LEVEL_UP_END
};

static const struct LevelUpMove sTrumbeakLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 3, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(13, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(16, MOVE_PLUCK),
    LEVEL_UP_MOVE(21, MOVE_ROOST),
    LEVEL_UP_MOVE(24, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(29, MOVE_SCREECH),
    LEVEL_UP_MOVE(32, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(37, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(40, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE),
    LEVEL_UP_END
};

static const struct LevelUpMove sToucannonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_BEAK_BLAST),
    LEVEL_UP_MOVE( 1, MOVE_BEAK_BLAST),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 3, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(13, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(16, MOVE_PLUCK),
    LEVEL_UP_MOVE(21, MOVE_ROOST),
    LEVEL_UP_MOVE(24, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(30, MOVE_SCREECH),
    LEVEL_UP_MOVE(34, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(40, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(44, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(50, MOVE_HYPER_VOICE),
    LEVEL_UP_END
};
#endif //P_FAMILY_PIKIPEK

#if P_FAMILY_YUNGOOS
static const struct LevelUpMove sYungoosLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 3, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_PURSUIT),
    LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(16, MOVE_BIDE),
    LEVEL_UP_MOVE(19, MOVE_BITE),
    LEVEL_UP_MOVE(22, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(25, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(31, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(34, MOVE_CRUNCH),
    LEVEL_UP_MOVE(37, MOVE_HYPER_FANG),
    LEVEL_UP_MOVE(40, MOVE_YAWN),
    LEVEL_UP_MOVE(43, MOVE_THRASH),
    LEVEL_UP_MOVE(46, MOVE_REST),
    LEVEL_UP_END
};

static const struct LevelUpMove sGumshoosLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_PURSUIT),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 3, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_PURSUIT),
    LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(16, MOVE_BIDE),
    LEVEL_UP_MOVE(19, MOVE_BITE),
    LEVEL_UP_MOVE(23, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(27, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(35, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(39, MOVE_CRUNCH),
    LEVEL_UP_MOVE(43, MOVE_HYPER_FANG),
    LEVEL_UP_MOVE(47, MOVE_YAWN),
    LEVEL_UP_MOVE(51, MOVE_THRASH),
    LEVEL_UP_MOVE(55, MOVE_REST),
    LEVEL_UP_END
};
#endif //P_FAMILY_YUNGOOS

#if P_FAMILY_GRUBBIN
static const struct LevelUpMove sGrubbinLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE( 4, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(10, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(16, MOVE_SPARK),
    LEVEL_UP_MOVE(19, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(22, MOVE_CRUNCH),
    LEVEL_UP_MOVE(25, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(28, MOVE_DIG),
    LEVEL_UP_END
};

static const struct LevelUpMove sCharjabugLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 4, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(10, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(16, MOVE_SPARK),
    LEVEL_UP_MOVE(19, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(25, MOVE_CRUNCH),
    LEVEL_UP_MOVE(31, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(37, MOVE_DIG),
    LEVEL_UP_MOVE(43, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(49, MOVE_IRON_DEFENSE),
    LEVEL_UP_END
};

static const struct LevelUpMove sVikavoltLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 4, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(10, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(16, MOVE_SPARK),
    LEVEL_UP_MOVE(19, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(25, MOVE_GUILLOTINE),
    LEVEL_UP_MOVE(31, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(37, MOVE_DIG),
    LEVEL_UP_MOVE(41, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(49, MOVE_AGILITY),
    LEVEL_UP_END
};
#endif //P_FAMILY_GRUBBIN

#if P_FAMILY_CRABRAWLER
static const struct LevelUpMove sCrabrawlerLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 9, MOVE_LEER),
    LEVEL_UP_MOVE(13, MOVE_PURSUIT),
    LEVEL_UP_MOVE(17, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(22, MOVE_POWER_UP_PUNCH),
    LEVEL_UP_MOVE(25, MOVE_DIZZY_PUNCH),
    LEVEL_UP_MOVE(29, MOVE_PAYBACK),
    LEVEL_UP_MOVE(33, MOVE_REVERSAL),
    LEVEL_UP_MOVE(37, MOVE_CRABHAMMER),
    LEVEL_UP_MOVE(42, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(45, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};

static const struct LevelUpMove sCrabominableLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ICE_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_PURSUIT),
    LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 9, MOVE_LEER),
    LEVEL_UP_MOVE(13, MOVE_PURSUIT),
    LEVEL_UP_MOVE(17, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(22, MOVE_POWER_UP_PUNCH),
    LEVEL_UP_MOVE(25, MOVE_DIZZY_PUNCH),
    LEVEL_UP_MOVE(29, MOVE_AVALANCHE),
    LEVEL_UP_MOVE(33, MOVE_REVERSAL),
    LEVEL_UP_MOVE(37, MOVE_ICE_HAMMER),
    LEVEL_UP_MOVE(42, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(45, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_CRABRAWLER

#if P_FAMILY_ORICORIO
static const struct LevelUpMove sOricorioLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 6, MOVE_PECK),
    LEVEL_UP_MOVE(10, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(13, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(16, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(20, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(23, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(26, MOVE_TEETER_DANCE),
    LEVEL_UP_MOVE(30, MOVE_ROOST),
    LEVEL_UP_MOVE(33, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(36, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(40, MOVE_REVELATION_DANCE),
    LEVEL_UP_MOVE(43, MOVE_MIRROR_MOVE),
    LEVEL_UP_MOVE(46, MOVE_AGILITY),
    LEVEL_UP_MOVE(50, MOVE_HURRICANE),
    LEVEL_UP_END
};
#endif //P_FAMILY_ORICORIO

#if P_FAMILY_CUTIEFLY
static const struct LevelUpMove sCutieflyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 4, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(10, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(13, MOVE_SILVER_WIND),
    LEVEL_UP_MOVE(16, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(26, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(31, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE(36, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(41, MOVE_QUIVER_DANCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sRibombeeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_POLLEN_PUFF),
    LEVEL_UP_MOVE( 1, MOVE_POLLEN_PUFF),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE( 4, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(10, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(13, MOVE_SILVER_WIND),
    LEVEL_UP_MOVE(16, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE(42, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(49, MOVE_QUIVER_DANCE),
    LEVEL_UP_END
};
#endif //P_FAMILY_CUTIEFLY

#if P_FAMILY_ROCKRUFF
static const struct LevelUpMove sRockruffLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_HOWL),
    LEVEL_UP_MOVE(15, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(26, MOVE_ROAR),
    LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(37, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(40, MOVE_CRUNCH),
    LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB),
    LEVEL_UP_MOVE(48, MOVE_STONE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sLycanrocMiddayLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ACCELEROCK),
    LEVEL_UP_MOVE( 1, MOVE_ACCELEROCK),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_HOWL),
    LEVEL_UP_MOVE(15, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(26, MOVE_ROAR),
    LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(37, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(40, MOVE_CRUNCH),
    LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB),
    LEVEL_UP_MOVE(48, MOVE_STONE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sLycanrocMidnightLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_COUNTER),
    LEVEL_UP_MOVE( 1, MOVE_COUNTER),
    LEVEL_UP_MOVE( 1, MOVE_REVERSAL),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_HOWL),
    LEVEL_UP_MOVE(15, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(26, MOVE_ROAR),
    LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(37, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(40, MOVE_CRUNCH),
    LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB),
    LEVEL_UP_MOVE(48, MOVE_STONE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sLycanrocDuskLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_THRASH),
    LEVEL_UP_MOVE( 1, MOVE_THRASH),
    LEVEL_UP_MOVE( 1, MOVE_ACCELEROCK),
    LEVEL_UP_MOVE( 1, MOVE_COUNTER),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_HOWL),
    LEVEL_UP_MOVE(15, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(26, MOVE_ROAR),
    LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(37, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(40, MOVE_CRUNCH),
    LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB),
    LEVEL_UP_MOVE(48, MOVE_STONE_EDGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_ROCKRUFF

#if P_FAMILY_WISHIWASHI
static const struct LevelUpMove sWishiwashiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 6, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 9, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(14, MOVE_BRINE),
    LEVEL_UP_MOVE(17, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(22, MOVE_TEARFUL_LOOK),
    LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(30, MOVE_DIVE),
    LEVEL_UP_MOVE(33, MOVE_BEAT_UP),
    LEVEL_UP_MOVE(38, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(41, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(46, MOVE_SOAK),
    LEVEL_UP_MOVE(49, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(54, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_WISHIWASHI

#if P_FAMILY_MAREANIE
static const struct LevelUpMove sMareanieLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 5, MOVE_PECK),
    LEVEL_UP_MOVE( 9, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(17, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(21, MOVE_TOXIC),
    LEVEL_UP_MOVE(25, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(29, MOVE_SPIKE_CANNON),
    LEVEL_UP_MOVE(33, MOVE_RECOVER),
    LEVEL_UP_MOVE(37, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(41, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE(45, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(49, MOVE_LIQUIDATION),
    LEVEL_UP_END
};

static const struct LevelUpMove sToxapexLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_BANEFUL_BUNKER),
    LEVEL_UP_MOVE( 1, MOVE_BANEFUL_BUNKER),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE( 5, MOVE_PECK),
    LEVEL_UP_MOVE( 9, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(17, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(21, MOVE_TOXIC),
    LEVEL_UP_MOVE(25, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(29, MOVE_SPIKE_CANNON),
    LEVEL_UP_MOVE(33, MOVE_RECOVER),
    LEVEL_UP_MOVE(37, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(44, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE(51, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(58, MOVE_LIQUIDATION),
    LEVEL_UP_END
};
#endif //P_FAMILY_MAREANIE

#if P_FAMILY_MUDBRAY
static const struct LevelUpMove sMudbrayLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 3, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 8, MOVE_ROTOTILLER),
    LEVEL_UP_MOVE(10, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(15, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(17, MOVE_STOMP),
    LEVEL_UP_MOVE(22, MOVE_BIDE),
    LEVEL_UP_MOVE(24, MOVE_HIGH_HORSEPOWER),
    LEVEL_UP_MOVE(29, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(31, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(36, MOVE_COUNTER),
    LEVEL_UP_MOVE(38, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(43, MOVE_MEGA_KICK),
    LEVEL_UP_MOVE(45, MOVE_SUPERPOWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sMudsdaleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER),
    LEVEL_UP_MOVE( 1, MOVE_BULLDOZE),
    LEVEL_UP_MOVE( 3, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 8, MOVE_ROTOTILLER),
    LEVEL_UP_MOVE(10, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(15, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(17, MOVE_STOMP),
    LEVEL_UP_MOVE(22, MOVE_BIDE),
    LEVEL_UP_MOVE(24, MOVE_HIGH_HORSEPOWER),
    LEVEL_UP_MOVE(29, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(34, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(42, MOVE_COUNTER),
    LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(55, MOVE_MEGA_KICK),
    LEVEL_UP_MOVE(60, MOVE_SUPERPOWER),
    LEVEL_UP_END
};
#endif //P_FAMILY_MUDBRAY

#if P_FAMILY_DEWPIDER
static const struct LevelUpMove sDewpiderLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 5, MOVE_INFESTATION),
    LEVEL_UP_MOVE( 8, MOVE_SPIDER_WEB),
    LEVEL_UP_MOVE(13, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(16, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(21, MOVE_BITE),
    LEVEL_UP_MOVE(24, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(29, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE(32, MOVE_CRUNCH),
    LEVEL_UP_MOVE(37, MOVE_LUNGE),
    LEVEL_UP_MOVE(40, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE(45, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(48, MOVE_ENTRAINMENT),
    LEVEL_UP_END
};

static const struct LevelUpMove sAraquanidLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_SOAK),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 1, MOVE_INFESTATION),
    LEVEL_UP_MOVE( 1, MOVE_SPIDER_WEB),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE( 5, MOVE_INFESTATION),
    LEVEL_UP_MOVE( 8, MOVE_SPIDER_WEB),
    LEVEL_UP_MOVE(13, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(16, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(21, MOVE_BITE),
    LEVEL_UP_MOVE(26, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(33, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE(38, MOVE_CRUNCH),
    LEVEL_UP_MOVE(45, MOVE_LUNGE),
    LEVEL_UP_MOVE(50, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE(57, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(62, MOVE_ENTRAINMENT),
    LEVEL_UP_END
};
#endif //P_FAMILY_DEWPIDER

#if P_FAMILY_FOMANTIS
static const struct LevelUpMove sFomantisLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 5, MOVE_LEAFAGE),
    LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(14, MOVE_GROWTH),
    LEVEL_UP_MOVE(19, MOVE_INGRAIN),
    LEVEL_UP_MOVE(23, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(28, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(32, MOVE_SLASH),
    LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(41, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(46, MOVE_SUNNY_DAY),
    LEVEL_UP_END
};

static const struct LevelUpMove sLurantisLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE( 1, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 5, MOVE_LEAFAGE),
    LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(14, MOVE_GROWTH),
    LEVEL_UP_MOVE(19, MOVE_INGRAIN),
    LEVEL_UP_MOVE(23, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(28, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(32, MOVE_SLASH),
    LEVEL_UP_MOVE(40, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(47, MOVE_SOLAR_BLADE),
    LEVEL_UP_MOVE(55, MOVE_SUNNY_DAY),
    LEVEL_UP_END
};
#endif //P_FAMILY_FOMANTIS

#if P_FAMILY_MORELULL
static const struct LevelUpMove sMorelullLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 4, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 8, MOVE_FLASH),
    LEVEL_UP_MOVE(11, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(22, MOVE_INGRAIN),
    LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(29, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(32, MOVE_STRENGTH_SAP),
    LEVEL_UP_MOVE(36, MOVE_SPORE),
    LEVEL_UP_MOVE(39, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(43, MOVE_DREAM_EATER),
    LEVEL_UP_MOVE(46, MOVE_SPOTLIGHT),
    LEVEL_UP_END
};

static const struct LevelUpMove sShiinoticLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_INGRAIN),
    LEVEL_UP_MOVE( 1, MOVE_FLASH),
    LEVEL_UP_MOVE( 4, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 8, MOVE_FLASH),
    LEVEL_UP_MOVE(11, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(22, MOVE_INGRAIN),
    LEVEL_UP_MOVE(26, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(31, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP),
    LEVEL_UP_MOVE(40, MOVE_SPORE),
    LEVEL_UP_MOVE(44, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(49, MOVE_DREAM_EATER),
    LEVEL_UP_MOVE(53, MOVE_SPOTLIGHT),
    LEVEL_UP_END
};
#endif //P_FAMILY_MORELULL

#if P_FAMILY_SALANDIT
static const struct LevelUpMove sSalanditLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 5, MOVE_EMBER),
    LEVEL_UP_MOVE( 8, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(13, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE(16, MOVE_SMOG),
    LEVEL_UP_MOVE(21, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(24, MOVE_FLAME_BURST),
    LEVEL_UP_MOVE(29, MOVE_TOXIC),
    LEVEL_UP_MOVE(32, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(37, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(45, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE(48, MOVE_DRAGON_PULSE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSalazzleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE( 1, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 1, MOVE_ENCORE),
    LEVEL_UP_MOVE( 1, MOVE_TORMENT),
    LEVEL_UP_MOVE( 1, MOVE_SWAGGER),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 5, MOVE_EMBER),
    LEVEL_UP_MOVE( 8, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(13, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE(16, MOVE_SMOG),
    LEVEL_UP_MOVE(21, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(24, MOVE_FLAME_BURST),
    LEVEL_UP_MOVE(29, MOVE_TOXIC),
    LEVEL_UP_MOVE(32, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(39, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(44, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(51, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE(56, MOVE_DRAGON_PULSE),
    LEVEL_UP_END
};
#endif //P_FAMILY_SALANDIT

#if P_FAMILY_STUFFUL
static const struct LevelUpMove sStuffulLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_BIDE),
    LEVEL_UP_MOVE(10, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(14, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE(19, MOVE_FLAIL),
    LEVEL_UP_MOVE(23, MOVE_PAYBACK),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(32, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(37, MOVE_THRASH),
    LEVEL_UP_MOVE(41, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(50, MOVE_SUPERPOWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sBewearLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_BIND),
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_BIDE),
    LEVEL_UP_MOVE(10, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(14, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE(19, MOVE_FLAIL),
    LEVEL_UP_MOVE(23, MOVE_PAYBACK),
    LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(36, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(43, MOVE_THRASH),
    LEVEL_UP_MOVE(49, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(62, MOVE_SUPERPOWER),
    LEVEL_UP_END
};
#endif //P_FAMILY_STUFFUL

#if P_FAMILY_BOUNSWEET
static const struct LevelUpMove sBounsweetLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 5, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(25, MOVE_TEETER_DANCE),
    LEVEL_UP_MOVE(29, MOVE_FLAIL),
    LEVEL_UP_MOVE(33, MOVE_AROMATIC_MIST),
    LEVEL_UP_END
};

static const struct LevelUpMove sSteeneeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 5, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(25, MOVE_TEETER_DANCE),
    LEVEL_UP_MOVE(29, MOVE_STOMP),
    LEVEL_UP_MOVE(33, MOVE_AROMATIC_MIST),
    LEVEL_UP_MOVE(37, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(41, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(45, MOVE_LEAF_STORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sTsareenaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_TROP_KICK),
    LEVEL_UP_MOVE( 1, MOVE_TROP_KICK),
    LEVEL_UP_MOVE( 1, MOVE_PUNISHMENT),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_SWAGGER),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 5, MOVE_SWAGGER),
    LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(25, MOVE_TEETER_DANCE),
    LEVEL_UP_MOVE(29, MOVE_STOMP),
    LEVEL_UP_MOVE(33, MOVE_AROMATIC_MIST),
    LEVEL_UP_MOVE(37, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(41, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(45, MOVE_LEAF_STORM),
    LEVEL_UP_MOVE(49, MOVE_HIGH_JUMP_KICK),
    LEVEL_UP_MOVE(53, MOVE_POWER_WHIP),
    LEVEL_UP_END
};
#endif //P_FAMILY_BOUNSWEET

#if P_FAMILY_COMFEY
static const struct LevelUpMove sComfeyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_FLOWER_SHIELD),
    LEVEL_UP_MOVE( 4, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE( 7, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(13, MOVE_GROWTH),
    LEVEL_UP_MOVE(16, MOVE_WRAP),
    LEVEL_UP_MOVE(19, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(22, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(25, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE(28, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(31, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(34, MOVE_GRASS_KNOT),
    LEVEL_UP_MOVE(37, MOVE_FLORAL_HEALING),
    LEVEL_UP_MOVE(40, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE(43, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(46, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE(49, MOVE_PLAY_ROUGH),
    LEVEL_UP_END
};
#endif //P_FAMILY_COMFEY

#if P_FAMILY_ORANGURU
static const struct LevelUpMove sOranguruLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 4, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE( 8, MOVE_TAUNT),
    LEVEL_UP_MOVE(11, MOVE_QUASH),
    LEVEL_UP_MOVE(15, MOVE_STORED_POWER),
    LEVEL_UP_MOVE(18, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(25, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(29, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(32, MOVE_INSTRUCT),
    LEVEL_UP_MOVE(36, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(39, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(43, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(46, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(50, MOVE_TRICK_ROOM),
    LEVEL_UP_END
};
#endif //P_FAMILY_ORANGURU

#if P_FAMILY_PASSIMIAN
static const struct LevelUpMove sPassimianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 8, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(11, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(15, MOVE_BEAT_UP),
    LEVEL_UP_MOVE(18, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(25, MOVE_BESTOW),
    LEVEL_UP_MOVE(29, MOVE_THRASH),
    LEVEL_UP_MOVE(32, MOVE_BULK_UP),
    LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(39, MOVE_FLING),
    LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(46, MOVE_REVERSAL),
    LEVEL_UP_MOVE(50, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_PASSIMIAN

#if P_FAMILY_WIMPOD
static const struct LevelUpMove sWimpodLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_END
};

static const struct LevelUpMove sGolisopodLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_FIRST_IMPRESSION),
    LEVEL_UP_MOVE( 1, MOVE_FIRST_IMPRESSION),
    LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 4, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 7, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(10, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(13, MOVE_SPITE),
    LEVEL_UP_MOVE(16, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(21, MOVE_SLASH),
    LEVEL_UP_MOVE(26, MOVE_RAZOR_SHELL),
    LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(41, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(48, MOVE_LIQUIDATION),
    LEVEL_UP_END
};
#endif //P_FAMILY_WIMPOD

#if P_FAMILY_SANDYGAST
static const struct LevelUpMove sSandygastLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 5, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(14, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(18, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(23, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(27, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(45, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(50, MOVE_SHORE_UP),
    LEVEL_UP_MOVE(54, MOVE_SANDSTORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sPalossandLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(14, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(18, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(23, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(27, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(47, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(54, MOVE_SHORE_UP),
    LEVEL_UP_MOVE(60, MOVE_SANDSTORM),
    LEVEL_UP_END
};
#endif //P_FAMILY_SANDYGAST

#if P_FAMILY_PYUKUMUKU
static const struct LevelUpMove sPyukumukuLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BATON_PASS),
    LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_BIDE),
    LEVEL_UP_MOVE( 5, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 9, MOVE_TAUNT),
    LEVEL_UP_MOVE(13, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(17, MOVE_COUNTER),
    LEVEL_UP_MOVE(21, MOVE_PURIFY),
    LEVEL_UP_MOVE(25, MOVE_CURSE),
    LEVEL_UP_MOVE(29, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(33, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(37, MOVE_RECOVER),
    LEVEL_UP_MOVE(41, MOVE_SOAK),
    LEVEL_UP_MOVE(45, MOVE_TOXIC),
    LEVEL_UP_MOVE(49, MOVE_MEMENTO),
    LEVEL_UP_END
};
#endif //P_FAMILY_PYUKUMUKU

#if P_FAMILY_TYPE_NULL
static const struct LevelUpMove sTypeNullLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_RAGE),
    LEVEL_UP_MOVE(10, MOVE_PURSUIT),
    LEVEL_UP_MOVE(15, MOVE_IMPRISON),
    LEVEL_UP_MOVE(20, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(25, MOVE_CRUSH_CLAW),
    LEVEL_UP_MOVE(30, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(35, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(45, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(50, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(55, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(60, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(65, MOVE_PUNISHMENT),
    LEVEL_UP_MOVE(70, MOVE_RAZOR_WIND),
    LEVEL_UP_MOVE(75, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE(80, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(85, MOVE_HEAL_BLOCK),
    LEVEL_UP_END
};

static const struct LevelUpMove sSilvallyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_MULTI_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_MULTI_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_HEAL_BLOCK),
    LEVEL_UP_MOVE( 1, MOVE_IMPRISON),
    LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE( 1, MOVE_POISON_FANG),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_RAGE),
    LEVEL_UP_MOVE(10, MOVE_PURSUIT),
    LEVEL_UP_MOVE(15, MOVE_BITE),
    LEVEL_UP_MOVE(20, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(25, MOVE_CRUSH_CLAW),
    LEVEL_UP_MOVE(30, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(35, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(45, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(50, MOVE_CRUNCH),
    LEVEL_UP_MOVE(55, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(60, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(65, MOVE_PUNISHMENT),
    LEVEL_UP_MOVE(70, MOVE_RAZOR_WIND),
    LEVEL_UP_MOVE(75, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE(80, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(85, MOVE_PARTING_SHOT),
    LEVEL_UP_END
};
#endif //P_FAMILY_TYPE_NULL

#if P_FAMILY_MINIOR
static const struct LevelUpMove sMiniorLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 8, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(10, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(15, MOVE_SWIFT),
    LEVEL_UP_MOVE(17, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(22, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(24, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(36, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(38, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(45, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE(50, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_MINIOR

#if P_FAMILY_KOMALA
static const struct LevelUpMove sKomalaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 6, MOVE_STOCKPILE),
    LEVEL_UP_MOVE( 6, MOVE_SPIT_UP),
    LEVEL_UP_MOVE( 6, MOVE_SWALLOW),
    LEVEL_UP_MOVE(11, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(16, MOVE_YAWN),
    LEVEL_UP_MOVE(21, MOVE_SLAM),
    LEVEL_UP_MOVE(26, MOVE_FLAIL),
    LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(36, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(41, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE(46, MOVE_THRASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_KOMALA

#if P_FAMILY_TURTONATOR
static const struct LevelUpMove sTurtonatorLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_SMOG),
    LEVEL_UP_MOVE( 9, MOVE_PROTECT),
    LEVEL_UP_MOVE(13, MOVE_INCINERATE),
    LEVEL_UP_MOVE(17, MOVE_FLAIL),
    LEVEL_UP_MOVE(21, MOVE_ENDURE),
    LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(29, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(33, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(37, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE(41, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(45, MOVE_SHELL_TRAP),
    LEVEL_UP_MOVE(49, MOVE_OVERHEAT),
    LEVEL_UP_MOVE(53, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_TURTONATOR

#if P_FAMILY_TOGEDEMARU
static const struct LevelUpMove sTogedemaruLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 9, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(13, MOVE_CHARGE),
    LEVEL_UP_MOVE(17, MOVE_SPARK),
    LEVEL_UP_MOVE(21, MOVE_NUZZLE),
    LEVEL_UP_MOVE(25, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(29, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(33, MOVE_ZING_ZAP),
    LEVEL_UP_MOVE(37, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE(41, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(45, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(49, MOVE_SPIKY_SHIELD),
    LEVEL_UP_MOVE(53, MOVE_FELL_STINGER),
    LEVEL_UP_END
};
#endif //P_FAMILY_TOGEDEMARU

#if P_FAMILY_MIMIKYU
static const struct LevelUpMove sMimikyuLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(10, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(14, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(19, MOVE_MIMIC),
    LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(28, MOVE_CHARM),
    LEVEL_UP_MOVE(32, MOVE_SLASH),
    LEVEL_UP_MOVE(37, MOVE_SHADOW_CLAW),
    LEVEL_UP_MOVE(41, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(46, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT),
    LEVEL_UP_END
};
#endif //P_FAMILY_MIMIKYU

#if P_FAMILY_BRUXISH
static const struct LevelUpMove sBruxishLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 4, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 9, MOVE_CONFUSION),
    LEVEL_UP_MOVE(12, MOVE_BITE),
    LEVEL_UP_MOVE(17, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(20, MOVE_DISABLE),
    LEVEL_UP_MOVE(25, MOVE_PSYWAVE),
    LEVEL_UP_MOVE(28, MOVE_CRUNCH),
    LEVEL_UP_MOVE(33, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(36, MOVE_SCREECH),
    LEVEL_UP_MOVE(41, MOVE_PSYCHIC_FANGS),
    LEVEL_UP_MOVE(44, MOVE_SYNCHRONOISE),
    LEVEL_UP_END
};
#endif //P_FAMILY_BRUXISH

#if P_FAMILY_DRAMPA
static const struct LevelUpMove sDrampaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 5, MOVE_TWISTER),
    LEVEL_UP_MOVE( 9, MOVE_PROTECT),
    LEVEL_UP_MOVE(13, MOVE_GLARE),
    LEVEL_UP_MOVE(17, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(21, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE(25, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(33, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(37, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(41, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(45, MOVE_FLY),
    LEVEL_UP_MOVE(49, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(53, MOVE_OUTRAGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_DRAMPA

#if P_FAMILY_DHELMISE
static const struct LevelUpMove sDhelmiseLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 5, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE( 9, MOVE_WRAP),
    LEVEL_UP_MOVE(14, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(18, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(23, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(27, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(32, MOVE_ANCHOR_SHOT),
    LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(41, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(45, MOVE_SLAM),
    LEVEL_UP_MOVE(50, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(54, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(59, MOVE_POWER_WHIP),
    LEVEL_UP_END
};
#endif //P_FAMILY_DHELMISE

#if P_FAMILY_JANGMO_O
static const struct LevelUpMove sJangmoOLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_LEER),
    LEVEL_UP_MOVE( 9, MOVE_BIDE),
    LEVEL_UP_MOVE(13, MOVE_PROTECT),
    LEVEL_UP_MOVE(17, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(21, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(25, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(29, MOVE_WORK_UP),
    LEVEL_UP_MOVE(33, MOVE_SCREECH),
    LEVEL_UP_MOVE(37, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(41, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(45, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE(49, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(53, MOVE_OUTRAGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sHakamoOLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SKY_UPPERCUT),
    LEVEL_UP_MOVE( 1, MOVE_SKY_UPPERCUT),
    LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_BIDE),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 5, MOVE_LEER),
    LEVEL_UP_MOVE( 9, MOVE_BIDE),
    LEVEL_UP_MOVE(13, MOVE_PROTECT),
    LEVEL_UP_MOVE(17, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(21, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(25, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(29, MOVE_WORK_UP),
    LEVEL_UP_MOVE(33, MOVE_SCREECH),
    LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(43, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(48, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE(53, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(58, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};

static const struct LevelUpMove sKommoOLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_CLANGING_SCALES),
    LEVEL_UP_MOVE( 1, MOVE_CLANGING_SCALES),
    LEVEL_UP_MOVE( 1, MOVE_SKY_UPPERCUT),
    LEVEL_UP_MOVE( 1, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_BIDE),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 5, MOVE_LEER),
    LEVEL_UP_MOVE( 9, MOVE_BIDE),
    LEVEL_UP_MOVE(13, MOVE_PROTECT),
    LEVEL_UP_MOVE(17, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(21, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(25, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(29, MOVE_WORK_UP),
    LEVEL_UP_MOVE(33, MOVE_SCREECH),
    LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(43, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(51, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE(59, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(67, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(75, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_JANGMO_O

#if P_FAMILY_TAPU_KOKO
static const struct LevelUpMove sTapuKokoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP),
    LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 8, MOVE_SPARK),
    LEVEL_UP_MOVE(14, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE(20, MOVE_SCREECH),
    LEVEL_UP_MOVE(26, MOVE_CHARGE),
    LEVEL_UP_MOVE(32, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(38, MOVE_MIRROR_MOVE),
    LEVEL_UP_MOVE(43, MOVE_NATURES_MADNESS),
    LEVEL_UP_MOVE(48, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(53, MOVE_AGILITY),
    LEVEL_UP_MOVE(58, MOVE_ELECTRO_BALL),
    LEVEL_UP_END
};
#endif //P_FAMILY_TAPU_KOKO

#if P_FAMILY_TAPU_LELE
static const struct LevelUpMove sTapuLeleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PSYCHIC_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST),
    LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE( 1, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 8, MOVE_PSYWAVE),
    LEVEL_UP_MOVE(14, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(20, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(26, MOVE_SKILL_SWAP),
    LEVEL_UP_MOVE(32, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(38, MOVE_TICKLE),
    LEVEL_UP_MOVE(43, MOVE_NATURES_MADNESS),
    LEVEL_UP_MOVE(48, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(53, MOVE_FLATTER),
    LEVEL_UP_MOVE(58, MOVE_MOONBLAST),
    LEVEL_UP_END
};
#endif //P_FAMILY_TAPU_LELE

#if P_FAMILY_TAPU_BULU
static const struct LevelUpMove sTapuBuluLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 8, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE(14, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(20, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(26, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(32, MOVE_HORN_LEECH),
    LEVEL_UP_MOVE(38, MOVE_ROTOTILLER),
    LEVEL_UP_MOVE(43, MOVE_NATURES_MADNESS),
    LEVEL_UP_MOVE(48, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(53, MOVE_MEGAHORN),
    LEVEL_UP_MOVE(58, MOVE_SKULL_BASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_TAPU_BULU

#if P_FAMILY_TAPU_FINI
static const struct LevelUpMove sTapuFiniLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_MOONBLAST),
    LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE( 1, MOVE_HAZE),
    LEVEL_UP_MOVE( 1, MOVE_MIST),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 8, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(14, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(20, MOVE_SOAK),
    LEVEL_UP_MOVE(26, MOVE_REFRESH),
    LEVEL_UP_MOVE(32, MOVE_BRINE),
    LEVEL_UP_MOVE(38, MOVE_DEFOG),
    LEVEL_UP_MOVE(43, MOVE_NATURES_MADNESS),
    LEVEL_UP_MOVE(48, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(53, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_TAPU_FINI

#if P_FAMILY_COSMOG
static const struct LevelUpMove sCosmogLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE(23, MOVE_TELEPORT),
    LEVEL_UP_END
};

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

static const struct LevelUpMove sSolgaleoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SUNSTEEL_STRIKE),
    LEVEL_UP_MOVE( 1, MOVE_SUNSTEEL_STRIKE),
    LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE( 1, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 7, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(13, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(19, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(23, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(31, MOVE_MORNING_SUN),
    LEVEL_UP_MOVE(37, MOVE_CRUNCH),
    LEVEL_UP_MOVE(43, MOVE_METAL_BURST),
    LEVEL_UP_MOVE(47, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(59, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE(61, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE(67, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(73, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};

static const struct LevelUpMove sLunalaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_MOONGEIST_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_MOONGEIST_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(13, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(19, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(23, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(31, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(37, MOVE_NIGHT_DAZE),
    LEVEL_UP_MOVE(43, MOVE_MAGIC_COAT),
    LEVEL_UP_MOVE(47, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(59, MOVE_DREAM_EATER),
    LEVEL_UP_MOVE(61, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(67, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_COSMOG

#if P_FAMILY_NIHILEGO
static const struct LevelUpMove sNihilegoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE( 1, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE( 1, MOVE_TICKLE),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 7, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(13, MOVE_PSYWAVE),
    LEVEL_UP_MOVE(19, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(23, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(29, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(31, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(37, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(43, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE(47, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(53, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE(59, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(67, MOVE_WONDER_ROOM),
    LEVEL_UP_MOVE(73, MOVE_HEAD_SMASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_NIHILEGO

#if P_FAMILY_BUZZWOLE
static const struct LevelUpMove sBuzzwoleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FELL_STINGER),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_REVERSAL),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_POWER_UP_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 7, MOVE_COMET_PUNCH),
    LEVEL_UP_MOVE(13, MOVE_BULK_UP),
    LEVEL_UP_MOVE(19, MOVE_VITAL_THROW),
    LEVEL_UP_MOVE(23, MOVE_ENDURE),
    LEVEL_UP_MOVE(29, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE(31, MOVE_TAUNT),
    LEVEL_UP_MOVE(37, MOVE_MEGA_PUNCH),
    LEVEL_UP_MOVE(43, MOVE_COUNTER),
    LEVEL_UP_MOVE(47, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(53, MOVE_LUNGE),
    LEVEL_UP_MOVE(59, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_MOVE(67, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(73, MOVE_FOCUS_PUNCH),
    LEVEL_UP_END
};
#endif //P_FAMILY_BUZZWOLE

#if P_FAMILY_PHEROMOSA
static const struct LevelUpMove sPheromosaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE( 7, MOVE_SWIFT),
    LEVEL_UP_MOVE(13, MOVE_STOMP),
    LEVEL_UP_MOVE(19, MOVE_FEINT),
    LEVEL_UP_MOVE(23, MOVE_SILVER_WIND),
    LEVEL_UP_MOVE(29, MOVE_BOUNCE),
    LEVEL_UP_MOVE(31, MOVE_JUMP_KICK),
    LEVEL_UP_MOVE(37, MOVE_AGILITY),
    LEVEL_UP_MOVE(43, MOVE_TRIPLE_KICK),
    LEVEL_UP_MOVE(47, MOVE_LUNGE),
    LEVEL_UP_MOVE(53, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(59, MOVE_ME_FIRST),
    LEVEL_UP_MOVE(67, MOVE_HIGH_JUMP_KICK),
    LEVEL_UP_MOVE(73, MOVE_SPEED_SWAP),
    LEVEL_UP_END
};
#endif //P_FAMILY_PHEROMOSA

#if P_FAMILY_XURKITREE
static const struct LevelUpMove sXurkitreeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TAIL_GLOW),
    LEVEL_UP_MOVE( 1, MOVE_SPARK),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 7, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(13, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE(19, MOVE_INGRAIN),
    LEVEL_UP_MOVE(23, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE(29, MOVE_EERIE_IMPULSE),
    LEVEL_UP_MOVE(31, MOVE_SIGNAL_BEAM),
    LEVEL_UP_MOVE(37, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE(43, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(47, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(53, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE(59, MOVE_POWER_WHIP),
    LEVEL_UP_MOVE(67, MOVE_ION_DELUGE),
    LEVEL_UP_MOVE(73, MOVE_ZAP_CANNON),
    LEVEL_UP_END
};
#endif //P_FAMILY_XURKITREE

#if P_FAMILY_CELESTEELA
static const struct LevelUpMove sCelesteelaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_INGRAIN),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 7, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(19, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(23, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(29, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(31, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(37, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(43, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(47, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(53, MOVE_SKULL_BASH),
    LEVEL_UP_MOVE(59, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(67, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(73, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_CELESTEELA

#if P_FAMILY_KARTANA
static const struct LevelUpMove sKartanaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD),
    LEVEL_UP_MOVE( 1, MOVE_DEFOG),
    LEVEL_UP_MOVE( 1, MOVE_VACUUM_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_CUT),
    LEVEL_UP_MOVE( 7, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(19, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(23, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(29, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(31, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(43, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(47, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(53, MOVE_DETECT),
    LEVEL_UP_MOVE(59, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(67, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(73, MOVE_GUILLOTINE),
    LEVEL_UP_END
};
#endif //P_FAMILY_KARTANA

#if P_FAMILY_GUZZLORD
static const struct LevelUpMove sGuzzlordLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BELCH),
    LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_SWALLOW),
    LEVEL_UP_MOVE( 1, MOVE_STOCKPILE),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 7, MOVE_STOMP),
    LEVEL_UP_MOVE(13, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE(19, MOVE_STEAMROLLER),
    LEVEL_UP_MOVE(23, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(29, MOVE_IRON_TAIL),
    LEVEL_UP_MOVE(31, MOVE_STOMPING_TANTRUM),
    LEVEL_UP_MOVE(37, MOVE_CRUNCH),
    LEVEL_UP_MOVE(43, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(47, MOVE_THRASH),
    LEVEL_UP_MOVE(53, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(59, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(67, MOVE_WRING_OUT),
    LEVEL_UP_MOVE(73, MOVE_DRAGON_RUSH),
    LEVEL_UP_END
};
#endif //P_FAMILY_GUZZLORD

#if P_FAMILY_NECROZMA
static const struct LevelUpMove sNecrozmaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE( 1, MOVE_MORNING_SUN),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_MIRROR_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 7, MOVE_SLASH),
    LEVEL_UP_MOVE(13, MOVE_STORED_POWER),
    LEVEL_UP_MOVE(19, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(23, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(31, MOVE_GRAVITY),
    LEVEL_UP_MOVE(37, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(43, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(47, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(50, MOVE_PHOTON_GEYSER),
    LEVEL_UP_MOVE(53, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(59, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(67, MOVE_WRING_OUT),
    LEVEL_UP_MOVE(73, MOVE_PRISMATIC_LASER),
    LEVEL_UP_END
};
#endif //P_FAMILY_NECROZMA

#if P_FAMILY_MAGEARNA
static const struct LevelUpMove sMagearnaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CRAFTY_SHIELD),
    LEVEL_UP_MOVE( 1, MOVE_GEAR_UP),
    LEVEL_UP_MOVE( 1, MOVE_SHIFT_GEAR),
    LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_PSYBEAM),
    LEVEL_UP_MOVE( 9, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(17, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(25, MOVE_MIRROR_SHOT),
    LEVEL_UP_MOVE(33, MOVE_MIND_READER),
    LEVEL_UP_MOVE(41, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(49, MOVE_FLEUR_CANNON),
    LEVEL_UP_MOVE(57, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(65, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(73, MOVE_SYNCHRONOISE),
    LEVEL_UP_MOVE(81, MOVE_AURA_SPHERE),
    LEVEL_UP_MOVE(89, MOVE_HEART_SWAP),
    LEVEL_UP_MOVE(97, MOVE_TRUMP_CARD),
    LEVEL_UP_END
};
#endif //P_FAMILY_MAGEARNA

#if P_FAMILY_MARSHADOW
static const struct LevelUpMove sMarshadowLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE( 1, MOVE_ASSURANCE),
    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_DRAIN_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_COUNTER),
    LEVEL_UP_MOVE( 1, MOVE_PURSUIT),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE( 5, MOVE_FORCE_PALM),
    LEVEL_UP_MOVE(11, MOVE_FEINT),
    LEVEL_UP_MOVE(15, MOVE_ROLLING_KICK),
    LEVEL_UP_MOVE(20, MOVE_COPYCAT),
    LEVEL_UP_MOVE(26, MOVE_SHADOW_PUNCH),
    LEVEL_UP_MOVE(30, MOVE_ROLE_PLAY),
    LEVEL_UP_MOVE(35, MOVE_JUMP_KICK),
    LEVEL_UP_MOVE(41, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(45, MOVE_SPECTRAL_THIEF),
    LEVEL_UP_MOVE(50, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(56, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(60, MOVE_ENDEAVOR),
    LEVEL_UP_END
};
#endif //P_FAMILY_MARSHADOW

#if P_FAMILY_POIPOLE
static const struct LevelUpMove sPoipoleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(19, MOVE_CHARM),
    LEVEL_UP_MOVE(23, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE(31, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(37, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(41, MOVE_TOXIC),
    LEVEL_UP_MOVE(47, MOVE_FELL_STINGER),
    LEVEL_UP_END
};

static const struct LevelUpMove sNaganadelLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(19, MOVE_CHARM),
    LEVEL_UP_MOVE(23, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE(31, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(37, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(41, MOVE_TOXIC),
    LEVEL_UP_MOVE(47, MOVE_FELL_STINGER),
    LEVEL_UP_MOVE(53, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(61, MOVE_DRAGON_PULSE),
    LEVEL_UP_END
};
#endif //P_FAMILY_POIPOLE

#if P_FAMILY_STAKATAKA
static const struct LevelUpMove sStakatakaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(11, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(17, MOVE_BIDE),
    LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(23, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(37, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(43, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(47, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(53, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(61, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_STAKATAKA

#if P_FAMILY_BLACEPHALON
static const struct LevelUpMove sBlacephalonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 7, MOVE_MAGIC_COAT),
    LEVEL_UP_MOVE(13, MOVE_STORED_POWER),
    LEVEL_UP_MOVE(17, MOVE_FLAME_BURST),
    LEVEL_UP_MOVE(23, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(29, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(31, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(37, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(47, MOVE_TRICK),
    LEVEL_UP_MOVE(59, MOVE_MIND_BLOWN),
    LEVEL_UP_END
};
#endif //P_FAMILY_BLACEPHALON

#if P_FAMILY_ZERAORA
static const struct LevelUpMove sZeraoraLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_SPARK),
    LEVEL_UP_MOVE( 5, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(15, MOVE_VOLT_SWITCH),
    LEVEL_UP_MOVE(19, MOVE_SNARL),
    LEVEL_UP_MOVE(22, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(26, MOVE_CHARGE),
    LEVEL_UP_MOVE(29, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE(33, MOVE_SLASH),
    LEVEL_UP_MOVE(36, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(40, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(43, MOVE_PLASMA_FISTS),
    LEVEL_UP_MOVE(47, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(50, MOVE_DISCHARGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_ZERAORA

#if P_FAMILY_MELTAN
static const struct LevelUpMove sMeltanLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE(16, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(40, MOVE_FLASH_CANNON),
    LEVEL_UP_END
};

static const struct LevelUpMove sMelmetalLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(40, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(48, MOVE_MEGA_PUNCH),
    LEVEL_UP_MOVE(56, MOVE_PROTECT),
    LEVEL_UP_MOVE(64, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(72, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_MOVE(80, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(88, MOVE_DOUBLE_IRON_BASH),
    LEVEL_UP_MOVE(96, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_MELTAN

#if P_FAMILY_GROOKEY
static const struct LevelUpMove sGrookeyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 6, MOVE_BRANCH_POKE),
    LEVEL_UP_MOVE( 8, MOVE_TAUNT),
    LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(17, MOVE_SCREECH),
    LEVEL_UP_MOVE(20, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(24, MOVE_SLAM),
    LEVEL_UP_MOVE(28, MOVE_UPROAR),
    LEVEL_UP_MOVE(32, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE(36, MOVE_ENDEAVOR),
    LEVEL_UP_END
};

static const struct LevelUpMove sThwackeyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_BRANCH_POKE),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(19, MOVE_SCREECH),
    LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(30, MOVE_SLAM),
    LEVEL_UP_MOVE(36, MOVE_UPROAR),
    LEVEL_UP_MOVE(42, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE(48, MOVE_ENDEAVOR),
    LEVEL_UP_END
};

static const struct LevelUpMove sRillaboomLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DRUM_BEATING),
    LEVEL_UP_MOVE( 1, MOVE_DRUM_BEATING),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_BRANCH_POKE),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(19, MOVE_SCREECH),
    LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(30, MOVE_SLAM),
    LEVEL_UP_MOVE(38, MOVE_UPROAR),
    LEVEL_UP_MOVE(46, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE(54, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(62, MOVE_BOOMBURST),
    LEVEL_UP_END
};
#endif //P_FAMILY_GROOKEY

#if P_FAMILY_SCORBUNNY
static const struct LevelUpMove sScorbunnyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 6, MOVE_EMBER),
    LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(17, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(20, MOVE_AGILITY),
    LEVEL_UP_MOVE(24, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(28, MOVE_COUNTER),
    LEVEL_UP_MOVE(32, MOVE_BOUNCE),
    LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sRabootLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(19, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(24, MOVE_AGILITY),
    LEVEL_UP_MOVE(30, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(36, MOVE_COUNTER),
    LEVEL_UP_MOVE(42, MOVE_BOUNCE),
    LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sCinderaceLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_PYRO_BALL),
    LEVEL_UP_MOVE( 1, MOVE_PYRO_BALL),
    LEVEL_UP_MOVE( 1, MOVE_FEINT),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(19, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(24, MOVE_AGILITY),
    LEVEL_UP_MOVE(30, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(38, MOVE_COUNTER),
    LEVEL_UP_MOVE(46, MOVE_BOUNCE),
    LEVEL_UP_MOVE(54, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(62, MOVE_COURT_CHANGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_SCORBUNNY

#if P_FAMILY_SOBBLE
static const struct LevelUpMove sSobbleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 6, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 8, MOVE_BIND),
    LEVEL_UP_MOVE(12, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(17, MOVE_TEARFUL_LOOK),
    LEVEL_UP_MOVE(20, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(24, MOVE_U_TURN),
    LEVEL_UP_MOVE(28, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(32, MOVE_SOAK),
    LEVEL_UP_MOVE(36, MOVE_RAIN_DANCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sDrizzileLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE(12, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(19, MOVE_TEARFUL_LOOK),
    LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(30, MOVE_U_TURN),
    LEVEL_UP_MOVE(36, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(42, MOVE_SOAK),
    LEVEL_UP_MOVE(48, MOVE_RAIN_DANCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sInteleonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SNIPE_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_SNIPE_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_ACROBATICS),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE(12, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(19, MOVE_TEARFUL_LOOK),
    LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(30, MOVE_U_TURN),
    LEVEL_UP_MOVE(38, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(46, MOVE_SOAK),
    LEVEL_UP_MOVE(54, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(62, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_SOBBLE

#if P_FAMILY_SKWOVET
static const struct LevelUpMove sSkwovetLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_BITE),
    LEVEL_UP_MOVE(10, MOVE_STUFF_CHEEKS),
    LEVEL_UP_MOVE(15, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(15, MOVE_SWALLOW),
    LEVEL_UP_MOVE(15, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(20, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(25, MOVE_REST),
    LEVEL_UP_MOVE(30, MOVE_COUNTER),
    LEVEL_UP_MOVE(35, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(40, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(45, MOVE_BELCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sGreedentLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_COVET),
    LEVEL_UP_MOVE( 1, MOVE_COVET),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_STUFF_CHEEKS),
    LEVEL_UP_MOVE(15, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(15, MOVE_SWALLOW),
    LEVEL_UP_MOVE(15, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(20, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(27, MOVE_REST),
    LEVEL_UP_MOVE(34, MOVE_COUNTER),
    LEVEL_UP_MOVE(41, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(48, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(55, MOVE_BELCH),
    LEVEL_UP_END
};
#endif //P_FAMILY_SKWOVET

#if P_FAMILY_ROOKIDEE
static const struct LevelUpMove sRookideeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_POWER_TRIP),
    LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_PLUCK),
    LEVEL_UP_MOVE(20, MOVE_TAUNT),
    LEVEL_UP_MOVE(24, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(28, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(32, MOVE_SWAGGER),
    LEVEL_UP_MOVE(36, MOVE_BRAVE_BIRD),
    LEVEL_UP_END
};

static const struct LevelUpMove sCorvisquireLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP),
    LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_PLUCK),
    LEVEL_UP_MOVE(22, MOVE_TAUNT),
    LEVEL_UP_MOVE(28, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(34, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(40, MOVE_SWAGGER),
    LEVEL_UP_MOVE(46, MOVE_BRAVE_BIRD),
    LEVEL_UP_END
};

static const struct LevelUpMove sCorviknightLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_STEEL_WING),
    LEVEL_UP_MOVE( 1, MOVE_STEEL_WING),
    LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP),
    LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_PLUCK),
    LEVEL_UP_MOVE(22, MOVE_TAUNT),
    LEVEL_UP_MOVE(28, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(34, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(42, MOVE_SWAGGER),
    LEVEL_UP_MOVE(50, MOVE_BRAVE_BIRD),
    LEVEL_UP_END
};
#endif //P_FAMILY_ROOKIDEE

#if P_FAMILY_BLIPBUG
static const struct LevelUpMove sBlipbugLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG),
    LEVEL_UP_END
};

static const struct LevelUpMove sDottlerLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 0, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE( 0, MOVE_REFLECT),
    LEVEL_UP_MOVE( 1, MOVE_REFLECT),
    LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG),
    LEVEL_UP_END
};

static const struct LevelUpMove sOrbeetleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_REFLECT),
    LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE( 4, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 8, MOVE_MAGIC_COAT),
    LEVEL_UP_MOVE(12, MOVE_AGILITY),
    LEVEL_UP_MOVE(16, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(20, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(24, MOVE_ALLY_SWITCH),
    LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(32, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE(36, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(40, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE(44, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(48, MOVE_PSYCHIC_TERRAIN),
    LEVEL_UP_END
};
#endif //P_FAMILY_BLIPBUG

#if P_FAMILY_NICKIT
static const struct LevelUpMove sNickitLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 4, MOVE_BEAT_UP),
    LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(12, MOVE_SNARL),
    LEVEL_UP_MOVE(16, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(20, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(28, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(32, MOVE_TAIL_SLAP),
    LEVEL_UP_MOVE(36, MOVE_FOUL_PLAY),
    LEVEL_UP_END
};

static const struct LevelUpMove sThievulLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_THIEF),
    LEVEL_UP_MOVE( 1, MOVE_THIEF),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_BEAT_UP),
    LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(12, MOVE_SNARL),
    LEVEL_UP_MOVE(16, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(22, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(34, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(40, MOVE_TAIL_SLAP),
    LEVEL_UP_MOVE(46, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(52, MOVE_PARTING_SHOT),
    LEVEL_UP_END
};
#endif //P_FAMILY_NICKIT

#if P_FAMILY_GOSSIFLEUR
static const struct LevelUpMove sGossifleurLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 1, MOVE_SING),
    LEVEL_UP_MOVE( 4, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 8, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(16, MOVE_ROUND),
    LEVEL_UP_MOVE(21, MOVE_LEAF_TORNADO),
    LEVEL_UP_MOVE(24, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(28, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(32, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(36, MOVE_LEAF_STORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sEldegossLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE( 1, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE( 1, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 1, MOVE_SING),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(16, MOVE_ROUND),
    LEVEL_UP_MOVE(23, MOVE_LEAF_TORNADO),
    LEVEL_UP_MOVE(28, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(34, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(46, MOVE_LEAF_STORM),
    LEVEL_UP_MOVE(52, MOVE_COTTON_GUARD),
    LEVEL_UP_END
};
#endif //P_FAMILY_GOSSIFLEUR

#if P_FAMILY_WOOLOO
static const struct LevelUpMove sWoolooLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 8, MOVE_COPYCAT),
    LEVEL_UP_MOVE(12, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(21, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(28, MOVE_GUARD_SWAP),
    LEVEL_UP_MOVE(32, MOVE_REVERSAL),
    LEVEL_UP_MOVE(36, MOVE_COTTON_GUARD),
    LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sDubwoolLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE(12, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(21, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(32, MOVE_GUARD_SWAP),
    LEVEL_UP_MOVE(38, MOVE_REVERSAL),
    LEVEL_UP_MOVE(44, MOVE_COTTON_GUARD),
    LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(56, MOVE_LAST_RESORT),
    LEVEL_UP_END
};
#endif //P_FAMILY_WOOLOO

#if P_FAMILY_CHEWTLE
static const struct LevelUpMove sChewtleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(14, MOVE_PROTECT),
    LEVEL_UP_MOVE(21, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(28, MOVE_COUNTER),
    LEVEL_UP_MOVE(35, MOVE_JAW_LOCK),
    LEVEL_UP_MOVE(42, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(49, MOVE_BODY_SLAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sDrednawLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_SHELL),
    LEVEL_UP_MOVE( 1, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE(21, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(30, MOVE_COUNTER),
    LEVEL_UP_MOVE(39, MOVE_JAW_LOCK),
    LEVEL_UP_MOVE(48, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(57, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(66, MOVE_HEAD_SMASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_CHEWTLE

#if P_FAMILY_YAMPER
static const struct LevelUpMove sYamperLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_NUZZLE),
    LEVEL_UP_MOVE(10, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_ROAR),
    LEVEL_UP_MOVE(20, MOVE_SPARK),
    LEVEL_UP_MOVE(26, MOVE_CHARM),
    LEVEL_UP_MOVE(30, MOVE_CRUNCH),
    LEVEL_UP_MOVE(35, MOVE_CHARGE),
    LEVEL_UP_MOVE(40, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(45, MOVE_PLAY_ROUGH),
    LEVEL_UP_END
};

static const struct LevelUpMove sBoltundLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ELECTRIFY),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_NUZZLE),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_ROAR),
    LEVEL_UP_MOVE(20, MOVE_SPARK),
    LEVEL_UP_MOVE(28, MOVE_CHARM),
    LEVEL_UP_MOVE(34, MOVE_CRUNCH),
    LEVEL_UP_MOVE(41, MOVE_CHARGE),
    LEVEL_UP_MOVE(48, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(55, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(62, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_END
};
#endif //P_FAMILY_YAMPER

#if P_FAMILY_ROLYCOLY
static const struct LevelUpMove sRolycolyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(25, MOVE_INCINERATE),
    LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(35, MOVE_HEAT_CRASH),
    LEVEL_UP_MOVE(40, MOVE_ROCK_BLAST),
    LEVEL_UP_END
};

static const struct LevelUpMove sCarkolLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(27, MOVE_INCINERATE),
    LEVEL_UP_MOVE(35, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(41, MOVE_HEAT_CRASH),
    LEVEL_UP_MOVE(48, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(55, MOVE_BURN_UP),
    LEVEL_UP_END
};

static const struct LevelUpMove sCoalossalLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_TAR_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_TAR_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(27, MOVE_INCINERATE),
    LEVEL_UP_MOVE(37, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(45, MOVE_HEAT_CRASH),
    LEVEL_UP_MOVE(54, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(63, MOVE_BURN_UP),
    LEVEL_UP_END
};
#endif //P_FAMILY_ROLYCOLY

#if P_FAMILY_APPLIN
static const struct LevelUpMove sApplinLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_END
};

static const struct LevelUpMove sFlappleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_RECYCLE),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_TWISTER),
    LEVEL_UP_MOVE( 4, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE( 8, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(12, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(16, MOVE_PROTECT),
    LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(24, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(28, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(32, MOVE_GRAV_APPLE),
    LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(40, MOVE_FLY),
    LEVEL_UP_MOVE(44, MOVE_DRAGON_RUSH),
    LEVEL_UP_END
};

static const struct LevelUpMove sAppletunLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_HEADBUTT),
    LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
    LEVEL_UP_MOVE( 1, MOVE_RECYCLE),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 4, MOVE_CURSE),
    LEVEL_UP_MOVE( 8, MOVE_STOMP),
    LEVEL_UP_MOVE(12, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(16, MOVE_PROTECT),
    LEVEL_UP_MOVE(20, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(24, MOVE_RECOVER),
    LEVEL_UP_MOVE(28, MOVE_APPLE_ACID),
    LEVEL_UP_MOVE(32, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(44, MOVE_ENERGY_BALL),
    LEVEL_UP_END
};

#if P_GEN_9_CROSS_EVOS
static const struct LevelUpMove sDipplinLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 1, MOVE_RECYCLE),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 4, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE( 8, MOVE_GROWTH),
    LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(16, MOVE_PROTECT),
    LEVEL_UP_MOVE(20, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(28, MOVE_SYRUP_BOMB),
    LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(36, MOVE_RECOVER),
    LEVEL_UP_MOVE(40, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(44, MOVE_SUBSTITUTE),
    LEVEL_UP_END
};

static const struct LevelUpMove sHydrappleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_FICKLE_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 1, MOVE_RECYCLE),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 4, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE( 8, MOVE_GROWTH),
    LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(16, MOVE_PROTECT),
    LEVEL_UP_MOVE(20, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(28, MOVE_SYRUP_BOMB),
    LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(36, MOVE_RECOVER),
    LEVEL_UP_MOVE(40, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(44, MOVE_SUBSTITUTE),
    LEVEL_UP_MOVE(54, MOVE_POWER_WHIP),
    LEVEL_UP_END
};
#endif //P_GEN_9_CROSS_EVOS
#endif //P_FAMILY_APPLIN

#if P_FAMILY_SILICOBRA
static const struct LevelUpMove sSilicobraLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_MINIMIZE),
    LEVEL_UP_MOVE(10, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE(15, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(20, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(25, MOVE_GLARE),
    LEVEL_UP_MOVE(30, MOVE_DIG),
    LEVEL_UP_MOVE(35, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(40, MOVE_SLAM),
    LEVEL_UP_MOVE(45, MOVE_COIL),
    LEVEL_UP_MOVE(50, MOVE_SAND_TOMB),
    LEVEL_UP_END
};

static const struct LevelUpMove sSandacondaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SKULL_BASH),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_MINIMIZE),
    LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE(15, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(20, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(25, MOVE_GLARE),
    LEVEL_UP_MOVE(30, MOVE_DIG),
    LEVEL_UP_MOVE(35, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(42, MOVE_SLAM),
    LEVEL_UP_MOVE(49, MOVE_COIL),
    LEVEL_UP_MOVE(51, MOVE_SAND_TOMB),
    LEVEL_UP_END
};
#endif //P_FAMILY_SILICOBRA

#if P_FAMILY_CRAMORANT
static const struct LevelUpMove sCramorantLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BELCH),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_STOCKPILE),
    LEVEL_UP_MOVE( 1, MOVE_SWALLOW),
    LEVEL_UP_MOVE( 1, MOVE_SPIT_UP),
    LEVEL_UP_MOVE( 7, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(14, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(21, MOVE_PLUCK),
    LEVEL_UP_MOVE(28, MOVE_DIVE),
    LEVEL_UP_MOVE(35, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(42, MOVE_AMNESIA),
    LEVEL_UP_MOVE(49, MOVE_THRASH),
    LEVEL_UP_MOVE(56, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_CRAMORANT

#if P_FAMILY_ARROKUDA
static const struct LevelUpMove sArrokudaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_AQUA_JET),
    LEVEL_UP_MOVE( 6, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_BITE),
    LEVEL_UP_MOVE(18, MOVE_AGILITY),
    LEVEL_UP_MOVE(24, MOVE_DIVE),
    LEVEL_UP_MOVE(30, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(36, MOVE_CRUNCH),
    LEVEL_UP_MOVE(42, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sBarraskewdaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THROAT_CHOP),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_AQUA_JET),
    LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE(18, MOVE_AGILITY),
    LEVEL_UP_MOVE(24, MOVE_DIVE),
    LEVEL_UP_MOVE(32, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(40, MOVE_CRUNCH),
    LEVEL_UP_MOVE(48, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_ARROKUDA

#if P_FAMILY_TOXEL
static const struct LevelUpMove sToxelLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BELCH),
    LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK),
    LEVEL_UP_MOVE( 1, MOVE_NUZZLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_FLAIL),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_END
};

static const struct LevelUpMove sToxtricityAmpedLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SPARK),
    LEVEL_UP_MOVE( 1, MOVE_SPARK),
    LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE),
    LEVEL_UP_MOVE( 1, MOVE_BELCH),
    LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK),
    LEVEL_UP_MOVE( 1, MOVE_NUZZLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_FLAIL),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE( 4, MOVE_CHARGE),
    LEVEL_UP_MOVE( 8, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE(12, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(16, MOVE_TAUNT),
    LEVEL_UP_MOVE(20, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(24, MOVE_SCREECH),
    LEVEL_UP_MOVE(28, MOVE_SWAGGER),
    LEVEL_UP_MOVE(32, MOVE_TOXIC),
    LEVEL_UP_MOVE(36, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(40, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(44, MOVE_OVERDRIVE),
    LEVEL_UP_MOVE(48, MOVE_BOOMBURST),
    LEVEL_UP_MOVE(52, MOVE_SHIFT_GEAR),
    LEVEL_UP_END
};

static const struct LevelUpMove sToxtricityLowKeyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SPARK),
    LEVEL_UP_MOVE( 1, MOVE_SPARK),
    LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE),
    LEVEL_UP_MOVE( 1, MOVE_BELCH),
    LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK),
    LEVEL_UP_MOVE( 1, MOVE_NUZZLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_FLAIL),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE( 4, MOVE_CHARGE),
    LEVEL_UP_MOVE( 8, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE(12, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(16, MOVE_TAUNT),
    LEVEL_UP_MOVE(20, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE(24, MOVE_SCREECH),
    LEVEL_UP_MOVE(28, MOVE_SWAGGER),
    LEVEL_UP_MOVE(32, MOVE_TOXIC),
    LEVEL_UP_MOVE(36, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(40, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(44, MOVE_OVERDRIVE),
    LEVEL_UP_MOVE(48, MOVE_BOOMBURST),
    LEVEL_UP_MOVE(52, MOVE_MAGNETIC_FLUX),
    LEVEL_UP_END
};
#endif //P_FAMILY_TOXEL

#if P_FAMILY_SIZZLIPEDE
static const struct LevelUpMove sSizzlipedeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 5, MOVE_WRAP),
    LEVEL_UP_MOVE(10, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(20, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(25, MOVE_COIL),
    LEVEL_UP_MOVE(30, MOVE_SLAM),
    LEVEL_UP_MOVE(35, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(40, MOVE_CRUNCH),
    LEVEL_UP_MOVE(45, MOVE_FIRE_LASH),
    LEVEL_UP_MOVE(50, MOVE_LUNGE),
    LEVEL_UP_MOVE(55, MOVE_BURN_UP),
    LEVEL_UP_END
};

static const struct LevelUpMove sCentiskorchLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_INFERNO),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(20, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(25, MOVE_COIL),
    LEVEL_UP_MOVE(32, MOVE_SLAM),
    LEVEL_UP_MOVE(39, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(46, MOVE_CRUNCH),
    LEVEL_UP_MOVE(53, MOVE_FIRE_LASH),
    LEVEL_UP_MOVE(60, MOVE_LUNGE),
    LEVEL_UP_MOVE(67, MOVE_BURN_UP),
    LEVEL_UP_END
};
#endif //P_FAMILY_SIZZLIPEDE

#if P_FAMILY_CLOBBOPUS
static const struct LevelUpMove sClobbopusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_FEINT),
    LEVEL_UP_MOVE(10, MOVE_BIND),
    LEVEL_UP_MOVE(15, MOVE_DETECT),
    LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(25, MOVE_BULK_UP),
    LEVEL_UP_MOVE(30, MOVE_SUBMISSION),
    LEVEL_UP_MOVE(35, MOVE_TAUNT),
    LEVEL_UP_MOVE(40, MOVE_REVERSAL),
    LEVEL_UP_MOVE(45, MOVE_SUPERPOWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sGrapploctLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_OCTOLOCK),
    LEVEL_UP_MOVE( 1, MOVE_OCTOLOCK),
    LEVEL_UP_MOVE( 1, MOVE_OCTAZOOKA),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_FEINT),
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE(15, MOVE_DETECT),
    LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(25, MOVE_BULK_UP),
    LEVEL_UP_MOVE(30, MOVE_SUBMISSION),
    LEVEL_UP_MOVE(35, MOVE_TAUNT),
    LEVEL_UP_MOVE(40, MOVE_REVERSAL),
    LEVEL_UP_MOVE(45, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(50, MOVE_TOPSY_TURVY),
    LEVEL_UP_END
};
#endif //P_FAMILY_CLOBBOPUS

#if P_FAMILY_SINISTEA
static const struct LevelUpMove sSinisteaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 6, MOVE_AROMATIC_MIST),
    LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(18, MOVE_PROTECT),
    LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(54, MOVE_MEMENTO),
    LEVEL_UP_MOVE(60, MOVE_SHELL_SMASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sPolteageistLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_TEATIME),
    LEVEL_UP_MOVE( 1, MOVE_TEATIME),
    LEVEL_UP_MOVE( 1, MOVE_STRENGTH_SAP),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST),
    LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(18, MOVE_PROTECT),
    LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(54, MOVE_MEMENTO),
    LEVEL_UP_MOVE(60, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE(66, MOVE_CURSE),
    LEVEL_UP_END
};
#endif //P_FAMILY_SINISTEA

#if P_FAMILY_HATENNA
static const struct LevelUpMove sHatennaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 5, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(15, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(20, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE(35, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(45, MOVE_HEALING_WISH),
    LEVEL_UP_END
};

static const struct LevelUpMove sHattremLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(15, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(20, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE(37, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(44, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(51, MOVE_HEALING_WISH),
    LEVEL_UP_END
};

static const struct LevelUpMove sHattereneLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(15, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(20, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE(37, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(46, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(55, MOVE_HEALING_WISH),
    LEVEL_UP_MOVE(64, MOVE_MAGIC_POWDER),
    LEVEL_UP_END
};
#endif //P_FAMILY_HATENNA

#if P_FAMILY_IMPIDIMP
static const struct LevelUpMove sImpidimpLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_CONFIDE),
    LEVEL_UP_MOVE( 4, MOVE_BITE),
    LEVEL_UP_MOVE( 8, MOVE_FLATTER),
    LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(16, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(20, MOVE_SWAGGER),
    LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(28, MOVE_TORMENT),
    LEVEL_UP_MOVE(33, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(36, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(40, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(44, MOVE_FOUL_PLAY),
    LEVEL_UP_END
};

static const struct LevelUpMove sMorgremLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_FALSE_SURRENDER),
    LEVEL_UP_MOVE( 1, MOVE_FALSE_SURRENDER),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_CONFIDE),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_FLATTER),
    LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(16, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(20, MOVE_SWAGGER),
    LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(28, MOVE_TORMENT),
    LEVEL_UP_MOVE(35, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(46, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(52, MOVE_FOUL_PLAY),
    LEVEL_UP_END
};

static const struct LevelUpMove sGrimmsnarlLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SPIRIT_BREAK),
    LEVEL_UP_MOVE( 1, MOVE_SPIRIT_BREAK),
    LEVEL_UP_MOVE( 1, MOVE_FALSE_SURRENDER),
    LEVEL_UP_MOVE( 1, MOVE_BULK_UP),
    LEVEL_UP_MOVE( 1, MOVE_POWER_UP_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_CONFIDE),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_FLATTER),
    LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(16, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(20, MOVE_SWAGGER),
    LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(28, MOVE_TORMENT),
    LEVEL_UP_MOVE(35, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(48, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(56, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(64, MOVE_HAMMER_ARM),
    LEVEL_UP_END
};
#endif //P_FAMILY_IMPIDIMP

#if P_FAMILY_MILCERY
static const struct LevelUpMove sMilceryLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST),
    LEVEL_UP_MOVE( 5, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(10, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(15, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(20, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(25, MOVE_ATTRACT),
    LEVEL_UP_MOVE(30, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE(40, MOVE_RECOVER),
    LEVEL_UP_MOVE(45, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE(50, MOVE_ENTRAINMENT),
    LEVEL_UP_END
};

static const struct LevelUpMove sAlcremieLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DECORATE),
    LEVEL_UP_MOVE( 1, MOVE_DECORATE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(15, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(20, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(25, MOVE_ATTRACT),
    LEVEL_UP_MOVE(30, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE(40, MOVE_RECOVER),
    LEVEL_UP_MOVE(45, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE(50, MOVE_ENTRAINMENT),
    LEVEL_UP_END
};
#endif //P_FAMILY_MILCERY

#if P_FAMILY_FALINKS
static const struct LevelUpMove sFalinksLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(15, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(20, MOVE_BULK_UP),
    LEVEL_UP_MOVE(25, MOVE_ENDURE),
    LEVEL_UP_MOVE(30, MOVE_REVERSAL),
    LEVEL_UP_MOVE(35, MOVE_FIRST_IMPRESSION),
    LEVEL_UP_MOVE(40, MOVE_NO_RETREAT),
    LEVEL_UP_MOVE(45, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(50, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(55, MOVE_MEGAHORN),
    LEVEL_UP_MOVE(60, MOVE_COUNTER),
    LEVEL_UP_END
};
#endif //P_FAMILY_FALINKS

#if P_FAMILY_PINCURCHIN
static const struct LevelUpMove sPincurchinLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 5, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(10, MOVE_CHARGE),
    LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_SPARK),
    LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(30, MOVE_RECOVER),
    LEVEL_UP_MOVE(35, MOVE_CURSE),
    LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE(45, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(50, MOVE_ZING_ZAP),
    LEVEL_UP_MOVE(55, MOVE_ACUPRESSURE),
    LEVEL_UP_MOVE(60, MOVE_DISCHARGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_PINCURCHIN

#if P_FAMILY_SNOM
static const struct LevelUpMove sSnomLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG),
    LEVEL_UP_END
};

static const struct LevelUpMove sFrosmothLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ICY_WIND),
    LEVEL_UP_MOVE( 1, MOVE_ICY_WIND),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_ATTRACT),
    LEVEL_UP_MOVE( 4, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 8, MOVE_INFESTATION),
    LEVEL_UP_MOVE(12, MOVE_MIST),
    LEVEL_UP_MOVE(16, MOVE_DEFOG),
    LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(24, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(28, MOVE_HAIL),
    LEVEL_UP_MOVE(32, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(36, MOVE_AURORA_VEIL),
    LEVEL_UP_MOVE(40, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(44, MOVE_TAILWIND),
    LEVEL_UP_MOVE(48, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(52, MOVE_QUIVER_DANCE),
    LEVEL_UP_END
};
#endif //P_FAMILY_SNOM

#if P_FAMILY_STONJOURNER
static const struct LevelUpMove sStonjournerLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 1, MOVE_BLOCK),
    LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(12, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(18, MOVE_GRAVITY),
    LEVEL_UP_MOVE(24, MOVE_STOMP),
    LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(36, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(42, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(48, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(54, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(60, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(66, MOVE_MEGA_KICK),
    LEVEL_UP_END
};
#endif //P_FAMILY_STONJOURNER

#if P_FAMILY_EISCUE
static const struct LevelUpMove sEiscueLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 6, MOVE_MIST),
    LEVEL_UP_MOVE(12, MOVE_WEATHER_BALL),
    LEVEL_UP_MOVE(18, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(24, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(30, MOVE_AMNESIA),
    LEVEL_UP_MOVE(36, MOVE_FREEZE_DRY),
    LEVEL_UP_MOVE(42, MOVE_HAIL),
    LEVEL_UP_MOVE(48, MOVE_AURORA_VEIL),
    LEVEL_UP_MOVE(54, MOVE_SURF),
    LEVEL_UP_MOVE(60, MOVE_BLIZZARD),
    LEVEL_UP_END
};
#endif //P_FAMILY_EISCUE

#if P_FAMILY_INDEEDEE
static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_STORED_POWER),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 5, MOVE_ENCORE),
    LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(15, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(20, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(25, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(35, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(40, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(45, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(50, MOVE_PSYCHIC_TERRAIN),
    LEVEL_UP_MOVE(55, MOVE_LAST_RESORT),
    LEVEL_UP_END
};

static const struct LevelUpMove sIndeedeeFemaleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_STORED_POWER),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 5, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(15, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(20, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(25, MOVE_FOLLOW_ME),
    LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(35, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(40, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(45, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(50, MOVE_PSYCHIC_TERRAIN),
    LEVEL_UP_MOVE(55, MOVE_HEALING_WISH),
    LEVEL_UP_END
};
#endif //P_FAMILY_INDEEDEE

#if P_FAMILY_MORPEKO
static const struct LevelUpMove sMorpekoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_LEER),
    LEVEL_UP_MOVE(10, MOVE_POWER_TRIP),
    LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_FLATTER),
    LEVEL_UP_MOVE(25, MOVE_BITE),
    LEVEL_UP_MOVE(30, MOVE_SPARK),
    LEVEL_UP_MOVE(35, MOVE_TORMENT),
    LEVEL_UP_MOVE(40, MOVE_AGILITY),
    LEVEL_UP_MOVE(45, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(50, MOVE_CRUNCH),
    LEVEL_UP_MOVE(55, MOVE_AURA_WHEEL),
    LEVEL_UP_MOVE(60, MOVE_THRASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_MORPEKO

#if P_FAMILY_CUFANT
static const struct LevelUpMove sCufantLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(10, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(15, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(20, MOVE_STOMP),
    LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(30, MOVE_DIG),
    LEVEL_UP_MOVE(35, MOVE_STRENGTH),
    LEVEL_UP_MOVE(40, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(45, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(50, MOVE_HIGH_HORSEPOWER),
    LEVEL_UP_MOVE(55, MOVE_SUPERPOWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sCopperajahLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(15, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(20, MOVE_STOMP),
    LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(30, MOVE_DIG),
    LEVEL_UP_MOVE(37, MOVE_STRENGTH),
    LEVEL_UP_MOVE(44, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(51, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(58, MOVE_HIGH_HORSEPOWER),
    LEVEL_UP_MOVE(65, MOVE_SUPERPOWER),
    LEVEL_UP_END
};
#endif //P_FAMILY_CUFANT

#if P_FAMILY_DRACOZOLT
static const struct LevelUpMove sDracozoltLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 7, MOVE_CHARGE),
    LEVEL_UP_MOVE(14, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(28, MOVE_PLUCK),
    LEVEL_UP_MOVE(35, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(42, MOVE_STOMP),
    LEVEL_UP_MOVE(49, MOVE_SLAM),
    LEVEL_UP_MOVE(56, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(63, MOVE_BOLT_BEAK),
    LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(77, MOVE_DRAGON_RUSH),
    LEVEL_UP_END
};
#endif //P_FAMILY_DRACOZOLT

#if P_FAMILY_ARCTOZOLT
static const struct LevelUpMove sArctozoltLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 7, MOVE_CHARGE),
    LEVEL_UP_MOVE(14, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(28, MOVE_PLUCK),
    LEVEL_UP_MOVE(35, MOVE_AVALANCHE),
    LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY),
    LEVEL_UP_MOVE(49, MOVE_SLAM),
    LEVEL_UP_MOVE(56, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(63, MOVE_BOLT_BEAK),
    LEVEL_UP_MOVE(70, MOVE_ICICLE_CRASH),
    LEVEL_UP_MOVE(77, MOVE_BLIZZARD),
    LEVEL_UP_END
};
#endif //P_FAMILY_ARCTOZOLT

#if P_FAMILY_DRACOVISH
static const struct LevelUpMove sDracovishLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 7, MOVE_PROTECT),
    LEVEL_UP_MOVE(14, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(28, MOVE_BITE),
    LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(42, MOVE_STOMP),
    LEVEL_UP_MOVE(49, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(56, MOVE_CRUNCH),
    LEVEL_UP_MOVE(63, MOVE_FISHIOUS_REND),
    LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(77, MOVE_DRAGON_RUSH),
    LEVEL_UP_END
};
#endif //P_FAMILY_DRACOVISH

#if P_FAMILY_ARCTOVISH
static const struct LevelUpMove sArctovishLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 7, MOVE_PROTECT),
    LEVEL_UP_MOVE(14, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(28, MOVE_BITE),
    LEVEL_UP_MOVE(35, MOVE_AURORA_VEIL),
    LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY),
    LEVEL_UP_MOVE(49, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(56, MOVE_CRUNCH),
    LEVEL_UP_MOVE(63, MOVE_FISHIOUS_REND),
    LEVEL_UP_MOVE(70, MOVE_ICICLE_CRASH),
    LEVEL_UP_MOVE(77, MOVE_BLIZZARD),
    LEVEL_UP_END
};
#endif //P_FAMILY_ARCTOVISH

#if P_FAMILY_DURALUDON
static const struct LevelUpMove sDuraludonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(12, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(18, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(24, MOVE_BREAKING_SWIPE),
    LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(42, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(54, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(60, MOVE_METAL_BURST),
    LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

#if P_GEN_9_CROSS_EVOS
static const struct LevelUpMove sArchaludonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ELECTRO_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(12, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(18, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(24, MOVE_BREAKING_SWIPE),
    LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(42, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(54, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(60, MOVE_METAL_BURST),
    LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_GEN_9_CROSS_EVOS
#endif //P_FAMILY_DURALUDON

#if P_FAMILY_DREEPY
static const struct LevelUpMove sDreepyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_INFESTATION),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_END
};

static const struct LevelUpMove sDrakloakLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_INFESTATION),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 6, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(12, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(18, MOVE_HEX),
    LEVEL_UP_MOVE(24, MOVE_AGILITY),
    LEVEL_UP_MOVE(30, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(36, MOVE_U_TURN),
    LEVEL_UP_MOVE(42, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(48, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(54, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(61, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(72, MOVE_LAST_RESORT),
    LEVEL_UP_END
};

static const struct LevelUpMove sDragapultLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DRAGON_DARTS),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_DARTS),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_INFESTATION),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 6, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(12, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(18, MOVE_HEX),
    LEVEL_UP_MOVE(24, MOVE_AGILITY),
    LEVEL_UP_MOVE(30, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(36, MOVE_U_TURN),
    LEVEL_UP_MOVE(42, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(48, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(54, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(63, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(78, MOVE_LAST_RESORT),
    LEVEL_UP_END
};
#endif //P_FAMILY_DREEPY

#if P_FAMILY_ZACIAN
static const struct LevelUpMove sZacianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_HOWL),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE(11, MOVE_SLASH),
    LEVEL_UP_MOVE(22, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(33, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(44, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(55, MOVE_CRUNCH),
    LEVEL_UP_MOVE(66, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(77, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_ZACIAN

#if P_FAMILY_ZAMAZENTA
static const struct LevelUpMove sZamazentaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_METAL_BURST),
    LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_HOWL),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE(11, MOVE_SLASH),
    LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(33, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(44, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(55, MOVE_CRUNCH),
    LEVEL_UP_MOVE(66, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(77, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_ZAMAZENTA

#if P_FAMILY_ETERNATUS
static const struct LevelUpMove sEternatusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_TAIL),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE( 1, MOVE_AGILITY),
    LEVEL_UP_MOVE( 8, MOVE_TOXIC),
    LEVEL_UP_MOVE(16, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(24, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(32, MOVE_CROSS_POISON),
    LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(56, MOVE_DYNAMAX_CANNON),
    LEVEL_UP_MOVE(64, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(72, MOVE_RECOVER),
    LEVEL_UP_MOVE(80, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(88, MOVE_ETERNABEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_ETERNATUS

#if P_FAMILY_KUBFU
static const struct LevelUpMove sKubfuLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_ENDURE),
    LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(16, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(20, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(28, MOVE_DETECT),
    LEVEL_UP_MOVE(32, MOVE_BULK_UP),
    LEVEL_UP_MOVE(36, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_MOVE(44, MOVE_COUNTER),
    LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sUrshifuSingleStrikeStyleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_WICKED_BLOW),
    LEVEL_UP_MOVE( 1, MOVE_WICKED_BLOW),
    LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_ENDURE),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(16, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(20, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(28, MOVE_DETECT),
    LEVEL_UP_MOVE(32, MOVE_BULK_UP),
    LEVEL_UP_MOVE(36, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_MOVE(44, MOVE_COUNTER),
    LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sUrshifuRapidStrikeStyleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SURGING_STRIKES),
    LEVEL_UP_MOVE( 1, MOVE_SURGING_STRIKES),
    LEVEL_UP_MOVE( 1, MOVE_AQUA_JET),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_ENDURE),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(16, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(20, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(28, MOVE_DETECT),
    LEVEL_UP_MOVE(32, MOVE_BULK_UP),
    LEVEL_UP_MOVE(36, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_MOVE(44, MOVE_COUNTER),
    LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH),
    LEVEL_UP_END
};
#endif //P_FAMILY_KUBFU

#if P_FAMILY_ZARUDE
static const struct LevelUpMove sZarudeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 6, MOVE_LEER),
    LEVEL_UP_MOVE(12, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE(18, MOVE_GROWTH),
    LEVEL_UP_MOVE(24, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(30, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(36, MOVE_GRASS_KNOT),
    LEVEL_UP_MOVE(42, MOVE_BITE),
    LEVEL_UP_MOVE(48, MOVE_U_TURN),
    LEVEL_UP_MOVE(54, MOVE_SWAGGER),
    LEVEL_UP_MOVE(60, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(66, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(72, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(78, MOVE_THRASH),
    LEVEL_UP_MOVE(84, MOVE_POWER_WHIP),
    LEVEL_UP_MOVE(90, MOVE_JUNGLE_HEALING),
    LEVEL_UP_END
};
#endif //P_FAMILY_ZARUDE

#if P_FAMILY_REGIELEKI
static const struct LevelUpMove sRegielekiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 6, MOVE_ELECTROWEB),
    LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(18, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(30, MOVE_EXTREME_SPEED),
    LEVEL_UP_MOVE(36, MOVE_THUNDER_CAGE),
    LEVEL_UP_MOVE(42, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE(48, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(54, MOVE_THRASH),
    LEVEL_UP_MOVE(60, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(78, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_REGIELEKI

#if P_FAMILY_REGIDRAGO
static const struct LevelUpMove sRegidragoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TWISTER),
    LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE( 6, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(24, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(30, MOVE_CRUNCH),
    LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(48, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(54, MOVE_THRASH),
    LEVEL_UP_MOVE(60, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(66, MOVE_DRAGON_ENERGY),
    LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(78, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_REGIDRAGO

#if P_FAMILY_GLASTRIER
static const struct LevelUpMove sGlastrierLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 6, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(12, MOVE_AVALANCHE),
    LEVEL_UP_MOVE(18, MOVE_STOMP),
    LEVEL_UP_MOVE(24, MOVE_TORMENT),
    LEVEL_UP_MOVE(30, MOVE_MIST),
    LEVEL_UP_MOVE(36, MOVE_ICICLE_CRASH),
    LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(48, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(54, MOVE_THRASH),
    LEVEL_UP_MOVE(60, MOVE_TAUNT),
    LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(72, MOVE_SWORDS_DANCE),
    LEVEL_UP_END
};
#endif //P_FAMILY_GLASTRIER

#if P_FAMILY_SPECTRIER
static const struct LevelUpMove sSpectrierLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 6, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(12, MOVE_HEX),
    LEVEL_UP_MOVE(18, MOVE_STOMP),
    LEVEL_UP_MOVE(24, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(30, MOVE_HAZE),
    LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(48, MOVE_AGILITY),
    LEVEL_UP_MOVE(54, MOVE_THRASH),
    LEVEL_UP_MOVE(60, MOVE_DISABLE),
    LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(72, MOVE_NASTY_PLOT),
    LEVEL_UP_END
};
#endif //P_FAMILY_SPECTRIER

#if P_FAMILY_CALYREX
static const struct LevelUpMove sCalyrexLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(24, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(32, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(56, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(64, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT),
    LEVEL_UP_END
};

#if P_FUSION_FORMS
static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GLACIAL_LANCE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE( 1, MOVE_AVALANCHE),
    LEVEL_UP_MOVE( 1, MOVE_STOMP),
    LEVEL_UP_MOVE( 1, MOVE_TORMENT),
    LEVEL_UP_MOVE( 1, MOVE_MIST),
    LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH),
    LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 1, MOVE_THRASH),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(24, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(32, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(56, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(64, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT),
    LEVEL_UP_END
};
#endif //P_FUSION_FORMS

#if P_FUSION_FORMS
static const struct LevelUpMove sCalyrexShadowRiderLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTRAL_BARRAGE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE( 1, MOVE_HEX),
    LEVEL_UP_MOVE( 1, MOVE_STOMP),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 1, MOVE_HAZE),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE( 1, MOVE_AGILITY),
    LEVEL_UP_MOVE( 1, MOVE_THRASH),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(24, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(32, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(56, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(64, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT),
    LEVEL_UP_END
};
#endif //P_FUSION_FORMS
#endif //P_FAMILY_CALYREX

#if P_FAMILY_ENAMORUS
static const struct LevelUpMove sEnamorusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(11, MOVE_TWISTER),
    LEVEL_UP_MOVE(14, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(41, MOVE_CRUNCH),
    LEVEL_UP_MOVE(47, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(52, MOVE_SPRINGTIDE_STORM),
    LEVEL_UP_END
};
#endif //P_FAMILY_ENAMORUS

#if P_FAMILY_SPRIGATITO
static const struct LevelUpMove sSprigatitoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(21, MOVE_U_TURN),
    LEVEL_UP_MOVE(25, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(28, MOVE_SLASH),
    LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(36, MOVE_PLAY_ROUGH),
    LEVEL_UP_END
};

static const struct LevelUpMove sFloragatoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(24, MOVE_U_TURN),
    LEVEL_UP_MOVE(28, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(33, MOVE_SLASH),
    LEVEL_UP_MOVE(38, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(46, MOVE_LEAF_STORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sMeowscaradaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_FLOWER_TRICK),
    LEVEL_UP_MOVE( 1, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(24, MOVE_U_TURN),
    LEVEL_UP_MOVE(29, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(33, MOVE_SLASH),
    LEVEL_UP_MOVE(38, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(42, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(47, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(58, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE(64, MOVE_LEAF_STORM),
    LEVEL_UP_END
};
#endif //P_FAMILY_SPRIGATITO

#if P_FAMILY_FUECOCO
static const struct LevelUpMove sFuecocoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 7, MOVE_ROUND),
    LEVEL_UP_MOVE(12, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_INCINERATE),
    LEVEL_UP_MOVE(17, MOVE_YAWN),
    LEVEL_UP_MOVE(21, MOVE_SNARL),
    LEVEL_UP_MOVE(25, MOVE_ROAR),
    LEVEL_UP_MOVE(28, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(32, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(36, MOVE_FIRE_BLAST),
    LEVEL_UP_END
};

static const struct LevelUpMove sCrocalorLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 7, MOVE_LICK),
    LEVEL_UP_MOVE(10, MOVE_ROUND),
    LEVEL_UP_MOVE(12, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_YAWN),
    LEVEL_UP_MOVE(17, MOVE_INCINERATE),
    LEVEL_UP_MOVE(24, MOVE_SNARL),
    LEVEL_UP_MOVE(28, MOVE_ROAR),
    LEVEL_UP_MOVE(32, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(38, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(42, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(47, MOVE_FIRE_BLAST),
    LEVEL_UP_END
};

static const struct LevelUpMove sSkeledirgeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_TORCH_SONG),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_LICK),
    LEVEL_UP_MOVE(10, MOVE_ROUND),
    LEVEL_UP_MOVE(12, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(15, MOVE_BITE),
    LEVEL_UP_MOVE(17, MOVE_INCINERATE),
    LEVEL_UP_MOVE(24, MOVE_SNARL),
    LEVEL_UP_MOVE(28, MOVE_ROAR),
    LEVEL_UP_MOVE(32, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(38, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(42, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(47, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(47, MOVE_HEX),
    LEVEL_UP_MOVE(58, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(64, MOVE_OVERHEAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_FUECOCO

#if P_FAMILY_QUAXLY
static const struct LevelUpMove sQuaxlyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 7, MOVE_WORK_UP),
    LEVEL_UP_MOVE(10, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(21, MOVE_AQUA_CUTTER),
    LEVEL_UP_MOVE(24, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(28, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(31, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(35, MOVE_LIQUIDATION),
    LEVEL_UP_END
};

static const struct LevelUpMove sQuaxwellLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE( 7, MOVE_WORK_UP),
    LEVEL_UP_MOVE(10, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(17, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(19, MOVE_LOW_SWEEP),
    LEVEL_UP_MOVE(23, MOVE_AQUA_CUTTER),
    LEVEL_UP_MOVE(27, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(38, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(43, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(48, MOVE_FEATHER_DANCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sQuaquavalLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_AQUA_STEP),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE( 7, MOVE_WORK_UP),
    LEVEL_UP_MOVE(10, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(17, MOVE_LOW_SWEEP),
    LEVEL_UP_MOVE(17, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(21, MOVE_AQUA_CUTTER),
    LEVEL_UP_MOVE(27, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(38, MOVE_MEGA_KICK),
    LEVEL_UP_MOVE(43, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(47, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(52, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(58, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(64, MOVE_WAVE_CRASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_QUAXLY

#if P_FAMILY_LECHONK
static const struct LevelUpMove sLechonkLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(12, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(15, MOVE_COVET),
    LEVEL_UP_MOVE(17, MOVE_DIG),
    LEVEL_UP_MOVE(21, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_YAWN),
    LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(30, MOVE_WORK_UP),
    LEVEL_UP_MOVE(32, MOVE_UPROAR),
    LEVEL_UP_MOVE(35, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sOinkologneMaleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(12, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(15, MOVE_COVET),
    LEVEL_UP_MOVE(17, MOVE_DIG),
    LEVEL_UP_MOVE(23, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(27, MOVE_YAWN),
    LEVEL_UP_MOVE(34, MOVE_WORK_UP),
    LEVEL_UP_MOVE(38, MOVE_UPROAR),
    LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(48, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(54, MOVE_BELCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sOinkologneFemaleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 3, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 6, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 9, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(12, MOVE_COVET),
    LEVEL_UP_MOVE(15, MOVE_DIG),
    LEVEL_UP_MOVE(17, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(23, MOVE_YAWN),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(30, MOVE_WORK_UP),
    LEVEL_UP_MOVE(34, MOVE_UPROAR),
    LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(45, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(51, MOVE_BELCH),
    LEVEL_UP_END
};
#endif //P_FAMILY_LECHONK

#if P_FAMILY_TAROUNTULA
static const struct LevelUpMove sTarountulaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 5, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE( 8, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(11, MOVE_FEINT),
    LEVEL_UP_MOVE(14, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(18, MOVE_BLOCK),
    LEVEL_UP_MOVE(22, MOVE_COUNTER),
    LEVEL_UP_MOVE(25, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(29, MOVE_STICKY_WEB),
    LEVEL_UP_MOVE(33, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(36, MOVE_CIRCLE_THROW),
    LEVEL_UP_MOVE(40, MOVE_THROAT_CHOP),
    LEVEL_UP_MOVE(44, MOVE_SKITTER_SMACK),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpidopsLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SILK_TRAP),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 5, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE( 8, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(11, MOVE_FEINT),
    LEVEL_UP_MOVE(14, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(19, MOVE_BLOCK),
    LEVEL_UP_MOVE(24, MOVE_COUNTER),
    LEVEL_UP_MOVE(28, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(33, MOVE_STICKY_WEB),
    LEVEL_UP_MOVE(37, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(41, MOVE_CIRCLE_THROW),
    LEVEL_UP_MOVE(45, MOVE_THROAT_CHOP),
    LEVEL_UP_MOVE(49, MOVE_SKITTER_SMACK),
    LEVEL_UP_END
};
#endif //P_FAMILY_TAROUNTULA

#if P_FAMILY_NYMBLE
static const struct LevelUpMove sNymbleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE( 6, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 9, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(11, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(14, MOVE_SCREECH),
    LEVEL_UP_MOVE(18, MOVE_ENDURE),
    LEVEL_UP_MOVE(22, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(26, MOVE_FEINT),
    LEVEL_UP_MOVE(30, MOVE_AGILITY),
    LEVEL_UP_MOVE(38, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(41, MOVE_FIRST_IMPRESSION),
    LEVEL_UP_END
};

static const struct LevelUpMove sLokixLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_LUNGE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
    LEVEL_UP_MOVE( 1, MOVE_DETECT),
    LEVEL_UP_MOVE( 4, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE( 6, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 9, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(11, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(14, MOVE_SCREECH),
    LEVEL_UP_MOVE(18, MOVE_ENDURE),
    LEVEL_UP_MOVE(22, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(28, MOVE_FEINT),
    LEVEL_UP_MOVE(32, MOVE_AGILITY),
    LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP),
    LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(44, MOVE_FIRST_IMPRESSION),
    LEVEL_UP_MOVE(48, MOVE_BOUNCE),
    LEVEL_UP_MOVE(53, MOVE_AXE_KICK),
    LEVEL_UP_END
};
#endif //P_FAMILY_NYMBLE

#if P_FAMILY_PAWMI
static const struct LevelUpMove sPawmiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 8, MOVE_CHARGE),
    LEVEL_UP_MOVE(12, MOVE_NUZZLE),
    LEVEL_UP_MOVE(15, MOVE_DIG),
    LEVEL_UP_MOVE(19, MOVE_BITE),
    LEVEL_UP_MOVE(23, MOVE_SPARK),
    LEVEL_UP_MOVE(27, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(31, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE(35, MOVE_SLAM),
    LEVEL_UP_MOVE(38, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(40, MOVE_AGILITY),
    LEVEL_UP_MOVE(44, MOVE_WILD_CHARGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sPawmoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ARM_THRUST),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 8, MOVE_CHARGE),
    LEVEL_UP_MOVE(12, MOVE_NUZZLE),
    LEVEL_UP_MOVE(15, MOVE_DIG),
    LEVEL_UP_MOVE(19, MOVE_BITE),
    LEVEL_UP_MOVE(23, MOVE_SPARK),
    LEVEL_UP_MOVE(27, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(32, MOVE_SLAM),
    LEVEL_UP_MOVE(38, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE(42, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(46, MOVE_AGILITY),
    LEVEL_UP_MOVE(52, MOVE_WILD_CHARGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sPawmotLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_REVIVAL_BLESSING),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 8, MOVE_CHARGE),
    LEVEL_UP_MOVE(12, MOVE_NUZZLE),
    LEVEL_UP_MOVE(15, MOVE_DIG),
    LEVEL_UP_MOVE(19, MOVE_BITE),
    LEVEL_UP_MOVE(23, MOVE_SPARK),
    LEVEL_UP_MOVE(25, MOVE_ARM_THRUST),
    LEVEL_UP_MOVE(29, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(33, MOVE_SLAM),
    LEVEL_UP_MOVE(39, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE(44, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(49, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(54, MOVE_AGILITY),
    LEVEL_UP_MOVE(60, MOVE_DOUBLE_SHOCK),
    LEVEL_UP_END
};
#endif //P_FAMILY_PAWMI

#if P_FAMILY_TANDEMAUS
static const struct LevelUpMove sTandemausLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE( 5, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(11, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(18, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(22, MOVE_ENCORE),
    LEVEL_UP_MOVE(26, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(30, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(33, MOVE_CHARM),
    LEVEL_UP_MOVE(37, MOVE_BEAT_UP),
    LEVEL_UP_MOVE(41, MOVE_COPYCAT),
    LEVEL_UP_MOVE(46, MOVE_POPULATION_BOMB),
    LEVEL_UP_END
};

static const struct LevelUpMove sMausholdLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_FOLLOW_ME),
    LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE( 1, MOVE_TIDY_UP),
    LEVEL_UP_MOVE( 5, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(11, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(18, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(22, MOVE_ENCORE),
    LEVEL_UP_MOVE(29, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(33, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(37, MOVE_CHARM),
    LEVEL_UP_MOVE(41, MOVE_BEAT_UP),
    LEVEL_UP_MOVE(46, MOVE_COPYCAT),
    LEVEL_UP_MOVE(53, MOVE_POPULATION_BOMB),
    LEVEL_UP_END
};
#endif //P_FAMILY_TANDEMAUS

#if P_FAMILY_FIDOUGH
static const struct LevelUpMove sFidoughLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 3, MOVE_LICK),
    LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 8, MOVE_COVET),
    LEVEL_UP_MOVE(11, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(18, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(22, MOVE_WORK_UP),
    LEVEL_UP_MOVE(26, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(30, MOVE_ROAR),
    LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(36, MOVE_CHARM),
    LEVEL_UP_MOVE(40, MOVE_CRUNCH),
    LEVEL_UP_MOVE(45, MOVE_LAST_RESORT),
    LEVEL_UP_END
};

static const struct LevelUpMove sDachsbunLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 3, MOVE_LICK),
    LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 8, MOVE_COVET),
    LEVEL_UP_MOVE(11, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(18, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(22, MOVE_WORK_UP),
    LEVEL_UP_MOVE(29, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(33, MOVE_ROAR),
    LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(42, MOVE_CHARM),
    LEVEL_UP_MOVE(47, MOVE_CRUNCH),
    LEVEL_UP_MOVE(53, MOVE_LAST_RESORT),
    LEVEL_UP_END
};
#endif //P_FAMILY_FIDOUGH

#if P_FAMILY_SMOLIV
static const struct LevelUpMove sSmolivLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 7, MOVE_GROWTH),
    LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(13, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(16, MOVE_FLAIL),
    LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE(27, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(30, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(34, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(38, MOVE_TERRAIN_PULSE),
    LEVEL_UP_END
};

static const struct LevelUpMove sDollivLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 7, MOVE_GROWTH),
    LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(13, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(16, MOVE_FLAIL),
    LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE(29, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(34, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(37, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(42, MOVE_TERRAIN_PULSE),
    LEVEL_UP_END
};

static const struct LevelUpMove sArbolivaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 7, MOVE_GROWTH),
    LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(13, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(16, MOVE_FLAIL),
    LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE(29, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(34, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(39, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(46, MOVE_TERRAIN_PULSE),
    LEVEL_UP_MOVE(52, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE(58, MOVE_PETAL_DANCE),
    LEVEL_UP_END
};
#endif //P_FAMILY_SMOLIV

#if P_FAMILY_SQUAWKABILLY
static const struct LevelUpMove sSquawkabillyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_MIMIC),
    LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_TORMENT),
    LEVEL_UP_MOVE(13, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_TAUNT),
    LEVEL_UP_MOVE(24, MOVE_UPROAR),
    LEVEL_UP_MOVE(27, MOVE_COPYCAT),
    LEVEL_UP_MOVE(30, MOVE_FLY),
    LEVEL_UP_MOVE(34, MOVE_FACADE),
    LEVEL_UP_MOVE(38, MOVE_SWAGGER),
    LEVEL_UP_MOVE(42, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(47, MOVE_ROOST),
    LEVEL_UP_MOVE(52, MOVE_REVERSAL),
    LEVEL_UP_END
};
#endif //P_FAMILY_SQUAWKABILLY

#if P_FAMILY_NACLI
static const struct LevelUpMove sNacliLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(16, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(25, MOVE_RECOVER),
    LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(33, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(35, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(45, MOVE_STONE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sNaclstackLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SALT_CURE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(16, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(30, MOVE_RECOVER),
    LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(38, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(41, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(51, MOVE_STONE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sGarganaclLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_BLOCK),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(10, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(16, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_SALT_CURE),
    LEVEL_UP_MOVE(30, MOVE_RECOVER),
    LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(40, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(44, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(54, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(60, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_NACLI

#if P_FAMILY_CHARCADET
static const struct LevelUpMove sCharcadetLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(28, MOVE_INCINERATE),
    LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME),
    LEVEL_UP_END
};

static const struct LevelUpMove sArmarougeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_MYSTICAL_FIRE),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(28, MOVE_INCINERATE),
    LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(37, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(42, MOVE_ALLY_SWITCH),
    LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(56, MOVE_EXPANDING_FORCE),
    LEVEL_UP_MOVE(62, MOVE_ARMOR_CANNON),
    LEVEL_UP_END
};

static const struct LevelUpMove sCeruledgeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(28, MOVE_INCINERATE),
    LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(42, MOVE_ALLY_SWITCH),
    LEVEL_UP_MOVE(48, MOVE_BITTER_BLADE),
    LEVEL_UP_MOVE(56, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(62, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};
#endif //P_FAMILY_CHARCADET

#if P_FAMILY_TADBULB
static const struct LevelUpMove sTadbulbLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(11, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(17, MOVE_CHARGE),
    LEVEL_UP_MOVE(21, MOVE_SPARK),
    LEVEL_UP_MOVE(24, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(25, MOVE_FLAIL),
    LEVEL_UP_MOVE(32, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(36, MOVE_WEATHER_BALL),
    LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON),
    LEVEL_UP_END
};

static const struct LevelUpMove sBelliboltLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(11, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(17, MOVE_CHARGE),
    LEVEL_UP_MOVE(21, MOVE_SPARK),
    LEVEL_UP_MOVE(24, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(25, MOVE_FLAIL),
    LEVEL_UP_MOVE(32, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(36, MOVE_WEATHER_BALL),
    LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON),
    LEVEL_UP_END
};
#endif //P_FAMILY_TADBULB

#if P_FAMILY_WATTREL
static const struct LevelUpMove sWattrelLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(11, MOVE_PLUCK),
    LEVEL_UP_MOVE(15, MOVE_SPARK),
    LEVEL_UP_MOVE(19, MOVE_UPROAR),
    LEVEL_UP_MOVE(23, MOVE_ROOST),
    LEVEL_UP_MOVE(27, MOVE_DUAL_WINGBEAT),
    LEVEL_UP_MOVE(32, MOVE_AGILITY),
    LEVEL_UP_MOVE(37, MOVE_VOLT_SWITCH),
    LEVEL_UP_MOVE(43, MOVE_DISCHARGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sKilowattrelLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(11, MOVE_PLUCK),
    LEVEL_UP_MOVE(15, MOVE_SPARK),
    LEVEL_UP_MOVE(19, MOVE_UPROAR),
    LEVEL_UP_MOVE(24, MOVE_ROOST),
    LEVEL_UP_MOVE(30, MOVE_DUAL_WINGBEAT),
    LEVEL_UP_MOVE(36, MOVE_AGILITY),
    LEVEL_UP_MOVE(43, MOVE_VOLT_SWITCH),
    LEVEL_UP_MOVE(48, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(55, MOVE_HURRICANE),
    LEVEL_UP_END
};
#endif //P_FAMILY_WATTREL

#if P_FAMILY_MASCHIFF
static const struct LevelUpMove sMaschiffLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 4, MOVE_LICK),
    LEVEL_UP_MOVE( 7, MOVE_SNARL),
    LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(14, MOVE_BITE),
    LEVEL_UP_MOVE(18, MOVE_ROAR),
    LEVEL_UP_MOVE(22, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(26, MOVE_PAYBACK),
    LEVEL_UP_MOVE(31, MOVE_CRUNCH),
    LEVEL_UP_MOVE(35, MOVE_SWAGGER),
    LEVEL_UP_MOVE(39, MOVE_REVERSAL),
    LEVEL_UP_MOVE(43, MOVE_JAW_LOCK),
    LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sMabosstiffLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_COMEUPPANCE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_LICK),
    LEVEL_UP_MOVE( 7, MOVE_SNARL),
    LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(14, MOVE_BITE),
    LEVEL_UP_MOVE(18, MOVE_ROAR),
    LEVEL_UP_MOVE(22, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(26, MOVE_PAYBACK),
    LEVEL_UP_MOVE(34, MOVE_CRUNCH),
    LEVEL_UP_MOVE(39, MOVE_SWAGGER),
    LEVEL_UP_MOVE(43, MOVE_REVERSAL),
    LEVEL_UP_MOVE(48, MOVE_JAW_LOCK),
    LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(60, MOVE_OUTRAGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_MASCHIFF

#if P_FAMILY_SHROODLE
static const struct LevelUpMove sShroodleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE( 8, MOVE_BITE),
    LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(11, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE(14, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(18, MOVE_FLATTER),
    LEVEL_UP_MOVE(21, MOVE_SLASH),
    LEVEL_UP_MOVE(25, MOVE_U_TURN),
    LEVEL_UP_MOVE(29, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(33, MOVE_TAUNT),
    LEVEL_UP_MOVE(36, MOVE_SUBSTITUTE),
    LEVEL_UP_MOVE(40, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(45, MOVE_GUNK_SHOT),
    LEVEL_UP_END
};

static const struct LevelUpMove sGrafaiaiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DOODLE),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(11, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE(14, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(18, MOVE_FLATTER),
    LEVEL_UP_MOVE(21, MOVE_SLASH),
    LEVEL_UP_MOVE(25, MOVE_U_TURN),
    LEVEL_UP_MOVE(33, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(37, MOVE_TAUNT),
    LEVEL_UP_MOVE(40, MOVE_SUBSTITUTE),
    LEVEL_UP_MOVE(45, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(51, MOVE_GUNK_SHOT),
    LEVEL_UP_END
};
#endif //P_FAMILY_SHROODLE

#if P_FAMILY_BRAMBLIN
static const struct LevelUpMove sBramblinLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(13, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(17, MOVE_INFESTATION),
    LEVEL_UP_MOVE(21, MOVE_HEX),
    LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(29, MOVE_DISABLE),
    LEVEL_UP_MOVE(35, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(45, MOVE_CURSE),
    LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(55, MOVE_POWER_WHIP),
    LEVEL_UP_END
};

static const struct LevelUpMove sBrambleghastLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(13, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(17, MOVE_INFESTATION),
    LEVEL_UP_MOVE(21, MOVE_HEX),
    LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(29, MOVE_DISABLE),
    LEVEL_UP_MOVE(35, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(45, MOVE_CURSE),
    LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(55, MOVE_POWER_WHIP),
    LEVEL_UP_END
};
#endif //P_FAMILY_BRAMBLIN

#if P_FAMILY_TOEDSCOOL
static const struct LevelUpMove sToedscoolLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 4, MOVE_ABSORB),
    LEVEL_UP_MOVE( 8, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE( 8, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(12, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(15, MOVE_TACKLE),
    LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(20, MOVE_SCREECH),
    LEVEL_UP_MOVE(24, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(28, MOVE_HEX),
    LEVEL_UP_MOVE(32, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(36, MOVE_SPORE),
    LEVEL_UP_MOVE(40, MOVE_GROWTH),
    LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(48, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(52, MOVE_POWER_WHIP),
    LEVEL_UP_END
};

static const struct LevelUpMove sToedscruelLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_REFLECT_TYPE),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 4, MOVE_ABSORB),
    LEVEL_UP_MOVE( 8, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 8, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(12, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(15, MOVE_TACKLE),
    LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(20, MOVE_SCREECH),
    LEVEL_UP_MOVE(24, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(28, MOVE_HEX),
    LEVEL_UP_MOVE(34, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(40, MOVE_SPORE),
    LEVEL_UP_MOVE(44, MOVE_GROWTH),
    LEVEL_UP_MOVE(48, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(54, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(58, MOVE_POWER_WHIP),
    LEVEL_UP_END
};
#endif //P_FAMILY_TOEDSCOOL

#if P_FAMILY_KLAWF
static const struct LevelUpMove sKlawfLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 6, MOVE_HARDEN),
    LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(17, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(21, MOVE_PROTECT),
    LEVEL_UP_MOVE(24, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(29, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(33, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(37, MOVE_FLAIL),
    LEVEL_UP_MOVE(42, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(47, MOVE_HIGH_HORSEPOWER),
    LEVEL_UP_MOVE(51, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(56, MOVE_GUILLOTINE),
    LEVEL_UP_END
};
#endif //P_FAMILY_KLAWF

#if P_FAMILY_CAPSAKID
static const struct LevelUpMove sCapsakidLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 4, MOVE_BITE),
    LEVEL_UP_MOVE(10, MOVE_GROWTH),
    LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(17, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(21, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(24, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(28, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(38, MOVE_CRUNCH),
    LEVEL_UP_MOVE(44, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sScovillainLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SPICY_EXTRACT),
    LEVEL_UP_MOVE( 0, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 4, MOVE_BITE),
    LEVEL_UP_MOVE(10, MOVE_GROWTH),
    LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(17, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(21, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(24, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(28, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(33, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(38, MOVE_CRUNCH),
    LEVEL_UP_MOVE(44, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(48, MOVE_OVERHEAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_CAPSAKID

#if P_FAMILY_RELLOR
static const struct LevelUpMove sRellorLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(11, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(15, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(20, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(29, MOVE_DIG),
    LEVEL_UP_MOVE(35, MOVE_LUNGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sRabscaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_REVIVAL_BLESSING),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(11, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(15, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(20, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(29, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(35, MOVE_LUNGE),
    LEVEL_UP_MOVE(40, MOVE_SPEED_SWAP),
    LEVEL_UP_MOVE(40, MOVE_POWER_SWAP),
    LEVEL_UP_MOVE(40, MOVE_GUARD_SWAP),
    LEVEL_UP_MOVE(45, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(50, MOVE_PSYCHIC),
    LEVEL_UP_END
};
#endif //P_FAMILY_RELLOR

#if P_FAMILY_FLITTLE
static const struct LevelUpMove sFlittleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 5, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 8, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(19, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(24, MOVE_PLUCK),
    LEVEL_UP_MOVE(29, MOVE_AGILITY),
    LEVEL_UP_MOVE(34, MOVE_UPROAR),
    LEVEL_UP_END
};

static const struct LevelUpMove sEspathraLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_LUMINA_CRASH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE( 1, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE( 5, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 8, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(19, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(24, MOVE_PLUCK),
    LEVEL_UP_MOVE(29, MOVE_AGILITY),
    LEVEL_UP_MOVE(34, MOVE_UPROAR),
    LEVEL_UP_MOVE(43, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE(49, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(54, MOVE_LAST_RESORT),
    LEVEL_UP_END
};
#endif //P_FAMILY_FLITTLE

#if P_FAMILY_TINKATINK
static const struct LevelUpMove sTinkatinkLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(11, MOVE_COVET),
    LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(21, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE(27, MOVE_SLAM),
    LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(39, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(43, MOVE_FLATTER),
    LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK),
    LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF),
    LEVEL_UP_END
};

static const struct LevelUpMove sTinkatuffLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(11, MOVE_COVET),
    LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(21, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE(27, MOVE_SLAM),
    LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(39, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(43, MOVE_FLATTER),
    LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK),
    LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF),
    LEVEL_UP_END
};

static const struct LevelUpMove sTinkatonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_GIGATON_HAMMER),
    LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(11, MOVE_COVET),
    LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(21, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE(27, MOVE_SLAM),
    LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(39, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(43, MOVE_FLATTER),
    LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK),
    LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF),
    LEVEL_UP_END
};
#endif //P_FAMILY_TINKATINK

#if P_FAMILY_WIGLETT
static const struct LevelUpMove sWiglettLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 8, MOVE_WRAP),
    LEVEL_UP_MOVE(12, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(20, MOVE_SLAM),
    LEVEL_UP_MOVE(20, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(24, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(28, MOVE_DIG),
    LEVEL_UP_MOVE(32, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP),
    LEVEL_UP_MOVE(40, MOVE_LIQUIDATION),
    LEVEL_UP_END
};

static const struct LevelUpMove sWugtrioLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(12, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(16, MOVE_SLAM),
    LEVEL_UP_MOVE(20, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(24, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(30, MOVE_TRIPLE_DIVE),
    LEVEL_UP_MOVE(36, MOVE_DIG),
    LEVEL_UP_MOVE(42, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(48, MOVE_THROAT_CHOP),
    LEVEL_UP_MOVE(54, MOVE_LIQUIDATION),
    LEVEL_UP_END
};
#endif //P_FAMILY_WIGLETT

#if P_FAMILY_BOMBIRDIER
static const struct LevelUpMove sBombirdierLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_MEMENTO),
    LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE( 7, MOVE_THIEF),
    LEVEL_UP_MOVE(11, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(16, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(20, MOVE_PLUCK),
    LEVEL_UP_MOVE(24, MOVE_TORMENT),
    LEVEL_UP_MOVE(29, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(36, MOVE_PAYBACK),
    LEVEL_UP_MOVE(42, MOVE_DUAL_WINGBEAT),
    LEVEL_UP_MOVE(47, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(53, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(60, MOVE_PARTING_SHOT),
    LEVEL_UP_END
};
#endif //P_FAMILY_BOMBIRDIER

#if P_FAMILY_FINIZEN
static const struct LevelUpMove sFinizenLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 7, MOVE_ASTONISH),
    LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(13, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(21, MOVE_DIVE),
    LEVEL_UP_MOVE(25, MOVE_CHARM),
    LEVEL_UP_MOVE(29, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(34, MOVE_ENCORE),
    LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(44, MOVE_MIST),
    LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sPalafinLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_FLIP_TURN),
    LEVEL_UP_MOVE( 1, MOVE_JET_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 7, MOVE_ASTONISH),
    LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(13, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(21, MOVE_DIVE),
    LEVEL_UP_MOVE(25, MOVE_CHARM),
    LEVEL_UP_MOVE(29, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(34, MOVE_ENCORE),
    LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(44, MOVE_MIST),
    LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(55, MOVE_FOCUS_PUNCH),
    LEVEL_UP_MOVE(61, MOVE_WAVE_CRASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_FINIZEN

#if P_FAMILY_VAROOM
static const struct LevelUpMove sVaroomLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 4, MOVE_SMOG),
    LEVEL_UP_MOVE( 7, MOVE_TAUNT),
    LEVEL_UP_MOVE(10, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(13, MOVE_SLUDGE),
    LEVEL_UP_MOVE(17, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(21, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(25, MOVE_SCREECH),
    LEVEL_UP_MOVE(28, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(32, MOVE_SWAGGER),
    LEVEL_UP_MOVE(36, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(41, MOVE_UPROAR),
    LEVEL_UP_MOVE(46, MOVE_SPIN_OUT),
    LEVEL_UP_MOVE(50, MOVE_GUNK_SHOT),
    LEVEL_UP_END
};

static const struct LevelUpMove sRevavroomLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SHIFT_GEAR),
    LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 4, MOVE_SMOG),
    LEVEL_UP_MOVE( 7, MOVE_TAUNT),
    LEVEL_UP_MOVE(10, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(13, MOVE_SLUDGE),
    LEVEL_UP_MOVE(17, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(21, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(25, MOVE_SCREECH),
    LEVEL_UP_MOVE(28, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(32, MOVE_SWAGGER),
    LEVEL_UP_MOVE(36, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(46, MOVE_UPROAR),
    LEVEL_UP_MOVE(52, MOVE_SPIN_OUT),
    LEVEL_UP_MOVE(58, MOVE_GUNK_SHOT),
    LEVEL_UP_END
};
#endif //P_FAMILY_VAROOM

#if P_FAMILY_CYCLIZAR
static const struct LevelUpMove sCyclizarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(11, MOVE_TAUNT),
    LEVEL_UP_MOVE(14, MOVE_BREAKING_SWIPE),
    LEVEL_UP_MOVE(18, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(23, MOVE_BITE),
    LEVEL_UP_MOVE(27, MOVE_U_TURN),
    LEVEL_UP_MOVE(31, MOVE_SHED_TAIL),
    LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(40, MOVE_SHIFT_GEAR),
    LEVEL_UP_MOVE(45, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(51, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(57, MOVE_DRAGON_RUSH),
    LEVEL_UP_END
};
#endif //P_FAMILY_CYCLIZAR

#if P_FAMILY_ORTHWORM
static const struct LevelUpMove sOrthwormLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(12, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(16, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(21, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(30, MOVE_DIG),
    LEVEL_UP_MOVE(34, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(43, MOVE_IRON_TAIL),
    LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(52, MOVE_SHED_TAIL),
    LEVEL_UP_END
};
#endif //P_FAMILY_ORTHWORM

#if P_FAMILY_GLIMMET
static const struct LevelUpMove sGlimmetLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE( 7, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(11, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(18, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(22, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(26, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(37, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(41, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(46, MOVE_SLUDGE_WAVE),
    LEVEL_UP_END
};

static const struct LevelUpMove sGlimmoraLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_MORTAL_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE( 1, MOVE_SPIKY_SHIELD),
    LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(11, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(18, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(22, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(26, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(39, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(44, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(50, MOVE_SLUDGE_WAVE),
    LEVEL_UP_END
};
#endif //P_FAMILY_GLIMMET

#if P_FAMILY_GREAVARD
static const struct LevelUpMove sGreavardLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 3, MOVE_LICK),
    LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 6, MOVE_BITE),
    LEVEL_UP_MOVE( 9, MOVE_ROAR),
    LEVEL_UP_MOVE(12, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(16, MOVE_DIG),
    LEVEL_UP_MOVE(24, MOVE_REST),
    LEVEL_UP_MOVE(28, MOVE_CRUNCH),
    LEVEL_UP_MOVE(32, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(37, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(41, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(46, MOVE_CHARM),
    LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sHoundstoneLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_LAST_RESPECTS),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 3, MOVE_LICK),
    LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 6, MOVE_BITE),
    LEVEL_UP_MOVE( 9, MOVE_ROAR),
    LEVEL_UP_MOVE(12, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(16, MOVE_DIG),
    LEVEL_UP_MOVE(24, MOVE_REST),
    LEVEL_UP_MOVE(28, MOVE_CRUNCH),
    LEVEL_UP_MOVE(36, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(41, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(46, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(51, MOVE_CHARM),
    LEVEL_UP_MOVE(58, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_GREAVARD

#if P_FAMILY_FLAMIGO
static const struct LevelUpMove sFlamigoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 5, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE( 9, MOVE_DETECT),
    LEVEL_UP_MOVE(12, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(18, MOVE_LOW_KICK),
    LEVEL_UP_MOVE(21, MOVE_FEINT),
    LEVEL_UP_MOVE(27, MOVE_PAYBACK),
    LEVEL_UP_MOVE(31, MOVE_ROOST),
    LEVEL_UP_MOVE(35, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(39, MOVE_MEGA_KICK),
    LEVEL_UP_MOVE(44, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(48, MOVE_THROAT_CHOP),
    LEVEL_UP_MOVE(54, MOVE_BRAVE_BIRD),
    LEVEL_UP_END
};
#endif //P_FAMILY_FLAMIGO

#if P_FAMILY_CETODDLE
static const struct LevelUpMove sCetoddleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 6, MOVE_GROWL),
    LEVEL_UP_MOVE( 9, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(12, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(15, MOVE_REST),
    LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(25, MOVE_FLAIL),
    LEVEL_UP_MOVE(27, MOVE_AVALANCHE),
    LEVEL_UP_MOVE(31, MOVE_BOUNCE),
    LEVEL_UP_MOVE(36, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(40, MOVE_AMNESIA),
    LEVEL_UP_MOVE(44, MOVE_ICE_SPINNER),
    LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(53, MOVE_BLIZZARD),
    LEVEL_UP_END
};

static const struct LevelUpMove sCetitanLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 6, MOVE_GROWL),
    LEVEL_UP_MOVE( 9, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(12, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(15, MOVE_REST),
    LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(25, MOVE_FLAIL),
    LEVEL_UP_MOVE(27, MOVE_AVALANCHE),
    LEVEL_UP_MOVE(31, MOVE_BOUNCE),
    LEVEL_UP_MOVE(36, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(40, MOVE_AMNESIA),
    LEVEL_UP_MOVE(44, MOVE_ICE_SPINNER),
    LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(53, MOVE_BLIZZARD),
    LEVEL_UP_END
};
#endif //P_FAMILY_CETODDLE

#if P_FAMILY_VELUZA
static const struct LevelUpMove sVeluzaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_AQUA_JET),
    LEVEL_UP_MOVE( 7, MOVE_PLUCK),
    LEVEL_UP_MOVE(11, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(20, MOVE_SLASH),
    LEVEL_UP_MOVE(25, MOVE_AQUA_CUTTER),
    LEVEL_UP_MOVE(30, MOVE_FILLET_AWAY),
    LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(40, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(45, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(50, MOVE_CRUNCH),
    LEVEL_UP_MOVE(55, MOVE_FINAL_GAMBIT),
    LEVEL_UP_END
};
#endif //P_FAMILY_VELUZA

#if P_FAMILY_DONDOZO
static const struct LevelUpMove sDondozoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 5, MOVE_TICKLE),
    LEVEL_UP_MOVE(10, MOVE_FLAIL),
    LEVEL_UP_MOVE(15, MOVE_REST),
    LEVEL_UP_MOVE(15, MOVE_SLEEP_TALK),
    LEVEL_UP_MOVE(20, MOVE_DIVE),
    LEVEL_UP_MOVE(25, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE(30, MOVE_SOAK),
    LEVEL_UP_MOVE(35, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(40, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(45, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(50, MOVE_ORDER_UP),
    LEVEL_UP_MOVE(55, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(60, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(65, MOVE_WAVE_CRASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_DONDOZO

#if P_FAMILY_TATSUGIRI
static const struct LevelUpMove sTatsugiriLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 6, MOVE_HARDEN),
    LEVEL_UP_MOVE(12, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(17, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(23, MOVE_SOAK),
    LEVEL_UP_MOVE(28, MOVE_TAUNT),
    LEVEL_UP_MOVE(34, MOVE_MEMENTO),
    LEVEL_UP_MOVE(39, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(47, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE(52, MOVE_DRAGON_PULSE),
    LEVEL_UP_END
};
#endif //P_FAMILY_TATSUGIRI

#if P_FAMILY_GREAT_TUSK
static const struct LevelUpMove sGreatTuskLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE( 7, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(14, MOVE_TAUNT),
    LEVEL_UP_MOVE(21, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(28, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(35, MOVE_STOMPING_TANTRUM),
    LEVEL_UP_MOVE(42, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(56, MOVE_GIGA_IMPACT),
    LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(70, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(77, MOVE_MEGAHORN),
    LEVEL_UP_MOVE(84, MOVE_HEAD_SMASH),
    LEVEL_UP_MOVE(91, MOVE_HEADLONG_RUSH),
    LEVEL_UP_END
};
#endif //P_FAMILY_GREAT_TUSK

#if P_FAMILY_SCREAM_TAIL
static const struct LevelUpMove sScreamTailLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_SING),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 7, MOVE_HOWL),
    LEVEL_UP_MOVE(14, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE(21, MOVE_BITE),
    LEVEL_UP_MOVE(28, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(35, MOVE_REST),
    LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(49, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(56, MOVE_PSYCHIC_FANGS),
    LEVEL_UP_MOVE(63, MOVE_CRUNCH),
    LEVEL_UP_MOVE(70, MOVE_WISH),
    LEVEL_UP_MOVE(77, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(84, MOVE_PERISH_SONG),
    LEVEL_UP_MOVE(91, MOVE_BOOMBURST),
    LEVEL_UP_END
};
#endif //P_FAMILY_SCREAM_TAIL

#if P_FAMILY_BRUTE_BONNET
static const struct LevelUpMove sBruteBonnetLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(14, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(21, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(28, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(35, MOVE_PAYBACK),
    LEVEL_UP_MOVE(42, MOVE_THRASH),
    LEVEL_UP_MOVE(49, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(56, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(63, MOVE_SPORE),
    LEVEL_UP_MOVE(70, MOVE_INGRAIN),
    LEVEL_UP_MOVE(77, MOVE_RAGE_POWDER),
    LEVEL_UP_MOVE(91, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_BRUTE_BONNET

#if P_FAMILY_FLUTTER_MANE
static const struct LevelUpMove sFlutterManeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 1, MOVE_SPITE),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 7, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(14, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(21, MOVE_MEMENTO),
    LEVEL_UP_MOVE(28, MOVE_WISH),
    LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE(42, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(49, MOVE_MYSTICAL_FIRE),
    LEVEL_UP_MOVE(56, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(63, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(70, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(77, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(84, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(91, MOVE_PERISH_SONG),
    LEVEL_UP_END
};
#endif //P_FAMILY_FLUTTER_MANE

#if P_FAMILY_SLITHER_WING
static const struct LevelUpMove sSlitherWingLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE( 7, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(21, MOVE_STOMP),
    LEVEL_UP_MOVE(28, MOVE_LOW_SWEEP),
    LEVEL_UP_MOVE(35, MOVE_MORNING_SUN),
    LEVEL_UP_MOVE(42, MOVE_LUNGE),
    LEVEL_UP_MOVE(49, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(56, MOVE_BULK_UP),
    LEVEL_UP_MOVE(63, MOVE_DUAL_WINGBEAT),
    LEVEL_UP_MOVE(70, MOVE_FIRST_IMPRESSION),
    LEVEL_UP_MOVE(77, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(84, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE(91, MOVE_THRASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_SLITHER_WING

#if P_FAMILY_SANDY_SHOCKS
static const struct LevelUpMove sSandyShocksLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 7, MOVE_SPARK),
    LEVEL_UP_MOVE(14, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(21, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE(28, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE(35, MOVE_SCREECH),
    LEVEL_UP_MOVE(42, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(49, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(56, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(63, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(70, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE(77, MOVE_GRAVITY),
    LEVEL_UP_MOVE(84, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(91, MOVE_MAGNETIC_FLUX),
    LEVEL_UP_END
};
#endif //P_FAMILY_SANDY_SHOCKS

#if P_FAMILY_IRON_TREADS
static const struct LevelUpMove sIronTreadsLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE( 7, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(21, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(28, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(35, MOVE_STOMPING_TANTRUM),
    LEVEL_UP_MOVE(42, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(56, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(63, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(70, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(77, MOVE_MEGAHORN),
    LEVEL_UP_MOVE(84, MOVE_GIGA_IMPACT),
    LEVEL_UP_MOVE(91, MOVE_STEEL_ROLLER),
    LEVEL_UP_END
};
#endif //P_FAMILY_IRON_TREADS

#if P_FAMILY_IRON_BUNDLE
static const struct LevelUpMove sIronBundleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PRESENT),
    LEVEL_UP_MOVE( 7, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE(14, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(28, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(35, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY),
    LEVEL_UP_MOVE(49, MOVE_FLIP_TURN),
    LEVEL_UP_MOVE(56, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(63, MOVE_AGILITY),
    LEVEL_UP_MOVE(70, MOVE_SNOWSCAPE),
    LEVEL_UP_MOVE(77, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(84, MOVE_AURORA_VEIL),
    LEVEL_UP_MOVE(91, MOVE_BLIZZARD),
    LEVEL_UP_END
};
#endif //P_FAMILY_IRON_BUNDLE

#if P_FAMILY_IRON_HANDS
static const struct LevelUpMove sIronHandsLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST),
    LEVEL_UP_MOVE( 7, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(14, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(21, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE(28, MOVE_SLAM),
    LEVEL_UP_MOVE(35, MOVE_FORCE_PALM),
    LEVEL_UP_MOVE(42, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE(49, MOVE_CHARGE),
    LEVEL_UP_MOVE(56, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(70, MOVE_DETECT),
    LEVEL_UP_MOVE(77, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(84, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(91, MOVE_FOCUS_PUNCH),
    LEVEL_UP_END
};
#endif //P_FAMILY_IRON_HANDS

#if P_FAMILY_IRON_JUGULIS
static const struct LevelUpMove sIronJugulisLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_WORK_UP),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE( 7, MOVE_ROAR),
    LEVEL_UP_MOVE(14, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(21, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(28, MOVE_SNARL),
    LEVEL_UP_MOVE(35, MOVE_CRUNCH),
    LEVEL_UP_MOVE(42, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(56, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(63, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(70, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(77, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(84, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(91, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_IRON_JUGULIS

#if P_FAMILY_IRON_MOTH
static const struct LevelUpMove sIronMothLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(14, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(28, MOVE_LUNGE),
    LEVEL_UP_MOVE(35, MOVE_SCREECH),
    LEVEL_UP_MOVE(42, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(49, MOVE_SLUDGE_WAVE),
    LEVEL_UP_MOVE(56, MOVE_FIERY_DANCE),
    LEVEL_UP_MOVE(63, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(70, MOVE_MORNING_SUN),
    LEVEL_UP_MOVE(77, MOVE_HURRICANE),
    LEVEL_UP_MOVE(84, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(91, MOVE_OVERHEAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_IRON_MOTH

#if P_FAMILY_IRON_THORNS
static const struct LevelUpMove sIronThornsLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 7, MOVE_SCREECH),
    LEVEL_UP_MOVE(21, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(28, MOVE_BITE),
    LEVEL_UP_MOVE(35, MOVE_CHARGE),
    LEVEL_UP_MOVE(42, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(49, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(56, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(63, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(70, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(77, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(84, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(91, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_IRON_THORNS

#if P_FAMILY_FRIGIBAX
static const struct LevelUpMove sFrigibaxLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE( 6, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(24, MOVE_BITE),
    LEVEL_UP_MOVE(29, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(32, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(40, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(44, MOVE_CRUNCH),
    LEVEL_UP_MOVE(48, MOVE_ICICLE_CRASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sArctibaxLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE( 6, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(24, MOVE_BITE),
    LEVEL_UP_MOVE(29, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(45, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(50, MOVE_CRUNCH),
    LEVEL_UP_MOVE(55, MOVE_ICICLE_CRASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sBaxcaliburLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_GLAIVE_RUSH),
    LEVEL_UP_MOVE( 1, MOVE_SNOWSCAPE),
    LEVEL_UP_MOVE( 1, MOVE_BREAKING_SWIPE),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 6, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(24, MOVE_BITE),
    LEVEL_UP_MOVE(29, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(35, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(48, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(55, MOVE_CRUNCH),
    LEVEL_UP_MOVE(62, MOVE_ICICLE_CRASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_FRIGIBAX

#if P_FAMILY_GIMMIGHOUL
static const struct LevelUpMove sGimmighoulLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sGholdengoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(21, MOVE_SUBSTITUTE),
    LEVEL_UP_MOVE(28, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(35, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(42, MOVE_RECOVER),
    LEVEL_UP_MOVE(49, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(56, MOVE_MAKE_IT_RAIN),
    LEVEL_UP_MOVE(63, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(70, MOVE_MEMENTO),
    LEVEL_UP_END
};
#endif //P_FAMILY_GIMMIGHOUL

#if P_FAMILY_WO_CHIEN
static const struct LevelUpMove sWoChienLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_SPITE),
    LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE( 5, MOVE_TICKLE),
    LEVEL_UP_MOVE(10, MOVE_PAYBACK),
    LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(15, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(25, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(30, MOVE_GROWTH),
    LEVEL_UP_MOVE(35, MOVE_INGRAIN),
    LEVEL_UP_MOVE(40, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(45, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(50, MOVE_RUINATION),
    LEVEL_UP_MOVE(55, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(60, MOVE_POWER_WHIP),
    LEVEL_UP_MOVE(65, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE(70, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(75, MOVE_LEAF_STORM),
    LEVEL_UP_END
};
#endif //P_FAMILY_WO_CHIEN

#if P_FAMILY_CHIEN_PAO
static const struct LevelUpMove sChienPaoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPITE),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE( 5, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(10, MOVE_PAYBACK),
    LEVEL_UP_MOVE(15, MOVE_MIST),
    LEVEL_UP_MOVE(15, MOVE_HAZE),
    LEVEL_UP_MOVE(20, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(30, MOVE_SNOWSCAPE),
    LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(40, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(45, MOVE_ICICLE_CRASH),
    LEVEL_UP_MOVE(50, MOVE_RUINATION),
    LEVEL_UP_MOVE(55, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(60, MOVE_SACRED_SWORD),
    LEVEL_UP_MOVE(65, MOVE_RECOVER),
    LEVEL_UP_MOVE(70, MOVE_THROAT_CHOP),
    LEVEL_UP_MOVE(75, MOVE_SHEER_COLD),
    LEVEL_UP_END
};
#endif //P_FAMILY_CHIEN_PAO

#if P_FAMILY_TING_LU
static const struct LevelUpMove sTingLuLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE( 1, MOVE_SPITE),
    LEVEL_UP_MOVE( 5, MOVE_SPIKES),
    LEVEL_UP_MOVE(10, MOVE_PAYBACK),
    LEVEL_UP_MOVE(15, MOVE_STOMP),
    LEVEL_UP_MOVE(20, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(25, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(30, MOVE_TAUNT),
    LEVEL_UP_MOVE(35, MOVE_THRASH),
    LEVEL_UP_MOVE(40, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(45, MOVE_STOMPING_TANTRUM),
    LEVEL_UP_MOVE(50, MOVE_RUINATION),
    LEVEL_UP_MOVE(55, MOVE_THROAT_CHOP),
    LEVEL_UP_MOVE(60, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(65, MOVE_MEMENTO),
    LEVEL_UP_MOVE(70, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(75, MOVE_FISSURE),
    LEVEL_UP_END
};
#endif //P_FAMILY_TING_LU

#if P_FAMILY_CHI_YU
static const struct LevelUpMove sChiYuLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_SPITE),
    LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE( 5, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(10, MOVE_PAYBACK),
    LEVEL_UP_MOVE(15, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(20, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(25, MOVE_INCINERATE),
    LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(35, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(40, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(45, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(50, MOVE_RUINATION),
    LEVEL_UP_MOVE(55, MOVE_BOUNCE),
    LEVEL_UP_MOVE(60, MOVE_SWAGGER),
    LEVEL_UP_MOVE(65, MOVE_INFERNO),
    LEVEL_UP_MOVE(70, MOVE_MEMENTO),
    LEVEL_UP_MOVE(75, MOVE_OVERHEAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_CHI_YU

#if P_FAMILY_ROARING_MOON
static const struct LevelUpMove sRoaringMoonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 7, MOVE_INCINERATE),
    LEVEL_UP_MOVE(14, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(21, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(56, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(63, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(70, MOVE_FLY),
    LEVEL_UP_MOVE(77, MOVE_THROAT_CHOP),
    LEVEL_UP_MOVE(84, MOVE_ROOST),
    LEVEL_UP_MOVE(91, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_ROARING_MOON

#if P_FAMILY_IRON_VALIANT
static const struct LevelUpMove sIronValiantLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(14, MOVE_FEINT),
    LEVEL_UP_MOVE(21, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(28, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(42, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(49, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(56, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(70, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(77, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE(84, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(84, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(91, MOVE_SPIRIT_BREAK),
    LEVEL_UP_END
};
#endif //P_FAMILY_IRON_VALIANT

#if P_FAMILY_KORAIDON
static const struct LevelUpMove sKoraidonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE( 1, MOVE_BREAKING_SWIPE),
    LEVEL_UP_MOVE( 7, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(14, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(21, MOVE_DRAIN_PUNCH),
    LEVEL_UP_MOVE(28, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(35, MOVE_AGILITY),
    LEVEL_UP_MOVE(42, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(56, MOVE_COLLISION_COURSE),
    LEVEL_UP_MOVE(63, MOVE_SCREECH),
    LEVEL_UP_MOVE(70, MOVE_COUNTER),
    LEVEL_UP_MOVE(77, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(84, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(91, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE(98, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_KORAIDON

#if P_FAMILY_MIRAIDON
static const struct LevelUpMove sMiraidonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE( 7, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE(14, MOVE_CHARGE),
    LEVEL_UP_MOVE(21, MOVE_PARABOLIC_CHARGE),
    LEVEL_UP_MOVE(28, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(35, MOVE_AGILITY),
    LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(56, MOVE_ELECTRO_DRIFT),
    LEVEL_UP_MOVE(63, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(70, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE(77, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(84, MOVE_THUNDER),
    LEVEL_UP_MOVE(91, MOVE_OVERHEAT),
    LEVEL_UP_MOVE(98, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_MIRAIDON

#if P_FAMILY_WALKING_WAKE
static const struct LevelUpMove sWalkingWakeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_ROAR),
    LEVEL_UP_MOVE( 1, MOVE_TWISTER),
    LEVEL_UP_MOVE( 1, MOVE_AQUA_JET),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(14, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(21, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE(28, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(35, MOVE_BREAKING_SWIPE),
    LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(56, MOVE_HYDRO_STEAM),
    LEVEL_UP_MOVE(63, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(70, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(77, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(84, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_WALKING_WAKE

#if P_FAMILY_IRON_LEAVES
static const struct LevelUpMove sIronLeavesLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_WORK_UP),
    LEVEL_UP_MOVE( 7, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(14, MOVE_RETALIATE),
    LEVEL_UP_MOVE(21, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(28, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(35, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD),
    LEVEL_UP_MOVE(49, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(56, MOVE_PSYBLADE),
    LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(70, MOVE_IMPRISON),
    LEVEL_UP_MOVE(77, MOVE_MEGAHORN),
    LEVEL_UP_MOVE(84, MOVE_ALLY_SWITCH),
    LEVEL_UP_MOVE(91, MOVE_SOLAR_BLADE),
    LEVEL_UP_END
};
#endif //P_FAMILY_IRON_LEAVES

#if P_FAMILY_POLTCHAGEIST
static const struct LevelUpMove sPoltchageistLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 6, MOVE_ABSORB),
    LEVEL_UP_MOVE(12, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE(18, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(30, MOVE_HEX),
    LEVEL_UP_MOVE(36, MOVE_RAGE_POWDER),
    LEVEL_UP_MOVE(42, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(54, MOVE_MEMENTO),
    LEVEL_UP_MOVE(60, MOVE_LEAF_STORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sSinistchaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_MATCHA_GOTCHA),
    LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 6, MOVE_ABSORB),
    LEVEL_UP_MOVE(12, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE(18, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(30, MOVE_HEX),
    LEVEL_UP_MOVE(36, MOVE_RAGE_POWDER),
    LEVEL_UP_MOVE(42, MOVE_STRENGTH_SAP),
    LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(54, MOVE_MEMENTO),
    LEVEL_UP_MOVE(60, MOVE_LEAF_STORM),
    LEVEL_UP_END
};
#endif //P_FAMILY_POLTCHAGEIST

#if P_FAMILY_OKIDOGI
static const struct LevelUpMove sOkidogiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
    LEVEL_UP_MOVE( 1, MOVE_BULK_UP),
    LEVEL_UP_MOVE( 8, MOVE_HOWL),
    LEVEL_UP_MOVE(16, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(24, MOVE_FORCE_PALM),
    LEVEL_UP_MOVE(32, MOVE_COUNTER),
    LEVEL_UP_MOVE(40, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(48, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE(56, MOVE_CRUNCH),
    LEVEL_UP_MOVE(64, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(72, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_OKIDOGI

#if P_FAMILY_MUNKIDORI
static const struct LevelUpMove sMunkidoriLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_FLATTER),
    LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(16, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(24, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(32, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(48, MOVE_SLUDGE_WAVE),
    LEVEL_UP_MOVE(56, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(64, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(72, MOVE_PARTING_SHOT),
    LEVEL_UP_END
};
#endif //P_FAMILY_MUNKIDORI

#if P_FAMILY_FEZANDIPITI
static const struct LevelUpMove sFezandipitiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_ATTRACT),
    LEVEL_UP_MOVE(24, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(32, MOVE_CROSS_POISON),
    LEVEL_UP_MOVE(40, MOVE_TAIL_SLAP),
    LEVEL_UP_MOVE(48, MOVE_BEAT_UP),
    LEVEL_UP_MOVE(56, MOVE_FLATTER),
    LEVEL_UP_MOVE(56, MOVE_SWAGGER),
    LEVEL_UP_MOVE(64, MOVE_ROOST),
    LEVEL_UP_MOVE(72, MOVE_MOONBLAST),
    LEVEL_UP_END
};
#endif //P_FAMILY_FEZANDIPITI

#if P_FAMILY_OGERPON
static const struct LevelUpMove sOgerponLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_FOLLOW_ME),
    LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(12, MOVE_GROWTH),
    LEVEL_UP_MOVE(18, MOVE_SLAM),
    LEVEL_UP_MOVE(24, MOVE_LOW_SWEEP),
    LEVEL_UP_MOVE(30, MOVE_IVY_CUDGEL),
    LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP),
    LEVEL_UP_MOVE(42, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(48, MOVE_SPIKY_SHIELD),
    LEVEL_UP_MOVE(54, MOVE_POWER_WHIP),
    LEVEL_UP_MOVE(60, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(66, MOVE_WOOD_HAMMER),
    LEVEL_UP_END
};
#endif

#if P_FAMILY_GOUGING_FIRE
static const struct LevelUpMove sGougingFireLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_STOMP),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_INCINERATE),
    LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE( 7, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(14, MOVE_HOWL),
    LEVEL_UP_MOVE(21, MOVE_BITE),
    LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(35, MOVE_CRUSH_CLAW),
    LEVEL_UP_MOVE(42, MOVE_MORNING_SUN),
    LEVEL_UP_MOVE(49, MOVE_BURNING_BULWARK),
    LEVEL_UP_MOVE(56, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(63, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(70, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(77, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(84, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE(91, MOVE_RAGING_FURY),
    LEVEL_UP_END
};
#endif //P_FAMILY_GOUGING_FIRE

#if P_FAMILY_RAGING_BOLT
static const struct LevelUpMove sRagingBoltLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TWISTER),
    LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE( 1, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_STOMP),
    LEVEL_UP_MOVE( 7, MOVE_CHARGE),
    LEVEL_UP_MOVE(14, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(21, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE(28, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(35, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(42, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(49, MOVE_THUNDERCLAP),
    LEVEL_UP_MOVE(56, MOVE_DRAGON_HAMMER),
    LEVEL_UP_MOVE(63, MOVE_RISING_VOLTAGE),
    LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(77, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(84, MOVE_BODY_PRESS),
    LEVEL_UP_MOVE(91, MOVE_THUNDER),
    LEVEL_UP_END
};
#endif //P_FAMILY_RAGING_BOLT

#if P_FAMILY_IRON_BOULDER
static const struct LevelUpMove sIronBoulderLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(14, MOVE_SLASH),
    LEVEL_UP_MOVE(21, MOVE_AGILITY),
    LEVEL_UP_MOVE(28, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(35, MOVE_COUNTER),
    LEVEL_UP_MOVE(42, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD),
    LEVEL_UP_MOVE(56, MOVE_MIGHTY_CLEAVE),
    LEVEL_UP_MOVE(63, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(70, MOVE_MEGAHORN),
    LEVEL_UP_MOVE(77, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(84, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(91, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_IRON_BOULDER

#if P_FAMILY_IRON_CROWN
static const struct LevelUpMove sIronCrownLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 7, MOVE_SMART_STRIKE),
    LEVEL_UP_MOVE(14, MOVE_SLASH),
    LEVEL_UP_MOVE(21, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(28, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(42, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD),
    LEVEL_UP_MOVE(56, MOVE_TACHYON_CUTTER),
    LEVEL_UP_MOVE(63, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(70, MOVE_VOLT_SWITCH),
    LEVEL_UP_MOVE(77, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(84, MOVE_METAL_BURST),
    LEVEL_UP_MOVE(91, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_IRON_CROWN

#if P_FAMILY_TERAPAGOS
static const struct LevelUpMove sTerapagosLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(20, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(30, MOVE_PROTECT),
    LEVEL_UP_MOVE(40, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(50, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(60, MOVE_TERA_STARSTORM),
    LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(80, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(90, MOVE_GYRO_BALL),
    LEVEL_UP_END
};
#endif //P_FAMILY_TERAPAGOS

#if P_FAMILY_PECHARUNT
static const struct LevelUpMove sPecharuntLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SMOG),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 1, MOVE_MEMENTO),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 8, MOVE_WITHDRAW),
    LEVEL_UP_MOVE(16, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE(24, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(32, MOVE_PARTING_SHOT),
    LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(48, MOVE_MALIGNANT_CHAIN),
    LEVEL_UP_MOVE(56, MOVE_TOXIC),
    LEVEL_UP_MOVE(64, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(72, MOVE_RECOVER),
    LEVEL_UP_END
};
#endif //P_FAMILY_PECHARUNT

