diff --git a/bootstrap/spigot/pom.xml b/bootstrap/spigot/pom.xml
index e05ad7f03..854ce9fa5 100644
--- a/bootstrap/spigot/pom.xml
+++ b/bootstrap/spigot/pom.xml
@@ -26,7 +26,7 @@
         <dependency>
             <groupId>us.myles</groupId>
             <artifactId>viaversion</artifactId>
-            <version>3.0.1</version>
+            <version>3.1.0-1.16.2-pre1</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>
diff --git a/bootstrap/spigot/src/main/java/org/geysermc/platform/spigot/world/GeyserSpigotWorldManager.java b/bootstrap/spigot/src/main/java/org/geysermc/platform/spigot/world/GeyserSpigotWorldManager.java
index d785fabca..23caf5d99 100644
--- a/bootstrap/spigot/src/main/java/org/geysermc/platform/spigot/world/GeyserSpigotWorldManager.java
+++ b/bootstrap/spigot/src/main/java/org/geysermc/platform/spigot/world/GeyserSpigotWorldManager.java
@@ -33,7 +33,7 @@ import org.geysermc.connector.network.session.GeyserSession;
 import org.geysermc.connector.network.translators.world.WorldManager;
 import org.geysermc.connector.network.translators.world.block.BlockTranslator;
 import us.myles.ViaVersion.protocols.protocol1_13_1to1_13.Protocol1_13_1To1_13;
-import us.myles.ViaVersion.protocols.protocol1_16to1_15_2.data.MappingData;
+import us.myles.ViaVersion.protocols.protocol1_16_2to1_16_1.data.MappingData;
 
 @AllArgsConstructor
 public class GeyserSpigotWorldManager extends WorldManager {
@@ -60,12 +60,13 @@ public class GeyserSpigotWorldManager extends WorldManager {
             Block block = Bukkit.getPlayer(session.getPlayerEntity().getUsername()).getWorld().getBlockAt(x, y, z);
             // Black magic that gets the old block state ID
             int oldBlockId = (block.getType().getId() << 4) | (block.getData() & 0xF);
-            // Convert block state from old version -> 1.13 -> 1.13.1 -> 1.14 -> 1.15 -> 1.16
+            // Convert block state from old version -> 1.13 -> 1.13.1 -> 1.14 -> 1.15 -> 1.16 -> 1.16.2
             int thirteenBlockId = us.myles.ViaVersion.protocols.protocol1_13to1_12_2.data.MappingData.blockMappings.getNewId(oldBlockId);
             int thirteenPointOneBlockId = Protocol1_13_1To1_13.getNewBlockStateId(thirteenBlockId);
             int fourteenBlockId = us.myles.ViaVersion.protocols.protocol1_14to1_13_2.data.MappingData.blockStateMappings.getNewId(thirteenPointOneBlockId);
             int fifteenBlockId = us.myles.ViaVersion.protocols.protocol1_15to1_14_4.data.MappingData.blockStateMappings.getNewId(fourteenBlockId);
-            return MappingData.blockStateMappings.getNewId(fifteenBlockId);
+            int sixteenBlockId = us.myles.ViaVersion.protocols.protocol1_16to1_15_2.data.MappingData.blockStateMappings.getNewId(fifteenBlockId);
+            return MappingData.blockStateMappings.getNewId(sixteenBlockId);
         } else {
             return BlockTranslator.AIR;
         }
diff --git a/connector/pom.xml b/connector/pom.xml
index b999d842e..e2e49df5d 100644
--- a/connector/pom.xml
+++ b/connector/pom.xml
@@ -105,7 +105,7 @@
         <dependency>
             <groupId>com.github.GeyserMC</groupId>
             <artifactId>MCProtocolLib</artifactId>
-            <version>da45dc9165</version>
+            <version>ba0c4e9ecd</version>
             <scope>compile</scope>
             <exclusions>
                 <exclusion>
diff --git a/connector/src/main/resources/mappings b/connector/src/main/resources/mappings
index 536cde02e..46538b603 160000
--- a/connector/src/main/resources/mappings
+++ b/connector/src/main/resources/mappings
@@ -1 +1 @@
-Subproject commit 536cde02e47416a341c6de4635a3e5a400d4b9a3
+Subproject commit 46538b6036f02b3fe855ff75d82646ed74d46156