diff --git a/game/client/src/main/java/net/minecraft/client/render/MapItemRenderer.java b/game/client/src/main/java/net/minecraft/client/render/MapItemRenderer.java
index 5fe1a6c41..71f8c2df0 100644
--- a/game/client/src/main/java/net/minecraft/client/render/MapItemRenderer.java
+++ b/game/client/src/main/java/net/minecraft/client/render/MapItemRenderer.java
@@ -15,7 +15,6 @@ import net.minecraft.client.util.helper.Colors;
 import net.minecraft.core.world.saveddata.maps.ItemMapSavedData;
 import net.minecraft.core.world.saveddata.maps.MapWaypoint;
 import org.joml.Math;
-import org.lwjgl.opengl.GL11;
 
 public class MapItemRenderer {
     public static final int IMAGE_WIDTH = 128;
@@ -78,19 +77,16 @@ public class MapItemRenderer {
         //renders the map
         this.mapTexture.bind();
         GLRenderer.enableState(State.BLEND);
-        GL11.glDisable(GL11.GL_ALPHA_TEST);
         tessellator.startDrawingQuads();
         tessellator.addVertexWithUV((float) (j) + f, (float) (k + 128) - f, -0.01D, 0.0D, 1.0D);
         tessellator.addVertexWithUV((float) (j + 128) - f, (float) (k + 128) - f, -0.01D, 1.0D, 1.0D);
         tessellator.addVertexWithUV((float) (j + 128) - f, (float) (k) + f, -0.01D, 1.0D, 0.0D);
         tessellator.addVertexWithUV((float) (j) + f, (float) (k) + f, -0.01D, 0.0D, 0.0D);
         tessellator.draw();
-        GL11.glEnable(GL11.GL_ALPHA_TEST);
         GLRenderer.disableState(State.BLEND);
         textureManager.bindTexture(textureManager.loadTexture("/assets/minecraft/textures/misc/mapicons.png"));
 
-        for (Iterator<MapWaypoint> iterator = data.mapWaypoints.iterator(); iterator.hasNext(); GL11.glPopMatrix()) {
-            MapWaypoint mapWaypoint = iterator.next();
+        for (MapWaypoint mapWaypoint : data.mapWaypoints) {
             GLRenderer.pushFrame();
             GLRenderer.modelM4f().translate((float) j + (float) mapWaypoint.mapCoordX / 2.0F + 64, (float) k + (float) mapWaypoint.mapCoordZ / 2.0F + 64, -0.02F);
             GLRenderer.modelM4f().rotateZ(Math.toRadians((8 * 360) / 16F));
@@ -107,6 +103,7 @@ public class MapItemRenderer {
             tessellator.addVertexWithUV(1.0D, -1D, zIndex, f3, f4);
             tessellator.addVertexWithUV(-1D, -1D, zIndex, f1, f4);
             tessellator.draw();
+            GLRenderer.popFrame();
         }
         //renders map icons
         textureManager.bindTexture(textureManager.loadTexture("/assets/minecraft/textures/misc/mapicons.png"));
@@ -137,8 +134,7 @@ public class MapItemRenderer {
 
         textureManager.bindTexture(textureManager.loadTexture("/assets/minecraft/textures/misc/flagicon.png"));
         // begin drawing flag colors
-        for (Iterator<MapWaypoint> iterator = data.mapWaypoints.iterator(); iterator.hasNext(); GL11.glPopMatrix()) {
-            MapWaypoint mapWaypoint = iterator.next();
+        for (MapWaypoint mapWaypoint : data.mapWaypoints) {
             GLRenderer.pushFrame();
             for (int y = 0; y < 3; y++) {
                 for (int x = 0; x < 3; x++) {
@@ -166,6 +162,7 @@ public class MapItemRenderer {
                     GLRenderer.popFrame();
                 }
             }
+            GLRenderer.popFrame();
         }
 
         GLRenderer.setColor4f(1.0f, 1.0f, 1.0f, 1.0f);
diff --git a/game/client/src/main/java/net/minecraft/client/render/RenderGlobal.java b/game/client/src/main/java/net/minecraft/client/render/RenderGlobal.java
index 2e29a1c71..c05b9bf5c 100644
--- a/game/client/src/main/java/net/minecraft/client/render/RenderGlobal.java
+++ b/game/client/src/main/java/net/minecraft/client/render/RenderGlobal.java
@@ -1078,9 +1078,9 @@ public class RenderGlobal
         GLRenderer.setBlendFunc(BlendFactor.SRC_ALPHA, BlendFactor.ONE);
         GLRenderer.setColor4f(1.0F, 1.0F, 1.0F, (MathHelper.sin((float) System.currentTimeMillis() / 100F) * 0.2F + 0.4F) * 0.5F);
         if (this.destroyProgress > 0.0F) {
-            GLRenderer.setBlendFunc(BlendFactor.DST_COLOR, BlendFactor.SRC1_COLOR);
+            GLRenderer.setBlendFunc(BlendFactor.DST_COLOR, BlendFactor.SRC_COLOR);
             TextureRegistry.worldAtlas.bind();
-            GLRenderer.setColor4f(1.0F, 1.0F, 1.0F, 0.5F);
+            GLRenderer.setColor4f(1.0F, 1.0F, 1.0F, 0.25F);
             GLRenderer.pushFrame();
             int k = this.world.getBlockId(tileHit.tilePos);
             Block<?> block = k <= 0 ? null : Blocks.blocksList[k];
diff --git a/game/client/src/main/java/net/minecraft/client/render/block/model/BlockModelFurnace.java b/game/client/src/main/java/net/minecraft/client/render/block/model/BlockModelFurnace.java
index 53d351639..8a646460e 100644
--- a/game/client/src/main/java/net/minecraft/client/render/block/model/BlockModelFurnace.java
+++ b/game/client/src/main/java/net/minecraft/client/render/block/model/BlockModelFurnace.java
@@ -30,7 +30,7 @@ public class BlockModelFurnace<T extends BlockLogic>
             if (container != null) {
                 boolean hasOutput = container.getItem(2) != null;
                 if (hasOutput) {
-                    return TextureRegistry.getTexture(originalFront.namespaceId.namespace() + ":block/" + originalFront.namespaceId.value() + "_filled");
+                    return TextureRegistry.getTexture(originalFront.namespaceId + "_filled");
                 }
             }
             return originalFront;
diff --git a/game/client/src/main/java/net/minecraft/client/render/renderer/GLRenderer.java b/game/client/src/main/java/net/minecraft/client/render/renderer/GLRenderer.java
index 1cc69a45b..a25931e65 100644
--- a/game/client/src/main/java/net/minecraft/client/render/renderer/GLRenderer.java
+++ b/game/client/src/main/java/net/minecraft/client/render/renderer/GLRenderer.java
@@ -170,32 +170,16 @@ public class GLRenderer {
         shader.uniformMat4f("normalTransform", NORMAL_TRANSFORM_MATRIX);
         if (LIGHT_ENABLED) {
             shader.uniformVec4f("lightModelAmbient", LIGHT_MODEL_AMBIENT);
-            int loc = shader.getUniform("lightSourcePosition");
-            if (loc >= 0) {
-                LIGHT_0.position.get(lightBuf);
-                LIGHT_1.position.get(lightBuf.position(4));
-                GL41.glUniform4fv(loc, lightBuf.position(8).flip());
-            }
-            loc = shader.getUniform("lightSourceDiffuse");
-            if (loc >= 0) {
-                LIGHT_0.diffuse.get(lightBuf);
-                LIGHT_1.diffuse.get(lightBuf.position(4));
-                GL41.glUniform4fv(loc, lightBuf.position(8).flip());
-            }
+            shader.uniformVec4f("lightSourcePosition1", LIGHT_0.position);
+            shader.uniformVec4f("lightSourcePosition2", LIGHT_1.position);
+            shader.uniformVec4f("lightSourceDiffuse1", LIGHT_0.diffuse);
+            shader.uniformVec4f("lightSourceDiffuse2", LIGHT_1.diffuse);
         } else {
             shader.uniformVec4f("lightModelAmbient", 1f, 1f, 1f, 1f);
-            int loc = shader.getUniform("lightSourcePosition");
-            if (loc >= 0) {
-                LIGHT_0.position.get(lightBuf);
-                LIGHT_1.position.get(lightBuf.position(4));
-                GL41.glUniform4fv(loc, lightBuf.position(8).flip());
-            }
-            loc = shader.getUniform("lightSourceDiffuse");
-            if (loc >= 0) {
-                lightBuf.put(0f).put(0f).put(0f).put(0f);
-                lightBuf.put(0f).put(0f).put(0f).put(0f);
-                GL41.glUniform4fv(loc, lightBuf.position(8).flip());
-            }
+            shader.uniformVec4f("lightSourcePosition1", LIGHT_0.position);
+            shader.uniformVec4f("lightSourcePosition2", LIGHT_1.position);
+            shader.uniformVec4f("lightSourceDiffuse1", 0, 0, 0, 0);
+            shader.uniformVec4f("lightSourceDiffuse2", 0, 0, 0, 0);
         }
     }
 
diff --git a/game/client/src/main/java/net/minecraft/client/render/shader/Shader.java b/game/client/src/main/java/net/minecraft/client/render/shader/Shader.java
index e29be30c7..64b6c53c3 100644
--- a/game/client/src/main/java/net/minecraft/client/render/shader/Shader.java
+++ b/game/client/src/main/java/net/minecraft/client/render/shader/Shader.java
@@ -9,13 +9,9 @@ import it.unimi.dsi.fastutil.objects.Object2IntMap;
 import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
 import net.minecraft.client.render.OpenGLHelper;
 import org.jetbrains.annotations.NotNull;
-import org.joml.Matrix4f;
 import org.joml.Matrix4fc;
-import org.joml.Vector2f;
 import org.joml.Vector2fc;
-import org.joml.Vector3f;
 import org.joml.Vector3fc;
-import org.joml.Vector4f;
 import org.joml.Vector4fc;
 import org.lwjgl.BufferUtils;
 import org.lwjgl.opengl.GL41;
diff --git a/game/client/src/main/java/net/minecraft/client/render/window/GameWindowGLFW.java b/game/client/src/main/java/net/minecraft/client/render/window/GameWindowGLFW.java
index 130968d24..54085a2b6 100644
--- a/game/client/src/main/java/net/minecraft/client/render/window/GameWindowGLFW.java
+++ b/game/client/src/main/java/net/minecraft/client/render/window/GameWindowGLFW.java
@@ -132,12 +132,14 @@ public class GameWindowGLFW implements GameWindow {
         GLCapabilities capabilities = GL.createCapabilities(true);
         OpenGLHelper.testCapabilities(capabilities);
 
-        if (capabilities.OpenGL43 && debug) {
-            GL11.glEnable(GL43.GL_DEBUG_OUTPUT);
-            this.glDebugMessageCallback = new OpenGLLoggerCallback();
-            GL43.glDebugMessageCallback(this.glDebugMessageCallback, NULL);
-            LOGGER.info("GL4.3 supported, enabling GL Error logging");
-        } else {
+        if (capabilities.OpenGL43) {
+            if (debug) {
+                GL11.glEnable(GL43.GL_DEBUG_OUTPUT);
+                this.glDebugMessageCallback = new OpenGLLoggerCallback();
+                GL43.glDebugMessageCallback(this.glDebugMessageCallback, NULL);
+                LOGGER.info("GL4.3 supported, enabling GL Error logging");
+            }
+        } else if (debug) {
             LOGGER.info("GL4.3 not supported, cannot enable GL Error logging");
         }
 
diff --git a/game/client/src/main/resources/shaders/color_world.vsh b/game/client/src/main/resources/shaders/color_world.vsh
index d6403f084..15a642158 100644
--- a/game/client/src/main/resources/shaders/color_world.vsh
+++ b/game/client/src/main/resources/shaders/color_world.vsh
@@ -11,8 +11,10 @@ out vec3 Light;
 
 uniform mat4 normalTransform;
 uniform vec4 lightModelAmbient;
-uniform vec4 lightSourcePosition[];
-uniform vec4 lightSourceDiffuse[];
+uniform vec4 lightSourcePosition1;
+uniform vec4 lightSourcePosition2;
+uniform vec4 lightSourceDiffuse1;
+uniform vec4 lightSourceDiffuse2;
 
 uniform mat4 model;
 layout (std140) uniform Matrices {
@@ -30,7 +32,7 @@ void main() {
     LightMapCoord = aLightmap;
 
     vec4 norm = normalize(normalTransform * model * vec4(aNormal, 0));
-    float dir1 = max(0.0f, dot(norm, lightSourcePosition[0]));
-    float dir2 = max(0.0f, dot(norm, lightSourcePosition[1]));
-    Light = (lightModelAmbient + lightSourceDiffuse[0] * (dir1 + dir2)).xyz;
+    float dir1 = max(0.0f, dot(norm, lightSourcePosition1));
+    float dir2 = max(0.0f, dot(norm, lightSourcePosition2));
+    Light = (lightModelAmbient + lightSourceDiffuse1 * (dir1 + dir2)).xyz;
 }
diff --git a/game/client/src/main/resources/shaders/font.vsh b/game/client/src/main/resources/shaders/font.vsh
index a8f45ac77..6c8c69500 100644
--- a/game/client/src/main/resources/shaders/font.vsh
+++ b/game/client/src/main/resources/shaders/font.vsh
@@ -24,7 +24,7 @@ void main() {
     vs_out.size = aSize;
     vs_out.shift = aShift;
     vs_out.color = aColor;
-    vs_out.uv = aUv/256f;
-    vs_out.uvSizes = aUvSizes/256f;
+    vs_out.uv = aUv/256.0f;
+    vs_out.uvSizes = aUvSizes/256.0f;
     vs_out.lightmap = aLightmap;
 }
diff --git a/game/client/src/main/resources/shaders/world.vsh b/game/client/src/main/resources/shaders/world.vsh
index fdc0c5a29..ae25ef18c 100644
--- a/game/client/src/main/resources/shaders/world.vsh
+++ b/game/client/src/main/resources/shaders/world.vsh
@@ -12,8 +12,10 @@ out vec3 Light;
 
 uniform mat4 normalTransform;
 uniform vec4 lightModelAmbient;
-uniform vec4 lightSourcePosition[];
-uniform vec4 lightSourceDiffuse[];
+uniform vec4 lightSourcePosition1;
+uniform vec4 lightSourcePosition2;
+uniform vec4 lightSourceDiffuse1;
+uniform vec4 lightSourceDiffuse2;
 
 uniform mat4 model;
 
@@ -33,7 +35,7 @@ void main() {
     LightMapCoord = aLightmap;
 
     vec4 norm = normalize(normalTransform * model * vec4(aNormal, 0));
-    float dir1 = max(0.0f, dot(norm, lightSourcePosition[0]));
-    float dir2 = max(0.0f, dot(norm, lightSourcePosition[1]));
-    Light = (lightModelAmbient + lightSourceDiffuse[0] * (dir1 + dir2)).xyz;
+    float dir1 = max(0.0f, dot(norm, lightSourcePosition1));
+    float dir2 = max(0.0f, dot(norm, lightSourcePosition2));
+    Light = (lightModelAmbient + lightSourceDiffuse1 * (dir1 + dir2)).xyz;
 }
diff --git a/game/core/src/main/java/net/minecraft/core/block/Blocks.java b/game/core/src/main/java/net/minecraft/core/block/Blocks.java
index d6430ac31..952756601 100644
--- a/game/core/src/main/java/net/minecraft/core/block/Blocks.java
+++ b/game/core/src/main/java/net/minecraft/core/block/Blocks.java
@@ -421,16 +421,16 @@ public final class Blocks {
         .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.NETHER_MOBS_SPAWN);
 
     public static final Block<BlockLogicFluid> FLUID_WATER_FLOWING = register("fluid.water.flowing", "minecraft:block/fluid_water_flowing", 270, (BlockLogicSupplier<BlockLogicFluid>) b -> new BlockLogicFluidFlowing(b, Materials.WATER, new FluidWater(), Blocks.FLUID_WATER_STILL))
-        .withHardness(100F).withLightBlock(3).withDisabledNeighborNotifyOnMetadataChange().withDisabledStats()
+        .withHardness(100F).withLitInteriorSurface(true).withLightBlock(3).withDisabledNeighborNotifyOnMetadataChange().withDisabledStats()
         .withTags(BlockTags.IS_WATER, BlockTags.PLACE_OVERWRITES, BlockTags.NOT_IN_CREATIVE_MENU);
     public static final Block<BlockLogicFluid> FLUID_WATER_STILL = register("fluid.water.still", "minecraft:block/fluid_water_still", 271, (BlockLogicSupplier<BlockLogicFluid>) b -> new BlockLogicFluidStill(b, Materials.WATER, new FluidWater(), Blocks.FLUID_WATER_FLOWING))
-        .withHardness(100F).withLightBlock(3).withDisabledNeighborNotifyOnMetadataChange().withDisabledStats().setStatParent(() -> FLUID_WATER_FLOWING)
+        .withHardness(100F).withLitInteriorSurface(true).withLightBlock(3).withDisabledNeighborNotifyOnMetadataChange().withDisabledStats().setStatParent(() -> FLUID_WATER_FLOWING)
         .withTags(BlockTags.IS_WATER, BlockTags.PLACE_OVERWRITES, BlockTags.NOT_IN_CREATIVE_MENU);
     public static final Block<BlockLogicFluid> FLUID_LAVA_FLOWING = register("fluid.lava.flowing", "minecraft:block/fluid_lava_flowing", 272, (BlockLogicSupplier<BlockLogicFluid>) b -> new BlockLogicFluidFlowing(b, Materials.LAVA, new FluidLava(), Blocks.FLUID_LAVA_STILL))
-        .withHardness(0.0F).withLightEmission(1.0F).withLightBlock(255).withDisabledNeighborNotifyOnMetadataChange().withDisabledStats()
+        .withHardness(0.0F).withLitInteriorSurface(true).withLightEmission(1.0F).withLightBlock(255).withDisabledNeighborNotifyOnMetadataChange().withDisabledStats()
         .withTags(BlockTags.IS_LAVA, BlockTags.PLACE_OVERWRITES, BlockTags.NOT_IN_CREATIVE_MENU);
     public static final Block<BlockLogicFluid> FLUID_LAVA_STILL = register("fluid.lava.still", "minecraft:block/fluid_lava_still", 273, (BlockLogicSupplier<BlockLogicFluid>) b -> new BlockLogicFluidStill(b, Materials.LAVA, new FluidLava(), Blocks.FLUID_LAVA_FLOWING))
-        .withHardness(100F).withLightEmission(1.0F).withLightBlock(255).withDisabledNeighborNotifyOnMetadataChange().withDisabledStats().setStatParent(() -> FLUID_LAVA_FLOWING)
+        .withHardness(100F).withLitInteriorSurface(true).withLightEmission(1.0F).withLightBlock(255).withDisabledNeighborNotifyOnMetadataChange().withDisabledStats().setStatParent(() -> FLUID_LAVA_FLOWING)
         .withTags(BlockTags.IS_LAVA, BlockTags.PLACE_OVERWRITES, BlockTags.NOT_IN_CREATIVE_MENU);
 
     public static final Block<?> LOG_OAK = register("log.oak", "minecraft:block/log_oak", 280, BlockLogicLog::new)
