diff --git a/mods/ENTITIES/mcl_minecarts/models/flat_track.obj b/mods/ENTITIES/mcl_minecarts/models/flat_track.obj
new file mode 100644
index 000000000..4df51c509
--- /dev/null
+++ b/mods/ENTITIES/mcl_minecarts/models/flat_track.obj
@@ -0,0 +1,15 @@
+# hand-made Wavefront .OBJ file for sloped rail
+mtllib mcl_minecarts_rail.mtl
+o flat_track.001
+v -0.500000 -0.437500 -0.500000
+v -0.500000 -0.437500  0.500000
+v  0.500000 -0.437500  0.500000
+v  0.500000 -0.437500 -0.500000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.000000 0.000000
+vn 0.000000 1.000000 0.000000
+usemtl None
+s off
+f 1/1/1 2/2/1 3/3/1 4/4/1
diff --git a/mods/ENTITIES/mcl_minecarts/rails.lua b/mods/ENTITIES/mcl_minecarts/rails.lua
index fff59fe88..8f7fc08b0 100644
--- a/mods/ENTITIES/mcl_minecarts/rails.lua
+++ b/mods/ENTITIES/mcl_minecarts/rails.lua
@@ -149,19 +149,18 @@ local railuse = S(
 mod.text = mod.text or {}
 mod.text.railuse = railuse
 local BASE_DEF = {
-	drawtype = "nodebox",
-	node_box = {
-		type = "fixed",
-		fixed = {
-			{-8/16, -8/16, -8/16, 8/16, -7/16, 8/15}
-		}
-	},
+	drawtype = "mesh",
+	mesh = "flat_track.obj",
 	paramtype = "light",
 	paramtype2 = "4dir",
 	stack_max = 64,
 	sounds = mcl_sounds.node_sound_metal_defaults(),
 	is_ground_content = true,
 	paramtype = "light",
+	collision_box = {
+		type = "fixed",
+		fixed = { -8/16, -8/16, -8/16, 8/16, -7/16, 8/15 }
+	},
 	selection_box = {
 		type = "fixed",
 		fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},