diff --git a/checkstyle.xml b/checkstyle.xml
index 3969a8e3d..60db25554 100644
--- a/checkstyle.xml
+++ b/checkstyle.xml
@@ -151,6 +151,41 @@
 		</module>
 
 		<module name="OuterTypeFilename"/>
+		<module name="PackageDeclaration"/>
+		<module name="PackageName">
+			<!-- require a package following the following structure:
+			base package name: net.fabricmc.fabric
+			+ api/implementation/mixin subpackage: api/impl/mixin
+			+ client/dedicated server/common env subpackage: client/server/<nothing>
+			+ module name subpackage, singular, may contain multiple .-separated parts
+			+ api only: module major version with v prefix (e.g. v1)
+			+ other subpackages as needed, all singular
+
+			The regex works as follows:
+			It matches (=succeeds) for one of these cases:
+			- net.fabricmc.fabric.api.client.<module-name>.v<version>[.<extra packages...>]
+			- net.fabricmc.fabric.api.server.<module-name>.v<version>[.<extra packages...>]
+			- net.fabricmc.fabric.api.<module-name>.v<version>[.<extra packages...>]
+			- net.fabricmc.fabric.(impl|mixin).client.<module-name>[.<extra packages...>]
+			- net.fabricmc.fabric.(impl|mixin).server.<module-name>[.<extra packages...>]
+			- net.fabricmc.fabric.(impl|mixin).<module-name>[.<extra packages...>]
+			- <any legacy package>
+			where <module-name> is a set of '.'-separated words, all in singular (not ending with s)
+			and <version> is a positive integer (1, 2, 3, ...)
+			and <extra packages...> is a set of '.'-separated words with all the first potentially containing digits.
+			Negative lookahead ensures that client/server can't be replaced with common disguised as the module name.
+
+			The regex is implemented in 3 parts:
+			- the net.fabricmc.fabric. prefix
+			- patterns for
+				- api packages: api + <not common> + client/server/nothing + <module-name> + 'v' + <version>
+				- impl+mixin packages : impl/mixin + <not common> + client/server/nothing + <module-name>
+				- literal legacy packages (exceptions)
+			- largely unconstained trailing subpackages
+			-->
+			<property name="format"
+			value="^net\.fabricmc\.fabric\.(api(?!\.common\.)(\.client|\.server|)(\.[a-z]+[a-rt-z])+\.v[1-9][0-9]*|(impl|mixin)(?!\.common\.)(\.client|\.server|)(\.[a-z]+[a-rt-z])+|api\.(event|util|biomes\.v1|registry|client\.screen|container|block|entity|client\.itemgroup|client\.keybinding|tag|tools|client\.model|network|server|client\.render|resource|client\.texture))(|\.[a-z]+(\.[a-z0-9]+)*)$"/>
+		</module>
 
 		<!--<module name="InvalidJavadocPosition"/>-->
 		<module name="JavadocParagraph"/>
diff --git a/fabric-api-base/build.gradle b/fabric-api-base/build.gradle
index d2df6b76f..6c5bcc115 100644
--- a/fabric-api-base/build.gradle
+++ b/fabric-api-base/build.gradle
@@ -1,2 +1,2 @@
 archivesBaseName = "fabric-api-base"
-version = getSubprojectVersion(project, "0.1.1")
+version = getSubprojectVersion(project, "0.1.2")
diff --git a/fabric-api-base/src/main/java/net/fabricmc/fabric/api/event/EventFactory.java b/fabric-api-base/src/main/java/net/fabricmc/fabric/api/event/EventFactory.java
index aab0cbbdd..b675219fd 100644
--- a/fabric-api-base/src/main/java/net/fabricmc/fabric/api/event/EventFactory.java
+++ b/fabric-api-base/src/main/java/net/fabricmc/fabric/api/event/EventFactory.java
@@ -18,7 +18,7 @@ package net.fabricmc.fabric.api.event;
 
 import java.util.function.Function;
 
-import net.fabricmc.fabric.impl.event.EventFactoryImpl;
+import net.fabricmc.fabric.impl.base.event.EventFactoryImpl;
 
 /**
  * Helper for creating {@link Event} classes.
diff --git a/fabric-api-base/src/main/java/net/fabricmc/fabric/impl/event/ArrayBackedEvent.java b/fabric-api-base/src/main/java/net/fabricmc/fabric/impl/base/event/ArrayBackedEvent.java
similarity index 97%
rename from fabric-api-base/src/main/java/net/fabricmc/fabric/impl/event/ArrayBackedEvent.java
rename to fabric-api-base/src/main/java/net/fabricmc/fabric/impl/base/event/ArrayBackedEvent.java
index 8f6b376e3..bc62e358b 100644
--- a/fabric-api-base/src/main/java/net/fabricmc/fabric/impl/event/ArrayBackedEvent.java
+++ b/fabric-api-base/src/main/java/net/fabricmc/fabric/impl/base/event/ArrayBackedEvent.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.event;
+package net.fabricmc.fabric.impl.base.event;
 
 import java.lang.reflect.Array;
 import java.util.Arrays;
diff --git a/fabric-api-base/src/main/java/net/fabricmc/fabric/impl/event/EventFactoryImpl.java b/fabric-api-base/src/main/java/net/fabricmc/fabric/impl/base/event/EventFactoryImpl.java
similarity index 98%
rename from fabric-api-base/src/main/java/net/fabricmc/fabric/impl/event/EventFactoryImpl.java
rename to fabric-api-base/src/main/java/net/fabricmc/fabric/impl/base/event/EventFactoryImpl.java
index c4419fd97..7828d32c7 100644
--- a/fabric-api-base/src/main/java/net/fabricmc/fabric/impl/event/EventFactoryImpl.java
+++ b/fabric-api-base/src/main/java/net/fabricmc/fabric/impl/base/event/EventFactoryImpl.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.event;
+package net.fabricmc.fabric.impl.base.event;
 
 import java.lang.invoke.MethodHandle;
 import java.lang.invoke.MethodHandles;
diff --git a/fabric-biomes-v1/build.gradle b/fabric-biomes-v1/build.gradle
index b89d701d9..060328b1a 100644
--- a/fabric-biomes-v1/build.gradle
+++ b/fabric-biomes-v1/build.gradle
@@ -1,2 +1,2 @@
 archivesBaseName = "fabric-biomes-v1"
-version = getSubprojectVersion(project, "0.1.2")
+version = getSubprojectVersion(project, "0.1.3")
diff --git a/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/api/biomes/v1/FabricBiomes.java b/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/api/biomes/v1/FabricBiomes.java
index 4fc72600c..401f8239d 100644
--- a/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/api/biomes/v1/FabricBiomes.java
+++ b/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/api/biomes/v1/FabricBiomes.java
@@ -18,7 +18,7 @@ package net.fabricmc.fabric.api.biomes.v1;
 
 import net.minecraft.world.biome.Biome;
 
-import net.fabricmc.fabric.impl.biomes.InternalBiomeData;
+import net.fabricmc.fabric.impl.biome.InternalBiomeData;
 
 /**
  * General API that applies to all biome sources.
diff --git a/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/api/biomes/v1/OverworldBiomes.java b/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/api/biomes/v1/OverworldBiomes.java
index 5c0cf5a1b..e7ec3c3f0 100644
--- a/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/api/biomes/v1/OverworldBiomes.java
+++ b/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/api/biomes/v1/OverworldBiomes.java
@@ -18,7 +18,7 @@ package net.fabricmc.fabric.api.biomes.v1;
 
 import net.minecraft.world.biome.Biome;
 
-import net.fabricmc.fabric.impl.biomes.InternalBiomeData;
+import net.fabricmc.fabric.impl.biome.InternalBiomeData;
 
 /**
  * API that exposes some internals of the minecraft default biome source for the overworld.
diff --git a/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biomes/BiomeVariant.java b/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biome/BiomeVariant.java
similarity index 96%
rename from fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biomes/BiomeVariant.java
rename to fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biome/BiomeVariant.java
index cf95f581e..066406c63 100644
--- a/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biomes/BiomeVariant.java
+++ b/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biome/BiomeVariant.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.biomes;
+package net.fabricmc.fabric.impl.biome;
 
 import net.minecraft.world.biome.Biome;
 
diff --git a/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biomes/ContinentalBiomeEntry.java b/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biome/ContinentalBiomeEntry.java
similarity index 97%
rename from fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biomes/ContinentalBiomeEntry.java
rename to fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biome/ContinentalBiomeEntry.java
index dbefa3836..a9008f0ea 100644
--- a/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biomes/ContinentalBiomeEntry.java
+++ b/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biome/ContinentalBiomeEntry.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.biomes;
+package net.fabricmc.fabric.impl.biome;
 
 import net.minecraft.world.biome.Biome;
 
diff --git a/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biomes/InternalBiomeData.java b/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biome/InternalBiomeData.java
similarity index 99%
rename from fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biomes/InternalBiomeData.java
rename to fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biome/InternalBiomeData.java
index 268de271c..dbcaa4666 100644
--- a/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biomes/InternalBiomeData.java
+++ b/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biome/InternalBiomeData.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.biomes;
+package net.fabricmc.fabric.impl.biome;
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
diff --git a/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biomes/InternalBiomeUtils.java b/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biome/InternalBiomeUtils.java
similarity index 99%
rename from fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biomes/InternalBiomeUtils.java
rename to fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biome/InternalBiomeUtils.java
index 74fee8852..125e56537 100644
--- a/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biomes/InternalBiomeUtils.java
+++ b/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biome/InternalBiomeUtils.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.biomes;
+package net.fabricmc.fabric.impl.biome;
 
 import java.util.List;
 import java.util.Map;
diff --git a/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biomes/VariantTransformer.java b/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biome/VariantTransformer.java
similarity index 98%
rename from fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biomes/VariantTransformer.java
rename to fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biome/VariantTransformer.java
index d7612d74f..633d16046 100644
--- a/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biomes/VariantTransformer.java
+++ b/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biome/VariantTransformer.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.biomes;
+package net.fabricmc.fabric.impl.biome;
 
 import java.util.ArrayList;
 import java.util.HashMap;
diff --git a/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biomes/WeightedBiomePicker.java b/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biome/WeightedBiomePicker.java
similarity index 98%
rename from fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biomes/WeightedBiomePicker.java
rename to fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biome/WeightedBiomePicker.java
index 127943db0..6c7a7f0e2 100644
--- a/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biomes/WeightedBiomePicker.java
+++ b/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/impl/biome/WeightedBiomePicker.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.biomes;
+package net.fabricmc.fabric.impl.biome;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biomes/MixinAddEdgeBiomesLayer.java b/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biome/MixinAddEdgeBiomesLayer.java
similarity index 93%
rename from fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biomes/MixinAddEdgeBiomesLayer.java
rename to fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biome/MixinAddEdgeBiomesLayer.java
index 263ff3d67..d13cb1b90 100644
--- a/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biomes/MixinAddEdgeBiomesLayer.java
+++ b/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biome/MixinAddEdgeBiomesLayer.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.biomes;
+package net.fabricmc.fabric.mixin.biome;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.injection.At;
@@ -27,8 +27,8 @@ import net.minecraft.world.biome.layer.AddEdgeBiomesLayer;
 import net.minecraft.world.biome.layer.LayerRandomnessSource;
 
 import net.fabricmc.fabric.api.biomes.v1.OverworldBiomes;
-import net.fabricmc.fabric.impl.biomes.InternalBiomeData;
-import net.fabricmc.fabric.impl.biomes.InternalBiomeUtils;
+import net.fabricmc.fabric.impl.biome.InternalBiomeData;
+import net.fabricmc.fabric.impl.biome.InternalBiomeUtils;
 
 /**
  * Adds edges and shores specified in {@link OverworldBiomes#addEdgeBiome(Biome, Biome, double)} and {@link OverworldBiomes#addShoreBiome(Biome, Biome, double)} to the edges layer.
diff --git a/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biomes/MixinAddHillsLayer.java b/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biome/MixinAddHillsLayer.java
similarity index 95%
rename from fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biomes/MixinAddHillsLayer.java
rename to fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biome/MixinAddHillsLayer.java
index 4393fd368..2fe890bf0 100644
--- a/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biomes/MixinAddHillsLayer.java
+++ b/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biome/MixinAddHillsLayer.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.biomes;
+package net.fabricmc.fabric.mixin.biome;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.injection.At;
@@ -29,8 +29,8 @@ import net.minecraft.world.biome.layer.LayerRandomnessSource;
 import net.minecraft.world.biome.layer.LayerSampler;
 
 import net.fabricmc.fabric.api.biomes.v1.OverworldBiomes;
-import net.fabricmc.fabric.impl.biomes.InternalBiomeData;
-import net.fabricmc.fabric.impl.biomes.WeightedBiomePicker;
+import net.fabricmc.fabric.impl.biome.InternalBiomeData;
+import net.fabricmc.fabric.impl.biome.WeightedBiomePicker;
 
 /**
  * Injects hills biomes specified from {@link OverworldBiomes#addHillsBiome(Biome, Biome, double)}into the default hills layer.
diff --git a/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biomes/MixinAddRiversLayer.java b/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biome/MixinAddRiversLayer.java
similarity index 95%
rename from fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biomes/MixinAddRiversLayer.java
rename to fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biome/MixinAddRiversLayer.java
index 345205a53..15d59035a 100644
--- a/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biomes/MixinAddRiversLayer.java
+++ b/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biome/MixinAddRiversLayer.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.biomes;
+package net.fabricmc.fabric.mixin.biome;
 
 import java.util.Map;
 
@@ -32,7 +32,7 @@ import net.minecraft.world.biome.layer.LayerRandomnessSource;
 import net.minecraft.world.biome.layer.LayerSampler;
 
 import net.fabricmc.fabric.api.biomes.v1.OverworldBiomes;
-import net.fabricmc.fabric.impl.biomes.InternalBiomeData;
+import net.fabricmc.fabric.impl.biome.InternalBiomeData;
 
 /**
  * Sets river biomes specified with {@link OverworldBiomes#setRiverBiome(Biome, Biome)}.
diff --git a/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biomes/MixinBiomeSource.java b/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biome/MixinBiomeSource.java
similarity index 94%
rename from fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biomes/MixinBiomeSource.java
rename to fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biome/MixinBiomeSource.java
index a7b4b7e95..418d66006 100644
--- a/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biomes/MixinBiomeSource.java
+++ b/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biome/MixinBiomeSource.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.biomes;
+package net.fabricmc.fabric.mixin.biome;
 
 import java.util.ArrayList;
 import java.util.LinkedHashSet;
@@ -31,7 +31,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
 import net.minecraft.world.biome.Biome;
 import net.minecraft.world.biome.source.BiomeSource;
 
-import net.fabricmc.fabric.impl.biomes.InternalBiomeData;
+import net.fabricmc.fabric.impl.biome.InternalBiomeData;
 
 /**
  * Adds spawn biomes to the base {@link BiomeSource} class.
diff --git a/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biomes/MixinSetBaseBiomesLayer.java b/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biome/MixinSetBaseBiomesLayer.java
similarity index 97%
rename from fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biomes/MixinSetBaseBiomesLayer.java
rename to fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biome/MixinSetBaseBiomesLayer.java
index 4e8fd29ab..2303a1391 100644
--- a/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biomes/MixinSetBaseBiomesLayer.java
+++ b/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biome/MixinSetBaseBiomesLayer.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.biomes;
+package net.fabricmc.fabric.mixin.biome;
 
 import org.spongepowered.asm.mixin.Final;
 import org.spongepowered.asm.mixin.Mixin;
@@ -30,7 +30,7 @@ import net.minecraft.world.biome.layer.LayerRandomnessSource;
 import net.minecraft.world.biome.layer.SetBaseBiomesLayer;
 
 import net.fabricmc.fabric.api.biomes.v1.OverworldClimate;
-import net.fabricmc.fabric.impl.biomes.InternalBiomeUtils;
+import net.fabricmc.fabric.impl.biome.InternalBiomeUtils;
 
 /**
  * Injects biomes into the arrays of biomes in the {@link SetBaseBiomesLayer}.
diff --git a/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biomes/MixinVanillaLayeredBiomeSource.java b/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biome/MixinVanillaLayeredBiomeSource.java
similarity index 97%
rename from fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biomes/MixinVanillaLayeredBiomeSource.java
rename to fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biome/MixinVanillaLayeredBiomeSource.java
index 1e65b8fd1..ad79b8bb9 100644
--- a/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biomes/MixinVanillaLayeredBiomeSource.java
+++ b/fabric-biomes-v1/src/main/java/net/fabricmc/fabric/mixin/biome/MixinVanillaLayeredBiomeSource.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.biomes;
+package net.fabricmc.fabric.mixin.biome;
 
 import java.util.HashSet;
 import java.util.Set;
diff --git a/fabric-biomes-v1/src/main/resources/fabric-biomes-v1.mixins.json b/fabric-biomes-v1/src/main/resources/fabric-biomes-v1.mixins.json
index 9a6595f5f..f8eb0be49 100644
--- a/fabric-biomes-v1/src/main/resources/fabric-biomes-v1.mixins.json
+++ b/fabric-biomes-v1/src/main/resources/fabric-biomes-v1.mixins.json
@@ -1,6 +1,6 @@
 {
   "required": true,
-  "package": "net.fabricmc.fabric.mixin.biomes",
+  "package": "net.fabricmc.fabric.mixin.biome",
   "compatibilityLevel": "JAVA_8",
   "mixins": [
     "MixinAddEdgeBiomesLayer",
diff --git a/fabric-commands-v0/build.gradle b/fabric-commands-v0/build.gradle
index f8d601fa3..942c0fe87 100644
--- a/fabric-commands-v0/build.gradle
+++ b/fabric-commands-v0/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-commands-v0"
-version = getSubprojectVersion(project, "0.1.1")
+version = getSubprojectVersion(project, "0.1.2")
 
 dependencies {
 	compile project(path: ':fabric-api-base', configuration: 'dev')
diff --git a/fabric-commands-v0/src/main/java/net/fabricmc/fabric/api/registry/CommandRegistry.java b/fabric-commands-v0/src/main/java/net/fabricmc/fabric/api/registry/CommandRegistry.java
index 73d78ca22..a2d3eabf3 100644
--- a/fabric-commands-v0/src/main/java/net/fabricmc/fabric/api/registry/CommandRegistry.java
+++ b/fabric-commands-v0/src/main/java/net/fabricmc/fabric/api/registry/CommandRegistry.java
@@ -22,7 +22,7 @@ import com.mojang.brigadier.CommandDispatcher;
 
 import net.minecraft.server.command.ServerCommandSource;
 
-import net.fabricmc.fabric.impl.registry.CommandRegistryImpl;
+import net.fabricmc.fabric.impl.command.CommandRegistryImpl;
 
 /**
  * Registry for server-side command providers.
diff --git a/fabric-commands-v0/src/main/java/net/fabricmc/fabric/impl/registry/CommandRegistryImpl.java b/fabric-commands-v0/src/main/java/net/fabricmc/fabric/impl/command/CommandRegistryImpl.java
similarity index 97%
rename from fabric-commands-v0/src/main/java/net/fabricmc/fabric/impl/registry/CommandRegistryImpl.java
rename to fabric-commands-v0/src/main/java/net/fabricmc/fabric/impl/command/CommandRegistryImpl.java
index 5c4ea5254..a58cd352c 100644
--- a/fabric-commands-v0/src/main/java/net/fabricmc/fabric/impl/registry/CommandRegistryImpl.java
+++ b/fabric-commands-v0/src/main/java/net/fabricmc/fabric/impl/command/CommandRegistryImpl.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.registry;
+package net.fabricmc.fabric.impl.command;
 
 import java.util.ArrayList;
 import java.util.Collections;
diff --git a/fabric-commands-v0/src/main/java/net/fabricmc/fabric/mixin/registrycommands/MixinCommandManagerIntegrated.java b/fabric-commands-v0/src/main/java/net/fabricmc/fabric/mixin/command/MixinCommandManagerIntegrated.java
similarity index 92%
rename from fabric-commands-v0/src/main/java/net/fabricmc/fabric/mixin/registrycommands/MixinCommandManagerIntegrated.java
rename to fabric-commands-v0/src/main/java/net/fabricmc/fabric/mixin/command/MixinCommandManagerIntegrated.java
index a406a3ac1..647840388 100644
--- a/fabric-commands-v0/src/main/java/net/fabricmc/fabric/mixin/registrycommands/MixinCommandManagerIntegrated.java
+++ b/fabric-commands-v0/src/main/java/net/fabricmc/fabric/mixin/command/MixinCommandManagerIntegrated.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.registrycommands;
+package net.fabricmc.fabric.mixin.command;
 
 import com.mojang.brigadier.CommandDispatcher;
 import org.spongepowered.asm.mixin.Mixin;
@@ -26,7 +26,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
 import net.minecraft.server.command.CommandManager;
 import net.minecraft.server.command.ServerCommandSource;
 
-import net.fabricmc.fabric.impl.registry.CommandRegistryImpl;
+import net.fabricmc.fabric.impl.command.CommandRegistryImpl;
 
 @Mixin(CommandManager.class)
 public class MixinCommandManagerIntegrated {
diff --git a/fabric-commands-v0/src/main/java/net/fabricmc/fabric/mixin/registrycommands/MixinMinecraftDedicatedServer.java b/fabric-commands-v0/src/main/java/net/fabricmc/fabric/mixin/command/MixinMinecraftDedicatedServer.java
similarity index 95%
rename from fabric-commands-v0/src/main/java/net/fabricmc/fabric/mixin/registrycommands/MixinMinecraftDedicatedServer.java
rename to fabric-commands-v0/src/main/java/net/fabricmc/fabric/mixin/command/MixinMinecraftDedicatedServer.java
index e173a770d..5a8f7eade 100644
--- a/fabric-commands-v0/src/main/java/net/fabricmc/fabric/mixin/registrycommands/MixinMinecraftDedicatedServer.java
+++ b/fabric-commands-v0/src/main/java/net/fabricmc/fabric/mixin/command/MixinMinecraftDedicatedServer.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.registrycommands;
+package net.fabricmc.fabric.mixin.command;
 
 import java.io.File;
 import java.net.Proxy;
@@ -34,7 +34,7 @@ import net.minecraft.server.command.CommandManager;
 import net.minecraft.server.dedicated.MinecraftDedicatedServer;
 import net.minecraft.util.UserCache;
 
-import net.fabricmc.fabric.impl.registry.CommandRegistryImpl;
+import net.fabricmc.fabric.impl.command.CommandRegistryImpl;
 
 @Mixin(MinecraftDedicatedServer.class)
 public abstract class MixinMinecraftDedicatedServer extends MinecraftServer {
diff --git a/fabric-commands-v0/src/main/resources/fabric-commands-v0.mixins.json b/fabric-commands-v0/src/main/resources/fabric-commands-v0.mixins.json
index 0dba0c103..be411a936 100644
--- a/fabric-commands-v0/src/main/resources/fabric-commands-v0.mixins.json
+++ b/fabric-commands-v0/src/main/resources/fabric-commands-v0.mixins.json
@@ -1,6 +1,6 @@
 {
   "required": true,
-  "package": "net.fabricmc.fabric.mixin.registrycommands",
+  "package": "net.fabricmc.fabric.mixin.command",
   "compatibilityLevel": "JAVA_8",
   "mixins": [
     "MixinMinecraftDedicatedServer"
diff --git a/fabric-containers-v0/build.gradle b/fabric-containers-v0/build.gradle
index ff41aba3c..8e4307ef9 100644
--- a/fabric-containers-v0/build.gradle
+++ b/fabric-containers-v0/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-containers-v0"
-version = getSubprojectVersion(project, "0.1.2")
+version = getSubprojectVersion(project, "0.1.3")
 
 dependencies {
 	compile project(path: ':fabric-api-base', configuration: 'dev')
diff --git a/fabric-containers-v0/src/main/java/net/fabricmc/fabric/api/client/screen/ScreenProviderRegistry.java b/fabric-containers-v0/src/main/java/net/fabricmc/fabric/api/client/screen/ScreenProviderRegistry.java
index 273ae87ca..5cfae52de 100644
--- a/fabric-containers-v0/src/main/java/net/fabricmc/fabric/api/client/screen/ScreenProviderRegistry.java
+++ b/fabric-containers-v0/src/main/java/net/fabricmc/fabric/api/client/screen/ScreenProviderRegistry.java
@@ -22,7 +22,7 @@ import net.minecraft.util.Identifier;
 
 import net.fabricmc.fabric.api.container.ContainerFactory;
 import net.fabricmc.fabric.api.container.ContainerProviderRegistry;
-import net.fabricmc.fabric.impl.client.gui.ScreenProviderRegistryImpl;
+import net.fabricmc.fabric.impl.client.container.ScreenProviderRegistryImpl;
 
 public interface ScreenProviderRegistry {
 	ScreenProviderRegistry INSTANCE = ScreenProviderRegistryImpl.INSTANCE;
diff --git a/fabric-containers-v0/src/main/java/net/fabricmc/fabric/impl/client/gui/ScreenProviderRegistryImpl.java b/fabric-containers-v0/src/main/java/net/fabricmc/fabric/impl/client/container/ScreenProviderRegistryImpl.java
similarity index 96%
rename from fabric-containers-v0/src/main/java/net/fabricmc/fabric/impl/client/gui/ScreenProviderRegistryImpl.java
rename to fabric-containers-v0/src/main/java/net/fabricmc/fabric/impl/client/container/ScreenProviderRegistryImpl.java
index 5d6f731d1..50670128b 100644
--- a/fabric-containers-v0/src/main/java/net/fabricmc/fabric/impl/client/gui/ScreenProviderRegistryImpl.java
+++ b/fabric-containers-v0/src/main/java/net/fabricmc/fabric/impl/client/container/ScreenProviderRegistryImpl.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.client.gui;
+package net.fabricmc.fabric.impl.client.container;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -32,7 +32,7 @@ import net.fabricmc.fabric.api.client.screen.ScreenProviderRegistry;
 import net.fabricmc.fabric.api.container.ContainerFactory;
 import net.fabricmc.fabric.api.network.ClientSidePacketRegistry;
 import net.fabricmc.fabric.impl.container.ContainerProviderImpl;
-import net.fabricmc.fabric.impl.network.PacketTypes;
+import net.fabricmc.fabric.impl.networking.PacketTypes;
 
 public class ScreenProviderRegistryImpl implements ScreenProviderRegistry {
 	/**
diff --git a/fabric-containers-v0/src/main/java/net/fabricmc/fabric/impl/container/ContainerProviderImpl.java b/fabric-containers-v0/src/main/java/net/fabricmc/fabric/impl/container/ContainerProviderImpl.java
index bee66c381..dd6c15f22 100644
--- a/fabric-containers-v0/src/main/java/net/fabricmc/fabric/impl/container/ContainerProviderImpl.java
+++ b/fabric-containers-v0/src/main/java/net/fabricmc/fabric/impl/container/ContainerProviderImpl.java
@@ -33,7 +33,7 @@ import net.minecraft.util.PacketByteBuf;
 
 import net.fabricmc.fabric.api.container.ContainerFactory;
 import net.fabricmc.fabric.api.container.ContainerProviderRegistry;
-import net.fabricmc.fabric.impl.network.PacketTypes;
+import net.fabricmc.fabric.impl.networking.PacketTypes;
 import net.fabricmc.fabric.mixin.container.ServerPlayerEntityAccessor;
 
 public class ContainerProviderImpl implements ContainerProviderRegistry {
diff --git a/fabric-containers-v0/src/main/resources/fabric.mod.json b/fabric-containers-v0/src/main/resources/fabric.mod.json
index bc395d37c..765b3500e 100644
--- a/fabric-containers-v0/src/main/resources/fabric.mod.json
+++ b/fabric-containers-v0/src/main/resources/fabric.mod.json
@@ -27,7 +27,7 @@
   ],
   "entrypoints": {
     "client": [
-      "net.fabricmc.fabric.impl.client.gui.ScreenProviderRegistryImpl::init"
+      "net.fabricmc.fabric.impl.client.container.ScreenProviderRegistryImpl::init"
     ]
   }
 }
diff --git a/fabric-content-registries-v0/build.gradle b/fabric-content-registries-v0/build.gradle
index 49c764f9b..ad963d70b 100644
--- a/fabric-content-registries-v0/build.gradle
+++ b/fabric-content-registries-v0/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-content-registries-v0"
-version = getSubprojectVersion(project, "0.1.2")
+version = getSubprojectVersion(project, "0.1.3")
 
 dependencies {
 	compile project(path: ':fabric-api-base', configuration: 'dev')
diff --git a/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/registry/CompostingChanceRegistry.java b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/registry/CompostingChanceRegistry.java
index 9d8b5b499..55849255b 100644
--- a/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/registry/CompostingChanceRegistry.java
+++ b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/registry/CompostingChanceRegistry.java
@@ -17,7 +17,7 @@
 package net.fabricmc.fabric.api.registry;
 
 import net.fabricmc.fabric.api.util.Item2ObjectMap;
-import net.fabricmc.fabric.impl.registry.CompostingChanceRegistryImpl;
+import net.fabricmc.fabric.impl.content.registry.CompostingChanceRegistryImpl;
 
 /**
  * Registry of items to 0.0-1.0 values, defining the chance of a given item
diff --git a/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/registry/FlammableBlockRegistry.java b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/registry/FlammableBlockRegistry.java
index 83eb76c2e..b848b0465 100644
--- a/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/registry/FlammableBlockRegistry.java
+++ b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/registry/FlammableBlockRegistry.java
@@ -21,7 +21,7 @@ import net.minecraft.block.Blocks;
 import net.minecraft.tag.Tag;
 
 import net.fabricmc.fabric.api.util.Block2ObjectMap;
-import net.fabricmc.fabric.impl.registry.FlammableBlockRegistryImpl;
+import net.fabricmc.fabric.impl.content.registry.FlammableBlockRegistryImpl;
 
 public interface FlammableBlockRegistry extends Block2ObjectMap<FlammableBlockRegistry.Entry> {
 	static FlammableBlockRegistry getDefaultInstance() {
diff --git a/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/registry/FuelRegistry.java b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/registry/FuelRegistry.java
index 7698988ac..9e716754a 100644
--- a/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/registry/FuelRegistry.java
+++ b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/registry/FuelRegistry.java
@@ -17,7 +17,7 @@
 package net.fabricmc.fabric.api.registry;
 
 import net.fabricmc.fabric.api.util.Item2ObjectMap;
-import net.fabricmc.fabric.impl.registry.FuelRegistryImpl;
+import net.fabricmc.fabric.impl.content.registry.FuelRegistryImpl;
 
 /**
  * Registry of items to 0-32767 fuel burn time values, in in-game ticks.
diff --git a/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/registry/LootEntryTypeRegistry.java b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/registry/LootEntryTypeRegistry.java
index 5fc73d710..2a6da3d52 100644
--- a/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/registry/LootEntryTypeRegistry.java
+++ b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/registry/LootEntryTypeRegistry.java
@@ -18,7 +18,7 @@ package net.fabricmc.fabric.api.registry;
 
 import net.minecraft.loot.entry.LootEntry;
 
-import net.fabricmc.fabric.impl.registry.LootEntryTypeRegistryImpl;
+import net.fabricmc.fabric.impl.content.registry.LootEntryTypeRegistryImpl;
 
 /**
  * @deprecated Use {@link net.fabricmc.fabric.api.loot.v1.LootEntryTypeRegistry}
diff --git a/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/registry/CompostingChanceRegistryImpl.java b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/content/registry/CompostingChanceRegistryImpl.java
similarity index 97%
rename from fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/registry/CompostingChanceRegistryImpl.java
rename to fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/content/registry/CompostingChanceRegistryImpl.java
index bd893cc91..3d416979d 100644
--- a/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/registry/CompostingChanceRegistryImpl.java
+++ b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/content/registry/CompostingChanceRegistryImpl.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.registry;
+package net.fabricmc.fabric.impl.content.registry;
 
 import net.minecraft.block.ComposterBlock;
 import net.minecraft.item.Item;
diff --git a/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/registry/FireBlockHooks.java b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/content/registry/FireBlockHooks.java
similarity index 94%
rename from fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/registry/FireBlockHooks.java
rename to fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/content/registry/FireBlockHooks.java
index e5e407f3b..9283c308c 100644
--- a/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/registry/FireBlockHooks.java
+++ b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/content/registry/FireBlockHooks.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.registry;
+package net.fabricmc.fabric.impl.content.registry;
 
 import net.minecraft.block.BlockState;
 
diff --git a/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/registry/FlammableBlockRegistryImpl.java b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/content/registry/FlammableBlockRegistryImpl.java
similarity index 98%
rename from fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/registry/FlammableBlockRegistryImpl.java
rename to fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/content/registry/FlammableBlockRegistryImpl.java
index 64e7ce57f..4a42c48d0 100644
--- a/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/registry/FlammableBlockRegistryImpl.java
+++ b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/content/registry/FlammableBlockRegistryImpl.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.registry;
+package net.fabricmc.fabric.impl.content.registry;
 
 import java.util.Collection;
 import java.util.Collections;
diff --git a/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/registry/FuelRegistryImpl.java b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/content/registry/FuelRegistryImpl.java
similarity index 98%
rename from fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/registry/FuelRegistryImpl.java
rename to fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/content/registry/FuelRegistryImpl.java
index cfb132dde..f5c69b480 100644
--- a/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/registry/FuelRegistryImpl.java
+++ b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/content/registry/FuelRegistryImpl.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.registry;
+package net.fabricmc.fabric.impl.content.registry;
 
 import java.util.Map;
 
diff --git a/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/registry/LootEntryTypeRegistryImpl.java b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/content/registry/LootEntryTypeRegistryImpl.java
similarity index 97%
rename from fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/registry/LootEntryTypeRegistryImpl.java
rename to fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/content/registry/LootEntryTypeRegistryImpl.java
index fc337747f..5e77c3e64 100644
--- a/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/registry/LootEntryTypeRegistryImpl.java
+++ b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/content/registry/LootEntryTypeRegistryImpl.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.registry;
+package net.fabricmc.fabric.impl.content.registry;
 
 import java.lang.reflect.Method;
 
diff --git a/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/mixin/registryextras/MixinAbstractFurnaceBlockEntity.java b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/mixin/content/registry/MixinAbstractFurnaceBlockEntity.java
similarity index 91%
rename from fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/mixin/registryextras/MixinAbstractFurnaceBlockEntity.java
rename to fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/mixin/content/registry/MixinAbstractFurnaceBlockEntity.java
index 97ca3df23..cb918ef5d 100644
--- a/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/mixin/registryextras/MixinAbstractFurnaceBlockEntity.java
+++ b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/mixin/content/registry/MixinAbstractFurnaceBlockEntity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.registryextras;
+package net.fabricmc.fabric.mixin.content.registry;
 
 import java.util.Map;
 
@@ -26,7 +26,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
 import net.minecraft.block.entity.AbstractFurnaceBlockEntity;
 import net.minecraft.item.Item;
 
-import net.fabricmc.fabric.impl.registry.FuelRegistryImpl;
+import net.fabricmc.fabric.impl.content.registry.FuelRegistryImpl;
 
 @Mixin(AbstractFurnaceBlockEntity.class)
 public class MixinAbstractFurnaceBlockEntity {
diff --git a/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/mixin/registryextras/MixinFireBlock.java b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/mixin/content/registry/MixinFireBlock.java
similarity index 93%
rename from fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/mixin/registryextras/MixinFireBlock.java
rename to fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/mixin/content/registry/MixinFireBlock.java
index bd39e0f7a..b011d1151 100644
--- a/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/mixin/registryextras/MixinFireBlock.java
+++ b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/mixin/content/registry/MixinFireBlock.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.registryextras;
+package net.fabricmc.fabric.mixin.content.registry;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Shadow;
@@ -29,8 +29,8 @@ import net.minecraft.block.FireBlock;
 import net.minecraft.state.property.Properties;
 
 import net.fabricmc.fabric.api.registry.FlammableBlockRegistry;
-import net.fabricmc.fabric.impl.registry.FireBlockHooks;
-import net.fabricmc.fabric.impl.registry.FlammableBlockRegistryImpl;
+import net.fabricmc.fabric.impl.content.registry.FireBlockHooks;
+import net.fabricmc.fabric.impl.content.registry.FlammableBlockRegistryImpl;
 
 @Mixin(FireBlock.class)
 public class MixinFireBlock implements FireBlockHooks {
diff --git a/fabric-content-registries-v0/src/main/resources/fabric-content-registries-v0.mixins.json b/fabric-content-registries-v0/src/main/resources/fabric-content-registries-v0.mixins.json
index b63f2c3ca..505cc89f2 100644
--- a/fabric-content-registries-v0/src/main/resources/fabric-content-registries-v0.mixins.json
+++ b/fabric-content-registries-v0/src/main/resources/fabric-content-registries-v0.mixins.json
@@ -1,6 +1,6 @@
 {
   "required": true,
-  "package": "net.fabricmc.fabric.mixin.registryextras",
+  "package": "net.fabricmc.fabric.mixin.content.registry",
   "compatibilityLevel": "JAVA_8",
   "mixins": [
     "MixinAbstractFurnaceBlockEntity",
diff --git a/fabric-crash-report-info-v1/build.gradle b/fabric-crash-report-info-v1/build.gradle
index 12db0f094..e0a4046fc 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.1")
+version = getSubprojectVersion(project, "0.1.2")
diff --git a/fabric-crash-report-info-v1/src/main/java/net/fabricmc/fabric/mixin/crash/MixinCrashReport.java b/fabric-crash-report-info-v1/src/main/java/net/fabricmc/fabric/mixin/crash/report/info/MixinCrashReport.java
similarity index 97%
rename from fabric-crash-report-info-v1/src/main/java/net/fabricmc/fabric/mixin/crash/MixinCrashReport.java
rename to fabric-crash-report-info-v1/src/main/java/net/fabricmc/fabric/mixin/crash/report/info/MixinCrashReport.java
index 9f5ba2f88..cc6adf6b2 100644
--- a/fabric-crash-report-info-v1/src/main/java/net/fabricmc/fabric/mixin/crash/MixinCrashReport.java
+++ b/fabric-crash-report-info-v1/src/main/java/net/fabricmc/fabric/mixin/crash/report/info/MixinCrashReport.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.crash;
+package net.fabricmc.fabric.mixin.crash.report.info;
 
 import java.util.Map;
 import java.util.TreeMap;
diff --git a/fabric-crash-report-info-v1/src/main/resources/fabric-crash-report-info-v1.mixins.json b/fabric-crash-report-info-v1/src/main/resources/fabric-crash-report-info-v1.mixins.json
index ab5a73cd3..c711eebbf 100644
--- a/fabric-crash-report-info-v1/src/main/resources/fabric-crash-report-info-v1.mixins.json
+++ b/fabric-crash-report-info-v1/src/main/resources/fabric-crash-report-info-v1.mixins.json
@@ -1,6 +1,6 @@
 {
   "required": true,
-  "package": "net.fabricmc.fabric.mixin.crash",
+  "package": "net.fabricmc.fabric.mixin.crash.report.info",
   "compatibilityLevel": "JAVA_8",
   "mixins": [
     "MixinCrashReport"
diff --git a/fabric-dimensions-v1/build.gradle b/fabric-dimensions-v1/build.gradle
index abceed9fe..2369f8b3b 100644
--- a/fabric-dimensions-v1/build.gradle
+++ b/fabric-dimensions-v1/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-dimensions-v1"
-version = getSubprojectVersion(project, "0.2.1")
+version = getSubprojectVersion(project, "0.2.2")
 
 dependencies {
 	compile project(path: ':fabric-api-base', configuration: 'dev')
diff --git a/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/impl/dimension/DimensionIdsFixer.java b/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/impl/dimension/DimensionIdsFixer.java
index e4d5a224c..57d0df726 100644
--- a/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/impl/dimension/DimensionIdsFixer.java
+++ b/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/impl/dimension/DimensionIdsFixer.java
@@ -35,7 +35,7 @@ import net.minecraft.world.level.LevelProperties;
 
 import net.fabricmc.fabric.api.dimension.v1.FabricDimensionType;
 import net.fabricmc.fabric.api.network.ServerSidePacketRegistry;
-import net.fabricmc.fabric.impl.registry.RemapException;
+import net.fabricmc.fabric.impl.registry.sync.RemapException;
 
 /**
  * Handles fixing raw dimension ids between saves and servers,
diff --git a/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/impl/dimension/DimensionRemapException.java b/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/impl/dimension/DimensionRemapException.java
index 65b7c6302..defd7786e 100644
--- a/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/impl/dimension/DimensionRemapException.java
+++ b/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/impl/dimension/DimensionRemapException.java
@@ -16,7 +16,7 @@
 
 package net.fabricmc.fabric.impl.dimension;
 
-import net.fabricmc.fabric.impl.registry.RemapException;
+import net.fabricmc.fabric.impl.registry.sync.RemapException;
 
 public class DimensionRemapException extends RuntimeException {
 	public DimensionRemapException(String message, RemapException cause) {
diff --git a/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/impl/dimension/FabricDimensionClientInit.java b/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/impl/dimension/FabricDimensionClientInit.java
index a2f229a94..eafb49319 100644
--- a/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/impl/dimension/FabricDimensionClientInit.java
+++ b/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/impl/dimension/FabricDimensionClientInit.java
@@ -26,7 +26,7 @@ import net.minecraft.text.LiteralText;
 
 import net.fabricmc.fabric.api.network.ClientSidePacketRegistry;
 import net.fabricmc.fabric.api.network.PacketContext;
-import net.fabricmc.fabric.impl.registry.RemapException;
+import net.fabricmc.fabric.impl.registry.sync.RemapException;
 
 /**
  * Client entry point for fabric-dimensions.
diff --git a/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/impl/dimension/FabricDimensionInternals.java b/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/impl/dimension/FabricDimensionInternals.java
index 359dc3375..3c738bc79 100644
--- a/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/impl/dimension/FabricDimensionInternals.java
+++ b/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/impl/dimension/FabricDimensionInternals.java
@@ -29,7 +29,7 @@ import net.minecraft.world.dimension.DimensionType;
 import net.fabricmc.fabric.api.dimension.v1.EntityPlacer;
 import net.fabricmc.fabric.api.dimension.v1.FabricDimensionType;
 import net.fabricmc.fabric.api.dimension.v1.FabricDimensions;
-import net.fabricmc.fabric.mixin.EntityHooks;
+import net.fabricmc.fabric.mixin.dimension.EntityHooks;
 
 public final class FabricDimensionInternals {
 	private FabricDimensionInternals() {
diff --git a/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/EntityHooks.java b/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/dimension/EntityHooks.java
similarity index 95%
rename from fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/EntityHooks.java
rename to fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/dimension/EntityHooks.java
index 68a012ceb..8110c49b7 100644
--- a/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/EntityHooks.java
+++ b/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/dimension/EntityHooks.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin;
+package net.fabricmc.fabric.mixin.dimension;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.gen.Accessor;
diff --git a/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/MixinEntity.java b/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/dimension/MixinEntity.java
similarity index 97%
rename from fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/MixinEntity.java
rename to fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/dimension/MixinEntity.java
index a2a4fdc85..725fee8a7 100644
--- a/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/MixinEntity.java
+++ b/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/dimension/MixinEntity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin;
+package net.fabricmc.fabric.mixin.dimension;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.injection.At;
diff --git a/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/MixinPortalForcer.java b/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/dimension/MixinPortalForcer.java
similarity index 97%
rename from fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/MixinPortalForcer.java
rename to fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/dimension/MixinPortalForcer.java
index 1b63dbc53..d9a33d768 100644
--- a/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/MixinPortalForcer.java
+++ b/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/dimension/MixinPortalForcer.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin;
+package net.fabricmc.fabric.mixin.dimension;
 
 import org.spongepowered.asm.mixin.Final;
 import org.spongepowered.asm.mixin.Mixin;
diff --git a/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/idremap/MixinDimensionRawIndexFix.java b/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/dimension/idremap/MixinDimensionRawIndexFix.java
similarity index 96%
rename from fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/idremap/MixinDimensionRawIndexFix.java
rename to fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/dimension/idremap/MixinDimensionRawIndexFix.java
index 66b75e67e..4b728cf74 100644
--- a/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/idremap/MixinDimensionRawIndexFix.java
+++ b/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/dimension/idremap/MixinDimensionRawIndexFix.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.idremap;
+package net.fabricmc.fabric.mixin.dimension.idremap;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.injection.At;
diff --git a/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/idremap/MixinLevelProperties.java b/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/dimension/idremap/MixinLevelProperties.java
similarity index 95%
rename from fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/idremap/MixinLevelProperties.java
rename to fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/dimension/idremap/MixinLevelProperties.java
index 4828b30d5..80b4cacd1 100644
--- a/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/idremap/MixinLevelProperties.java
+++ b/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/dimension/idremap/MixinLevelProperties.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.idremap;
+package net.fabricmc.fabric.mixin.dimension.idremap;
 
 import com.mojang.datafixers.DataFixer;
 import org.spongepowered.asm.mixin.Mixin;
@@ -29,7 +29,7 @@ import net.minecraft.world.level.LevelProperties;
 import net.fabricmc.fabric.impl.dimension.DimensionIdsFixer;
 import net.fabricmc.fabric.impl.dimension.DimensionIdsHolder;
 import net.fabricmc.fabric.impl.dimension.DimensionRemapException;
-import net.fabricmc.fabric.impl.registry.RemapException;
+import net.fabricmc.fabric.impl.registry.sync.RemapException;
 
 @Mixin(LevelProperties.class)
 public abstract class MixinLevelProperties implements DimensionIdsHolder {
diff --git a/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/idremap/MixinLevelStorage.java b/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/dimension/idremap/MixinLevelStorage.java
similarity index 96%
rename from fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/idremap/MixinLevelStorage.java
rename to fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/dimension/idremap/MixinLevelStorage.java
index ca52d8bef..cc1fcf8b9 100644
--- a/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/idremap/MixinLevelStorage.java
+++ b/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/dimension/idremap/MixinLevelStorage.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.idremap;
+package net.fabricmc.fabric.mixin.dimension.idremap;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.injection.At;
diff --git a/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/idremap/MixinPlayerManager.java b/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/dimension/idremap/MixinPlayerManager.java
similarity index 97%
rename from fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/idremap/MixinPlayerManager.java
rename to fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/dimension/idremap/MixinPlayerManager.java
index 311b2bdd5..592a5dc90 100644
--- a/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/idremap/MixinPlayerManager.java
+++ b/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/dimension/idremap/MixinPlayerManager.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.idremap;
+package net.fabricmc.fabric.mixin.dimension.idremap;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.injection.At;
diff --git a/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/idremap/MixinUnmodifiableLevelProperties.java b/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/dimension/idremap/MixinUnmodifiableLevelProperties.java
similarity index 96%
rename from fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/idremap/MixinUnmodifiableLevelProperties.java
rename to fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/dimension/idremap/MixinUnmodifiableLevelProperties.java
index 5476e7c67..8cc83dd7a 100644
--- a/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/idremap/MixinUnmodifiableLevelProperties.java
+++ b/fabric-dimensions-v1/src/main/java/net/fabricmc/fabric/mixin/dimension/idremap/MixinUnmodifiableLevelProperties.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.idremap;
+package net.fabricmc.fabric.mixin.dimension.idremap;
 
 import org.spongepowered.asm.mixin.Final;
 import org.spongepowered.asm.mixin.Mixin;
diff --git a/fabric-dimensions-v1/src/main/resources/fabric-dimensions-v1.mixins.json b/fabric-dimensions-v1/src/main/resources/fabric-dimensions-v1.mixins.json
index 6bc0eb805..cde031415 100644
--- a/fabric-dimensions-v1/src/main/resources/fabric-dimensions-v1.mixins.json
+++ b/fabric-dimensions-v1/src/main/resources/fabric-dimensions-v1.mixins.json
@@ -1,6 +1,6 @@
 {
   "required": true,
-  "package": "net.fabricmc.fabric.mixin",
+  "package": "net.fabricmc.fabric.mixin.dimension",
   "compatibilityLevel": "JAVA_8",
   "mixins": [
     "EntityHooks",
diff --git a/fabric-events-interaction-v0/build.gradle b/fabric-events-interaction-v0/build.gradle
index 67d236add..eb45e033d 100644
--- a/fabric-events-interaction-v0/build.gradle
+++ b/fabric-events-interaction-v0/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-events-interaction-v0"
-version = getSubprojectVersion(project, "0.2.4")
+version = getSubprojectVersion(project, "0.2.5")
 
 dependencies {
 	compile project(path: ':fabric-api-base', configuration: 'dev')
diff --git a/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/impl/event/InteractionEventsRouter.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/impl/event/interaction/InteractionEventsRouter.java
similarity index 96%
rename from fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/impl/event/InteractionEventsRouter.java
rename to fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/impl/event/interaction/InteractionEventsRouter.java
index a3af63fcf..dce144640 100644
--- a/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/impl/event/InteractionEventsRouter.java
+++ b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/impl/event/interaction/InteractionEventsRouter.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.event;
+package net.fabricmc.fabric.impl.event.interaction;
 
 import net.minecraft.block.BlockState;
 import net.minecraft.util.ActionResult;
diff --git a/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/impl/event/InteractionEventsRouterClient.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/impl/event/interaction/InteractionEventsRouterClient.java
similarity index 97%
rename from fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/impl/event/InteractionEventsRouterClient.java
rename to fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/impl/event/interaction/InteractionEventsRouterClient.java
index 3dbe1109a..86367f4f2 100644
--- a/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/impl/event/InteractionEventsRouterClient.java
+++ b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/impl/event/interaction/InteractionEventsRouterClient.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.event;
+package net.fabricmc.fabric.impl.event.interaction;
 
 import net.minecraft.block.BlockState;
 import net.minecraft.entity.Entity;
diff --git a/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinClientPlayerInteractionManager.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/event/interaction/MixinClientPlayerInteractionManager.java
similarity index 99%
rename from fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinClientPlayerInteractionManager.java
rename to fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/event/interaction/MixinClientPlayerInteractionManager.java
index db18f80a4..3a697ec2f 100644
--- a/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinClientPlayerInteractionManager.java
+++ b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/event/interaction/MixinClientPlayerInteractionManager.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.eventsinteraction;
+package net.fabricmc.fabric.mixin.event.interaction;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Shadow;
diff --git a/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinMinecraftClient.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/event/interaction/MixinMinecraftClient.java
similarity index 98%
rename from fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinMinecraftClient.java
rename to fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/event/interaction/MixinMinecraftClient.java
index ce9203efd..f5d8cce9b 100644
--- a/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinMinecraftClient.java
+++ b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/event/interaction/MixinMinecraftClient.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.eventsinteraction;
+package net.fabricmc.fabric.mixin.event.interaction;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Shadow;
diff --git a/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinServerPlayNetworkHandler.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/event/interaction/MixinServerPlayNetworkHandler.java
similarity index 97%
rename from fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinServerPlayNetworkHandler.java
rename to fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/event/interaction/MixinServerPlayNetworkHandler.java
index 458e68b56..e48c1980c 100644
--- a/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinServerPlayNetworkHandler.java
+++ b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/event/interaction/MixinServerPlayNetworkHandler.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.eventsinteraction;
+package net.fabricmc.fabric.mixin.event.interaction;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Shadow;
diff --git a/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinServerPlayerEntity.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/event/interaction/MixinServerPlayerEntity.java
similarity index 96%
rename from fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinServerPlayerEntity.java
rename to fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/event/interaction/MixinServerPlayerEntity.java
index b38ce0803..2cd6521b4 100644
--- a/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinServerPlayerEntity.java
+++ b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/event/interaction/MixinServerPlayerEntity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.eventsinteraction;
+package net.fabricmc.fabric.mixin.event.interaction;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.injection.At;
diff --git a/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinServerPlayerInteractionManager.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/event/interaction/MixinServerPlayerInteractionManager.java
similarity index 98%
rename from fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinServerPlayerInteractionManager.java
rename to fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/event/interaction/MixinServerPlayerInteractionManager.java
index 59f306f93..014a91cc8 100644
--- a/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinServerPlayerInteractionManager.java
+++ b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/event/interaction/MixinServerPlayerInteractionManager.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.eventsinteraction;
+package net.fabricmc.fabric.mixin.event.interaction;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Shadow;
diff --git a/fabric-events-interaction-v0/src/main/resources/fabric-events-interaction-v0.mixins.json b/fabric-events-interaction-v0/src/main/resources/fabric-events-interaction-v0.mixins.json
index 28d314f8d..fac2a9a7b 100644
--- a/fabric-events-interaction-v0/src/main/resources/fabric-events-interaction-v0.mixins.json
+++ b/fabric-events-interaction-v0/src/main/resources/fabric-events-interaction-v0.mixins.json
@@ -1,6 +1,6 @@
 {
   "required": true,
-  "package": "net.fabricmc.fabric.mixin.eventsinteraction",
+  "package": "net.fabricmc.fabric.mixin.event.interaction",
   "compatibilityLevel": "JAVA_8",
   "mixins": [
     "MixinServerPlayerEntity",
diff --git a/fabric-events-interaction-v0/src/main/resources/fabric.mod.json b/fabric-events-interaction-v0/src/main/resources/fabric.mod.json
index a87909b49..94a7c7f11 100644
--- a/fabric-events-interaction-v0/src/main/resources/fabric.mod.json
+++ b/fabric-events-interaction-v0/src/main/resources/fabric.mod.json
@@ -22,10 +22,10 @@
   },
   "entrypoints": {
     "main": [
-      "net.fabricmc.fabric.impl.event.InteractionEventsRouter"
+      "net.fabricmc.fabric.impl.event.interaction.InteractionEventsRouter"
     ],
     "client": [
-      "net.fabricmc.fabric.impl.event.InteractionEventsRouterClient"
+      "net.fabricmc.fabric.impl.event.interaction.InteractionEventsRouterClient"
     ]
   },
   "description": "Events for player interaction with blocks and entities.",
diff --git a/fabric-events-lifecycle-v0/build.gradle b/fabric-events-lifecycle-v0/build.gradle
index 89a9fa982..21bb53d87 100644
--- a/fabric-events-lifecycle-v0/build.gradle
+++ b/fabric-events-lifecycle-v0/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-events-lifecycle-v0"
-version = getSubprojectVersion(project, "0.1.1")
+version = getSubprojectVersion(project, "0.1.2")
 
 dependencies {
 	compile project(path: ':fabric-api-base', configuration: 'dev')
diff --git a/fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/eventslifecycle/MixinItemStack.java b/fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/event/lifecycle/MixinItemStack.java
similarity index 96%
rename from fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/eventslifecycle/MixinItemStack.java
rename to fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/event/lifecycle/MixinItemStack.java
index c26b73236..c6f025066 100644
--- a/fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/eventslifecycle/MixinItemStack.java
+++ b/fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/event/lifecycle/MixinItemStack.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.eventslifecycle;
+package net.fabricmc.fabric.mixin.event.lifecycle;
 
 import java.util.List;
 
diff --git a/fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/eventslifecycle/MixinMinecraftClient.java b/fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/event/lifecycle/MixinMinecraftClient.java
similarity index 95%
rename from fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/eventslifecycle/MixinMinecraftClient.java
rename to fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/event/lifecycle/MixinMinecraftClient.java
index 568c5a41b..a34368aea 100644
--- a/fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/eventslifecycle/MixinMinecraftClient.java
+++ b/fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/event/lifecycle/MixinMinecraftClient.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.eventslifecycle;
+package net.fabricmc.fabric.mixin.event.lifecycle;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.injection.At;
diff --git a/fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/eventslifecycle/MixinMinecraftServer.java b/fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/event/lifecycle/MixinMinecraftServer.java
similarity index 97%
rename from fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/eventslifecycle/MixinMinecraftServer.java
rename to fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/event/lifecycle/MixinMinecraftServer.java
index 98a08c904..b531bf3b1 100644
--- a/fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/eventslifecycle/MixinMinecraftServer.java
+++ b/fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/event/lifecycle/MixinMinecraftServer.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.eventslifecycle;
+package net.fabricmc.fabric.mixin.event.lifecycle;
 
 import java.util.function.BooleanSupplier;
 
diff --git a/fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/eventslifecycle/MixinWorld.java b/fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/event/lifecycle/MixinWorld.java
similarity index 96%
rename from fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/eventslifecycle/MixinWorld.java
rename to fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/event/lifecycle/MixinWorld.java
index 918548310..9b797509b 100644
--- a/fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/eventslifecycle/MixinWorld.java
+++ b/fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/event/lifecycle/MixinWorld.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.eventslifecycle;
+package net.fabricmc.fabric.mixin.event.lifecycle;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.injection.At;
diff --git a/fabric-events-lifecycle-v0/src/main/resources/fabric-events-lifecycle-v0.mixins.json b/fabric-events-lifecycle-v0/src/main/resources/fabric-events-lifecycle-v0.mixins.json
index 710a06f0e..738bbd9a1 100644
--- a/fabric-events-lifecycle-v0/src/main/resources/fabric-events-lifecycle-v0.mixins.json
+++ b/fabric-events-lifecycle-v0/src/main/resources/fabric-events-lifecycle-v0.mixins.json
@@ -1,6 +1,6 @@
 {
   "required": true,
-  "package": "net.fabricmc.fabric.mixin.eventslifecycle",
+  "package": "net.fabricmc.fabric.mixin.event.lifecycle",
   "compatibilityLevel": "JAVA_8",
   "mixins": [
     "MixinMinecraftServer",
diff --git a/fabric-item-groups-v0/build.gradle b/fabric-item-groups-v0/build.gradle
index c9f7aba62..1bf6d5e96 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.1.3")
+version = getSubprojectVersion(project, "0.1.4")
 
 dependencies {
 	compile project(path: ':fabric-api-base', configuration: 'dev')
diff --git a/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/api/client/itemgroup/FabricItemGroupBuilder.java b/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/api/client/itemgroup/FabricItemGroupBuilder.java
index 8eb50ef81..ccb670ef3 100644
--- a/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/api/client/itemgroup/FabricItemGroupBuilder.java
+++ b/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/api/client/itemgroup/FabricItemGroupBuilder.java
@@ -25,7 +25,7 @@ import net.minecraft.item.ItemStack;
 import net.minecraft.util.DefaultedList;
 import net.minecraft.util.Identifier;
 
-import net.fabricmc.fabric.impl.itemgroup.ItemGroupExtensions;
+import net.fabricmc.fabric.impl.item.group.ItemGroupExtensions;
 
 public final class FabricItemGroupBuilder {
 	private Identifier identifier;
diff --git a/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/impl/itemgroup/CreativeGuiExtensions.java b/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/impl/item/group/CreativeGuiExtensions.java
similarity index 95%
rename from fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/impl/itemgroup/CreativeGuiExtensions.java
rename to fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/impl/item/group/CreativeGuiExtensions.java
index efd9c6e9f..4784157db 100644
--- a/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/impl/itemgroup/CreativeGuiExtensions.java
+++ b/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/impl/item/group/CreativeGuiExtensions.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.itemgroup;
+package net.fabricmc.fabric.impl.item.group;
 
 public interface CreativeGuiExtensions {
 	void fabric_nextPage();
diff --git a/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/impl/itemgroup/FabricCreativeGuiComponents.java b/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/impl/item/group/FabricCreativeGuiComponents.java
similarity index 98%
rename from fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/impl/itemgroup/FabricCreativeGuiComponents.java
rename to fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/impl/item/group/FabricCreativeGuiComponents.java
index 8dc345758..3f257ab73 100644
--- a/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/impl/itemgroup/FabricCreativeGuiComponents.java
+++ b/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/impl/item/group/FabricCreativeGuiComponents.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.itemgroup;
+package net.fabricmc.fabric.impl.item.group;
 
 import java.util.HashSet;
 import java.util.Set;
diff --git a/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/impl/itemgroup/ItemGroupExtensions.java b/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/impl/item/group/ItemGroupExtensions.java
similarity index 93%
rename from fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/impl/itemgroup/ItemGroupExtensions.java
rename to fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/impl/item/group/ItemGroupExtensions.java
index d2cdf893b..fbfb3ae3e 100644
--- a/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/impl/itemgroup/ItemGroupExtensions.java
+++ b/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/impl/item/group/ItemGroupExtensions.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.itemgroup;
+package net.fabricmc.fabric.impl.item.group;
 
 public interface ItemGroupExtensions {
 	void fabric_expandArray();
diff --git a/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/mixin/itemgroup/MixinItemGroup.java b/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/mixin/item/group/MixinItemGroup.java
similarity index 91%
rename from fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/mixin/itemgroup/MixinItemGroup.java
rename to fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/mixin/item/group/MixinItemGroup.java
index 58666b919..f03e17f4b 100644
--- a/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/mixin/itemgroup/MixinItemGroup.java
+++ b/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/mixin/item/group/MixinItemGroup.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.itemgroup;
+package net.fabricmc.fabric.mixin.item.group;
 
 import org.spongepowered.asm.mixin.Final;
 import org.spongepowered.asm.mixin.Mixin;
@@ -23,7 +23,7 @@ import org.spongepowered.asm.mixin.Shadow;
 
 import net.minecraft.item.ItemGroup;
 
-import net.fabricmc.fabric.impl.itemgroup.ItemGroupExtensions;
+import net.fabricmc.fabric.impl.item.group.ItemGroupExtensions;
 
 @Mixin(ItemGroup.class)
 public abstract class MixinItemGroup implements ItemGroupExtensions {
diff --git a/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/mixin/itemgroup/client/MixinCreativePlayerInventoryGui.java b/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/mixin/item/group/client/MixinCreativePlayerInventoryGui.java
similarity index 96%
rename from fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/mixin/itemgroup/client/MixinCreativePlayerInventoryGui.java
rename to fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/mixin/item/group/client/MixinCreativePlayerInventoryGui.java
index b40a61726..1aa4cbb83 100644
--- a/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/mixin/itemgroup/client/MixinCreativePlayerInventoryGui.java
+++ b/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/mixin/item/group/client/MixinCreativePlayerInventoryGui.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.itemgroup.client;
+package net.fabricmc.fabric.mixin.item.group.client;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Shadow;
@@ -30,8 +30,8 @@ import net.minecraft.entity.player.PlayerInventory;
 import net.minecraft.item.ItemGroup;
 import net.minecraft.text.Text;
 
-import net.fabricmc.fabric.impl.itemgroup.CreativeGuiExtensions;
-import net.fabricmc.fabric.impl.itemgroup.FabricCreativeGuiComponents;
+import net.fabricmc.fabric.impl.item.group.CreativeGuiExtensions;
+import net.fabricmc.fabric.impl.item.group.FabricCreativeGuiComponents;
 
 @Mixin(CreativeInventoryScreen.class)
 public abstract class MixinCreativePlayerInventoryGui extends AbstractInventoryScreen implements CreativeGuiExtensions {
diff --git a/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/mixin/itemgroup/client/MixinItemGroup.java b/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/mixin/item/group/client/MixinItemGroup.java
similarity index 93%
rename from fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/mixin/itemgroup/client/MixinItemGroup.java
rename to fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/mixin/item/group/client/MixinItemGroup.java
index c9ad3d179..956024dd0 100644
--- a/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/mixin/itemgroup/client/MixinItemGroup.java
+++ b/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/mixin/item/group/client/MixinItemGroup.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.itemgroup.client;
+package net.fabricmc.fabric.mixin.item.group.client;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Shadow;
@@ -24,7 +24,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
 
 import net.minecraft.item.ItemGroup;
 
-import net.fabricmc.fabric.impl.itemgroup.FabricCreativeGuiComponents;
+import net.fabricmc.fabric.impl.item.group.FabricCreativeGuiComponents;
 
 @Mixin(ItemGroup.class)
 public abstract class MixinItemGroup {
diff --git a/fabric-item-groups-v0/src/main/resources/fabric-item-groups-v0.mixins.json b/fabric-item-groups-v0/src/main/resources/fabric-item-groups-v0.mixins.json
index 5873fc547..491ce8dc4 100644
--- a/fabric-item-groups-v0/src/main/resources/fabric-item-groups-v0.mixins.json
+++ b/fabric-item-groups-v0/src/main/resources/fabric-item-groups-v0.mixins.json
@@ -1,6 +1,6 @@
 {
   "required": true,
-  "package": "net.fabricmc.fabric.mixin.itemgroup",
+  "package": "net.fabricmc.fabric.mixin.item.group",
   "compatibilityLevel": "JAVA_8",
   "mixins": [
     "MixinItemGroup"
diff --git a/fabric-loot-tables-v1/build.gradle b/fabric-loot-tables-v1/build.gradle
index b9e30134a..93c154151 100644
--- a/fabric-loot-tables-v1/build.gradle
+++ b/fabric-loot-tables-v1/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-loot-tables-v1"
-version = getSubprojectVersion(project, "0.1.3")
+version = getSubprojectVersion(project, "0.1.4")
 
 dependencies {
 	compile project(path: ':fabric-api-base', configuration: 'dev')
diff --git a/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/api/loot/v1/FabricLootPoolBuilder.java b/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/api/loot/v1/FabricLootPoolBuilder.java
index 81c853778..d245481c0 100644
--- a/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/api/loot/v1/FabricLootPoolBuilder.java
+++ b/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/api/loot/v1/FabricLootPoolBuilder.java
@@ -22,7 +22,7 @@ import net.minecraft.loot.condition.LootCondition;
 import net.minecraft.loot.entry.LootEntry;
 import net.minecraft.loot.function.LootFunction;
 
-import net.fabricmc.fabric.mixin.loot.LootPoolBuilderHooks;
+import net.fabricmc.fabric.mixin.loot.table.LootPoolBuilderHooks;
 
 public class FabricLootPoolBuilder extends LootPool.Builder {
 	private final LootPoolBuilderHooks extended = (LootPoolBuilderHooks) this;
diff --git a/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/api/loot/v1/FabricLootSupplierBuilder.java b/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/api/loot/v1/FabricLootSupplierBuilder.java
index 201f3b33e..67ba52e1d 100644
--- a/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/api/loot/v1/FabricLootSupplierBuilder.java
+++ b/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/api/loot/v1/FabricLootSupplierBuilder.java
@@ -23,7 +23,7 @@ import net.minecraft.loot.LootTable;
 import net.minecraft.loot.context.LootContextType;
 import net.minecraft.loot.function.LootFunction;
 
-import net.fabricmc.fabric.mixin.loot.LootSupplierBuilderHooks;
+import net.fabricmc.fabric.mixin.loot.table.LootSupplierBuilderHooks;
 
 public class FabricLootSupplierBuilder extends LootTable.Builder {
 	private final LootSupplierBuilderHooks extended = (LootSupplierBuilderHooks) this;
diff --git a/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/api/loot/v1/LootEntryTypeRegistry.java b/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/api/loot/v1/LootEntryTypeRegistry.java
index 57f716b1f..639a2a8c2 100644
--- a/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/api/loot/v1/LootEntryTypeRegistry.java
+++ b/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/api/loot/v1/LootEntryTypeRegistry.java
@@ -18,7 +18,7 @@ package net.fabricmc.fabric.api.loot.v1;
 
 import net.minecraft.loot.entry.LootEntry;
 
-import net.fabricmc.fabric.impl.loot.LootEntryTypeRegistryImpl;
+import net.fabricmc.fabric.impl.loot.table.LootEntryTypeRegistryImpl;
 
 /**
  * Fabric's extensions to {@code net.minecraft.loot.entry.LootEntries} for registering
diff --git a/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/impl/loot/LootEntryTypeRegistryImpl.java b/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/impl/loot/table/LootEntryTypeRegistryImpl.java
similarity index 97%
rename from fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/impl/loot/LootEntryTypeRegistryImpl.java
rename to fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/impl/loot/table/LootEntryTypeRegistryImpl.java
index f37827e94..08eeca0d8 100644
--- a/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/impl/loot/LootEntryTypeRegistryImpl.java
+++ b/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/impl/loot/table/LootEntryTypeRegistryImpl.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.loot;
+package net.fabricmc.fabric.impl.loot.table;
 
 import java.lang.reflect.Method;
 
diff --git a/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/LootPoolBuilderHooks.java b/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/table/LootPoolBuilderHooks.java
similarity index 96%
rename from fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/LootPoolBuilderHooks.java
rename to fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/table/LootPoolBuilderHooks.java
index c5197d473..6ab52ee2d 100644
--- a/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/LootPoolBuilderHooks.java
+++ b/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/table/LootPoolBuilderHooks.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.loot;
+package net.fabricmc.fabric.mixin.loot.table;
 
 import java.util.List;
 
diff --git a/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/LootSupplierBuilderHooks.java b/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/table/LootSupplierBuilderHooks.java
similarity index 95%
rename from fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/LootSupplierBuilderHooks.java
rename to fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/table/LootSupplierBuilderHooks.java
index 1bce34ca0..ad07efbcb 100644
--- a/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/LootSupplierBuilderHooks.java
+++ b/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/table/LootSupplierBuilderHooks.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.loot;
+package net.fabricmc.fabric.mixin.loot.table;
 
 import java.util.List;
 
diff --git a/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/MixinLootManager.java b/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/table/MixinLootManager.java
similarity index 97%
rename from fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/MixinLootManager.java
rename to fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/table/MixinLootManager.java
index abc6e2b9b..ffd2c509b 100644
--- a/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/MixinLootManager.java
+++ b/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/table/MixinLootManager.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.loot;
+package net.fabricmc.fabric.mixin.loot.table;
 
 import java.util.HashMap;
 import java.util.Map;
diff --git a/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/MixinLootPool.java b/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/table/MixinLootPool.java
similarity index 97%
rename from fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/MixinLootPool.java
rename to fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/table/MixinLootPool.java
index 55700d885..7e577c2b7 100644
--- a/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/MixinLootPool.java
+++ b/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/table/MixinLootPool.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.loot;
+package net.fabricmc.fabric.mixin.loot.table;
 
 import java.util.Arrays;
 import java.util.List;
diff --git a/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/MixinLootSupplier.java b/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/table/MixinLootSupplier.java
similarity index 97%
rename from fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/MixinLootSupplier.java
rename to fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/table/MixinLootSupplier.java
index ce955be87..584994f4e 100644
--- a/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/MixinLootSupplier.java
+++ b/fabric-loot-tables-v1/src/main/java/net/fabricmc/fabric/mixin/loot/table/MixinLootSupplier.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.loot;
+package net.fabricmc.fabric.mixin.loot.table;
 
 import java.util.Arrays;
 import java.util.List;
diff --git a/fabric-loot-tables-v1/src/main/resources/fabric-loot-tables-v1.mixins.json b/fabric-loot-tables-v1/src/main/resources/fabric-loot-tables-v1.mixins.json
index 0d120730d..44b7abbf5 100644
--- a/fabric-loot-tables-v1/src/main/resources/fabric-loot-tables-v1.mixins.json
+++ b/fabric-loot-tables-v1/src/main/resources/fabric-loot-tables-v1.mixins.json
@@ -1,6 +1,6 @@
 {
   "required": true,
-  "package": "net.fabricmc.fabric.mixin.loot",
+  "package": "net.fabricmc.fabric.mixin.loot.table",
   "compatibilityLevel": "JAVA_8",
   "mixins": [
     "LootPoolBuilderHooks",
diff --git a/fabric-mining-levels-v0/build.gradle b/fabric-mining-levels-v0/build.gradle
index ba27de2c0..e7543e2b9 100644
--- a/fabric-mining-levels-v0/build.gradle
+++ b/fabric-mining-levels-v0/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-mining-levels-v0"
-version = getSubprojectVersion(project, "0.1.0")
+version = getSubprojectVersion(project, "0.1.1")
 
 dependencies {
     compile project(path: ':fabric-api-base', configuration: 'dev')
diff --git a/fabric-mining-levels-v0/src/main/java/net/fabricmc/fabric/impl/tools/ToolManager.java b/fabric-mining-levels-v0/src/main/java/net/fabricmc/fabric/impl/mining/level/ToolManager.java
similarity index 98%
rename from fabric-mining-levels-v0/src/main/java/net/fabricmc/fabric/impl/tools/ToolManager.java
rename to fabric-mining-levels-v0/src/main/java/net/fabricmc/fabric/impl/mining/level/ToolManager.java
index 7573d25df..2008ed3bd 100644
--- a/fabric-mining-levels-v0/src/main/java/net/fabricmc/fabric/impl/tools/ToolManager.java
+++ b/fabric-mining-levels-v0/src/main/java/net/fabricmc/fabric/impl/mining/level/ToolManager.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.tools;
+package net.fabricmc.fabric.impl.mining.level;
 
 import java.util.HashMap;
 import java.util.Map;
diff --git a/fabric-mining-levels-v0/src/main/java/net/fabricmc/fabric/mixin/tools/MiningToolItemAccessor.java b/fabric-mining-levels-v0/src/main/java/net/fabricmc/fabric/mixin/mining/level/MiningToolItemAccessor.java
similarity index 94%
rename from fabric-mining-levels-v0/src/main/java/net/fabricmc/fabric/mixin/tools/MiningToolItemAccessor.java
rename to fabric-mining-levels-v0/src/main/java/net/fabricmc/fabric/mixin/mining/level/MiningToolItemAccessor.java
index 0522cc3f5..e7547f51b 100644
--- a/fabric-mining-levels-v0/src/main/java/net/fabricmc/fabric/mixin/tools/MiningToolItemAccessor.java
+++ b/fabric-mining-levels-v0/src/main/java/net/fabricmc/fabric/mixin/mining/level/MiningToolItemAccessor.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.tools;
+package net.fabricmc.fabric.mixin.mining.level;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.gen.Accessor;
diff --git a/fabric-mining-levels-v0/src/main/java/net/fabricmc/fabric/mixin/tools/MixinItemStack.java b/fabric-mining-levels-v0/src/main/java/net/fabricmc/fabric/mixin/mining/level/MixinItemStack.java
similarity index 94%
rename from fabric-mining-levels-v0/src/main/java/net/fabricmc/fabric/mixin/tools/MixinItemStack.java
rename to fabric-mining-levels-v0/src/main/java/net/fabricmc/fabric/mixin/mining/level/MixinItemStack.java
index de74e255a..3ce3cbdfc 100644
--- a/fabric-mining-levels-v0/src/main/java/net/fabricmc/fabric/mixin/tools/MixinItemStack.java
+++ b/fabric-mining-levels-v0/src/main/java/net/fabricmc/fabric/mixin/mining/level/MixinItemStack.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.tools;
+package net.fabricmc.fabric.mixin.mining.level;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Shadow;
@@ -27,7 +27,7 @@ import net.minecraft.item.Item;
 import net.minecraft.item.ItemStack;
 
 import net.fabricmc.fabric.api.util.TriState;
-import net.fabricmc.fabric.impl.tools.ToolManager;
+import net.fabricmc.fabric.impl.mining.level.ToolManager;
 
 @Mixin(ItemStack.class)
 public abstract class MixinItemStack {
diff --git a/fabric-mining-levels-v0/src/main/resources/fabric-mining-levels-v0.mixins.json b/fabric-mining-levels-v0/src/main/resources/fabric-mining-levels-v0.mixins.json
index 51b9f89c8..258312778 100644
--- a/fabric-mining-levels-v0/src/main/resources/fabric-mining-levels-v0.mixins.json
+++ b/fabric-mining-levels-v0/src/main/resources/fabric-mining-levels-v0.mixins.json
@@ -1,6 +1,6 @@
 {
   "required": true,
-  "package": "net.fabricmc.fabric.mixin.tools",
+  "package": "net.fabricmc.fabric.mixin.mining.level",
   "compatibilityLevel": "JAVA_8",
   "mixins": [
     "MiningToolItemAccessor",
diff --git a/fabric-networking-blockentity-v0/build.gradle b/fabric-networking-blockentity-v0/build.gradle
index 20f3988bc..53babc42a 100644
--- a/fabric-networking-blockentity-v0/build.gradle
+++ b/fabric-networking-blockentity-v0/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-networking-blockentity-v0"
-version = getSubprojectVersion(project, "0.2.1")
+version = getSubprojectVersion(project, "0.2.2")
 
 dependencies {
 	compile project(path: ':fabric-api-base', configuration: 'dev')
diff --git a/fabric-networking-blockentity-v0/src/main/java/net/fabricmc/fabric/mixin/networkingblockentity/MixinBlockEntity.java b/fabric-networking-blockentity-v0/src/main/java/net/fabricmc/fabric/mixin/networking/blockentity/MixinBlockEntity.java
similarity index 97%
rename from fabric-networking-blockentity-v0/src/main/java/net/fabricmc/fabric/mixin/networkingblockentity/MixinBlockEntity.java
rename to fabric-networking-blockentity-v0/src/main/java/net/fabricmc/fabric/mixin/networking/blockentity/MixinBlockEntity.java
index 72e8164ec..e76f1b63c 100644
--- a/fabric-networking-blockentity-v0/src/main/java/net/fabricmc/fabric/mixin/networkingblockentity/MixinBlockEntity.java
+++ b/fabric-networking-blockentity-v0/src/main/java/net/fabricmc/fabric/mixin/networking/blockentity/MixinBlockEntity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.networkingblockentity;
+package net.fabricmc.fabric.mixin.networking.blockentity;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Shadow;
diff --git a/fabric-networking-blockentity-v0/src/main/java/net/fabricmc/fabric/mixin/networkingblockentity/MixinClientPlayNetworkHandler.java b/fabric-networking-blockentity-v0/src/main/java/net/fabricmc/fabric/mixin/networking/blockentity/MixinClientPlayNetworkHandler.java
similarity index 98%
rename from fabric-networking-blockentity-v0/src/main/java/net/fabricmc/fabric/mixin/networkingblockentity/MixinClientPlayNetworkHandler.java
rename to fabric-networking-blockentity-v0/src/main/java/net/fabricmc/fabric/mixin/networking/blockentity/MixinClientPlayNetworkHandler.java
index 40e9f3f3a..8a9dabf29 100644
--- a/fabric-networking-blockentity-v0/src/main/java/net/fabricmc/fabric/mixin/networkingblockentity/MixinClientPlayNetworkHandler.java
+++ b/fabric-networking-blockentity-v0/src/main/java/net/fabricmc/fabric/mixin/networking/blockentity/MixinClientPlayNetworkHandler.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.networkingblockentity;
+package net.fabricmc.fabric.mixin.networking.blockentity;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
diff --git a/fabric-networking-blockentity-v0/src/main/resources/fabric-networking-blockentity-v0.mixins.json b/fabric-networking-blockentity-v0/src/main/resources/fabric-networking-blockentity-v0.mixins.json
index ba7cbab9a..cf744f2e5 100644
--- a/fabric-networking-blockentity-v0/src/main/resources/fabric-networking-blockentity-v0.mixins.json
+++ b/fabric-networking-blockentity-v0/src/main/resources/fabric-networking-blockentity-v0.mixins.json
@@ -1,6 +1,6 @@
 {
   "required": true,
-  "package": "net.fabricmc.fabric.mixin.networkingblockentity",
+  "package": "net.fabricmc.fabric.mixin.networking.blockentity",
   "compatibilityLevel": "JAVA_8",
   "mixins": [
     "MixinBlockEntity"
diff --git a/fabric-networking-v0/build.gradle b/fabric-networking-v0/build.gradle
index 92d53c0a0..e98fce69e 100644
--- a/fabric-networking-v0/build.gradle
+++ b/fabric-networking-v0/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-networking-v0"
-version = getSubprojectVersion(project, "0.1.5")
+version = getSubprojectVersion(project, "0.1.6")
 
 dependencies {
     compile project(path: ':fabric-api-base', configuration: 'dev')
diff --git a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/network/ClientSidePacketRegistry.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/network/ClientSidePacketRegistry.java
index 6c5af7b6c..84b796cb9 100644
--- a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/network/ClientSidePacketRegistry.java
+++ b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/network/ClientSidePacketRegistry.java
@@ -23,7 +23,7 @@ import net.minecraft.network.Packet;
 import net.minecraft.util.Identifier;
 import net.minecraft.util.PacketByteBuf;
 
-import net.fabricmc.fabric.impl.network.ClientSidePacketRegistryImpl;
+import net.fabricmc.fabric.impl.networking.ClientSidePacketRegistryImpl;
 
 /**
  * The client-side packet registry.
diff --git a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/network/ServerSidePacketRegistry.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/network/ServerSidePacketRegistry.java
index cb12d9fca..23c1bb601 100644
--- a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/network/ServerSidePacketRegistry.java
+++ b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/network/ServerSidePacketRegistry.java
@@ -25,7 +25,7 @@ import net.minecraft.util.Identifier;
 import net.minecraft.util.PacketByteBuf;
 
 import net.fabricmc.fabric.api.server.PlayerStream;
-import net.fabricmc.fabric.impl.network.ServerSidePacketRegistryImpl;
+import net.fabricmc.fabric.impl.networking.ServerSidePacketRegistryImpl;
 
 /**
  * The server-side packet registry.
diff --git a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/server/PlayerStream.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/server/PlayerStream.java
index f9d181605..56de100cf 100644
--- a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/server/PlayerStream.java
+++ b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/server/PlayerStream.java
@@ -32,7 +32,7 @@ import net.minecraft.util.math.Vec3d;
 import net.minecraft.world.World;
 import net.minecraft.world.chunk.ChunkManager;
 
-import net.fabricmc.fabric.impl.server.EntityTrackerStorageAccessor;
+import net.fabricmc.fabric.impl.networking.server.EntityTrackerStorageAccessor;
 
 /**
  * Helper streams for looking up players on a server.
diff --git a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/network/ClientSidePacketRegistryImpl.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/networking/ClientSidePacketRegistryImpl.java
similarity index 98%
rename from fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/network/ClientSidePacketRegistryImpl.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/networking/ClientSidePacketRegistryImpl.java
index bdb387236..fc98e5951 100644
--- a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/network/ClientSidePacketRegistryImpl.java
+++ b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/networking/ClientSidePacketRegistryImpl.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.network;
+package net.fabricmc.fabric.impl.networking;
 
 import java.util.Collection;
 import java.util.Collections;
diff --git a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/network/CustomPayloadC2SPacketAccessor.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/networking/CustomPayloadC2SPacketAccessor.java
similarity index 95%
rename from fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/network/CustomPayloadC2SPacketAccessor.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/networking/CustomPayloadC2SPacketAccessor.java
index bcce9eebf..33013a6bc 100644
--- a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/network/CustomPayloadC2SPacketAccessor.java
+++ b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/networking/CustomPayloadC2SPacketAccessor.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.network;
+package net.fabricmc.fabric.impl.networking;
 
 import net.minecraft.util.Identifier;
 import net.minecraft.util.PacketByteBuf;
diff --git a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/network/PacketDebugOptions.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/networking/PacketDebugOptions.java
similarity index 94%
rename from fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/network/PacketDebugOptions.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/networking/PacketDebugOptions.java
index 6f8d523d1..b7040abb7 100644
--- a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/network/PacketDebugOptions.java
+++ b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/networking/PacketDebugOptions.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.network;
+package net.fabricmc.fabric.impl.networking;
 
 public final class PacketDebugOptions {
 	public static final boolean DISABLE_BUFFER_RELEASES = System.getProperty("fabric.networking.broken.disableBufferReleases", "false").equalsIgnoreCase("true");
diff --git a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/network/PacketRegistryImpl.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/networking/PacketRegistryImpl.java
similarity index 99%
rename from fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/network/PacketRegistryImpl.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/networking/PacketRegistryImpl.java
index 6bc137355..ac54bfe24 100644
--- a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/network/PacketRegistryImpl.java
+++ b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/networking/PacketRegistryImpl.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.network;
+package net.fabricmc.fabric.impl.networking;
 
 import java.nio.charset.StandardCharsets;
 import java.util.Collection;
diff --git a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/network/PacketTypes.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/networking/PacketTypes.java
similarity index 95%
rename from fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/network/PacketTypes.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/networking/PacketTypes.java
index 5a2e6a4be..cac2b8e15 100644
--- a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/network/PacketTypes.java
+++ b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/networking/PacketTypes.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.network;
+package net.fabricmc.fabric.impl.networking;
 
 import net.minecraft.util.Identifier;
 
diff --git a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/network/ServerSidePacketRegistryImpl.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/networking/ServerSidePacketRegistryImpl.java
similarity index 98%
rename from fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/network/ServerSidePacketRegistryImpl.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/networking/ServerSidePacketRegistryImpl.java
index b10198409..c4c3b1957 100644
--- a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/network/ServerSidePacketRegistryImpl.java
+++ b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/networking/ServerSidePacketRegistryImpl.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.network;
+package net.fabricmc.fabric.impl.networking;
 
 import java.lang.ref.WeakReference;
 import java.util.Collection;
diff --git a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/server/EntityTrackerStorageAccessor.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/networking/server/EntityTrackerStorageAccessor.java
similarity index 94%
rename from fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/server/EntityTrackerStorageAccessor.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/networking/server/EntityTrackerStorageAccessor.java
index 69b219b47..734ade823 100644
--- a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/server/EntityTrackerStorageAccessor.java
+++ b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/networking/server/EntityTrackerStorageAccessor.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.server;
+package net.fabricmc.fabric.impl.networking.server;
 
 import java.util.stream.Stream;
 
diff --git a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/server/EntityTrackerStreamAccessor.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/networking/server/EntityTrackerStreamAccessor.java
similarity index 93%
rename from fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/server/EntityTrackerStreamAccessor.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/networking/server/EntityTrackerStreamAccessor.java
index b77832d44..672d1096e 100644
--- a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/server/EntityTrackerStreamAccessor.java
+++ b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/networking/server/EntityTrackerStreamAccessor.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.server;
+package net.fabricmc.fabric.impl.networking.server;
 
 import java.util.stream.Stream;
 
diff --git a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinClientPlayNetworkHandler.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinClientPlayNetworkHandler.java
similarity index 93%
rename from fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinClientPlayNetworkHandler.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinClientPlayNetworkHandler.java
index ffbd16303..e0d193ea2 100644
--- a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinClientPlayNetworkHandler.java
+++ b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinClientPlayNetworkHandler.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.network;
+package net.fabricmc.fabric.mixin.networking;
 
 import java.util.Optional;
 
@@ -38,9 +38,9 @@ import net.minecraft.util.ThreadExecutor;
 import net.fabricmc.api.EnvType;
 import net.fabricmc.fabric.api.network.ClientSidePacketRegistry;
 import net.fabricmc.fabric.api.network.PacketContext;
-import net.fabricmc.fabric.impl.network.ClientSidePacketRegistryImpl;
-import net.fabricmc.fabric.impl.network.PacketRegistryImpl;
-import net.fabricmc.fabric.impl.network.PacketTypes;
+import net.fabricmc.fabric.impl.networking.ClientSidePacketRegistryImpl;
+import net.fabricmc.fabric.impl.networking.PacketRegistryImpl;
+import net.fabricmc.fabric.impl.networking.PacketTypes;
 
 @Mixin(ClientPlayNetworkHandler.class)
 public abstract class MixinClientPlayNetworkHandler implements PacketContext {
diff --git a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinCustomPayloadC2SPacket.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinCustomPayloadC2SPacket.java
similarity index 90%
rename from fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinCustomPayloadC2SPacket.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinCustomPayloadC2SPacket.java
index 9124a6c64..aced22a15 100644
--- a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinCustomPayloadC2SPacket.java
+++ b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinCustomPayloadC2SPacket.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.network;
+package net.fabricmc.fabric.mixin.networking;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Shadow;
@@ -23,7 +23,7 @@ import net.minecraft.server.network.packet.CustomPayloadC2SPacket;
 import net.minecraft.util.Identifier;
 import net.minecraft.util.PacketByteBuf;
 
-import net.fabricmc.fabric.impl.network.CustomPayloadC2SPacketAccessor;
+import net.fabricmc.fabric.impl.networking.CustomPayloadC2SPacketAccessor;
 
 @Mixin(CustomPayloadC2SPacket.class)
 public class MixinCustomPayloadC2SPacket implements CustomPayloadC2SPacketAccessor {
diff --git a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinEntityTracker.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinEntityTracker.java
similarity index 90%
rename from fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinEntityTracker.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinEntityTracker.java
index 3f1605780..bb8cba55d 100644
--- a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinEntityTracker.java
+++ b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinEntityTracker.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.network;
+package net.fabricmc.fabric.mixin.networking;
 
 import java.util.Set;
 import java.util.stream.Stream;
@@ -25,7 +25,7 @@ import org.spongepowered.asm.mixin.Shadow;
 
 import net.minecraft.server.network.ServerPlayerEntity;
 
-import net.fabricmc.fabric.impl.server.EntityTrackerStreamAccessor;
+import net.fabricmc.fabric.impl.networking.server.EntityTrackerStreamAccessor;
 
 @Mixin(targets = "net.minecraft.server.world.ThreadedAnvilChunkStorage$EntityTracker")
 public class MixinEntityTracker implements EntityTrackerStreamAccessor {
diff --git a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinMinecraftClient.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinMinecraftClient.java
similarity index 91%
rename from fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinMinecraftClient.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinMinecraftClient.java
index 94556fd52..071c0e0fe 100644
--- a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinMinecraftClient.java
+++ b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinMinecraftClient.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.network;
+package net.fabricmc.fabric.mixin.networking;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.injection.At;
@@ -24,7 +24,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
 import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.gui.screen.Screen;
 
-import net.fabricmc.fabric.impl.network.ClientSidePacketRegistryImpl;
+import net.fabricmc.fabric.impl.networking.ClientSidePacketRegistryImpl;
 
 @Mixin(MinecraftClient.class)
 public class MixinMinecraftClient {
diff --git a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinPlayerManager.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinPlayerManager.java
similarity index 91%
rename from fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinPlayerManager.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinPlayerManager.java
index 26580a074..4fddae1f2 100644
--- a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinPlayerManager.java
+++ b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinPlayerManager.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.network;
+package net.fabricmc.fabric.mixin.networking;
 
 import java.util.Optional;
 
@@ -29,8 +29,8 @@ import net.minecraft.server.PlayerManager;
 import net.minecraft.server.network.ServerPlayerEntity;
 
 import net.fabricmc.fabric.api.network.ServerSidePacketRegistry;
-import net.fabricmc.fabric.impl.network.PacketRegistryImpl;
-import net.fabricmc.fabric.impl.network.ServerSidePacketRegistryImpl;
+import net.fabricmc.fabric.impl.networking.PacketRegistryImpl;
+import net.fabricmc.fabric.impl.networking.ServerSidePacketRegistryImpl;
 
 @Mixin(priority = 500, value = PlayerManager.class)
 public abstract class MixinPlayerManager {
diff --git a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinServerPlayNetworkHandler.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinServerPlayNetworkHandler.java
similarity index 91%
rename from fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinServerPlayNetworkHandler.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinServerPlayNetworkHandler.java
index 7a27163b6..04f57411b 100644
--- a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinServerPlayNetworkHandler.java
+++ b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinServerPlayNetworkHandler.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.network;
+package net.fabricmc.fabric.mixin.networking;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Shadow;
@@ -33,8 +33,8 @@ import net.minecraft.util.ThreadExecutor;
 import net.fabricmc.api.EnvType;
 import net.fabricmc.fabric.api.network.PacketContext;
 import net.fabricmc.fabric.api.network.ServerSidePacketRegistry;
-import net.fabricmc.fabric.impl.network.CustomPayloadC2SPacketAccessor;
-import net.fabricmc.fabric.impl.network.ServerSidePacketRegistryImpl;
+import net.fabricmc.fabric.impl.networking.CustomPayloadC2SPacketAccessor;
+import net.fabricmc.fabric.impl.networking.ServerSidePacketRegistryImpl;
 
 @Mixin(ServerPlayNetworkHandler.class)
 public class MixinServerPlayNetworkHandler implements PacketContext {
diff --git a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinThreadedAnvilChunkStorage.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinThreadedAnvilChunkStorage.java
similarity index 87%
rename from fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinThreadedAnvilChunkStorage.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinThreadedAnvilChunkStorage.java
index 5a2ebfc5d..218c018f4 100644
--- a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinThreadedAnvilChunkStorage.java
+++ b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinThreadedAnvilChunkStorage.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.network;
+package net.fabricmc.fabric.mixin.networking;
 
 import java.util.stream.Stream;
 
@@ -27,8 +27,8 @@ import net.minecraft.entity.Entity;
 import net.minecraft.server.network.ServerPlayerEntity;
 import net.minecraft.server.world.ThreadedAnvilChunkStorage;
 
-import net.fabricmc.fabric.impl.server.EntityTrackerStorageAccessor;
-import net.fabricmc.fabric.impl.server.EntityTrackerStreamAccessor;
+import net.fabricmc.fabric.impl.networking.server.EntityTrackerStorageAccessor;
+import net.fabricmc.fabric.impl.networking.server.EntityTrackerStreamAccessor;
 
 @Mixin(ThreadedAnvilChunkStorage.class)
 public class MixinThreadedAnvilChunkStorage implements EntityTrackerStorageAccessor {
diff --git a/fabric-networking-v0/src/main/resources/fabric-networking-v0.mixins.json b/fabric-networking-v0/src/main/resources/fabric-networking-v0.mixins.json
index b567d20c0..2133ec325 100644
--- a/fabric-networking-v0/src/main/resources/fabric-networking-v0.mixins.json
+++ b/fabric-networking-v0/src/main/resources/fabric-networking-v0.mixins.json
@@ -1,6 +1,6 @@
 {
   "required": true,
-  "package": "net.fabricmc.fabric.mixin.network",
+  "package": "net.fabricmc.fabric.mixin.networking",
   "compatibilityLevel": "JAVA_8",
   "mixins": [
     "MixinCustomPayloadC2SPacket",
diff --git a/fabric-object-builders-v0/build.gradle b/fabric-object-builders-v0/build.gradle
index f710c6477..d502806db 100644
--- a/fabric-object-builders-v0/build.gradle
+++ b/fabric-object-builders-v0/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-object-builders"
-version = getSubprojectVersion(project, "0.1.1")
+version = getSubprojectVersion(project, "0.1.2")
 
 dependencies {
     compile project(path: ':fabric-api-base', configuration: 'dev')
diff --git a/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/api/block/BlockSettingsExtensions.java b/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/api/block/BlockSettingsExtensions.java
index 8ca772ea6..94c1b3462 100644
--- a/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/api/block/BlockSettingsExtensions.java
+++ b/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/api/block/BlockSettingsExtensions.java
@@ -23,7 +23,7 @@ import net.minecraft.sound.BlockSoundGroup;
 import net.minecraft.tag.Tag;
 import net.minecraft.util.Identifier;
 
-import net.fabricmc.fabric.mixin.builders.BlockSettingsHooks;
+import net.fabricmc.fabric.mixin.object.builder.BlockSettingsHooks;
 
 public final class BlockSettingsExtensions {
 	private BlockSettingsExtensions() {
diff --git a/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/api/block/FabricBlockSettings.java b/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/api/block/FabricBlockSettings.java
index 6c5297f15..ea69b4310 100644
--- a/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/api/block/FabricBlockSettings.java
+++ b/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/api/block/FabricBlockSettings.java
@@ -32,7 +32,7 @@ import net.minecraft.util.DyeColor;
 import net.minecraft.util.Identifier;
 
 import net.fabricmc.fabric.api.event.registry.BlockConstructedCallback;
-import net.fabricmc.fabric.impl.tools.ToolManager;
+import net.fabricmc.fabric.impl.mining.level.ToolManager;
 
 /**
  * Fabric's version of Block.Settings. Adds additional methods and hooks
diff --git a/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/api/block/FabricMaterialBuilder.java b/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/api/block/FabricMaterialBuilder.java
index 6b00da81f..e848b3a3c 100644
--- a/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/api/block/FabricMaterialBuilder.java
+++ b/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/api/block/FabricMaterialBuilder.java
@@ -21,7 +21,7 @@ import net.minecraft.block.MaterialColor;
 import net.minecraft.block.piston.PistonBehavior;
 import net.minecraft.util.DyeColor;
 
-import net.fabricmc.fabric.mixin.builders.MaterialBuilderHooks;
+import net.fabricmc.fabric.mixin.object.builder.MaterialBuilderHooks;
 
 public class FabricMaterialBuilder extends Material.Builder {
 	public FabricMaterialBuilder(MaterialColor color) {
diff --git a/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/api/entity/FabricEntityTypeBuilder.java b/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/api/entity/FabricEntityTypeBuilder.java
index 062d9b6ee..59569777a 100644
--- a/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/api/entity/FabricEntityTypeBuilder.java
+++ b/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/api/entity/FabricEntityTypeBuilder.java
@@ -27,7 +27,7 @@ import net.minecraft.entity.EntityDimensions;
 import net.minecraft.entity.EntityType;
 import net.minecraft.world.World;
 
-import net.fabricmc.fabric.impl.entity.FabricEntityType;
+import net.fabricmc.fabric.impl.object.builder.FabricEntityType;
 
 /**
  * Extended version of {@link EntityType.Builder} with added registration for
diff --git a/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/impl/entity/FabricEntityType.java b/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/impl/object/builder/FabricEntityType.java
similarity index 97%
rename from fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/impl/entity/FabricEntityType.java
rename to fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/impl/object/builder/FabricEntityType.java
index a135b467a..ba30066ed 100644
--- a/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/impl/entity/FabricEntityType.java
+++ b/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/impl/object/builder/FabricEntityType.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.entity;
+package net.fabricmc.fabric.impl.object.builder;
 
 import net.minecraft.entity.Entity;
 import net.minecraft.entity.EntityCategory;
diff --git a/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/builders/BlockSettingsHooks.java b/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/object/builder/BlockSettingsHooks.java
similarity index 97%
rename from fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/builders/BlockSettingsHooks.java
rename to fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/object/builder/BlockSettingsHooks.java
index d99fe70c5..4c6bfee7d 100644
--- a/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/builders/BlockSettingsHooks.java
+++ b/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/object/builder/BlockSettingsHooks.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.builders;
+package net.fabricmc.fabric.mixin.object.builder;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.gen.Accessor;
diff --git a/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/builders/MaterialBuilderHooks.java b/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/object/builder/MaterialBuilderHooks.java
similarity index 95%
rename from fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/builders/MaterialBuilderHooks.java
rename to fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/object/builder/MaterialBuilderHooks.java
index 9845fe59d..71987b2bd 100644
--- a/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/builders/MaterialBuilderHooks.java
+++ b/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/object/builder/MaterialBuilderHooks.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.builders;
+package net.fabricmc.fabric.mixin.object.builder;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.gen.Accessor;
diff --git a/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/builders/MixinBlock.java b/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/object/builder/MixinBlock.java
similarity index 96%
rename from fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/builders/MixinBlock.java
rename to fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/object/builder/MixinBlock.java
index 5e3ecc726..bb9a99768 100644
--- a/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/builders/MixinBlock.java
+++ b/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/object/builder/MixinBlock.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.builders;
+package net.fabricmc.fabric.mixin.object.builder;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.injection.At;
diff --git a/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/builders/MixinItem.java b/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/object/builder/MixinItem.java
similarity index 96%
rename from fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/builders/MixinItem.java
rename to fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/object/builder/MixinItem.java
index 165c09bad..ae68b57b3 100644
--- a/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/builders/MixinItem.java
+++ b/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/object/builder/MixinItem.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.builders;
+package net.fabricmc.fabric.mixin.object.builder;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.injection.At;
diff --git a/fabric-object-builders-v0/src/main/resources/fabric-object-builders-v0.mixins.json b/fabric-object-builders-v0/src/main/resources/fabric-object-builders-v0.mixins.json
index a0923ecb0..f520110df 100644
--- a/fabric-object-builders-v0/src/main/resources/fabric-object-builders-v0.mixins.json
+++ b/fabric-object-builders-v0/src/main/resources/fabric-object-builders-v0.mixins.json
@@ -1,6 +1,6 @@
 {
   "required": true,
-  "package": "net.fabricmc.fabric.mixin.builders",
+  "package": "net.fabricmc.fabric.mixin.object.builder",
   "compatibilityLevel": "JAVA_8",
   "mixins": [
     "BlockSettingsHooks",
diff --git a/fabric-registry-sync-v0/build.gradle b/fabric-registry-sync-v0/build.gradle
index c231dbd9a..db37b9837 100644
--- a/fabric-registry-sync-v0/build.gradle
+++ b/fabric-registry-sync-v0/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-registry-sync-v0"
-version = getSubprojectVersion(project, "0.2.3")
+version = getSubprojectVersion(project, "0.2.4")
 
 dependencies {
 	compile project(path: ':fabric-api-base', configuration: 'dev')
diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/api/event/registry/RegistryEntryAddedCallback.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/api/event/registry/RegistryEntryAddedCallback.java
index 553cc19d3..8cfc6e4a2 100644
--- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/api/event/registry/RegistryEntryAddedCallback.java
+++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/api/event/registry/RegistryEntryAddedCallback.java
@@ -20,7 +20,7 @@ import net.minecraft.util.Identifier;
 import net.minecraft.util.registry.Registry;
 
 import net.fabricmc.fabric.api.event.Event;
-import net.fabricmc.fabric.impl.registry.ListenableRegistry;
+import net.fabricmc.fabric.impl.registry.sync.ListenableRegistry;
 
 @FunctionalInterface
 public interface RegistryEntryAddedCallback<T> {
diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/api/event/registry/RegistryEntryRemovedCallback.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/api/event/registry/RegistryEntryRemovedCallback.java
index cd87c802f..2b4985d8a 100644
--- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/api/event/registry/RegistryEntryRemovedCallback.java
+++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/api/event/registry/RegistryEntryRemovedCallback.java
@@ -20,7 +20,7 @@ import net.minecraft.util.Identifier;
 import net.minecraft.util.registry.Registry;
 
 import net.fabricmc.fabric.api.event.Event;
-import net.fabricmc.fabric.impl.registry.ListenableRegistry;
+import net.fabricmc.fabric.impl.registry.sync.ListenableRegistry;
 
 @FunctionalInterface
 public interface RegistryEntryRemovedCallback<T> {
diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/api/event/registry/RegistryIdRemapCallback.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/api/event/registry/RegistryIdRemapCallback.java
index d285626a5..135f3931f 100644
--- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/api/event/registry/RegistryIdRemapCallback.java
+++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/api/event/registry/RegistryIdRemapCallback.java
@@ -22,7 +22,7 @@ import net.minecraft.util.Identifier;
 import net.minecraft.util.registry.Registry;
 
 import net.fabricmc.fabric.api.event.Event;
-import net.fabricmc.fabric.impl.registry.ListenableRegistry;
+import net.fabricmc.fabric.impl.registry.sync.ListenableRegistry;
 
 /**
  * The remapping process functions as follows:
diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/FabricRegistryClientInit.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/FabricRegistryClientInit.java
similarity index 97%
rename from fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/FabricRegistryClientInit.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/FabricRegistryClientInit.java
index d71d39d3b..e54964acc 100644
--- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/FabricRegistryClientInit.java
+++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/FabricRegistryClientInit.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.registry;
+package net.fabricmc.fabric.impl.registry.sync;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/ListenableRegistry.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/ListenableRegistry.java
similarity index 95%
rename from fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/ListenableRegistry.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/ListenableRegistry.java
index 3af8cc484..779228ada 100644
--- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/ListenableRegistry.java
+++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/ListenableRegistry.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.registry;
+package net.fabricmc.fabric.impl.registry.sync;
 
 import net.fabricmc.fabric.api.event.Event;
 import net.fabricmc.fabric.api.event.registry.RegistryEntryAddedCallback;
diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/RegistrySyncManager.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/RegistrySyncManager.java
similarity index 99%
rename from fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/RegistrySyncManager.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/RegistrySyncManager.java
index bab07dcac..b2302eb9a 100644
--- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/RegistrySyncManager.java
+++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/RegistrySyncManager.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.registry;
+package net.fabricmc.fabric.impl.registry.sync;
 
 import java.io.File;
 import java.io.FileOutputStream;
diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/RemapException.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/RemapException.java
similarity index 94%
rename from fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/RemapException.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/RemapException.java
index 6deb60a61..528d2964f 100644
--- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/RemapException.java
+++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/RemapException.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.registry;
+package net.fabricmc.fabric.impl.registry.sync;
 
 public class RemapException extends Exception {
 	public RemapException(String message) {
diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/RemapStateImpl.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/RemapStateImpl.java
similarity index 97%
rename from fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/RemapStateImpl.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/RemapStateImpl.java
index 84220ca52..66d9aa4d0 100644
--- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/RemapStateImpl.java
+++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/RemapStateImpl.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.registry;
+package net.fabricmc.fabric.impl.registry.sync;
 
 import it.unimi.dsi.fastutil.ints.Int2IntMap;
 import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/RemappableRegistry.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/RemappableRegistry.java
similarity index 96%
rename from fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/RemappableRegistry.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/RemappableRegistry.java
index c3d41605c..8f3545e3e 100644
--- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/RemappableRegistry.java
+++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/RemappableRegistry.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.registry;
+package net.fabricmc.fabric.impl.registry.sync;
 
 import it.unimi.dsi.fastutil.objects.Object2IntMap;
 
diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/RemovableIdList.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/RemovableIdList.java
similarity index 94%
rename from fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/RemovableIdList.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/RemovableIdList.java
index 9c771f518..64a40dc92 100644
--- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/RemovableIdList.java
+++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/RemovableIdList.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.registry;
+package net.fabricmc.fabric.impl.registry.sync;
 
 import it.unimi.dsi.fastutil.ints.Int2IntMap;
 
diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/trackers/IdListTracker.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/trackers/IdListTracker.java
similarity index 95%
rename from fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/trackers/IdListTracker.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/trackers/IdListTracker.java
index eba077928..0929448bf 100644
--- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/trackers/IdListTracker.java
+++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/trackers/IdListTracker.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.registry.trackers;
+package net.fabricmc.fabric.impl.registry.sync.trackers;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -26,7 +26,7 @@ import net.minecraft.util.registry.Registry;
 import net.fabricmc.fabric.api.event.registry.RegistryEntryAddedCallback;
 import net.fabricmc.fabric.api.event.registry.RegistryEntryRemovedCallback;
 import net.fabricmc.fabric.api.event.registry.RegistryIdRemapCallback;
-import net.fabricmc.fabric.impl.registry.RemovableIdList;
+import net.fabricmc.fabric.impl.registry.sync.RemovableIdList;
 
 public class IdListTracker<V, OV> implements RegistryEntryAddedCallback<V>, RegistryIdRemapCallback<V>, RegistryEntryRemovedCallback<V> {
 	private final String name;
diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/trackers/Int2ObjectMapTracker.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/trackers/Int2ObjectMapTracker.java
similarity index 98%
rename from fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/trackers/Int2ObjectMapTracker.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/trackers/Int2ObjectMapTracker.java
index 2726235fa..62ddfa4ad 100644
--- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/trackers/Int2ObjectMapTracker.java
+++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/trackers/Int2ObjectMapTracker.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.registry.trackers;
+package net.fabricmc.fabric.impl.registry.sync.trackers;
 
 import java.util.ArrayList;
 import java.util.HashMap;
diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/trackers/StateIdTracker.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/trackers/StateIdTracker.java
similarity index 96%
rename from fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/trackers/StateIdTracker.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/trackers/StateIdTracker.java
index b0c9ff579..67fb56b72 100644
--- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/trackers/StateIdTracker.java
+++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/trackers/StateIdTracker.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.registry.trackers;
+package net.fabricmc.fabric.impl.registry.sync.trackers;
 
 import java.util.Collection;
 import java.util.function.Function;
@@ -30,7 +30,7 @@ import net.minecraft.util.registry.Registry;
 
 import net.fabricmc.fabric.api.event.registry.RegistryEntryAddedCallback;
 import net.fabricmc.fabric.api.event.registry.RegistryIdRemapCallback;
-import net.fabricmc.fabric.impl.registry.RemovableIdList;
+import net.fabricmc.fabric.impl.registry.sync.RemovableIdList;
 
 public final class StateIdTracker<T, S> implements RegistryIdRemapCallback<T>, RegistryEntryAddedCallback<T> {
 	private final Logger logger = LogManager.getLogger();
diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/trackers/vanilla/BiomeParentTracker.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/trackers/vanilla/BiomeParentTracker.java
similarity index 95%
rename from fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/trackers/vanilla/BiomeParentTracker.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/trackers/vanilla/BiomeParentTracker.java
index abfd71c47..debaba7ad 100644
--- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/trackers/vanilla/BiomeParentTracker.java
+++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/trackers/vanilla/BiomeParentTracker.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.registry.trackers.vanilla;
+package net.fabricmc.fabric.impl.registry.sync.trackers.vanilla;
 
 import java.util.Objects;
 
@@ -27,7 +27,7 @@ import net.minecraft.world.biome.Biome;
 import net.fabricmc.fabric.api.event.registry.RegistryEntryAddedCallback;
 import net.fabricmc.fabric.api.event.registry.RegistryEntryRemovedCallback;
 import net.fabricmc.fabric.api.event.registry.RegistryIdRemapCallback;
-import net.fabricmc.fabric.impl.registry.RemovableIdList;
+import net.fabricmc.fabric.impl.registry.sync.RemovableIdList;
 
 public final class BiomeParentTracker implements RegistryEntryAddedCallback<Biome>, RegistryEntryRemovedCallback<Biome>, RegistryIdRemapCallback<Biome> {
 	private final Registry<Biome> registry;
diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/trackers/vanilla/BlockInitTracker.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/trackers/vanilla/BlockInitTracker.java
similarity index 95%
rename from fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/trackers/vanilla/BlockInitTracker.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/trackers/vanilla/BlockInitTracker.java
index 51f44045f..480e44f77 100644
--- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/trackers/vanilla/BlockInitTracker.java
+++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/trackers/vanilla/BlockInitTracker.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.registry.trackers.vanilla;
+package net.fabricmc.fabric.impl.registry.sync.trackers.vanilla;
 
 import net.minecraft.block.Block;
 import net.minecraft.block.BlockState;
diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/trackers/vanilla/BlockItemTracker.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/trackers/vanilla/BlockItemTracker.java
similarity index 95%
rename from fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/trackers/vanilla/BlockItemTracker.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/trackers/vanilla/BlockItemTracker.java
index 63dd4bb26..60bb5737b 100644
--- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/trackers/vanilla/BlockItemTracker.java
+++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/trackers/vanilla/BlockItemTracker.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.registry.trackers.vanilla;
+package net.fabricmc.fabric.impl.registry.sync.trackers.vanilla;
 
 import net.minecraft.item.BlockItem;
 import net.minecraft.item.Item;
diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/MixinBootstrap.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/MixinBootstrap.java
similarity index 85%
rename from fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/MixinBootstrap.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/MixinBootstrap.java
index ee85f29a8..2019fd1bf 100644
--- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/MixinBootstrap.java
+++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/MixinBootstrap.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.registry;
+package net.fabricmc.fabric.mixin.registry.sync;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.injection.At;
@@ -30,10 +30,10 @@ import net.minecraft.item.Items;
 import net.minecraft.util.registry.Registry;
 import net.minecraft.world.biome.Biomes;
 
-import net.fabricmc.fabric.impl.registry.trackers.StateIdTracker;
-import net.fabricmc.fabric.impl.registry.trackers.vanilla.BiomeParentTracker;
-import net.fabricmc.fabric.impl.registry.trackers.vanilla.BlockInitTracker;
-import net.fabricmc.fabric.impl.registry.trackers.vanilla.BlockItemTracker;
+import net.fabricmc.fabric.impl.registry.sync.trackers.StateIdTracker;
+import net.fabricmc.fabric.impl.registry.sync.trackers.vanilla.BiomeParentTracker;
+import net.fabricmc.fabric.impl.registry.sync.trackers.vanilla.BlockInitTracker;
+import net.fabricmc.fabric.impl.registry.sync.trackers.vanilla.BlockItemTracker;
 
 @Mixin(Bootstrap.class)
 public class MixinBootstrap {
diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/MixinIdList.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/MixinIdList.java
similarity index 95%
rename from fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/MixinIdList.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/MixinIdList.java
index e2bd8f971..06fd19bb9 100644
--- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/MixinIdList.java
+++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/MixinIdList.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.registry;
+package net.fabricmc.fabric.mixin.registry.sync;
 
 import java.util.ArrayList;
 import java.util.IdentityHashMap;
@@ -28,7 +28,7 @@ import org.spongepowered.asm.mixin.Unique;
 
 import net.minecraft.util.IdList;
 
-import net.fabricmc.fabric.impl.registry.RemovableIdList;
+import net.fabricmc.fabric.impl.registry.sync.RemovableIdList;
 
 @Mixin(IdList.class)
 public class MixinIdList implements RemovableIdList<Object> {
diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/MixinIdRegistry.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/MixinIdRegistry.java
similarity index 97%
rename from fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/MixinIdRegistry.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/MixinIdRegistry.java
index 712d74f1f..150115a77 100644
--- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/MixinIdRegistry.java
+++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/MixinIdRegistry.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.registry;
+package net.fabricmc.fabric.mixin.registry.sync;
 
 import java.util.ArrayList;
 import java.util.Comparator;
@@ -48,10 +48,10 @@ import net.fabricmc.fabric.api.event.EventFactory;
 import net.fabricmc.fabric.api.event.registry.RegistryEntryAddedCallback;
 import net.fabricmc.fabric.api.event.registry.RegistryEntryRemovedCallback;
 import net.fabricmc.fabric.api.event.registry.RegistryIdRemapCallback;
-import net.fabricmc.fabric.impl.registry.ListenableRegistry;
-import net.fabricmc.fabric.impl.registry.RemapException;
-import net.fabricmc.fabric.impl.registry.RemapStateImpl;
-import net.fabricmc.fabric.impl.registry.RemappableRegistry;
+import net.fabricmc.fabric.impl.registry.sync.ListenableRegistry;
+import net.fabricmc.fabric.impl.registry.sync.RemapException;
+import net.fabricmc.fabric.impl.registry.sync.RemapStateImpl;
+import net.fabricmc.fabric.impl.registry.sync.RemappableRegistry;
 
 @Mixin(SimpleRegistry.class)
 public abstract class MixinIdRegistry<T> implements RemappableRegistry, ListenableRegistry {
diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/MixinPlayerManager.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/MixinPlayerManager.java
similarity index 92%
rename from fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/MixinPlayerManager.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/MixinPlayerManager.java
index d8aa3a282..5e1977e91 100644
--- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/MixinPlayerManager.java
+++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/MixinPlayerManager.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.registry;
+package net.fabricmc.fabric.mixin.registry.sync;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.injection.At;
@@ -25,7 +25,7 @@ import net.minecraft.network.ClientConnection;
 import net.minecraft.server.PlayerManager;
 import net.minecraft.server.network.ServerPlayerEntity;
 
-import net.fabricmc.fabric.impl.registry.RegistrySyncManager;
+import net.fabricmc.fabric.impl.registry.sync.RegistrySyncManager;
 
 @Mixin(PlayerManager.class)
 public abstract class MixinPlayerManager {
diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/MixinWorldSaveHandler.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/MixinWorldSaveHandler.java
similarity index 95%
rename from fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/MixinWorldSaveHandler.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/MixinWorldSaveHandler.java
index 393157ad5..a4c4758da 100644
--- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/MixinWorldSaveHandler.java
+++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/MixinWorldSaveHandler.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.registry;
+package net.fabricmc.fabric.mixin.registry.sync;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -37,9 +37,9 @@ import net.minecraft.nbt.NbtIo;
 import net.minecraft.world.WorldSaveHandler;
 import net.minecraft.world.level.LevelProperties;
 
-import net.fabricmc.fabric.impl.registry.RegistrySyncManager;
-import net.fabricmc.fabric.impl.registry.RemapException;
-import net.fabricmc.fabric.impl.registry.RemappableRegistry;
+import net.fabricmc.fabric.impl.registry.sync.RegistrySyncManager;
+import net.fabricmc.fabric.impl.registry.sync.RemapException;
+import net.fabricmc.fabric.impl.registry.sync.RemappableRegistry;
 
 @Mixin(WorldSaveHandler.class)
 public class MixinWorldSaveHandler {
diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinBlockColorMap.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/client/MixinBlockColorMap.java
similarity index 91%
rename from fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinBlockColorMap.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/client/MixinBlockColorMap.java
index 04f1e0285..0d68c5773 100644
--- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinBlockColorMap.java
+++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/client/MixinBlockColorMap.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.registry.client;
+package net.fabricmc.fabric.mixin.registry.sync.client;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Shadow;
@@ -27,7 +27,7 @@ import net.minecraft.client.color.block.BlockColors;
 import net.minecraft.util.IdList;
 import net.minecraft.util.registry.Registry;
 
-import net.fabricmc.fabric.impl.registry.trackers.IdListTracker;
+import net.fabricmc.fabric.impl.registry.sync.trackers.IdListTracker;
 
 @Mixin(BlockColors.class)
 public class MixinBlockColorMap {
diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinItemColorMap.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/client/MixinItemColorMap.java
similarity index 91%
rename from fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinItemColorMap.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/client/MixinItemColorMap.java
index 451d5d769..681aa2e18 100644
--- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinItemColorMap.java
+++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/client/MixinItemColorMap.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.registry.client;
+package net.fabricmc.fabric.mixin.registry.sync.client;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Shadow;
@@ -27,7 +27,7 @@ import net.minecraft.client.color.item.ItemColors;
 import net.minecraft.util.IdList;
 import net.minecraft.util.registry.Registry;
 
-import net.fabricmc.fabric.impl.registry.trackers.IdListTracker;
+import net.fabricmc.fabric.impl.registry.sync.trackers.IdListTracker;
 
 @Mixin(ItemColors.class)
 public class MixinItemColorMap {
diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinItemModelMap.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/client/MixinItemModelMap.java
similarity index 92%
rename from fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinItemModelMap.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/client/MixinItemModelMap.java
index 814a5125d..d633a2e17 100644
--- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinItemModelMap.java
+++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/client/MixinItemModelMap.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.registry.client;
+package net.fabricmc.fabric.mixin.registry.sync.client;
 
 import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
 import org.spongepowered.asm.mixin.Mixin;
@@ -29,7 +29,7 @@ import net.minecraft.client.render.model.BakedModelManager;
 import net.minecraft.client.util.ModelIdentifier;
 import net.minecraft.util.registry.Registry;
 
-import net.fabricmc.fabric.impl.registry.trackers.Int2ObjectMapTracker;
+import net.fabricmc.fabric.impl.registry.sync.trackers.Int2ObjectMapTracker;
 
 @Mixin(ItemModels.class)
 public class MixinItemModelMap {
diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinMinecraftClient.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/client/MixinMinecraftClient.java
similarity index 89%
rename from fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinMinecraftClient.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/client/MixinMinecraftClient.java
index b62b17d3c..f6cf7c241 100644
--- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinMinecraftClient.java
+++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/client/MixinMinecraftClient.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.registry.client;
+package net.fabricmc.fabric.mixin.registry.sync.client;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -27,8 +27,8 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
 import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.gui.screen.Screen;
 
-import net.fabricmc.fabric.impl.registry.RegistrySyncManager;
-import net.fabricmc.fabric.impl.registry.RemapException;
+import net.fabricmc.fabric.impl.registry.sync.RegistrySyncManager;
+import net.fabricmc.fabric.impl.registry.sync.RemapException;
 
 @Mixin(MinecraftClient.class)
 public class MixinMinecraftClient {
diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinParticleManager.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/client/MixinParticleManager.java
similarity index 91%
rename from fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinParticleManager.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/client/MixinParticleManager.java
index 5480b0d83..2524213de 100644
--- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinParticleManager.java
+++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/client/MixinParticleManager.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.registry.client;
+package net.fabricmc.fabric.mixin.registry.sync.client;
 
 import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
 import org.spongepowered.asm.mixin.Mixin;
@@ -29,7 +29,7 @@ import net.minecraft.client.texture.TextureManager;
 import net.minecraft.util.registry.Registry;
 import net.minecraft.world.World;
 
-import net.fabricmc.fabric.impl.registry.trackers.Int2ObjectMapTracker;
+import net.fabricmc.fabric.impl.registry.sync.trackers.Int2ObjectMapTracker;
 
 @Mixin(ParticleManager.class)
 public class MixinParticleManager {
diff --git a/fabric-registry-sync-v0/src/main/resources/fabric-registry-sync-v0.mixins.json b/fabric-registry-sync-v0/src/main/resources/fabric-registry-sync-v0.mixins.json
index 5b6b51b78..13c109bd8 100644
--- a/fabric-registry-sync-v0/src/main/resources/fabric-registry-sync-v0.mixins.json
+++ b/fabric-registry-sync-v0/src/main/resources/fabric-registry-sync-v0.mixins.json
@@ -1,6 +1,6 @@
 {
   "required": true,
-  "package": "net.fabricmc.fabric.mixin.registry",
+  "package": "net.fabricmc.fabric.mixin.registry.sync",
   "compatibilityLevel": "JAVA_8",
   "mixins": [
     "MixinBootstrap",
diff --git a/fabric-registry-sync-v0/src/main/resources/fabric.mod.json b/fabric-registry-sync-v0/src/main/resources/fabric.mod.json
index b3af9c86b..56a6f76ff 100644
--- a/fabric-registry-sync-v0/src/main/resources/fabric.mod.json
+++ b/fabric-registry-sync-v0/src/main/resources/fabric.mod.json
@@ -26,7 +26,7 @@
   ],
   "entrypoints": {
     "client": [
-      "net.fabricmc.fabric.impl.registry.FabricRegistryClientInit"
+      "net.fabricmc.fabric.impl.registry.sync.FabricRegistryClientInit"
     ]
   }
 }
diff --git a/fabric-renderer-indigo/build.gradle b/fabric-renderer-indigo/build.gradle
index e9081a4e6..7807013dd 100644
--- a/fabric-renderer-indigo/build.gradle
+++ b/fabric-renderer-indigo/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-renderer-indigo"
-version = getSubprojectVersion(project, "0.2.9")
+version = getSubprojectVersion(project, "0.2.10")
 
 dependencies {
 	compile project(path: ':fabric-api-base', configuration: 'dev')
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/Indigo.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/Indigo.java
similarity index 96%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/Indigo.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/Indigo.java
index c62bface3..9266c6455 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/Indigo.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/Indigo.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo;
+package net.fabricmc.fabric.impl.client.indigo;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -29,8 +29,8 @@ import org.apache.logging.log4j.Logger;
 import net.fabricmc.api.ClientModInitializer;
 import net.fabricmc.fabric.api.renderer.v1.RendererAccess;
 import net.fabricmc.fabric.api.util.TriState;
-import net.fabricmc.indigo.renderer.IndigoRenderer;
-import net.fabricmc.indigo.renderer.aocalc.AoConfig;
+import net.fabricmc.fabric.impl.client.indigo.renderer.IndigoRenderer;
+import net.fabricmc.fabric.impl.client.indigo.renderer.aocalc.AoConfig;
 import net.fabricmc.loader.api.FabricLoader;
 
 public class Indigo implements ClientModInitializer {
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/IndigoConfig.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/IndigoConfig.java
similarity index 93%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/IndigoConfig.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/IndigoConfig.java
index 9969e6885..5d8f2465d 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/IndigoConfig.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/IndigoConfig.java
@@ -14,6 +14,6 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo;
+package net.fabricmc.fabric.impl.client.indigo;
 
 public class IndigoConfig { }
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/IndigoMixinConfigPlugin.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/IndigoMixinConfigPlugin.java
similarity index 98%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/IndigoMixinConfigPlugin.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/IndigoMixinConfigPlugin.java
index da32c832d..d6233bbc0 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/IndigoMixinConfigPlugin.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/IndigoMixinConfigPlugin.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo;
+package net.fabricmc.fabric.impl.client.indigo;
 
 import java.util.List;
 import java.util.Set;
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/IndigoRenderer.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/IndigoRenderer.java
similarity index 90%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/IndigoRenderer.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/IndigoRenderer.java
index fa005f0ec..df1cbc669 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/IndigoRenderer.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/IndigoRenderer.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer;
+package net.fabricmc.fabric.impl.client.indigo.renderer;
 
 import java.util.HashMap;
 
@@ -24,8 +24,8 @@ import net.fabricmc.fabric.api.renderer.v1.Renderer;
 import net.fabricmc.fabric.api.renderer.v1.material.MaterialFinder;
 import net.fabricmc.fabric.api.renderer.v1.material.RenderMaterial;
 import net.fabricmc.fabric.api.renderer.v1.mesh.MeshBuilder;
-import net.fabricmc.indigo.renderer.RenderMaterialImpl.Value;
-import net.fabricmc.indigo.renderer.mesh.MeshBuilderImpl;
+import net.fabricmc.fabric.impl.client.indigo.renderer.RenderMaterialImpl.Value;
+import net.fabricmc.fabric.impl.client.indigo.renderer.mesh.MeshBuilderImpl;
 
 /**
  * The Fabric default renderer implementation. Supports all
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/RenderMaterialImpl.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/RenderMaterialImpl.java
similarity index 98%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/RenderMaterialImpl.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/RenderMaterialImpl.java
index 1fa71bede..0f5653045 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/RenderMaterialImpl.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/RenderMaterialImpl.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer;
+package net.fabricmc.fabric.impl.client.indigo.renderer;
 
 import com.google.common.base.Preconditions;
 
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/accessor/AccessAmbientOcclusionCalculator.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/accessor/AccessAmbientOcclusionCalculator.java
similarity index 94%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/accessor/AccessAmbientOcclusionCalculator.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/accessor/AccessAmbientOcclusionCalculator.java
index 98443860a..77e13f2aa 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/accessor/AccessAmbientOcclusionCalculator.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/accessor/AccessAmbientOcclusionCalculator.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.accessor;
+package net.fabricmc.fabric.impl.client.indigo.renderer.accessor;
 
 import java.util.BitSet;
 
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/accessor/AccessBlockModelRenderer.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/accessor/AccessBlockModelRenderer.java
similarity index 93%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/accessor/AccessBlockModelRenderer.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/accessor/AccessBlockModelRenderer.java
index 8f95e2a7d..6ac36fec3 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/accessor/AccessBlockModelRenderer.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/accessor/AccessBlockModelRenderer.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.accessor;
+package net.fabricmc.fabric.impl.client.indigo.renderer.accessor;
 
 import java.util.BitSet;
 
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/accessor/AccessChunkRenderer.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/accessor/AccessChunkRenderer.java
similarity index 92%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/accessor/AccessChunkRenderer.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/accessor/AccessChunkRenderer.java
index 30ca83295..796832263 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/accessor/AccessChunkRenderer.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/accessor/AccessChunkRenderer.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.accessor;
+package net.fabricmc.fabric.impl.client.indigo.renderer.accessor;
 
 import net.minecraft.client.render.BufferBuilder;
 
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/accessor/AccessChunkRendererData.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/accessor/AccessChunkRendererData.java
similarity index 94%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/accessor/AccessChunkRendererData.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/accessor/AccessChunkRendererData.java
index 0f2a387c9..9b98a3fba 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/accessor/AccessChunkRendererData.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/accessor/AccessChunkRendererData.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.accessor;
+package net.fabricmc.fabric.impl.client.indigo.renderer.accessor;
 
 import net.minecraft.client.render.RenderLayer;
 
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/accessor/AccessChunkRendererRegion.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/accessor/AccessChunkRendererRegion.java
similarity index 85%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/accessor/AccessChunkRendererRegion.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/accessor/AccessChunkRendererRegion.java
index 852fc573f..ab67ce098 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/accessor/AccessChunkRendererRegion.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/accessor/AccessChunkRendererRegion.java
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.accessor;
+package net.fabricmc.fabric.impl.client.indigo.renderer.accessor;
 
-import net.fabricmc.indigo.renderer.render.TerrainRenderContext;
+import net.fabricmc.fabric.impl.client.indigo.renderer.render.TerrainRenderContext;
 
 /**
  * Used to stash block renderer reference in local scope during
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/aocalc/AoCalculator.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/aocalc/AoCalculator.java
similarity index 95%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/aocalc/AoCalculator.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/aocalc/AoCalculator.java
index 0ac4c9853..47039d3cb 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/aocalc/AoCalculator.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/aocalc/AoCalculator.java
@@ -14,12 +14,12 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.aocalc;
+package net.fabricmc.fabric.impl.client.indigo.renderer.aocalc;
 
 import static java.lang.Math.max;
-import static net.fabricmc.indigo.renderer.helper.GeometryHelper.AXIS_ALIGNED_FLAG;
-import static net.fabricmc.indigo.renderer.helper.GeometryHelper.CUBIC_FLAG;
-import static net.fabricmc.indigo.renderer.helper.GeometryHelper.LIGHT_FACE_FLAG;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.helper.GeometryHelper.AXIS_ALIGNED_FLAG;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.helper.GeometryHelper.CUBIC_FLAG;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.helper.GeometryHelper.LIGHT_FACE_FLAG;
 import static net.minecraft.util.math.Direction.DOWN;
 import static net.minecraft.util.math.Direction.EAST;
 import static net.minecraft.util.math.Direction.NORTH;
@@ -42,13 +42,13 @@ import net.minecraft.world.BlockRenderView;
 
 import net.fabricmc.api.EnvType;
 import net.fabricmc.api.Environment;
-import net.fabricmc.indigo.Indigo;
-import net.fabricmc.indigo.renderer.accessor.AccessAmbientOcclusionCalculator;
-import net.fabricmc.indigo.renderer.aocalc.AoFace.WeightFunction;
-import net.fabricmc.indigo.renderer.mesh.EncodingFormat;
-import net.fabricmc.indigo.renderer.mesh.MutableQuadViewImpl;
-import net.fabricmc.indigo.renderer.mesh.QuadViewImpl;
-import net.fabricmc.indigo.renderer.render.BlockRenderInfo;
+import net.fabricmc.fabric.impl.client.indigo.Indigo;
+import net.fabricmc.fabric.impl.client.indigo.renderer.accessor.AccessAmbientOcclusionCalculator;
+import net.fabricmc.fabric.impl.client.indigo.renderer.aocalc.AoFace.WeightFunction;
+import net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat;
+import net.fabricmc.fabric.impl.client.indigo.renderer.mesh.MutableQuadViewImpl;
+import net.fabricmc.fabric.impl.client.indigo.renderer.mesh.QuadViewImpl;
+import net.fabricmc.fabric.impl.client.indigo.renderer.render.BlockRenderInfo;
 
 /**
  * Adaptation of inner, non-static class in BlockModelRenderer that serves same purpose.
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/aocalc/AoConfig.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/aocalc/AoConfig.java
similarity index 97%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/aocalc/AoConfig.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/aocalc/AoConfig.java
index 95b9f8225..38c7fd54a 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/aocalc/AoConfig.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/aocalc/AoConfig.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.aocalc;
+package net.fabricmc.fabric.impl.client.indigo.renderer.aocalc;
 
 /**
  * Defines the configuration modes for the AoCalculator.
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/aocalc/AoFace.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/aocalc/AoFace.java
similarity index 94%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/aocalc/AoFace.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/aocalc/AoFace.java
index aed2e8c5c..b99f63c99 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/aocalc/AoFace.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/aocalc/AoFace.java
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.aocalc;
+package net.fabricmc.fabric.impl.client.indigo.renderer.aocalc;
 
-import static net.fabricmc.indigo.renderer.aocalc.AoVertexClampFunction.CLAMP_FUNC;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.aocalc.AoVertexClampFunction.CLAMP_FUNC;
 import static net.minecraft.util.math.Direction.DOWN;
 import static net.minecraft.util.math.Direction.EAST;
 import static net.minecraft.util.math.Direction.NORTH;
@@ -29,7 +29,7 @@ import net.minecraft.util.math.Direction;
 
 import net.fabricmc.api.EnvType;
 import net.fabricmc.api.Environment;
-import net.fabricmc.indigo.renderer.mesh.QuadViewImpl;
+import net.fabricmc.fabric.impl.client.indigo.renderer.mesh.QuadViewImpl;
 
 /**
  * Adapted from vanilla BlockModelRenderer.AoCalculator.
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/aocalc/AoFaceData.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/aocalc/AoFaceData.java
similarity index 97%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/aocalc/AoFaceData.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/aocalc/AoFaceData.java
index 36962a4f8..06f091b37 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/aocalc/AoFaceData.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/aocalc/AoFaceData.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.aocalc;
+package net.fabricmc.fabric.impl.client.indigo.renderer.aocalc;
 
 /**
  * Holds per-corner results for a single block face.
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/aocalc/AoLuminanceFix.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/aocalc/AoLuminanceFix.java
similarity index 92%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/aocalc/AoLuminanceFix.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/aocalc/AoLuminanceFix.java
index 1ebbb905f..aa19ebc9c 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/aocalc/AoLuminanceFix.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/aocalc/AoLuminanceFix.java
@@ -14,13 +14,13 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.aocalc;
+package net.fabricmc.fabric.impl.client.indigo.renderer.aocalc;
 
 import net.minecraft.block.BlockState;
 import net.minecraft.util.math.BlockPos;
 import net.minecraft.world.BlockView;
 
-import net.fabricmc.indigo.Indigo;
+import net.fabricmc.fabric.impl.client.indigo.Indigo;
 
 /**
  * Implements a fix to prevent luminous blocks from casting AO shade.
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/aocalc/AoVertexClampFunction.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/aocalc/AoVertexClampFunction.java
similarity index 88%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/aocalc/AoVertexClampFunction.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/aocalc/AoVertexClampFunction.java
index d600f4869..16a032f4d 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/aocalc/AoVertexClampFunction.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/aocalc/AoVertexClampFunction.java
@@ -14,11 +14,11 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.aocalc;
+package net.fabricmc.fabric.impl.client.indigo.renderer.aocalc;
 
 import net.fabricmc.api.EnvType;
 import net.fabricmc.api.Environment;
-import net.fabricmc.indigo.Indigo;
+import net.fabricmc.fabric.impl.client.indigo.Indigo;
 
 @Environment(EnvType.CLIENT)
 @FunctionalInterface
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/aocalc/VanillaAoHelper.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/aocalc/VanillaAoHelper.java
similarity index 90%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/aocalc/VanillaAoHelper.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/aocalc/VanillaAoHelper.java
index ba7904bde..e878a5ca0 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/aocalc/VanillaAoHelper.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/aocalc/VanillaAoHelper.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.aocalc;
+package net.fabricmc.fabric.impl.client.indigo.renderer.aocalc;
 
 import java.lang.reflect.Constructor;
 import java.util.BitSet;
@@ -26,9 +26,9 @@ import net.minecraft.util.math.BlockPos;
 import net.minecraft.util.math.Direction;
 import net.minecraft.world.BlockRenderView;
 
-import net.fabricmc.indigo.Indigo;
-import net.fabricmc.indigo.renderer.accessor.AccessAmbientOcclusionCalculator;
-import net.fabricmc.indigo.renderer.accessor.AccessBlockModelRenderer;
+import net.fabricmc.fabric.impl.client.indigo.Indigo;
+import net.fabricmc.fabric.impl.client.indigo.renderer.accessor.AccessAmbientOcclusionCalculator;
+import net.fabricmc.fabric.impl.client.indigo.renderer.accessor.AccessBlockModelRenderer;
 import net.fabricmc.loader.api.FabricLoader;
 
 public class VanillaAoHelper {
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/helper/ColorHelper.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/helper/ColorHelper.java
similarity index 99%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/helper/ColorHelper.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/helper/ColorHelper.java
index 625581e4c..fa995db10 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/helper/ColorHelper.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/helper/ColorHelper.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.helper;
+package net.fabricmc.fabric.impl.client.indigo.renderer.helper;
 
 import java.nio.ByteOrder;
 
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/helper/GeometryHelper.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/helper/GeometryHelper.java
similarity index 99%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/helper/GeometryHelper.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/helper/GeometryHelper.java
index c2bd15861..6c81e8017 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/helper/GeometryHelper.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/helper/GeometryHelper.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.helper;
+package net.fabricmc.fabric.impl.client.indigo.renderer.helper;
 
 import static net.minecraft.util.math.MathHelper.approximatelyEquals;
 
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/helper/NormalHelper.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/helper/NormalHelper.java
similarity index 98%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/helper/NormalHelper.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/helper/NormalHelper.java
index 6668e967e..e6cf4c31d 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/helper/NormalHelper.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/helper/NormalHelper.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.helper;
+package net.fabricmc.fabric.impl.client.indigo.renderer.helper;
 
 import net.minecraft.client.util.math.Vector3f;
 import net.minecraft.util.math.Direction;
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/helper/TextureHelper.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/helper/TextureHelper.java
similarity index 98%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/helper/TextureHelper.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/helper/TextureHelper.java
index a0c8a1508..ca5326ea1 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/helper/TextureHelper.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/helper/TextureHelper.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.helper;
+package net.fabricmc.fabric.impl.client.indigo.renderer.helper;
 
 import net.minecraft.client.texture.Sprite;
 import net.minecraft.util.math.Direction;
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mesh/EncodingFormat.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/mesh/EncodingFormat.java
similarity index 96%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mesh/EncodingFormat.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/mesh/EncodingFormat.java
index 256115bf0..a29245ded 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mesh/EncodingFormat.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/mesh/EncodingFormat.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.mesh;
+package net.fabricmc.fabric.impl.client.indigo.renderer.mesh;
 
 import com.google.common.base.Preconditions;
 
@@ -25,8 +25,8 @@ import net.minecraft.util.math.MathHelper;
 
 import net.fabricmc.fabric.api.renderer.v1.mesh.QuadView;
 import net.fabricmc.fabric.api.renderer.v1.model.ModelHelper;
-import net.fabricmc.indigo.renderer.RenderMaterialImpl;
-import net.fabricmc.indigo.renderer.helper.GeometryHelper;
+import net.fabricmc.fabric.impl.client.indigo.renderer.RenderMaterialImpl;
+import net.fabricmc.fabric.impl.client.indigo.renderer.helper.GeometryHelper;
 
 /**
  * Holds all the array offsets and bit-wise encoders/decoders for
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mesh/MeshBuilderImpl.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/mesh/MeshBuilderImpl.java
similarity index 92%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mesh/MeshBuilderImpl.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/mesh/MeshBuilderImpl.java
index f5e593c25..6ac1a70c2 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mesh/MeshBuilderImpl.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/mesh/MeshBuilderImpl.java
@@ -14,13 +14,13 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.mesh;
+package net.fabricmc.fabric.impl.client.indigo.renderer.mesh;
 
 import net.fabricmc.fabric.api.renderer.v1.mesh.Mesh;
 import net.fabricmc.fabric.api.renderer.v1.mesh.MeshBuilder;
 import net.fabricmc.fabric.api.renderer.v1.mesh.QuadEmitter;
-import net.fabricmc.indigo.renderer.helper.ColorHelper;
-import net.fabricmc.indigo.renderer.helper.GeometryHelper;
+import net.fabricmc.fabric.impl.client.indigo.renderer.helper.ColorHelper;
+import net.fabricmc.fabric.impl.client.indigo.renderer.helper.GeometryHelper;
 
 /**
  * Our implementation of {@link MeshBuilder}, used for static mesh creation and baking.
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mesh/MeshImpl.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/mesh/MeshImpl.java
similarity index 96%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mesh/MeshImpl.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/mesh/MeshImpl.java
index bcb98fefb..0fcc68cb6 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mesh/MeshImpl.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/mesh/MeshImpl.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.mesh;
+package net.fabricmc.fabric.impl.client.indigo.renderer.mesh;
 
 import java.util.function.Consumer;
 
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mesh/MutableQuadViewImpl.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/mesh/MutableQuadViewImpl.java
similarity index 76%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mesh/MutableQuadViewImpl.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/mesh/MutableQuadViewImpl.java
index ac2f8eba9..71b1a15f3 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mesh/MutableQuadViewImpl.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/mesh/MutableQuadViewImpl.java
@@ -14,20 +14,20 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.mesh;
+package net.fabricmc.fabric.impl.client.indigo.renderer.mesh;
 
-import static net.fabricmc.indigo.renderer.mesh.EncodingFormat.EMPTY;
-import static net.fabricmc.indigo.renderer.mesh.EncodingFormat.HEADER_BITS;
-import static net.fabricmc.indigo.renderer.mesh.EncodingFormat.HEADER_COLOR_INDEX;
-import static net.fabricmc.indigo.renderer.mesh.EncodingFormat.HEADER_STRIDE;
-import static net.fabricmc.indigo.renderer.mesh.EncodingFormat.HEADER_TAG;
-import static net.fabricmc.indigo.renderer.mesh.EncodingFormat.QUAD_STRIDE;
-import static net.fabricmc.indigo.renderer.mesh.EncodingFormat.VERTEX_COLOR;
-import static net.fabricmc.indigo.renderer.mesh.EncodingFormat.VERTEX_LIGHTMAP;
-import static net.fabricmc.indigo.renderer.mesh.EncodingFormat.VERTEX_NORMAL;
-import static net.fabricmc.indigo.renderer.mesh.EncodingFormat.VERTEX_STRIDE;
-import static net.fabricmc.indigo.renderer.mesh.EncodingFormat.VERTEX_U;
-import static net.fabricmc.indigo.renderer.mesh.EncodingFormat.VERTEX_X;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat.EMPTY;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat.HEADER_BITS;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat.HEADER_COLOR_INDEX;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat.HEADER_STRIDE;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat.HEADER_TAG;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat.QUAD_STRIDE;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat.VERTEX_COLOR;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat.VERTEX_LIGHTMAP;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat.VERTEX_NORMAL;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat.VERTEX_STRIDE;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat.VERTEX_U;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat.VERTEX_X;
 
 import com.google.common.base.Preconditions;
 
@@ -36,12 +36,12 @@ import net.minecraft.util.math.Direction;
 
 import net.fabricmc.fabric.api.renderer.v1.material.RenderMaterial;
 import net.fabricmc.fabric.api.renderer.v1.mesh.QuadEmitter;
-import net.fabricmc.indigo.renderer.IndigoRenderer;
-import net.fabricmc.indigo.renderer.RenderMaterialImpl.Value;
-import net.fabricmc.indigo.renderer.helper.ColorHelper.ShadeableQuad;
-import net.fabricmc.indigo.renderer.helper.GeometryHelper;
-import net.fabricmc.indigo.renderer.helper.NormalHelper;
-import net.fabricmc.indigo.renderer.helper.TextureHelper;
+import net.fabricmc.fabric.impl.client.indigo.renderer.IndigoRenderer;
+import net.fabricmc.fabric.impl.client.indigo.renderer.RenderMaterialImpl.Value;
+import net.fabricmc.fabric.impl.client.indigo.renderer.helper.GeometryHelper;
+import net.fabricmc.fabric.impl.client.indigo.renderer.helper.NormalHelper;
+import net.fabricmc.fabric.impl.client.indigo.renderer.helper.TextureHelper;
+import net.fabricmc.fabric.impl.client.indigo.renderer.helper.ColorHelper.ShadeableQuad;
 
 /**
  * Almost-concrete implementation of a mutable quad. The only missing part is {@link #emit()},
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mesh/QuadViewImpl.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/mesh/QuadViewImpl.java
similarity index 83%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mesh/QuadViewImpl.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/mesh/QuadViewImpl.java
index f8555ac2b..7b5760945 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mesh/QuadViewImpl.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/mesh/QuadViewImpl.java
@@ -14,22 +14,22 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.mesh;
+package net.fabricmc.fabric.impl.client.indigo.renderer.mesh;
 
-import static net.fabricmc.indigo.renderer.mesh.EncodingFormat.HEADER_BITS;
-import static net.fabricmc.indigo.renderer.mesh.EncodingFormat.HEADER_COLOR_INDEX;
-import static net.fabricmc.indigo.renderer.mesh.EncodingFormat.HEADER_STRIDE;
-import static net.fabricmc.indigo.renderer.mesh.EncodingFormat.HEADER_TAG;
-import static net.fabricmc.indigo.renderer.mesh.EncodingFormat.QUAD_STRIDE;
-import static net.fabricmc.indigo.renderer.mesh.EncodingFormat.VERTEX_COLOR;
-import static net.fabricmc.indigo.renderer.mesh.EncodingFormat.VERTEX_LIGHTMAP;
-import static net.fabricmc.indigo.renderer.mesh.EncodingFormat.VERTEX_NORMAL;
-import static net.fabricmc.indigo.renderer.mesh.EncodingFormat.VERTEX_STRIDE;
-import static net.fabricmc.indigo.renderer.mesh.EncodingFormat.VERTEX_U;
-import static net.fabricmc.indigo.renderer.mesh.EncodingFormat.VERTEX_V;
-import static net.fabricmc.indigo.renderer.mesh.EncodingFormat.VERTEX_X;
-import static net.fabricmc.indigo.renderer.mesh.EncodingFormat.VERTEX_Y;
-import static net.fabricmc.indigo.renderer.mesh.EncodingFormat.VERTEX_Z;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat.HEADER_BITS;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat.HEADER_COLOR_INDEX;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat.HEADER_STRIDE;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat.HEADER_TAG;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat.QUAD_STRIDE;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat.VERTEX_COLOR;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat.VERTEX_LIGHTMAP;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat.VERTEX_NORMAL;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat.VERTEX_STRIDE;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat.VERTEX_U;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat.VERTEX_V;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat.VERTEX_X;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat.VERTEX_Y;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat.VERTEX_Z;
 
 import com.google.common.base.Preconditions;
 
@@ -38,9 +38,9 @@ import net.minecraft.util.math.Direction;
 
 import net.fabricmc.fabric.api.renderer.v1.mesh.MutableQuadView;
 import net.fabricmc.fabric.api.renderer.v1.mesh.QuadView;
-import net.fabricmc.indigo.renderer.RenderMaterialImpl;
-import net.fabricmc.indigo.renderer.helper.GeometryHelper;
-import net.fabricmc.indigo.renderer.helper.NormalHelper;
+import net.fabricmc.fabric.impl.client.indigo.renderer.RenderMaterialImpl;
+import net.fabricmc.fabric.impl.client.indigo.renderer.helper.GeometryHelper;
+import net.fabricmc.fabric.impl.client.indigo.renderer.helper.NormalHelper;
 
 /**
  * Base class for all quads / quad makers. Handles the ugly bits
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/AbstractMeshConsumer.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/AbstractMeshConsumer.java
similarity index 85%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/AbstractMeshConsumer.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/AbstractMeshConsumer.java
index 2c72a0fff..b2362d320 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/AbstractMeshConsumer.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/AbstractMeshConsumer.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.render;
+package net.fabricmc.fabric.impl.client.indigo.renderer.render;
 
 import java.util.function.Consumer;
 import java.util.function.Function;
@@ -26,14 +26,14 @@ import net.minecraft.client.render.VertexConsumer;
 import net.fabricmc.fabric.api.renderer.v1.mesh.Mesh;
 import net.fabricmc.fabric.api.renderer.v1.mesh.QuadEmitter;
 import net.fabricmc.fabric.api.renderer.v1.render.RenderContext.QuadTransform;
-import net.fabricmc.indigo.renderer.IndigoRenderer;
-import net.fabricmc.indigo.renderer.RenderMaterialImpl;
-import net.fabricmc.indigo.renderer.aocalc.AoCalculator;
-import net.fabricmc.indigo.renderer.helper.ColorHelper;
-import net.fabricmc.indigo.renderer.helper.GeometryHelper;
-import net.fabricmc.indigo.renderer.mesh.EncodingFormat;
-import net.fabricmc.indigo.renderer.mesh.MeshImpl;
-import net.fabricmc.indigo.renderer.mesh.MutableQuadViewImpl;
+import net.fabricmc.fabric.impl.client.indigo.renderer.IndigoRenderer;
+import net.fabricmc.fabric.impl.client.indigo.renderer.RenderMaterialImpl;
+import net.fabricmc.fabric.impl.client.indigo.renderer.aocalc.AoCalculator;
+import net.fabricmc.fabric.impl.client.indigo.renderer.helper.ColorHelper;
+import net.fabricmc.fabric.impl.client.indigo.renderer.helper.GeometryHelper;
+import net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat;
+import net.fabricmc.fabric.impl.client.indigo.renderer.mesh.MeshImpl;
+import net.fabricmc.fabric.impl.client.indigo.renderer.mesh.MutableQuadViewImpl;
 
 /**
  * Consumer for pre-baked meshes.  Works by copying the mesh data to a
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/AbstractQuadRenderer.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/AbstractQuadRenderer.java
similarity index 93%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/AbstractQuadRenderer.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/AbstractQuadRenderer.java
index dff5f42b0..34a30396a 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/AbstractQuadRenderer.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/AbstractQuadRenderer.java
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.render;
+package net.fabricmc.fabric.impl.client.indigo.renderer.render;
 
-import static net.fabricmc.indigo.renderer.helper.GeometryHelper.LIGHT_FACE_FLAG;
+import static net.fabricmc.fabric.impl.client.indigo.renderer.helper.GeometryHelper.LIGHT_FACE_FLAG;
 
 import java.util.function.Function;
 
@@ -30,9 +30,9 @@ import net.minecraft.util.math.BlockPos;
 import net.minecraft.client.util.math.Matrix3f;
 
 import net.fabricmc.fabric.api.renderer.v1.render.RenderContext.QuadTransform;
-import net.fabricmc.indigo.renderer.aocalc.AoCalculator;
-import net.fabricmc.indigo.renderer.helper.ColorHelper;
-import net.fabricmc.indigo.renderer.mesh.MutableQuadViewImpl;
+import net.fabricmc.fabric.impl.client.indigo.renderer.aocalc.AoCalculator;
+import net.fabricmc.fabric.impl.client.indigo.renderer.helper.ColorHelper;
+import net.fabricmc.fabric.impl.client.indigo.renderer.mesh.MutableQuadViewImpl;
 
 /**
  * Base quad-rendering class for fallback and mesh consumers.
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/AbstractRenderContext.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/AbstractRenderContext.java
similarity index 97%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/AbstractRenderContext.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/AbstractRenderContext.java
index 9aefc9d3e..9dd537b5e 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/AbstractRenderContext.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/AbstractRenderContext.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.render;
+package net.fabricmc.fabric.impl.client.indigo.renderer.render;
 
 import it.unimi.dsi.fastutil.objects.ObjectArrayList;
 
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/BlockRenderContext.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/BlockRenderContext.java
similarity index 95%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/BlockRenderContext.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/BlockRenderContext.java
index 771110e27..7ff7dfce4 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/BlockRenderContext.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/BlockRenderContext.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.render;
+package net.fabricmc.fabric.impl.client.indigo.renderer.render;
 
 import java.util.Random;
 import java.util.function.Consumer;
@@ -35,8 +35,8 @@ import net.fabricmc.fabric.api.renderer.v1.mesh.Mesh;
 import net.fabricmc.fabric.api.renderer.v1.mesh.QuadEmitter;
 import net.fabricmc.fabric.api.renderer.v1.model.FabricBakedModel;
 import net.fabricmc.fabric.api.renderer.v1.render.RenderContext;
-import net.fabricmc.indigo.renderer.aocalc.AoCalculator;
-import net.fabricmc.indigo.renderer.aocalc.AoLuminanceFix;
+import net.fabricmc.fabric.impl.client.indigo.renderer.aocalc.AoCalculator;
+import net.fabricmc.fabric.impl.client.indigo.renderer.aocalc.AoLuminanceFix;
 
 /**
  * Context for non-terrain block rendering.
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/BlockRenderInfo.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/BlockRenderInfo.java
similarity index 97%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/BlockRenderInfo.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/BlockRenderInfo.java
index 987b9eb49..090a74ff2 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/BlockRenderInfo.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/BlockRenderInfo.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.render;
+package net.fabricmc.fabric.impl.client.indigo.renderer.render;
 
 import java.util.Random;
 import java.util.function.Supplier;
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/ChunkRenderInfo.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/ChunkRenderInfo.java
similarity index 94%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/ChunkRenderInfo.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/ChunkRenderInfo.java
index 8287517da..1a5d0abbd 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/ChunkRenderInfo.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/ChunkRenderInfo.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.render;
+package net.fabricmc.fabric.impl.client.indigo.renderer.render;
 
 import it.unimi.dsi.fastutil.longs.Long2FloatOpenHashMap;
 import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap;
@@ -30,9 +30,9 @@ import net.minecraft.client.render.chunk.ChunkRendererRegion;
 import net.minecraft.util.math.BlockPos;
 import net.minecraft.world.BlockRenderView;
 
-import net.fabricmc.indigo.renderer.accessor.AccessChunkRenderer;
-import net.fabricmc.indigo.renderer.accessor.AccessChunkRendererData;
-import net.fabricmc.indigo.renderer.aocalc.AoLuminanceFix;
+import net.fabricmc.fabric.impl.client.indigo.renderer.accessor.AccessChunkRenderer;
+import net.fabricmc.fabric.impl.client.indigo.renderer.accessor.AccessChunkRendererData;
+import net.fabricmc.fabric.impl.client.indigo.renderer.aocalc.AoLuminanceFix;
 
 /**
  * Holds, manages and provides access to the chunk-related state
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/CompatibilityHelper.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/CompatibilityHelper.java
similarity index 87%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/CompatibilityHelper.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/CompatibilityHelper.java
index d0e4a54d4..1c275603d 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/CompatibilityHelper.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/CompatibilityHelper.java
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.render;
+package net.fabricmc.fabric.impl.client.indigo.renderer.render;
 
-import net.fabricmc.indigo.Indigo;
-import net.fabricmc.indigo.renderer.mesh.EncodingFormat;
+import net.fabricmc.fabric.impl.client.indigo.Indigo;
+import net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat;
 
 /**
  * Controls 1x warning for vanilla quad vertex format when running in compatibility mode.
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/ItemRenderContext.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/ItemRenderContext.java
similarity index 92%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/ItemRenderContext.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/ItemRenderContext.java
index dd1944ff0..55b15c3be 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/ItemRenderContext.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/ItemRenderContext.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.render;
+package net.fabricmc.fabric.impl.client.indigo.renderer.render;
 
 import java.util.List;
 import java.util.Random;
@@ -37,12 +37,12 @@ import net.fabricmc.fabric.api.renderer.v1.mesh.QuadEmitter;
 import net.fabricmc.fabric.api.renderer.v1.model.FabricBakedModel;
 import net.fabricmc.fabric.api.renderer.v1.model.ModelHelper;
 import net.fabricmc.fabric.api.renderer.v1.render.RenderContext;
-import net.fabricmc.indigo.renderer.RenderMaterialImpl;
-import net.fabricmc.indigo.renderer.helper.ColorHelper;
-import net.fabricmc.indigo.renderer.helper.GeometryHelper;
-import net.fabricmc.indigo.renderer.mesh.EncodingFormat;
-import net.fabricmc.indigo.renderer.mesh.MeshImpl;
-import net.fabricmc.indigo.renderer.mesh.MutableQuadViewImpl;
+import net.fabricmc.fabric.impl.client.indigo.renderer.RenderMaterialImpl;
+import net.fabricmc.fabric.impl.client.indigo.renderer.helper.ColorHelper;
+import net.fabricmc.fabric.impl.client.indigo.renderer.helper.GeometryHelper;
+import net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat;
+import net.fabricmc.fabric.impl.client.indigo.renderer.mesh.MeshImpl;
+import net.fabricmc.fabric.impl.client.indigo.renderer.mesh.MutableQuadViewImpl;
 
 /**
  * The render context used for item rendering.
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/TerrainBlockRenderInfo.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/TerrainBlockRenderInfo.java
similarity index 95%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/TerrainBlockRenderInfo.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/TerrainBlockRenderInfo.java
index 476f9c83f..f75b98439 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/TerrainBlockRenderInfo.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/TerrainBlockRenderInfo.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.render;
+package net.fabricmc.fabric.impl.client.indigo.renderer.render;
 
 import net.minecraft.block.Block;
 import net.minecraft.block.BlockState;
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/TerrainFallbackConsumer.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/TerrainFallbackConsumer.java
similarity index 91%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/TerrainFallbackConsumer.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/TerrainFallbackConsumer.java
index 25ceb0bc6..350dfaf8b 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/TerrainFallbackConsumer.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/TerrainFallbackConsumer.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.render;
+package net.fabricmc.fabric.impl.client.indigo.renderer.render;
 
 import java.util.List;
 import java.util.Random;
@@ -32,12 +32,12 @@ import net.minecraft.util.math.Direction;
 import net.fabricmc.fabric.api.renderer.v1.mesh.QuadEmitter;
 import net.fabricmc.fabric.api.renderer.v1.model.ModelHelper;
 import net.fabricmc.fabric.api.renderer.v1.render.RenderContext.QuadTransform;
-import net.fabricmc.indigo.renderer.IndigoRenderer;
-import net.fabricmc.indigo.renderer.RenderMaterialImpl.Value;
-import net.fabricmc.indigo.renderer.aocalc.AoCalculator;
-import net.fabricmc.indigo.renderer.helper.GeometryHelper;
-import net.fabricmc.indigo.renderer.mesh.EncodingFormat;
-import net.fabricmc.indigo.renderer.mesh.MutableQuadViewImpl;
+import net.fabricmc.fabric.impl.client.indigo.renderer.IndigoRenderer;
+import net.fabricmc.fabric.impl.client.indigo.renderer.RenderMaterialImpl.Value;
+import net.fabricmc.fabric.impl.client.indigo.renderer.aocalc.AoCalculator;
+import net.fabricmc.fabric.impl.client.indigo.renderer.helper.GeometryHelper;
+import net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat;
+import net.fabricmc.fabric.impl.client.indigo.renderer.mesh.MutableQuadViewImpl;
 
 /**
  * Consumer for vanilla baked models. Generally intended to give visual results matching a vanilla render,
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/TerrainRenderContext.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/TerrainRenderContext.java
similarity index 97%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/TerrainRenderContext.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/TerrainRenderContext.java
index 29b64ad43..0fb561fc3 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/TerrainRenderContext.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/TerrainRenderContext.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.render;
+package net.fabricmc.fabric.impl.client.indigo.renderer.render;
 
 import java.util.function.Consumer;
 
@@ -36,7 +36,7 @@ import net.fabricmc.fabric.api.renderer.v1.mesh.Mesh;
 import net.fabricmc.fabric.api.renderer.v1.mesh.QuadEmitter;
 import net.fabricmc.fabric.api.renderer.v1.model.FabricBakedModel;
 import net.fabricmc.fabric.api.renderer.v1.render.RenderContext;
-import net.fabricmc.indigo.renderer.aocalc.AoCalculator;
+import net.fabricmc.fabric.impl.client.indigo.renderer.aocalc.AoCalculator;
 
 /**
  * Implementation of {@link RenderContext} used during terrain rendering.
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mixin/MixinAmbientOcclusionCalculator.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinAmbientOcclusionCalculator.java
similarity index 91%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mixin/MixinAmbientOcclusionCalculator.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinAmbientOcclusionCalculator.java
index b825d2128..3a3ef9b67 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mixin/MixinAmbientOcclusionCalculator.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinAmbientOcclusionCalculator.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.mixin;
+package net.fabricmc.fabric.mixin.client.indigo.renderer;
 
 import java.util.BitSet;
 
@@ -26,7 +26,7 @@ import net.minecraft.util.math.BlockPos;
 import net.minecraft.util.math.Direction;
 import net.minecraft.world.BlockRenderView;
 
-import net.fabricmc.indigo.renderer.accessor.AccessAmbientOcclusionCalculator;
+import net.fabricmc.fabric.impl.client.indigo.renderer.accessor.AccessAmbientOcclusionCalculator;
 
 @Mixin(targets = "net.minecraft.client.render.block.BlockModelRenderer$AmbientOcclusionCalculator")
 public abstract class MixinAmbientOcclusionCalculator implements AccessAmbientOcclusionCalculator {
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mixin/MixinBlockModelRenderer.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinBlockModelRenderer.java
similarity index 90%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mixin/MixinBlockModelRenderer.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinBlockModelRenderer.java
index 890bcfba8..8ff986b12 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mixin/MixinBlockModelRenderer.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinBlockModelRenderer.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.mixin;
+package net.fabricmc.fabric.mixin.client.indigo.renderer;
 
 import java.util.BitSet;
 import java.util.Random;
@@ -37,9 +37,9 @@ import net.minecraft.util.math.Direction;
 import net.minecraft.world.BlockRenderView;
 
 import net.fabricmc.fabric.api.renderer.v1.model.FabricBakedModel;
-import net.fabricmc.indigo.renderer.accessor.AccessBlockModelRenderer;
-import net.fabricmc.indigo.renderer.aocalc.VanillaAoHelper;
-import net.fabricmc.indigo.renderer.render.BlockRenderContext;
+import net.fabricmc.fabric.impl.client.indigo.renderer.accessor.AccessBlockModelRenderer;
+import net.fabricmc.fabric.impl.client.indigo.renderer.aocalc.VanillaAoHelper;
+import net.fabricmc.fabric.impl.client.indigo.renderer.render.BlockRenderContext;
 
 @Mixin(BlockModelRenderer.class)
 public abstract class MixinBlockModelRenderer implements AccessBlockModelRenderer {
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mixin/MixinChunkRebuildTask.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinChunkRebuildTask.java
similarity index 95%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mixin/MixinChunkRebuildTask.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinChunkRebuildTask.java
index 5f2f4985a..a5420a0cd 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mixin/MixinChunkRebuildTask.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinChunkRebuildTask.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.mixin;
+package net.fabricmc.fabric.mixin.client.indigo.renderer;
 
 import java.util.Random;
 import java.util.Set;
@@ -42,9 +42,9 @@ import net.minecraft.util.math.BlockPos;
 import net.minecraft.world.BlockRenderView;
 
 import net.fabricmc.fabric.api.renderer.v1.model.FabricBakedModel;
-import net.fabricmc.indigo.Indigo;
-import net.fabricmc.indigo.renderer.accessor.AccessChunkRendererRegion;
-import net.fabricmc.indigo.renderer.render.TerrainRenderContext;
+import net.fabricmc.fabric.impl.client.indigo.Indigo;
+import net.fabricmc.fabric.impl.client.indigo.renderer.accessor.AccessChunkRendererRegion;
+import net.fabricmc.fabric.impl.client.indigo.renderer.render.TerrainRenderContext;
 
 /**
  * Implements the main hooks for terrain rendering. Attempts to tread
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mixin/MixinChunkRenderData.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinChunkRenderData.java
similarity index 89%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mixin/MixinChunkRenderData.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinChunkRenderData.java
index 635368b9e..b185f3e8d 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mixin/MixinChunkRenderData.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinChunkRenderData.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.mixin;
+package net.fabricmc.fabric.mixin.client.indigo.renderer;
 
 import java.util.Set;
 
@@ -24,7 +24,7 @@ import org.spongepowered.asm.mixin.Shadow;
 import net.minecraft.client.render.RenderLayer;
 import net.minecraft.client.render.chunk.ChunkBatcher.ChunkRenderData;
 
-import net.fabricmc.indigo.renderer.accessor.AccessChunkRendererData;
+import net.fabricmc.fabric.impl.client.indigo.renderer.accessor.AccessChunkRendererData;
 
 @Mixin(ChunkRenderData.class)
 public class MixinChunkRenderData implements AccessChunkRendererData {
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mixin/MixinChunkRenderer.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinChunkRenderer.java
similarity index 88%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mixin/MixinChunkRenderer.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinChunkRenderer.java
index 32e242e69..720e256af 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mixin/MixinChunkRenderer.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinChunkRenderer.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.mixin;
+package net.fabricmc.fabric.mixin.client.indigo.renderer;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Shadow;
@@ -22,7 +22,7 @@ import org.spongepowered.asm.mixin.Shadow;
 import net.minecraft.client.render.BufferBuilder;
 import net.minecraft.client.render.chunk.ChunkBatcher.ChunkRenderer;
 
-import net.fabricmc.indigo.renderer.accessor.AccessChunkRenderer;
+import net.fabricmc.fabric.impl.client.indigo.renderer.accessor.AccessChunkRenderer;
 
 @Mixin(ChunkRenderer.class)
 public abstract class MixinChunkRenderer implements AccessChunkRenderer {
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mixin/MixinChunkRendererRegion.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinChunkRendererRegion.java
similarity index 82%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mixin/MixinChunkRendererRegion.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinChunkRendererRegion.java
index 8e7e36493..ffebba643 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mixin/MixinChunkRendererRegion.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinChunkRendererRegion.java
@@ -14,14 +14,14 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.mixin;
+package net.fabricmc.fabric.mixin.client.indigo.renderer;
 
 import org.spongepowered.asm.mixin.Mixin;
 
 import net.minecraft.client.render.chunk.ChunkRendererRegion;
 
-import net.fabricmc.indigo.renderer.accessor.AccessChunkRendererRegion;
-import net.fabricmc.indigo.renderer.render.TerrainRenderContext;
+import net.fabricmc.fabric.impl.client.indigo.renderer.accessor.AccessChunkRendererRegion;
+import net.fabricmc.fabric.impl.client.indigo.renderer.render.TerrainRenderContext;
 
 @Mixin(ChunkRendererRegion.class)
 public abstract class MixinChunkRendererRegion implements AccessChunkRendererRegion {
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mixin/MixinItemRenderer.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinItemRenderer.java
similarity index 90%
rename from fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mixin/MixinItemRenderer.java
rename to fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinItemRenderer.java
index 0e9cf543e..3b3a5639b 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/mixin/MixinItemRenderer.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinItemRenderer.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.indigo.renderer.mixin;
+package net.fabricmc.fabric.mixin.client.indigo.renderer;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Shadow;
@@ -30,8 +30,8 @@ import net.minecraft.client.util.math.MatrixStack;
 import net.minecraft.item.ItemStack;
 
 import net.fabricmc.fabric.api.renderer.v1.model.FabricBakedModel;
-import net.fabricmc.indigo.renderer.render.ItemRenderContext;
-import net.fabricmc.indigo.renderer.render.ItemRenderContext.VanillaQuadHandler;
+import net.fabricmc.fabric.impl.client.indigo.renderer.render.ItemRenderContext;
+import net.fabricmc.fabric.impl.client.indigo.renderer.render.ItemRenderContext.VanillaQuadHandler;
 
 @Mixin(ItemRenderer.class)
 public abstract class MixinItemRenderer {
diff --git a/fabric-renderer-indigo/src/main/resources/fabric-renderer-indigo.mixins.json b/fabric-renderer-indigo/src/main/resources/fabric-renderer-indigo.mixins.json
index d1a99666b..dea7bcfe9 100755
--- a/fabric-renderer-indigo/src/main/resources/fabric-renderer-indigo.mixins.json
+++ b/fabric-renderer-indigo/src/main/resources/fabric-renderer-indigo.mixins.json
@@ -1,8 +1,8 @@
 {
   "required": true,
-  "package": "net.fabricmc.indigo.renderer.mixin",
+  "package": "net.fabricmc.fabric.mixin.client.indigo.renderer",
   "compatibilityLevel": "JAVA_8",
-  "plugin": "net.fabricmc.indigo.IndigoMixinConfigPlugin",
+  "plugin": "net.fabricmc.fabric.impl.client.indigo.IndigoMixinConfigPlugin",
   "mixins": [
   ],
   "client": [
@@ -17,4 +17,4 @@
   "injectors": {
     "defaultRequire": 1
   }
-}
\ No newline at end of file
+}
diff --git a/fabric-renderer-indigo/src/main/resources/fabric.mod.json b/fabric-renderer-indigo/src/main/resources/fabric.mod.json
index 738d3df7a..cc58f9fb1 100755
--- a/fabric-renderer-indigo/src/main/resources/fabric.mod.json
+++ b/fabric-renderer-indigo/src/main/resources/fabric.mod.json
@@ -27,7 +27,7 @@
   ],
   "entrypoints": {
     "client": [
-      "net.fabricmc.indigo.Indigo"
+      "net.fabricmc.fabric.impl.client.indigo.Indigo"
     ]
   }
 }
diff --git a/fabric-renderer-registries-v1/build.gradle b/fabric-renderer-registries-v1/build.gradle
index 05c0453b1..800104f19 100644
--- a/fabric-renderer-registries-v1/build.gradle
+++ b/fabric-renderer-registries-v1/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-renderer-registries-v1"
-version = getSubprojectVersion(project, "1.0.3")
+version = getSubprojectVersion(project, "1.0.4")
 
 dependencies {
 	compile project(path: ':fabric-api-base', configuration: 'dev')
diff --git a/fabric-renderer-registries-v1/src/main/java/net/fabricmc/fabric/api/client/rendereregistry/v1/BlockEntityRendererRegistry.java b/fabric-renderer-registries-v1/src/main/java/net/fabricmc/fabric/api/client/rendereregistry/v1/BlockEntityRendererRegistry.java
index c92bcd2b8..70baa771e 100644
--- a/fabric-renderer-registries-v1/src/main/java/net/fabricmc/fabric/api/client/rendereregistry/v1/BlockEntityRendererRegistry.java
+++ b/fabric-renderer-registries-v1/src/main/java/net/fabricmc/fabric/api/client/rendereregistry/v1/BlockEntityRendererRegistry.java
@@ -21,7 +21,7 @@ import net.minecraft.block.entity.BlockEntityType;
 import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher;
 import net.minecraft.client.render.block.entity.BlockEntityRenderer;
 
-import net.fabricmc.fabric.mixin.client.rendereregistry.MixinBlockEntityRenderDispatcher;
+import net.fabricmc.fabric.mixin.client.renderer.registry.MixinBlockEntityRenderDispatcher;
 
 /**
  * Helper class for registering BlockEntityRenderers.
diff --git a/fabric-renderer-registries-v1/src/main/java/net/fabricmc/fabric/mixin/client/rendereregistry/MixinBlockEntityRenderDispatcher.java b/fabric-renderer-registries-v1/src/main/java/net/fabricmc/fabric/mixin/client/renderer/registry/MixinBlockEntityRenderDispatcher.java
similarity index 95%
rename from fabric-renderer-registries-v1/src/main/java/net/fabricmc/fabric/mixin/client/rendereregistry/MixinBlockEntityRenderDispatcher.java
rename to fabric-renderer-registries-v1/src/main/java/net/fabricmc/fabric/mixin/client/renderer/registry/MixinBlockEntityRenderDispatcher.java
index 7816e3477..8e4a4755e 100644
--- a/fabric-renderer-registries-v1/src/main/java/net/fabricmc/fabric/mixin/client/rendereregistry/MixinBlockEntityRenderDispatcher.java
+++ b/fabric-renderer-registries-v1/src/main/java/net/fabricmc/fabric/mixin/client/renderer/registry/MixinBlockEntityRenderDispatcher.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.client.rendereregistry;
+package net.fabricmc.fabric.mixin.client.renderer.registry;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.gen.Invoker;
diff --git a/fabric-renderer-registries-v1/src/main/java/net/fabricmc/fabric/mixin/client/rendereregistry/MixinEntityRenderDispatcher.java b/fabric-renderer-registries-v1/src/main/java/net/fabricmc/fabric/mixin/client/renderer/registry/MixinEntityRenderDispatcher.java
similarity index 96%
rename from fabric-renderer-registries-v1/src/main/java/net/fabricmc/fabric/mixin/client/rendereregistry/MixinEntityRenderDispatcher.java
rename to fabric-renderer-registries-v1/src/main/java/net/fabricmc/fabric/mixin/client/renderer/registry/MixinEntityRenderDispatcher.java
index 2faee9c96..780ac23d1 100644
--- a/fabric-renderer-registries-v1/src/main/java/net/fabricmc/fabric/mixin/client/rendereregistry/MixinEntityRenderDispatcher.java
+++ b/fabric-renderer-registries-v1/src/main/java/net/fabricmc/fabric/mixin/client/renderer/registry/MixinEntityRenderDispatcher.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.client.rendereregistry;
+package net.fabricmc.fabric.mixin.client.renderer.registry;
 
 import java.util.Map;
 
diff --git a/fabric-renderer-registries-v1/src/main/resources/fabric-renderer-registries-v1.mixins.json b/fabric-renderer-registries-v1/src/main/resources/fabric-renderer-registries-v1.mixins.json
index 1ee8a876d..17edfeec3 100644
--- a/fabric-renderer-registries-v1/src/main/resources/fabric-renderer-registries-v1.mixins.json
+++ b/fabric-renderer-registries-v1/src/main/resources/fabric-renderer-registries-v1.mixins.json
@@ -1,6 +1,6 @@
 {
   "required": true,
-  "package": "net.fabricmc.fabric.mixin.client.rendereregistry",
+  "package": "net.fabricmc.fabric.mixin.client.renderer.registry",
   "compatibilityLevel": "JAVA_8",
   "client": [
     "MixinBlockEntityRenderDispatcher",
diff --git a/fabric-rendering-data-attachment-v1/build.gradle b/fabric-rendering-data-attachment-v1/build.gradle
index c84789c8b..ecf197ac4 100644
--- a/fabric-rendering-data-attachment-v1/build.gradle
+++ b/fabric-rendering-data-attachment-v1/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-rendering-data-attachment-v1"
-version = getSubprojectVersion(project, "0.1.2")
+version = getSubprojectVersion(project, "0.1.3")
 
 dependencies {
 	compile project(path: ':fabric-api-base', configuration: 'dev')
diff --git a/fabric-rendering-data-attachment-v1/src/main/java/net/fabricmc/fabric/mixin/rendering/data/MixinBlockEntity.java b/fabric-rendering-data-attachment-v1/src/main/java/net/fabricmc/fabric/mixin/rendering/data/attachment/MixinBlockEntity.java
similarity index 94%
rename from fabric-rendering-data-attachment-v1/src/main/java/net/fabricmc/fabric/mixin/rendering/data/MixinBlockEntity.java
rename to fabric-rendering-data-attachment-v1/src/main/java/net/fabricmc/fabric/mixin/rendering/data/attachment/MixinBlockEntity.java
index b50718d5a..b31fa4517 100644
--- a/fabric-rendering-data-attachment-v1/src/main/java/net/fabricmc/fabric/mixin/rendering/data/MixinBlockEntity.java
+++ b/fabric-rendering-data-attachment-v1/src/main/java/net/fabricmc/fabric/mixin/rendering/data/attachment/MixinBlockEntity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.rendering.data;
+package net.fabricmc.fabric.mixin.rendering.data.attachment;
 
 import org.spongepowered.asm.mixin.Mixin;
 
diff --git a/fabric-rendering-data-attachment-v1/src/main/java/net/fabricmc/fabric/mixin/rendering/data/MixinViewableWorld.java b/fabric-rendering-data-attachment-v1/src/main/java/net/fabricmc/fabric/mixin/rendering/data/attachment/MixinViewableWorld.java
similarity index 94%
rename from fabric-rendering-data-attachment-v1/src/main/java/net/fabricmc/fabric/mixin/rendering/data/MixinViewableWorld.java
rename to fabric-rendering-data-attachment-v1/src/main/java/net/fabricmc/fabric/mixin/rendering/data/attachment/MixinViewableWorld.java
index 77e4ea062..52b42f499 100644
--- a/fabric-rendering-data-attachment-v1/src/main/java/net/fabricmc/fabric/mixin/rendering/data/MixinViewableWorld.java
+++ b/fabric-rendering-data-attachment-v1/src/main/java/net/fabricmc/fabric/mixin/rendering/data/attachment/MixinViewableWorld.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.rendering.data;
+package net.fabricmc.fabric.mixin.rendering.data.attachment;
 
 import org.spongepowered.asm.mixin.Mixin;
 
diff --git a/fabric-rendering-data-attachment-v1/src/main/java/net/fabricmc/fabric/mixin/rendering/data/client/MixinChunkRendererRegion.java b/fabric-rendering-data-attachment-v1/src/main/java/net/fabricmc/fabric/mixin/rendering/data/attachment/client/MixinChunkRendererRegion.java
similarity index 98%
rename from fabric-rendering-data-attachment-v1/src/main/java/net/fabricmc/fabric/mixin/rendering/data/client/MixinChunkRendererRegion.java
rename to fabric-rendering-data-attachment-v1/src/main/java/net/fabricmc/fabric/mixin/rendering/data/attachment/client/MixinChunkRendererRegion.java
index 62d9d1452..40efe5b56 100644
--- a/fabric-rendering-data-attachment-v1/src/main/java/net/fabricmc/fabric/mixin/rendering/data/client/MixinChunkRendererRegion.java
+++ b/fabric-rendering-data-attachment-v1/src/main/java/net/fabricmc/fabric/mixin/rendering/data/attachment/client/MixinChunkRendererRegion.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.rendering.data.client;
+package net.fabricmc.fabric.mixin.rendering.data.attachment.client;
 
 import java.util.ConcurrentModificationException;
 import java.util.Map;
diff --git a/fabric-rendering-data-attachment-v1/src/main/resources/fabric-rendering-data-attachment-v1.mixins.json b/fabric-rendering-data-attachment-v1/src/main/resources/fabric-rendering-data-attachment-v1.mixins.json
index 91f23a5e9..ce28c7487 100644
--- a/fabric-rendering-data-attachment-v1/src/main/resources/fabric-rendering-data-attachment-v1.mixins.json
+++ b/fabric-rendering-data-attachment-v1/src/main/resources/fabric-rendering-data-attachment-v1.mixins.json
@@ -1,6 +1,6 @@
 {
   "required": true,
-  "package": "net.fabricmc.fabric.mixin.rendering.data",
+  "package": "net.fabricmc.fabric.mixin.rendering.data.attachment",
   "compatibilityLevel": "JAVA_8",
   "mixins": [
     "MixinBlockEntity",
diff --git a/fabric-rendering-fluids-v1/build.gradle b/fabric-rendering-fluids-v1/build.gradle
index 99e72939a..7af5b0698 100644
--- a/fabric-rendering-fluids-v1/build.gradle
+++ b/fabric-rendering-fluids-v1/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-rendering-fluids-v1"
-version = getSubprojectVersion(project, "0.1.4")
+version = getSubprojectVersion(project, "0.1.5")
 
 dependencies {
 	compile project(path: ':fabric-api-base', configuration: 'dev')
diff --git a/fabric-rendering-fluids-v1/src/main/java/net/fabricmc/fabric/api/client/render/fluid/v1/FluidRenderHandlerRegistry.java b/fabric-rendering-fluids-v1/src/main/java/net/fabricmc/fabric/api/client/render/fluid/v1/FluidRenderHandlerRegistry.java
index cf7fca5a2..379b645bf 100644
--- a/fabric-rendering-fluids-v1/src/main/java/net/fabricmc/fabric/api/client/render/fluid/v1/FluidRenderHandlerRegistry.java
+++ b/fabric-rendering-fluids-v1/src/main/java/net/fabricmc/fabric/api/client/render/fluid/v1/FluidRenderHandlerRegistry.java
@@ -18,7 +18,7 @@ package net.fabricmc.fabric.api.client.render.fluid.v1;
 
 import net.minecraft.fluid.Fluid;
 
-import net.fabricmc.fabric.impl.client.render.fluid.FluidRenderHandlerRegistryImpl;
+import net.fabricmc.fabric.impl.client.rendering.fluid.FluidRenderHandlerRegistryImpl;
 
 /**
  * Registry for {@link FluidRenderHandler} instances.
diff --git a/fabric-rendering-fluids-v1/src/main/java/net/fabricmc/fabric/impl/client/render/fluid/FluidRenderHandlerRegistryImpl.java b/fabric-rendering-fluids-v1/src/main/java/net/fabricmc/fabric/impl/client/rendering/fluid/FluidRenderHandlerRegistryImpl.java
similarity index 98%
rename from fabric-rendering-fluids-v1/src/main/java/net/fabricmc/fabric/impl/client/render/fluid/FluidRenderHandlerRegistryImpl.java
rename to fabric-rendering-fluids-v1/src/main/java/net/fabricmc/fabric/impl/client/rendering/fluid/FluidRenderHandlerRegistryImpl.java
index 9c8a24daa..e190777b5 100644
--- a/fabric-rendering-fluids-v1/src/main/java/net/fabricmc/fabric/impl/client/render/fluid/FluidRenderHandlerRegistryImpl.java
+++ b/fabric-rendering-fluids-v1/src/main/java/net/fabricmc/fabric/impl/client/rendering/fluid/FluidRenderHandlerRegistryImpl.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.client.render.fluid;
+package net.fabricmc.fabric.impl.client.rendering.fluid;
 
 import java.util.IdentityHashMap;
 import java.util.Map;
diff --git a/fabric-rendering-fluids-v1/src/main/java/net/fabricmc/fabric/impl/client/render/fluid/FluidRendererHookContainer.java b/fabric-rendering-fluids-v1/src/main/java/net/fabricmc/fabric/impl/client/rendering/fluid/FluidRendererHookContainer.java
similarity index 94%
rename from fabric-rendering-fluids-v1/src/main/java/net/fabricmc/fabric/impl/client/render/fluid/FluidRendererHookContainer.java
rename to fabric-rendering-fluids-v1/src/main/java/net/fabricmc/fabric/impl/client/rendering/fluid/FluidRendererHookContainer.java
index f4408970b..0da42330c 100644
--- a/fabric-rendering-fluids-v1/src/main/java/net/fabricmc/fabric/impl/client/render/fluid/FluidRendererHookContainer.java
+++ b/fabric-rendering-fluids-v1/src/main/java/net/fabricmc/fabric/impl/client/rendering/fluid/FluidRendererHookContainer.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.client.render.fluid;
+package net.fabricmc.fabric.impl.client.rendering.fluid;
 
 import net.minecraft.fluid.FluidState;
 import net.minecraft.util.math.BlockPos;
diff --git a/fabric-rendering-fluids-v1/src/main/java/net/fabricmc/fabric/mixin/client/render/fluid/MixinFluidRenderer.java b/fabric-rendering-fluids-v1/src/main/java/net/fabricmc/fabric/mixin/client/rendering/fluid/MixinFluidRenderer.java
similarity index 95%
rename from fabric-rendering-fluids-v1/src/main/java/net/fabricmc/fabric/mixin/client/render/fluid/MixinFluidRenderer.java
rename to fabric-rendering-fluids-v1/src/main/java/net/fabricmc/fabric/mixin/client/rendering/fluid/MixinFluidRenderer.java
index 13f950630..cb1167ac1 100644
--- a/fabric-rendering-fluids-v1/src/main/java/net/fabricmc/fabric/mixin/client/render/fluid/MixinFluidRenderer.java
+++ b/fabric-rendering-fluids-v1/src/main/java/net/fabricmc/fabric/mixin/client/rendering/fluid/MixinFluidRenderer.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.client.render.fluid;
+package net.fabricmc.fabric.mixin.client.rendering.fluid;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Shadow;
@@ -33,8 +33,8 @@ import net.minecraft.util.math.BlockPos;
 import net.minecraft.world.BlockRenderView;
 
 import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandler;
-import net.fabricmc.fabric.impl.client.render.fluid.FluidRenderHandlerRegistryImpl;
-import net.fabricmc.fabric.impl.client.render.fluid.FluidRendererHookContainer;
+import net.fabricmc.fabric.impl.client.rendering.fluid.FluidRenderHandlerRegistryImpl;
+import net.fabricmc.fabric.impl.client.rendering.fluid.FluidRendererHookContainer;
 
 @Mixin(FluidRenderer.class)
 public class MixinFluidRenderer {
diff --git a/fabric-rendering-fluids-v1/src/main/resources/fabric-rendering-fluids-v1.mixins.json b/fabric-rendering-fluids-v1/src/main/resources/fabric-rendering-fluids-v1.mixins.json
index 5f5432ab6..8a2032904 100644
--- a/fabric-rendering-fluids-v1/src/main/resources/fabric-rendering-fluids-v1.mixins.json
+++ b/fabric-rendering-fluids-v1/src/main/resources/fabric-rendering-fluids-v1.mixins.json
@@ -1,6 +1,6 @@
 {
   "required": true,
-  "package": "net.fabricmc.fabric.mixin.client.render.fluid",
+  "package": "net.fabricmc.fabric.mixin.client.rendering.fluid",
   "compatibilityLevel": "JAVA_8",
   "client": [
     "MixinFluidRenderer"
diff --git a/fabric-rendering-v0/build.gradle b/fabric-rendering-v0/build.gradle
index e82b8afaa..650e04989 100644
--- a/fabric-rendering-v0/build.gradle
+++ b/fabric-rendering-v0/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-rendering-v0"
-version = getSubprojectVersion(project, "1.0.0")
+version = getSubprojectVersion(project, "1.0.1")
 
 dependencies {
 	compile project(path: ':fabric-api-base', configuration: 'dev')
diff --git a/fabric-rendering-v0/src/main/java/net/fabricmc/fabric/api/client/render/ColorProviderRegistry.java b/fabric-rendering-v0/src/main/java/net/fabricmc/fabric/api/client/render/ColorProviderRegistry.java
index 51634ca19..27e0cbc7e 100644
--- a/fabric-rendering-v0/src/main/java/net/fabricmc/fabric/api/client/render/ColorProviderRegistry.java
+++ b/fabric-rendering-v0/src/main/java/net/fabricmc/fabric/api/client/render/ColorProviderRegistry.java
@@ -21,7 +21,7 @@ import net.minecraft.client.color.block.BlockColorProvider;
 import net.minecraft.client.color.item.ItemColorProvider;
 import net.minecraft.item.ItemConvertible;
 
-import net.fabricmc.fabric.impl.client.render.ColorProviderRegistryImpl;
+import net.fabricmc.fabric.impl.client.rendering.ColorProviderRegistryImpl;
 
 public interface ColorProviderRegistry<T, Provider> {
 	ColorProviderRegistry<ItemConvertible, ItemColorProvider> ITEM = ColorProviderRegistryImpl.ITEM;
diff --git a/fabric-rendering-v0/src/main/java/net/fabricmc/fabric/impl/client/render/ColorProviderRegistryImpl.java b/fabric-rendering-v0/src/main/java/net/fabricmc/fabric/impl/client/rendering/ColorProviderRegistryImpl.java
similarity index 98%
rename from fabric-rendering-v0/src/main/java/net/fabricmc/fabric/impl/client/render/ColorProviderRegistryImpl.java
rename to fabric-rendering-v0/src/main/java/net/fabricmc/fabric/impl/client/rendering/ColorProviderRegistryImpl.java
index ee54281f9..93590cf0a 100644
--- a/fabric-rendering-v0/src/main/java/net/fabricmc/fabric/impl/client/render/ColorProviderRegistryImpl.java
+++ b/fabric-rendering-v0/src/main/java/net/fabricmc/fabric/impl/client/rendering/ColorProviderRegistryImpl.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.client.render;
+package net.fabricmc.fabric.impl.client.rendering;
 
 import java.util.IdentityHashMap;
 import java.util.Map;
diff --git a/fabric-rendering-v0/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinBlockColorMap.java b/fabric-rendering-v0/src/main/java/net/fabricmc/fabric/mixin/client/rendering/MixinBlockColorMap.java
similarity index 92%
rename from fabric-rendering-v0/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinBlockColorMap.java
rename to fabric-rendering-v0/src/main/java/net/fabricmc/fabric/mixin/client/rendering/MixinBlockColorMap.java
index e7378959f..d72f802b1 100644
--- a/fabric-rendering-v0/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinBlockColorMap.java
+++ b/fabric-rendering-v0/src/main/java/net/fabricmc/fabric/mixin/client/rendering/MixinBlockColorMap.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.client.render;
+package net.fabricmc.fabric.mixin.client.rendering;
 
 import org.spongepowered.asm.mixin.Final;
 import org.spongepowered.asm.mixin.Mixin;
@@ -29,7 +29,7 @@ import net.minecraft.client.color.block.BlockColors;
 import net.minecraft.util.IdList;
 import net.minecraft.util.registry.Registry;
 
-import net.fabricmc.fabric.impl.client.render.ColorProviderRegistryImpl;
+import net.fabricmc.fabric.impl.client.rendering.ColorProviderRegistryImpl;
 
 @Mixin(BlockColors.class)
 public class MixinBlockColorMap implements ColorProviderRegistryImpl.ColorMapperHolder<Block, BlockColorProvider> {
diff --git a/fabric-rendering-v0/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinItemColorMap.java b/fabric-rendering-v0/src/main/java/net/fabricmc/fabric/mixin/client/rendering/MixinItemColorMap.java
similarity index 93%
rename from fabric-rendering-v0/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinItemColorMap.java
rename to fabric-rendering-v0/src/main/java/net/fabricmc/fabric/mixin/client/rendering/MixinItemColorMap.java
index 239ab4254..ae53d4ed2 100644
--- a/fabric-rendering-v0/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinItemColorMap.java
+++ b/fabric-rendering-v0/src/main/java/net/fabricmc/fabric/mixin/client/rendering/MixinItemColorMap.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.client.render;
+package net.fabricmc.fabric.mixin.client.rendering;
 
 import org.spongepowered.asm.mixin.Final;
 import org.spongepowered.asm.mixin.Mixin;
@@ -30,7 +30,7 @@ import net.minecraft.item.ItemConvertible;
 import net.minecraft.util.IdList;
 import net.minecraft.util.registry.Registry;
 
-import net.fabricmc.fabric.impl.client.render.ColorProviderRegistryImpl;
+import net.fabricmc.fabric.impl.client.rendering.ColorProviderRegistryImpl;
 
 @Mixin(ItemColors.class)
 public class MixinItemColorMap implements ColorProviderRegistryImpl.ColorMapperHolder<ItemConvertible, ItemColorProvider> {
diff --git a/fabric-rendering-v0/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinWorldRenderer.java b/fabric-rendering-v0/src/main/java/net/fabricmc/fabric/mixin/client/rendering/MixinWorldRenderer.java
similarity index 95%
rename from fabric-rendering-v0/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinWorldRenderer.java
rename to fabric-rendering-v0/src/main/java/net/fabricmc/fabric/mixin/client/rendering/MixinWorldRenderer.java
index 27e914913..6796157ad 100644
--- a/fabric-rendering-v0/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinWorldRenderer.java
+++ b/fabric-rendering-v0/src/main/java/net/fabricmc/fabric/mixin/client/rendering/MixinWorldRenderer.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.client.render;
+package net.fabricmc.fabric.mixin.client.rendering;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.injection.At;
diff --git a/fabric-rendering-v0/src/main/resources/fabric-rendering-v0.mixins.json b/fabric-rendering-v0/src/main/resources/fabric-rendering-v0.mixins.json
index d4c6f9ca3..44bfc5655 100644
--- a/fabric-rendering-v0/src/main/resources/fabric-rendering-v0.mixins.json
+++ b/fabric-rendering-v0/src/main/resources/fabric-rendering-v0.mixins.json
@@ -1,6 +1,6 @@
 {
   "required": true,
-  "package": "net.fabricmc.fabric.mixin.client.render",
+  "package": "net.fabricmc.fabric.mixin.client.rendering",
   "compatibilityLevel": "JAVA_8",
   "client": [
     "MixinBlockColorMap",
diff --git a/fabric-resource-loader-v0/build.gradle b/fabric-resource-loader-v0/build.gradle
index 551f17ec9..d0eaaebfd 100644
--- a/fabric-resource-loader-v0/build.gradle
+++ b/fabric-resource-loader-v0/build.gradle
@@ -1,2 +1,2 @@
 archivesBaseName = "fabric-resource-loader-v0"
-version = getSubprojectVersion(project, "0.1.6")
+version = getSubprojectVersion(project, "0.1.7")
diff --git a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/api/resource/ResourceManagerHelper.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/api/resource/ResourceManagerHelper.java
index 642eede20..0816ef368 100644
--- a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/api/resource/ResourceManagerHelper.java
+++ b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/api/resource/ResourceManagerHelper.java
@@ -19,7 +19,7 @@ package net.fabricmc.fabric.api.resource;
 import net.minecraft.resource.ResourceManager;
 import net.minecraft.resource.ResourceType;
 
-import net.fabricmc.fabric.impl.resources.ResourceManagerHelperImpl;
+import net.fabricmc.fabric.impl.resource.loader.ResourceManagerHelperImpl;
 
 /**
  * Helper for working with {@link ResourceManager} instances.
diff --git a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/DeferredInputStream.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resource/loader/DeferredInputStream.java
similarity index 98%
rename from fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/DeferredInputStream.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resource/loader/DeferredInputStream.java
index 19fb6521d..0ebccffb7 100644
--- a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/DeferredInputStream.java
+++ b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resource/loader/DeferredInputStream.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.resources;
+package net.fabricmc.fabric.impl.resource.loader;
 
 import java.io.IOException;
 import java.io.InputStream;
diff --git a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/DeferredNioExecutionHandler.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resource/loader/DeferredNioExecutionHandler.java
similarity index 98%
rename from fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/DeferredNioExecutionHandler.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resource/loader/DeferredNioExecutionHandler.java
index f1edcd2bd..c7ffc4bb7 100644
--- a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/DeferredNioExecutionHandler.java
+++ b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resource/loader/DeferredNioExecutionHandler.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.resources;
+package net.fabricmc.fabric.impl.resource.loader;
 
 import java.io.IOException;
 import java.util.concurrent.Callable;
diff --git a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/ModNioResourcePack.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resource/loader/ModNioResourcePack.java
similarity index 99%
rename from fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/ModNioResourcePack.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resource/loader/ModNioResourcePack.java
index 22756602d..5deb2a379 100644
--- a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/ModNioResourcePack.java
+++ b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resource/loader/ModNioResourcePack.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.resources;
+package net.fabricmc.fabric.impl.resource.loader;
 
 import java.io.FileNotFoundException;
 import java.io.IOException;
diff --git a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/ModResourcePackCreator.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resource/loader/ModResourcePackCreator.java
similarity index 97%
rename from fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/ModResourcePackCreator.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resource/loader/ModResourcePackCreator.java
index 8371f417d..e54961b46 100644
--- a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/ModResourcePackCreator.java
+++ b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resource/loader/ModResourcePackCreator.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.resources;
+package net.fabricmc.fabric.impl.resource.loader;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/ModResourcePackUtil.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resource/loader/ModResourcePackUtil.java
similarity index 98%
rename from fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/ModResourcePackUtil.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resource/loader/ModResourcePackUtil.java
index 3a56f17ae..156c13be7 100644
--- a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/ModResourcePackUtil.java
+++ b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resource/loader/ModResourcePackUtil.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.resources;
+package net.fabricmc.fabric.impl.resource.loader;
 
 import java.io.InputStream;
 import java.nio.file.Path;
diff --git a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/ResourceManagerHelperImpl.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resource/loader/ResourceManagerHelperImpl.java
similarity index 98%
rename from fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/ResourceManagerHelperImpl.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resource/loader/ResourceManagerHelperImpl.java
index e25df6d1b..f2431bf5c 100644
--- a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/ResourceManagerHelperImpl.java
+++ b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resource/loader/ResourceManagerHelperImpl.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.resources;
+package net.fabricmc.fabric.impl.resource.loader;
 
 import java.util.HashMap;
 import java.util.HashSet;
diff --git a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resources/MixinDefaultResourcePack.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/MixinDefaultResourcePack.java
similarity index 97%
rename from fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resources/MixinDefaultResourcePack.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/MixinDefaultResourcePack.java
index 6ec46bfb6..86bdebbbe 100644
--- a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resources/MixinDefaultResourcePack.java
+++ b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/MixinDefaultResourcePack.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.resources;
+package net.fabricmc.fabric.mixin.resource.loader;
 
 import java.io.File;
 import java.io.IOException;
diff --git a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resources/MixinKeyedResourceReloadListener.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/MixinKeyedResourceReloadListener.java
similarity index 99%
rename from fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resources/MixinKeyedResourceReloadListener.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/MixinKeyedResourceReloadListener.java
index 8ec1dd187..1b70ab8ee 100644
--- a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resources/MixinKeyedResourceReloadListener.java
+++ b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/MixinKeyedResourceReloadListener.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.resources;
+package net.fabricmc.fabric.mixin.resource.loader;
 
 import java.util.Collection;
 import java.util.Collections;
diff --git a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resources/MixinMinecraftGame.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/MixinMinecraftGame.java
similarity index 96%
rename from fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resources/MixinMinecraftGame.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/MixinMinecraftGame.java
index 2654aa34e..e3b85c599 100644
--- a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resources/MixinMinecraftGame.java
+++ b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/MixinMinecraftGame.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.resources;
+package net.fabricmc.fabric.mixin.resource.loader;
 
 import java.util.List;
 import java.util.concurrent.CompletableFuture;
@@ -37,7 +37,7 @@ import net.minecraft.resource.ReloadableResourceManager;
 import net.minecraft.resource.ResourcePack;
 import net.minecraft.resource.ResourceType;
 
-import net.fabricmc.fabric.impl.resources.ModResourcePackUtil;
+import net.fabricmc.fabric.impl.resource.loader.ModResourcePackUtil;
 
 @Mixin(MinecraftClient.class)
 public class MixinMinecraftGame {
diff --git a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resources/MixinMinecraftServer.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/MixinMinecraftServer.java
similarity index 93%
rename from fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resources/MixinMinecraftServer.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/MixinMinecraftServer.java
index e989528f7..38c7f7795 100644
--- a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resources/MixinMinecraftServer.java
+++ b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/MixinMinecraftServer.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.resources;
+package net.fabricmc.fabric.mixin.resource.loader;
 
 import java.io.File;
 
@@ -30,7 +30,7 @@ import net.minecraft.resource.ResourceType;
 import net.minecraft.server.MinecraftServer;
 import net.minecraft.world.level.LevelProperties;
 
-import net.fabricmc.fabric.impl.resources.ModResourcePackCreator;
+import net.fabricmc.fabric.impl.resource.loader.ModResourcePackCreator;
 
 @Mixin(MinecraftServer.class)
 public class MixinMinecraftServer {
diff --git a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resources/MixinReloadableResourceManagerImpl.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/MixinReloadableResourceManagerImpl.java
similarity index 92%
rename from fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resources/MixinReloadableResourceManagerImpl.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/MixinReloadableResourceManagerImpl.java
index 156768a52..db1b47e0a 100644
--- a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resources/MixinReloadableResourceManagerImpl.java
+++ b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/MixinReloadableResourceManagerImpl.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.resources;
+package net.fabricmc.fabric.mixin.resource.loader;
 
 import java.util.List;
 import java.util.concurrent.CompletableFuture;
@@ -30,7 +30,7 @@ import net.minecraft.resource.ReloadableResourceManagerImpl;
 import net.minecraft.resource.ResourceReloadListener;
 import net.minecraft.resource.ResourceType;
 
-import net.fabricmc.fabric.impl.resources.ResourceManagerHelperImpl;
+import net.fabricmc.fabric.impl.resource.loader.ResourceManagerHelperImpl;
 
 @Mixin(ReloadableResourceManagerImpl.class)
 public class MixinReloadableResourceManagerImpl {
diff --git a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resources/MixinReloadableResourceManagerImplClient.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/MixinReloadableResourceManagerImplClient.java
similarity index 93%
rename from fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resources/MixinReloadableResourceManagerImplClient.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/MixinReloadableResourceManagerImplClient.java
index 8e904e4fa..d411e1e9e 100644
--- a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resources/MixinReloadableResourceManagerImplClient.java
+++ b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/MixinReloadableResourceManagerImplClient.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.resources;
+package net.fabricmc.fabric.mixin.resource.loader;
 
 import java.util.List;
 import java.util.concurrent.CompletableFuture;
@@ -31,7 +31,7 @@ import net.minecraft.resource.ResourceReloadListener;
 import net.minecraft.resource.ResourceReloadMonitor;
 import net.minecraft.resource.ResourceType;
 
-import net.fabricmc.fabric.impl.resources.ResourceManagerHelperImpl;
+import net.fabricmc.fabric.impl.resource.loader.ResourceManagerHelperImpl;
 
 @Mixin(ReloadableResourceManagerImpl.class)
 public class MixinReloadableResourceManagerImplClient {
diff --git a/fabric-resource-loader-v0/src/main/resources/fabric-resource-loader-v0.mixins.json b/fabric-resource-loader-v0/src/main/resources/fabric-resource-loader-v0.mixins.json
index a0280eb2b..176023508 100644
--- a/fabric-resource-loader-v0/src/main/resources/fabric-resource-loader-v0.mixins.json
+++ b/fabric-resource-loader-v0/src/main/resources/fabric-resource-loader-v0.mixins.json
@@ -1,6 +1,6 @@
 {
   "required": true,
-  "package": "net.fabricmc.fabric.mixin.resources",
+  "package": "net.fabricmc.fabric.mixin.resource.loader",
   "compatibilityLevel": "JAVA_8",
   "mixins": [
     "MixinKeyedResourceReloadListener$Server",
diff --git a/fabric-tag-extensions-v0/build.gradle b/fabric-tag-extensions-v0/build.gradle
index 90761d2b7..383749454 100644
--- a/fabric-tag-extensions-v0/build.gradle
+++ b/fabric-tag-extensions-v0/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-tag-extensions-v0"
-version = getSubprojectVersion(project, "0.1.1")
+version = getSubprojectVersion(project, "0.1.2")
 
 dependencies {
 	compile project(path: ':fabric-api-base', configuration: 'dev')
diff --git a/fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/api/tag/TagRegistry.java b/fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/api/tag/TagRegistry.java
index 804f60d75..1ec17ee90 100644
--- a/fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/api/tag/TagRegistry.java
+++ b/fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/api/tag/TagRegistry.java
@@ -32,7 +32,7 @@ import net.minecraft.tag.Tag;
 import net.minecraft.tag.TagContainer;
 import net.minecraft.util.Identifier;
 
-import net.fabricmc.fabric.impl.tag.TagDelegate;
+import net.fabricmc.fabric.impl.tag.extension.TagDelegate;
 
 /**
  * Helper methods for registering Tags.
diff --git a/fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/impl/tag/FabricTagHooks.java b/fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/impl/tag/extension/FabricTagHooks.java
similarity index 93%
rename from fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/impl/tag/FabricTagHooks.java
rename to fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/impl/tag/extension/FabricTagHooks.java
index 753b24d03..9349a2a92 100644
--- a/fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/impl/tag/FabricTagHooks.java
+++ b/fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/impl/tag/extension/FabricTagHooks.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.tag;
+package net.fabricmc.fabric.impl.tag.extension;
 
 public interface FabricTagHooks {
 	void fabric_setExtraData(int clearCount);
diff --git a/fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/impl/tag/TagDelegate.java b/fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/impl/tag/extension/TagDelegate.java
similarity index 96%
rename from fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/impl/tag/TagDelegate.java
rename to fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/impl/tag/extension/TagDelegate.java
index b71f84239..e0c0d338e 100644
--- a/fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/impl/tag/TagDelegate.java
+++ b/fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/impl/tag/extension/TagDelegate.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.impl.tag;
+package net.fabricmc.fabric.impl.tag.extension;
 
 import java.util.Collection;
 
diff --git a/fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/mixin/tag/MixinTag.java b/fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/mixin/tag/extension/MixinTag.java
similarity index 90%
rename from fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/mixin/tag/MixinTag.java
rename to fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/mixin/tag/extension/MixinTag.java
index 27b2da38a..750cc1b2d 100644
--- a/fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/mixin/tag/MixinTag.java
+++ b/fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/mixin/tag/extension/MixinTag.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.tag;
+package net.fabricmc.fabric.mixin.tag.extension;
 
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Unique;
@@ -22,7 +22,7 @@ import org.spongepowered.asm.mixin.Unique;
 import net.minecraft.tag.Tag;
 
 import net.fabricmc.fabric.api.tag.FabricTag;
-import net.fabricmc.fabric.impl.tag.FabricTagHooks;
+import net.fabricmc.fabric.impl.tag.extension.FabricTagHooks;
 
 @Mixin(Tag.class)
 public class MixinTag<T> implements FabricTag<T>, FabricTagHooks {
diff --git a/fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/mixin/tag/MixinTagBuilder.java b/fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/mixin/tag/extension/MixinTagBuilder.java
similarity index 94%
rename from fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/mixin/tag/MixinTagBuilder.java
rename to fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/mixin/tag/extension/MixinTagBuilder.java
index cc2692a9b..8825dbf30 100644
--- a/fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/mixin/tag/MixinTagBuilder.java
+++ b/fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/mixin/tag/extension/MixinTagBuilder.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.tag;
+package net.fabricmc.fabric.mixin.tag.extension;
 
 import java.util.Set;
 import java.util.function.Function;
@@ -31,7 +31,7 @@ import net.minecraft.tag.Tag;
 import net.minecraft.util.Identifier;
 
 import net.fabricmc.fabric.api.tag.FabricTagBuilder;
-import net.fabricmc.fabric.impl.tag.FabricTagHooks;
+import net.fabricmc.fabric.impl.tag.extension.FabricTagHooks;
 
 @Mixin(Tag.Builder.class)
 public class MixinTagBuilder<T> implements FabricTagBuilder<T> {
diff --git a/fabric-tag-extensions-v0/src/main/resources/fabric-tag-extensions-v0.mixins.json b/fabric-tag-extensions-v0/src/main/resources/fabric-tag-extensions-v0.mixins.json
index 3c2295ac9..bf03b043b 100644
--- a/fabric-tag-extensions-v0/src/main/resources/fabric-tag-extensions-v0.mixins.json
+++ b/fabric-tag-extensions-v0/src/main/resources/fabric-tag-extensions-v0.mixins.json
@@ -1,6 +1,6 @@
 {
   "required": true,
-  "package": "net.fabricmc.fabric.mixin.tag",
+  "package": "net.fabricmc.fabric.mixin.tag.extension",
   "compatibilityLevel": "JAVA_8",
   "mixins": [
     "MixinTag",