diff --git a/build.gradle b/build.gradle
index 8dc4f87d8..4f52c98e5 100644
--- a/build.gradle
+++ b/build.gradle
@@ -12,8 +12,8 @@ plugins {
 def ENV = System.getenv()
 
 class Globals {
-	static def baseVersion = "0.4.4"
-	static def mcVersion = "19w41a"
+	static def baseVersion = "0.4.5"
+	static def mcVersion = "19w42a"
 	static def yarnVersion = "+build.1"
 }
 
diff --git a/fabric-blockrenderlayer-v1/build.gradle b/fabric-blockrenderlayer-v1/build.gradle
index 8c3be96f7..429815d5e 100644
--- a/fabric-blockrenderlayer-v1/build.gradle
+++ b/fabric-blockrenderlayer-v1/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-blockrenderlayer-v1"
-version = getSubprojectVersion(project, "1.0.2")
+version = getSubprojectVersion(project, "1.1.0")
 
 dependencies {
 	compile project(path: ':fabric-api-base', configuration: 'dev')
diff --git a/fabric-blockrenderlayer-v1/src/main/java/net/fabricmc/fabric/api/blockrenderlayer/v1/BlockRenderLayerMap.java b/fabric-blockrenderlayer-v1/src/main/java/net/fabricmc/fabric/api/blockrenderlayer/v1/BlockRenderLayerMap.java
index bbf81124d..78bff1ea6 100644
--- a/fabric-blockrenderlayer-v1/src/main/java/net/fabricmc/fabric/api/blockrenderlayer/v1/BlockRenderLayerMap.java
+++ b/fabric-blockrenderlayer-v1/src/main/java/net/fabricmc/fabric/api/blockrenderlayer/v1/BlockRenderLayerMap.java
@@ -20,6 +20,7 @@ import net.fabricmc.fabric.impl.blockrenderlayer.BlockRenderLayerMapImpl;
 import net.minecraft.block.Block;
 import net.minecraft.client.render.RenderLayer;
 import net.minecraft.fluid.Fluid;
+import net.minecraft.item.Item;
 
 /**
  * Use to associate blocks or fluids with block render layer other than default.  
@@ -44,7 +45,16 @@ public interface BlockRenderLayerMap {
 	 * @param renderLayer Render layer.  Should be one of the layers used for terrain rendering.
 	 */
 	void putBlock(Block block, RenderLayer renderLayer);
-		
+
+	/**
+	 * Map (or re-map) a item with a render layer.  Re-mapping is not recommended but if done, last one in wins.
+	 * Must be called from client thread prior to world load/rendering. Best practice will be to call from mod's client initializer.
+	 *
+	 * @param item Identifies item to be mapped.
+	 * @param renderLayer Render layer.  Should be one of the layers used for entity rendering.
+	 */
+	void putItem(Item item, RenderLayer renderLayer);
+
 	/**
 	 * Map (or re-map) a fluid state with a render layer.  Re-mapping is not recommended but if done, last one in wins.
 	 * Must be called from client thread prior to world load/rendering. Best practice will be to call from mod's client initializer.
diff --git a/fabric-blockrenderlayer-v1/src/main/java/net/fabricmc/fabric/impl/blockrenderlayer/BlockRenderLayerMapImpl.java b/fabric-blockrenderlayer-v1/src/main/java/net/fabricmc/fabric/impl/blockrenderlayer/BlockRenderLayerMapImpl.java
index 9ec6ed115..0c25354f8 100644
--- a/fabric-blockrenderlayer-v1/src/main/java/net/fabricmc/fabric/impl/blockrenderlayer/BlockRenderLayerMapImpl.java
+++ b/fabric-blockrenderlayer-v1/src/main/java/net/fabricmc/fabric/impl/blockrenderlayer/BlockRenderLayerMapImpl.java
@@ -19,6 +19,7 @@ package net.fabricmc.fabric.impl.blockrenderlayer;
 import java.util.function.BiConsumer;
 
 import net.minecraft.client.render.RenderLayer;
+import net.minecraft.item.Item;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
@@ -40,6 +41,17 @@ public class BlockRenderLayerMapImpl implements BlockRenderLayerMap {
 		}
 	}
 
+	@Override
+	public void putItem(Item item, RenderLayer renderLayer) {
+		if (item == null) {
+			LOG.warn("Ignoring request to map null item to BlockRenderLayer");
+		} else if (renderLayer == null) {
+			LOG.warn("Ignoring request to map item " + item.toString() + " to null BlockRenderLayer");
+		} else {
+			itemHandler.accept(item, renderLayer);
+		}
+	}
+
 	@Override
 	public void putFluid(Fluid fluid, RenderLayer renderLayer) {
 		if (fluid == null) {
@@ -63,12 +75,17 @@ public class BlockRenderLayerMapImpl implements BlockRenderLayerMap {
 		LOG.warn("Unable to map Block {} to BlockRenderLayer. Mapping handler not ready.", b);
 	};
 
+	private static BiConsumer<Item, RenderLayer> itemHandler = (b, l) -> {
+		LOG.warn("Unable to map Item {} to BlockRenderLayer. Mapping handler not ready.", b);
+	};
+
 	private static BiConsumer<Fluid, RenderLayer> fluidHandler = (f, b) -> {
 		LOG.warn("Unable to map Fluid {} to BlockRenderLayer. Mapping handler not ready.", f);
 	};
 
-	public static void initialize(BiConsumer<Block, RenderLayer> blockHandlerIn, BiConsumer<Fluid, RenderLayer> fluidHandlerIn) {
+	public static void initialize(BiConsumer<Block, RenderLayer> blockHandlerIn, BiConsumer<Item, RenderLayer> itemHandlerIn, BiConsumer<Fluid, RenderLayer> fluidHandlerIn) {
 		blockHandler = blockHandlerIn;
+		itemHandler = itemHandlerIn;
 		fluidHandler = fluidHandlerIn;
 	}
 }
diff --git a/fabric-blockrenderlayer-v1/src/main/java/net/fabricmc/fabric/mixin/blockrenderlayer/MixinBlockRenderLayer.java b/fabric-blockrenderlayer-v1/src/main/java/net/fabricmc/fabric/mixin/blockrenderlayer/MixinBlockRenderLayer.java
index 8deebf90d..dc751cab9 100644
--- a/fabric-blockrenderlayer-v1/src/main/java/net/fabricmc/fabric/mixin/blockrenderlayer/MixinBlockRenderLayer.java
+++ b/fabric-blockrenderlayer-v1/src/main/java/net/fabricmc/fabric/mixin/blockrenderlayer/MixinBlockRenderLayer.java
@@ -18,7 +18,9 @@ package net.fabricmc.fabric.mixin.blockrenderlayer;
 
 import java.util.Map;
 
+import net.minecraft.class_4696;
 import net.minecraft.client.render.RenderLayer;
+import net.minecraft.item.Item;
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Shadow;
 import org.spongepowered.asm.mixin.injection.At;
@@ -29,13 +31,14 @@ import net.fabricmc.fabric.impl.blockrenderlayer.BlockRenderLayerMapImpl;
 import net.minecraft.block.Block;
 import net.minecraft.fluid.Fluid;
 
-@Mixin(RenderLayer.class)
+@Mixin(class_4696.class)
 public class MixinBlockRenderLayer {
-	@Shadow private static Map<Block, RenderLayer> field_20803;
-	@Shadow private static Map<Fluid, RenderLayer> field_20804;
+	@Shadow private static Map<Block, RenderLayer> field_21469;
+	@Shadow private static Map<Item, RenderLayer> field_21470;
+	@Shadow private static Map<Fluid, RenderLayer> field_21471;
 	
 	@Inject(method = "<clinit>*", at = @At("RETURN"))
 	private static void onInitialize(CallbackInfo info) {
-		BlockRenderLayerMapImpl.initialize(field_20803::put, field_20804::put);
+		BlockRenderLayerMapImpl.initialize(field_21469::put, field_21470::put, field_21471::put);
 	}
 }
diff --git a/fabric-events-interaction-v0/build.gradle b/fabric-events-interaction-v0/build.gradle
index c072a27ba..67d236add 100644
--- a/fabric-events-interaction-v0/build.gradle
+++ b/fabric-events-interaction-v0/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-events-interaction-v0"
-version = getSubprojectVersion(project, "0.2.3")
+version = getSubprojectVersion(project, "0.2.4")
 
 dependencies {
 	compile project(path: ':fabric-api-base', configuration: 'dev')
diff --git a/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinClientPlayerInteractionManager.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinClientPlayerInteractionManager.java
index e150aeda6..5d6a10cf7 100644
--- a/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinClientPlayerInteractionManager.java
+++ b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinClientPlayerInteractionManager.java
@@ -117,7 +117,7 @@ public class MixinClientPlayerInteractionManager {
 		ActionResult result = UseEntityCallback.EVENT.invoker().interact(player, player.getEntityWorld(), hand, entity, hitResult);
 		if (result != ActionResult.PASS) {
 			if (result == ActionResult.SUCCESS) {
-				Vec3d hitVec = hitResult.getPos().subtract(entity.method_23317(), entity.method_23318(), entity.method_23321());
+				Vec3d hitVec = hitResult.getPos().subtract(entity.getX(), entity.getY(), entity.getZ());
 				this.networkHandler.sendPacket(new PlayerInteractEntityC2SPacket(entity, hand, hitVec));
 			}
 			info.setReturnValue(result);
diff --git a/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinServerPlayNetworkHandler.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinServerPlayNetworkHandler.java
index 927ac582d..b5a8ca99c 100644
--- a/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinServerPlayNetworkHandler.java
+++ b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinServerPlayNetworkHandler.java
@@ -40,7 +40,7 @@ public class MixinServerPlayNetworkHandler {
 		World world = player.getEntityWorld();
 		Entity entity = packet.getEntity(world);
 		if (entity != null) {
-			EntityHitResult hitResult = new EntityHitResult(entity, packet.getHitPosition().add(entity.method_23317(), entity.method_23318(), entity.method_23321()));
+			EntityHitResult hitResult = new EntityHitResult(entity, packet.getHitPosition().add(entity.getX(), entity.getY(), entity.getZ()));
 
 			ActionResult result = UseEntityCallback.EVENT.invoker().interact(player, world, packet.getHand(), entity, hitResult);
 			if (result != ActionResult.PASS) {
diff --git a/fabric-networking-v0/build.gradle b/fabric-networking-v0/build.gradle
index b1fc02427..92d53c0a0 100644
--- a/fabric-networking-v0/build.gradle
+++ b/fabric-networking-v0/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-networking-v0"
-version = getSubprojectVersion(project, "0.1.4")
+version = getSubprojectVersion(project, "0.1.5")
 
 dependencies {
     compile project(path: ':fabric-api-base', configuration: 'dev')
diff --git a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/server/PlayerStream.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/server/PlayerStream.java
index 34270f45a..1d4092e1f 100644
--- a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/server/PlayerStream.java
+++ b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/server/PlayerStream.java
@@ -88,7 +88,7 @@ public final class PlayerStream {
 		}
 
 		// fallback
-		return watching(entity.getEntityWorld(), new ChunkPos((int) (entity.method_23317() / 16.0D), (int) (entity.method_23318() / 16.0D)));
+		return watching(entity.getEntityWorld(), new ChunkPos((int) (entity.getX() / 16.0D), (int) (entity.getZ() / 16.0D)));
 	}
 
 	public static Stream<PlayerEntity> watching(BlockEntity entity) {
diff --git a/fabric-renderer-api-v1/build.gradle b/fabric-renderer-api-v1/build.gradle
index 77a07446c..27a31d12f 100644
--- a/fabric-renderer-api-v1/build.gradle
+++ b/fabric-renderer-api-v1/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-renderer-api-v1"
-version = getSubprojectVersion(project, "0.2.4")
+version = getSubprojectVersion(project, "0.2.5")
 
 dependencies {
 	compile project(path: ':fabric-api-base', configuration: 'dev')
diff --git a/fabric-renderer-api-v1/src/main/java/net/fabricmc/fabric/api/renderer/v1/material/BlendMode.java b/fabric-renderer-api-v1/src/main/java/net/fabricmc/fabric/api/renderer/v1/material/BlendMode.java
index eb6fe3d76..b04791e67 100644
--- a/fabric-renderer-api-v1/src/main/java/net/fabricmc/fabric/api/renderer/v1/material/BlendMode.java
+++ b/fabric-renderer-api-v1/src/main/java/net/fabricmc/fabric/api/renderer/v1/material/BlendMode.java
@@ -30,25 +30,25 @@ public enum BlendMode {
 	/**
 	 * Fully opaque with depth test, no blending. Used for most normal blocks.
 	 */
-	SOLID(RenderLayer.method_23577()),
+	SOLID(RenderLayer.getSolid()),
 
 	/**
 	 * Pixels with alpha > 0.5 are rendered as if {@code SOLID}. Other pixels are not rendered.
 	 * Texture mip-map enabled.  Used for leaves.
 	 */
-	CUTOUT_MIPPED(RenderLayer.method_23579()),
+	CUTOUT_MIPPED(RenderLayer.getCutoutMipped()),
 
 	/**
 	 * Pixels with alpha > 0.5 are rendered as if {@code SOLID}. Other pixels are not rendered.
 	 * Texture mip-map disabled.  Used for iron bars, glass and other cutout sprites with hard edges.
 	 */
-	CUTOUT(RenderLayer.method_23581()),
+	CUTOUT(RenderLayer.getCutout()),
 
 	/**
 	 * Pixels are blended with the background according to alpha color values. Some performance cost,
 	 * use in moderation. Texture mip-map enabled.  Used for stained glass.
 	 */
-	TRANSLUCENT(RenderLayer.method_23583());
+	TRANSLUCENT(RenderLayer.getTranslucent());
 
 	public final RenderLayer blockRenderLayer;
 
@@ -57,13 +57,13 @@ public enum BlendMode {
 	}
 
 	public static BlendMode fromRenderLayer(RenderLayer renderLayer) {
-		if (renderLayer == RenderLayer.method_23577()) {
+		if (renderLayer == RenderLayer.getSolid()) {
 			return SOLID;
-		} else if (renderLayer == RenderLayer.method_23579()) {
+		} else if (renderLayer == RenderLayer.getCutoutMipped()) {
 			return CUTOUT_MIPPED;
-		} else if (renderLayer == RenderLayer.method_23581()) {
+		} else if (renderLayer == RenderLayer.getCutout()) {
 			return CUTOUT;
-		} else if (renderLayer == RenderLayer.method_23583()) {
+		} else if (renderLayer == RenderLayer.getTranslucent()) {
 			return TRANSLUCENT;
 		} else {
 			return DEFAULT;
diff --git a/fabric-renderer-indigo/build.gradle b/fabric-renderer-indigo/build.gradle
index 6c6593a35..fb95c542b 100644
--- a/fabric-renderer-indigo/build.gradle
+++ b/fabric-renderer-indigo/build.gradle
@@ -1,5 +1,5 @@
 archivesBaseName = "fabric-renderer-indigo"
-version = getSubprojectVersion(project, "0.2.5")
+version = getSubprojectVersion(project, "0.2.6")
 
 dependencies {
 	compile project(path: ':fabric-api-base', configuration: 'dev')
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/IndigoMixinConfigPlugin.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/IndigoMixinConfigPlugin.java
index c31b4811c..faf8a5739 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/IndigoMixinConfigPlugin.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/IndigoMixinConfigPlugin.java
@@ -61,6 +61,14 @@ public class IndigoMixinConfigPlugin implements IMixinConfigPlugin {
 	}
 
 	static boolean shouldForceCompatibility() {
+		if(true){
+			/**
+			 * TODO: remove me, and fix indigo
+			 *
+			 * This has been done to work around some funky rendering issues as of 19w42a
+			 */
+			return true;
+		}
 		loadIfNeeded();
 		return forceCompatibility;
 	}
diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/BlockRenderInfo.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/BlockRenderInfo.java
index 7c9331315..6f7e71167 100644
--- a/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/BlockRenderInfo.java
+++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/indigo/renderer/render/BlockRenderInfo.java
@@ -21,6 +21,7 @@ import java.util.function.Supplier;
 
 import net.fabricmc.fabric.api.renderer.v1.material.BlendMode;
 import net.minecraft.block.BlockState;
+import net.minecraft.class_4696;
 import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.color.block.BlockColors;
 import net.minecraft.client.render.RenderLayer;
@@ -69,7 +70,7 @@ public class BlockRenderInfo {
 		seed = -1L;
 		defaultAo = modelAO && MinecraftClient.isAmbientOcclusionEnabled() && blockState.getLuminance() == 0;
 
-		defaultLayer = RenderLayer.method_22715(blockState);
+		defaultLayer = class_4696.method_23679(blockState);
 	}
 
 	public void release() {
diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json
index 0836acaad..18d44d6f5 100644
--- a/src/main/resources/fabric.mod.json
+++ b/src/main/resources/fabric.mod.json
@@ -17,7 +17,7 @@
   ],
   "depends": {
     "fabricloader": ">=0.6.2",
-    "minecraft": "~1.15-alpha.19.39.a"
+    "minecraft": "~1.15-alpha.19.42.a"
   },
   "description": "Core API module providing key hooks and intercompatibility features."
 }