diff --git a/paper-api-generator/build.gradle.kts b/paper-api-generator/build.gradle.kts
index 05d16d0b95..62ceb696a5 100644
--- a/paper-api-generator/build.gradle.kts
+++ b/paper-api-generator/build.gradle.kts
@@ -15,7 +15,7 @@ dependencies {
     implementation("com.squareup:javapoet:1.13.0")
     implementation(project(":paper-api"))
     implementation("io.github.classgraph:classgraph:4.8.47")
-    implementation("org.jetbrains:annotations:24.0.1")
+    implementation("org.jetbrains:annotations:24.1.0")
     testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
     testRuntimeOnly("org.junit.platform:junit-platform-launcher")
 }
diff --git a/paper-api-generator/generated/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/paper-api-generator/generated/com/destroystokyo/paper/entity/ai/VanillaGoal.java
index 02411466bd..e0aa5b925c 100644
--- a/paper-api-generator/generated/com/destroystokyo/paper/entity/ai/VanillaGoal.java
+++ b/paper-api-generator/generated/com/destroystokyo/paper/entity/ai/VanillaGoal.java
@@ -66,7 +66,7 @@ import org.checkerframework.checker.nullness.qual.NonNull;
         "unused",
         "SpellCheckingInspection"
 })
-@GeneratedFrom("1.21.1")
+@GeneratedFrom("1.21.3")
 public interface VanillaGoal<T extends Mob> extends Goal<T> {
     GoalKey<AbstractHorse> RANDOM_STAND = create("random_stand", AbstractHorse.class);
 
@@ -102,6 +102,10 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
 
     GoalKey<Bee> BEE_WANDER = create("bee_wander", Bee.class);
 
+    GoalKey<Bee> VALIDATE_FLOWER = create("validate_flower", Bee.class);
+
+    GoalKey<Bee> VALIDATE_HIVE = create("validate_hive", Bee.class);
+
     GoalKey<Blaze> BLAZE_ATTACK = create("blaze_attack", Blaze.class);
 
     GoalKey<Cat> CAT_AVOID_ENTITY = create("cat_avoid_entity", Cat.class);
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/BannerPatternKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/BannerPatternKeys.java
index e585ebb00a..33e501a6fa 100644
--- a/paper-api-generator/generated/io/papermc/paper/registry/keys/BannerPatternKeys.java
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/BannerPatternKeys.java
@@ -23,7 +23,7 @@ import org.jetbrains.annotations.ApiStatus;
         "unused",
         "SpellCheckingInspection"
 })
-@GeneratedFrom("1.21.1")
+@GeneratedFrom("1.21.3")
 @ApiStatus.Experimental
 public final class BannerPatternKeys {
     /**
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/BiomeKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/BiomeKeys.java
index f0c6abf8bf..83a5d59ea0 100644
--- a/paper-api-generator/generated/io/papermc/paper/registry/keys/BiomeKeys.java
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/BiomeKeys.java
@@ -6,6 +6,7 @@ import io.papermc.paper.generated.GeneratedFrom;
 import io.papermc.paper.registry.RegistryKey;
 import io.papermc.paper.registry.TypedKey;
 import net.kyori.adventure.key.Key;
+import org.bukkit.MinecraftExperimental;
 import org.bukkit.block.Biome;
 import org.checkerframework.checker.nullness.qual.NonNull;
 import org.jetbrains.annotations.ApiStatus;
@@ -23,7 +24,7 @@ import org.jetbrains.annotations.ApiStatus;
         "unused",
         "SpellCheckingInspection"
 })
-@GeneratedFrom("1.21.1")
+@GeneratedFrom("1.21.3")
 @ApiStatus.Experimental
 public final class BiomeKeys {
     /**
@@ -299,6 +300,15 @@ public final class BiomeKeys {
      */
     public static final TypedKey<Biome> OLD_GROWTH_SPRUCE_TAIGA = create(key("old_growth_spruce_taiga"));
 
+    /**
+     * {@code minecraft:pale_garden}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<Biome> PALE_GARDEN = create(key("pale_garden"));
+
     /**
      * {@code minecraft:plains}
      *
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/BlockTypeKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/BlockTypeKeys.java
index 3daa9b638c..d2b100a27a 100644
--- a/paper-api-generator/generated/io/papermc/paper/registry/keys/BlockTypeKeys.java
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/BlockTypeKeys.java
@@ -6,6 +6,7 @@ import io.papermc.paper.generated.GeneratedFrom;
 import io.papermc.paper.registry.RegistryKey;
 import io.papermc.paper.registry.TypedKey;
 import net.kyori.adventure.key.Key;
+import org.bukkit.MinecraftExperimental;
 import org.bukkit.block.BlockType;
 import org.checkerframework.checker.nullness.qual.NonNull;
 import org.jetbrains.annotations.ApiStatus;
@@ -23,7 +24,7 @@ import org.jetbrains.annotations.ApiStatus;
         "unused",
         "SpellCheckingInspection"
 })
-@GeneratedFrom("1.21.1")
+@GeneratedFrom("1.21.3")
 @ApiStatus.Experimental
 public final class BlockTypeKeys {
     /**
@@ -1622,6 +1623,15 @@ public final class BlockTypeKeys {
      */
     public static final TypedKey<BlockType> CRAFTING_TABLE = create(key("crafting_table"));
 
+    /**
+     * {@code minecraft:creaking_heart}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<BlockType> CREAKING_HEART = create(key("creaking_heart"));
+
     /**
      * {@code minecraft:creeper_head}
      *
@@ -4562,6 +4572,186 @@ public final class BlockTypeKeys {
      */
     public static final TypedKey<BlockType> PACKED_MUD = create(key("packed_mud"));
 
+    /**
+     * {@code minecraft:pale_hanging_moss}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<BlockType> PALE_HANGING_MOSS = create(key("pale_hanging_moss"));
+
+    /**
+     * {@code minecraft:pale_moss_block}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<BlockType> PALE_MOSS_BLOCK = create(key("pale_moss_block"));
+
+    /**
+     * {@code minecraft:pale_moss_carpet}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<BlockType> PALE_MOSS_CARPET = create(key("pale_moss_carpet"));
+
+    /**
+     * {@code minecraft:pale_oak_button}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<BlockType> PALE_OAK_BUTTON = create(key("pale_oak_button"));
+
+    /**
+     * {@code minecraft:pale_oak_door}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<BlockType> PALE_OAK_DOOR = create(key("pale_oak_door"));
+
+    /**
+     * {@code minecraft:pale_oak_fence}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<BlockType> PALE_OAK_FENCE = create(key("pale_oak_fence"));
+
+    /**
+     * {@code minecraft:pale_oak_fence_gate}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<BlockType> PALE_OAK_FENCE_GATE = create(key("pale_oak_fence_gate"));
+
+    /**
+     * {@code minecraft:pale_oak_hanging_sign}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<BlockType> PALE_OAK_HANGING_SIGN = create(key("pale_oak_hanging_sign"));
+
+    /**
+     * {@code minecraft:pale_oak_leaves}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<BlockType> PALE_OAK_LEAVES = create(key("pale_oak_leaves"));
+
+    /**
+     * {@code minecraft:pale_oak_log}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<BlockType> PALE_OAK_LOG = create(key("pale_oak_log"));
+
+    /**
+     * {@code minecraft:pale_oak_planks}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<BlockType> PALE_OAK_PLANKS = create(key("pale_oak_planks"));
+
+    /**
+     * {@code minecraft:pale_oak_pressure_plate}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<BlockType> PALE_OAK_PRESSURE_PLATE = create(key("pale_oak_pressure_plate"));
+
+    /**
+     * {@code minecraft:pale_oak_sapling}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<BlockType> PALE_OAK_SAPLING = create(key("pale_oak_sapling"));
+
+    /**
+     * {@code minecraft:pale_oak_sign}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<BlockType> PALE_OAK_SIGN = create(key("pale_oak_sign"));
+
+    /**
+     * {@code minecraft:pale_oak_slab}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<BlockType> PALE_OAK_SLAB = create(key("pale_oak_slab"));
+
+    /**
+     * {@code minecraft:pale_oak_stairs}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<BlockType> PALE_OAK_STAIRS = create(key("pale_oak_stairs"));
+
+    /**
+     * {@code minecraft:pale_oak_trapdoor}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<BlockType> PALE_OAK_TRAPDOOR = create(key("pale_oak_trapdoor"));
+
+    /**
+     * {@code minecraft:pale_oak_wall_hanging_sign}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<BlockType> PALE_OAK_WALL_HANGING_SIGN = create(key("pale_oak_wall_hanging_sign"));
+
+    /**
+     * {@code minecraft:pale_oak_wall_sign}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<BlockType> PALE_OAK_WALL_SIGN = create(key("pale_oak_wall_sign"));
+
+    /**
+     * {@code minecraft:pale_oak_wood}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<BlockType> PALE_OAK_WOOD = create(key("pale_oak_wood"));
+
     /**
      * {@code minecraft:pearlescent_froglight}
      *
@@ -5143,6 +5333,15 @@ public final class BlockTypeKeys {
      */
     public static final TypedKey<BlockType> POTTED_OXEYE_DAISY = create(key("potted_oxeye_daisy"));
 
+    /**
+     * {@code minecraft:potted_pale_oak_sapling}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<BlockType> POTTED_PALE_OAK_SAPLING = create(key("potted_pale_oak_sapling"));
+
     /**
      * {@code minecraft:potted_pink_tulip}
      *
@@ -6410,6 +6609,24 @@ public final class BlockTypeKeys {
      */
     public static final TypedKey<BlockType> STRIPPED_OAK_WOOD = create(key("stripped_oak_wood"));
 
+    /**
+     * {@code minecraft:stripped_pale_oak_log}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<BlockType> STRIPPED_PALE_OAK_LOG = create(key("stripped_pale_oak_log"));
+
+    /**
+     * {@code minecraft:stripped_pale_oak_wood}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<BlockType> STRIPPED_PALE_OAK_WOOD = create(key("stripped_pale_oak_wood"));
+
     /**
      * {@code minecraft:stripped_spruce_log}
      *
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/CatVariantKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/CatVariantKeys.java
index a8cbc4c9a0..98acbdf858 100644
--- a/paper-api-generator/generated/io/papermc/paper/registry/keys/CatVariantKeys.java
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/CatVariantKeys.java
@@ -23,7 +23,7 @@ import org.jetbrains.annotations.ApiStatus;
         "unused",
         "SpellCheckingInspection"
 })
-@GeneratedFrom("1.21.1")
+@GeneratedFrom("1.21.3")
 @ApiStatus.Experimental
 public final class CatVariantKeys {
     /**
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/DamageTypeKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/DamageTypeKeys.java
index 9cb651fb14..d89a584a1e 100644
--- a/paper-api-generator/generated/io/papermc/paper/registry/keys/DamageTypeKeys.java
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/DamageTypeKeys.java
@@ -23,7 +23,7 @@ import org.jetbrains.annotations.ApiStatus;
         "unused",
         "SpellCheckingInspection"
 })
-@GeneratedFrom("1.21.1")
+@GeneratedFrom("1.21.3")
 @ApiStatus.Experimental
 public final class DamageTypeKeys {
     /**
@@ -82,6 +82,13 @@ public final class DamageTypeKeys {
      */
     public static final TypedKey<DamageType> DRY_OUT = create(key("dry_out"));
 
+    /**
+     * {@code minecraft:ender_pearl}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<DamageType> ENDER_PEARL = create(key("ender_pearl"));
+
     /**
      * {@code minecraft:explosion}
      *
@@ -201,6 +208,13 @@ public final class DamageTypeKeys {
      */
     public static final TypedKey<DamageType> LIGHTNING_BOLT = create(key("lightning_bolt"));
 
+    /**
+     * {@code minecraft:mace_smash}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<DamageType> MACE_SMASH = create(key("mace_smash"));
+
     /**
      * {@code minecraft:magic}
      *
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/EnchantmentKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/EnchantmentKeys.java
index 8a7b691af6..cf19e146cd 100644
--- a/paper-api-generator/generated/io/papermc/paper/registry/keys/EnchantmentKeys.java
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/EnchantmentKeys.java
@@ -23,7 +23,7 @@ import org.jetbrains.annotations.ApiStatus;
         "unused",
         "SpellCheckingInspection"
 })
-@GeneratedFrom("1.21.1")
+@GeneratedFrom("1.21.3")
 @ApiStatus.Experimental
 public final class EnchantmentKeys {
     /**
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/FrogVariantKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/FrogVariantKeys.java
index 2b9c007e49..7cbe222657 100644
--- a/paper-api-generator/generated/io/papermc/paper/registry/keys/FrogVariantKeys.java
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/FrogVariantKeys.java
@@ -23,7 +23,7 @@ import org.jetbrains.annotations.ApiStatus;
         "unused",
         "SpellCheckingInspection"
 })
-@GeneratedFrom("1.21.1")
+@GeneratedFrom("1.21.3")
 @ApiStatus.Experimental
 public final class FrogVariantKeys {
     /**
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/GameEventKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/GameEventKeys.java
index e8a8e5f89a..d3751e33e2 100644
--- a/paper-api-generator/generated/io/papermc/paper/registry/keys/GameEventKeys.java
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/GameEventKeys.java
@@ -23,7 +23,7 @@ import org.jetbrains.annotations.ApiStatus;
         "unused",
         "SpellCheckingInspection"
 })
-@GeneratedFrom("1.21.1")
+@GeneratedFrom("1.21.3")
 @ApiStatus.Experimental
 public final class GameEventKeys {
     /**
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/InstrumentKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/InstrumentKeys.java
index 4d59a6b6e1..98b44173be 100644
--- a/paper-api-generator/generated/io/papermc/paper/registry/keys/InstrumentKeys.java
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/InstrumentKeys.java
@@ -23,7 +23,7 @@ import org.jetbrains.annotations.ApiStatus;
         "unused",
         "SpellCheckingInspection"
 })
-@GeneratedFrom("1.21.1")
+@GeneratedFrom("1.21.3")
 @ApiStatus.Experimental
 public final class InstrumentKeys {
     /**
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/ItemTypeKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/ItemTypeKeys.java
index 052d129630..9750f7a201 100644
--- a/paper-api-generator/generated/io/papermc/paper/registry/keys/ItemTypeKeys.java
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/ItemTypeKeys.java
@@ -6,6 +6,7 @@ import io.papermc.paper.generated.GeneratedFrom;
 import io.papermc.paper.registry.RegistryKey;
 import io.papermc.paper.registry.TypedKey;
 import net.kyori.adventure.key.Key;
+import org.bukkit.MinecraftExperimental;
 import org.bukkit.inventory.ItemType;
 import org.checkerframework.checker.nullness.qual.NonNull;
 import org.jetbrains.annotations.ApiStatus;
@@ -23,7 +24,7 @@ import org.jetbrains.annotations.ApiStatus;
         "unused",
         "SpellCheckingInspection"
 })
-@GeneratedFrom("1.21.1")
+@GeneratedFrom("1.21.3")
 @ApiStatus.Experimental
 public final class ItemTypeKeys {
     /**
@@ -698,6 +699,13 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> BLACK_BED = create(key("black_bed"));
 
+    /**
+     * {@code minecraft:black_bundle}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> BLACK_BUNDLE = create(key("black_bundle"));
+
     /**
      * {@code minecraft:black_candle}
      *
@@ -852,6 +860,13 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> BLUE_BED = create(key("blue_bed"));
 
+    /**
+     * {@code minecraft:blue_bundle}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> BLUE_BUNDLE = create(key("blue_bundle"));
+
     /**
      * {@code minecraft:blue_candle}
      *
@@ -992,6 +1007,13 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> BOOKSHELF = create(key("bookshelf"));
 
+    /**
+     * {@code minecraft:bordure_indented_banner_pattern}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> BORDURE_INDENTED_BANNER_PATTERN = create(key("bordure_indented_banner_pattern"));
+
     /**
      * {@code minecraft:bow}
      *
@@ -1111,6 +1133,13 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> BROWN_BED = create(key("brown_bed"));
 
+    /**
+     * {@code minecraft:brown_bundle}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> BROWN_BUNDLE = create(key("brown_bundle"));
+
     /**
      * {@code minecraft:brown_candle}
      *
@@ -2014,6 +2043,24 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> CRAFTING_TABLE = create(key("crafting_table"));
 
+    /**
+     * {@code minecraft:creaking_heart}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<ItemType> CREAKING_HEART = create(key("creaking_heart"));
+
+    /**
+     * {@code minecraft:creaking_spawn_egg}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<ItemType> CREAKING_SPAWN_EGG = create(key("creaking_spawn_egg"));
+
     /**
      * {@code minecraft:creeper_banner_pattern}
      *
@@ -2224,6 +2271,13 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> CYAN_BED = create(key("cyan_bed"));
 
+    /**
+     * {@code minecraft:cyan_bundle}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> CYAN_BUNDLE = create(key("cyan_bundle"));
+
     /**
      * {@code minecraft:cyan_candle}
      *
@@ -2889,6 +2943,20 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> DROWNED_SPAWN_EGG = create(key("drowned_spawn_egg"));
 
+    /**
+     * {@code minecraft:dune_armor_trim_smithing_template}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> DUNE_ARMOR_TRIM_SMITHING_TEMPLATE = create(key("dune_armor_trim_smithing_template"));
+
+    /**
+     * {@code minecraft:echo_shard}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> ECHO_SHARD = create(key("echo_shard"));
+
     /**
      * {@code minecraft:elder_guardian_spawn_egg}
      *
@@ -2945,6 +3013,41 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> EXPERIENCE_BOTTLE = create(key("experience_bottle"));
 
+    /**
+     * {@code minecraft:explorer_pottery_sherd}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> EXPLORER_POTTERY_SHERD = create(key("explorer_pottery_sherd"));
+
+    /**
+     * {@code minecraft:exposed_copper_bulb}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> EXPOSED_COPPER_BULB = create(key("exposed_copper_bulb"));
+
+    /**
+     * {@code minecraft:exposed_copper_grate}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> EXPOSED_COPPER_GRATE = create(key("exposed_copper_grate"));
+
+    /**
+     * {@code minecraft:eye_armor_trim_smithing_template}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> EYE_ARMOR_TRIM_SMITHING_TEMPLATE = create(key("eye_armor_trim_smithing_template"));
+
+    /**
+     * {@code minecraft:field_masoned_banner_pattern}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> FIELD_MASONED_BANNER_PATTERN = create(key("field_masoned_banner_pattern"));
+
     /**
      * {@code minecraft:fire_charge}
      *
@@ -2966,6 +3069,41 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> FIREWORK_STAR = create(key("firework_star"));
 
+    /**
+     * {@code minecraft:fletching_table}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> FLETCHING_TABLE = create(key("fletching_table"));
+
+    /**
+     * {@code minecraft:flow_armor_trim_smithing_template}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> FLOW_ARMOR_TRIM_SMITHING_TEMPLATE = create(key("flow_armor_trim_smithing_template"));
+
+    /**
+     * {@code minecraft:flow_banner_pattern}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> FLOW_BANNER_PATTERN = create(key("flow_banner_pattern"));
+
+    /**
+     * {@code minecraft:flow_pottery_sherd}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> FLOW_POTTERY_SHERD = create(key("flow_pottery_sherd"));
+
+    /**
+     * {@code minecraft:flower_banner_pattern}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> FLOWER_BANNER_PATTERN = create(key("flower_banner_pattern"));
+
     /**
      * {@code minecraft:flower_pot}
      *
@@ -2980,6 +3118,13 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> FOX_SPAWN_EGG = create(key("fox_spawn_egg"));
 
+    /**
+     * {@code minecraft:friend_pottery_sherd}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> FRIEND_POTTERY_SHERD = create(key("friend_pottery_sherd"));
+
     /**
      * {@code minecraft:frog_spawn_egg}
      *
@@ -2987,6 +3132,13 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> FROG_SPAWN_EGG = create(key("frog_spawn_egg"));
 
+    /**
+     * {@code minecraft:frogspawn}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> FROGSPAWN = create(key("frogspawn"));
+
     /**
      * {@code minecraft:ghast_spawn_egg}
      *
@@ -2994,6 +3146,27 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> GHAST_SPAWN_EGG = create(key("ghast_spawn_egg"));
 
+    /**
+     * {@code minecraft:gilded_blackstone}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> GILDED_BLACKSTONE = create(key("gilded_blackstone"));
+
+    /**
+     * {@code minecraft:globe_banner_pattern}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> GLOBE_BANNER_PATTERN = create(key("globe_banner_pattern"));
+
+    /**
+     * {@code minecraft:glow_berries}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> GLOW_BERRIES = create(key("glow_berries"));
+
     /**
      * {@code minecraft:glow_item_frame}
      *
@@ -3008,6 +3181,13 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> GLOW_SQUID_SPAWN_EGG = create(key("glow_squid_spawn_egg"));
 
+    /**
+     * {@code minecraft:goat_horn}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> GOAT_HORN = create(key("goat_horn"));
+
     /**
      * {@code minecraft:goat_spawn_egg}
      *
@@ -3036,6 +3216,13 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> GRAY_BANNER = create(key("gray_banner"));
 
+    /**
+     * {@code minecraft:gray_candle}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> GRAY_CANDLE = create(key("gray_candle"));
+
     /**
      * {@code minecraft:green_banner}
      *
@@ -3043,6 +3230,20 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> GREEN_BANNER = create(key("green_banner"));
 
+    /**
+     * {@code minecraft:green_candle}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> GREEN_CANDLE = create(key("green_candle"));
+
+    /**
+     * {@code minecraft:grindstone}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> GRINDSTONE = create(key("grindstone"));
+
     /**
      * {@code minecraft:guardian_spawn_egg}
      *
@@ -3050,6 +3251,41 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> GUARDIAN_SPAWN_EGG = create(key("guardian_spawn_egg"));
 
+    /**
+     * {@code minecraft:guster_banner_pattern}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> GUSTER_BANNER_PATTERN = create(key("guster_banner_pattern"));
+
+    /**
+     * {@code minecraft:guster_pottery_sherd}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> GUSTER_POTTERY_SHERD = create(key("guster_pottery_sherd"));
+
+    /**
+     * {@code minecraft:heart_of_the_sea}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> HEART_OF_THE_SEA = create(key("heart_of_the_sea"));
+
+    /**
+     * {@code minecraft:heart_pottery_sherd}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> HEART_POTTERY_SHERD = create(key("heart_pottery_sherd"));
+
+    /**
+     * {@code minecraft:heartbreak_pottery_sherd}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> HEARTBREAK_POTTERY_SHERD = create(key("heartbreak_pottery_sherd"));
+
     /**
      * {@code minecraft:hoglin_spawn_egg}
      *
@@ -3057,6 +3293,27 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> HOGLIN_SPAWN_EGG = create(key("hoglin_spawn_egg"));
 
+    /**
+     * {@code minecraft:honey_bottle}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> HONEY_BOTTLE = create(key("honey_bottle"));
+
+    /**
+     * {@code minecraft:honeycomb}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> HONEYCOMB = create(key("honeycomb"));
+
+    /**
+     * {@code minecraft:honeycomb_block}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> HONEYCOMB_BLOCK = create(key("honeycomb_block"));
+
     /**
      * {@code minecraft:horse_spawn_egg}
      *
@@ -3064,6 +3321,20 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> HORSE_SPAWN_EGG = create(key("horse_spawn_egg"));
 
+    /**
+     * {@code minecraft:host_armor_trim_smithing_template}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> HOST_ARMOR_TRIM_SMITHING_TEMPLATE = create(key("host_armor_trim_smithing_template"));
+
+    /**
+     * {@code minecraft:howl_pottery_sherd}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> HOWL_POTTERY_SHERD = create(key("howl_pottery_sherd"));
+
     /**
      * {@code minecraft:husk_spawn_egg}
      *
@@ -3106,6 +3377,20 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> KNOWLEDGE_BOOK = create(key("knowledge_book"));
 
+    /**
+     * {@code minecraft:lantern}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> LANTERN = create(key("lantern"));
+
+    /**
+     * {@code minecraft:large_amethyst_bud}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> LARGE_AMETHYST_BUD = create(key("large_amethyst_bud"));
+
     /**
      * {@code minecraft:lead}
      *
@@ -3127,6 +3412,13 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> LIGHT_BLUE_BANNER = create(key("light_blue_banner"));
 
+    /**
+     * {@code minecraft:light_blue_candle}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> LIGHT_BLUE_CANDLE = create(key("light_blue_candle"));
+
     /**
      * {@code minecraft:light_gray_banner}
      *
@@ -3134,6 +3426,13 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> LIGHT_GRAY_BANNER = create(key("light_gray_banner"));
 
+    /**
+     * {@code minecraft:light_gray_candle}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> LIGHT_GRAY_CANDLE = create(key("light_gray_candle"));
+
     /**
      * {@code minecraft:lime_banner}
      *
@@ -3141,6 +3440,13 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> LIME_BANNER = create(key("lime_banner"));
 
+    /**
+     * {@code minecraft:lime_candle}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> LIME_CANDLE = create(key("lime_candle"));
+
     /**
      * {@code minecraft:lingering_potion}
      *
@@ -3155,6 +3461,20 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> LLAMA_SPAWN_EGG = create(key("llama_spawn_egg"));
 
+    /**
+     * {@code minecraft:lodestone}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> LODESTONE = create(key("lodestone"));
+
+    /**
+     * {@code minecraft:loom}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> LOOM = create(key("loom"));
+
     /**
      * {@code minecraft:mace}
      *
@@ -3169,6 +3489,13 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> MAGENTA_BANNER = create(key("magenta_banner"));
 
+    /**
+     * {@code minecraft:magenta_candle}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> MAGENTA_CANDLE = create(key("magenta_candle"));
+
     /**
      * {@code minecraft:magma_cube_spawn_egg}
      *
@@ -3183,6 +3510,27 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> MAP = create(key("map"));
 
+    /**
+     * {@code minecraft:medium_amethyst_bud}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> MEDIUM_AMETHYST_BUD = create(key("medium_amethyst_bud"));
+
+    /**
+     * {@code minecraft:miner_pottery_sherd}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> MINER_POTTERY_SHERD = create(key("miner_pottery_sherd"));
+
+    /**
+     * {@code minecraft:mojang_banner_pattern}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> MOJANG_BANNER_PATTERN = create(key("mojang_banner_pattern"));
+
     /**
      * {@code minecraft:mooshroom_spawn_egg}
      *
@@ -3190,6 +3538,13 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> MOOSHROOM_SPAWN_EGG = create(key("mooshroom_spawn_egg"));
 
+    /**
+     * {@code minecraft:mourner_pottery_sherd}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> MOURNER_POTTERY_SHERD = create(key("mourner_pottery_sherd"));
+
     /**
      * {@code minecraft:mule_spawn_egg}
      *
@@ -3253,20 +3608,6 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> DROPPER = create(key("dropper"));
 
-    /**
-     * {@code minecraft:dune_armor_trim_smithing_template}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> DUNE_ARMOR_TRIM_SMITHING_TEMPLATE = create(key("dune_armor_trim_smithing_template"));
-
-    /**
-     * {@code minecraft:echo_shard}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> ECHO_SHARD = create(key("echo_shard"));
-
     /**
      * {@code minecraft:egg}
      *
@@ -3386,13 +3727,6 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> ENDER_PEARL = create(key("ender_pearl"));
 
-    /**
-     * {@code minecraft:explorer_pottery_sherd}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> EXPLORER_POTTERY_SHERD = create(key("explorer_pottery_sherd"));
-
     /**
      * {@code minecraft:exposed_chiseled_copper}
      *
@@ -3407,13 +3741,6 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> EXPOSED_COPPER = create(key("exposed_copper"));
 
-    /**
-     * {@code minecraft:exposed_copper_bulb}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> EXPOSED_COPPER_BULB = create(key("exposed_copper_bulb"));
-
     /**
      * {@code minecraft:exposed_copper_door}
      *
@@ -3421,13 +3748,6 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> EXPOSED_COPPER_DOOR = create(key("exposed_copper_door"));
 
-    /**
-     * {@code minecraft:exposed_copper_grate}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> EXPOSED_COPPER_GRATE = create(key("exposed_copper_grate"));
-
     /**
      * {@code minecraft:exposed_copper_trapdoor}
      *
@@ -3456,13 +3776,6 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> EXPOSED_CUT_COPPER_STAIRS = create(key("exposed_cut_copper_stairs"));
 
-    /**
-     * {@code minecraft:eye_armor_trim_smithing_template}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> EYE_ARMOR_TRIM_SMITHING_TEMPLATE = create(key("eye_armor_trim_smithing_template"));
-
     /**
      * {@code minecraft:farmland}
      *
@@ -3526,13 +3839,6 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> FISHING_ROD = create(key("fishing_rod"));
 
-    /**
-     * {@code minecraft:fletching_table}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> FLETCHING_TABLE = create(key("fletching_table"));
-
     /**
      * {@code minecraft:flint}
      *
@@ -3547,34 +3853,6 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> FLINT_AND_STEEL = create(key("flint_and_steel"));
 
-    /**
-     * {@code minecraft:flow_armor_trim_smithing_template}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> FLOW_ARMOR_TRIM_SMITHING_TEMPLATE = create(key("flow_armor_trim_smithing_template"));
-
-    /**
-     * {@code minecraft:flow_banner_pattern}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> FLOW_BANNER_PATTERN = create(key("flow_banner_pattern"));
-
-    /**
-     * {@code minecraft:flow_pottery_sherd}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> FLOW_POTTERY_SHERD = create(key("flow_pottery_sherd"));
-
-    /**
-     * {@code minecraft:flower_banner_pattern}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> FLOWER_BANNER_PATTERN = create(key("flower_banner_pattern"));
-
     /**
      * {@code minecraft:flowering_azalea}
      *
@@ -3589,20 +3867,6 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> FLOWERING_AZALEA_LEAVES = create(key("flowering_azalea_leaves"));
 
-    /**
-     * {@code minecraft:friend_pottery_sherd}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> FRIEND_POTTERY_SHERD = create(key("friend_pottery_sherd"));
-
-    /**
-     * {@code minecraft:frogspawn}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> FROGSPAWN = create(key("frogspawn"));
-
     /**
      * {@code minecraft:furnace}
      *
@@ -3624,13 +3888,6 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> GHAST_TEAR = create(key("ghast_tear"));
 
-    /**
-     * {@code minecraft:gilded_blackstone}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> GILDED_BLACKSTONE = create(key("gilded_blackstone"));
-
     /**
      * {@code minecraft:glass}
      *
@@ -3659,20 +3916,6 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> GLISTERING_MELON_SLICE = create(key("glistering_melon_slice"));
 
-    /**
-     * {@code minecraft:globe_banner_pattern}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> GLOBE_BANNER_PATTERN = create(key("globe_banner_pattern"));
-
-    /**
-     * {@code minecraft:glow_berries}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> GLOW_BERRIES = create(key("glow_berries"));
-
     /**
      * {@code minecraft:glow_ink_sac}
      *
@@ -3701,13 +3944,6 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> GLOWSTONE_DUST = create(key("glowstone_dust"));
 
-    /**
-     * {@code minecraft:goat_horn}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> GOAT_HORN = create(key("goat_horn"));
-
     /**
      * {@code minecraft:gold_block}
      *
@@ -3856,11 +4092,11 @@ public final class ItemTypeKeys {
     public static final TypedKey<ItemType> GRAY_BED = create(key("gray_bed"));
 
     /**
-     * {@code minecraft:gray_candle}
+     * {@code minecraft:gray_bundle}
      *
      * @apiNote This field is version-dependant and may be removed in future Minecraft versions
      */
-    public static final TypedKey<ItemType> GRAY_CANDLE = create(key("gray_candle"));
+    public static final TypedKey<ItemType> GRAY_BUNDLE = create(key("gray_bundle"));
 
     /**
      * {@code minecraft:gray_carpet}
@@ -3940,11 +4176,11 @@ public final class ItemTypeKeys {
     public static final TypedKey<ItemType> GREEN_BED = create(key("green_bed"));
 
     /**
-     * {@code minecraft:green_candle}
+     * {@code minecraft:green_bundle}
      *
      * @apiNote This field is version-dependant and may be removed in future Minecraft versions
      */
-    public static final TypedKey<ItemType> GREEN_CANDLE = create(key("green_candle"));
+    public static final TypedKey<ItemType> GREEN_BUNDLE = create(key("green_bundle"));
 
     /**
      * {@code minecraft:green_carpet}
@@ -4016,13 +4252,6 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> GREEN_WOOL = create(key("green_wool"));
 
-    /**
-     * {@code minecraft:grindstone}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> GRINDSTONE = create(key("grindstone"));
-
     /**
      * {@code minecraft:gunpowder}
      *
@@ -4030,20 +4259,6 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> GUNPOWDER = create(key("gunpowder"));
 
-    /**
-     * {@code minecraft:guster_banner_pattern}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> GUSTER_BANNER_PATTERN = create(key("guster_banner_pattern"));
-
-    /**
-     * {@code minecraft:guster_pottery_sherd}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> GUSTER_POTTERY_SHERD = create(key("guster_pottery_sherd"));
-
     /**
      * {@code minecraft:hanging_roots}
      *
@@ -4058,27 +4273,6 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> HAY_BLOCK = create(key("hay_block"));
 
-    /**
-     * {@code minecraft:heart_of_the_sea}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> HEART_OF_THE_SEA = create(key("heart_of_the_sea"));
-
-    /**
-     * {@code minecraft:heart_pottery_sherd}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> HEART_POTTERY_SHERD = create(key("heart_pottery_sherd"));
-
-    /**
-     * {@code minecraft:heartbreak_pottery_sherd}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> HEARTBREAK_POTTERY_SHERD = create(key("heartbreak_pottery_sherd"));
-
     /**
      * {@code minecraft:heavy_core}
      *
@@ -4100,27 +4294,6 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> HONEY_BLOCK = create(key("honey_block"));
 
-    /**
-     * {@code minecraft:honey_bottle}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> HONEY_BOTTLE = create(key("honey_bottle"));
-
-    /**
-     * {@code minecraft:honeycomb}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> HONEYCOMB = create(key("honeycomb"));
-
-    /**
-     * {@code minecraft:honeycomb_block}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> HONEYCOMB_BLOCK = create(key("honeycomb_block"));
-
     /**
      * {@code minecraft:hopper}
      *
@@ -4156,20 +4329,6 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> HORN_CORAL_FAN = create(key("horn_coral_fan"));
 
-    /**
-     * {@code minecraft:host_armor_trim_smithing_template}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> HOST_ARMOR_TRIM_SMITHING_TEMPLATE = create(key("host_armor_trim_smithing_template"));
-
-    /**
-     * {@code minecraft:howl_pottery_sherd}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> HOWL_POTTERY_SHERD = create(key("howl_pottery_sherd"));
-
     /**
      * {@code minecraft:ice}
      *
@@ -4492,13 +4651,6 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> LADDER = create(key("ladder"));
 
-    /**
-     * {@code minecraft:lantern}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> LANTERN = create(key("lantern"));
-
     /**
      * {@code minecraft:lapis_block}
      *
@@ -4520,13 +4672,6 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> LAPIS_ORE = create(key("lapis_ore"));
 
-    /**
-     * {@code minecraft:large_amethyst_bud}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> LARGE_AMETHYST_BUD = create(key("large_amethyst_bud"));
-
     /**
      * {@code minecraft:large_fern}
      *
@@ -4605,11 +4750,11 @@ public final class ItemTypeKeys {
     public static final TypedKey<ItemType> LIGHT_BLUE_BED = create(key("light_blue_bed"));
 
     /**
-     * {@code minecraft:light_blue_candle}
+     * {@code minecraft:light_blue_bundle}
      *
      * @apiNote This field is version-dependant and may be removed in future Minecraft versions
      */
-    public static final TypedKey<ItemType> LIGHT_BLUE_CANDLE = create(key("light_blue_candle"));
+    public static final TypedKey<ItemType> LIGHT_BLUE_BUNDLE = create(key("light_blue_bundle"));
 
     /**
      * {@code minecraft:light_blue_carpet}
@@ -4689,11 +4834,11 @@ public final class ItemTypeKeys {
     public static final TypedKey<ItemType> LIGHT_GRAY_BED = create(key("light_gray_bed"));
 
     /**
-     * {@code minecraft:light_gray_candle}
+     * {@code minecraft:light_gray_bundle}
      *
      * @apiNote This field is version-dependant and may be removed in future Minecraft versions
      */
-    public static final TypedKey<ItemType> LIGHT_GRAY_CANDLE = create(key("light_gray_candle"));
+    public static final TypedKey<ItemType> LIGHT_GRAY_BUNDLE = create(key("light_gray_bundle"));
 
     /**
      * {@code minecraft:light_gray_carpet}
@@ -4808,11 +4953,11 @@ public final class ItemTypeKeys {
     public static final TypedKey<ItemType> LIME_BED = create(key("lime_bed"));
 
     /**
-     * {@code minecraft:lime_candle}
+     * {@code minecraft:lime_bundle}
      *
      * @apiNote This field is version-dependant and may be removed in future Minecraft versions
      */
-    public static final TypedKey<ItemType> LIME_CANDLE = create(key("lime_candle"));
+    public static final TypedKey<ItemType> LIME_BUNDLE = create(key("lime_bundle"));
 
     /**
      * {@code minecraft:lime_carpet}
@@ -4884,20 +5029,6 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> LIME_WOOL = create(key("lime_wool"));
 
-    /**
-     * {@code minecraft:lodestone}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> LODESTONE = create(key("lodestone"));
-
-    /**
-     * {@code minecraft:loom}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> LOOM = create(key("loom"));
-
     /**
      * {@code minecraft:magenta_bed}
      *
@@ -4906,11 +5037,11 @@ public final class ItemTypeKeys {
     public static final TypedKey<ItemType> MAGENTA_BED = create(key("magenta_bed"));
 
     /**
-     * {@code minecraft:magenta_candle}
+     * {@code minecraft:magenta_bundle}
      *
      * @apiNote This field is version-dependant and may be removed in future Minecraft versions
      */
-    public static final TypedKey<ItemType> MAGENTA_CANDLE = create(key("magenta_candle"));
+    public static final TypedKey<ItemType> MAGENTA_BUNDLE = create(key("magenta_bundle"));
 
     /**
      * {@code minecraft:magenta_carpet}
@@ -5122,13 +5253,6 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> MANGROVE_WOOD = create(key("mangrove_wood"));
 
-    /**
-     * {@code minecraft:medium_amethyst_bud}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> MEDIUM_AMETHYST_BUD = create(key("medium_amethyst_bud"));
-
     /**
      * {@code minecraft:melon}
      *
@@ -5164,20 +5288,6 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> MINECART = create(key("minecart"));
 
-    /**
-     * {@code minecraft:miner_pottery_sherd}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> MINER_POTTERY_SHERD = create(key("miner_pottery_sherd"));
-
-    /**
-     * {@code minecraft:mojang_banner_pattern}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> MOJANG_BANNER_PATTERN = create(key("mojang_banner_pattern"));
-
     /**
      * {@code minecraft:moss_block}
      *
@@ -5248,13 +5358,6 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> MOSSY_STONE_BRICKS = create(key("mossy_stone_bricks"));
 
-    /**
-     * {@code minecraft:mourner_pottery_sherd}
-     *
-     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
-     */
-    public static final TypedKey<ItemType> MOURNER_POTTERY_SHERD = create(key("mourner_pottery_sherd"));
-
     /**
      * {@code minecraft:mud}
      *
@@ -5829,6 +5932,13 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> ORANGE_BED = create(key("orange_bed"));
 
+    /**
+     * {@code minecraft:orange_bundle}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> ORANGE_BUNDLE = create(key("orange_bundle"));
+
     /**
      * {@code minecraft:orange_candle}
      *
@@ -6004,6 +6114,186 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> PAINTING = create(key("painting"));
 
+    /**
+     * {@code minecraft:pale_hanging_moss}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<ItemType> PALE_HANGING_MOSS = create(key("pale_hanging_moss"));
+
+    /**
+     * {@code minecraft:pale_moss_block}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<ItemType> PALE_MOSS_BLOCK = create(key("pale_moss_block"));
+
+    /**
+     * {@code minecraft:pale_moss_carpet}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<ItemType> PALE_MOSS_CARPET = create(key("pale_moss_carpet"));
+
+    /**
+     * {@code minecraft:pale_oak_boat}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<ItemType> PALE_OAK_BOAT = create(key("pale_oak_boat"));
+
+    /**
+     * {@code minecraft:pale_oak_button}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<ItemType> PALE_OAK_BUTTON = create(key("pale_oak_button"));
+
+    /**
+     * {@code minecraft:pale_oak_chest_boat}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<ItemType> PALE_OAK_CHEST_BOAT = create(key("pale_oak_chest_boat"));
+
+    /**
+     * {@code minecraft:pale_oak_door}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<ItemType> PALE_OAK_DOOR = create(key("pale_oak_door"));
+
+    /**
+     * {@code minecraft:pale_oak_fence}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<ItemType> PALE_OAK_FENCE = create(key("pale_oak_fence"));
+
+    /**
+     * {@code minecraft:pale_oak_fence_gate}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<ItemType> PALE_OAK_FENCE_GATE = create(key("pale_oak_fence_gate"));
+
+    /**
+     * {@code minecraft:pale_oak_hanging_sign}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<ItemType> PALE_OAK_HANGING_SIGN = create(key("pale_oak_hanging_sign"));
+
+    /**
+     * {@code minecraft:pale_oak_leaves}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<ItemType> PALE_OAK_LEAVES = create(key("pale_oak_leaves"));
+
+    /**
+     * {@code minecraft:pale_oak_log}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<ItemType> PALE_OAK_LOG = create(key("pale_oak_log"));
+
+    /**
+     * {@code minecraft:pale_oak_planks}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<ItemType> PALE_OAK_PLANKS = create(key("pale_oak_planks"));
+
+    /**
+     * {@code minecraft:pale_oak_pressure_plate}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<ItemType> PALE_OAK_PRESSURE_PLATE = create(key("pale_oak_pressure_plate"));
+
+    /**
+     * {@code minecraft:pale_oak_sapling}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<ItemType> PALE_OAK_SAPLING = create(key("pale_oak_sapling"));
+
+    /**
+     * {@code minecraft:pale_oak_sign}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<ItemType> PALE_OAK_SIGN = create(key("pale_oak_sign"));
+
+    /**
+     * {@code minecraft:pale_oak_slab}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<ItemType> PALE_OAK_SLAB = create(key("pale_oak_slab"));
+
+    /**
+     * {@code minecraft:pale_oak_stairs}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<ItemType> PALE_OAK_STAIRS = create(key("pale_oak_stairs"));
+
+    /**
+     * {@code minecraft:pale_oak_trapdoor}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<ItemType> PALE_OAK_TRAPDOOR = create(key("pale_oak_trapdoor"));
+
+    /**
+     * {@code minecraft:pale_oak_wood}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<ItemType> PALE_OAK_WOOD = create(key("pale_oak_wood"));
+
     /**
      * {@code minecraft:panda_spawn_egg}
      *
@@ -6116,6 +6406,13 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> PINK_BED = create(key("pink_bed"));
 
+    /**
+     * {@code minecraft:pink_bundle}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> PINK_BUNDLE = create(key("pink_bundle"));
+
     /**
      * {@code minecraft:pink_candle}
      *
@@ -6641,6 +6938,13 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> PURPLE_BED = create(key("purple_bed"));
 
+    /**
+     * {@code minecraft:purple_bundle}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> PURPLE_BUNDLE = create(key("purple_bundle"));
+
     /**
      * {@code minecraft:purple_candle}
      *
@@ -6907,6 +7211,13 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> RED_BED = create(key("red_bed"));
 
+    /**
+     * {@code minecraft:red_bundle}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> RED_BUNDLE = create(key("red_bundle"));
+
     /**
      * {@code minecraft:red_candle}
      *
@@ -8097,6 +8408,24 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> STRIPPED_OAK_WOOD = create(key("stripped_oak_wood"));
 
+    /**
+     * {@code minecraft:stripped_pale_oak_log}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<ItemType> STRIPPED_PALE_OAK_LOG = create(key("stripped_pale_oak_log"));
+
+    /**
+     * {@code minecraft:stripped_pale_oak_wood}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TypedKey<ItemType> STRIPPED_PALE_OAK_WOOD = create(key("stripped_pale_oak_wood"));
+
     /**
      * {@code minecraft:stripped_spruce_log}
      *
@@ -9028,6 +9357,13 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> WHITE_BED = create(key("white_bed"));
 
+    /**
+     * {@code minecraft:white_bundle}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> WHITE_BUNDLE = create(key("white_bundle"));
+
     /**
      * {@code minecraft:white_candle}
      *
@@ -9238,6 +9574,13 @@ public final class ItemTypeKeys {
      */
     public static final TypedKey<ItemType> YELLOW_BED = create(key("yellow_bed"));
 
+    /**
+     * {@code minecraft:yellow_bundle}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TypedKey<ItemType> YELLOW_BUNDLE = create(key("yellow_bundle"));
+
     /**
      * {@code minecraft:yellow_candle}
      *
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/JukeboxSongKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/JukeboxSongKeys.java
index 4789b7e571..c001a5b46e 100644
--- a/paper-api-generator/generated/io/papermc/paper/registry/keys/JukeboxSongKeys.java
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/JukeboxSongKeys.java
@@ -23,7 +23,7 @@ import org.jetbrains.annotations.ApiStatus;
         "unused",
         "SpellCheckingInspection"
 })
-@GeneratedFrom("1.21.1")
+@GeneratedFrom("1.21.3")
 @ApiStatus.Experimental
 public final class JukeboxSongKeys {
     /**
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/MapDecorationTypeKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/MapDecorationTypeKeys.java
index 6aa67743ec..ac4d4b0c64 100644
--- a/paper-api-generator/generated/io/papermc/paper/registry/keys/MapDecorationTypeKeys.java
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/MapDecorationTypeKeys.java
@@ -23,7 +23,7 @@ import org.jetbrains.annotations.ApiStatus;
         "unused",
         "SpellCheckingInspection"
 })
-@GeneratedFrom("1.21.1")
+@GeneratedFrom("1.21.3")
 @ApiStatus.Experimental
 public final class MapDecorationTypeKeys {
     /**
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/MenuTypeKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/MenuTypeKeys.java
index 98e9563029..b2ad502cc9 100644
--- a/paper-api-generator/generated/io/papermc/paper/registry/keys/MenuTypeKeys.java
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/MenuTypeKeys.java
@@ -23,7 +23,7 @@ import org.jetbrains.annotations.ApiStatus;
         "unused",
         "SpellCheckingInspection"
 })
-@GeneratedFrom("1.21.1")
+@GeneratedFrom("1.21.3")
 @ApiStatus.Experimental
 public final class MenuTypeKeys {
     /**
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/MobEffectKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/MobEffectKeys.java
index 621705fe8a..d4f7f8372d 100644
--- a/paper-api-generator/generated/io/papermc/paper/registry/keys/MobEffectKeys.java
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/MobEffectKeys.java
@@ -23,7 +23,7 @@ import org.jetbrains.annotations.ApiStatus;
         "unused",
         "SpellCheckingInspection"
 })
-@GeneratedFrom("1.21.1")
+@GeneratedFrom("1.21.3")
 @ApiStatus.Experimental
 public final class MobEffectKeys {
     /**
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/StructureKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/StructureKeys.java
index a49c8cff2e..902e04a8c9 100644
--- a/paper-api-generator/generated/io/papermc/paper/registry/keys/StructureKeys.java
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/StructureKeys.java
@@ -23,7 +23,7 @@ import org.jetbrains.annotations.ApiStatus;
         "unused",
         "SpellCheckingInspection"
 })
-@GeneratedFrom("1.21.1")
+@GeneratedFrom("1.21.3")
 @ApiStatus.Experimental
 public final class StructureKeys {
     /**
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/StructureTypeKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/StructureTypeKeys.java
index 353c0fa302..5a2547a6a1 100644
--- a/paper-api-generator/generated/io/papermc/paper/registry/keys/StructureTypeKeys.java
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/StructureTypeKeys.java
@@ -23,7 +23,7 @@ import org.jetbrains.annotations.ApiStatus;
         "unused",
         "SpellCheckingInspection"
 })
-@GeneratedFrom("1.21.1")
+@GeneratedFrom("1.21.3")
 @ApiStatus.Experimental
 public final class StructureTypeKeys {
     /**
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimMaterialKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimMaterialKeys.java
index e75f850a31..775ee696bc 100644
--- a/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimMaterialKeys.java
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimMaterialKeys.java
@@ -23,7 +23,7 @@ import org.jetbrains.annotations.ApiStatus;
         "unused",
         "SpellCheckingInspection"
 })
-@GeneratedFrom("1.21.1")
+@GeneratedFrom("1.21.3")
 @ApiStatus.Experimental
 public final class TrimMaterialKeys {
     /**
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimPatternKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimPatternKeys.java
index 65d2d63e85..f136c6079c 100644
--- a/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimPatternKeys.java
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimPatternKeys.java
@@ -23,7 +23,7 @@ import org.jetbrains.annotations.ApiStatus;
         "unused",
         "SpellCheckingInspection"
 })
-@GeneratedFrom("1.21.1")
+@GeneratedFrom("1.21.3")
 @ApiStatus.Experimental
 public final class TrimPatternKeys {
     /**
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/VillagerProfessionKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/VillagerProfessionKeys.java
index 6d8d0801bf..9942699938 100644
--- a/paper-api-generator/generated/io/papermc/paper/registry/keys/VillagerProfessionKeys.java
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/VillagerProfessionKeys.java
@@ -23,7 +23,7 @@ import org.jetbrains.annotations.ApiStatus;
         "unused",
         "SpellCheckingInspection"
 })
-@GeneratedFrom("1.21.1")
+@GeneratedFrom("1.21.3")
 @ApiStatus.Experimental
 public final class VillagerProfessionKeys {
     /**
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/VillagerTypeKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/VillagerTypeKeys.java
index 524880dbaa..f2033c1164 100644
--- a/paper-api-generator/generated/io/papermc/paper/registry/keys/VillagerTypeKeys.java
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/VillagerTypeKeys.java
@@ -23,7 +23,7 @@ import org.jetbrains.annotations.ApiStatus;
         "unused",
         "SpellCheckingInspection"
 })
-@GeneratedFrom("1.21.1")
+@GeneratedFrom("1.21.3")
 @ApiStatus.Experimental
 public final class VillagerTypeKeys {
     /**
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/WolfVariantKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/WolfVariantKeys.java
index 7108d41c8d..ab63580535 100644
--- a/paper-api-generator/generated/io/papermc/paper/registry/keys/WolfVariantKeys.java
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/WolfVariantKeys.java
@@ -23,7 +23,7 @@ import org.jetbrains.annotations.ApiStatus;
         "unused",
         "SpellCheckingInspection"
 })
-@GeneratedFrom("1.21.1")
+@GeneratedFrom("1.21.3")
 @ApiStatus.Experimental
 public final class WolfVariantKeys {
     /**
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/EnchantmentTagKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/EnchantmentTagKeys.java
index 5d2a22742f..e1f25062d4 100644
--- a/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/EnchantmentTagKeys.java
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/EnchantmentTagKeys.java
@@ -24,7 +24,7 @@ import org.jetbrains.annotations.ApiStatus;
         "unused",
         "SpellCheckingInspection"
 })
-@GeneratedFrom("1.21.1")
+@GeneratedFrom("1.21.3")
 @ApiStatus.Experimental
 public final class EnchantmentTagKeys {
     /**
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/ItemTypeTagKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/ItemTypeTagKeys.java
index b0a153f670..8ec601a311 100644
--- a/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/ItemTypeTagKeys.java
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/ItemTypeTagKeys.java
@@ -6,6 +6,7 @@ import io.papermc.paper.generated.GeneratedFrom;
 import io.papermc.paper.registry.RegistryKey;
 import io.papermc.paper.registry.tag.TagKey;
 import net.kyori.adventure.key.Key;
+import org.bukkit.MinecraftExperimental;
 import org.bukkit.inventory.ItemType;
 import org.checkerframework.checker.nullness.qual.NonNull;
 import org.jetbrains.annotations.ApiStatus;
@@ -23,7 +24,7 @@ import org.jetbrains.annotations.ApiStatus;
         "unused",
         "SpellCheckingInspection"
 })
-@GeneratedFrom("1.21.1")
+@GeneratedFrom("1.21.3")
 @ApiStatus.Experimental
 public final class ItemTypeTagKeys {
     /**
@@ -131,6 +132,20 @@ public final class ItemTypeTagKeys {
      */
     public static final TagKey<ItemType> BREAKS_DECORATED_POTS = create(key("breaks_decorated_pots"));
 
+    /**
+     * {@code #minecraft:brewing_fuel}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TagKey<ItemType> BREWING_FUEL = create(key("brewing_fuel"));
+
+    /**
+     * {@code #minecraft:bundles}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TagKey<ItemType> BUNDLES = create(key("bundles"));
+
     /**
      * {@code #minecraft:buttons}
      *
@@ -292,6 +307,13 @@ public final class ItemTypeTagKeys {
      */
     public static final TagKey<ItemType> DIAMOND_ORES = create(key("diamond_ores"));
 
+    /**
+     * {@code #minecraft:diamond_tool_materials}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TagKey<ItemType> DIAMOND_TOOL_MATERIALS = create(key("diamond_tool_materials"));
+
     /**
      * {@code #minecraft:dirt}
      *
@@ -306,6 +328,13 @@ public final class ItemTypeTagKeys {
      */
     public static final TagKey<ItemType> DOORS = create(key("doors"));
 
+    /**
+     * {@code #minecraft:duplicates_allays}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TagKey<ItemType> DUPLICATES_ALLAYS = create(key("duplicates_allays"));
+
     /**
      * {@code #minecraft:dyeable}
      *
@@ -509,6 +538,20 @@ public final class ItemTypeTagKeys {
      */
     public static final TagKey<ItemType> FROG_FOOD = create(key("frog_food"));
 
+    /**
+     * {@code #minecraft:furnace_minecart_fuel}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TagKey<ItemType> FURNACE_MINECART_FUEL = create(key("furnace_minecart_fuel"));
+
+    /**
+     * {@code #minecraft:gaze_disguise_equipment}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TagKey<ItemType> GAZE_DISGUISE_EQUIPMENT = create(key("gaze_disguise_equipment"));
+
     /**
      * {@code #minecraft:goat_food}
      *
@@ -523,6 +566,13 @@ public final class ItemTypeTagKeys {
      */
     public static final TagKey<ItemType> GOLD_ORES = create(key("gold_ores"));
 
+    /**
+     * {@code #minecraft:gold_tool_materials}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TagKey<ItemType> GOLD_TOOL_MATERIALS = create(key("gold_tool_materials"));
+
     /**
      * {@code #minecraft:hanging_signs}
      *
@@ -579,6 +629,13 @@ public final class ItemTypeTagKeys {
      */
     public static final TagKey<ItemType> IRON_ORES = create(key("iron_ores"));
 
+    /**
+     * {@code #minecraft:iron_tool_materials}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TagKey<ItemType> IRON_TOOL_MATERIALS = create(key("iron_tool_materials"));
+
     /**
      * {@code #minecraft:jungle_logs}
      *
@@ -649,6 +706,13 @@ public final class ItemTypeTagKeys {
      */
     public static final TagKey<ItemType> MANGROVE_LOGS = create(key("mangrove_logs"));
 
+    /**
+     * {@code #minecraft:map_invisibility_equipment}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TagKey<ItemType> MAP_INVISIBILITY_EQUIPMENT = create(key("map_invisibility_equipment"));
+
     /**
      * {@code #minecraft:meat}
      *
@@ -656,6 +720,13 @@ public final class ItemTypeTagKeys {
      */
     public static final TagKey<ItemType> MEAT = create(key("meat"));
 
+    /**
+     * {@code #minecraft:netherite_tool_materials}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TagKey<ItemType> NETHERITE_TOOL_MATERIALS = create(key("netherite_tool_materials"));
+
     /**
      * {@code #minecraft:non_flammable_wood}
      *
@@ -684,6 +755,22 @@ public final class ItemTypeTagKeys {
      */
     public static final TagKey<ItemType> OCELOT_FOOD = create(key("ocelot_food"));
 
+    /**
+     * {@code #minecraft:pale_oak_logs}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    @ApiStatus.Experimental
+    @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+    public static final TagKey<ItemType> PALE_OAK_LOGS = create(key("pale_oak_logs"));
+
+    /**
+     * {@code #minecraft:panda_eats_from_ground}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TagKey<ItemType> PANDA_EATS_FROM_GROUND = create(key("panda_eats_from_ground"));
+
     /**
      * {@code #minecraft:panda_food}
      *
@@ -740,6 +827,13 @@ public final class ItemTypeTagKeys {
      */
     public static final TagKey<ItemType> PIGLIN_REPELLENTS = create(key("piglin_repellents"));
 
+    /**
+     * {@code #minecraft:piglin_safe_armor}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TagKey<ItemType> PIGLIN_SAFE_ARMOR = create(key("piglin_safe_armor"));
+
     /**
      * {@code #minecraft:planks}
      *
@@ -768,6 +862,62 @@ public final class ItemTypeTagKeys {
      */
     public static final TagKey<ItemType> REDSTONE_ORES = create(key("redstone_ores"));
 
+    /**
+     * {@code #minecraft:repairs_chain_armor}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TagKey<ItemType> REPAIRS_CHAIN_ARMOR = create(key("repairs_chain_armor"));
+
+    /**
+     * {@code #minecraft:repairs_diamond_armor}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TagKey<ItemType> REPAIRS_DIAMOND_ARMOR = create(key("repairs_diamond_armor"));
+
+    /**
+     * {@code #minecraft:repairs_gold_armor}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TagKey<ItemType> REPAIRS_GOLD_ARMOR = create(key("repairs_gold_armor"));
+
+    /**
+     * {@code #minecraft:repairs_iron_armor}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TagKey<ItemType> REPAIRS_IRON_ARMOR = create(key("repairs_iron_armor"));
+
+    /**
+     * {@code #minecraft:repairs_leather_armor}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TagKey<ItemType> REPAIRS_LEATHER_ARMOR = create(key("repairs_leather_armor"));
+
+    /**
+     * {@code #minecraft:repairs_netherite_armor}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TagKey<ItemType> REPAIRS_NETHERITE_ARMOR = create(key("repairs_netherite_armor"));
+
+    /**
+     * {@code #minecraft:repairs_turtle_helmet}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TagKey<ItemType> REPAIRS_TURTLE_HELMET = create(key("repairs_turtle_helmet"));
+
+    /**
+     * {@code #minecraft:repairs_wolf_armor}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TagKey<ItemType> REPAIRS_WOLF_ARMOR = create(key("repairs_wolf_armor"));
+
     /**
      * {@code #minecraft:sand}
      *
@@ -796,6 +946,13 @@ public final class ItemTypeTagKeys {
      */
     public static final TagKey<ItemType> SHOVELS = create(key("shovels"));
 
+    /**
+     * {@code #minecraft:shulker_boxes}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TagKey<ItemType> SHULKER_BOXES = create(key("shulker_boxes"));
+
     /**
      * {@code #minecraft:signs}
      *
@@ -957,6 +1114,13 @@ public final class ItemTypeTagKeys {
      */
     public static final TagKey<ItemType> TURTLE_FOOD = create(key("turtle_food"));
 
+    /**
+     * {@code #minecraft:villager_picks_up}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TagKey<ItemType> VILLAGER_PICKS_UP = create(key("villager_picks_up"));
+
     /**
      * {@code #minecraft:villager_plantable_seeds}
      *
@@ -1034,6 +1198,13 @@ public final class ItemTypeTagKeys {
      */
     public static final TagKey<ItemType> WOODEN_STAIRS = create(key("wooden_stairs"));
 
+    /**
+     * {@code #minecraft:wooden_tool_materials}
+     *
+     * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+     */
+    public static final TagKey<ItemType> WOODEN_TOOL_MATERIALS = create(key("wooden_tool_materials"));
+
     /**
      * {@code #minecraft:wooden_trapdoors}
      *
diff --git a/paper-api-generator/src/main/java/io/papermc/generator/Main.java b/paper-api-generator/src/main/java/io/papermc/generator/Main.java
index bec7a0c373..129009f519 100644
--- a/paper-api-generator/src/main/java/io/papermc/generator/Main.java
+++ b/paper-api-generator/src/main/java/io/papermc/generator/Main.java
@@ -7,22 +7,25 @@ import io.papermc.generator.utils.TagCollector;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
+import java.util.List;
 import java.util.Map;
 import net.minecraft.SharedConstants;
 import net.minecraft.commands.Commands;
+import net.minecraft.core.HolderLookup;
 import net.minecraft.core.LayeredRegistryAccess;
+import net.minecraft.core.Registry;
 import net.minecraft.core.RegistryAccess;
 import net.minecraft.resources.RegistryDataLoader;
 import net.minecraft.server.Bootstrap;
 import net.minecraft.server.RegistryLayer;
 import net.minecraft.server.ReloadableServerResources;
-import net.minecraft.server.WorldLoader;
 import net.minecraft.server.packs.PackType;
 import net.minecraft.server.packs.repository.Pack;
 import net.minecraft.server.packs.repository.PackRepository;
 import net.minecraft.server.packs.repository.ServerPacksSource;
 import net.minecraft.server.packs.resources.MultiPackResourceManager;
 import net.minecraft.tags.TagKey;
+import net.minecraft.tags.TagLoader;
 import net.minecraft.world.flag.FeatureFlags;
 import org.apache.commons.io.file.PathUtils;
 import org.slf4j.Logger;
@@ -42,11 +45,22 @@ public final class Main {
         resourceRepository.reload();
         final MultiPackResourceManager resourceManager = new MultiPackResourceManager(PackType.SERVER_DATA, resourceRepository.getAvailablePacks().stream().map(Pack::open).toList());
         LayeredRegistryAccess<RegistryLayer> layers = RegistryLayer.createRegistryAccess();
-        layers = WorldLoader.loadAndReplaceLayer(resourceManager, layers, RegistryLayer.WORLDGEN, RegistryDataLoader.WORLDGEN_REGISTRIES);
+        final List<Registry.PendingTags<?>> pendingTags = TagLoader.loadTagsForExistingRegistries(resourceManager, layers.getLayer(RegistryLayer.STATIC));
+        final List<HolderLookup.RegistryLookup<?>> worldGenLayer = TagLoader.buildUpdatedLookups(layers.getAccessForLoading(RegistryLayer.WORLDGEN), pendingTags);
+        final RegistryAccess.Frozen frozenWorldgenRegistries = RegistryDataLoader.load(resourceManager, worldGenLayer, RegistryDataLoader.WORLDGEN_REGISTRIES);
+        layers = layers.replaceFrom(RegistryLayer.WORLDGEN, frozenWorldgenRegistries);
         REGISTRY_ACCESS = layers.compositeAccess().freeze();
-        final ReloadableServerResources datapack = ReloadableServerResources.loadResources(resourceManager, layers, FeatureFlags.REGISTRY.allFlags(), Commands.CommandSelection.DEDICATED, 0, MoreExecutors.directExecutor(), MoreExecutors.directExecutor()).join();
-        datapack.updateRegistryTags();
-
+        final ReloadableServerResources reloadableServerResources = ReloadableServerResources.loadResources(
+            resourceManager,
+            layers,
+            pendingTags,
+            FeatureFlags.VANILLA_SET,
+            Commands.CommandSelection.DEDICATED,
+            0,
+            MoreExecutors.directExecutor(),
+            MoreExecutors.directExecutor()
+        ).join();
+        reloadableServerResources.updateStaticRegistryTags();
         EXPERIMENTAL_TAGS = TagCollector.grabExperimental(resourceManager);
     }
 
diff --git a/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedKeyType.java b/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedKeyType.java
index cf6846134a..54ed67b2b7 100644
--- a/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedKeyType.java
+++ b/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedKeyType.java
@@ -23,14 +23,19 @@ import java.util.IdentityHashMap;
 import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
+import javax.lang.model.SourceVersion;
 import net.kyori.adventure.key.Key;
 import net.minecraft.core.Holder;
 import net.minecraft.core.HolderLookup;
 import net.minecraft.core.Registry;
 import net.minecraft.core.RegistrySetBuilder;
+import net.minecraft.core.registries.Registries;
 import net.minecraft.data.registries.VanillaRegistries;
+import net.minecraft.data.registries.WinterDropRegistries;
 import net.minecraft.resources.ResourceKey;
 import net.minecraft.world.flag.FeatureElement;
+import net.minecraft.world.flag.FeatureFlags;
+import org.bukkit.MinecraftExperimental;
 import org.checkerframework.checker.nullness.qual.NonNull;
 import org.checkerframework.checker.nullness.qual.Nullable;
 import org.checkerframework.framework.qual.DefaultQualifier;
@@ -51,7 +56,8 @@ public class GeneratedKeyType<T, A> extends SimpleGenerator {
     private static final Map<ResourceKey<? extends Registry<?>>, RegistrySetBuilder.RegistryBootstrap<?>> VANILLA_REGISTRY_ENTRIES = VanillaRegistries.BUILDER.entries.stream()
             .collect(Collectors.toMap(RegistrySetBuilder.RegistryStub::key, RegistrySetBuilder.RegistryStub::bootstrap));
 
-    private static final Map<ResourceKey<? extends Registry<?>>, RegistrySetBuilder.RegistryBootstrap<?>> EXPERIMENTAL_REGISTRY_ENTRIES = Collections.emptyMap(); // Update for Experimental API
+    private static final Map<ResourceKey<? extends Registry<?>>, RegistrySetBuilder.RegistryBootstrap<?>> EXPERIMENTAL_REGISTRY_ENTRIES = WinterDropRegistries.BUILDER.entries.stream()
+            .collect(Collectors.toMap(RegistrySetBuilder.RegistryStub::key, RegistrySetBuilder.RegistryStub::bootstrap)); // Update for Experimental API
 
     private static final Map<RegistryKey<?>, String> REGISTRY_KEY_FIELD_NAMES;
     static {
@@ -116,6 +122,13 @@ public class GeneratedKeyType<T, A> extends SimpleGenerator {
             );
     }
 
+    @Deprecated
+    private static final Map<String, String> JUKEBOX_SONG_NAMES = Map.of(
+        "5", "FIVE",
+        "11", "ELEVEN",
+        "13", "THIRTEEN"
+    );
+
     @Override
     protected TypeSpec getTypeSpec() {
         final TypeName typedKey = ParameterizedTypeName.get(TypedKey.class, this.apiType);
@@ -123,19 +136,23 @@ public class GeneratedKeyType<T, A> extends SimpleGenerator {
         final TypeSpec.Builder typeBuilder = this.keyHolderType();
         final MethodSpec.Builder createMethod = this.createMethod(typedKey);
 
-        final Registry<T> registry = Main.REGISTRY_ACCESS.registryOrThrow(this.registryKey);
+        final Registry<T> registry = Main.REGISTRY_ACCESS.lookupOrThrow(this.registryKey);
         final Set<ResourceKey<T>> experimental = this.collectExperimentalKeys(registry);
 
         boolean allExperimental = true;
-        for (final Holder.Reference<T> reference : registry.holders().sorted(Formatting.alphabeticKeyOrder(reference -> reference.key().location().getPath())).toList()) {
+        for (final Holder.Reference<T> reference : registry.listElements().sorted(Formatting.alphabeticKeyOrder(reference -> reference.key().location().getPath())).toList()) {
             final ResourceKey<T> key = reference.key();
             final String keyPath = key.location().getPath();
-            final String fieldName = Formatting.formatKeyAsField(keyPath);
+            String fieldName = Formatting.formatKeyAsField(keyPath);
+            if (!SourceVersion.isIdentifier(fieldName) && this.registryKey.equals(Registries.JUKEBOX_SONG) && JUKEBOX_SONG_NAMES.containsKey(fieldName)) {
+                fieldName = JUKEBOX_SONG_NAMES.get(fieldName);
+            }
+
             final FieldSpec.Builder fieldBuilder = FieldSpec.builder(typedKey, fieldName, PUBLIC, STATIC, FINAL)
                 .initializer("$N(key($S))", createMethod.build(), keyPath)
                 .addJavadoc(Javadocs.getVersionDependentField("{@code $L}"), key.location().toString());
             if (experimental.contains(key)) {
-                fieldBuilder.addAnnotations(experimentalAnnotations(null)); // Update for Experimental API
+                fieldBuilder.addAnnotations(experimentalAnnotations(MinecraftExperimental.Requires.WINTER_DROP)); // Update for Experimental API
             } else {
                 allExperimental = false;
             }
@@ -150,6 +167,7 @@ public class GeneratedKeyType<T, A> extends SimpleGenerator {
         return typeBuilder.addMethod(createMethod.build()).build();
     }
 
+    // todo at some point this should be per feature data pack not all merged
     private Set<ResourceKey<T>> collectExperimentalKeys(final Registry<T> registry) {
         if (FeatureElement.FILTERED_REGISTRIES.contains(registry.key())) {
             return this.collectExperimentalKeysBuiltIn(registry);
@@ -159,8 +177,8 @@ public class GeneratedKeyType<T, A> extends SimpleGenerator {
     }
 
     private Set<ResourceKey<T>> collectExperimentalKeysBuiltIn(final Registry<T> registry) {
-        final HolderLookup.RegistryLookup<T> filteredLookup = registry.asLookup().filterElements(v -> {
-            return false; // Update for Experimental API
+        final HolderLookup.RegistryLookup<T> filteredLookup = registry.filterElements(v -> {
+            return v instanceof final FeatureElement featureElement && FeatureFlags.isExperimental(featureElement.requiredFeatures()); // Update for Experimental API
         });
         return filteredLookup.listElementIds().collect(Collectors.toUnmodifiableSet());
     }
diff --git a/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedTagKeyType.java b/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedTagKeyType.java
index ff8d8b612c..446611a45d 100644
--- a/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedTagKeyType.java
+++ b/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedTagKeyType.java
@@ -16,6 +16,7 @@ import io.papermc.paper.registry.tag.TagKey;
 import java.lang.reflect.Field;
 import java.lang.reflect.Modifier;
 import java.util.HashMap;
+import java.util.Locale;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicBoolean;
 import net.kyori.adventure.key.Key;
@@ -105,16 +106,17 @@ public class GeneratedTagKeyType<T, A> extends SimpleGenerator {
         final TypeSpec.Builder typeBuilder = this.keyHolderType();
         final MethodSpec.Builder createMethod = this.createMethod(tagKey);
 
-        final Registry<T> registry = Main.REGISTRY_ACCESS.registryOrThrow(this.registryKey);
+        final Registry<T> registry = Main.REGISTRY_ACCESS.lookupOrThrow(this.registryKey);
 
         final AtomicBoolean allExperimental = new AtomicBoolean(true);
-        registry.getTagNames().sorted(Formatting.alphabeticKeyOrder(nmsTagKey -> nmsTagKey.location().getPath())).forEach(nmsTagKey -> {
+        registry.listTagIds().sorted(Formatting.alphabeticKeyOrder(nmsTagKey -> nmsTagKey.location().getPath())).forEach(nmsTagKey -> {
             final String fieldName = Formatting.formatKeyAsField(nmsTagKey.location().getPath());
             final FieldSpec.Builder fieldBuilder = FieldSpec.builder(tagKey, fieldName, PUBLIC, STATIC, FINAL)
                 .initializer("$N(key($S))", createMethod.build(), nmsTagKey.location().getPath())
                 .addJavadoc(Javadocs.getVersionDependentField("{@code $L}"), "#" + nmsTagKey.location());
-            if (Main.EXPERIMENTAL_TAGS.containsKey(nmsTagKey)) {
-                fieldBuilder.addAnnotations(experimentalAnnotations(MinecraftExperimental.Requires.TRADE_REBALANCE)); // Update for Experimental API
+            final String featureFlagName = Main.EXPERIMENTAL_TAGS.get(nmsTagKey);
+            if (featureFlagName != null) {
+                fieldBuilder.addAnnotations(experimentalAnnotations(MinecraftExperimental.Requires.valueOf(featureFlagName.toUpperCase(Locale.ENGLISH)))); // Update for Experimental API
             } else {
                 allExperimental.set(false);
             }
diff --git a/paper-api-generator/src/main/java/io/papermc/generator/types/SimpleGenerator.java b/paper-api-generator/src/main/java/io/papermc/generator/types/SimpleGenerator.java
index b4c1095c84..3608b449f8 100644
--- a/paper-api-generator/src/main/java/io/papermc/generator/types/SimpleGenerator.java
+++ b/paper-api-generator/src/main/java/io/papermc/generator/types/SimpleGenerator.java
@@ -31,5 +31,4 @@ public abstract class SimpleGenerator implements SourceGenerator {
 
         builder.build().writeTo(parent, StandardCharsets.UTF_8);
     }
-
 }
diff --git a/paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalGenerator.java b/paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalGenerator.java
index ffe3c48572..86e2294ae7 100644
--- a/paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalGenerator.java
+++ b/paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalGenerator.java
@@ -1,6 +1,5 @@
 package io.papermc.generator.types.goal;
 
-import com.destroystokyo.paper.entity.RangedEntity;
 import com.destroystokyo.paper.entity.ai.GoalKey;
 import com.squareup.javapoet.ClassName;
 import com.squareup.javapoet.FieldSpec;
@@ -19,44 +18,10 @@ import io.papermc.generator.utils.Formatting;
 import io.papermc.generator.utils.Javadocs;
 import java.util.Comparator;
 import java.util.List;
-import javax.lang.model.element.Modifier;
 import net.minecraft.world.entity.ai.goal.Goal;
 import net.minecraft.world.entity.ai.goal.WrappedGoal;
 import org.bukkit.NamespacedKey;
-import org.bukkit.entity.AbstractHorse;
-import org.bukkit.entity.Blaze;
-import org.bukkit.entity.Cat;
-import org.bukkit.entity.Creature;
-import org.bukkit.entity.Dolphin;
-import org.bukkit.entity.Drowned;
-import org.bukkit.entity.Enderman;
-import org.bukkit.entity.Evoker;
-import org.bukkit.entity.Fish;
-import org.bukkit.entity.Fox;
-import org.bukkit.entity.Ghast;
-import org.bukkit.entity.Llama;
 import org.bukkit.entity.Mob;
-import org.bukkit.entity.Monster;
-import org.bukkit.entity.Panda;
-import org.bukkit.entity.Parrot;
-import org.bukkit.entity.PigZombie;
-import org.bukkit.entity.PolarBear;
-import org.bukkit.entity.Rabbit;
-import org.bukkit.entity.Raider;
-import org.bukkit.entity.Ravager;
-import org.bukkit.entity.Shulker;
-import org.bukkit.entity.Silverfish;
-import org.bukkit.entity.SkeletonHorse;
-import org.bukkit.entity.Slime;
-import org.bukkit.entity.Spellcaster;
-import org.bukkit.entity.Spider;
-import org.bukkit.entity.Squid;
-import org.bukkit.entity.Tameable;
-import org.bukkit.entity.TraderLlama;
-import org.bukkit.entity.Turtle;
-import org.bukkit.entity.Vex;
-import org.bukkit.entity.Vindicator;
-import org.bukkit.entity.WanderingTrader;
 import org.checkerframework.checker.nullness.qual.NonNull;
 import org.checkerframework.framework.qual.DefaultQualifier;
 import org.jetbrains.annotations.Nullable;
@@ -134,10 +99,4 @@ public class MobGoalGenerator extends SimpleGenerator {
     protected JavaFile.Builder file(JavaFile.Builder builder) {
         return builder;
     }
-
-    record DeprecatedEntry(Class<?> entity, String entryName, @Nullable String removalVersion,
-                           @Nullable String removedVersion) {
-
-    }
-
 }
diff --git a/paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalNames.java b/paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalNames.java
index 1bd6342f61..07c6d50719 100644
--- a/paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalNames.java
+++ b/paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalNames.java
@@ -236,6 +236,9 @@ public class MobGoalNames {
         bukkitMap.put(net.minecraft.world.entity.monster.breeze.Breeze.class, org.bukkit.entity.Breeze.class);
         bukkitMap.put(net.minecraft.world.entity.animal.armadillo.Armadillo.class, org.bukkit.entity.Armadillo.class);
         bukkitMap.put(net.minecraft.world.entity.monster.Bogged.class, org.bukkit.entity.Bogged.class);
+        bukkitMap.put(net.minecraft.world.entity.monster.creaking.Creaking.class, org.bukkit.entity.Creaking.class);
+        bukkitMap.put(net.minecraft.world.entity.monster.creaking.CreakingTransient.class, org.bukkit.entity.CreakingTransient.class);
+        bukkitMap.put(net.minecraft.world.entity.animal.AgeableWaterCreature.class, org.bukkit.entity.Squid.class); // close enough
         //</editor-fold>
     }
 
@@ -268,6 +271,7 @@ public class MobGoalNames {
                 name = cut;
             }
         }
+
         name = name.replace("PathfinderGoal", "");
         name = name.replace("TargetGoal", "");
         name = name.replace("Goal", "");
diff --git a/paper-api-generator/src/main/java/io/papermc/generator/utils/CollectingContext.java b/paper-api-generator/src/main/java/io/papermc/generator/utils/CollectingContext.java
index bb0687aa24..c2fbaa2a05 100644
--- a/paper-api-generator/src/main/java/io/papermc/generator/utils/CollectingContext.java
+++ b/paper-api-generator/src/main/java/io/papermc/generator/utils/CollectingContext.java
@@ -18,11 +18,11 @@ public record CollectingContext<T>(Set<ResourceKey<T>> registered,
     @Override
     public Holder.Reference<T> register(final ResourceKey<T> resourceKey, final @NonNull T t, final Lifecycle lifecycle) {
         this.registered.add(resourceKey);
-        return Holder.Reference.createStandAlone(this.registry.holderOwner(), resourceKey);
+        return Holder.Reference.createStandAlone(this.registry, resourceKey);
     }
 
     @Override
     public <S> HolderGetter<S> lookup(final ResourceKey<? extends Registry<? extends S>> resourceKey) {
-        return Main.REGISTRY_ACCESS.registryOrThrow(resourceKey).asLookup();
+        return Main.REGISTRY_ACCESS.lookupOrThrow(resourceKey);
     }
 }
diff --git a/paper-api-generator/src/main/java/io/papermc/generator/utils/Formatting.java b/paper-api-generator/src/main/java/io/papermc/generator/utils/Formatting.java
index 0006e07c53..b703a32455 100644
--- a/paper-api-generator/src/main/java/io/papermc/generator/utils/Formatting.java
+++ b/paper-api-generator/src/main/java/io/papermc/generator/utils/Formatting.java
@@ -1,6 +1,5 @@
 package io.papermc.generator.utils;
 
-import java.util.Map;
 import java.util.Optional;
 import org.apache.commons.lang3.math.NumberUtils;
 import java.util.Comparator;
@@ -13,13 +12,8 @@ public final class Formatting {
 
     private static final Pattern ILLEGAL_FIELD_CHARACTERS = Pattern.compile("[.-/]");
 
-    private static final Map<String, String> MANUAL_OVERRIDES = Map.of(
-        "5", "five",
-        "11", "eleven",
-        "13", "thirteen"
-    );
     public static String formatKeyAsField(String path) {
-        return ILLEGAL_FIELD_CHARACTERS.matcher(MANUAL_OVERRIDES.getOrDefault(path, path).toUpperCase(Locale.ROOT)).replaceAll("_");
+        return ILLEGAL_FIELD_CHARACTERS.matcher(path.toUpperCase(Locale.ROOT)).replaceAll("_");
     }
 
     public static Optional<String> formatTagKey(String tagDir, String resourcePath) {
diff --git a/paper-api-generator/src/main/java/io/papermc/generator/utils/TagCollector.java b/paper-api-generator/src/main/java/io/papermc/generator/utils/TagCollector.java
index 2c537dba93..546e136b4a 100644
--- a/paper-api-generator/src/main/java/io/papermc/generator/utils/TagCollector.java
+++ b/paper-api-generator/src/main/java/io/papermc/generator/utils/TagCollector.java
@@ -47,7 +47,7 @@ public final class TagCollector {
                     return;
                 }
 
-                result.put(entry.value().getTagNames()
+                result.put(entry.value().listTagIds()
                     .filter(tagKey -> tagKey.location().getPath().equals(path))
                     .findFirst()
                     .orElseThrow(), packId);
diff --git a/paper-api-generator/wideners.at b/paper-api-generator/wideners.at
index 6928316973..60a5d241e7 100644
--- a/paper-api-generator/wideners.at
+++ b/paper-api-generator/wideners.at
@@ -3,5 +3,6 @@ public net/minecraft/server/WorldLoader loadAndReplaceLayer(Lnet/minecraft/serve
 # for auto-marking experimental stuff
 public net/minecraft/core/RegistrySetBuilder entries
 public net/minecraft/core/RegistrySetBuilder$RegistryStub
-public net/minecraft/data/registries/UpdateOneTwentyOneRegistries BUILDER
 public net/minecraft/data/registries/VanillaRegistries BUILDER
+public net/minecraft/data/registries/WinterDropRegistries BUILDER
+public net/minecraft/data/registries/TradeRebalanceRegistries BUILDER
diff --git a/patches/api/Code-Generation.patch b/patches/api/Code-Generation.patch
index ff4b79b860..00835095b5 100644
--- a/patches/api/Code-Generation.patch
+++ b/patches/api/Code-Generation.patch
@@ -373,6 +373,10 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
      public enum Requires {
  
          WINTER_DROP,
-+        TRADE_REBALANCE // Paper
++        // Paper start
++        TRADE_REBALANCE,
++        REDSTONE_EXPERIMENTS,
++        MINECART_IMPROVEMENTS
++        // Paper end
      }
  }
diff --git a/patches/api/Experimental-annotations-change.patch b/patches/api/Experimental-annotations-change.patch
index 9cd1d9779b..c615b8bb1b 100644
--- a/patches/api/Experimental-annotations-change.patch
+++ b/patches/api/Experimental-annotations-change.patch
@@ -30,6 +30,19 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
      public static final FeatureFlag MINECART_IMPROVEMENTS = Bukkit.getUnsafe().getFeatureFlag(NamespacedKey.minecraft("minecart_improvements"));
  
  }
+diff --git a/src/main/java/org/bukkit/GameRule.java b/src/main/java/org/bukkit/GameRule.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/GameRule.java
++++ b/src/main/java/org/bukkit/GameRule.java
+@@ -0,0 +0,0 @@ public final class GameRule<T> implements net.kyori.adventure.translation.Transl
+      * The maximum speed of minecarts (when the new movement algorithm is
+      * enabled).
+      */
++    @MinecraftExperimental(MinecraftExperimental.Requires.MINECART_IMPROVEMENTS) // Paper - add missing annotation
++    @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
+     public static final GameRule<Integer> MINECART_MAX_SPEED = new GameRule<>("minecartMaxSpeed", Integer.class);
+ 
+     /**
 diff --git a/src/main/java/org/bukkit/block/Crafter.java b/src/main/java/org/bukkit/block/Crafter.java
 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 --- a/src/main/java/org/bukkit/block/Crafter.java
diff --git a/patches/server/Implement-Mob-Goal-API.patch b/patches/server/Implement-Mob-Goal-API.patch
index 10603c6b37..df0e690e96 100644
--- a/patches/server/Implement-Mob-Goal-API.patch
+++ b/patches/server/Implement-Mob-Goal-API.patch
@@ -271,6 +271,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +        bukkitMap.put(Breeze.class, org.bukkit.entity.Breeze.class);
 +        bukkitMap.put(net.minecraft.world.entity.animal.armadillo.Armadillo.class, org.bukkit.entity.Armadillo.class);
 +        bukkitMap.put(net.minecraft.world.entity.monster.Bogged.class, org.bukkit.entity.Bogged.class);
++        bukkitMap.put(net.minecraft.world.entity.monster.creaking.Creaking.class, org.bukkit.entity.Creaking.class);
++        bukkitMap.put(net.minecraft.world.entity.monster.creaking.CreakingTransient.class, org.bukkit.entity.CreakingTransient.class);
++        bukkitMap.put(net.minecraft.world.entity.animal.AgeableWaterCreature.class, org.bukkit.entity.Squid.class); // close enough
 +    }
 +
 +    public static String getUsableName(Class<?> clazz) {