diff --git a/src/main/java/net/minecraft/core/block/Block.java b/src/main/java/net/minecraft/core/block/Block.java
index 4fe6b586e..01adba7b1 100644
--- a/src/main/java/net/minecraft/core/block/Block.java
+++ b/src/main/java/net/minecraft/core/block/Block.java
@@ -985,7 +985,7 @@ public class Block
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.GROWS_FLOWERS, BlockTags.GROWS_SUGAR_CANE);
 
     public static final Block sand = new BlockSand("sand", 250).withHardness(0.5F)
-            .withTags(BlockTags.MINEABLE_BY_SHOVEL, BlockTags.GROWS_SUGAR_CANE, BlockTags.GROWS_CACTI, BlockTags.GROWS_TREES, BlockTags.CAVES_CUT_THROUGH, BlockTags.FIREFLIES_CAN_SPAWN);
+            .withTags(BlockTags.MINEABLE_BY_SHOVEL, BlockTags.GROWS_SUGAR_CANE, BlockTags.GROWS_CACTI, BlockTags.CAVES_CUT_THROUGH, BlockTags.FIREFLIES_CAN_SPAWN);
     public static final Block gravel = new BlockGravel("gravel", 251).withHardness(0.6F)
             .withTags(BlockTags.MINEABLE_BY_SHOVEL);
 
diff --git a/src/main/java/net/minecraft/core/world/biome/Biomes.java b/src/main/java/net/minecraft/core/world/biome/Biomes.java
index 4c8e67595..a33780a53 100644
--- a/src/main/java/net/minecraft/core/world/biome/Biomes.java
+++ b/src/main/java/net/minecraft/core/world/biome/Biomes.java
@@ -17,7 +17,7 @@ public class Biomes
     public static final Biome OVERWORLD_TAIGA = register("minecraft:overworld.taiga", new BiomeTaiga("taiga").setColor(0x8abcff).setSurfaceSnow());
     public static final Biome OVERWORLD_BOREAL_FOREST = register("minecraft:overworld.boreal_forest", new BiomeBorealForest("boreal_forest").setColor(0x148564));
     public static final Biome OVERWORLD_DESERT = register("minecraft:overworld.desert", new BiomeDesert("desert").setColor(0xEDE26F).setBlockedWeathers(Weather.overworldRain, Weather.overworldSnow, Weather.overworldStorm).setTopBlock(Block.sand.id).setFillerBlock(Block.sand.id));
-    public static final Biome OVERWORLD_PLAINS = register("minecraft:overworld.plains", new BiomePlains("plains").setColor(0xA3C649));
+    public static final Biome OVERWORLD_PLAINS = register("minecraft:overworld.plains", new BiomeForest("plains").setColor(0xA3C649));
     public static final Biome OVERWORLD_GLACIER = register("minecraft:overworld.glacier", new Biome("glacier").setColor(0xcbf6ff).setSurfaceSnow().setTopBlock(Block.blockSnow.id).setFillerBlock(Block.blockSnow.id));
     public static final Biome OVERWORLD_TUNDRA = register("minecraft:overworld.tundra", new Biome("tundra").setColor(0x57e0ff).setSurfaceSnow());
     public static final Biome OVERWORLD_MEADOW = register("minecraft:overworld.meadow", new BiomeBorealForest("meadow").setColor(0x8c8c22));
@@ -28,9 +28,9 @@ public class Biomes
     public static final Biome OVERWORLD_HELL = register("minecraft:overworld.hell", new Biome("hell").setColor(0xD96223).setTopBlock(Block.dirtScorched.id).setTopBlock(Block.dirtScorched.id));
     public static final Biome OVERWORLD_SWAMPLAND_MUDDY = register("minecraft:overworld.swampland.muddy", new BiomeSwamp("swampland.muddy").setColor(0x522700));
     public static final Biome OVERWORLD_OUTBACK_GRASSY = register("minecraft:overworld.outback.grassy", new BiomeOutback("outback.grassy").setColor(0xf09037).setBlockedWeathers(Weather.overworldSnow).setTopBlock(Block.grassScorched.id).setFillerBlock(Block.dirtScorched.id));
-    public static final Biome OVERWORLD_CAATINGA = register("minecraft:overworld.caatinga", new BiomeCaatinga("caatinga").setColor(0xdecda6).setTopBlock(Block.grass.id).setFillerBlock(Block.dirt.id).setBlockedWeathers(Weather.overworldSnow));
-    public static final Biome OVERWORLD_CAATINGA_PLAINS = register("minecraft:overworld.caatinga.plains", new Biome("caatinga.plains").setColor(0xa19477).setTopBlock(Block.grass.id).setFillerBlock(Block.dirt.id).setBlockedWeathers(Weather.overworldSnow));
-    public static final Biome OVERWORLD_FOREST_DRY = register("minecraft:overworld.forest.dry", new BiomeDryForest("forest.dry").setColor(0x85c472));
+    public static final Biome OVERWORLD_CAATINGA = register("minecraft:overworld.caatinga", new BiomeCaatinga("caatinga").setColor(0xdecda6).setTopBlock(Block.mudBaked.id).setFillerBlock(Block.mudBaked.id).setBlockedWeathers(Weather.overworldSnow));
+    public static final Biome OVERWORLD_CAATINGA_PLAINS = register("minecraft:overworld.caatinga.plains", new Biome("caatinga.plains").setColor(0xa19477).setTopBlock(Block.mudBaked.id).setFillerBlock(Block.mudBaked.id).setBlockedWeathers(Weather.overworldSnow));
+    public static final Biome OVERWORLD_FOREST_DRY = register("minecraft:overworld.forest.dry", new BiomeForest("forest.dry").setColor(0x85c472));
 
     public static Biome register(String key, Biome biome)
     {
diff --git a/src/main/java/net/minecraft/core/world/biome/provider/BiomeProviderOverworld.java b/src/main/java/net/minecraft/core/world/biome/provider/BiomeProviderOverworld.java
index 751cf0cbf..af39067e0 100644
--- a/src/main/java/net/minecraft/core/world/biome/provider/BiomeProviderOverworld.java
+++ b/src/main/java/net/minecraft/core/world/biome/provider/BiomeProviderOverworld.java
@@ -348,8 +348,7 @@ public final class BiomeProviderOverworld
                 new BiomeRange(0.3, 0.5, 0.05, 1.0, 0.0, 1.0, 0.0, 1.0)
         );
         brm.addRange(Biomes.OVERWORLD_GRASSLANDS,
-            new BiomeRange(0.5, 0.98, 0.0, 0.05, 0.0, 1.0, 0.0, 1.0),
-                new BiomeRange(0.95, 1.0, 0.2, 0.5, 0.0, 1.0, 0.0, 1.0)
+            new BiomeRange(0.5, 0.98, 0.0, 0.05, 0.0, 1.0, 0.0, 1.0)
         );
         brm.addRange(Biomes.OVERWORLD_MEADOW,
                 new BiomeRange(0.3, 0.5, 0.0, 0.05, 0.0, 1.0, 0.0, 1.0)
@@ -361,11 +360,7 @@ public final class BiomeProviderOverworld
                 new BiomeRange(0.5, 0.75, 0.05, 0.2, 0.0, 1.0, 0.0, 1.0)
         );
         brm.addRange(Biomes.OVERWORLD_PLAINS,
-                new BiomeRange(0.75, 0.95, 0.01, 0.2, 0.0, 1.0, 0.0, 1.0),
-                new BiomeRange(0.75, 0.95, 0.2, 0.4, 0.0, 1.0, 0.95, 1.0)
-        );
-        brm.addRange(Biomes.OVERWORLD_DESERT,
-                new BiomeRange(0.95, 1.0, 0.0, 0.1, 0.0, 1.0, 0.0, 1.0)
+                new BiomeRange(0.75, 0.85, 0.1, 0.4, 0.0, 1.0, 0.0, 1.0)
         );
 
         brm.addRange(Biomes.OVERWORLD_SEASONAL_FOREST,
@@ -375,23 +370,29 @@ public final class BiomeProviderOverworld
                 new BiomeRange(0.75, 0.95, 0.85, 1.0, 0.0, 1.0, 0.0, 1.0)
         );
         brm.addRange(Biomes.OVERWORLD_FOREST,
-                new BiomeRange(0.75, 0.95, 0.2, 0.85, 0.0, 1.0, 0.0, 1),
+                new BiomeRange(0.75, 0.95, 0.4, 0.85, 0.0, 1.0, 0.0, 1),
                 new BiomeRange(0.95, 1.0, 0.4, 0.85, 0.0, 1.0, 0.0, 1)
         );
-        brm.addRange(Biomes.OVERWORLD_FOREST_DRY,
+        brm.addRange(Biomes.OVERWORLD_PLAINS,
                 new BiomeRange(0.75, 1.0, 0.1, 0.4, 0.0, 1.0, 0.0, 1.0)
         );
+        brm.addRange(Biomes.OVERWORLD_DESERT,
+                new BiomeRange(0.85, 1.0, 0.0, 0.01, 0.0, 1.0, 0.0, 1.0)
+        );
+
         brm.addRange(Biomes.OVERWORLD_OUTBACK,
-                new BiomeRange(0.98, 1.0, 0.1, 0.4, 0.0, 1.0, 0.0, 0.75)
+                new BiomeRange(0.75, 0.9, 0.0, 0.2, 0.0, 1.0, 0.0, 0.95)
         );
         brm.addRange(Biomes.OVERWORLD_OUTBACK_GRASSY,
-                new BiomeRange(0.98, 1.0, 0.1, 0.4, 0.0, 1.0, 0.75, 1.0)
+                new BiomeRange(0.75, 0.9, 0.0, 0.2, 0.0, 1.0, 0.95, 1.0)
         );
+
+
         brm.addRange(Biomes.OVERWORLD_CAATINGA,
-                new BiomeRange(0.75, 0.95, 0.0, 0.1, 0.0, 1.0, 0.15, 1.0)
+                new BiomeRange(0.9, 1.0, 0.01, 0.2, 0.0, 1.0, 0.1, 1.0)
         );
         brm.addRange(Biomes.OVERWORLD_CAATINGA_PLAINS,
-                new BiomeRange(0.75, 0.95, 0.0, 0.1, 0.0, 1.0, 0.0, 0.25)
+                new BiomeRange(0.9, 1.0, 0.01, 0.2, 0.0, 1.0, 0.0, 0.1)
         );
         brm.addRange(Biomes.OVERWORLD_RAINFOREST,
                 new BiomeRange(0.95, 1.0, 0.85, 1.0, 0.0, 1.0, 0.0, 1.0)
diff --git a/src/main/java/net/minecraft/core/world/generate/chunk/perlin/overworld/ChunkDecoratorOverworld.java b/src/main/java/net/minecraft/core/world/generate/chunk/perlin/overworld/ChunkDecoratorOverworld.java
index 4ba3aaaf4..c9de4489d 100644
--- a/src/main/java/net/minecraft/core/world/generate/chunk/perlin/overworld/ChunkDecoratorOverworld.java
+++ b/src/main/java/net/minecraft/core/world/generate/chunk/perlin/overworld/ChunkDecoratorOverworld.java
@@ -429,7 +429,7 @@ public class ChunkDecoratorOverworld
             byte1 = 5;
         }
         if (biome == Biomes.OVERWORLD_PLAINS) {
-            byte1 = 10;
+            byte1 = 4;
         }
         if (biome == Biomes.OVERWORLD_CAATINGA) {
             byte1 = 2;
diff --git a/src/main/java/net/minecraft/core/world/generate/feature/tree/WorldFeatureTreePalm.java b/src/main/java/net/minecraft/core/world/generate/feature/tree/WorldFeatureTreePalm.java
index 5de93e4ce..76e0e2904 100644
--- a/src/main/java/net/minecraft/core/world/generate/feature/tree/WorldFeatureTreePalm.java
+++ b/src/main/java/net/minecraft/core/world/generate/feature/tree/WorldFeatureTreePalm.java
@@ -66,7 +66,7 @@ public class WorldFeatureTreePalm extends WorldFeature {
 		this.basePos = new ChunkPosition(x, y, z);
 		
 		int blockBelow = world.getBlockId(x, y - 1, z);
-		if(!canGrowOnThisBlock(blockBelow) || !(blockBelow == Block.sand.id && waterNearby(x, y, z))) {
+		if(!canGrowOnThisBlock(blockBelow, x, y, z)) {
 			return false;
 		}
 		if(!generateTrunkIfPossible()) {
@@ -310,8 +310,8 @@ public class WorldFeatureTreePalm extends WorldFeature {
 
 	private boolean waterNearby(int x, int y, int z){
 		int distance = 1;
-		for(int xi = x - distance; xi< x + distance; xi++){
-			for(int zi = z - distance; zi< z + distance; zi++){
+		for(int xi = x - distance; xi <= x + distance; xi++){
+			for(int zi = z - distance; zi <= z + distance; zi++){
 				Block blockAtRange = world.getBlock(xi, y-1, zi);
 				if(blockAtRange != null && blockAtRange.hasTag(BlockTags.IS_WATER)){
 					return true;
@@ -329,8 +329,8 @@ public class WorldFeatureTreePalm extends WorldFeature {
 		}	
 	}
 	
-	public boolean canGrowOnThisBlock(int id) {
-		return Block.hasTag(id, BlockTags.GROWS_TREES);
+	public boolean canGrowOnThisBlock(int id, int x, int y, int z) {
+		return Block.hasTag(id, BlockTags.GROWS_TREES) || (id == Block.sand.id && waterNearby(x, y, z));
 	}
 	
 	public static int encode(int x, int y, int z) {
diff --git a/src/main/resources/assets/minecraft/textures/block/dirt_scorched.png b/src/main/resources/assets/minecraft/textures/block/dirt_scorched.png
index a99e72ce2..3c68fa827 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/dirt_scorched.png and b/src/main/resources/assets/minecraft/textures/block/dirt_scorched.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/dirt_scorched_rich.png b/src/main/resources/assets/minecraft/textures/block/dirt_scorched_rich.png
index fcb2fdae2..69a8ee384 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/dirt_scorched_rich.png and b/src/main/resources/assets/minecraft/textures/block/dirt_scorched_rich.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/grass_scorched_side.png b/src/main/resources/assets/minecraft/textures/block/grass_scorched_side.png
index bc970b6a3..ad11c3f57 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/grass_scorched_side.png and b/src/main/resources/assets/minecraft/textures/block/grass_scorched_side.png differ
diff --git a/src/main/resources/misc/colors.properties b/src/main/resources/misc/colors.properties
index 00d24ce10..7fc051fc4 100644
--- a/src/main/resources/misc/colors.properties
+++ b/src/main/resources/misc/colors.properties
@@ -62,9 +62,9 @@ override.leaves.pine.all.r=0.38
 override.leaves.pine.all.g=0.6
 override.leaves.pine.all.b=0.38
 
-override.leaves.eucalyptus.all.r=0.439
-override.leaves.eucalyptus.all.g=0.663
-override.leaves.eucalyptus.all.b=0.475
+override.leaves.eucalyptus.all.r=0.576
+override.leaves.eucalyptus.all.g=0.749
+override.leaves.eucalyptus.all.b=0.286
 
 override.leaves.cherry.inventory.r=1.0
 override.leaves.cherry.inventory.g=0.8
