diff --git a/build.gradle b/build.gradle
index 85d94cee9..60e942f67 100644
--- a/build.gradle
+++ b/build.gradle
@@ -9,7 +9,7 @@ plugins {
 	id "eclipse"
 	id "idea"
 	id "maven-publish"
-	id "fabric-loom" version "0.10.15" apply false
+	id "fabric-loom" version "0.10.23" apply false
 	id "org.cadixdev.licenser" version "0.6.1"
 	id "org.ajoberstar.grgit" version "3.1.0"
 	id "com.matthewprenger.cursegradle" version "1.4.0"
@@ -19,9 +19,9 @@ plugins {
 def ENV = System.getenv()
 
 class Globals {
-	static def baseVersion = "0.40.4"
-	static def mcVersion = "21w38a"
-	static def yarnVersion = "+build.1"
+	static def baseVersion = "0.40.5"
+	static def mcVersion = "21w39a"
+	static def yarnVersion = "+build.2"
 	static def loaderVersion = "0.11.7"
 	static def preRelease = true
 }
diff --git a/fabric-biome-api-v1/build.gradle b/fabric-biome-api-v1/build.gradle
index 08ed48b92..1917f8554 100644
--- a/fabric-biome-api-v1/build.gradle
+++ b/fabric-biome-api-v1/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-biome-api-v1"
-version = getSubprojectVersion(project, "4.0.1")
+version = getSubprojectVersion(project, "4.0.2")
 
 loom {
     accessWidenerPath = file("src/main/resources/fabric-biome-api-v1.accesswidener")
diff --git a/fabric-biome-api-v1/src/main/java/net/fabricmc/fabric/mixin/biome/MixinTheEndBiomeSource.java b/fabric-biome-api-v1/src/main/java/net/fabricmc/fabric/mixin/biome/MixinTheEndBiomeSource.java
index 8e8dd0588..8282c4777 100644
--- a/fabric-biome-api-v1/src/main/java/net/fabricmc/fabric/mixin/biome/MixinTheEndBiomeSource.java
+++ b/fabric-biome-api-v1/src/main/java/net/fabricmc/fabric/mixin/biome/MixinTheEndBiomeSource.java
@@ -45,7 +45,7 @@ public class MixinTheEndBiomeSource {
 	@Unique
 	private PerlinNoiseSampler sampler = new PerlinNoiseSampler(new ChunkRandom(seed));
 
-	@Inject(method = "method_38109", at = @At("RETURN"), cancellable = true)
+	@Inject(method = "getBiome", at = @At("RETURN"), cancellable = true)
 	private void getWeightedEndBiome(int biomeX, int biomeY, int biomeZ, MultiNoiseUtil.MultiNoiseSampler multiNoiseSampler, CallbackInfoReturnable<Biome> cir) {
 		Biome vanillaBiome = cir.getReturnValue();
 
diff --git a/fabric-networking-api-v1/build.gradle b/fabric-networking-api-v1/build.gradle
index 6d3fde06d..2589e988c 100644
--- a/fabric-networking-api-v1/build.gradle
+++ b/fabric-networking-api-v1/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-networking-api-v1"
-version = getSubprojectVersion(project, "1.0.13")
+version = getSubprojectVersion(project, "1.0.14")
 
 moduleDependencies(project, [
 		'fabric-api-base'
diff --git a/fabric-networking-api-v1/src/main/java/net/fabricmc/fabric/api/networking/v1/PlayerLookup.java b/fabric-networking-api-v1/src/main/java/net/fabricmc/fabric/api/networking/v1/PlayerLookup.java
index 476ad44a5..84f04d8d8 100644
--- a/fabric-networking-api-v1/src/main/java/net/fabricmc/fabric/api/networking/v1/PlayerLookup.java
+++ b/fabric-networking-api-v1/src/main/java/net/fabricmc/fabric/api/networking/v1/PlayerLookup.java
@@ -91,7 +91,7 @@ public final class PlayerLookup {
 		Objects.requireNonNull(world, "The world cannot be null");
 		Objects.requireNonNull(pos, "The chunk pos cannot be null");
 
-		return world.getChunkManager().threadedAnvilChunkStorage.getPlayersWatchingChunk(pos, false).collect(Collectors.toList());
+		return world.getChunkManager().threadedAnvilChunkStorage.getPlayersWatchingChunk(pos, false);
 	}
 
 	/**
diff --git a/fabric-registry-sync-v0/build.gradle b/fabric-registry-sync-v0/build.gradle
index 4426d858a..5b09b42e9 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.7.11")
+version = getSubprojectVersion(project, "0.7.12")
 
 moduleDependencies(project, [
 		'fabric-api-base',
diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/FabricRegistryInit.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/FabricRegistryInit.java
index 13a71e624..245f4ee5d 100644
--- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/FabricRegistryInit.java
+++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/FabricRegistryInit.java
@@ -72,9 +72,6 @@ public class FabricRegistryInit implements ModInitializer {
 		// Serialised by string, doesnt seem to be synced
 		RegistryAttributeHolder.get(Registry.BLOCK_STATE_PROVIDER_TYPE);
 
-		// Serialised by string, doesnt seem to be synced
-		RegistryAttributeHolder.get(Registry.BLOCK_PLACER_TYPE);
-
 		// Serialised by string, doesnt seem to be synced
 		RegistryAttributeHolder.get(Registry.FOLIAGE_PLACER_TYPE);
 
diff --git a/fabric-structure-api-v1/build.gradle b/fabric-structure-api-v1/build.gradle
index 784637206..36f3b3f30 100644
--- a/fabric-structure-api-v1/build.gradle
+++ b/fabric-structure-api-v1/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-structure-api-v1"
-version = getSubprojectVersion(project, "2.0.1")
+version = getSubprojectVersion(project, "2.0.2")
 moduleDependencies(project, [
 		'fabric-lifecycle-events-v1',
 		'fabric-api-base'
diff --git a/fabric-structure-api-v1/src/testmod/java/net/fabricmc/fabric/test/structure/StructureTest.java b/fabric-structure-api-v1/src/testmod/java/net/fabricmc/fabric/test/structure/StructureTest.java
index 653eade03..b62972bcb 100644
--- a/fabric-structure-api-v1/src/testmod/java/net/fabricmc/fabric/test/structure/StructureTest.java
+++ b/fabric-structure-api-v1/src/testmod/java/net/fabricmc/fabric/test/structure/StructureTest.java
@@ -68,11 +68,11 @@ public class StructureTest {
 		}
 
 		private static void generate(class_6626 arg, DefaultFeatureConfig defaultFeatureConfig, class_6622.class_6623 arg2) {
-			int blockX = arg2.comp_127().getStartX();
-			int blockZ = arg2.comp_127().getStartZ();
-			int blockY = arg2.comp_125().getHeight(blockX, blockZ, Heightmap.Type.WORLD_SURFACE_WG, arg2.comp_129());
+			int blockX = arg2.chunkPos().getStartX();
+			int blockZ = arg2.chunkPos().getStartZ();
+			int blockY = arg2.chunkGenerator().getHeight(blockX, blockZ, Heightmap.Type.WORLD_SURFACE_WG, arg2.heightAccessor());
 
-			TestStructureGenerator generator = new TestStructureGenerator(arg2.comp_130(), blockX, blockY, blockZ);
+			TestStructureGenerator generator = new TestStructureGenerator(arg2.random(), blockX, blockY, blockZ);
 			arg.addPiece(generator);
 		}
 	}