diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/BoatEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/BoatEntity.java
index 9fd96f46b..07c7e7643 100644
--- a/core/src/main/java/org/geysermc/geyser/entity/type/BoatEntity.java
+++ b/core/src/main/java/org/geysermc/geyser/entity/type/BoatEntity.java
@@ -124,7 +124,11 @@ public class BoatEntity extends Entity {
 
     public void setVariant(IntEntityMetadata entityMetadata) {
         variant = entityMetadata.getPrimitiveValue();
-        dirtyMetadata.put(EntityData.VARIANT, variant);
+        dirtyMetadata.put(EntityData.VARIANT, switch (variant) {
+            case 6, 7 -> variant - 1; // Dark oak and mangrove
+            case 5, 8 -> 0; // TODO temp until 1.20. Cherry and bamboo
+            default -> variant;
+        });
     }
 
     public void setPaddlingLeft(BooleanEntityMetadata entityMetadata) {
diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockEntityPickRequestTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockEntityPickRequestTranslator.java
index 482d153bb..b20bc9ad9 100644
--- a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockEntityPickRequestTranslator.java
+++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockEntityPickRequestTranslator.java
@@ -62,8 +62,10 @@ public class BedrockEntityPickRequestTranslator extends PacketTranslator<EntityP
                     case 2 -> "birch";
                     case 3 -> "jungle";
                     case 4 -> "acacia";
-                    case 5 -> "dark_oak";
-                    case 6 -> "mangrove";
+                    //case 5 -> "cherry"; TODO
+                    case 6 -> "dark_oak";
+                    case 7 -> "mangrove";
+                    //case 8 -> "bamboo";
                     default -> "oak";
                 };
                 itemName = typeOfBoat + "_" + entity.getDefinition().entityType().name().toLowerCase(Locale.ROOT);