diff --git a/RemixedDungeon/src/android/java/com/nyrds/platform/lua/PlatformLuajavaLib.java b/RemixedDungeon/src/android/java/com/nyrds/platform/lua/PlatformLuajavaLib.java
index f3a38b6438..46be053593 100644
--- a/RemixedDungeon/src/android/java/com/nyrds/platform/lua/PlatformLuajavaLib.java
+++ b/RemixedDungeon/src/android/java/com/nyrds/platform/lua/PlatformLuajavaLib.java
@@ -21,9 +21,10 @@ public class PlatformLuajavaLib extends LuajavaLib {
 	static {
 		classRemap.put("com.watabou.pixeldungeon.RemixedDungeon", "com.nyrds.platform.game.RemixedDungeon");
 		classRemap.put("com.watabou.noosa.audio.Sample", "com.nyrds.platform.audio.Sample");
-		classRemap.put("com.watabou.noosa.audio.Music", "com.nyrds.platform.audio.Music");
+		classRemap.put("com.watabou.noosa.audio.Music", "com.nyrds.platform.audio.MusicManager"");
 		classRemap.put("com.watabou.noosa.StringsManager", "com.nyrds.platform.util.StringsManager");
 		classRemap.put("com.nyrds.platform.Input", "com.nyrds.platform.app.Input");
+		classRemap.put("com.nyrds.platform.audio.Music", "com.nyrds.platform.audio.MusicManager");
 	}
 
 	public PlatformLuajavaLib() {
diff --git a/RemixedDungeon/src/main/java/com/watabou/noosa/Tilemap.java b/RemixedDungeon/src/main/java/com/watabou/noosa/Tilemap.java
index 4c3a942313..c79bda11a3 100644
--- a/RemixedDungeon/src/main/java/com/watabou/noosa/Tilemap.java
+++ b/RemixedDungeon/src/main/java/com/watabou/noosa/Tilemap.java
@@ -18,6 +18,7 @@
 package com.watabou.noosa;
 
 import com.nyrds.platform.compatibility.RectF;
+import com.nyrds.platform.gl.NoosaScript;
 import com.watabou.gltextures.SmartTexture;
 import com.watabou.gltextures.TextureCache;
 import com.watabou.glwrap.Quad;
@@ -30,7 +31,6 @@
 
 import lombok.Getter;
 import lombok.Setter;
-import com.nyrds.platform.gl.NoosaScript;
 public class Tilemap extends Visual {
 
 	@Getter
@@ -76,7 +76,7 @@ public void map( int[] data, int cols ) {
 		mapWidth = cols;
 
 		int mapHeight = data.length / cols;
-		size = mapWidth * mapHeight;
+		size = data.length;
 		
 		setWidth(cellW * mapWidth);
 		setHeight(cellH * mapHeight);
diff --git a/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/actors/mobs/Mob.java b/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/actors/mobs/Mob.java
index a64475cf90..30b0e9e3bf 100644
--- a/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/actors/mobs/Mob.java
+++ b/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/actors/mobs/Mob.java
@@ -167,11 +167,6 @@ protected int getKind() {
     @SneakyThrows
     public CharSprite newSprite() {
 
-        String descName = "spritesDesc/" + getEntityKind() + ".json";
-        if (ModdingMode.isResourceExist(descName) || ModdingMode.isAssetExist(descName)) {
-            return new MobSpriteDef(descName, getKind());
-        }
-
         if (spriteClass instanceof Class) {
             CharSprite sprite = (CharSprite) ((Class<?>) spriteClass).newInstance();
             sprite.selectKind(getKind());
@@ -182,7 +177,12 @@ public CharSprite newSprite() {
             return new MobSpriteDef((String) spriteClass, getKind());
         }
 
-        throw new TrackedRuntimeException(String.format("sprite creation failed - me class %s", getEntityKind()));
+        String descName = "spritesDesc/" + getEntityKind() + ".json";
+        if (ModdingMode.isResourceExist(descName) || ModdingMode.isAssetExist(descName)) {
+            return new MobSpriteDef(descName, getKind());
+        }
+
+        throw new TrackedRuntimeException(String.format("sprite creation failed - me class %s sprite class %s", getEntityKind(), spriteClass));
     }
 
     @Override
diff --git a/RemixedDungeonDesktop/src/libgdx/java/com/nyrds/platform/audio/Sample.java b/RemixedDungeonDesktop/src/libgdx/java/com/nyrds/platform/audio/Sample.java
index dc09c4b37a..b966d92eb3 100644
--- a/RemixedDungeonDesktop/src/libgdx/java/com/nyrds/platform/audio/Sample.java
+++ b/RemixedDungeonDesktop/src/libgdx/java/com/nyrds/platform/audio/Sample.java
@@ -17,7 +17,6 @@ public enum Sample {
 
 	INSTANCE;
 
-	public static final int MAX_STREAMS = 8;
 	String playOnComplete;
 
 	@NotNull
@@ -84,7 +83,7 @@ public void play(String id, float leftVolume, float rightVolume, float rate) {
 				sound.play(leftVolume, rate, 0);
 			} else {
 				playOnComplete = id;
-				GameLoop.execute(() -> load(id));
+				GameLoop.instance().soundExecutor.execute(() -> load(id));
 			}
 		});
 	}
@@ -92,11 +91,4 @@ public void play(String id, float leftVolume, float rightVolume, float rate) {
 	public void enable(boolean value) {
 		enabled = value;
 	}
-
-	public void onLoadComplete(String id) {
-		if (playOnComplete != null && playOnComplete.equals(id)) {
-			play(playOnComplete);
-			playOnComplete = null;
-		}
-	}
 }
\ No newline at end of file
diff --git a/RemixedDungeonDesktop/src/libgdx/java/com/nyrds/platform/lua/PlatformLuajavaLib.java b/RemixedDungeonDesktop/src/libgdx/java/com/nyrds/platform/lua/PlatformLuajavaLib.java
index acc046f670..47c77d28c6 100644
--- a/RemixedDungeonDesktop/src/libgdx/java/com/nyrds/platform/lua/PlatformLuajavaLib.java
+++ b/RemixedDungeonDesktop/src/libgdx/java/com/nyrds/platform/lua/PlatformLuajavaLib.java
@@ -20,9 +20,10 @@ public class PlatformLuajavaLib extends LuajavaLib {
 	static {
 		classRemap.put("com.watabou.pixeldungeon.RemixedDungeon", "com.nyrds.platform.game.RemixedDungeon");
 		classRemap.put("com.watabou.noosa.audio.Sample", "com.nyrds.platform.audio.Sample");
-		classRemap.put("com.watabou.noosa.audio.Music", "com.nyrds.platform.audio.Music");
+		classRemap.put("com.watabou.noosa.audio.Music", "com.nyrds.platform.audio.MusicManager");
 		classRemap.put("com.watabou.noosa.StringsManager", "com.nyrds.platform.util.StringsManager");
 		classRemap.put("com.nyrds.platform.Input", "com.nyrds.platform.app.Input");
+		classRemap.put("com.nyrds.platform.audio.Music","com.nyrds.platform.audio.MusicManager");
 	}
 
 	public PlatformLuajavaLib() {