diff --git a/build.gradle b/build.gradle
index 368284ddf..1fb1bddd6 100644
--- a/build.gradle
+++ b/build.gradle
@@ -9,7 +9,7 @@ plugins {
 	id "eclipse"
 	id "idea"
 	id "maven-publish"
-	id "fabric-loom" version "0.8.7" apply false
+	id "fabric-loom" version "0.8.12" apply false
 	id "org.cadixdev.licenser" version "0.5.0"
 	id "org.ajoberstar.grgit" version "3.1.0"
 	id "com.matthewprenger.cursegradle" version "1.4.0"
@@ -19,9 +19,9 @@ plugins {
 def ENV = System.getenv()
 
 class Globals {
-	static def baseVersion = "0.34.7"
-	static def mcVersion = "21w20a"
-	static def yarnVersion = "+build.2"
+	static def baseVersion = "0.34.8"
+	static def mcVersion = "1.17-pre1"
+	static def yarnVersion = "+build.1"
 	static def loaderVersion = "0.11.3"
 	static def preRelease = true
 }
diff --git a/fabric-crash-report-info-v1/build.gradle b/fabric-crash-report-info-v1/build.gradle
index 25ecde350..c0701e0eb 100644
--- a/fabric-crash-report-info-v1/build.gradle
+++ b/fabric-crash-report-info-v1/build.gradle
@@ -1,2 +1,2 @@
 archivesBaseName = "fabric-crash-report-info-v1"
-version = getSubprojectVersion(project, "0.1.3")
+version = getSubprojectVersion(project, "0.1.4")
diff --git a/fabric-crash-report-info-v1/src/main/java/net/fabricmc/fabric/mixin/crash/report/info/MixinCrashReport.java b/fabric-crash-report-info-v1/src/main/java/net/fabricmc/fabric/mixin/crash/report/info/MixinCrashReport.java
index cc6adf6b2..f8691633e 100644
--- a/fabric-crash-report-info-v1/src/main/java/net/fabricmc/fabric/mixin/crash/report/info/MixinCrashReport.java
+++ b/fabric-crash-report-info-v1/src/main/java/net/fabricmc/fabric/mixin/crash/report/info/MixinCrashReport.java
@@ -18,6 +18,7 @@ package net.fabricmc.fabric.mixin.crash.report.info;
 
 import java.util.Map;
 import java.util.TreeMap;
+import java.util.function.Supplier;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Shadow;
@@ -25,20 +26,19 @@ import org.spongepowered.asm.mixin.injection.At;
 import org.spongepowered.asm.mixin.injection.Inject;
 import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
 
-import net.minecraft.util.crash.CrashReport;
-import net.minecraft.util.crash.CrashReportSection;
+import net.minecraft.class_6396;
 
 import net.fabricmc.loader.api.FabricLoader;
 import net.fabricmc.loader.api.ModContainer;
 
-@Mixin(CrashReport.class)
+@Mixin(class_6396.class)
 public abstract class MixinCrashReport {
 	@Shadow
-	public abstract CrashReportSection getSystemDetailsSection();
+	public abstract void method_37123(String string, Supplier<String> supplier);
 
-	@Inject(at = @At("RETURN"), method = "fillSystemDetails")
+	@Inject(at = @At("RETURN"), method = "<init>")
 	private void fillSystemDetails(CallbackInfo info) {
-		getSystemDetailsSection().add("Fabric Mods", () -> {
+		method_37123("Fabric Mods", () -> {
 			Map<String, String> mods = new TreeMap<>();
 
 			for (ModContainer container : FabricLoader.getInstance().getAllMods()) {
diff --git a/fabric-item-groups-v0/build.gradle b/fabric-item-groups-v0/build.gradle
index 19e12acb0..b1c9feced 100644
--- a/fabric-item-groups-v0/build.gradle
+++ b/fabric-item-groups-v0/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-item-groups-v0"
-version = getSubprojectVersion(project, "0.2.9")
+version = getSubprojectVersion(project, "0.2.10")
 
 moduleDependencies(project, [
 		'fabric-api-base',
diff --git a/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/mixin/item/group/client/MixinCreativePlayerInventoryGui.java b/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/mixin/item/group/client/MixinCreativePlayerInventoryGui.java
index 857efa61e..a12f85371 100644
--- a/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/mixin/item/group/client/MixinCreativePlayerInventoryGui.java
+++ b/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/mixin/item/group/client/MixinCreativePlayerInventoryGui.java
@@ -123,8 +123,8 @@ public abstract class MixinCreativePlayerInventoryGui extends AbstractInventoryS
 		int xpos = x + 116;
 		int ypos = y - 10;
 
-		method_37063(new FabricCreativeGuiComponents.ItemGroupButtonWidget(xpos + 11, ypos, FabricCreativeGuiComponents.Type.NEXT, this));
-		method_37063(new FabricCreativeGuiComponents.ItemGroupButtonWidget(xpos, ypos, FabricCreativeGuiComponents.Type.PREVIOUS, this));
+		addDrawableChild(new FabricCreativeGuiComponents.ItemGroupButtonWidget(xpos + 11, ypos, FabricCreativeGuiComponents.Type.NEXT, this));
+		addDrawableChild(new FabricCreativeGuiComponents.ItemGroupButtonWidget(xpos, ypos, FabricCreativeGuiComponents.Type.PREVIOUS, this));
 	}
 
 	@Inject(method = "setSelectedTab", at = @At("HEAD"), cancellable = true)
diff --git a/fabric-networking-api-v1/build.gradle b/fabric-networking-api-v1/build.gradle
index f96154c44..91e69db8b 100644
--- a/fabric-networking-api-v1/build.gradle
+++ b/fabric-networking-api-v1/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-networking-api-v1"
-version = getSubprojectVersion(project, "1.0.10")
+version = getSubprojectVersion(project, "1.0.11")
 
 moduleDependencies(project, [
 		'fabric-api-base'
diff --git a/fabric-networking-api-v1/src/testmod/java/net/fabricmc/fabric/test/networking/channeltest/ChannelList.java b/fabric-networking-api-v1/src/testmod/java/net/fabricmc/fabric/test/networking/channeltest/ChannelList.java
index b9e2fa101..8efec2e96 100644
--- a/fabric-networking-api-v1/src/testmod/java/net/fabricmc/fabric/test/networking/channeltest/ChannelList.java
+++ b/fabric-networking-api-v1/src/testmod/java/net/fabricmc/fabric/test/networking/channeltest/ChannelList.java
@@ -16,8 +16,8 @@
 
 package net.fabricmc.fabric.test.networking.channeltest;
 
-import net.minecraft.class_6382;
 import net.minecraft.client.MinecraftClient;
+import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder;
 import net.minecraft.client.gui.widget.EntryListWidget;
 import net.minecraft.client.util.math.MatrixStack;
 import net.minecraft.text.LiteralText;
@@ -39,7 +39,7 @@ final class ChannelList extends EntryListWidget<ChannelList.Entry> {
 	}
 
 	@Override
-	public void method_37020(class_6382 arg) {
+	public void appendNarrations(NarrationMessageBuilder arg) {
 		// TODO seems to be possibly accessibility related
 	}
 
diff --git a/fabric-networking-api-v1/src/testmod/java/net/fabricmc/fabric/test/networking/channeltest/ChannelScreen.java b/fabric-networking-api-v1/src/testmod/java/net/fabricmc/fabric/test/networking/channeltest/ChannelScreen.java
index f727e0cd6..fabecb18f 100644
--- a/fabric-networking-api-v1/src/testmod/java/net/fabricmc/fabric/test/networking/channeltest/ChannelScreen.java
+++ b/fabric-networking-api-v1/src/testmod/java/net/fabricmc/fabric/test/networking/channeltest/ChannelScreen.java
@@ -40,14 +40,14 @@ final class ChannelScreen extends Screen {
 
 	@Override
 	protected void init() {
-		this.s2cButton = this.method_37063(new ButtonWidget(this.width / 2 - 55, 5, 50, 20, new LiteralText("S2C"), this::toS2C, (button, matrices, mouseX, mouseY) -> {
+		this.s2cButton = this.addDrawableChild(new ButtonWidget(this.width / 2 - 55, 5, 50, 20, new LiteralText("S2C"), this::toS2C, (button, matrices, mouseX, mouseY) -> {
 			this.renderTooltip(matrices, new LiteralText("Packets this client can receive"), mouseX, mouseY);
 		}));
-		this.c2sButton = this.method_37063(new ButtonWidget(this.width / 2 + 5, 5, 50, 20, new LiteralText("C2S"), this::toC2S, (button, matrices, mouseX, mouseY) -> {
+		this.c2sButton = this.addDrawableChild(new ButtonWidget(this.width / 2 + 5, 5, 50, 20, new LiteralText("C2S"), this::toC2S, (button, matrices, mouseX, mouseY) -> {
 			this.renderTooltip(matrices, new LiteralText("Packets the server can receive"), mouseX, mouseY);
 		}));
-		this.closeButton = this.method_37063(new ButtonWidget(this.width / 2 - 60, this.height - 25, 120, 20, new LiteralText("Close"), button -> this.onClose()));
-		this.channelList = this.addChild(new ChannelList(this.client, this.width, this.height - 60, 30, this.height - 30, this.textRenderer.fontHeight + 2));
+		this.closeButton = this.addDrawableChild(new ButtonWidget(this.width / 2 - 60, this.height - 25, 120, 20, new LiteralText("Close"), button -> this.onClose()));
+		this.channelList = this.addDrawable(new ChannelList(this.client, this.width, this.height - 60, 30, this.height - 30, this.textRenderer.fontHeight + 2));
 	}
 
 	@Override
diff --git a/fabric-object-builder-api-v1/build.gradle b/fabric-object-builder-api-v1/build.gradle
index 5349d31fe..950e4b674 100644
--- a/fabric-object-builder-api-v1/build.gradle
+++ b/fabric-object-builder-api-v1/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-object-builder-api-v1"
-version = getSubprojectVersion(project, "1.10.8")
+version = getSubprojectVersion(project, "1.10.9")
 
 dependencies {
 	testmodImplementation project(path: ':fabric-command-api-v1', configuration: 'dev')
diff --git a/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/api/object/builder/v1/client/model/FabricModelPredicateProviderRegistry.java b/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/api/object/builder/v1/client/model/FabricModelPredicateProviderRegistry.java
index 877bd3125..290431b8e 100644
--- a/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/api/object/builder/v1/client/model/FabricModelPredicateProviderRegistry.java
+++ b/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/api/object/builder/v1/client/model/FabricModelPredicateProviderRegistry.java
@@ -18,7 +18,7 @@ package net.fabricmc.fabric.api.object.builder.v1.client.model;
 
 import net.minecraft.item.Item;
 import net.minecraft.util.Identifier;
-import net.minecraft.class_6395;
+import net.minecraft.client.item.UnclampedModelPredicateProvider;
 
 import net.fabricmc.fabric.mixin.object.builder.ModelPredicateProviderRegistryAccessor;
 import net.fabricmc.fabric.mixin.object.builder.ModelPredicateProviderRegistrySpecificAccessor;
@@ -38,7 +38,7 @@ public final class FabricModelPredicateProviderRegistry {
 	 * @param id       the identifier of the provider
 	 * @param provider the provider
 	 */
-	public static void register(Identifier id, class_6395 provider) {
+	public static void register(Identifier id, UnclampedModelPredicateProvider provider) {
 		ModelPredicateProviderRegistryAccessor.callRegister(id, provider);
 	}
 
@@ -49,7 +49,7 @@ public final class FabricModelPredicateProviderRegistry {
 	 * @param id       the identifier of the provider
 	 * @param provider the provider
 	 */
-	public static void register(Item item, Identifier id, class_6395 provider) {
+	public static void register(Item item, Identifier id, UnclampedModelPredicateProvider provider) {
 		ModelPredicateProviderRegistrySpecificAccessor.callRegister(item, id, provider);
 	}
 }
diff --git a/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/ModelPredicateProviderRegistryAccessor.java b/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/ModelPredicateProviderRegistryAccessor.java
index 1104c55e1..9a695d167 100644
--- a/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/ModelPredicateProviderRegistryAccessor.java
+++ b/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/ModelPredicateProviderRegistryAccessor.java
@@ -19,14 +19,14 @@ package net.fabricmc.fabric.mixin.object.builder;
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.gen.Invoker;
 
-import net.minecraft.class_6395;
+import net.minecraft.client.item.UnclampedModelPredicateProvider;
 import net.minecraft.client.item.ModelPredicateProviderRegistry;
 import net.minecraft.util.Identifier;
 
 @Mixin(ModelPredicateProviderRegistry.class)
 public interface ModelPredicateProviderRegistryAccessor {
 	@Invoker
-	static class_6395 callRegister(Identifier id, class_6395 provider) {
+	static UnclampedModelPredicateProvider callRegister(Identifier id, UnclampedModelPredicateProvider provider) {
 		throw new AssertionError("mixin dummy");
 	}
 }
diff --git a/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/ModelPredicateProviderRegistrySpecificAccessor.java b/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/ModelPredicateProviderRegistrySpecificAccessor.java
index e6787c2eb..fbe6cd082 100644
--- a/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/ModelPredicateProviderRegistrySpecificAccessor.java
+++ b/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/ModelPredicateProviderRegistrySpecificAccessor.java
@@ -19,7 +19,7 @@ package net.fabricmc.fabric.mixin.object.builder;
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.gen.Invoker;
 
-import net.minecraft.class_6395;
+import net.minecraft.client.item.UnclampedModelPredicateProvider;
 import net.minecraft.client.item.ModelPredicateProviderRegistry;
 import net.minecraft.item.Item;
 import net.minecraft.util.Identifier;
@@ -28,7 +28,7 @@ import net.minecraft.util.Identifier;
 @Mixin(ModelPredicateProviderRegistry.class)
 public interface ModelPredicateProviderRegistrySpecificAccessor {
 	@Invoker
-	static void callRegister(Item item, Identifier id, class_6395 provider) {
+	static void callRegister(Item item, Identifier id, UnclampedModelPredicateProvider provider) {
 		throw new AssertionError("mixin dummy");
 	}
 }
diff --git a/fabric-resource-loader-v0/build.gradle b/fabric-resource-loader-v0/build.gradle
index 8efdfa3e4..404da87ec 100644
--- a/fabric-resource-loader-v0/build.gradle
+++ b/fabric-resource-loader-v0/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-resource-loader-v0"
-version = getSubprojectVersion(project, "0.4.6")
+version = getSubprojectVersion(project, "0.4.7")
 
 dependencies {
 	testmodImplementation project(path: ':fabric-lifecycle-events-v1', configuration: 'dev')
diff --git a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/client/CreateWorldScreenMixin.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/client/CreateWorldScreenMixin.java
index e08839d43..408b7b09b 100644
--- a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/client/CreateWorldScreenMixin.java
+++ b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/client/CreateWorldScreenMixin.java
@@ -44,7 +44,7 @@ public class CreateWorldScreenMixin {
 	@Shadow
 	private ResourcePackManager packManager;
 
-	@Inject(method = "method_30296", at = @At(value = "INVOKE", target = "Lnet/minecraft/resource/ResourcePackManager;scanPacks()V", shift = At.Shift.BEFORE))
+	@Inject(method = "getScannedPack", at = @At(value = "INVOKE", target = "Lnet/minecraft/resource/ResourcePackManager;scanPacks()V", shift = At.Shift.BEFORE))
 	private void onScanPacks(CallbackInfoReturnable<Pair<File, ResourcePackManager>> cir) {
 		// Allow to display built-in data packs in the data pack selection screen at world creation.
 		((ResourcePackManagerAccessor) this.packManager).getProviders().add(new ModResourcePackCreator(ResourceType.SERVER_DATA));
diff --git a/fabric-screen-api-v1/build.gradle b/fabric-screen-api-v1/build.gradle
index ec74608f0..a7bd3e776 100644
--- a/fabric-screen-api-v1/build.gradle
+++ b/fabric-screen-api-v1/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-screen-api-v1"
-version = getSubprojectVersion(project, "1.0.2")
+version = getSubprojectVersion(project, "1.0.3")
 
 moduleDependencies(project, [
 		'fabric-api-base'
diff --git a/fabric-screen-api-v1/src/main/java/net/fabricmc/fabric/impl/client/screen/ButtonList.java b/fabric-screen-api-v1/src/main/java/net/fabricmc/fabric/impl/client/screen/ButtonList.java
index 2a99c9b0f..334869784 100644
--- a/fabric-screen-api-v1/src/main/java/net/fabricmc/fabric/impl/client/screen/ButtonList.java
+++ b/fabric-screen-api-v1/src/main/java/net/fabricmc/fabric/impl/client/screen/ButtonList.java
@@ -21,7 +21,7 @@ import java.util.List;
 
 import org.jetbrains.annotations.ApiStatus;
 
-import net.minecraft.class_6379;
+import net.minecraft.client.gui.Selectable;
 import net.minecraft.client.gui.Element;
 import net.minecraft.client.gui.widget.ClickableWidget;
 
@@ -32,10 +32,10 @@ import net.fabricmc.api.Environment;
 @ApiStatus.Internal
 @Environment(EnvType.CLIENT)
 public final class ButtonList extends AbstractList<ClickableWidget> {
-	private final List<class_6379> listeners;
+	private final List<Selectable> listeners;
 	private final List<Element> children;
 
-	public ButtonList(List<class_6379> listeners, List<Element> children) {
+	public ButtonList(List<Selectable> listeners, List<Element> children) {
 		this.listeners = listeners;
 		this.children = children;
 	}
@@ -91,7 +91,7 @@ public final class ButtonList extends AbstractList<ClickableWidget> {
 	public int size() {
 		int ret = 0;
 
-		for (class_6379 listener : listeners) {
+		for (Selectable listener : listeners) {
 			if (listener instanceof ClickableWidget) {
 				ret++;
 			}
diff --git a/fabric-screen-api-v1/src/main/java/net/fabricmc/fabric/mixin/screen/ScreenMixin.java b/fabric-screen-api-v1/src/main/java/net/fabricmc/fabric/mixin/screen/ScreenMixin.java
index ca4458053..d866e40f7 100644
--- a/fabric-screen-api-v1/src/main/java/net/fabricmc/fabric/mixin/screen/ScreenMixin.java
+++ b/fabric-screen-api-v1/src/main/java/net/fabricmc/fabric/mixin/screen/ScreenMixin.java
@@ -26,7 +26,7 @@ import org.spongepowered.asm.mixin.injection.At;
 import org.spongepowered.asm.mixin.injection.Inject;
 import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
 
-import net.minecraft.class_6379;
+import net.minecraft.client.gui.Selectable;
 import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.gui.Element;
 import net.minecraft.client.gui.screen.Screen;
@@ -44,7 +44,7 @@ import net.fabricmc.fabric.impl.client.screen.ScreenExtensions;
 abstract class ScreenMixin implements ScreenExtensions {
 	@Shadow
 	@Final
-	protected List<class_6379> field_33815;
+	protected List<Selectable> field_33815;
 	@Shadow
 	@Final
 	protected List<Element> children;
diff --git a/fabric-screen-api-v1/src/testmod/java/net/fabricmc/fabric/test/screen/SoundButton.java b/fabric-screen-api-v1/src/testmod/java/net/fabricmc/fabric/test/screen/SoundButton.java
index fa8d2d4f5..607eb286b 100644
--- a/fabric-screen-api-v1/src/testmod/java/net/fabricmc/fabric/test/screen/SoundButton.java
+++ b/fabric-screen-api-v1/src/testmod/java/net/fabricmc/fabric/test/screen/SoundButton.java
@@ -21,7 +21,7 @@ import java.util.Random;
 import org.jetbrains.annotations.Nullable;
 
 import net.minecraft.client.MinecraftClient;
-import net.minecraft.class_6382;
+import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder;
 import net.minecraft.client.gui.widget.PressableWidget;
 import net.minecraft.client.sound.PositionedSoundInstance;
 import net.minecraft.sound.SoundEvent;
@@ -47,6 +47,6 @@ class SoundButton extends PressableWidget {
 	}
 
 	@Override
-	public void method_37020(class_6382 arg) {
+	public void appendNarrations(NarrationMessageBuilder arg) {
 	}
 }
diff --git a/fabric-screen-api-v1/src/testmod/java/net/fabricmc/fabric/test/screen/StopSoundButton.java b/fabric-screen-api-v1/src/testmod/java/net/fabricmc/fabric/test/screen/StopSoundButton.java
index 0e31bf844..91a399bd2 100644
--- a/fabric-screen-api-v1/src/testmod/java/net/fabricmc/fabric/test/screen/StopSoundButton.java
+++ b/fabric-screen-api-v1/src/testmod/java/net/fabricmc/fabric/test/screen/StopSoundButton.java
@@ -18,11 +18,11 @@ package net.fabricmc.fabric.test.screen;
 
 import com.mojang.blaze3d.systems.RenderSystem;
 
-import net.minecraft.class_6382;
 import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.gui.DrawableHelper;
 import net.minecraft.client.gui.hud.InGameHud;
 import net.minecraft.client.gui.screen.Screen;
+import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder;
 import net.minecraft.client.gui.widget.PressableWidget;
 import net.minecraft.client.util.math.MatrixStack;
 import net.minecraft.text.LiteralText;
@@ -53,6 +53,6 @@ class StopSoundButton extends PressableWidget {
 	}
 
 	@Override
-	public void method_37020(class_6382 arg) {
+	public void appendNarrations(NarrationMessageBuilder arg) {
 	}
 }
diff --git a/fabric-tool-attribute-api-v1/build.gradle b/fabric-tool-attribute-api-v1/build.gradle
index 259f0d2ed..01d2675b2 100644
--- a/fabric-tool-attribute-api-v1/build.gradle
+++ b/fabric-tool-attribute-api-v1/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-tool-attribute-api-v1"
-version = getSubprojectVersion(project, "1.2.11")
+version = getSubprojectVersion(project, "1.2.12")
 
 dependencies {
 	testmodImplementation project(path: ':fabric-object-builder-api-v1', configuration: 'dev')
diff --git a/fabric-tool-attribute-api-v1/src/main/java/net/fabricmc/fabric/mixin/tool/attribute/LivingEntityMixin.java b/fabric-tool-attribute-api-v1/src/main/java/net/fabricmc/fabric/mixin/tool/attribute/LivingEntityMixin.java
index 8da6b872d..2b7eb954f 100644
--- a/fabric-tool-attribute-api-v1/src/main/java/net/fabricmc/fabric/mixin/tool/attribute/LivingEntityMixin.java
+++ b/fabric-tool-attribute-api-v1/src/main/java/net/fabricmc/fabric/mixin/tool/attribute/LivingEntityMixin.java
@@ -44,13 +44,13 @@ public class LivingEntityMixin {
 	@Nullable
 	@Unique private EquipmentSlot slotContext = null;
 
-	@Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/attribute/AttributeContainer;removeModifiers(Lcom/google/common/collect/Multimap;)V"), method = "method_30129", locals = LocalCapture.CAPTURE_FAILHARD)
+	@Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/attribute/AttributeContainer;removeModifiers(Lcom/google/common/collect/Multimap;)V"), method = "getEquipment", locals = LocalCapture.CAPTURE_FAILHARD)
 	private void storeRemoveStackContext(CallbackInfoReturnable<Map> cir, Map map, EquipmentSlot[] var2, int var3, int var4, EquipmentSlot equipmentSlot, ItemStack oldStack, ItemStack newStack) {
 		stackContext = oldStack;
 		slotContext = equipmentSlot;
 	}
 
-	@Redirect(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/attribute/AttributeContainer;removeModifiers(Lcom/google/common/collect/Multimap;)V"), method = "method_30129")
+	@Redirect(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/attribute/AttributeContainer;removeModifiers(Lcom/google/common/collect/Multimap;)V"), method = "getEquipment")
 	private void setupRemoveModifierContext(AttributeContainer attributeContainer, Multimap<EntityAttribute, EntityAttributeModifier> oldModifiers) {
 		((ItemStackContext) (Object) stackContext).fabricToolAttributes_setContext((LivingEntity) (Object) this);
 		Multimap<EntityAttribute, EntityAttributeModifier> attributeModifiers = stackContext.getAttributeModifiers(slotContext);
@@ -58,13 +58,13 @@ public class LivingEntityMixin {
 		attributeContainer.removeModifiers(attributeModifiers);
 	}
 
-	@Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/attribute/AttributeContainer;addTemporaryModifiers(Lcom/google/common/collect/Multimap;)V"), method = "method_30129", locals = LocalCapture.CAPTURE_FAILHARD)
+	@Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/attribute/AttributeContainer;addTemporaryModifiers(Lcom/google/common/collect/Multimap;)V"), method = "getEquipment", locals = LocalCapture.CAPTURE_FAILHARD)
 	private void storeAddStackContext(CallbackInfoReturnable<Map> cir, Map map, EquipmentSlot[] var2, int var3, int var4, EquipmentSlot equipmentSlot, ItemStack oldStack, ItemStack newStack) {
 		stackContext = newStack;
 		slotContext = equipmentSlot;
 	}
 
-	@Redirect(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/attribute/AttributeContainer;addTemporaryModifiers(Lcom/google/common/collect/Multimap;)V"), method = "method_30129")
+	@Redirect(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/attribute/AttributeContainer;addTemporaryModifiers(Lcom/google/common/collect/Multimap;)V"), method = "getEquipment")
 	private void setupAddModifierContext(AttributeContainer attributeContainer, Multimap<EntityAttribute, EntityAttributeModifier> oldModifiers) {
 		((ItemStackContext) (Object) stackContext).fabricToolAttributes_setContext((LivingEntity) (Object) this);
 		Multimap<EntityAttribute, EntityAttributeModifier> attributeModifiers = stackContext.getAttributeModifiers(slotContext);